ima2-gen 3.14.0 → 3.15.0

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 (546) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/docs/API.md +2 -2
  3. package/docs/CLI.md +1 -1
  4. package/docs/CLI.zh-CN.md +1 -1
  5. package/docs/CLI.zh-TW.md +1 -1
  6. package/docs/migration/runtime-test-inventory.md +2 -1
  7. package/lib/agyArtifactRead.js +0 -3
  8. package/lib/assetLifecycle.js +1 -6
  9. package/lib/errors/providerMap.js +1 -0
  10. package/lib/mcp/downloadMediaResult.js +1 -6
  11. package/lib/naiImageAdapter.js +4 -9
  12. package/lib/naiSubscription.js +95 -0
  13. package/lib/pinnedHttpGet.js +15 -23
  14. package/lib/providers/adapters/api.js +55 -0
  15. package/lib/providers/adapters/atlascloud.js +66 -0
  16. package/lib/providers/adapters/comfy.js +76 -19
  17. package/lib/providers/adapters/gemini-api.js +55 -0
  18. package/lib/providers/adapters/googleExecution.js +26 -51
  19. package/lib/providers/adapters/grok-api.js +55 -0
  20. package/lib/providers/adapters/grokExecution.js +67 -112
  21. package/lib/providers/adapters/index.js +6 -0
  22. package/lib/providers/adapters/minimax.js +63 -0
  23. package/lib/providers/adapters/nai.js +55 -0
  24. package/lib/providers/adapters/openaiExecution.js +12 -37
  25. package/lib/providers/execution/index.js +10 -16
  26. package/lib/providers/execution/legacyClassic.js +5 -65
  27. package/lib/providers/execution/legacyEdit.js +2 -27
  28. package/lib/providers/execution/legacyMultimode.js +2 -31
  29. package/lib/providers/execution/legacyNode.js +2 -38
  30. package/lib/spriteAnchor.js +14 -24
  31. package/lib/spriteAtlasExport.js +8 -13
  32. package/lib/spriteCurationStore.js +4 -9
  33. package/lib/spriteRecipeStore.js +13 -76
  34. package/lib/spriteRowPipeline.js +5 -22
  35. package/node_modules/zod/README.md +27 -0
  36. package/node_modules/zod/compile.cjs +77 -0
  37. package/node_modules/zod/compile.d.cts +1 -0
  38. package/node_modules/zod/compile.d.ts +1 -0
  39. package/node_modules/zod/compile.js +52 -0
  40. package/node_modules/zod/index.cjs +2 -2
  41. package/node_modules/zod/index.d.cts +1 -2
  42. package/node_modules/zod/index.d.ts +1 -2
  43. package/node_modules/zod/index.js +5 -2
  44. package/node_modules/zod/package.json +13 -2
  45. package/node_modules/zod/src/compile.ts +56 -0
  46. package/node_modules/zod/src/index.ts +5 -2
  47. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  48. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  49. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  50. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  51. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  52. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  53. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  54. package/node_modules/zod/src/v3/types.ts +5 -5
  55. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  56. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  57. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  58. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  59. package/node_modules/zod/src/v4/classic/external.ts +12 -9
  60. package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
  61. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  62. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  63. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  64. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  65. package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
  66. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  67. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  68. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
  69. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
  70. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  71. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  72. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  73. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  74. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  75. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
  76. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  77. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  78. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  79. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  80. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  81. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  82. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
  83. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
  84. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  85. package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
  86. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
  87. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  88. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  89. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  90. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  91. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  92. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
  93. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
  94. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  95. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
  96. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  97. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  98. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  99. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  100. package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
  101. package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
  102. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
  103. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  104. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  105. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  106. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  107. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  108. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
  109. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  110. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  111. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  112. package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
  113. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  114. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
  115. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
  116. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  117. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  118. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
  119. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  120. package/node_modules/zod/src/v4/core/api.ts +48 -12
  121. package/node_modules/zod/src/v4/core/checks.ts +57 -44
  122. package/node_modules/zod/src/v4/core/compile.ts +2188 -0
  123. package/node_modules/zod/src/v4/core/core.ts +98 -19
  124. package/node_modules/zod/src/v4/core/doc.ts +11 -7
  125. package/node_modules/zod/src/v4/core/errors.ts +115 -24
  126. package/node_modules/zod/src/v4/core/index.ts +3 -0
  127. package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
  128. package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
  129. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  130. package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
  131. package/node_modules/zod/src/v4/core/parse.ts +131 -38
  132. package/node_modules/zod/src/v4/core/regexes.ts +30 -13
  133. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  134. package/node_modules/zod/src/v4/core/schemas.ts +759 -461
  135. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
  136. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  137. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  138. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  139. package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
  140. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  141. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  142. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  143. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  144. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  145. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  146. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
  147. package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
  148. package/node_modules/zod/src/v4/core/util.ts +268 -42
  149. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  150. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  151. package/node_modules/zod/src/v4/index.ts +3 -3
  152. package/node_modules/zod/src/v4/locales/ar.ts +3 -0
  153. package/node_modules/zod/src/v4/locales/az.ts +3 -0
  154. package/node_modules/zod/src/v4/locales/be.ts +10 -0
  155. package/node_modules/zod/src/v4/locales/bg.ts +3 -0
  156. package/node_modules/zod/src/v4/locales/bn.ts +121 -0
  157. package/node_modules/zod/src/v4/locales/ca.ts +3 -0
  158. package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
  159. package/node_modules/zod/src/v4/locales/cs.ts +3 -0
  160. package/node_modules/zod/src/v4/locales/da.ts +5 -2
  161. package/node_modules/zod/src/v4/locales/de.ts +3 -0
  162. package/node_modules/zod/src/v4/locales/el.ts +1 -0
  163. package/node_modules/zod/src/v4/locales/en.ts +15 -4
  164. package/node_modules/zod/src/v4/locales/eo.ts +3 -0
  165. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  166. package/node_modules/zod/src/v4/locales/fa.ts +3 -0
  167. package/node_modules/zod/src/v4/locales/fi.ts +3 -0
  168. package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
  169. package/node_modules/zod/src/v4/locales/fr.ts +19 -14
  170. package/node_modules/zod/src/v4/locales/gu.ts +121 -0
  171. package/node_modules/zod/src/v4/locales/he.ts +6 -1
  172. package/node_modules/zod/src/v4/locales/hi.ts +124 -0
  173. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  174. package/node_modules/zod/src/v4/locales/hu.ts +3 -0
  175. package/node_modules/zod/src/v4/locales/hy.ts +9 -0
  176. package/node_modules/zod/src/v4/locales/id.ts +3 -0
  177. package/node_modules/zod/src/v4/locales/index.ts +10 -0
  178. package/node_modules/zod/src/v4/locales/is.ts +3 -0
  179. package/node_modules/zod/src/v4/locales/it.ts +3 -0
  180. package/node_modules/zod/src/v4/locales/ja.ts +3 -0
  181. package/node_modules/zod/src/v4/locales/ka.ts +3 -0
  182. package/node_modules/zod/src/v4/locales/km.ts +3 -0
  183. package/node_modules/zod/src/v4/locales/kn.ts +124 -0
  184. package/node_modules/zod/src/v4/locales/ko.ts +3 -0
  185. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  186. package/node_modules/zod/src/v4/locales/mk.ts +3 -0
  187. package/node_modules/zod/src/v4/locales/ms.ts +3 -0
  188. package/node_modules/zod/src/v4/locales/ne.ts +126 -0
  189. package/node_modules/zod/src/v4/locales/nl.ts +3 -0
  190. package/node_modules/zod/src/v4/locales/nn.ts +119 -0
  191. package/node_modules/zod/src/v4/locales/no.ts +5 -2
  192. package/node_modules/zod/src/v4/locales/ota.ts +3 -0
  193. package/node_modules/zod/src/v4/locales/pl.ts +3 -0
  194. package/node_modules/zod/src/v4/locales/ps.ts +3 -0
  195. package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
  196. package/node_modules/zod/src/v4/locales/pt.ts +99 -58
  197. package/node_modules/zod/src/v4/locales/ro.ts +1 -0
  198. package/node_modules/zod/src/v4/locales/ru.ts +10 -0
  199. package/node_modules/zod/src/v4/locales/sk.ts +121 -0
  200. package/node_modules/zod/src/v4/locales/sl.ts +3 -0
  201. package/node_modules/zod/src/v4/locales/sv.ts +5 -2
  202. package/node_modules/zod/src/v4/locales/ta.ts +3 -0
  203. package/node_modules/zod/src/v4/locales/th.ts +3 -0
  204. package/node_modules/zod/src/v4/locales/tk.ts +111 -0
  205. package/node_modules/zod/src/v4/locales/tr.ts +3 -0
  206. package/node_modules/zod/src/v4/locales/uk.ts +3 -0
  207. package/node_modules/zod/src/v4/locales/ur.ts +3 -0
  208. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  209. package/node_modules/zod/src/v4/locales/vi.ts +3 -0
  210. package/node_modules/zod/src/v4/locales/yo.ts +3 -0
  211. package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
  212. package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
  213. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  214. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  215. package/node_modules/zod/src/v4/mini/external.ts +10 -1
  216. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  217. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  218. package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
  219. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  220. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  221. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  222. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  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 +72 -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/string.test.ts +21 -0
  231. package/node_modules/zod/v3/ZodError.cjs +22 -12
  232. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  233. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  234. package/node_modules/zod/v3/ZodError.js +22 -12
  235. package/node_modules/zod/v3/types.cjs +7 -5
  236. package/node_modules/zod/v3/types.js +7 -5
  237. package/node_modules/zod/v4/classic/checks.cjs +2 -1
  238. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  239. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  240. package/node_modules/zod/v4/classic/checks.js +1 -1
  241. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  242. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  243. package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
  244. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  245. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  246. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  247. package/node_modules/zod/v4/classic/errors.cjs +43 -34
  248. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  249. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  250. package/node_modules/zod/v4/classic/errors.js +43 -34
  251. package/node_modules/zod/v4/classic/external.cjs +30 -27
  252. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  253. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  254. package/node_modules/zod/v4/classic/external.js +5 -8
  255. package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
  256. package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
  257. package/node_modules/zod/v4/classic/in-out.cjs +63 -0
  258. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  259. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  260. package/node_modules/zod/v4/classic/in-out.js +36 -0
  261. package/node_modules/zod/v4/classic/index.cjs +2 -2
  262. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  263. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  264. package/node_modules/zod/v4/classic/index.js +2 -2
  265. package/node_modules/zod/v4/classic/iso.cjs +11 -22
  266. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  267. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  268. package/node_modules/zod/v4/classic/iso.js +2 -17
  269. package/node_modules/zod/v4/classic/parse.cjs +4 -1
  270. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  271. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  272. package/node_modules/zod/v4/classic/parse.js +1 -0
  273. package/node_modules/zod/v4/classic/schemas.cjs +498 -398
  274. package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
  275. package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
  276. package/node_modules/zod/v4/classic/schemas.js +492 -396
  277. package/node_modules/zod/v4/core/api.cjs +23 -4
  278. package/node_modules/zod/v4/core/api.d.cts +13 -9
  279. package/node_modules/zod/v4/core/api.d.ts +13 -9
  280. package/node_modules/zod/v4/core/api.js +21 -4
  281. package/node_modules/zod/v4/core/checks.cjs +37 -31
  282. package/node_modules/zod/v4/core/checks.d.cts +13 -13
  283. package/node_modules/zod/v4/core/checks.d.ts +13 -13
  284. package/node_modules/zod/v4/core/checks.js +37 -31
  285. package/node_modules/zod/v4/core/compile.cjs +1813 -0
  286. package/node_modules/zod/v4/core/compile.d.cts +51 -0
  287. package/node_modules/zod/v4/core/compile.d.ts +51 -0
  288. package/node_modules/zod/v4/core/compile.js +1783 -0
  289. package/node_modules/zod/v4/core/core.cjs +81 -18
  290. package/node_modules/zod/v4/core/core.d.cts +16 -4
  291. package/node_modules/zod/v4/core/core.d.ts +16 -4
  292. package/node_modules/zod/v4/core/core.js +82 -19
  293. package/node_modules/zod/v4/core/doc.cjs +5 -7
  294. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  295. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  296. package/node_modules/zod/v4/core/doc.js +5 -7
  297. package/node_modules/zod/v4/core/errors.cjs +110 -25
  298. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  299. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  300. package/node_modules/zod/v4/core/errors.js +110 -25
  301. package/node_modules/zod/v4/core/index.cjs +5 -1
  302. package/node_modules/zod/v4/core/index.d.cts +3 -0
  303. package/node_modules/zod/v4/core/index.d.ts +3 -0
  304. package/node_modules/zod/v4/core/index.js +3 -0
  305. package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
  306. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  307. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  308. package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
  309. package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
  310. package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
  311. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  312. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  313. package/node_modules/zod/v4/core/memoizer.cjs +272 -0
  314. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  315. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  316. package/node_modules/zod/v4/core/memoizer.js +265 -0
  317. package/node_modules/zod/v4/core/parse.cjs +96 -34
  318. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  319. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  320. package/node_modules/zod/v4/core/parse.js +94 -33
  321. package/node_modules/zod/v4/core/regexes.cjs +27 -15
  322. package/node_modules/zod/v4/core/regexes.d.cts +2 -0
  323. package/node_modules/zod/v4/core/regexes.d.ts +2 -0
  324. package/node_modules/zod/v4/core/regexes.js +24 -13
  325. package/node_modules/zod/v4/core/registries.js +2 -2
  326. package/node_modules/zod/v4/core/schemas.cjs +537 -326
  327. package/node_modules/zod/v4/core/schemas.d.cts +100 -31
  328. package/node_modules/zod/v4/core/schemas.d.ts +100 -31
  329. package/node_modules/zod/v4/core/schemas.js +526 -325
  330. package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
  331. package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
  332. package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
  333. package/node_modules/zod/v4/core/to-json-schema.js +241 -39
  334. package/node_modules/zod/v4/core/util.cjs +212 -31
  335. package/node_modules/zod/v4/core/util.d.cts +58 -1
  336. package/node_modules/zod/v4/core/util.d.ts +58 -1
  337. package/node_modules/zod/v4/core/util.js +202 -30
  338. package/node_modules/zod/v4/core/versions.cjs +2 -2
  339. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  340. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  341. package/node_modules/zod/v4/core/versions.js +2 -2
  342. package/node_modules/zod/v4/core/visit.cjs +195 -0
  343. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  344. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  345. package/node_modules/zod/v4/core/visit.js +169 -0
  346. package/node_modules/zod/v4/index.cjs +15 -5
  347. package/node_modules/zod/v4/index.d.cts +2 -2
  348. package/node_modules/zod/v4/index.d.ts +2 -2
  349. package/node_modules/zod/v4/index.js +3 -2
  350. package/node_modules/zod/v4/locales/ar.cjs +3 -0
  351. package/node_modules/zod/v4/locales/ar.js +3 -0
  352. package/node_modules/zod/v4/locales/az.cjs +3 -0
  353. package/node_modules/zod/v4/locales/az.js +3 -0
  354. package/node_modules/zod/v4/locales/be.cjs +10 -0
  355. package/node_modules/zod/v4/locales/be.js +10 -0
  356. package/node_modules/zod/v4/locales/bg.cjs +3 -0
  357. package/node_modules/zod/v4/locales/bg.js +3 -0
  358. package/node_modules/zod/v4/locales/bn.cjs +138 -0
  359. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  360. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  361. package/node_modules/zod/v4/locales/bn.js +111 -0
  362. package/node_modules/zod/v4/locales/ca.cjs +3 -0
  363. package/node_modules/zod/v4/locales/ca.js +3 -0
  364. package/node_modules/zod/v4/locales/ckb.cjs +158 -0
  365. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  366. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  367. package/node_modules/zod/v4/locales/ckb.js +131 -0
  368. package/node_modules/zod/v4/locales/cs.cjs +3 -0
  369. package/node_modules/zod/v4/locales/cs.js +3 -0
  370. package/node_modules/zod/v4/locales/da.cjs +5 -2
  371. package/node_modules/zod/v4/locales/da.js +5 -2
  372. package/node_modules/zod/v4/locales/de.cjs +3 -0
  373. package/node_modules/zod/v4/locales/de.js +3 -0
  374. package/node_modules/zod/v4/locales/el.cjs +1 -0
  375. package/node_modules/zod/v4/locales/el.js +1 -0
  376. package/node_modules/zod/v4/locales/en.cjs +14 -4
  377. package/node_modules/zod/v4/locales/en.js +14 -4
  378. package/node_modules/zod/v4/locales/eo.cjs +3 -0
  379. package/node_modules/zod/v4/locales/eo.js +3 -0
  380. package/node_modules/zod/v4/locales/es.cjs +2 -0
  381. package/node_modules/zod/v4/locales/es.js +2 -0
  382. package/node_modules/zod/v4/locales/fa.cjs +3 -0
  383. package/node_modules/zod/v4/locales/fa.js +3 -0
  384. package/node_modules/zod/v4/locales/fi.cjs +3 -0
  385. package/node_modules/zod/v4/locales/fi.js +3 -0
  386. package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
  387. package/node_modules/zod/v4/locales/fr-CA.js +3 -0
  388. package/node_modules/zod/v4/locales/fr.cjs +16 -14
  389. package/node_modules/zod/v4/locales/fr.js +16 -14
  390. package/node_modules/zod/v4/locales/gu.cjs +138 -0
  391. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  392. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  393. package/node_modules/zod/v4/locales/gu.js +111 -0
  394. package/node_modules/zod/v4/locales/he.cjs +5 -0
  395. package/node_modules/zod/v4/locales/he.js +5 -0
  396. package/node_modules/zod/v4/locales/hi.cjs +136 -0
  397. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  398. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  399. package/node_modules/zod/v4/locales/hi.js +109 -0
  400. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  401. package/node_modules/zod/v4/locales/hr.js +2 -0
  402. package/node_modules/zod/v4/locales/hu.cjs +3 -0
  403. package/node_modules/zod/v4/locales/hu.js +3 -0
  404. package/node_modules/zod/v4/locales/hy.cjs +9 -0
  405. package/node_modules/zod/v4/locales/hy.js +9 -0
  406. package/node_modules/zod/v4/locales/id.cjs +3 -0
  407. package/node_modules/zod/v4/locales/id.js +3 -0
  408. package/node_modules/zod/v4/locales/index.cjs +22 -2
  409. package/node_modules/zod/v4/locales/index.d.cts +10 -0
  410. package/node_modules/zod/v4/locales/index.d.ts +10 -0
  411. package/node_modules/zod/v4/locales/index.js +10 -0
  412. package/node_modules/zod/v4/locales/is.cjs +3 -0
  413. package/node_modules/zod/v4/locales/is.js +3 -0
  414. package/node_modules/zod/v4/locales/it.cjs +3 -0
  415. package/node_modules/zod/v4/locales/it.js +3 -0
  416. package/node_modules/zod/v4/locales/ja.cjs +3 -0
  417. package/node_modules/zod/v4/locales/ja.js +3 -0
  418. package/node_modules/zod/v4/locales/ka.cjs +3 -0
  419. package/node_modules/zod/v4/locales/ka.js +3 -0
  420. package/node_modules/zod/v4/locales/km.cjs +3 -0
  421. package/node_modules/zod/v4/locales/km.js +3 -0
  422. package/node_modules/zod/v4/locales/kn.cjs +141 -0
  423. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  424. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  425. package/node_modules/zod/v4/locales/kn.js +114 -0
  426. package/node_modules/zod/v4/locales/ko.cjs +3 -0
  427. package/node_modules/zod/v4/locales/ko.js +3 -0
  428. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  429. package/node_modules/zod/v4/locales/lt.js +2 -0
  430. package/node_modules/zod/v4/locales/mk.cjs +3 -0
  431. package/node_modules/zod/v4/locales/mk.js +3 -0
  432. package/node_modules/zod/v4/locales/ms.cjs +3 -0
  433. package/node_modules/zod/v4/locales/ms.js +3 -0
  434. package/node_modules/zod/v4/locales/ne.cjs +136 -0
  435. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  436. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  437. package/node_modules/zod/v4/locales/ne.js +109 -0
  438. package/node_modules/zod/v4/locales/nl.cjs +3 -0
  439. package/node_modules/zod/v4/locales/nl.js +3 -0
  440. package/node_modules/zod/v4/locales/nn.cjs +138 -0
  441. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  442. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  443. package/node_modules/zod/v4/locales/nn.js +111 -0
  444. package/node_modules/zod/v4/locales/no.cjs +5 -2
  445. package/node_modules/zod/v4/locales/no.js +5 -2
  446. package/node_modules/zod/v4/locales/ota.cjs +3 -0
  447. package/node_modules/zod/v4/locales/ota.js +3 -0
  448. package/node_modules/zod/v4/locales/pl.cjs +3 -0
  449. package/node_modules/zod/v4/locales/pl.js +3 -0
  450. package/node_modules/zod/v4/locales/ps.cjs +3 -0
  451. package/node_modules/zod/v4/locales/ps.js +3 -0
  452. package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
  453. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  454. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  455. package/node_modules/zod/v4/locales/pt-BR.js +141 -0
  456. package/node_modules/zod/v4/locales/pt.cjs +87 -55
  457. package/node_modules/zod/v4/locales/pt.js +87 -55
  458. package/node_modules/zod/v4/locales/ro.cjs +1 -0
  459. package/node_modules/zod/v4/locales/ro.js +1 -0
  460. package/node_modules/zod/v4/locales/ru.cjs +10 -0
  461. package/node_modules/zod/v4/locales/ru.js +10 -0
  462. package/node_modules/zod/v4/locales/sk.cjs +141 -0
  463. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  464. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  465. package/node_modules/zod/v4/locales/sk.js +114 -0
  466. package/node_modules/zod/v4/locales/sl.cjs +3 -0
  467. package/node_modules/zod/v4/locales/sl.js +3 -0
  468. package/node_modules/zod/v4/locales/sv.cjs +5 -2
  469. package/node_modules/zod/v4/locales/sv.js +5 -2
  470. package/node_modules/zod/v4/locales/ta.cjs +3 -0
  471. package/node_modules/zod/v4/locales/ta.js +3 -0
  472. package/node_modules/zod/v4/locales/th.cjs +3 -0
  473. package/node_modules/zod/v4/locales/th.js +3 -0
  474. package/node_modules/zod/v4/locales/tk.cjs +132 -0
  475. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  476. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  477. package/node_modules/zod/v4/locales/tk.js +105 -0
  478. package/node_modules/zod/v4/locales/tr.cjs +3 -0
  479. package/node_modules/zod/v4/locales/tr.js +3 -0
  480. package/node_modules/zod/v4/locales/uk.cjs +3 -0
  481. package/node_modules/zod/v4/locales/uk.js +3 -0
  482. package/node_modules/zod/v4/locales/ur.cjs +3 -0
  483. package/node_modules/zod/v4/locales/ur.js +3 -0
  484. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  485. package/node_modules/zod/v4/locales/uz.js +1 -0
  486. package/node_modules/zod/v4/locales/vi.cjs +3 -0
  487. package/node_modules/zod/v4/locales/vi.js +3 -0
  488. package/node_modules/zod/v4/locales/yo.cjs +3 -0
  489. package/node_modules/zod/v4/locales/yo.js +3 -0
  490. package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
  491. package/node_modules/zod/v4/locales/zh-CN.js +3 -0
  492. package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
  493. package/node_modules/zod/v4/locales/zh-TW.js +3 -0
  494. package/node_modules/zod/v4/mini/checks.cjs +2 -1
  495. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  496. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  497. package/node_modules/zod/v4/mini/checks.js +1 -1
  498. package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
  499. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  500. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  501. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  502. package/node_modules/zod/v4/mini/external.cjs +12 -1
  503. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  504. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  505. package/node_modules/zod/v4/mini/external.js +3 -1
  506. package/node_modules/zod/v4/mini/in-out.cjs +63 -0
  507. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  508. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  509. package/node_modules/zod/v4/mini/in-out.js +36 -0
  510. package/node_modules/zod/v4/mini/parse.cjs +3 -1
  511. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  512. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  513. package/node_modules/zod/v4/mini/parse.js +1 -1
  514. package/node_modules/zod/v4/mini/schemas.cjs +75 -47
  515. package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
  516. package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
  517. package/node_modules/zod/v4/mini/schemas.js +71 -45
  518. package/package.json +5 -5
  519. package/routes/quota.js +29 -3
  520. package/ui/dist/.vite/manifest.json +61 -61
  521. package/ui/dist/assets/{AgentWorkspace-CL3MLv3l.js → AgentWorkspace-BulKz33A.js} +1 -1
  522. package/ui/dist/assets/{App-B9cEM6dJ.js → App-juOjrIgh.js} +3 -3
  523. package/ui/dist/assets/{AssetGenWorkspace-swWPvXrx.js → AssetGenWorkspace-8SYhS2Y2.js} +2 -2
  524. package/ui/dist/assets/{AssetsWorkspace-CRVeYU2F.js → AssetsWorkspace-Dxz-Xksp.js} +1 -1
  525. package/ui/dist/assets/{CardNewsWorkspace-BAOxWLKf.js → CardNewsWorkspace-DV4hpvKf.js} +1 -1
  526. package/ui/dist/assets/{GenerationRequestLogPanel-DZtYZm-D.js → GenerationRequestLogPanel-VFu4cAdd.js} +1 -1
  527. package/ui/dist/assets/{HomeWorkspace-BeZ1s0Jm.js → HomeWorkspace-D1UBgwRZ.js} +1 -1
  528. package/ui/dist/assets/{KeyingPanel-ZyBSXioh.js → KeyingPanel-GdUcaaJR.js} +1 -1
  529. package/ui/dist/assets/{NodeCanvas-BvvcCErf.js → NodeCanvas-B6zoJhHr.js} +3 -3
  530. package/ui/dist/assets/{PromptBuilderPanel-DBycmShA.js → PromptBuilderPanel-CJ56MEk2.js} +1 -1
  531. package/ui/dist/assets/{PromptImportDialog-ChvMv7ek.js → PromptImportDialog-DMFnggIT.js} +2 -2
  532. package/ui/dist/assets/{PromptImportDiscoverySection-60py7whH.js → PromptImportDiscoverySection-4KCIWmZ8.js} +1 -1
  533. package/ui/dist/assets/{PromptImportFolderSection-CCRh_-_7.js → PromptImportFolderSection-BjqopFX5.js} +1 -1
  534. package/ui/dist/assets/{PromptLibraryPanel-BFWQO8OT.js → PromptLibraryPanel-DwFK4ALC.js} +2 -2
  535. package/ui/dist/assets/SettingsWorkspace-BWcNnQ56.js +1 -0
  536. package/ui/dist/assets/{SpriteRecipeWorkspace-DRWdkmwU.js → SpriteRecipeWorkspace-Bsl_NZ3A.js} +1 -1
  537. package/ui/dist/assets/{index-7ngEOVxt.js → index-BWzT2RyM.js} +3 -3
  538. package/ui/dist/assets/{index-B5jy7ePg.css → index-C5zSMtGM.css} +1 -1
  539. package/ui/dist/assets/{index-gxh_02DQ.js → index-Cl5SnWLL.js} +7 -7
  540. package/ui/dist/assets/{pptxgen.es-OUNhQLEV.js → pptxgen.es-BslswdiL.js} +1 -1
  541. package/ui/dist/assets/{promptBuilderStore-BTUUzbBT.js → promptBuilderStore-Cl2q0Oe6.js} +1 -1
  542. package/ui/dist/assets/useAgentDialogFocus-B8niAv4W.js +1 -0
  543. package/ui/dist/index.html +2 -2
  544. package/node_modules/zod/src/v4/core/config.ts +0 -15
  545. package/ui/dist/assets/SettingsWorkspace-B5Ghsgdj.js +0 -1
  546. package/ui/dist/assets/useAgentDialogFocus-DSc2qY8p.js +0 -1
@@ -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,
@@ -61,86 +61,6 @@ test("flat inference", () => {
61
61
  util.assertEqual<z.infer<(typeof schemas)[20]>, Promise<string>>(true);
62
62
  });
63
63
 
64
- // test("deep inference", () => {
65
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[0]>, string>(true);
66
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[1]>, number>(true);
67
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[2]>, number>(true);
68
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[3]>, bigint>(true);
69
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[4]>, boolean>(true);
70
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[5]>, Date>(true);
71
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[6]>, undefined>(true);
72
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[7]>, null>(true);
73
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[8]>, any>(true);
74
- // util.assertEqual<
75
- // z.infer<(typeof deepReadonlySchemas_0)[9]>,
76
- // Readonly<unknown>
77
- // >(true);
78
- // util.assertEqual<z.infer<(typeof deepReadonlySchemas_0)[10]>, void>(true);
79
- // util.assertEqual<
80
- // z.infer<(typeof deepReadonlySchemas_0)[11]>,
81
- // (args_0: string, args_1: number, ...args_2: unknown[]) => unknown
82
- // >(true);
83
- // util.assertEqual<
84
- // z.infer<(typeof deepReadonlySchemas_0)[12]>,
85
- // readonly string[]
86
- // >(true);
87
- // util.assertEqual<
88
- // z.infer<(typeof deepReadonlySchemas_0)[13]>,
89
- // readonly [string, number]
90
- // >(true);
91
- // util.assertEqual<
92
- // z.infer<(typeof deepReadonlySchemas_0)[14]>,
93
- // ReadonlyMap<string, Date>
94
- // >(true);
95
- // util.assertEqual<
96
- // z.infer<(typeof deepReadonlySchemas_0)[15]>,
97
- // ReadonlySet<Promise<string>>
98
- // >(true);
99
- // util.assertEqual<
100
- // z.infer<(typeof deepReadonlySchemas_0)[16]>,
101
- // Readonly<Record<string, string>>
102
- // >(true);
103
- // util.assertEqual<
104
- // z.infer<(typeof deepReadonlySchemas_0)[17]>,
105
- // Readonly<Record<string, number>>
106
- // >(true);
107
- // util.assertEqual<
108
- // z.infer<(typeof deepReadonlySchemas_0)[18]>,
109
- // { readonly a: string; readonly 1: number }
110
- // >(true);
111
- // util.assertEqual<
112
- // z.infer<(typeof deepReadonlySchemas_0)[19]>,
113
- // Readonly<testEnum>
114
- // >(true);
115
- // util.assertEqual<
116
- // z.infer<(typeof deepReadonlySchemas_0)[20]>,
117
- // Promise<string>
118
- // >(true);
119
-
120
- // util.assertEqual<
121
- // z.infer<typeof crazyDeepReadonlySchema>,
122
- // ReadonlyMap<
123
- // ReadonlySet<readonly [string, number]>,
124
- // {
125
- // readonly a: {
126
- // readonly [x: string]: readonly any[];
127
- // };
128
- // readonly b: {
129
- // readonly c: {
130
- // readonly d: {
131
- // readonly e: {
132
- // readonly f: {
133
- // readonly g?: {};
134
- // };
135
- // };
136
- // };
137
- // };
138
- // };
139
- // }
140
- // >
141
- // >(true);
142
- // });
143
-
144
64
  test("object freezing", () => {
145
65
  expect(Object.isFrozen(z.array(z.string()).readonly().parse(["a"]))).toBe(true);
146
66
  expect(Object.isFrozen(z.tuple([z.string(), z.number()]).readonly().parse(["a", 1]))).toBe(true);
@@ -323,6 +323,7 @@ test("url error overrides", () => {
323
323
  test("emoji validations", () => {
324
324
  const emoji = z.string().emoji();
325
325
 
326
+ emoji.parse("🦰🦱🦲🦳"); // both Extended_Pictographic and Emoji_Component
326
327
  emoji.parse("👋👋👋👋");
327
328
  emoji.parse("🍺👩‍🚀🫡");
328
329
  emoji.parse("💚💙💜💛❤️");
@@ -335,6 +336,11 @@ test("emoji validations", () => {
335
336
  expect(() => emoji.parse("😀 is an emoji")).toThrow();
336
337
  expect(() => emoji.parse("😀stuff")).toThrow();
337
338
  expect(() => emoji.parse("stuff😀")).toThrow();
339
+
340
+ // a failing match over the overlapping code points used to backtrack exponentially
341
+ const start = performance.now();
342
+ expect(emoji.safeParse(`${"🦰".repeat(26)} `).success).toBe(false);
343
+ expect(performance.now() - start).toBeLessThan(100);
338
344
  });
339
345
 
340
346
  test("uuid", () => {
@@ -619,7 +619,7 @@ const emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z
619
619
  // /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\.[a-z0-9\-]+)*$/i;
620
620
 
621
621
  // from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression
622
- const _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
622
+ const _emojiRegex = `^[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;
623
623
  let emojiRegex: RegExp;
624
624
 
625
625
  // faster, simpler, safer
@@ -3249,7 +3249,9 @@ function mergeValues(a: any, b: any): { valid: true; data: any } | { valid: fals
3249
3249
  const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);
3250
3250
 
3251
3251
  const newObj: any = { ...a, ...b };
3252
+ if (Object.prototype.hasOwnProperty.call(newObj, "__proto__")) delete newObj.__proto__;
3252
3253
  for (const key of sharedKeys) {
3254
+ if (key === "__proto__") continue;
3253
3255
  const sharedValue = mergeValues(a[key], b[key]);
3254
3256
  if (!sharedValue.valid) {
3255
3257
  return { valid: false };
@@ -3862,8 +3864,7 @@ export class ZodFunction<Args extends ZodTuple<any, any>, Returns extends ZodTyp
3862
3864
  const fn = ctx.data;
3863
3865
 
3864
3866
  if (this._def.returns instanceof ZodPromise) {
3865
- // Would love a way to avoid disabling this rule, but we need
3866
- // an alias (using an arrow function was what caused 2651).
3867
+ // Would love a way to avoid disabling this rule, but we need an alias (using an arrow function was what caused 2651).
3867
3868
  // eslint-disable-next-line @typescript-eslint/no-this-alias
3868
3869
  const me = this;
3869
3870
  return OK(async function (this: any, ...args: any[]) {
@@ -3882,8 +3883,7 @@ export class ZodFunction<Args extends ZodTuple<any, any>, Returns extends ZodTyp
3882
3883
  return parsedReturns;
3883
3884
  });
3884
3885
  } else {
3885
- // Would love a way to avoid disabling this rule, but we need
3886
- // an alias (using an arrow function was what caused 2651).
3886
+ // Would love a way to avoid disabling this rule, but we need an alias (using an arrow function was what caused 2651).
3887
3887
  // eslint-disable-next-line @typescript-eslint/no-this-alias
3888
3888
  const me = this;
3889
3889
  return OK(function (this: any, ...args: any[]) {
@@ -21,6 +21,7 @@ export {
21
21
  _startsWith as startsWith,
22
22
  _endsWith as endsWith,
23
23
  _property as property,
24
+ _properties as properties,
24
25
  _mime as mime,
25
26
  _overwrite as overwrite,
26
27
  _normalize as normalize,
@@ -3,14 +3,12 @@
3
3
  import * as core from "../core/index.js";
4
4
  import type { ZodType } from "./schemas.js";
5
5
 
6
- export type {
7
- /** @deprecated Use `z.output<T>` instead. */
8
- output as TypeOf,
9
- /** @deprecated Use `z.output<T>` instead. */
10
- output as Infer,
11
- /** @deprecated Use `z.core.$$ZodFirstPartyTypes` instead */
12
- $ZodTypes as ZodFirstPartySchemaTypes,
13
- } from "../core/index.js";
6
+ /** @deprecated Use `z.output<T>` instead. */
7
+ export type TypeOf<T> = core.output<T>;
8
+ /** @deprecated Use `z.output<T>` instead. */
9
+ export type Infer<T> = core.output<T>;
10
+ /** @deprecated Use `z.core.$ZodTypes` instead */
11
+ export type ZodFirstPartySchemaTypes = core.$ZodTypes;
14
12
 
15
13
  /** @deprecated Use the raw string literal codes instead, e.g. "invalid_type". */
16
14
  export const ZodIssueCode = {
@@ -27,10 +25,10 @@ export const ZodIssueCode = {
27
25
  custom: "custom",
28
26
  } as const;
29
27
 
30
- /** @deprecated Use `z.$ZodFlattenedError` */
28
+ /** @deprecated Use `z.core.$ZodFlattenedError<z.output<T>>` instead; it takes an inferred type, not a schema. */
31
29
  export type inferFlattenedErrors<T extends core.$ZodType, U = string> = core.$ZodFlattenedError<core.output<T>, U>;
32
30
 
33
- /** @deprecated Use `z.$ZodFormattedError` */
31
+ /** @deprecated Use `z.core.$ZodFormattedError<z.output<T>>` instead; it takes an inferred type, not a schema. */
34
32
  export type inferFormattedError<T extends core.$ZodType<any, any>, U = string> = core.$ZodFormattedError<
35
33
  core.output<T>,
36
34
  U
@@ -54,14 +52,24 @@ export function getErrorMap(): core.$ZodErrorMap<core.$ZodIssue> | undefined {
54
52
  return core.config().customError;
55
53
  }
56
54
 
57
- export type {
58
- /** @deprecated Use z.ZodType (without generics) instead. */
59
- ZodType as ZodTypeAny,
60
- /** @deprecated Use `z.ZodType` */
61
- ZodType as ZodSchema,
62
- /** @deprecated Use `z.ZodType` */
63
- ZodType as Schema,
64
- };
55
+ /** @deprecated Use z.ZodType (without generics) instead. */
56
+ export type ZodTypeAny<
57
+ Output = unknown,
58
+ Input = unknown,
59
+ Internals extends core.$ZodTypeInternals<Output, Input> = core.$ZodTypeInternals<Output, Input>,
60
+ > = ZodType<Output, Input, Internals>;
61
+ /** @deprecated Use `z.ZodType` */
62
+ export type ZodSchema<
63
+ Output = unknown,
64
+ Input = unknown,
65
+ Internals extends core.$ZodTypeInternals<Output, Input> = core.$ZodTypeInternals<Output, Input>,
66
+ > = ZodType<Output, Input, Internals>;
67
+ /** @deprecated Use `z.ZodType` */
68
+ export type Schema<
69
+ Output = unknown,
70
+ Input = unknown,
71
+ Internals extends core.$ZodTypeInternals<Output, Input> = core.$ZodTypeInternals<Output, Input>,
72
+ > = ZodType<Output, Input, Internals>;
65
73
 
66
74
  /** Included for Zod 3 compatibility */
67
75
  export type ZodRawShape = core.$ZodShape;
@@ -0,0 +1,76 @@
1
+ import type * as core from "../core/index.js";
2
+ import { visit } from "../core/visit.js";
3
+ import * as schemas from "./schemas.js";
4
+
5
+ /** Distributes `.partial()` through every object in a schema type, preserving the wrappers around them. */
6
+ // biome-ignore format: preserve vertical layout for readability.
7
+ export type DeepPartial<T extends core.SomeType> =
8
+ T extends schemas.ZodObject<infer Shape, infer Config>
9
+ ? schemas.ZodObject<
10
+ { -readonly [K in keyof Shape]: schemas.ZodOptional<DeepPartial<Shape[K]>> },
11
+ Config
12
+ >
13
+ // Must precede ZodUnion; degrades to it, matching the runtime.
14
+ : T extends schemas.ZodDiscriminatedUnion<infer Options, any>
15
+ ? schemas.ZodUnion<
16
+ { -readonly [I in keyof Options]: Options[I] extends core.SomeType ? DeepPartial<Options[I]> : Options[I] }
17
+ >
18
+ : T extends schemas.ZodUnion<infer Options>
19
+ ? schemas.ZodUnion<
20
+ { -readonly [I in keyof Options]: Options[I] extends core.SomeType ? DeepPartial<Options[I]> : Options[I] }
21
+ >
22
+ : T extends schemas.ZodArray<infer El>
23
+ ? schemas.ZodArray<DeepPartial<El>>
24
+ : T extends schemas.ZodTuple<infer Items, infer Rest>
25
+ ? schemas.ZodTuple<
26
+ { -readonly [K in keyof Items]: Items[K] extends core.SomeType ? DeepPartial<Items[K]> : Items[K] },
27
+ Rest extends core.SomeType ? DeepPartial<Rest> : Rest
28
+ >
29
+ : T extends schemas.ZodIntersection<infer A, infer B>
30
+ ? schemas.ZodIntersection<DeepPartial<A>, DeepPartial<B>>
31
+ : T extends schemas.ZodRecord<infer K, infer V>
32
+ ? schemas.ZodRecord<K, DeepPartial<V>>
33
+ : T extends schemas.ZodMap<infer K, infer V>
34
+ ? schemas.ZodMap<K, DeepPartial<V>>
35
+ : T extends schemas.ZodSet<infer El>
36
+ ? schemas.ZodSet<DeepPartial<El>>
37
+ : T extends schemas.ZodOptional<infer Inner>
38
+ ? schemas.ZodOptional<DeepPartial<Inner>>
39
+ : T extends schemas.ZodNullable<infer Inner>
40
+ ? schemas.ZodNullable<DeepPartial<Inner>>
41
+ : T extends schemas.ZodDefault<infer Inner>
42
+ ? schemas.ZodDefault<DeepPartial<Inner>>
43
+ : T extends schemas.ZodPrefault<infer Inner>
44
+ ? schemas.ZodPrefault<DeepPartial<Inner>>
45
+ : T extends schemas.ZodNonOptional<infer Inner>
46
+ ? schemas.ZodNonOptional<DeepPartial<Inner>>
47
+ : T extends schemas.ZodCatch<infer Inner>
48
+ ? schemas.ZodCatch<DeepPartial<Inner>>
49
+ : T extends schemas.ZodReadonly<infer Inner>
50
+ ? schemas.ZodReadonly<DeepPartial<Inner>>
51
+ : T extends schemas.ZodSuccess<infer Inner>
52
+ ? schemas.ZodSuccess<DeepPartial<Inner>>
53
+ : T extends schemas.ZodPromise<infer Inner>
54
+ ? schemas.ZodPromise<DeepPartial<Inner>>
55
+ // Must precede ZodPipe, which both extend structurally, or the subtype is lost.
56
+ : T extends schemas.ZodCodec<infer A, infer B>
57
+ ? schemas.ZodCodec<DeepPartial<A>, DeepPartial<B>>
58
+ : T extends schemas.ZodPreprocess<infer B>
59
+ ? schemas.ZodPreprocess<DeepPartial<B>>
60
+ : T extends schemas.ZodPipe<infer A, infer B>
61
+ ? schemas.ZodPipe<DeepPartial<A>, DeepPartial<B>>
62
+ : T extends schemas.ZodLazy<infer Inner>
63
+ ? schemas.ZodLazy<DeepPartial<Inner>>
64
+ : T;
65
+
66
+ /** Returns a copy of the schema with every nested object's properties made optional. */
67
+ export function deepPartial<T extends core.SomeType>(schema: T): DeepPartial<T> {
68
+ return visit(schema, {
69
+ object: (s) => (s as schemas.ZodObject).partial(),
70
+ // Every partialed option now admits `undefined`, which the constructor rejects as a duplicate.
71
+ union: (s) => {
72
+ const def = s._zod.def as core.$ZodDiscriminatedUnionDef;
73
+ return def.discriminator === undefined ? s : schemas.union(def.options as schemas.ZodType[]);
74
+ },
75
+ }) as unknown as DeepPartial<T>;
76
+ }