fullstacked 0.12.0-1175 → 0.12.0-1184

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 (500) hide show
  1. package/fullstacked_modules/@fullstacked/ai-agent/README.md +1 -0
  2. package/fullstacked_modules/@fullstacked/ai-agent/chat.json +1 -0
  3. package/fullstacked_modules/@fullstacked/ai-agent/index.scss +15 -0
  4. package/fullstacked_modules/@fullstacked/ai-agent/index.ts +92 -0
  5. package/fullstacked_modules/@fullstacked/ai-agent/lock.json +726 -0
  6. package/fullstacked_modules/@fullstacked/ai-agent/package.json +15 -0
  7. package/fullstacked_modules/@fullstacked/ai-agent/src/conversation.ts +169 -0
  8. package/fullstacked_modules/@fullstacked/ai-agent/src/default.scss +23 -0
  9. package/fullstacked_modules/@fullstacked/ai-agent/src/index.ts +3 -0
  10. package/fullstacked_modules/@fullstacked/ai-agent/src/input.ts +36 -0
  11. package/fullstacked_modules/@fullstacked/ai-agent/src/markdown.ts +46 -0
  12. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/interface.ts +6 -0
  13. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/ollama.ts +42 -0
  14. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/openai.ts +33 -0
  15. package/fullstacked_modules/@fullstacked/ai-agent/story.txt +7 -0
  16. package/fullstacked_modules/ai/index.d.ts +2 -0
  17. package/fullstacked_modules/ai/index.js +88268 -0
  18. package/fullstacked_modules/ai/index.ts +14 -0
  19. package/fullstacked_modules/ai/package.json +5 -0
  20. package/fullstacked_modules/ai/tools/fs.ts +60 -0
  21. package/fullstacked_modules/archive/index.d.ts +2 -0
  22. package/fullstacked_modules/bridge/index.ts +120 -0
  23. package/{lib → fullstacked_modules}/bridge/platform/node.ts +1 -1
  24. package/fullstacked_modules/config/config.ts +33 -0
  25. package/fullstacked_modules/config/index.ts +3 -0
  26. package/fullstacked_modules/connect/index.d.ts +2 -0
  27. package/{lib → fullstacked_modules}/core_message/core_message.ts +0 -19
  28. package/fullstacked_modules/core_open.ts +9 -0
  29. package/fullstacked_modules/esbuild/esbuild.ts +101 -0
  30. package/fullstacked_modules/esbuild/index.ts +3 -0
  31. package/fullstacked_modules/esbuild/sass.ts +103 -0
  32. package/fullstacked_modules/fetch/index.d.ts +2 -0
  33. package/{lib → fullstacked_modules}/fetch/index.ts +14 -0
  34. package/fullstacked_modules/fs/index.d.ts +2 -0
  35. package/fullstacked_modules/git/git.ts +238 -0
  36. package/fullstacked_modules/git/index.ts +3 -0
  37. package/fullstacked_modules/packages/index.ts +3 -0
  38. package/fullstacked_modules/packages/packages.ts +143 -0
  39. package/fullstacked_modules/platform/index.d.ts +2 -0
  40. package/fullstacked_modules/zod/LICENSE +21 -0
  41. package/fullstacked_modules/zod/README.md +208 -0
  42. package/fullstacked_modules/zod/index.d.cts +4 -0
  43. package/fullstacked_modules/zod/index.d.ts +4 -0
  44. package/fullstacked_modules/zod/locales/index.d.cts +1 -0
  45. package/fullstacked_modules/zod/locales/index.d.ts +1 -0
  46. package/fullstacked_modules/zod/mini/index.d.cts +1 -0
  47. package/fullstacked_modules/zod/mini/index.d.ts +1 -0
  48. package/fullstacked_modules/zod/package.json +134 -0
  49. package/fullstacked_modules/zod/src/index.ts +4 -0
  50. package/fullstacked_modules/zod/src/locales/index.ts +1 -0
  51. package/fullstacked_modules/zod/src/mini/index.ts +1 -0
  52. package/fullstacked_modules/zod/src/v3/ZodError.ts +330 -0
  53. package/fullstacked_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  54. package/fullstacked_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  55. package/fullstacked_modules/zod/src/v3/benchmarks/index.ts +59 -0
  56. package/fullstacked_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  57. package/fullstacked_modules/zod/src/v3/benchmarks/object.ts +69 -0
  58. package/fullstacked_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  59. package/fullstacked_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  60. package/fullstacked_modules/zod/src/v3/benchmarks/string.ts +55 -0
  61. package/fullstacked_modules/zod/src/v3/benchmarks/union.ts +80 -0
  62. package/fullstacked_modules/zod/src/v3/errors.ts +13 -0
  63. package/fullstacked_modules/zod/src/v3/external.ts +6 -0
  64. package/fullstacked_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  65. package/fullstacked_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  66. package/fullstacked_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  67. package/fullstacked_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  68. package/fullstacked_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  69. package/fullstacked_modules/zod/src/v3/helpers/util.ts +224 -0
  70. package/fullstacked_modules/zod/src/v3/index.ts +4 -0
  71. package/fullstacked_modules/zod/src/v3/locales/en.ts +124 -0
  72. package/fullstacked_modules/zod/src/v3/standard-schema.ts +113 -0
  73. package/fullstacked_modules/zod/src/v3/tests/Mocker.ts +54 -0
  74. package/fullstacked_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  75. package/fullstacked_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  76. package/fullstacked_modules/zod/src/v3/tests/array.test.ts +71 -0
  77. package/fullstacked_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  78. package/fullstacked_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  79. package/fullstacked_modules/zod/src/v3/tests/base.test.ts +29 -0
  80. package/fullstacked_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  81. package/fullstacked_modules/zod/src/v3/tests/branded.test.ts +53 -0
  82. package/fullstacked_modules/zod/src/v3/tests/catch.test.ts +220 -0
  83. package/fullstacked_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  84. package/fullstacked_modules/zod/src/v3/tests/complex.test.ts +56 -0
  85. package/fullstacked_modules/zod/src/v3/tests/custom.test.ts +31 -0
  86. package/fullstacked_modules/zod/src/v3/tests/date.test.ts +32 -0
  87. package/fullstacked_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  88. package/fullstacked_modules/zod/src/v3/tests/default.test.ts +112 -0
  89. package/fullstacked_modules/zod/src/v3/tests/description.test.ts +33 -0
  90. package/fullstacked_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  91. package/fullstacked_modules/zod/src/v3/tests/enum.test.ts +80 -0
  92. package/fullstacked_modules/zod/src/v3/tests/error.test.ts +551 -0
  93. package/fullstacked_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  94. package/fullstacked_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  95. package/fullstacked_modules/zod/src/v3/tests/function.test.ts +257 -0
  96. package/fullstacked_modules/zod/src/v3/tests/generics.test.ts +48 -0
  97. package/fullstacked_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  98. package/fullstacked_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  99. package/fullstacked_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  100. package/fullstacked_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  101. package/fullstacked_modules/zod/src/v3/tests/literal.test.ts +36 -0
  102. package/fullstacked_modules/zod/src/v3/tests/map.test.ts +110 -0
  103. package/fullstacked_modules/zod/src/v3/tests/masking.test.ts +4 -0
  104. package/fullstacked_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  105. package/fullstacked_modules/zod/src/v3/tests/nan.test.ts +21 -0
  106. package/fullstacked_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  107. package/fullstacked_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  108. package/fullstacked_modules/zod/src/v3/tests/number.test.ts +176 -0
  109. package/fullstacked_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  110. package/fullstacked_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  111. package/fullstacked_modules/zod/src/v3/tests/object.test.ts +434 -0
  112. package/fullstacked_modules/zod/src/v3/tests/optional.test.ts +42 -0
  113. package/fullstacked_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  114. package/fullstacked_modules/zod/src/v3/tests/parser.test.ts +41 -0
  115. package/fullstacked_modules/zod/src/v3/tests/partials.test.ts +243 -0
  116. package/fullstacked_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  117. package/fullstacked_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  118. package/fullstacked_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  119. package/fullstacked_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  120. package/fullstacked_modules/zod/src/v3/tests/promise.test.ts +90 -0
  121. package/fullstacked_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  122. package/fullstacked_modules/zod/src/v3/tests/record.test.ts +171 -0
  123. package/fullstacked_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  124. package/fullstacked_modules/zod/src/v3/tests/refine.test.ts +313 -0
  125. package/fullstacked_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  126. package/fullstacked_modules/zod/src/v3/tests/set.test.ts +142 -0
  127. package/fullstacked_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  128. package/fullstacked_modules/zod/src/v3/tests/string.test.ts +916 -0
  129. package/fullstacked_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  130. package/fullstacked_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  131. package/fullstacked_modules/zod/src/v3/tests/unions.test.ts +57 -0
  132. package/fullstacked_modules/zod/src/v3/tests/validations.test.ts +133 -0
  133. package/fullstacked_modules/zod/src/v3/tests/void.test.ts +15 -0
  134. package/fullstacked_modules/zod/src/v3/types.ts +5138 -0
  135. package/fullstacked_modules/zod/src/v4/classic/checks.ts +31 -0
  136. package/fullstacked_modules/zod/src/v4/classic/coerce.ts +27 -0
  137. package/fullstacked_modules/zod/src/v4/classic/compat.ts +70 -0
  138. package/fullstacked_modules/zod/src/v4/classic/errors.ts +82 -0
  139. package/fullstacked_modules/zod/src/v4/classic/external.ts +50 -0
  140. package/fullstacked_modules/zod/src/v4/classic/index.ts +5 -0
  141. package/fullstacked_modules/zod/src/v4/classic/iso.ts +90 -0
  142. package/fullstacked_modules/zod/src/v4/classic/parse.ts +33 -0
  143. package/fullstacked_modules/zod/src/v4/classic/schemas.ts +2031 -0
  144. package/fullstacked_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  145. package/fullstacked_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  146. package/fullstacked_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
  147. package/fullstacked_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  148. package/fullstacked_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  149. package/fullstacked_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  150. package/fullstacked_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  151. package/fullstacked_modules/zod/src/v4/classic/tests/brand.test.ts +63 -0
  152. package/fullstacked_modules/zod/src/v4/classic/tests/catch.test.ts +251 -0
  153. package/fullstacked_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  154. package/fullstacked_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  155. package/fullstacked_modules/zod/src/v4/classic/tests/continuability.test.ts +352 -0
  156. package/fullstacked_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  157. package/fullstacked_modules/zod/src/v4/classic/tests/date.test.ts +31 -0
  158. package/fullstacked_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
  159. package/fullstacked_modules/zod/src/v4/classic/tests/default.test.ts +313 -0
  160. package/fullstacked_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  161. package/fullstacked_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +661 -0
  162. package/fullstacked_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  163. package/fullstacked_modules/zod/src/v4/classic/tests/error-utils.test.ts +595 -0
  164. package/fullstacked_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  165. package/fullstacked_modules/zod/src/v4/classic/tests/file.test.ts +94 -0
  166. package/fullstacked_modules/zod/src/v4/classic/tests/firstparty.test.ts +175 -0
  167. package/fullstacked_modules/zod/src/v4/classic/tests/function.test.ts +268 -0
  168. package/fullstacked_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  169. package/fullstacked_modules/zod/src/v4/classic/tests/index.test.ts +829 -0
  170. package/fullstacked_modules/zod/src/v4/classic/tests/instanceof.test.ts +34 -0
  171. package/fullstacked_modules/zod/src/v4/classic/tests/intersection.test.ts +171 -0
  172. package/fullstacked_modules/zod/src/v4/classic/tests/json.test.ts +108 -0
  173. package/fullstacked_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  174. package/fullstacked_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
  175. package/fullstacked_modules/zod/src/v4/classic/tests/map.test.ts +196 -0
  176. package/fullstacked_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  177. package/fullstacked_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  178. package/fullstacked_modules/zod/src/v4/classic/tests/nonoptional.test.ts +86 -0
  179. package/fullstacked_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  180. package/fullstacked_modules/zod/src/v4/classic/tests/number.test.ts +270 -0
  181. package/fullstacked_modules/zod/src/v4/classic/tests/object.test.ts +563 -0
  182. package/fullstacked_modules/zod/src/v4/classic/tests/optional.test.ts +136 -0
  183. package/fullstacked_modules/zod/src/v4/classic/tests/partial.test.ts +340 -0
  184. package/fullstacked_modules/zod/src/v4/classic/tests/pickomit.test.ts +127 -0
  185. package/fullstacked_modules/zod/src/v4/classic/tests/pipe.test.ts +81 -0
  186. package/fullstacked_modules/zod/src/v4/classic/tests/prefault.test.ts +37 -0
  187. package/fullstacked_modules/zod/src/v4/classic/tests/preprocess.test.ts +287 -0
  188. package/fullstacked_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  189. package/fullstacked_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  190. package/fullstacked_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  191. package/fullstacked_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  192. package/fullstacked_modules/zod/src/v4/classic/tests/record.test.ts +356 -0
  193. package/fullstacked_modules/zod/src/v4/classic/tests/recursive-types.test.ts +477 -0
  194. package/fullstacked_modules/zod/src/v4/classic/tests/refine.test.ts +532 -0
  195. package/fullstacked_modules/zod/src/v4/classic/tests/registries.test.ts +204 -0
  196. package/fullstacked_modules/zod/src/v4/classic/tests/set.test.ts +179 -0
  197. package/fullstacked_modules/zod/src/v4/classic/tests/standard-schema.test.ts +57 -0
  198. package/fullstacked_modules/zod/src/v4/classic/tests/string-formats.test.ts +109 -0
  199. package/fullstacked_modules/zod/src/v4/classic/tests/string.test.ts +996 -0
  200. package/fullstacked_modules/zod/src/v4/classic/tests/stringbool.test.ts +66 -0
  201. package/fullstacked_modules/zod/src/v4/classic/tests/template-literal.test.ts +761 -0
  202. package/fullstacked_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2341 -0
  203. package/fullstacked_modules/zod/src/v4/classic/tests/transform.test.ts +354 -0
  204. package/fullstacked_modules/zod/src/v4/classic/tests/tuple.test.ts +163 -0
  205. package/fullstacked_modules/zod/src/v4/classic/tests/union.test.ts +181 -0
  206. package/fullstacked_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  207. package/fullstacked_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  208. package/fullstacked_modules/zod/src/v4/core/api.ts +1628 -0
  209. package/fullstacked_modules/zod/src/v4/core/checks.ts +1285 -0
  210. package/fullstacked_modules/zod/src/v4/core/config.ts +15 -0
  211. package/fullstacked_modules/zod/src/v4/core/core.ts +134 -0
  212. package/fullstacked_modules/zod/src/v4/core/doc.ts +44 -0
  213. package/fullstacked_modules/zod/src/v4/core/errors.ts +423 -0
  214. package/fullstacked_modules/zod/src/v4/core/function.ts +176 -0
  215. package/fullstacked_modules/zod/src/v4/core/index.ts +15 -0
  216. package/fullstacked_modules/zod/src/v4/core/json-schema.ts +146 -0
  217. package/fullstacked_modules/zod/src/v4/core/parse.ts +94 -0
  218. package/fullstacked_modules/zod/src/v4/core/regexes.ts +138 -0
  219. package/fullstacked_modules/zod/src/v4/core/registries.ts +97 -0
  220. package/fullstacked_modules/zod/src/v4/core/schemas.ts +3900 -0
  221. package/fullstacked_modules/zod/src/v4/core/standard-schema.ts +64 -0
  222. package/fullstacked_modules/zod/src/v4/core/tests/extend.test.ts +18 -0
  223. package/fullstacked_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  224. package/fullstacked_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  225. package/fullstacked_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  226. package/fullstacked_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  227. package/fullstacked_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  228. package/fullstacked_modules/zod/src/v4/core/to-json-schema.ts +1004 -0
  229. package/fullstacked_modules/zod/src/v4/core/util.ts +827 -0
  230. package/fullstacked_modules/zod/src/v4/core/versions.ts +5 -0
  231. package/fullstacked_modules/zod/src/v4/core/zsf.ts +323 -0
  232. package/fullstacked_modules/zod/src/v4/index.ts +4 -0
  233. package/fullstacked_modules/zod/src/v4/locales/ar.ts +125 -0
  234. package/fullstacked_modules/zod/src/v4/locales/az.ts +121 -0
  235. package/fullstacked_modules/zod/src/v4/locales/be.ts +184 -0
  236. package/fullstacked_modules/zod/src/v4/locales/bg.ts +136 -0
  237. package/fullstacked_modules/zod/src/v4/locales/ca.ts +127 -0
  238. package/fullstacked_modules/zod/src/v4/locales/cs.ts +142 -0
  239. package/fullstacked_modules/zod/src/v4/locales/da.ts +141 -0
  240. package/fullstacked_modules/zod/src/v4/locales/de.ts +124 -0
  241. package/fullstacked_modules/zod/src/v4/locales/en.ts +127 -0
  242. package/fullstacked_modules/zod/src/v4/locales/eo.ts +125 -0
  243. package/fullstacked_modules/zod/src/v4/locales/es.ts +125 -0
  244. package/fullstacked_modules/zod/src/v4/locales/fa.ts +134 -0
  245. package/fullstacked_modules/zod/src/v4/locales/fi.ts +131 -0
  246. package/fullstacked_modules/zod/src/v4/locales/fr-CA.ts +126 -0
  247. package/fullstacked_modules/zod/src/v4/locales/fr.ts +124 -0
  248. package/fullstacked_modules/zod/src/v4/locales/he.ts +125 -0
  249. package/fullstacked_modules/zod/src/v4/locales/hu.ts +126 -0
  250. package/fullstacked_modules/zod/src/v4/locales/id.ts +125 -0
  251. package/fullstacked_modules/zod/src/v4/locales/index.ts +42 -0
  252. package/fullstacked_modules/zod/src/v4/locales/is.ts +127 -0
  253. package/fullstacked_modules/zod/src/v4/locales/it.ts +125 -0
  254. package/fullstacked_modules/zod/src/v4/locales/ja.ts +122 -0
  255. package/fullstacked_modules/zod/src/v4/locales/kh.ts +126 -0
  256. package/fullstacked_modules/zod/src/v4/locales/ko.ts +131 -0
  257. package/fullstacked_modules/zod/src/v4/locales/mk.ts +127 -0
  258. package/fullstacked_modules/zod/src/v4/locales/ms.ts +124 -0
  259. package/fullstacked_modules/zod/src/v4/locales/nl.ts +126 -0
  260. package/fullstacked_modules/zod/src/v4/locales/no.ts +124 -0
  261. package/fullstacked_modules/zod/src/v4/locales/ota.ts +125 -0
  262. package/fullstacked_modules/zod/src/v4/locales/pl.ts +126 -0
  263. package/fullstacked_modules/zod/src/v4/locales/ps.ts +133 -0
  264. package/fullstacked_modules/zod/src/v4/locales/pt.ts +123 -0
  265. package/fullstacked_modules/zod/src/v4/locales/ru.ts +184 -0
  266. package/fullstacked_modules/zod/src/v4/locales/sl.ts +126 -0
  267. package/fullstacked_modules/zod/src/v4/locales/sv.ts +127 -0
  268. package/fullstacked_modules/zod/src/v4/locales/ta.ts +125 -0
  269. package/fullstacked_modules/zod/src/v4/locales/th.ts +126 -0
  270. package/fullstacked_modules/zod/src/v4/locales/tr.ts +121 -0
  271. package/fullstacked_modules/zod/src/v4/locales/ua.ts +126 -0
  272. package/fullstacked_modules/zod/src/v4/locales/ur.ts +126 -0
  273. package/fullstacked_modules/zod/src/v4/locales/vi.ts +125 -0
  274. package/fullstacked_modules/zod/src/v4/locales/yo.ts +131 -0
  275. package/fullstacked_modules/zod/src/v4/locales/zh-CN.ts +123 -0
  276. package/fullstacked_modules/zod/src/v4/locales/zh-TW.ts +125 -0
  277. package/fullstacked_modules/zod/src/v4/mini/checks.ts +32 -0
  278. package/fullstacked_modules/zod/src/v4/mini/coerce.ts +22 -0
  279. package/fullstacked_modules/zod/src/v4/mini/external.ts +40 -0
  280. package/fullstacked_modules/zod/src/v4/mini/index.ts +3 -0
  281. package/fullstacked_modules/zod/src/v4/mini/iso.ts +62 -0
  282. package/fullstacked_modules/zod/src/v4/mini/parse.ts +1 -0
  283. package/fullstacked_modules/zod/src/v4/mini/schemas.ts +1592 -0
  284. package/fullstacked_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  285. package/fullstacked_modules/zod/src/v4/mini/tests/brand.test.ts +51 -0
  286. package/fullstacked_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  287. package/fullstacked_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  288. package/fullstacked_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  289. package/fullstacked_modules/zod/src/v4/mini/tests/functions.test.ts +43 -0
  290. package/fullstacked_modules/zod/src/v4/mini/tests/index.test.ts +871 -0
  291. package/fullstacked_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  292. package/fullstacked_modules/zod/src/v4/mini/tests/object.test.ts +185 -0
  293. package/fullstacked_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  294. package/fullstacked_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
  295. package/fullstacked_modules/zod/src/v4/mini/tests/string.test.ts +299 -0
  296. package/fullstacked_modules/zod/src/v4-mini/index.ts +1 -0
  297. package/fullstacked_modules/zod/v3/ZodError.d.cts +164 -0
  298. package/fullstacked_modules/zod/v3/ZodError.d.ts +164 -0
  299. package/fullstacked_modules/zod/v3/errors.d.cts +5 -0
  300. package/fullstacked_modules/zod/v3/errors.d.ts +5 -0
  301. package/fullstacked_modules/zod/v3/external.d.cts +6 -0
  302. package/fullstacked_modules/zod/v3/external.d.ts +6 -0
  303. package/fullstacked_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  304. package/fullstacked_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  305. package/fullstacked_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  306. package/fullstacked_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  307. package/fullstacked_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  308. package/fullstacked_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  309. package/fullstacked_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  310. package/fullstacked_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  311. package/fullstacked_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  312. package/fullstacked_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  313. package/fullstacked_modules/zod/v3/helpers/util.d.cts +85 -0
  314. package/fullstacked_modules/zod/v3/helpers/util.d.ts +85 -0
  315. package/fullstacked_modules/zod/v3/index.d.cts +4 -0
  316. package/fullstacked_modules/zod/v3/index.d.ts +4 -0
  317. package/fullstacked_modules/zod/v3/locales/en.d.cts +3 -0
  318. package/fullstacked_modules/zod/v3/locales/en.d.ts +3 -0
  319. package/fullstacked_modules/zod/v3/standard-schema.d.cts +102 -0
  320. package/fullstacked_modules/zod/v3/standard-schema.d.ts +102 -0
  321. package/fullstacked_modules/zod/v3/types.d.cts +1034 -0
  322. package/fullstacked_modules/zod/v3/types.d.ts +1034 -0
  323. package/fullstacked_modules/zod/v4/classic/checks.d.cts +1 -0
  324. package/fullstacked_modules/zod/v4/classic/checks.d.ts +1 -0
  325. package/fullstacked_modules/zod/v4/classic/coerce.d.cts +17 -0
  326. package/fullstacked_modules/zod/v4/classic/coerce.d.ts +17 -0
  327. package/fullstacked_modules/zod/v4/classic/compat.d.cts +50 -0
  328. package/fullstacked_modules/zod/v4/classic/compat.d.ts +50 -0
  329. package/fullstacked_modules/zod/v4/classic/errors.d.cts +30 -0
  330. package/fullstacked_modules/zod/v4/classic/errors.d.ts +30 -0
  331. package/fullstacked_modules/zod/v4/classic/external.d.cts +13 -0
  332. package/fullstacked_modules/zod/v4/classic/external.d.ts +13 -0
  333. package/fullstacked_modules/zod/v4/classic/index.d.cts +4 -0
  334. package/fullstacked_modules/zod/v4/classic/index.d.ts +4 -0
  335. package/fullstacked_modules/zod/v4/classic/iso.d.cts +22 -0
  336. package/fullstacked_modules/zod/v4/classic/iso.d.ts +22 -0
  337. package/fullstacked_modules/zod/v4/classic/parse.d.cts +23 -0
  338. package/fullstacked_modules/zod/v4/classic/parse.d.ts +23 -0
  339. package/fullstacked_modules/zod/v4/classic/schemas.d.cts +619 -0
  340. package/fullstacked_modules/zod/v4/classic/schemas.d.ts +619 -0
  341. package/fullstacked_modules/zod/v4/core/api.d.cts +296 -0
  342. package/fullstacked_modules/zod/v4/core/api.d.ts +296 -0
  343. package/fullstacked_modules/zod/v4/core/checks.d.cts +278 -0
  344. package/fullstacked_modules/zod/v4/core/checks.d.ts +278 -0
  345. package/fullstacked_modules/zod/v4/core/core.d.cts +49 -0
  346. package/fullstacked_modules/zod/v4/core/core.d.ts +49 -0
  347. package/fullstacked_modules/zod/v4/core/doc.d.cts +14 -0
  348. package/fullstacked_modules/zod/v4/core/doc.d.ts +14 -0
  349. package/fullstacked_modules/zod/v4/core/errors.d.cts +210 -0
  350. package/fullstacked_modules/zod/v4/core/errors.d.ts +210 -0
  351. package/fullstacked_modules/zod/v4/core/function.d.cts +52 -0
  352. package/fullstacked_modules/zod/v4/core/function.d.ts +52 -0
  353. package/fullstacked_modules/zod/v4/core/index.d.cts +15 -0
  354. package/fullstacked_modules/zod/v4/core/index.d.ts +15 -0
  355. package/fullstacked_modules/zod/v4/core/json-schema.d.cts +87 -0
  356. package/fullstacked_modules/zod/v4/core/json-schema.d.ts +87 -0
  357. package/fullstacked_modules/zod/v4/core/parse.d.cts +25 -0
  358. package/fullstacked_modules/zod/v4/core/parse.d.ts +25 -0
  359. package/fullstacked_modules/zod/v4/core/regexes.d.cts +62 -0
  360. package/fullstacked_modules/zod/v4/core/regexes.d.ts +62 -0
  361. package/fullstacked_modules/zod/v4/core/registries.d.cts +35 -0
  362. package/fullstacked_modules/zod/v4/core/registries.d.ts +35 -0
  363. package/fullstacked_modules/zod/v4/core/schemas.d.cts +1055 -0
  364. package/fullstacked_modules/zod/v4/core/schemas.d.ts +1055 -0
  365. package/fullstacked_modules/zod/v4/core/standard-schema.d.cts +55 -0
  366. package/fullstacked_modules/zod/v4/core/standard-schema.d.ts +55 -0
  367. package/fullstacked_modules/zod/v4/core/to-json-schema.d.cts +89 -0
  368. package/fullstacked_modules/zod/v4/core/to-json-schema.d.ts +89 -0
  369. package/fullstacked_modules/zod/v4/core/util.d.cts +185 -0
  370. package/fullstacked_modules/zod/v4/core/util.d.ts +185 -0
  371. package/fullstacked_modules/zod/v4/core/versions.d.cts +5 -0
  372. package/fullstacked_modules/zod/v4/core/versions.d.ts +5 -0
  373. package/fullstacked_modules/zod/v4/index.d.cts +3 -0
  374. package/fullstacked_modules/zod/v4/index.d.ts +3 -0
  375. package/fullstacked_modules/zod/v4/locales/ar.d.cts +5 -0
  376. package/fullstacked_modules/zod/v4/locales/ar.d.ts +4 -0
  377. package/fullstacked_modules/zod/v4/locales/az.d.cts +5 -0
  378. package/fullstacked_modules/zod/v4/locales/az.d.ts +4 -0
  379. package/fullstacked_modules/zod/v4/locales/be.d.cts +5 -0
  380. package/fullstacked_modules/zod/v4/locales/be.d.ts +4 -0
  381. package/fullstacked_modules/zod/v4/locales/bg.d.cts +5 -0
  382. package/fullstacked_modules/zod/v4/locales/bg.d.ts +5 -0
  383. package/fullstacked_modules/zod/v4/locales/ca.d.cts +5 -0
  384. package/fullstacked_modules/zod/v4/locales/ca.d.ts +4 -0
  385. package/fullstacked_modules/zod/v4/locales/cs.d.cts +5 -0
  386. package/fullstacked_modules/zod/v4/locales/cs.d.ts +4 -0
  387. package/fullstacked_modules/zod/v4/locales/da.d.cts +5 -0
  388. package/fullstacked_modules/zod/v4/locales/da.d.ts +4 -0
  389. package/fullstacked_modules/zod/v4/locales/de.d.cts +5 -0
  390. package/fullstacked_modules/zod/v4/locales/de.d.ts +4 -0
  391. package/fullstacked_modules/zod/v4/locales/en.d.cts +5 -0
  392. package/fullstacked_modules/zod/v4/locales/en.d.ts +5 -0
  393. package/fullstacked_modules/zod/v4/locales/eo.d.cts +5 -0
  394. package/fullstacked_modules/zod/v4/locales/eo.d.ts +5 -0
  395. package/fullstacked_modules/zod/v4/locales/es.d.cts +5 -0
  396. package/fullstacked_modules/zod/v4/locales/es.d.ts +4 -0
  397. package/fullstacked_modules/zod/v4/locales/fa.d.cts +5 -0
  398. package/fullstacked_modules/zod/v4/locales/fa.d.ts +4 -0
  399. package/fullstacked_modules/zod/v4/locales/fi.d.cts +5 -0
  400. package/fullstacked_modules/zod/v4/locales/fi.d.ts +4 -0
  401. package/fullstacked_modules/zod/v4/locales/fr-CA.d.cts +5 -0
  402. package/fullstacked_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  403. package/fullstacked_modules/zod/v4/locales/fr.d.cts +5 -0
  404. package/fullstacked_modules/zod/v4/locales/fr.d.ts +4 -0
  405. package/fullstacked_modules/zod/v4/locales/he.d.cts +5 -0
  406. package/fullstacked_modules/zod/v4/locales/he.d.ts +4 -0
  407. package/fullstacked_modules/zod/v4/locales/hu.d.cts +5 -0
  408. package/fullstacked_modules/zod/v4/locales/hu.d.ts +4 -0
  409. package/fullstacked_modules/zod/v4/locales/id.d.cts +5 -0
  410. package/fullstacked_modules/zod/v4/locales/id.d.ts +4 -0
  411. package/fullstacked_modules/zod/v4/locales/index.d.cts +42 -0
  412. package/fullstacked_modules/zod/v4/locales/index.d.ts +42 -0
  413. package/fullstacked_modules/zod/v4/locales/is.d.cts +5 -0
  414. package/fullstacked_modules/zod/v4/locales/is.d.ts +5 -0
  415. package/fullstacked_modules/zod/v4/locales/it.d.cts +5 -0
  416. package/fullstacked_modules/zod/v4/locales/it.d.ts +4 -0
  417. package/fullstacked_modules/zod/v4/locales/ja.d.cts +5 -0
  418. package/fullstacked_modules/zod/v4/locales/ja.d.ts +4 -0
  419. package/fullstacked_modules/zod/v4/locales/kh.d.cts +5 -0
  420. package/fullstacked_modules/zod/v4/locales/kh.d.ts +4 -0
  421. package/fullstacked_modules/zod/v4/locales/ko.d.cts +5 -0
  422. package/fullstacked_modules/zod/v4/locales/ko.d.ts +4 -0
  423. package/fullstacked_modules/zod/v4/locales/mk.d.cts +5 -0
  424. package/fullstacked_modules/zod/v4/locales/mk.d.ts +4 -0
  425. package/fullstacked_modules/zod/v4/locales/ms.d.cts +5 -0
  426. package/fullstacked_modules/zod/v4/locales/ms.d.ts +4 -0
  427. package/fullstacked_modules/zod/v4/locales/nl.d.cts +5 -0
  428. package/fullstacked_modules/zod/v4/locales/nl.d.ts +4 -0
  429. package/fullstacked_modules/zod/v4/locales/no.d.cts +5 -0
  430. package/fullstacked_modules/zod/v4/locales/no.d.ts +4 -0
  431. package/fullstacked_modules/zod/v4/locales/ota.d.cts +5 -0
  432. package/fullstacked_modules/zod/v4/locales/ota.d.ts +4 -0
  433. package/fullstacked_modules/zod/v4/locales/pl.d.cts +5 -0
  434. package/fullstacked_modules/zod/v4/locales/pl.d.ts +4 -0
  435. package/fullstacked_modules/zod/v4/locales/ps.d.cts +5 -0
  436. package/fullstacked_modules/zod/v4/locales/ps.d.ts +4 -0
  437. package/fullstacked_modules/zod/v4/locales/pt.d.cts +5 -0
  438. package/fullstacked_modules/zod/v4/locales/pt.d.ts +4 -0
  439. package/fullstacked_modules/zod/v4/locales/ru.d.cts +5 -0
  440. package/fullstacked_modules/zod/v4/locales/ru.d.ts +4 -0
  441. package/fullstacked_modules/zod/v4/locales/sl.d.cts +5 -0
  442. package/fullstacked_modules/zod/v4/locales/sl.d.ts +4 -0
  443. package/fullstacked_modules/zod/v4/locales/sv.d.cts +5 -0
  444. package/fullstacked_modules/zod/v4/locales/sv.d.ts +4 -0
  445. package/fullstacked_modules/zod/v4/locales/ta.d.cts +5 -0
  446. package/fullstacked_modules/zod/v4/locales/ta.d.ts +4 -0
  447. package/fullstacked_modules/zod/v4/locales/th.d.cts +5 -0
  448. package/fullstacked_modules/zod/v4/locales/th.d.ts +4 -0
  449. package/fullstacked_modules/zod/v4/locales/tr.d.cts +5 -0
  450. package/fullstacked_modules/zod/v4/locales/tr.d.ts +5 -0
  451. package/fullstacked_modules/zod/v4/locales/ua.d.cts +5 -0
  452. package/fullstacked_modules/zod/v4/locales/ua.d.ts +4 -0
  453. package/fullstacked_modules/zod/v4/locales/ur.d.cts +5 -0
  454. package/fullstacked_modules/zod/v4/locales/ur.d.ts +4 -0
  455. package/fullstacked_modules/zod/v4/locales/vi.d.cts +5 -0
  456. package/fullstacked_modules/zod/v4/locales/vi.d.ts +4 -0
  457. package/fullstacked_modules/zod/v4/locales/yo.d.cts +5 -0
  458. package/fullstacked_modules/zod/v4/locales/yo.d.ts +4 -0
  459. package/fullstacked_modules/zod/v4/locales/zh-CN.d.cts +5 -0
  460. package/fullstacked_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  461. package/fullstacked_modules/zod/v4/locales/zh-TW.d.cts +5 -0
  462. package/fullstacked_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  463. package/fullstacked_modules/zod/v4/mini/checks.d.cts +1 -0
  464. package/fullstacked_modules/zod/v4/mini/checks.d.ts +1 -0
  465. package/fullstacked_modules/zod/v4/mini/coerce.d.cts +7 -0
  466. package/fullstacked_modules/zod/v4/mini/coerce.d.ts +7 -0
  467. package/fullstacked_modules/zod/v4/mini/external.d.cts +11 -0
  468. package/fullstacked_modules/zod/v4/mini/external.d.ts +11 -0
  469. package/fullstacked_modules/zod/v4/mini/index.d.cts +3 -0
  470. package/fullstacked_modules/zod/v4/mini/index.d.ts +3 -0
  471. package/fullstacked_modules/zod/v4/mini/iso.d.cts +22 -0
  472. package/fullstacked_modules/zod/v4/mini/iso.d.ts +22 -0
  473. package/fullstacked_modules/zod/v4/mini/parse.d.cts +1 -0
  474. package/fullstacked_modules/zod/v4/mini/parse.d.ts +1 -0
  475. package/fullstacked_modules/zod/v4/mini/schemas.d.cts +358 -0
  476. package/fullstacked_modules/zod/v4/mini/schemas.d.ts +358 -0
  477. package/fullstacked_modules/zod/v4-mini/index.d.cts +1 -0
  478. package/fullstacked_modules/zod/v4-mini/index.d.ts +1 -0
  479. package/index.js +17 -12
  480. package/package.json +1 -1
  481. package/lib/bridge/index.ts +0 -53
  482. package/lib/fullstacked.d.ts +0 -208
  483. /package/{lib → fullstacked_modules}/archive/archive.ts +0 -0
  484. /package/{lib → fullstacked_modules}/archive/index.ts +0 -0
  485. /package/{lib → fullstacked_modules}/base64.ts +0 -0
  486. /package/{lib → fullstacked_modules}/bridge/platform/android.ts +0 -0
  487. /package/{lib → fullstacked_modules}/bridge/platform/apple.ts +0 -0
  488. /package/{lib → fullstacked_modules}/bridge/platform/electron.ts +0 -0
  489. /package/{lib → fullstacked_modules}/bridge/platform/linux-gtk.ts +0 -0
  490. /package/{lib → fullstacked_modules}/bridge/platform/linux-qt.ts +0 -0
  491. /package/{lib → fullstacked_modules}/bridge/platform/wasm.ts +0 -0
  492. /package/{lib → fullstacked_modules}/bridge/platform/windows.ts +0 -0
  493. /package/{lib → fullstacked_modules}/bridge/serialization.ts +0 -0
  494. /package/{lib → fullstacked_modules}/components/snackbar.css +0 -0
  495. /package/{lib → fullstacked_modules}/components/snackbar.ts +0 -0
  496. /package/{lib → fullstacked_modules}/connect/index.ts +0 -0
  497. /package/{lib → fullstacked_modules}/core_message/index.ts +0 -0
  498. /package/{lib → fullstacked_modules}/fs/fs.ts +0 -0
  499. /package/{lib → fullstacked_modules}/fs/index.ts +0 -0
  500. /package/{lib → fullstacked_modules}/platform/index.ts +0 -0
@@ -0,0 +1,54 @@
1
+ function getRandomInt(max: number) {
2
+ return Math.floor(Math.random() * Math.floor(max));
3
+ }
4
+
5
+ const testSymbol = Symbol("test");
6
+
7
+ export class Mocker {
8
+ pick = (...args: any[]): any => {
9
+ return args[getRandomInt(args.length)];
10
+ };
11
+
12
+ get string(): string {
13
+ return Math.random().toString(36).substring(7);
14
+ }
15
+ get number(): number {
16
+ return Math.random() * 100;
17
+ }
18
+ get bigint(): bigint {
19
+ return BigInt(Math.floor(Math.random() * 10000));
20
+ }
21
+ get boolean(): boolean {
22
+ return Math.random() < 0.5;
23
+ }
24
+ get date(): Date {
25
+ return new Date(Math.floor(Date.now() * Math.random()));
26
+ }
27
+ get symbol(): symbol {
28
+ return testSymbol;
29
+ }
30
+ get null(): null {
31
+ return null;
32
+ }
33
+ get undefined(): undefined {
34
+ return undefined;
35
+ }
36
+ get stringOptional(): string | undefined {
37
+ return this.pick(this.string, this.undefined);
38
+ }
39
+ get stringNullable(): string | null {
40
+ return this.pick(this.string, this.null);
41
+ }
42
+ get numberOptional(): number | undefined {
43
+ return this.pick(this.number, this.undefined);
44
+ }
45
+ get numberNullable(): number | null {
46
+ return this.pick(this.number, this.null);
47
+ }
48
+ get booleanOptional(): boolean | undefined {
49
+ return this.pick(this.boolean, this.undefined);
50
+ }
51
+ get booleanNullable(): boolean | null {
52
+ return this.pick(this.boolean, this.null);
53
+ }
54
+ }
@@ -0,0 +1,157 @@
1
+ // @ts-ignore TS6133
2
+ import { expect, test } from "vitest";
3
+
4
+ import * as z from "zod/v3";
5
+ import { util } from "../helpers/util.js";
6
+
7
+ const Test = z.object({
8
+ f1: z.number(),
9
+ f2: z.string().optional(),
10
+ f3: z.string().nullable(),
11
+ f4: z.array(z.object({ t: z.union([z.string(), z.boolean()]) })),
12
+ });
13
+ type TestFlattenedErrors = z.inferFlattenedErrors<typeof Test, { message: string; code: number }>;
14
+ type TestFormErrors = z.inferFlattenedErrors<typeof Test>;
15
+
16
+ test("default flattened errors type inference", () => {
17
+ type TestTypeErrors = {
18
+ formErrors: string[];
19
+ fieldErrors: { [P in keyof z.TypeOf<typeof Test>]?: string[] | undefined };
20
+ };
21
+
22
+ util.assertEqual<z.inferFlattenedErrors<typeof Test>, TestTypeErrors>(true);
23
+ util.assertEqual<z.inferFlattenedErrors<typeof Test, { message: string }>, TestTypeErrors>(false);
24
+ });
25
+
26
+ test("custom flattened errors type inference", () => {
27
+ type ErrorType = { message: string; code: number };
28
+ type TestTypeErrors = {
29
+ formErrors: ErrorType[];
30
+ fieldErrors: {
31
+ [P in keyof z.TypeOf<typeof Test>]?: ErrorType[] | undefined;
32
+ };
33
+ };
34
+
35
+ util.assertEqual<z.inferFlattenedErrors<typeof Test>, TestTypeErrors>(false);
36
+ util.assertEqual<z.inferFlattenedErrors<typeof Test, { message: string; code: number }>, TestTypeErrors>(true);
37
+ util.assertEqual<z.inferFlattenedErrors<typeof Test, { message: string }>, TestTypeErrors>(false);
38
+ });
39
+
40
+ test("form errors type inference", () => {
41
+ type TestTypeErrors = {
42
+ formErrors: string[];
43
+ fieldErrors: { [P in keyof z.TypeOf<typeof Test>]?: string[] | undefined };
44
+ };
45
+
46
+ util.assertEqual<z.inferFlattenedErrors<typeof Test>, TestTypeErrors>(true);
47
+ });
48
+
49
+ test(".flatten() type assertion", () => {
50
+ const parsed = Test.safeParse({}) as z.SafeParseError<void>;
51
+ const validFlattenedErrors: TestFlattenedErrors = parsed.error.flatten(() => ({ message: "", code: 0 }));
52
+ // @ts-expect-error should fail assertion between `TestFlattenedErrors` and unmapped `flatten()`.
53
+ const invalidFlattenedErrors: TestFlattenedErrors = parsed.error.flatten();
54
+ const validFormErrors: TestFormErrors = parsed.error.flatten();
55
+ // @ts-expect-error should fail assertion between `TestFormErrors` and mapped `flatten()`.
56
+ const invalidFormErrors: TestFormErrors = parsed.error.flatten(() => ({
57
+ message: "string",
58
+ code: 0,
59
+ }));
60
+
61
+ [validFlattenedErrors, invalidFlattenedErrors, validFormErrors, invalidFormErrors];
62
+ });
63
+
64
+ test(".formErrors type assertion", () => {
65
+ const parsed = Test.safeParse({}) as z.SafeParseError<void>;
66
+ const validFormErrors: TestFormErrors = parsed.error.formErrors;
67
+ // @ts-expect-error should fail assertion between `TestFlattenedErrors` and `.formErrors`.
68
+ const invalidFlattenedErrors: TestFlattenedErrors = parsed.error.formErrors;
69
+
70
+ [validFormErrors, invalidFlattenedErrors];
71
+ });
72
+
73
+ test("all errors", () => {
74
+ const propertySchema = z.string();
75
+ const schema = z
76
+ .object({
77
+ a: propertySchema,
78
+ b: propertySchema,
79
+ })
80
+ .refine(
81
+ (val) => {
82
+ return val.a === val.b;
83
+ },
84
+ { message: "Must be equal" }
85
+ );
86
+
87
+ try {
88
+ schema.parse({
89
+ a: "asdf",
90
+ b: "qwer",
91
+ });
92
+ } catch (error) {
93
+ if (error instanceof z.ZodError) {
94
+ expect(error.flatten()).toEqual({
95
+ formErrors: ["Must be equal"],
96
+ fieldErrors: {},
97
+ });
98
+ }
99
+ }
100
+
101
+ try {
102
+ schema.parse({
103
+ a: null,
104
+ b: null,
105
+ });
106
+ } catch (_error) {
107
+ const error = _error as z.ZodError;
108
+ expect(error.flatten()).toEqual({
109
+ formErrors: [],
110
+ fieldErrors: {
111
+ a: ["Expected string, received null"],
112
+ b: ["Expected string, received null"],
113
+ },
114
+ });
115
+
116
+ expect(error.flatten((iss) => iss.message.toUpperCase())).toEqual({
117
+ formErrors: [],
118
+ fieldErrors: {
119
+ a: ["EXPECTED STRING, RECEIVED NULL"],
120
+ b: ["EXPECTED STRING, RECEIVED NULL"],
121
+ },
122
+ });
123
+ // Test identity
124
+
125
+ expect(error.flatten((i: z.ZodIssue) => i)).toEqual({
126
+ formErrors: [],
127
+ fieldErrors: {
128
+ a: [
129
+ {
130
+ code: "invalid_type",
131
+ expected: "string",
132
+ message: "Expected string, received null",
133
+ path: ["a"],
134
+ received: "null",
135
+ },
136
+ ],
137
+ b: [
138
+ {
139
+ code: "invalid_type",
140
+ expected: "string",
141
+ message: "Expected string, received null",
142
+ path: ["b"],
143
+ received: "null",
144
+ },
145
+ ],
146
+ },
147
+ });
148
+ // Test mapping
149
+ expect(error.flatten((i: z.ZodIssue) => i.message.length)).toEqual({
150
+ formErrors: [],
151
+ fieldErrors: {
152
+ a: ["Expected string, received null".length],
153
+ b: ["Expected string, received null".length],
154
+ },
155
+ });
156
+ }
157
+ });
@@ -0,0 +1,28 @@
1
+ // @ts-ignore TS6133
2
+ import { expect, test } from "vitest";
3
+
4
+ import * as z from "zod/v3";
5
+ import { util } from "../helpers/util.js";
6
+
7
+ test("check any inference", () => {
8
+ const t1 = z.any();
9
+ t1.optional();
10
+ t1.nullable();
11
+ type t1 = z.infer<typeof t1>;
12
+ util.assertEqual<t1, any>(true);
13
+ });
14
+
15
+ test("check unknown inference", () => {
16
+ const t1 = z.unknown();
17
+ t1.optional();
18
+ t1.nullable();
19
+ type t1 = z.infer<typeof t1>;
20
+ util.assertEqual<t1, unknown>(true);
21
+ });
22
+
23
+ test("check never inference", () => {
24
+ const t1 = z.never();
25
+ expect(() => t1.parse(undefined)).toThrow();
26
+ expect(() => t1.parse("asdf")).toThrow();
27
+ expect(() => t1.parse(null)).toThrow();
28
+ });
@@ -0,0 +1,71 @@
1
+ // @ts-ignore TS6133
2
+ import { expect, test } from "vitest";
3
+
4
+ import * as z from "zod/v3";
5
+ import { util } from "../helpers/util.js";
6
+
7
+ const minTwo = z.string().array().min(2);
8
+ const maxTwo = z.string().array().max(2);
9
+ const justTwo = z.string().array().length(2);
10
+ const intNum = z.string().array().nonempty();
11
+ const nonEmptyMax = z.string().array().nonempty().max(2);
12
+
13
+ type t1 = z.infer<typeof nonEmptyMax>;
14
+ util.assertEqual<[string, ...string[]], t1>(true);
15
+
16
+ type t2 = z.infer<typeof minTwo>;
17
+ util.assertEqual<string[], t2>(true);
18
+
19
+ test("passing validations", () => {
20
+ minTwo.parse(["a", "a"]);
21
+ minTwo.parse(["a", "a", "a"]);
22
+ maxTwo.parse(["a", "a"]);
23
+ maxTwo.parse(["a"]);
24
+ justTwo.parse(["a", "a"]);
25
+ intNum.parse(["a"]);
26
+ nonEmptyMax.parse(["a"]);
27
+ });
28
+
29
+ test("failing validations", () => {
30
+ expect(() => minTwo.parse(["a"])).toThrow();
31
+ expect(() => maxTwo.parse(["a", "a", "a"])).toThrow();
32
+ expect(() => justTwo.parse(["a"])).toThrow();
33
+ expect(() => justTwo.parse(["a", "a", "a"])).toThrow();
34
+ expect(() => intNum.parse([])).toThrow();
35
+ expect(() => nonEmptyMax.parse([])).toThrow();
36
+ expect(() => nonEmptyMax.parse(["a", "a", "a"])).toThrow();
37
+ });
38
+
39
+ test("parse empty array in nonempty", () => {
40
+ expect(() =>
41
+ z
42
+ .array(z.string())
43
+ .nonempty()
44
+ .parse([] as any)
45
+ ).toThrow();
46
+ });
47
+
48
+ test("get element", () => {
49
+ justTwo.element.parse("asdf");
50
+ expect(() => justTwo.element.parse(12)).toThrow();
51
+ });
52
+
53
+ test("continue parsing despite array size error", () => {
54
+ const schema = z.object({
55
+ people: z.string().array().min(2),
56
+ });
57
+
58
+ const result = schema.safeParse({
59
+ people: [123],
60
+ });
61
+ expect(result.success).toEqual(false);
62
+ if (!result.success) {
63
+ expect(result.error.issues.length).toEqual(2);
64
+ }
65
+ });
66
+
67
+ test("parse should fail given sparse array", () => {
68
+ const schema = z.array(z.string()).nonempty().min(1).max(3);
69
+
70
+ expect(() => schema.parse(new Array(3))).toThrow();
71
+ });
@@ -0,0 +1,388 @@
1
+ // @ts-ignore TS6133
2
+ import { expect, test } from "vitest";
3
+
4
+ import * as z from "zod/v3";
5
+
6
+ /// string
7
+ const stringSchema = z.string();
8
+
9
+ test("string async parse", async () => {
10
+ const goodData = "XXX";
11
+ const badData = 12;
12
+
13
+ const goodResult = await stringSchema.safeParseAsync(goodData);
14
+ expect(goodResult.success).toBe(true);
15
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
16
+
17
+ const badResult = await stringSchema.safeParseAsync(badData);
18
+ expect(badResult.success).toBe(false);
19
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
20
+ });
21
+
22
+ /// number
23
+ const numberSchema = z.number();
24
+ test("number async parse", async () => {
25
+ const goodData = 1234.2353;
26
+ const badData = "1234";
27
+
28
+ const goodResult = await numberSchema.safeParseAsync(goodData);
29
+ expect(goodResult.success).toBe(true);
30
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
31
+
32
+ const badResult = await numberSchema.safeParseAsync(badData);
33
+ expect(badResult.success).toBe(false);
34
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
35
+ });
36
+
37
+ /// bigInt
38
+ const bigIntSchema = z.bigint();
39
+ test("bigInt async parse", async () => {
40
+ const goodData = BigInt(145);
41
+ const badData = 134;
42
+
43
+ const goodResult = await bigIntSchema.safeParseAsync(goodData);
44
+ expect(goodResult.success).toBe(true);
45
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
46
+
47
+ const badResult = await bigIntSchema.safeParseAsync(badData);
48
+ expect(badResult.success).toBe(false);
49
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
50
+ });
51
+
52
+ /// boolean
53
+ const booleanSchema = z.boolean();
54
+ test("boolean async parse", async () => {
55
+ const goodData = true;
56
+ const badData = 1;
57
+
58
+ const goodResult = await booleanSchema.safeParseAsync(goodData);
59
+ expect(goodResult.success).toBe(true);
60
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
61
+
62
+ const badResult = await booleanSchema.safeParseAsync(badData);
63
+ expect(badResult.success).toBe(false);
64
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
65
+ });
66
+
67
+ /// date
68
+ const dateSchema = z.date();
69
+ test("date async parse", async () => {
70
+ const goodData = new Date();
71
+ const badData = new Date().toISOString();
72
+
73
+ const goodResult = await dateSchema.safeParseAsync(goodData);
74
+ expect(goodResult.success).toBe(true);
75
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
76
+
77
+ const badResult = await dateSchema.safeParseAsync(badData);
78
+ expect(badResult.success).toBe(false);
79
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
80
+ });
81
+
82
+ /// undefined
83
+ const undefinedSchema = z.undefined();
84
+ test("undefined async parse", async () => {
85
+ const goodData = undefined;
86
+ const badData = "XXX";
87
+
88
+ const goodResult = await undefinedSchema.safeParseAsync(goodData);
89
+ expect(goodResult.success).toBe(true);
90
+ if (goodResult.success) expect(goodResult.data).toEqual(undefined);
91
+
92
+ const badResult = await undefinedSchema.safeParseAsync(badData);
93
+ expect(badResult.success).toBe(false);
94
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
95
+ });
96
+
97
+ /// null
98
+ const nullSchema = z.null();
99
+ test("null async parse", async () => {
100
+ const goodData = null;
101
+ const badData = undefined;
102
+
103
+ const goodResult = await nullSchema.safeParseAsync(goodData);
104
+ expect(goodResult.success).toBe(true);
105
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
106
+
107
+ const badResult = await nullSchema.safeParseAsync(badData);
108
+ expect(badResult.success).toBe(false);
109
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
110
+ });
111
+
112
+ /// any
113
+ const anySchema = z.any();
114
+ test("any async parse", async () => {
115
+ const goodData = [{}];
116
+ // const badData = 'XXX';
117
+
118
+ const goodResult = await anySchema.safeParseAsync(goodData);
119
+ expect(goodResult.success).toBe(true);
120
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
121
+
122
+ // const badResult = await anySchema.safeParseAsync(badData);
123
+ // expect(badResult.success).toBe(false);
124
+ // if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
125
+ });
126
+
127
+ /// unknown
128
+ const unknownSchema = z.unknown();
129
+ test("unknown async parse", async () => {
130
+ const goodData = ["asdf", 124, () => {}];
131
+ // const badData = 'XXX';
132
+
133
+ const goodResult = await unknownSchema.safeParseAsync(goodData);
134
+ expect(goodResult.success).toBe(true);
135
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
136
+
137
+ // const badResult = await unknownSchema.safeParseAsync(badData);
138
+ // expect(badResult.success).toBe(false);
139
+ // if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
140
+ });
141
+
142
+ /// void
143
+ const voidSchema = z.void();
144
+ test("void async parse", async () => {
145
+ const goodData = undefined;
146
+ const badData = 0;
147
+
148
+ const goodResult = await voidSchema.safeParseAsync(goodData);
149
+ expect(goodResult.success).toBe(true);
150
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
151
+
152
+ const badResult = await voidSchema.safeParseAsync(badData);
153
+ expect(badResult.success).toBe(false);
154
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
155
+ });
156
+
157
+ /// array
158
+ const arraySchema = z.array(z.string());
159
+ test("array async parse", async () => {
160
+ const goodData = ["XXX"];
161
+ const badData = "XXX";
162
+
163
+ const goodResult = await arraySchema.safeParseAsync(goodData);
164
+ expect(goodResult.success).toBe(true);
165
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
166
+
167
+ const badResult = await arraySchema.safeParseAsync(badData);
168
+ expect(badResult.success).toBe(false);
169
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
170
+ });
171
+
172
+ /// object
173
+ const objectSchema = z.object({ string: z.string() });
174
+ test("object async parse", async () => {
175
+ const goodData = { string: "XXX" };
176
+ const badData = { string: 12 };
177
+
178
+ const goodResult = await objectSchema.safeParseAsync(goodData);
179
+ expect(goodResult.success).toBe(true);
180
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
181
+
182
+ const badResult = await objectSchema.safeParseAsync(badData);
183
+ expect(badResult.success).toBe(false);
184
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
185
+ });
186
+
187
+ /// union
188
+ const unionSchema = z.union([z.string(), z.undefined()]);
189
+ test("union async parse", async () => {
190
+ const goodData = undefined;
191
+ const badData = null;
192
+
193
+ const goodResult = await unionSchema.safeParseAsync(goodData);
194
+ expect(goodResult.success).toBe(true);
195
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
196
+
197
+ const badResult = await unionSchema.safeParseAsync(badData);
198
+ expect(badResult.success).toBe(false);
199
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
200
+ });
201
+
202
+ /// record
203
+ const recordSchema = z.record(z.object({}));
204
+ test("record async parse", async () => {
205
+ const goodData = { adsf: {}, asdf: {} };
206
+ const badData = [{}];
207
+
208
+ const goodResult = await recordSchema.safeParseAsync(goodData);
209
+ expect(goodResult.success).toBe(true);
210
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
211
+
212
+ const badResult = await recordSchema.safeParseAsync(badData);
213
+ expect(badResult.success).toBe(false);
214
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
215
+ });
216
+
217
+ /// function
218
+ const functionSchema = z.function();
219
+ test("function async parse", async () => {
220
+ const goodData = () => {};
221
+ const badData = "XXX";
222
+
223
+ const goodResult = await functionSchema.safeParseAsync(goodData);
224
+ expect(goodResult.success).toBe(true);
225
+ if (goodResult.success) expect(typeof goodResult.data).toEqual("function");
226
+
227
+ const badResult = await functionSchema.safeParseAsync(badData);
228
+ expect(badResult.success).toBe(false);
229
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
230
+ });
231
+
232
+ /// literal
233
+ const literalSchema = z.literal("asdf");
234
+ test("literal async parse", async () => {
235
+ const goodData = "asdf";
236
+ const badData = "asdff";
237
+
238
+ const goodResult = await literalSchema.safeParseAsync(goodData);
239
+ expect(goodResult.success).toBe(true);
240
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
241
+
242
+ const badResult = await literalSchema.safeParseAsync(badData);
243
+ expect(badResult.success).toBe(false);
244
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
245
+ });
246
+
247
+ /// enum
248
+ const enumSchema = z.enum(["fish", "whale"]);
249
+ test("enum async parse", async () => {
250
+ const goodData = "whale";
251
+ const badData = "leopard";
252
+
253
+ const goodResult = await enumSchema.safeParseAsync(goodData);
254
+ expect(goodResult.success).toBe(true);
255
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
256
+
257
+ const badResult = await enumSchema.safeParseAsync(badData);
258
+ expect(badResult.success).toBe(false);
259
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
260
+ });
261
+
262
+ /// nativeEnum
263
+ enum nativeEnumTest {
264
+ asdf = "qwer",
265
+ }
266
+ // @ts-ignore
267
+ const nativeEnumSchema = z.nativeEnum(nativeEnumTest);
268
+ test("nativeEnum async parse", async () => {
269
+ const goodData = nativeEnumTest.asdf;
270
+ const badData = "asdf";
271
+
272
+ const goodResult = await nativeEnumSchema.safeParseAsync(goodData);
273
+ expect(goodResult.success).toBe(true);
274
+ if (goodResult.success) expect(goodResult.data).toEqual(goodData);
275
+
276
+ const badResult = await nativeEnumSchema.safeParseAsync(badData);
277
+ expect(badResult.success).toBe(false);
278
+ if (!badResult.success) expect(badResult.error).toBeInstanceOf(z.ZodError);
279
+ });
280
+
281
+ /// promise
282
+ const promiseSchema = z.promise(z.number());
283
+ test("promise async parse good", async () => {
284
+ const goodData = Promise.resolve(123);
285
+
286
+ const goodResult = await promiseSchema.safeParseAsync(goodData);
287
+ expect(goodResult.success).toBe(true);
288
+ if (goodResult.success) {
289
+ expect(goodResult.data).toBeInstanceOf(Promise);
290
+ const data = await goodResult.data;
291
+ expect(data).toEqual(123);
292
+ // expect(goodResult.data).resolves.toEqual(124);
293
+ // return goodResult.data;
294
+ } else {
295
+ throw new Error("success should be true");
296
+ }
297
+ });
298
+
299
+ test("promise async parse bad", async () => {
300
+ const badData = Promise.resolve("XXX");
301
+ const badResult = await promiseSchema.safeParseAsync(badData);
302
+ expect(badResult.success).toBe(true);
303
+ if (badResult.success) {
304
+ await expect(badResult.data).rejects.toBeInstanceOf(z.ZodError);
305
+ } else {
306
+ throw new Error("success should be true");
307
+ }
308
+ });
309
+
310
+ test("async validation non-empty strings", async () => {
311
+ const base = z.object({
312
+ hello: z.string().refine((x) => x && x.length > 0),
313
+ foo: z.string().refine((x) => x && x.length > 0),
314
+ });
315
+
316
+ const testval = { hello: "", foo: "" };
317
+ const result1 = base.safeParse(testval);
318
+ const result2 = base.safeParseAsync(testval);
319
+
320
+ const r1 = result1;
321
+ await result2.then((r2) => {
322
+ if (r1.success === false && r2.success === false) expect(r1.error.issues.length).toBe(r2.error.issues.length); // <--- r1 has length 2, r2 has length 1
323
+ });
324
+ });
325
+
326
+ test("async validation multiple errors 1", async () => {
327
+ const base = z.object({
328
+ hello: z.string(),
329
+ foo: z.number(),
330
+ });
331
+
332
+ const testval = { hello: 3, foo: "hello" };
333
+ const result1 = base.safeParse(testval);
334
+ const result2 = base.safeParseAsync(testval);
335
+
336
+ const r1 = result1;
337
+ await result2.then((r2) => {
338
+ if (r1.success === false && r2.success === false) expect(r2.error.issues.length).toBe(r1.error.issues.length);
339
+ });
340
+ });
341
+
342
+ test("async validation multiple errors 2", async () => {
343
+ const base = (is_async?: boolean) =>
344
+ z.object({
345
+ hello: z.string(),
346
+ foo: z.object({
347
+ bar: z.number().refine(is_async ? async () => false : () => false),
348
+ }),
349
+ });
350
+
351
+ const testval = { hello: 3, foo: { bar: 4 } };
352
+ const result1 = base().safeParse(testval);
353
+ const result2 = base(true).safeParseAsync(testval);
354
+
355
+ const r1 = result1;
356
+ await result2.then((r2) => {
357
+ if (r1.success === false && r2.success === false) expect(r2.error.issues.length).toBe(r1.error.issues.length);
358
+ });
359
+ });
360
+
361
+ test("ensure early async failure prevents follow-up refinement checks", async () => {
362
+ let count = 0;
363
+ const base = z.object({
364
+ hello: z.string(),
365
+ foo: z
366
+ .number()
367
+ .refine(async () => {
368
+ count++;
369
+ return true;
370
+ })
371
+ .refine(async () => {
372
+ count++;
373
+ return true;
374
+ }, "Good"),
375
+ });
376
+
377
+ const testval = { hello: "bye", foo: 3 };
378
+ const result = await base.safeParseAsync(testval);
379
+ if (result.success === false) {
380
+ expect(result.error.issues.length).toBe(1);
381
+ expect(count).toBe(1);
382
+ }
383
+
384
+ // await result.then((r) => {
385
+ // if (r.success === false) expect(r.error.issues.length).toBe(1);
386
+ // expect(count).toBe(2);
387
+ // });
388
+ });