fullstacked 0.12.1-1359 → 0.12.1-1364

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 (335) hide show
  1. package/fullstacked_modules/@fullstacked/ai-agent/ai-agent.js +55352 -53576
  2. package/fullstacked_modules/@fullstacked/ai-agent/index.ts +0 -1
  3. package/fullstacked_modules/@fullstacked/ai-agent/lock.json +157 -152
  4. package/fullstacked_modules/@fullstacked/ai-agent/package.json +13 -13
  5. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/ollama.ts +2 -2
  6. package/fullstacked_modules/@fullstacked/ui/index.js +6 -1
  7. package/fullstacked_modules/zod/README.md +4 -4
  8. package/fullstacked_modules/zod/index.cjs +2 -2
  9. package/fullstacked_modules/zod/index.d.cts +2 -2
  10. package/fullstacked_modules/zod/index.d.ts +2 -2
  11. package/fullstacked_modules/zod/index.js +2 -2
  12. package/fullstacked_modules/zod/locales/index.cjs +17 -0
  13. package/fullstacked_modules/zod/locales/index.d.cts +1 -0
  14. package/fullstacked_modules/zod/locales/index.d.ts +1 -0
  15. package/fullstacked_modules/zod/locales/index.js +1 -0
  16. package/fullstacked_modules/zod/locales/package.json +6 -0
  17. package/fullstacked_modules/zod/mini/index.cjs +17 -0
  18. package/fullstacked_modules/zod/mini/index.d.cts +1 -0
  19. package/fullstacked_modules/zod/mini/index.d.ts +1 -0
  20. package/fullstacked_modules/zod/mini/index.js +1 -0
  21. package/fullstacked_modules/zod/mini/package.json +6 -0
  22. package/fullstacked_modules/zod/package.json +29 -12
  23. package/fullstacked_modules/zod/src/index.ts +2 -2
  24. package/fullstacked_modules/zod/src/locales/index.ts +1 -0
  25. package/fullstacked_modules/zod/src/mini/index.ts +1 -0
  26. package/fullstacked_modules/zod/src/v3/ZodError.ts +1 -1
  27. package/fullstacked_modules/zod/src/v3/tests/object.test.ts +2 -2
  28. package/fullstacked_modules/zod/src/v3/tests/string.test.ts +2 -2
  29. package/fullstacked_modules/zod/src/v3/types.ts +3 -1
  30. package/fullstacked_modules/zod/src/v4/classic/checks.ts +1 -0
  31. package/fullstacked_modules/zod/src/v4/classic/compat.ts +4 -0
  32. package/fullstacked_modules/zod/src/v4/classic/errors.ts +9 -2
  33. package/fullstacked_modules/zod/src/v4/classic/external.ts +1 -1
  34. package/fullstacked_modules/zod/src/v4/classic/parse.ts +49 -0
  35. package/fullstacked_modules/zod/src/v4/classic/schemas.ts +224 -81
  36. package/fullstacked_modules/zod/src/v4/classic/tests/array.test.ts +6 -6
  37. package/fullstacked_modules/zod/src/v4/classic/tests/catch.test.ts +29 -5
  38. package/fullstacked_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
  39. package/fullstacked_modules/zod/src/v4/classic/tests/codec.test.ts +562 -0
  40. package/fullstacked_modules/zod/src/v4/classic/tests/continuability.test.ts +1 -1
  41. package/fullstacked_modules/zod/src/v4/classic/tests/datetime.test.ts +6 -0
  42. package/fullstacked_modules/zod/src/v4/classic/tests/default.test.ts +52 -0
  43. package/fullstacked_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +42 -0
  44. package/fullstacked_modules/zod/src/v4/classic/tests/error-utils.test.ts +70 -2
  45. package/fullstacked_modules/zod/src/v4/classic/tests/file.test.ts +9 -4
  46. package/fullstacked_modules/zod/src/v4/classic/tests/firstparty.test.ts +4 -0
  47. package/fullstacked_modules/zod/src/v4/classic/tests/function.test.ts +71 -31
  48. package/fullstacked_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
  49. package/fullstacked_modules/zod/src/v4/classic/tests/index.test.ts +15 -0
  50. package/fullstacked_modules/zod/src/v4/classic/tests/literal.test.ts +25 -0
  51. package/fullstacked_modules/zod/src/v4/classic/tests/nonoptional.test.ts +15 -0
  52. package/fullstacked_modules/zod/src/v4/classic/tests/number.test.ts +23 -0
  53. package/fullstacked_modules/zod/src/v4/classic/tests/object.test.ts +48 -2
  54. package/fullstacked_modules/zod/src/v4/classic/tests/optional.test.ts +13 -0
  55. package/fullstacked_modules/zod/src/v4/classic/tests/partial.test.ts +193 -0
  56. package/fullstacked_modules/zod/src/v4/classic/tests/pickomit.test.ts +5 -5
  57. package/fullstacked_modules/zod/src/v4/classic/tests/pipe.test.ts +25 -5
  58. package/fullstacked_modules/zod/src/v4/classic/tests/prefault.test.ts +37 -0
  59. package/fullstacked_modules/zod/src/v4/classic/tests/preprocess.test.ts +5 -21
  60. package/fullstacked_modules/zod/src/v4/classic/tests/record.test.ts +15 -1
  61. package/fullstacked_modules/zod/src/v4/classic/tests/recursive-types.test.ts +226 -0
  62. package/fullstacked_modules/zod/src/v4/classic/tests/refine.test.ts +78 -5
  63. package/fullstacked_modules/zod/src/v4/classic/tests/set.test.ts +5 -3
  64. package/fullstacked_modules/zod/src/v4/classic/tests/string-formats.test.ts +16 -0
  65. package/fullstacked_modules/zod/src/v4/classic/tests/string.test.ts +204 -5
  66. package/fullstacked_modules/zod/src/v4/classic/tests/stringbool.test.ts +40 -0
  67. package/fullstacked_modules/zod/src/v4/classic/tests/template-literal.test.ts +14 -9
  68. package/fullstacked_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +315 -7
  69. package/fullstacked_modules/zod/src/v4/classic/tests/transform.test.ts +111 -0
  70. package/fullstacked_modules/zod/src/v4/classic/tests/tuple.test.ts +2 -2
  71. package/fullstacked_modules/zod/src/v4/classic/tests/union.test.ts +90 -3
  72. package/fullstacked_modules/zod/src/v4/core/api.ts +160 -133
  73. package/fullstacked_modules/zod/src/v4/core/checks.ts +6 -2
  74. package/fullstacked_modules/zod/src/v4/core/core.ts +9 -28
  75. package/fullstacked_modules/zod/src/v4/core/doc.ts +2 -2
  76. package/fullstacked_modules/zod/src/v4/core/errors.ts +49 -60
  77. package/fullstacked_modules/zod/src/v4/core/index.ts +0 -1
  78. package/fullstacked_modules/zod/src/v4/core/json-schema.ts +7 -3
  79. package/fullstacked_modules/zod/src/v4/core/parse.ts +101 -0
  80. package/fullstacked_modules/zod/src/v4/core/regexes.ts +56 -14
  81. package/fullstacked_modules/zod/src/v4/core/registries.ts +5 -4
  82. package/fullstacked_modules/zod/src/v4/core/schemas.ts +705 -230
  83. package/fullstacked_modules/zod/src/v4/core/tests/extend.test.ts +18 -0
  84. package/fullstacked_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
  85. package/fullstacked_modules/zod/src/v4/core/to-json-schema.ts +100 -33
  86. package/fullstacked_modules/zod/src/v4/core/util.ts +237 -102
  87. package/fullstacked_modules/zod/src/v4/core/versions.ts +2 -2
  88. package/fullstacked_modules/zod/src/v4/locales/bg.ts +136 -0
  89. package/fullstacked_modules/zod/src/v4/locales/da.ts +141 -0
  90. package/fullstacked_modules/zod/src/v4/locales/es.ts +44 -10
  91. package/fullstacked_modules/zod/src/v4/locales/index.ts +8 -0
  92. package/fullstacked_modules/zod/src/v4/locales/is.ts +127 -0
  93. package/fullstacked_modules/zod/src/v4/locales/ka.ts +138 -0
  94. package/fullstacked_modules/zod/src/v4/locales/kh.ts +3 -122
  95. package/fullstacked_modules/zod/src/v4/locales/km.ts +126 -0
  96. package/fullstacked_modules/zod/src/v4/locales/lt.ts +265 -0
  97. package/fullstacked_modules/zod/src/v4/locales/ua.ts +3 -122
  98. package/fullstacked_modules/zod/src/v4/locales/uk.ts +126 -0
  99. package/fullstacked_modules/zod/src/v4/locales/yo.ts +131 -0
  100. package/fullstacked_modules/zod/src/v4/mini/external.ts +1 -1
  101. package/fullstacked_modules/zod/src/v4/mini/parse.ts +14 -1
  102. package/fullstacked_modules/zod/src/v4/mini/schemas.ts +186 -40
  103. package/fullstacked_modules/zod/src/v4/mini/tests/assignability.test.ts +1 -1
  104. package/fullstacked_modules/zod/src/v4/mini/tests/codec.test.ts +529 -0
  105. package/fullstacked_modules/zod/src/v4/mini/tests/computed.test.ts +1 -1
  106. package/fullstacked_modules/zod/src/v4/mini/tests/error.test.ts +1 -1
  107. package/fullstacked_modules/zod/src/v4/mini/tests/index.test.ts +29 -1
  108. package/fullstacked_modules/zod/src/v4/mini/tests/number.test.ts +1 -1
  109. package/fullstacked_modules/zod/src/v4/mini/tests/object.test.ts +16 -1
  110. package/fullstacked_modules/zod/src/v4/mini/tests/prototypes.test.ts +1 -1
  111. package/fullstacked_modules/zod/src/v4/mini/tests/recursive-types.test.ts +1 -1
  112. package/fullstacked_modules/zod/src/v4/mini/tests/string.test.ts +17 -1
  113. package/fullstacked_modules/zod/v3/ZodError.cjs +1 -1
  114. package/fullstacked_modules/zod/v3/ZodError.d.cts +6 -6
  115. package/fullstacked_modules/zod/v3/ZodError.d.ts +6 -6
  116. package/fullstacked_modules/zod/v3/ZodError.js +1 -1
  117. package/fullstacked_modules/zod/v3/locales/en.cjs +1 -0
  118. package/fullstacked_modules/zod/v3/locales/en.d.cts +1 -1
  119. package/fullstacked_modules/zod/v3/package.json +6 -0
  120. package/fullstacked_modules/zod/v3/types.cjs +2 -0
  121. package/fullstacked_modules/zod/v3/types.d.cts +4 -1
  122. package/fullstacked_modules/zod/v3/types.d.ts +4 -1
  123. package/fullstacked_modules/zod/v3/types.js +2 -0
  124. package/fullstacked_modules/zod/v4/classic/checks.d.cts +1 -1
  125. package/fullstacked_modules/zod/v4/classic/checks.d.ts +1 -1
  126. package/fullstacked_modules/zod/v4/classic/compat.cjs +5 -1
  127. package/fullstacked_modules/zod/v4/classic/compat.d.cts +4 -0
  128. package/fullstacked_modules/zod/v4/classic/compat.d.ts +4 -0
  129. package/fullstacked_modules/zod/v4/classic/compat.js +4 -0
  130. package/fullstacked_modules/zod/v4/classic/errors.cjs +9 -2
  131. package/fullstacked_modules/zod/v4/classic/errors.js +9 -2
  132. package/fullstacked_modules/zod/v4/classic/external.cjs +2 -2
  133. package/fullstacked_modules/zod/v4/classic/external.d.cts +1 -1
  134. package/fullstacked_modules/zod/v4/classic/external.d.ts +1 -1
  135. package/fullstacked_modules/zod/v4/classic/external.js +1 -1
  136. package/fullstacked_modules/zod/v4/classic/package.json +6 -0
  137. package/fullstacked_modules/zod/v4/classic/parse.cjs +10 -1
  138. package/fullstacked_modules/zod/v4/classic/parse.d.cts +8 -0
  139. package/fullstacked_modules/zod/v4/classic/parse.d.ts +8 -0
  140. package/fullstacked_modules/zod/v4/classic/parse.js +9 -0
  141. package/fullstacked_modules/zod/v4/classic/schemas.cjs +90 -48
  142. package/fullstacked_modules/zod/v4/classic/schemas.d.cts +70 -27
  143. package/fullstacked_modules/zod/v4/classic/schemas.d.ts +70 -27
  144. package/fullstacked_modules/zod/v4/classic/schemas.js +81 -47
  145. package/fullstacked_modules/zod/v4/core/api.cjs +52 -31
  146. package/fullstacked_modules/zod/v4/core/api.d.cts +87 -76
  147. package/fullstacked_modules/zod/v4/core/api.d.ts +87 -76
  148. package/fullstacked_modules/zod/v4/core/api.js +50 -31
  149. package/fullstacked_modules/zod/v4/core/checks.cjs +4 -0
  150. package/fullstacked_modules/zod/v4/core/checks.d.cts +2 -2
  151. package/fullstacked_modules/zod/v4/core/checks.d.ts +2 -2
  152. package/fullstacked_modules/zod/v4/core/checks.js +4 -0
  153. package/fullstacked_modules/zod/v4/core/core.cjs +8 -1
  154. package/fullstacked_modules/zod/v4/core/core.d.cts +5 -2
  155. package/fullstacked_modules/zod/v4/core/core.d.ts +5 -2
  156. package/fullstacked_modules/zod/v4/core/core.js +6 -0
  157. package/fullstacked_modules/zod/v4/core/doc.d.cts +1 -1
  158. package/fullstacked_modules/zod/v4/core/doc.d.ts +1 -1
  159. package/fullstacked_modules/zod/v4/core/errors.cjs +6 -19
  160. package/fullstacked_modules/zod/v4/core/errors.d.cts +24 -22
  161. package/fullstacked_modules/zod/v4/core/errors.d.ts +24 -22
  162. package/fullstacked_modules/zod/v4/core/errors.js +6 -19
  163. package/fullstacked_modules/zod/v4/core/index.cjs +0 -1
  164. package/fullstacked_modules/zod/v4/core/index.d.cts +0 -1
  165. package/fullstacked_modules/zod/v4/core/index.d.ts +0 -1
  166. package/fullstacked_modules/zod/v4/core/index.js +0 -1
  167. package/fullstacked_modules/zod/v4/core/json-schema.d.cts +4 -3
  168. package/fullstacked_modules/zod/v4/core/json-schema.d.ts +4 -3
  169. package/fullstacked_modules/zod/v4/core/package.json +6 -0
  170. package/fullstacked_modules/zod/v4/core/parse.cjs +45 -1
  171. package/fullstacked_modules/zod/v4/core/parse.d.cts +24 -0
  172. package/fullstacked_modules/zod/v4/core/parse.d.ts +24 -0
  173. package/fullstacked_modules/zod/v4/core/parse.js +36 -0
  174. package/fullstacked_modules/zod/v4/core/regexes.cjs +49 -16
  175. package/fullstacked_modules/zod/v4/core/regexes.d.cts +18 -2
  176. package/fullstacked_modules/zod/v4/core/regexes.d.ts +18 -2
  177. package/fullstacked_modules/zod/v4/core/regexes.js +46 -14
  178. package/fullstacked_modules/zod/v4/core/registries.cjs +4 -3
  179. package/fullstacked_modules/zod/v4/core/registries.d.cts +2 -2
  180. package/fullstacked_modules/zod/v4/core/registries.d.ts +2 -2
  181. package/fullstacked_modules/zod/v4/core/registries.js +4 -3
  182. package/fullstacked_modules/zod/v4/core/schemas.cjs +409 -171
  183. package/fullstacked_modules/zod/v4/core/schemas.d.cts +88 -16
  184. package/fullstacked_modules/zod/v4/core/schemas.d.ts +88 -16
  185. package/fullstacked_modules/zod/v4/core/schemas.js +408 -170
  186. package/fullstacked_modules/zod/v4/core/to-json-schema.cjs +97 -31
  187. package/fullstacked_modules/zod/v4/core/to-json-schema.d.cts +5 -3
  188. package/fullstacked_modules/zod/v4/core/to-json-schema.d.ts +5 -3
  189. package/fullstacked_modules/zod/v4/core/to-json-schema.js +97 -31
  190. package/fullstacked_modules/zod/v4/core/util.cjs +220 -101
  191. package/fullstacked_modules/zod/v4/core/util.d.cts +14 -0
  192. package/fullstacked_modules/zod/v4/core/util.d.ts +14 -0
  193. package/fullstacked_modules/zod/v4/core/util.js +209 -101
  194. package/fullstacked_modules/zod/v4/core/versions.cjs +2 -2
  195. package/fullstacked_modules/zod/v4/core/versions.d.cts +1 -1
  196. package/fullstacked_modules/zod/v4/core/versions.d.ts +1 -1
  197. package/fullstacked_modules/zod/v4/core/versions.js +2 -2
  198. package/fullstacked_modules/zod/v4/locales/ar.cjs +1 -0
  199. package/fullstacked_modules/zod/v4/locales/ar.d.cts +2 -1
  200. package/fullstacked_modules/zod/v4/locales/az.cjs +1 -0
  201. package/fullstacked_modules/zod/v4/locales/az.d.cts +2 -1
  202. package/fullstacked_modules/zod/v4/locales/be.cjs +1 -0
  203. package/fullstacked_modules/zod/v4/locales/be.d.cts +2 -1
  204. package/fullstacked_modules/zod/v4/locales/bg.cjs +156 -0
  205. package/fullstacked_modules/zod/v4/locales/bg.d.cts +5 -0
  206. package/fullstacked_modules/zod/v4/locales/bg.d.ts +5 -0
  207. package/fullstacked_modules/zod/v4/locales/bg.js +128 -0
  208. package/fullstacked_modules/zod/v4/locales/ca.cjs +1 -0
  209. package/fullstacked_modules/zod/v4/locales/ca.d.cts +2 -1
  210. package/fullstacked_modules/zod/v4/locales/cs.cjs +1 -0
  211. package/fullstacked_modules/zod/v4/locales/cs.d.cts +2 -1
  212. package/fullstacked_modules/zod/v4/locales/da.cjs +158 -0
  213. package/fullstacked_modules/zod/v4/locales/da.d.cts +5 -0
  214. package/fullstacked_modules/zod/v4/locales/da.d.ts +4 -0
  215. package/fullstacked_modules/zod/v4/locales/da.js +131 -0
  216. package/fullstacked_modules/zod/v4/locales/de.cjs +1 -0
  217. package/fullstacked_modules/zod/v4/locales/de.d.cts +2 -1
  218. package/fullstacked_modules/zod/v4/locales/es.cjs +43 -10
  219. package/fullstacked_modules/zod/v4/locales/es.d.cts +2 -1
  220. package/fullstacked_modules/zod/v4/locales/es.js +42 -10
  221. package/fullstacked_modules/zod/v4/locales/fa.cjs +1 -0
  222. package/fullstacked_modules/zod/v4/locales/fa.d.cts +2 -1
  223. package/fullstacked_modules/zod/v4/locales/fi.cjs +1 -0
  224. package/fullstacked_modules/zod/v4/locales/fi.d.cts +2 -1
  225. package/fullstacked_modules/zod/v4/locales/fr-CA.cjs +1 -0
  226. package/fullstacked_modules/zod/v4/locales/fr-CA.d.cts +2 -1
  227. package/fullstacked_modules/zod/v4/locales/fr.cjs +1 -0
  228. package/fullstacked_modules/zod/v4/locales/fr.d.cts +2 -1
  229. package/fullstacked_modules/zod/v4/locales/he.cjs +1 -0
  230. package/fullstacked_modules/zod/v4/locales/he.d.cts +2 -1
  231. package/fullstacked_modules/zod/v4/locales/hu.cjs +1 -0
  232. package/fullstacked_modules/zod/v4/locales/hu.d.cts +2 -1
  233. package/fullstacked_modules/zod/v4/locales/id.cjs +1 -0
  234. package/fullstacked_modules/zod/v4/locales/id.d.cts +2 -1
  235. package/fullstacked_modules/zod/v4/locales/index.cjs +17 -1
  236. package/fullstacked_modules/zod/v4/locales/index.d.cts +8 -0
  237. package/fullstacked_modules/zod/v4/locales/index.d.ts +8 -0
  238. package/fullstacked_modules/zod/v4/locales/index.js +8 -0
  239. package/fullstacked_modules/zod/v4/locales/is.cjs +145 -0
  240. package/fullstacked_modules/zod/v4/locales/is.d.cts +5 -0
  241. package/fullstacked_modules/zod/v4/locales/is.d.ts +5 -0
  242. package/fullstacked_modules/zod/v4/locales/is.js +117 -0
  243. package/fullstacked_modules/zod/v4/locales/it.cjs +1 -0
  244. package/fullstacked_modules/zod/v4/locales/it.d.cts +2 -1
  245. package/fullstacked_modules/zod/v4/locales/ja.cjs +1 -0
  246. package/fullstacked_modules/zod/v4/locales/ja.d.cts +2 -1
  247. package/fullstacked_modules/zod/v4/locales/ka.cjs +153 -0
  248. package/fullstacked_modules/zod/v4/locales/ka.d.cts +5 -0
  249. package/fullstacked_modules/zod/v4/locales/ka.d.ts +5 -0
  250. package/fullstacked_modules/zod/v4/locales/ka.js +125 -0
  251. package/fullstacked_modules/zod/v4/locales/kh.cjs +6 -137
  252. package/fullstacked_modules/zod/v4/locales/kh.d.cts +2 -1
  253. package/fullstacked_modules/zod/v4/locales/kh.d.ts +1 -0
  254. package/fullstacked_modules/zod/v4/locales/kh.js +3 -115
  255. package/fullstacked_modules/zod/v4/locales/km.cjs +144 -0
  256. package/fullstacked_modules/zod/v4/locales/km.d.cts +5 -0
  257. package/fullstacked_modules/zod/v4/locales/km.d.ts +4 -0
  258. package/fullstacked_modules/zod/v4/locales/km.js +117 -0
  259. package/fullstacked_modules/zod/v4/locales/ko.cjs +1 -0
  260. package/fullstacked_modules/zod/v4/locales/ko.d.cts +2 -1
  261. package/fullstacked_modules/zod/v4/locales/lt.cjs +258 -0
  262. package/fullstacked_modules/zod/v4/locales/lt.d.cts +5 -0
  263. package/fullstacked_modules/zod/v4/locales/lt.d.ts +5 -0
  264. package/fullstacked_modules/zod/v4/locales/lt.js +230 -0
  265. package/fullstacked_modules/zod/v4/locales/mk.cjs +1 -0
  266. package/fullstacked_modules/zod/v4/locales/mk.d.cts +2 -1
  267. package/fullstacked_modules/zod/v4/locales/ms.cjs +1 -0
  268. package/fullstacked_modules/zod/v4/locales/ms.d.cts +2 -1
  269. package/fullstacked_modules/zod/v4/locales/nl.cjs +1 -0
  270. package/fullstacked_modules/zod/v4/locales/nl.d.cts +2 -1
  271. package/fullstacked_modules/zod/v4/locales/no.cjs +1 -0
  272. package/fullstacked_modules/zod/v4/locales/no.d.cts +2 -1
  273. package/fullstacked_modules/zod/v4/locales/ota.cjs +1 -0
  274. package/fullstacked_modules/zod/v4/locales/ota.d.cts +2 -1
  275. package/fullstacked_modules/zod/v4/locales/package.json +6 -0
  276. package/fullstacked_modules/zod/v4/locales/pl.cjs +1 -0
  277. package/fullstacked_modules/zod/v4/locales/pl.d.cts +2 -1
  278. package/fullstacked_modules/zod/v4/locales/ps.cjs +1 -0
  279. package/fullstacked_modules/zod/v4/locales/ps.d.cts +2 -1
  280. package/fullstacked_modules/zod/v4/locales/pt.cjs +1 -0
  281. package/fullstacked_modules/zod/v4/locales/pt.d.cts +2 -1
  282. package/fullstacked_modules/zod/v4/locales/ru.cjs +1 -0
  283. package/fullstacked_modules/zod/v4/locales/ru.d.cts +2 -1
  284. package/fullstacked_modules/zod/v4/locales/sl.cjs +1 -0
  285. package/fullstacked_modules/zod/v4/locales/sl.d.cts +2 -1
  286. package/fullstacked_modules/zod/v4/locales/sv.cjs +1 -0
  287. package/fullstacked_modules/zod/v4/locales/sv.d.cts +2 -1
  288. package/fullstacked_modules/zod/v4/locales/ta.cjs +1 -0
  289. package/fullstacked_modules/zod/v4/locales/ta.d.cts +2 -1
  290. package/fullstacked_modules/zod/v4/locales/th.cjs +1 -0
  291. package/fullstacked_modules/zod/v4/locales/th.d.cts +2 -1
  292. package/fullstacked_modules/zod/v4/locales/ua.cjs +6 -137
  293. package/fullstacked_modules/zod/v4/locales/ua.d.cts +2 -1
  294. package/fullstacked_modules/zod/v4/locales/ua.d.ts +1 -0
  295. package/fullstacked_modules/zod/v4/locales/ua.js +3 -115
  296. package/fullstacked_modules/zod/v4/locales/uk.cjs +144 -0
  297. package/fullstacked_modules/zod/v4/locales/uk.d.cts +5 -0
  298. package/fullstacked_modules/zod/v4/locales/uk.d.ts +4 -0
  299. package/fullstacked_modules/zod/v4/locales/uk.js +117 -0
  300. package/fullstacked_modules/zod/v4/locales/ur.cjs +1 -0
  301. package/fullstacked_modules/zod/v4/locales/ur.d.cts +2 -1
  302. package/fullstacked_modules/zod/v4/locales/vi.cjs +1 -0
  303. package/fullstacked_modules/zod/v4/locales/vi.d.cts +2 -1
  304. package/fullstacked_modules/zod/v4/locales/yo.cjs +142 -0
  305. package/fullstacked_modules/zod/v4/locales/yo.d.cts +5 -0
  306. package/fullstacked_modules/zod/v4/locales/yo.d.ts +4 -0
  307. package/fullstacked_modules/zod/v4/locales/yo.js +115 -0
  308. package/fullstacked_modules/zod/v4/locales/zh-CN.cjs +1 -0
  309. package/fullstacked_modules/zod/v4/locales/zh-CN.d.cts +2 -1
  310. package/fullstacked_modules/zod/v4/locales/zh-TW.cjs +1 -0
  311. package/fullstacked_modules/zod/v4/locales/zh-TW.d.cts +2 -1
  312. package/fullstacked_modules/zod/v4/mini/external.cjs +2 -2
  313. package/fullstacked_modules/zod/v4/mini/external.d.cts +1 -1
  314. package/fullstacked_modules/zod/v4/mini/external.d.ts +1 -1
  315. package/fullstacked_modules/zod/v4/mini/external.js +1 -1
  316. package/fullstacked_modules/zod/v4/mini/package.json +6 -0
  317. package/fullstacked_modules/zod/v4/mini/parse.cjs +9 -1
  318. package/fullstacked_modules/zod/v4/mini/parse.d.cts +1 -1
  319. package/fullstacked_modules/zod/v4/mini/parse.d.ts +1 -1
  320. package/fullstacked_modules/zod/v4/mini/parse.js +1 -1
  321. package/fullstacked_modules/zod/v4/mini/schemas.cjs +77 -24
  322. package/fullstacked_modules/zod/v4/mini/schemas.d.cts +56 -5
  323. package/fullstacked_modules/zod/v4/mini/schemas.d.ts +56 -5
  324. package/fullstacked_modules/zod/v4/mini/schemas.js +66 -23
  325. package/fullstacked_modules/zod/v4/package.json +6 -0
  326. package/fullstacked_modules/zod/v4-mini/package.json +6 -0
  327. package/index.js +1 -1
  328. package/package.json +1 -1
  329. package/fullstacked_modules/@fullstacked/ai-agent/story.txt +0 -7
  330. package/fullstacked_modules/@fullstacked/ai-agent/summary.txt +0 -7
  331. package/fullstacked_modules/zod/src/v4/core/function.ts +0 -176
  332. package/fullstacked_modules/zod/v4/core/function.cjs +0 -102
  333. package/fullstacked_modules/zod/v4/core/function.d.cts +0 -52
  334. package/fullstacked_modules/zod/v4/core/function.d.ts +0 -52
  335. package/fullstacked_modules/zod/v4/core/function.js +0 -75
@@ -1,7 +1,7 @@
1
1
  import * as checks from "./checks.js";
2
2
  import * as core from "./core.js";
3
3
  import { Doc } from "./doc.js";
4
- import { safeParse, safeParseAsync } from "./parse.js";
4
+ import { parse, parseAsync, safeParse, safeParseAsync } from "./parse.js";
5
5
  import * as regexes from "./regexes.js";
6
6
  import * as util from "./util.js";
7
7
  import { version } from "./versions.js";
@@ -16,7 +16,6 @@ export const $ZodType = /*@__PURE__*/ core.$constructor("$ZodType", (inst, def)
16
16
  if (inst._zod.traits.has("$ZodCheck")) {
17
17
  checks.unshift(inst);
18
18
  }
19
- //
20
19
  for (const ch of checks) {
21
20
  for (const fn of ch._zod.onattach) {
22
21
  fn(inst);
@@ -73,7 +72,47 @@ export const $ZodType = /*@__PURE__*/ core.$constructor("$ZodType", (inst, def)
73
72
  }
74
73
  return payload;
75
74
  };
75
+ // const handleChecksResult = (
76
+ // checkResult: ParsePayload,
77
+ // originalResult: ParsePayload,
78
+ // ctx: ParseContextInternal
79
+ // ): util.MaybeAsync<ParsePayload> => {
80
+ // // if the checks mutated the value && there are no issues, re-parse the result
81
+ // if (checkResult.value !== originalResult.value && !checkResult.issues.length)
82
+ // return inst._zod.parse(checkResult, ctx);
83
+ // return originalResult;
84
+ // };
85
+ const handleCanaryResult = (canary, payload, ctx) => {
86
+ // abort if the canary is aborted
87
+ if (util.aborted(canary)) {
88
+ canary.aborted = true;
89
+ return canary;
90
+ }
91
+ // run checks first, then
92
+ const checkResult = runChecks(payload, checks, ctx);
93
+ if (checkResult instanceof Promise) {
94
+ if (ctx.async === false)
95
+ throw new core.$ZodAsyncError();
96
+ return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));
97
+ }
98
+ return inst._zod.parse(checkResult, ctx);
99
+ };
76
100
  inst._zod.run = (payload, ctx) => {
101
+ if (ctx.skipChecks) {
102
+ return inst._zod.parse(payload, ctx);
103
+ }
104
+ if (ctx.direction === "backward") {
105
+ // run canary
106
+ // initial pass (no checks)
107
+ const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });
108
+ if (canary instanceof Promise) {
109
+ return canary.then((canary) => {
110
+ return handleCanaryResult(canary, payload, ctx);
111
+ });
112
+ }
113
+ return handleCanaryResult(canary, payload, ctx);
114
+ }
115
+ // forward
77
116
  const result = inst._zod.parse(payload, ctx);
78
117
  if (result instanceof Promise) {
79
118
  if (ctx.async === false)
@@ -156,9 +195,10 @@ export const $ZodURL = /*@__PURE__*/ core.$constructor("$ZodURL", (inst, def) =>
156
195
  $ZodStringFormat.init(inst, def);
157
196
  inst._zod.check = (payload) => {
158
197
  try {
159
- const orig = payload.value;
160
- const url = new URL(orig);
161
- const href = url.href;
198
+ // Trim whitespace from input
199
+ const trimmed = payload.value.trim();
200
+ // @ts-ignore
201
+ const url = new URL(trimmed);
162
202
  if (def.hostname) {
163
203
  def.hostname.lastIndex = 0;
164
204
  if (!def.hostname.test(url.hostname)) {
@@ -187,12 +227,14 @@ export const $ZodURL = /*@__PURE__*/ core.$constructor("$ZodURL", (inst, def) =>
187
227
  });
188
228
  }
189
229
  }
190
- // payload.value = url.href;
191
- if (!orig.endsWith("/") && href.endsWith("/")) {
192
- payload.value = href.slice(0, -1);
230
+ // Set the output value based on normalize flag
231
+ if (def.normalize) {
232
+ // Use normalized URL
233
+ payload.value = url.href;
193
234
  }
194
235
  else {
195
- payload.value = href;
236
+ // Preserve the original input (trimmed)
237
+ payload.value = trimmed;
196
238
  }
197
239
  return;
198
240
  }
@@ -268,6 +310,7 @@ export const $ZodIPv6 = /*@__PURE__*/ core.$constructor("$ZodIPv6", (inst, def)
268
310
  });
269
311
  inst._zod.check = (payload) => {
270
312
  try {
313
+ // @ts-ignore
271
314
  new URL(`http://[${payload.value}]`);
272
315
  // return;
273
316
  }
@@ -290,8 +333,11 @@ export const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor("$ZodCIDRv6", (inst, d
290
333
  def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation
291
334
  $ZodStringFormat.init(inst, def);
292
335
  inst._zod.check = (payload) => {
293
- const [address, prefix] = payload.value.split("/");
336
+ const parts = payload.value.split("/");
294
337
  try {
338
+ if (parts.length !== 2)
339
+ throw new Error();
340
+ const [address, prefix] = parts;
295
341
  if (!prefix)
296
342
  throw new Error();
297
343
  const prefixNum = Number(prefix);
@@ -299,6 +345,7 @@ export const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor("$ZodCIDRv6", (inst, d
299
345
  throw new Error();
300
346
  if (prefixNum < 0 || prefixNum > 128)
301
347
  throw new Error();
348
+ // @ts-ignore
302
349
  new URL(`http://[${address}]`);
303
350
  }
304
351
  catch {
@@ -319,6 +366,7 @@ export function isValidBase64(data) {
319
366
  if (data.length % 4 !== 0)
320
367
  return false;
321
368
  try {
369
+ // @ts-ignore
322
370
  atob(data);
323
371
  return true;
324
372
  }
@@ -383,6 +431,7 @@ export function isValidJWT(token, algorithm = null) {
383
431
  const [header] = tokensParts;
384
432
  if (!header)
385
433
  return false;
434
+ // @ts-ignore
386
435
  const parsedHeader = JSON.parse(atob(header));
387
436
  if ("typ" in parsedHeader && parsedHeader?.typ !== "JWT")
388
437
  return false;
@@ -653,58 +702,88 @@ export const $ZodArray = /*@__PURE__*/ core.$constructor("$ZodArray", (inst, def
653
702
  return payload; //handleArrayResultsAsync(parseResults, final);
654
703
  };
655
704
  });
656
- function handleObjectResult(result, final, key) {
657
- // if(isOptional)
705
+ function handlePropertyResult(result, final, key, input) {
658
706
  if (result.issues.length) {
659
707
  final.issues.push(...util.prefixIssues(key, result.issues));
660
708
  }
661
- final.value[key] = result.value;
709
+ if (result.value === undefined) {
710
+ if (key in input) {
711
+ final.value[key] = undefined;
712
+ }
713
+ }
714
+ else {
715
+ final.value[key] = result.value;
716
+ }
662
717
  }
663
- function handleOptionalObjectResult(result, final, key, input) {
664
- if (result.issues.length) {
665
- // validation failed against value schema
666
- if (input[key] === undefined) {
667
- // if input was undefined, ignore the error
668
- if (key in input) {
669
- final.value[key] = undefined;
670
- }
671
- else {
672
- final.value[key] = result.value;
673
- }
718
+ function normalizeDef(def) {
719
+ const keys = Object.keys(def.shape);
720
+ for (const k of keys) {
721
+ if (!def.shape?.[k]?._zod?.traits?.has("$ZodType")) {
722
+ throw new Error(`Invalid element at key "${k}": expected a Zod schema`);
723
+ }
724
+ }
725
+ const okeys = util.optionalKeys(def.shape);
726
+ return {
727
+ ...def,
728
+ keys,
729
+ keySet: new Set(keys),
730
+ numKeys: keys.length,
731
+ optionalKeys: new Set(okeys),
732
+ };
733
+ }
734
+ function handleCatchall(proms, input, payload, ctx, def, inst) {
735
+ const unrecognized = [];
736
+ // iterate over input keys
737
+ const keySet = def.keySet;
738
+ const _catchall = def.catchall._zod;
739
+ const t = _catchall.def.type;
740
+ for (const key of Object.keys(input)) {
741
+ if (keySet.has(key))
742
+ continue;
743
+ if (t === "never") {
744
+ unrecognized.push(key);
745
+ continue;
746
+ }
747
+ const r = _catchall.run({ value: input[key], issues: [] }, ctx);
748
+ if (r instanceof Promise) {
749
+ proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));
674
750
  }
675
751
  else {
676
- final.issues.push(...util.prefixIssues(key, result.issues));
752
+ handlePropertyResult(r, payload, key, input);
677
753
  }
678
754
  }
679
- else if (result.value === undefined) {
680
- // validation returned `undefined`
681
- if (key in input)
682
- final.value[key] = undefined;
683
- }
684
- else {
685
- // non-undefined value
686
- final.value[key] = result.value;
755
+ if (unrecognized.length) {
756
+ payload.issues.push({
757
+ code: "unrecognized_keys",
758
+ keys: unrecognized,
759
+ input,
760
+ inst,
761
+ });
687
762
  }
763
+ if (!proms.length)
764
+ return payload;
765
+ return Promise.all(proms).then(() => {
766
+ return payload;
767
+ });
688
768
  }
689
769
  export const $ZodObject = /*@__PURE__*/ core.$constructor("$ZodObject", (inst, def) => {
690
770
  // requires cast because technically $ZodObject doesn't extend
691
771
  $ZodType.init(inst, def);
692
- const _normalized = util.cached(() => {
693
- const keys = Object.keys(def.shape);
694
- for (const k of keys) {
695
- if (!(def.shape[k] instanceof $ZodType)) {
696
- throw new Error(`Invalid element at key "${k}": expected a Zod schema`);
697
- }
698
- }
699
- const okeys = util.optionalKeys(def.shape);
700
- return {
701
- shape: def.shape,
702
- keys,
703
- keySet: new Set(keys),
704
- numKeys: keys.length,
705
- optionalKeys: new Set(okeys),
706
- };
707
- });
772
+ // const sh = def.shape;
773
+ const desc = Object.getOwnPropertyDescriptor(def, "shape");
774
+ if (!desc?.get) {
775
+ const sh = def.shape;
776
+ Object.defineProperty(def, "shape", {
777
+ get: () => {
778
+ const newSh = { ...sh };
779
+ Object.defineProperty(def, "shape", {
780
+ value: newSh,
781
+ });
782
+ return newSh;
783
+ },
784
+ });
785
+ }
786
+ const _normalized = util.cached(() => normalizeDef(def));
708
787
  util.defineLazy(inst._zod, "propValues", () => {
709
788
  const shape = def.shape;
710
789
  const propValues = {};
@@ -718,6 +797,45 @@ export const $ZodObject = /*@__PURE__*/ core.$constructor("$ZodObject", (inst, d
718
797
  }
719
798
  return propValues;
720
799
  });
800
+ const isObject = util.isObject;
801
+ const catchall = def.catchall;
802
+ let value;
803
+ inst._zod.parse = (payload, ctx) => {
804
+ value ?? (value = _normalized.value);
805
+ const input = payload.value;
806
+ if (!isObject(input)) {
807
+ payload.issues.push({
808
+ expected: "object",
809
+ code: "invalid_type",
810
+ input,
811
+ inst,
812
+ });
813
+ return payload;
814
+ }
815
+ payload.value = {};
816
+ const proms = [];
817
+ const shape = value.shape;
818
+ for (const key of value.keys) {
819
+ const el = shape[key];
820
+ const r = el._zod.run({ value: input[key], issues: [] }, ctx);
821
+ if (r instanceof Promise) {
822
+ proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));
823
+ }
824
+ else {
825
+ handlePropertyResult(r, payload, key, input);
826
+ }
827
+ }
828
+ if (!catchall) {
829
+ return proms.length ? Promise.all(proms).then(() => payload) : payload;
830
+ }
831
+ return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);
832
+ };
833
+ });
834
+ export const $ZodObjectJIT = /*@__PURE__*/ core.$constructor("$ZodObjectJIT", (inst, def) => {
835
+ // requires cast because technically $ZodObject doesn't extend
836
+ $ZodObject.init(inst, def);
837
+ const superParse = inst._zod.parse;
838
+ const _normalized = util.cached(() => normalizeDef(def));
721
839
  const generateFastpass = (shape) => {
722
840
  const doc = new Doc(["shape", "payload", "ctx"]);
723
841
  const normalized = _normalized.value;
@@ -732,44 +850,29 @@ export const $ZodObject = /*@__PURE__*/ core.$constructor("$ZodObject", (inst, d
732
850
  ids[key] = `key_${counter++}`;
733
851
  }
734
852
  // A: preserve key order {
735
- doc.write(`const newResult = {}`);
853
+ doc.write(`const newResult = {};`);
736
854
  for (const key of normalized.keys) {
737
- if (normalized.optionalKeys.has(key)) {
738
- const id = ids[key];
739
- doc.write(`const ${id} = ${parseStr(key)};`);
740
- const k = util.esc(key);
741
- doc.write(`
855
+ const id = ids[key];
856
+ const k = util.esc(key);
857
+ doc.write(`const ${id} = ${parseStr(key)};`);
858
+ doc.write(`
742
859
  if (${id}.issues.length) {
743
- if (input[${k}] === undefined) {
744
- if (${k} in input) {
745
- newResult[${k}] = undefined;
746
- }
747
- } else {
748
- payload.issues = payload.issues.concat(
749
- ${id}.issues.map((iss) => ({
750
- ...iss,
751
- path: iss.path ? [${k}, ...iss.path] : [${k}],
752
- }))
753
- );
860
+ payload.issues = payload.issues.concat(${id}.issues.map(iss => ({
861
+ ...iss,
862
+ path: iss.path ? [${k}, ...iss.path] : [${k}]
863
+ })));
864
+ }
865
+
866
+
867
+ if (${id}.value === undefined) {
868
+ if (${k} in input) {
869
+ newResult[${k}] = undefined;
754
870
  }
755
- } else if (${id}.value === undefined) {
756
- if (${k} in input) newResult[${k}] = undefined;
757
871
  } else {
758
872
  newResult[${k}] = ${id}.value;
759
873
  }
760
- `);
761
- }
762
- else {
763
- const id = ids[key];
764
- // const id = ids[key];
765
- doc.write(`const ${id} = ${parseStr(key)};`);
766
- doc.write(`
767
- if (${id}.issues.length) payload.issues = payload.issues.concat(${id}.issues.map(iss => ({
768
- ...iss,
769
- path: iss.path ? [${util.esc(key)}, ...iss.path] : [${util.esc(key)}]
770
- })));`);
771
- doc.write(`newResult[${util.esc(key)}] = ${id}.value`);
772
- }
874
+
875
+ `);
773
876
  }
774
877
  doc.write(`payload.value = newResult;`);
775
878
  doc.write(`return payload;`);
@@ -795,80 +898,16 @@ export const $ZodObject = /*@__PURE__*/ core.$constructor("$ZodObject", (inst, d
795
898
  });
796
899
  return payload;
797
900
  }
798
- const proms = [];
799
901
  if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {
800
902
  // always synchronous
801
903
  if (!fastpass)
802
904
  fastpass = generateFastpass(def.shape);
803
905
  payload = fastpass(payload, ctx);
906
+ if (!catchall)
907
+ return payload;
908
+ return handleCatchall([], input, payload, ctx, value, inst);
804
909
  }
805
- else {
806
- payload.value = {};
807
- const shape = value.shape;
808
- for (const key of value.keys) {
809
- const el = shape[key];
810
- // do not add omitted optional keys
811
- // if (!(key in input)) {
812
- // if (optionalKeys.has(key)) continue;
813
- // payload.issues.push({
814
- // code: "invalid_type",
815
- // path: [key],
816
- // expected: "nonoptional",
817
- // note: `Missing required key: "${key}"`,
818
- // input,
819
- // inst,
820
- // });
821
- // }
822
- const r = el._zod.run({ value: input[key], issues: [] }, ctx);
823
- const isOptional = el._zod.optin === "optional" && el._zod.optout === "optional";
824
- if (r instanceof Promise) {
825
- proms.push(r.then((r) => isOptional ? handleOptionalObjectResult(r, payload, key, input) : handleObjectResult(r, payload, key)));
826
- }
827
- else if (isOptional) {
828
- handleOptionalObjectResult(r, payload, key, input);
829
- }
830
- else {
831
- handleObjectResult(r, payload, key);
832
- }
833
- }
834
- }
835
- if (!catchall) {
836
- // return payload;
837
- return proms.length ? Promise.all(proms).then(() => payload) : payload;
838
- }
839
- const unrecognized = [];
840
- // iterate over input keys
841
- const keySet = value.keySet;
842
- const _catchall = catchall._zod;
843
- const t = _catchall.def.type;
844
- for (const key of Object.keys(input)) {
845
- if (keySet.has(key))
846
- continue;
847
- if (t === "never") {
848
- unrecognized.push(key);
849
- continue;
850
- }
851
- const r = _catchall.run({ value: input[key], issues: [] }, ctx);
852
- if (r instanceof Promise) {
853
- proms.push(r.then((r) => handleObjectResult(r, payload, key)));
854
- }
855
- else {
856
- handleObjectResult(r, payload, key);
857
- }
858
- }
859
- if (unrecognized.length) {
860
- payload.issues.push({
861
- code: "unrecognized_keys",
862
- keys: unrecognized,
863
- input,
864
- inst,
865
- });
866
- }
867
- if (!proms.length)
868
- return payload;
869
- return Promise.all(proms).then(() => {
870
- return payload;
871
- });
910
+ return superParse(payload, ctx);
872
911
  };
873
912
  });
874
913
  function handleUnionResults(results, final, inst, ctx) {
@@ -878,6 +917,11 @@ function handleUnionResults(results, final, inst, ctx) {
878
917
  return final;
879
918
  }
880
919
  }
920
+ const nonaborted = results.filter((r) => !util.aborted(r));
921
+ if (nonaborted.length === 1) {
922
+ final.value = nonaborted[0].value;
923
+ return nonaborted[0];
924
+ }
881
925
  final.issues.push({
882
926
  code: "invalid_union",
883
927
  input: final.value,
@@ -903,7 +947,12 @@ export const $ZodUnion = /*@__PURE__*/ core.$constructor("$ZodUnion", (inst, def
903
947
  }
904
948
  return undefined;
905
949
  });
950
+ const single = def.options.length === 1;
951
+ const first = def.options[0]._zod.run;
906
952
  inst._zod.parse = (payload, ctx) => {
953
+ if (single) {
954
+ return first(payload, ctx);
955
+ }
907
956
  let async = false;
908
957
  const results = [];
909
958
  for (const option of def.options) {
@@ -953,7 +1002,7 @@ core.$constructor("$ZodDiscriminatedUnion", (inst, def) => {
953
1002
  const opts = def.options;
954
1003
  const map = new Map();
955
1004
  for (const o of opts) {
956
- const values = o._zod.propValues[def.discriminator];
1005
+ const values = o._zod.propValues?.[def.discriminator];
957
1006
  if (!values || values.size === 0)
958
1007
  throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(o)}"`);
959
1008
  for (const v of values) {
@@ -988,6 +1037,7 @@ core.$constructor("$ZodDiscriminatedUnion", (inst, def) => {
988
1037
  code: "invalid_union",
989
1038
  errors: [],
990
1039
  note: "No matching discriminator",
1040
+ discriminator: def.discriminator,
991
1041
  input,
992
1042
  path: [def.discriminator],
993
1043
  inst,
@@ -1094,10 +1144,10 @@ export const $ZodTuple = /*@__PURE__*/ core.$constructor("$ZodTuple", (inst, def
1094
1144
  const tooSmall = input.length < optStart - 1;
1095
1145
  if (tooBig || tooSmall) {
1096
1146
  payload.issues.push({
1147
+ ...(tooBig ? { code: "too_big", maximum: items.length } : { code: "too_small", minimum: items.length }),
1097
1148
  input,
1098
1149
  inst,
1099
1150
  origin: "array",
1100
- ...(tooBig ? { code: "too_big", maximum: items.length } : { code: "too_small", minimum: items.length }),
1101
1151
  });
1102
1152
  return payload;
1103
1153
  }
@@ -1209,8 +1259,8 @@ export const $ZodRecord = /*@__PURE__*/ core.$constructor("$ZodRecord", (inst, d
1209
1259
  }
1210
1260
  if (keyResult.issues.length) {
1211
1261
  payload.issues.push({
1212
- origin: "record",
1213
1262
  code: "invalid_key",
1263
+ origin: "record",
1214
1264
  issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),
1215
1265
  input: key,
1216
1266
  path: [key],
@@ -1281,8 +1331,8 @@ function handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {
1281
1331
  }
1282
1332
  else {
1283
1333
  final.issues.push({
1284
- origin: "map",
1285
1334
  code: "invalid_key",
1335
+ origin: "map",
1286
1336
  input,
1287
1337
  inst,
1288
1338
  issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),
@@ -1343,14 +1393,15 @@ function handleSetResult(result, final) {
1343
1393
  export const $ZodEnum = /*@__PURE__*/ core.$constructor("$ZodEnum", (inst, def) => {
1344
1394
  $ZodType.init(inst, def);
1345
1395
  const values = util.getEnumValues(def.entries);
1346
- inst._zod.values = new Set(values);
1396
+ const valuesSet = new Set(values);
1397
+ inst._zod.values = valuesSet;
1347
1398
  inst._zod.pattern = new RegExp(`^(${values
1348
1399
  .filter((k) => util.propertyKeyTypes.has(typeof k))
1349
1400
  .map((o) => (typeof o === "string" ? util.escapeRegex(o) : o.toString()))
1350
1401
  .join("|")})$`);
1351
1402
  inst._zod.parse = (payload, _ctx) => {
1352
1403
  const input = payload.value;
1353
- if (inst._zod.values.has(input)) {
1404
+ if (valuesSet.has(input)) {
1354
1405
  return payload;
1355
1406
  }
1356
1407
  payload.issues.push({
@@ -1364,9 +1415,12 @@ export const $ZodEnum = /*@__PURE__*/ core.$constructor("$ZodEnum", (inst, def)
1364
1415
  });
1365
1416
  export const $ZodLiteral = /*@__PURE__*/ core.$constructor("$ZodLiteral", (inst, def) => {
1366
1417
  $ZodType.init(inst, def);
1418
+ if (def.values.length === 0) {
1419
+ throw new Error("Cannot create literal schema with no valid values");
1420
+ }
1367
1421
  inst._zod.values = new Set(def.values);
1368
1422
  inst._zod.pattern = new RegExp(`^(${def.values
1369
- .map((o) => (typeof o === "string" ? util.escapeRegex(o) : o ? o.toString() : String(o)))
1423
+ .map((o) => (typeof o === "string" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))
1370
1424
  .join("|")})$`);
1371
1425
  inst._zod.parse = (payload, _ctx) => {
1372
1426
  const input = payload.value;
@@ -1386,6 +1440,7 @@ export const $ZodFile = /*@__PURE__*/ core.$constructor("$ZodFile", (inst, def)
1386
1440
  $ZodType.init(inst, def);
1387
1441
  inst._zod.parse = (payload, _ctx) => {
1388
1442
  const input = payload.value;
1443
+ // @ts-ignore
1389
1444
  if (input instanceof File)
1390
1445
  return payload;
1391
1446
  payload.issues.push({
@@ -1399,9 +1454,12 @@ export const $ZodFile = /*@__PURE__*/ core.$constructor("$ZodFile", (inst, def)
1399
1454
  });
1400
1455
  export const $ZodTransform = /*@__PURE__*/ core.$constructor("$ZodTransform", (inst, def) => {
1401
1456
  $ZodType.init(inst, def);
1402
- inst._zod.parse = (payload, _ctx) => {
1457
+ inst._zod.parse = (payload, ctx) => {
1458
+ if (ctx.direction === "backward") {
1459
+ throw new core.$ZodEncodeError(inst.constructor.name);
1460
+ }
1403
1461
  const _out = def.transform(payload.value, payload);
1404
- if (_ctx.async) {
1462
+ if (ctx.async) {
1405
1463
  const output = _out instanceof Promise ? _out : Promise.resolve(_out);
1406
1464
  return output.then((output) => {
1407
1465
  payload.value = output;
@@ -1415,6 +1473,12 @@ export const $ZodTransform = /*@__PURE__*/ core.$constructor("$ZodTransform", (i
1415
1473
  return payload;
1416
1474
  };
1417
1475
  });
1476
+ function handleOptionalResult(result, input) {
1477
+ if (result.issues.length && input === undefined) {
1478
+ return { issues: [], value: undefined };
1479
+ }
1480
+ return result;
1481
+ }
1418
1482
  export const $ZodOptional = /*@__PURE__*/ core.$constructor("$ZodOptional", (inst, def) => {
1419
1483
  $ZodType.init(inst, def);
1420
1484
  inst._zod.optin = "optional";
@@ -1428,7 +1492,10 @@ export const $ZodOptional = /*@__PURE__*/ core.$constructor("$ZodOptional", (ins
1428
1492
  });
1429
1493
  inst._zod.parse = (payload, ctx) => {
1430
1494
  if (def.innerType._zod.optin === "optional") {
1431
- return def.innerType._zod.run(payload, ctx);
1495
+ const result = def.innerType._zod.run(payload, ctx);
1496
+ if (result instanceof Promise)
1497
+ return result.then((r) => handleOptionalResult(r, payload.value));
1498
+ return handleOptionalResult(result, payload.value);
1432
1499
  }
1433
1500
  if (payload.value === undefined) {
1434
1501
  return payload;
@@ -1448,6 +1515,7 @@ export const $ZodNullable = /*@__PURE__*/ core.$constructor("$ZodNullable", (ins
1448
1515
  return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;
1449
1516
  });
1450
1517
  inst._zod.parse = (payload, ctx) => {
1518
+ // Forward direction (decode): allow null to pass through
1451
1519
  if (payload.value === null)
1452
1520
  return payload;
1453
1521
  return def.innerType._zod.run(payload, ctx);
@@ -1459,13 +1527,18 @@ export const $ZodDefault = /*@__PURE__*/ core.$constructor("$ZodDefault", (inst,
1459
1527
  inst._zod.optin = "optional";
1460
1528
  util.defineLazy(inst._zod, "values", () => def.innerType._zod.values);
1461
1529
  inst._zod.parse = (payload, ctx) => {
1530
+ if (ctx.direction === "backward") {
1531
+ return def.innerType._zod.run(payload, ctx);
1532
+ }
1533
+ // Forward direction (decode): apply defaults for undefined input
1462
1534
  if (payload.value === undefined) {
1463
1535
  payload.value = def.defaultValue;
1464
1536
  /**
1465
- * $ZodDefault always returns the default value immediately.
1537
+ * $ZodDefault returns the default value immediately in forward direction.
1466
1538
  * It doesn't pass the default value into the validator ("prefault"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a "prefault" for the pipe. */
1467
1539
  return payload;
1468
1540
  }
1541
+ // Forward direction: continue with default handling
1469
1542
  const result = def.innerType._zod.run(payload, ctx);
1470
1543
  if (result instanceof Promise) {
1471
1544
  return result.then((result) => handleDefaultResult(result, def));
@@ -1484,6 +1557,10 @@ export const $ZodPrefault = /*@__PURE__*/ core.$constructor("$ZodPrefault", (ins
1484
1557
  inst._zod.optin = "optional";
1485
1558
  util.defineLazy(inst._zod, "values", () => def.innerType._zod.values);
1486
1559
  inst._zod.parse = (payload, ctx) => {
1560
+ if (ctx.direction === "backward") {
1561
+ return def.innerType._zod.run(payload, ctx);
1562
+ }
1563
+ // Forward direction (decode): apply prefault for undefined input
1487
1564
  if (payload.value === undefined) {
1488
1565
  payload.value = def.defaultValue;
1489
1566
  }
@@ -1518,6 +1595,9 @@ function handleNonOptionalResult(payload, inst) {
1518
1595
  export const $ZodSuccess = /*@__PURE__*/ core.$constructor("$ZodSuccess", (inst, def) => {
1519
1596
  $ZodType.init(inst, def);
1520
1597
  inst._zod.parse = (payload, ctx) => {
1598
+ if (ctx.direction === "backward") {
1599
+ throw new core.$ZodEncodeError("ZodSuccess");
1600
+ }
1521
1601
  const result = def.innerType._zod.run(payload, ctx);
1522
1602
  if (result instanceof Promise) {
1523
1603
  return result.then((result) => {
@@ -1531,10 +1611,14 @@ export const $ZodSuccess = /*@__PURE__*/ core.$constructor("$ZodSuccess", (inst,
1531
1611
  });
1532
1612
  export const $ZodCatch = /*@__PURE__*/ core.$constructor("$ZodCatch", (inst, def) => {
1533
1613
  $ZodType.init(inst, def);
1534
- inst._zod.optin = "optional";
1614
+ util.defineLazy(inst._zod, "optin", () => def.innerType._zod.optin);
1535
1615
  util.defineLazy(inst._zod, "optout", () => def.innerType._zod.optout);
1536
1616
  util.defineLazy(inst._zod, "values", () => def.innerType._zod.values);
1537
1617
  inst._zod.parse = (payload, ctx) => {
1618
+ if (ctx.direction === "backward") {
1619
+ return def.innerType._zod.run(payload, ctx);
1620
+ }
1621
+ // Forward direction (decode): apply catch logic
1538
1622
  const result = def.innerType._zod.run(payload, ctx);
1539
1623
  if (result instanceof Promise) {
1540
1624
  return result.then((result) => {
@@ -1586,19 +1670,83 @@ export const $ZodPipe = /*@__PURE__*/ core.$constructor("$ZodPipe", (inst, def)
1586
1670
  util.defineLazy(inst._zod, "values", () => def.in._zod.values);
1587
1671
  util.defineLazy(inst._zod, "optin", () => def.in._zod.optin);
1588
1672
  util.defineLazy(inst._zod, "optout", () => def.out._zod.optout);
1673
+ util.defineLazy(inst._zod, "propValues", () => def.in._zod.propValues);
1589
1674
  inst._zod.parse = (payload, ctx) => {
1675
+ if (ctx.direction === "backward") {
1676
+ const right = def.out._zod.run(payload, ctx);
1677
+ if (right instanceof Promise) {
1678
+ return right.then((right) => handlePipeResult(right, def.in, ctx));
1679
+ }
1680
+ return handlePipeResult(right, def.in, ctx);
1681
+ }
1590
1682
  const left = def.in._zod.run(payload, ctx);
1591
1683
  if (left instanceof Promise) {
1592
- return left.then((left) => handlePipeResult(left, def, ctx));
1684
+ return left.then((left) => handlePipeResult(left, def.out, ctx));
1593
1685
  }
1594
- return handlePipeResult(left, def, ctx);
1686
+ return handlePipeResult(left, def.out, ctx);
1595
1687
  };
1596
1688
  });
1597
- function handlePipeResult(left, def, ctx) {
1598
- if (util.aborted(left)) {
1689
+ function handlePipeResult(left, next, ctx) {
1690
+ if (left.issues.length) {
1691
+ // prevent further checks
1692
+ left.aborted = true;
1599
1693
  return left;
1600
1694
  }
1601
- return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);
1695
+ return next._zod.run({ value: left.value, issues: left.issues }, ctx);
1696
+ }
1697
+ export const $ZodCodec = /*@__PURE__*/ core.$constructor("$ZodCodec", (inst, def) => {
1698
+ $ZodType.init(inst, def);
1699
+ util.defineLazy(inst._zod, "values", () => def.in._zod.values);
1700
+ util.defineLazy(inst._zod, "optin", () => def.in._zod.optin);
1701
+ util.defineLazy(inst._zod, "optout", () => def.out._zod.optout);
1702
+ util.defineLazy(inst._zod, "propValues", () => def.in._zod.propValues);
1703
+ inst._zod.parse = (payload, ctx) => {
1704
+ const direction = ctx.direction || "forward";
1705
+ if (direction === "forward") {
1706
+ const left = def.in._zod.run(payload, ctx);
1707
+ if (left instanceof Promise) {
1708
+ return left.then((left) => handleCodecAResult(left, def, ctx));
1709
+ }
1710
+ return handleCodecAResult(left, def, ctx);
1711
+ }
1712
+ else {
1713
+ const right = def.out._zod.run(payload, ctx);
1714
+ if (right instanceof Promise) {
1715
+ return right.then((right) => handleCodecAResult(right, def, ctx));
1716
+ }
1717
+ return handleCodecAResult(right, def, ctx);
1718
+ }
1719
+ };
1720
+ });
1721
+ function handleCodecAResult(result, def, ctx) {
1722
+ if (result.issues.length) {
1723
+ // prevent further checks
1724
+ result.aborted = true;
1725
+ return result;
1726
+ }
1727
+ const direction = ctx.direction || "forward";
1728
+ if (direction === "forward") {
1729
+ const transformed = def.transform(result.value, result);
1730
+ if (transformed instanceof Promise) {
1731
+ return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));
1732
+ }
1733
+ return handleCodecTxResult(result, transformed, def.out, ctx);
1734
+ }
1735
+ else {
1736
+ const transformed = def.reverseTransform(result.value, result);
1737
+ if (transformed instanceof Promise) {
1738
+ return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));
1739
+ }
1740
+ return handleCodecTxResult(result, transformed, def.in, ctx);
1741
+ }
1742
+ }
1743
+ function handleCodecTxResult(left, value, nextSchema, ctx) {
1744
+ // Check if transform added any issues
1745
+ if (left.issues.length) {
1746
+ left.aborted = true;
1747
+ return left;
1748
+ }
1749
+ return nextSchema._zod.run({ value, issues: left.issues }, ctx);
1602
1750
  }
1603
1751
  export const $ZodReadonly = /*@__PURE__*/ core.$constructor("$ZodReadonly", (inst, def) => {
1604
1752
  $ZodType.init(inst, def);
@@ -1607,6 +1755,9 @@ export const $ZodReadonly = /*@__PURE__*/ core.$constructor("$ZodReadonly", (ins
1607
1755
  util.defineLazy(inst._zod, "optin", () => def.innerType._zod.optin);
1608
1756
  util.defineLazy(inst._zod, "optout", () => def.innerType._zod.optout);
1609
1757
  inst._zod.parse = (payload, ctx) => {
1758
+ if (ctx.direction === "backward") {
1759
+ return def.innerType._zod.run(payload, ctx);
1760
+ }
1610
1761
  const result = def.innerType._zod.run(payload, ctx);
1611
1762
  if (result instanceof Promise) {
1612
1763
  return result.then(handleReadonlyResult);
@@ -1622,7 +1773,8 @@ export const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor("$ZodTemplate
1622
1773
  $ZodType.init(inst, def);
1623
1774
  const regexParts = [];
1624
1775
  for (const part of def.parts) {
1625
- if (part instanceof $ZodType) {
1776
+ if (typeof part === "object" && part !== null) {
1777
+ // is Zod schema
1626
1778
  if (!part._zod.pattern) {
1627
1779
  // if (!source)
1628
1780
  throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);
@@ -1658,7 +1810,7 @@ export const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor("$ZodTemplate
1658
1810
  input: payload.value,
1659
1811
  inst,
1660
1812
  code: "invalid_format",
1661
- format: "template_literal",
1813
+ format: def.format ?? "template_literal",
1662
1814
  pattern: inst._zod.pattern.source,
1663
1815
  });
1664
1816
  return payload;
@@ -1666,6 +1818,85 @@ export const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor("$ZodTemplate
1666
1818
  return payload;
1667
1819
  };
1668
1820
  });
1821
+ export const $ZodFunction = /*@__PURE__*/ core.$constructor("$ZodFunction", (inst, def) => {
1822
+ $ZodType.init(inst, def);
1823
+ inst._def = def;
1824
+ inst._zod.def = def;
1825
+ inst.implement = (func) => {
1826
+ if (typeof func !== "function") {
1827
+ throw new Error("implement() must be called with a function");
1828
+ }
1829
+ return function (...args) {
1830
+ const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;
1831
+ const result = Reflect.apply(func, this, parsedArgs);
1832
+ if (inst._def.output) {
1833
+ return parse(inst._def.output, result);
1834
+ }
1835
+ return result;
1836
+ };
1837
+ };
1838
+ inst.implementAsync = (func) => {
1839
+ if (typeof func !== "function") {
1840
+ throw new Error("implementAsync() must be called with a function");
1841
+ }
1842
+ return async function (...args) {
1843
+ const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;
1844
+ const result = await Reflect.apply(func, this, parsedArgs);
1845
+ if (inst._def.output) {
1846
+ return await parseAsync(inst._def.output, result);
1847
+ }
1848
+ return result;
1849
+ };
1850
+ };
1851
+ inst._zod.parse = (payload, _ctx) => {
1852
+ if (typeof payload.value !== "function") {
1853
+ payload.issues.push({
1854
+ code: "invalid_type",
1855
+ expected: "function",
1856
+ input: payload.value,
1857
+ inst,
1858
+ });
1859
+ return payload;
1860
+ }
1861
+ // Check if output is a promise type to determine if we should use async implementation
1862
+ const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === "promise";
1863
+ if (hasPromiseOutput) {
1864
+ payload.value = inst.implementAsync(payload.value);
1865
+ }
1866
+ else {
1867
+ payload.value = inst.implement(payload.value);
1868
+ }
1869
+ return payload;
1870
+ };
1871
+ inst.input = (...args) => {
1872
+ const F = inst.constructor;
1873
+ if (Array.isArray(args[0])) {
1874
+ return new F({
1875
+ type: "function",
1876
+ input: new $ZodTuple({
1877
+ type: "tuple",
1878
+ items: args[0],
1879
+ rest: args[1],
1880
+ }),
1881
+ output: inst._def.output,
1882
+ });
1883
+ }
1884
+ return new F({
1885
+ type: "function",
1886
+ input: args[0],
1887
+ output: inst._def.output,
1888
+ });
1889
+ };
1890
+ inst.output = (output) => {
1891
+ const F = inst.constructor;
1892
+ return new F({
1893
+ type: "function",
1894
+ input: inst._def.input,
1895
+ output,
1896
+ });
1897
+ };
1898
+ return inst;
1899
+ });
1669
1900
  export const $ZodPromise = /*@__PURE__*/ core.$constructor("$ZodPromise", (inst, def) => {
1670
1901
  $ZodType.init(inst, def);
1671
1902
  inst._zod.parse = (payload, ctx) => {
@@ -1674,11 +1905,18 @@ export const $ZodPromise = /*@__PURE__*/ core.$constructor("$ZodPromise", (inst,
1674
1905
  });
1675
1906
  export const $ZodLazy = /*@__PURE__*/ core.$constructor("$ZodLazy", (inst, def) => {
1676
1907
  $ZodType.init(inst, def);
1908
+ // let _innerType!: any;
1909
+ // util.defineLazy(def, "getter", () => {
1910
+ // if (!_innerType) {
1911
+ // _innerType = def.getter();
1912
+ // }
1913
+ // return () => _innerType;
1914
+ // });
1677
1915
  util.defineLazy(inst._zod, "innerType", () => def.getter());
1678
1916
  util.defineLazy(inst._zod, "pattern", () => inst._zod.innerType._zod.pattern);
1679
1917
  util.defineLazy(inst._zod, "propValues", () => inst._zod.innerType._zod.propValues);
1680
- util.defineLazy(inst._zod, "optin", () => inst._zod.innerType._zod.optin);
1681
- util.defineLazy(inst._zod, "optout", () => inst._zod.innerType._zod.optout);
1918
+ util.defineLazy(inst._zod, "optin", () => inst._zod.innerType._zod.optin ?? undefined);
1919
+ util.defineLazy(inst._zod, "optout", () => inst._zod.innerType._zod.optout ?? undefined);
1682
1920
  inst._zod.parse = (payload, ctx) => {
1683
1921
  const inner = inst._zod.innerType;
1684
1922
  return inner._zod.run(payload, ctx);