@es-joy/jsoe 0.24.3 → 0.25.1

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 (524) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/.ncurc.cjs +2 -2
  3. package/CHANGES.md +51 -0
  4. package/README.md +23 -13
  5. package/badges/coverage-badge.svg +1 -1
  6. package/dist/eslint.config.d.ts +3 -0
  7. package/dist/eslint.config.d.ts.map +1 -0
  8. package/dist/formatAndTypeChoices.d.ts +28 -30
  9. package/dist/formatAndTypeChoices.d.ts.map +1 -1
  10. package/dist/formats/indexedDBKey.d.ts.map +1 -1
  11. package/dist/formats/schema.d.ts +46 -3
  12. package/dist/formats/schema.d.ts.map +1 -1
  13. package/dist/formats/structuredCloning.d.ts +3 -0
  14. package/dist/formats/structuredCloning.d.ts.map +1 -1
  15. package/dist/formats.d.ts +24 -6
  16. package/dist/formats.d.ts.map +1 -1
  17. package/dist/fundamentalTypes/BooleanObjectType.d.ts.map +1 -1
  18. package/dist/fundamentalTypes/NumberObjectType.d.ts.map +1 -1
  19. package/dist/fundamentalTypes/StringObjectType.d.ts.map +1 -1
  20. package/dist/fundamentalTypes/arrayReferenceType.d.ts.map +1 -1
  21. package/dist/fundamentalTypes/arrayType.d.ts +7 -0
  22. package/dist/fundamentalTypes/arrayType.d.ts.map +1 -1
  23. package/dist/fundamentalTypes/bigintObjectType.d.ts.map +1 -1
  24. package/dist/fundamentalTypes/bigintType.d.ts +10 -0
  25. package/dist/fundamentalTypes/bigintType.d.ts.map +1 -1
  26. package/dist/fundamentalTypes/blobType.d.ts.map +1 -1
  27. package/dist/fundamentalTypes/booleanType.d.ts.map +1 -1
  28. package/dist/fundamentalTypes/catchType.d.ts +2 -2
  29. package/dist/fundamentalTypes/catchType.d.ts.map +1 -1
  30. package/dist/fundamentalTypes/dateType.d.ts.map +1 -1
  31. package/dist/fundamentalTypes/domexceptionType.d.ts.map +1 -1
  32. package/dist/fundamentalTypes/enumType.d.ts +2 -2
  33. package/dist/fundamentalTypes/enumType.d.ts.map +1 -1
  34. package/dist/fundamentalTypes/errorType.d.ts.map +1 -1
  35. package/dist/fundamentalTypes/fileType.d.ts +6 -0
  36. package/dist/fundamentalTypes/fileType.d.ts.map +1 -1
  37. package/dist/fundamentalTypes/functionType.d.ts.map +1 -1
  38. package/dist/fundamentalTypes/literalType.d.ts +3 -2
  39. package/dist/fundamentalTypes/literalType.d.ts.map +1 -1
  40. package/dist/fundamentalTypes/looseRecordType.d.ts +6 -0
  41. package/dist/fundamentalTypes/looseRecordType.d.ts.map +1 -0
  42. package/dist/fundamentalTypes/nanType.d.ts.map +1 -1
  43. package/dist/fundamentalTypes/neverType.d.ts +2 -2
  44. package/dist/fundamentalTypes/neverType.d.ts.map +1 -1
  45. package/dist/fundamentalTypes/noneditableType.d.ts.map +1 -1
  46. package/dist/fundamentalTypes/nullType.d.ts.map +1 -1
  47. package/dist/fundamentalTypes/numberType.d.ts.map +1 -1
  48. package/dist/fundamentalTypes/promiseType.d.ts.map +1 -1
  49. package/dist/fundamentalTypes/regexpType.d.ts.map +1 -1
  50. package/dist/fundamentalTypes/stringType.d.ts.map +1 -1
  51. package/dist/fundamentalTypes/symbolType.d.ts.map +1 -1
  52. package/dist/fundamentalTypes/undefinedType.d.ts.map +1 -1
  53. package/dist/fundamentalTypes/voidType.d.ts +2 -2
  54. package/dist/fundamentalTypes/voidType.d.ts.map +1 -1
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +6 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/rollup.config.d.ts +30 -0
  59. package/dist/rollup.config.d.ts.map +1 -0
  60. package/dist/server.d.ts +2 -0
  61. package/dist/server.d.ts.map +1 -0
  62. package/dist/src/formatAndTypeChoices.d.ts +108 -0
  63. package/dist/src/formatAndTypeChoices.d.ts.map +1 -0
  64. package/dist/src/formats/arbitraryJS.d.ts +4 -0
  65. package/dist/src/formats/arbitraryJS.d.ts.map +1 -0
  66. package/dist/src/formats/indexedDBKey.d.ts +4 -0
  67. package/dist/src/formats/indexedDBKey.d.ts.map +1 -0
  68. package/dist/src/formats/json.d.ts +4 -0
  69. package/dist/src/formats/json.d.ts.map +1 -0
  70. package/dist/src/formats/schema.d.ts +17 -0
  71. package/dist/src/formats/schema.d.ts.map +1 -0
  72. package/dist/src/formats/structuredCloning.d.ts +19 -0
  73. package/dist/src/formats/structuredCloning.d.ts.map +1 -0
  74. package/dist/src/formats.d.ts +135 -0
  75. package/dist/src/formats.d.ts.map +1 -0
  76. package/dist/src/fundamentalTypes/BooleanObjectType.d.ts +8 -0
  77. package/dist/src/fundamentalTypes/BooleanObjectType.d.ts.map +1 -0
  78. package/dist/src/fundamentalTypes/NumberObjectType.d.ts +6 -0
  79. package/dist/src/fundamentalTypes/NumberObjectType.d.ts.map +1 -0
  80. package/dist/src/fundamentalTypes/StringObjectType.d.ts +6 -0
  81. package/dist/src/fundamentalTypes/StringObjectType.d.ts.map +1 -0
  82. package/dist/src/fundamentalTypes/arrayReferenceType.d.ts +8 -0
  83. package/dist/src/fundamentalTypes/arrayReferenceType.d.ts.map +1 -0
  84. package/dist/src/fundamentalTypes/arrayType.d.ts +29 -0
  85. package/dist/src/fundamentalTypes/arrayType.d.ts.map +1 -0
  86. package/dist/src/fundamentalTypes/bigintObjectType.d.ts +6 -0
  87. package/dist/src/fundamentalTypes/bigintObjectType.d.ts.map +1 -0
  88. package/dist/src/fundamentalTypes/bigintType.d.ts +6 -0
  89. package/dist/src/fundamentalTypes/bigintType.d.ts.map +1 -0
  90. package/dist/src/fundamentalTypes/blobType.d.ts +11 -0
  91. package/dist/src/fundamentalTypes/blobType.d.ts.map +1 -0
  92. package/dist/src/fundamentalTypes/booleanType.d.ts +8 -0
  93. package/dist/src/fundamentalTypes/booleanType.d.ts.map +1 -0
  94. package/dist/src/fundamentalTypes/catchType.d.ts +6 -0
  95. package/dist/src/fundamentalTypes/catchType.d.ts.map +1 -0
  96. package/dist/src/fundamentalTypes/dateType.d.ts +26 -0
  97. package/dist/src/fundamentalTypes/dateType.d.ts.map +1 -0
  98. package/dist/src/fundamentalTypes/domexceptionType.d.ts +6 -0
  99. package/dist/src/fundamentalTypes/domexceptionType.d.ts.map +1 -0
  100. package/dist/src/fundamentalTypes/enumType.d.ts +6 -0
  101. package/dist/src/fundamentalTypes/enumType.d.ts.map +1 -0
  102. package/dist/src/fundamentalTypes/errorType.d.ts +6 -0
  103. package/dist/src/fundamentalTypes/errorType.d.ts.map +1 -0
  104. package/dist/src/fundamentalTypes/fileType.d.ts +13 -0
  105. package/dist/src/fundamentalTypes/fileType.d.ts.map +1 -0
  106. package/dist/src/fundamentalTypes/filelistType.d.ts +6 -0
  107. package/dist/src/fundamentalTypes/filelistType.d.ts.map +1 -0
  108. package/dist/src/fundamentalTypes/functionType.d.ts +7 -0
  109. package/dist/src/fundamentalTypes/functionType.d.ts.map +1 -0
  110. package/dist/src/fundamentalTypes/literalType.d.ts +6 -0
  111. package/dist/src/fundamentalTypes/literalType.d.ts.map +1 -0
  112. package/dist/src/fundamentalTypes/mapType.d.ts +6 -0
  113. package/dist/src/fundamentalTypes/mapType.d.ts.map +1 -0
  114. package/dist/src/fundamentalTypes/nanType.d.ts +6 -0
  115. package/dist/src/fundamentalTypes/nanType.d.ts.map +1 -0
  116. package/dist/src/fundamentalTypes/neverType.d.ts +6 -0
  117. package/dist/src/fundamentalTypes/neverType.d.ts.map +1 -0
  118. package/dist/src/fundamentalTypes/noneditableType.d.ts +6 -0
  119. package/dist/src/fundamentalTypes/noneditableType.d.ts.map +1 -0
  120. package/dist/src/fundamentalTypes/nullType.d.ts +6 -0
  121. package/dist/src/fundamentalTypes/nullType.d.ts.map +1 -0
  122. package/dist/src/fundamentalTypes/numberType.d.ts +6 -0
  123. package/dist/src/fundamentalTypes/numberType.d.ts.map +1 -0
  124. package/dist/src/fundamentalTypes/objectReferenceType.d.ts +8 -0
  125. package/dist/src/fundamentalTypes/objectReferenceType.d.ts.map +1 -0
  126. package/dist/src/fundamentalTypes/objectType.d.ts +6 -0
  127. package/dist/src/fundamentalTypes/objectType.d.ts.map +1 -0
  128. package/dist/src/fundamentalTypes/promiseType.d.ts +6 -0
  129. package/dist/src/fundamentalTypes/promiseType.d.ts.map +1 -0
  130. package/dist/src/fundamentalTypes/recordType.d.ts +6 -0
  131. package/dist/src/fundamentalTypes/recordType.d.ts.map +1 -0
  132. package/dist/src/fundamentalTypes/regexpType.d.ts +8 -0
  133. package/dist/src/fundamentalTypes/regexpType.d.ts.map +1 -0
  134. package/dist/src/fundamentalTypes/setType.d.ts +6 -0
  135. package/dist/src/fundamentalTypes/setType.d.ts.map +1 -0
  136. package/dist/src/fundamentalTypes/sparseUndefinedType.d.ts +6 -0
  137. package/dist/src/fundamentalTypes/sparseUndefinedType.d.ts.map +1 -0
  138. package/dist/src/fundamentalTypes/stringType.d.ts +6 -0
  139. package/dist/src/fundamentalTypes/stringType.d.ts.map +1 -0
  140. package/dist/src/fundamentalTypes/symbolType.d.ts +8 -0
  141. package/dist/src/fundamentalTypes/symbolType.d.ts.map +1 -0
  142. package/dist/src/fundamentalTypes/tupleType.d.ts +6 -0
  143. package/dist/src/fundamentalTypes/tupleType.d.ts.map +1 -0
  144. package/dist/src/fundamentalTypes/undefinedType.d.ts +6 -0
  145. package/dist/src/fundamentalTypes/undefinedType.d.ts.map +1 -0
  146. package/dist/src/fundamentalTypes/voidType.d.ts +6 -0
  147. package/dist/src/fundamentalTypes/voidType.d.ts.map +1 -0
  148. package/dist/src/index.d.ts +12 -0
  149. package/dist/src/index.d.ts.map +1 -0
  150. package/dist/src/subTypes/blobHTMLType.d.ts +20 -0
  151. package/dist/src/subTypes/blobHTMLType.d.ts.map +1 -0
  152. package/dist/src/subTypes/falseType.d.ts +8 -0
  153. package/dist/src/subTypes/falseType.d.ts.map +1 -0
  154. package/dist/src/subTypes/trueType.d.ts +8 -0
  155. package/dist/src/subTypes/trueType.d.ts.map +1 -0
  156. package/dist/src/superTypes/SpecialNumberType.d.ts +6 -0
  157. package/dist/src/superTypes/SpecialNumberType.d.ts.map +1 -0
  158. package/dist/src/superTypes/SpecialRealNumberType.d.ts +6 -0
  159. package/dist/src/superTypes/SpecialRealNumberType.d.ts.map +1 -0
  160. package/dist/src/superTypes/buffersourceType.d.ts +8 -0
  161. package/dist/src/superTypes/buffersourceType.d.ts.map +1 -0
  162. package/dist/src/superTypes/dommatrixType.d.ts +6 -0
  163. package/dist/src/superTypes/dommatrixType.d.ts.map +1 -0
  164. package/dist/src/superTypes/dompointType.d.ts +6 -0
  165. package/dist/src/superTypes/dompointType.d.ts.map +1 -0
  166. package/dist/src/superTypes/domrectType.d.ts +6 -0
  167. package/dist/src/superTypes/domrectType.d.ts.map +1 -0
  168. package/dist/src/superTypes/errorsSpecialType.d.ts +8 -0
  169. package/dist/src/superTypes/errorsSpecialType.d.ts.map +1 -0
  170. package/dist/src/typeChoices.d.ts +140 -0
  171. package/dist/src/typeChoices.d.ts.map +1 -0
  172. package/dist/src/types.d.ts +758 -0
  173. package/dist/src/types.d.ts.map +1 -0
  174. package/dist/src/utils/FileList.d.ts +26 -0
  175. package/dist/src/utils/FileList.d.ts.map +1 -0
  176. package/dist/src/utils/dialogs.d.ts +111 -0
  177. package/dist/src/utils/dialogs.d.ts.map +1 -0
  178. package/dist/src/utils/jsonPointer.d.ts +46 -0
  179. package/dist/src/utils/jsonPointer.d.ts.map +1 -0
  180. package/dist/src/utils/media.d.ts +18 -0
  181. package/dist/src/utils/media.d.ts.map +1 -0
  182. package/dist/src/utils/objects.d.ts +16 -0
  183. package/dist/src/utils/objects.d.ts.map +1 -0
  184. package/dist/src/utils/templateUtils.d.ts +59 -0
  185. package/dist/src/utils/templateUtils.d.ts.map +1 -0
  186. package/dist/src/utils/types.d.ts +2 -0
  187. package/dist/src/utils/types.d.ts.map +1 -0
  188. package/dist/src/vendor-imports.d.ts +4 -0
  189. package/dist/src/vendor-imports.d.ts.map +1 -0
  190. package/dist/subTypes/blobHTMLType.d.ts.map +1 -1
  191. package/dist/superTypes/SpecialRealNumberType.d.ts.map +1 -1
  192. package/dist/superTypes/buffersourceType.d.ts.map +1 -1
  193. package/dist/superTypes/dommatrixType.d.ts.map +1 -1
  194. package/dist/superTypes/dompointType.d.ts.map +1 -1
  195. package/dist/superTypes/domrectType.d.ts.map +1 -1
  196. package/dist/superTypes/errorsSpecialType.d.ts.map +1 -1
  197. package/dist/typeChoices.d.ts +21 -87
  198. package/dist/typeChoices.d.ts.map +1 -1
  199. package/dist/types.d.ts +90 -64
  200. package/dist/types.d.ts.map +1 -1
  201. package/dist/utils/FileList.d.ts +4 -3
  202. package/dist/utils/FileList.d.ts.map +1 -1
  203. package/dist/utils/dialogs.d.ts +4 -4
  204. package/dist/utils/dialogs.d.ts.map +1 -1
  205. package/dist/utils/media.d.ts.map +1 -1
  206. package/dist/utils/schemaMeta.d.ts +92 -0
  207. package/dist/utils/schemaMeta.d.ts.map +1 -0
  208. package/dist/utils/templateUtils.d.ts +3 -3
  209. package/dist/utils/templateUtils.d.ts.map +1 -1
  210. package/dist/utils/timing.d.ts +2 -0
  211. package/dist/utils/timing.d.ts.map +1 -0
  212. package/dist/utils/types.d.ts +1 -0
  213. package/dist/utils/types.d.ts.map +1 -1
  214. package/dist/vendor-imports.d.ts +3 -1
  215. package/docs/proposals/schema-meta.md +233 -0
  216. package/eslint.config.js +51 -4
  217. package/licenseInfo.json +1 -1
  218. package/package.json +52 -42
  219. package/pnpm-workspace.yaml +57 -0
  220. package/rollup.config.js +20 -18
  221. package/server.js +3 -3
  222. package/src/deepEqual.js.map +1 -1
  223. package/src/formatAndTypeChoices.js +62 -58
  224. package/src/formats/indexedDBKey.js +3 -4
  225. package/src/formats/schema.js +824 -475
  226. package/src/formats/structuredCloning.js +189 -79
  227. package/src/formats.js +17 -5
  228. package/src/fundamentalTypes/BooleanObjectType.js +4 -5
  229. package/src/fundamentalTypes/NumberObjectType.js +4 -4
  230. package/src/fundamentalTypes/StringObjectType.js +3 -4
  231. package/src/fundamentalTypes/arrayReferenceType.js +0 -2
  232. package/src/fundamentalTypes/arrayType.js +624 -389
  233. package/src/fundamentalTypes/bigintObjectType.js +3 -2
  234. package/src/fundamentalTypes/bigintType.js +79 -17
  235. package/src/fundamentalTypes/blobType.js +35 -35
  236. package/src/fundamentalTypes/booleanType.js +16 -8
  237. package/src/fundamentalTypes/dateType.js +6 -8
  238. package/src/fundamentalTypes/domexceptionType.js +5 -4
  239. package/src/fundamentalTypes/errorType.js +39 -32
  240. package/src/fundamentalTypes/fileType.js +238 -52
  241. package/src/fundamentalTypes/functionType.js +61 -41
  242. package/src/fundamentalTypes/nanType.js +5 -4
  243. package/src/fundamentalTypes/noneditableType.js +4 -3
  244. package/src/fundamentalTypes/nullType.js +3 -2
  245. package/src/fundamentalTypes/numberType.js +72 -20
  246. package/src/fundamentalTypes/promiseType.js +16 -40
  247. package/src/fundamentalTypes/regexpType.js +7 -13
  248. package/src/fundamentalTypes/stringType.js +176 -110
  249. package/src/fundamentalTypes/symbolType.js +3 -2
  250. package/src/fundamentalTypes/undefinedType.js +3 -2
  251. package/src/index.js +6 -5
  252. package/src/jsoe.css +107 -8
  253. package/src/subTypes/blobHTMLType.js +23 -10
  254. package/src/superTypes/SpecialNumberType.js +6 -6
  255. package/src/superTypes/SpecialRealNumberType.js +10 -9
  256. package/src/superTypes/buffersourceType.js +86 -75
  257. package/src/superTypes/dommatrixType.js +6 -5
  258. package/src/superTypes/dompointType.js +6 -5
  259. package/src/superTypes/domrectType.js +6 -5
  260. package/src/superTypes/errorsSpecialType.js +54 -35
  261. package/src/typeChoices.js +399 -54
  262. package/src/types.js +157 -97
  263. package/src/utils/FileList.js +3 -3
  264. package/src/utils/dialogs.js +5 -7
  265. package/src/utils/jsonPointer.js +1 -1
  266. package/src/utils/media.js +1 -0
  267. package/src/utils/schemaMeta.js +257 -0
  268. package/src/utils/templateUtils.js +3 -3
  269. package/src/utils/timing.js +12 -0
  270. package/src/utils/types.js +19 -0
  271. package/src/vendor-imports.js +10 -2
  272. package/tsconfig.json +2 -0
  273. package/vendor/acorn/dist/acorn.d.mts +46 -5
  274. package/vendor/acorn/dist/acorn.d.ts +46 -5
  275. package/vendor/acorn/dist/acorn.js +394 -117
  276. package/vendor/acorn/dist/acorn.mjs +394 -117
  277. package/vendor/acorn/dist/bin.js +1 -1
  278. package/vendor/jamilih/dist/{jml-es.js → jml.mjs} +590 -312
  279. package/vendor/jamilih/package.json +1 -1
  280. package/vendor/mime/dist/types/other.js +719 -0
  281. package/vendor/mime/dist/types/standard.js +366 -0
  282. package/vendor/typeson-registry/dist/index.js +519 -99
  283. package/vendor/zod/classic/checks.d.ts +1 -0
  284. package/vendor/zod/classic/checks.js +1 -0
  285. package/vendor/zod/classic/coerce.d.ts +17 -0
  286. package/vendor/zod/classic/coerce.js +17 -0
  287. package/vendor/zod/classic/compat.d.ts +48 -0
  288. package/vendor/zod/classic/compat.js +31 -0
  289. package/vendor/zod/classic/deep-partial.d.ts +14 -0
  290. package/vendor/zod/classic/deep-partial.js +13 -0
  291. package/vendor/zod/classic/errors.d.ts +29 -0
  292. package/vendor/zod/classic/errors.js +57 -0
  293. package/vendor/zod/classic/external.d.ts +19 -0
  294. package/vendor/zod/classic/external.js +17 -0
  295. package/vendor/zod/classic/from-json-schema.d.ts +12 -0
  296. package/vendor/zod/classic/from-json-schema.js +660 -0
  297. package/vendor/zod/classic/in-out.d.ts +8 -0
  298. package/vendor/zod/classic/in-out.js +36 -0
  299. package/vendor/zod/classic/index.d.ts +3 -0
  300. package/vendor/zod/classic/index.js +4 -0
  301. package/vendor/zod/classic/iso.d.ts +7 -0
  302. package/vendor/zod/classic/iso.js +15 -0
  303. package/vendor/zod/classic/package.json +7 -0
  304. package/vendor/zod/classic/parse.d.ts +44 -0
  305. package/vendor/zod/classic/parse.js +16 -0
  306. package/vendor/zod/classic/schemas.d.ts +802 -0
  307. package/vendor/zod/classic/schemas.js +1491 -0
  308. package/vendor/zod/core/api.d.ts +329 -0
  309. package/vendor/zod/core/api.js +1104 -0
  310. package/vendor/zod/core/checks.d.ts +278 -0
  311. package/vendor/zod/core/checks.js +581 -0
  312. package/vendor/zod/core/compile.d.ts +51 -0
  313. package/vendor/zod/core/compile.js +1783 -0
  314. package/vendor/zod/core/core.d.ts +82 -0
  315. package/vendor/zod/core/core.js +141 -0
  316. package/vendor/zod/core/doc.d.ts +16 -0
  317. package/vendor/zod/core/doc.js +33 -0
  318. package/vendor/zod/core/errors.d.ts +225 -0
  319. package/vendor/zod/core/errors.js +270 -0
  320. package/vendor/zod/core/index.d.ts +19 -0
  321. package/vendor/zod/core/index.js +19 -0
  322. package/vendor/zod/core/json-schema-generator.d.ts +65 -0
  323. package/vendor/zod/core/json-schema-generator.js +99 -0
  324. package/vendor/zod/core/json-schema-processors.d.ts +49 -0
  325. package/vendor/zod/core/json-schema-processors.js +747 -0
  326. package/vendor/zod/core/json-schema.d.ts +89 -0
  327. package/vendor/zod/core/memoizer.d.ts +15 -0
  328. package/vendor/zod/core/memoizer.js +265 -0
  329. package/vendor/zod/core/package.json +7 -0
  330. package/vendor/zod/core/parse.d.ts +52 -0
  331. package/vendor/zod/core/parse.js +154 -0
  332. package/vendor/zod/core/regexes.d.ts +87 -0
  333. package/vendor/zod/core/regexes.js +150 -0
  334. package/vendor/zod/core/registries.d.ts +35 -0
  335. package/vendor/zod/core/registries.js +51 -0
  336. package/vendor/zod/core/schemas.d.ts +1253 -0
  337. package/vendor/zod/core/schemas.js +2440 -0
  338. package/vendor/zod/core/standard-schema.d.ts +126 -0
  339. package/vendor/zod/core/to-json-schema.d.ts +153 -0
  340. package/vendor/zod/core/to-json-schema.js +650 -0
  341. package/vendor/zod/core/util.d.ts +257 -0
  342. package/vendor/zod/core/util.js +846 -0
  343. package/vendor/zod/core/versions.d.ts +5 -0
  344. package/vendor/zod/core/versions.js +5 -0
  345. package/vendor/zod/core/visit.d.ts +30 -0
  346. package/vendor/zod/core/visit.js +169 -0
  347. package/vendor/zod/index.d.ts +3 -0
  348. package/vendor/zod/index.js +4 -0
  349. package/vendor/zod/locales/ar.d.ts +4 -0
  350. package/vendor/zod/locales/ar.js +109 -0
  351. package/vendor/zod/locales/az.d.ts +4 -0
  352. package/vendor/zod/locales/az.js +108 -0
  353. package/vendor/zod/locales/be.d.ts +4 -0
  354. package/vendor/zod/locales/be.js +166 -0
  355. package/vendor/zod/locales/bg.d.ts +4 -0
  356. package/vendor/zod/locales/bg.js +123 -0
  357. package/vendor/zod/locales/bn.d.ts +4 -0
  358. package/vendor/zod/locales/bn.js +111 -0
  359. package/vendor/zod/locales/ca.d.ts +4 -0
  360. package/vendor/zod/locales/ca.js +110 -0
  361. package/vendor/zod/locales/ckb.d.ts +4 -0
  362. package/vendor/zod/locales/ckb.js +131 -0
  363. package/vendor/zod/locales/cs.d.ts +4 -0
  364. package/vendor/zod/locales/cs.js +114 -0
  365. package/vendor/zod/locales/da.d.ts +4 -0
  366. package/vendor/zod/locales/da.js +118 -0
  367. package/vendor/zod/locales/de.d.ts +4 -0
  368. package/vendor/zod/locales/de.js +111 -0
  369. package/vendor/zod/locales/el.d.ts +4 -0
  370. package/vendor/zod/locales/el.js +110 -0
  371. package/vendor/zod/locales/en.d.ts +4 -0
  372. package/vendor/zod/locales/en.js +123 -0
  373. package/vendor/zod/locales/eo.d.ts +4 -0
  374. package/vendor/zod/locales/eo.js +112 -0
  375. package/vendor/zod/locales/es.d.ts +4 -0
  376. package/vendor/zod/locales/es.js +134 -0
  377. package/vendor/zod/locales/fa.d.ts +4 -0
  378. package/vendor/zod/locales/fa.js +117 -0
  379. package/vendor/zod/locales/fi.d.ts +4 -0
  380. package/vendor/zod/locales/fi.js +115 -0
  381. package/vendor/zod/locales/fr-CA.d.ts +4 -0
  382. package/vendor/zod/locales/fr-CA.js +110 -0
  383. package/vendor/zod/locales/fr.d.ts +4 -0
  384. package/vendor/zod/locales/fr.js +127 -0
  385. package/vendor/zod/locales/gu.d.ts +4 -0
  386. package/vendor/zod/locales/gu.js +111 -0
  387. package/vendor/zod/locales/he.d.ts +4 -0
  388. package/vendor/zod/locales/he.js +219 -0
  389. package/vendor/zod/locales/hi.d.ts +4 -0
  390. package/vendor/zod/locales/hi.js +109 -0
  391. package/vendor/zod/locales/hr.d.ts +4 -0
  392. package/vendor/zod/locales/hr.js +124 -0
  393. package/vendor/zod/locales/hu.d.ts +4 -0
  394. package/vendor/zod/locales/hu.js +111 -0
  395. package/vendor/zod/locales/hy.d.ts +4 -0
  396. package/vendor/zod/locales/hy.js +156 -0
  397. package/vendor/zod/locales/id.d.ts +4 -0
  398. package/vendor/zod/locales/id.js +109 -0
  399. package/vendor/zod/locales/index.d.ts +62 -0
  400. package/vendor/zod/locales/index.js +62 -0
  401. package/vendor/zod/locales/is.d.ts +4 -0
  402. package/vendor/zod/locales/is.js +112 -0
  403. package/vendor/zod/locales/it.d.ts +4 -0
  404. package/vendor/zod/locales/it.js +111 -0
  405. package/vendor/zod/locales/ja.d.ts +4 -0
  406. package/vendor/zod/locales/ja.js +110 -0
  407. package/vendor/zod/locales/ka.d.ts +4 -0
  408. package/vendor/zod/locales/ka.js +115 -0
  409. package/vendor/zod/locales/kh.d.ts +5 -0
  410. package/vendor/zod/locales/kh.js +5 -0
  411. package/vendor/zod/locales/km.d.ts +4 -0
  412. package/vendor/zod/locales/km.js +113 -0
  413. package/vendor/zod/locales/kn.d.ts +4 -0
  414. package/vendor/zod/locales/kn.js +114 -0
  415. package/vendor/zod/locales/ko.d.ts +4 -0
  416. package/vendor/zod/locales/ko.js +114 -0
  417. package/vendor/zod/locales/lt.d.ts +4 -0
  418. package/vendor/zod/locales/lt.js +205 -0
  419. package/vendor/zod/locales/mk.d.ts +4 -0
  420. package/vendor/zod/locales/mk.js +112 -0
  421. package/vendor/zod/locales/ms.d.ts +4 -0
  422. package/vendor/zod/locales/ms.js +110 -0
  423. package/vendor/zod/locales/ne.d.ts +4 -0
  424. package/vendor/zod/locales/ne.js +109 -0
  425. package/vendor/zod/locales/nl.d.ts +4 -0
  426. package/vendor/zod/locales/nl.js +113 -0
  427. package/vendor/zod/locales/nn.d.ts +4 -0
  428. package/vendor/zod/locales/nn.js +111 -0
  429. package/vendor/zod/locales/no.d.ts +4 -0
  430. package/vendor/zod/locales/no.js +111 -0
  431. package/vendor/zod/locales/ota.d.ts +4 -0
  432. package/vendor/zod/locales/ota.js +112 -0
  433. package/vendor/zod/locales/package.json +7 -0
  434. package/vendor/zod/locales/pl.d.ts +4 -0
  435. package/vendor/zod/locales/pl.js +112 -0
  436. package/vendor/zod/locales/ps.d.ts +4 -0
  437. package/vendor/zod/locales/ps.js +117 -0
  438. package/vendor/zod/locales/pt-BR.d.ts +4 -0
  439. package/vendor/zod/locales/pt-BR.js +141 -0
  440. package/vendor/zod/locales/pt.d.ts +4 -0
  441. package/vendor/zod/locales/pt.js +140 -0
  442. package/vendor/zod/locales/ro.d.ts +4 -0
  443. package/vendor/zod/locales/ro.js +120 -0
  444. package/vendor/zod/locales/ru.d.ts +4 -0
  445. package/vendor/zod/locales/ru.js +166 -0
  446. package/vendor/zod/locales/sk.d.ts +4 -0
  447. package/vendor/zod/locales/sk.js +114 -0
  448. package/vendor/zod/locales/sl.d.ts +4 -0
  449. package/vendor/zod/locales/sl.js +112 -0
  450. package/vendor/zod/locales/sv.d.ts +4 -0
  451. package/vendor/zod/locales/sv.js +113 -0
  452. package/vendor/zod/locales/ta.d.ts +4 -0
  453. package/vendor/zod/locales/ta.js +113 -0
  454. package/vendor/zod/locales/th.d.ts +4 -0
  455. package/vendor/zod/locales/th.js +113 -0
  456. package/vendor/zod/locales/tk.d.ts +4 -0
  457. package/vendor/zod/locales/tk.js +105 -0
  458. package/vendor/zod/locales/tr.d.ts +4 -0
  459. package/vendor/zod/locales/tr.js +108 -0
  460. package/vendor/zod/locales/ua.d.ts +5 -0
  461. package/vendor/zod/locales/ua.js +5 -0
  462. package/vendor/zod/locales/uk.d.ts +4 -0
  463. package/vendor/zod/locales/uk.js +111 -0
  464. package/vendor/zod/locales/ur.d.ts +4 -0
  465. package/vendor/zod/locales/ur.js +113 -0
  466. package/vendor/zod/locales/uz.d.ts +4 -0
  467. package/vendor/zod/locales/uz.js +111 -0
  468. package/vendor/zod/locales/vi.d.ts +4 -0
  469. package/vendor/zod/locales/vi.js +111 -0
  470. package/vendor/zod/locales/yo.d.ts +4 -0
  471. package/vendor/zod/locales/yo.js +110 -0
  472. package/vendor/zod/locales/zh-CN.d.ts +4 -0
  473. package/vendor/zod/locales/zh-CN.js +112 -0
  474. package/vendor/zod/locales/zh-TW.d.ts +4 -0
  475. package/vendor/zod/locales/zh-TW.js +110 -0
  476. package/vendor/zod/mini/checks.d.ts +1 -0
  477. package/vendor/zod/mini/checks.js +1 -0
  478. package/vendor/zod/mini/coerce.d.ts +7 -0
  479. package/vendor/zod/mini/coerce.js +22 -0
  480. package/vendor/zod/mini/deep-partial.d.ts +14 -0
  481. package/vendor/zod/mini/deep-partial.js +13 -0
  482. package/vendor/zod/mini/external.d.ts +16 -0
  483. package/vendor/zod/mini/external.js +16 -0
  484. package/vendor/zod/mini/in-out.d.ts +8 -0
  485. package/vendor/zod/mini/in-out.js +36 -0
  486. package/vendor/zod/mini/index.d.ts +3 -0
  487. package/vendor/zod/mini/index.js +3 -0
  488. package/vendor/zod/mini/iso.d.ts +22 -0
  489. package/vendor/zod/mini/iso.js +34 -0
  490. package/vendor/zod/mini/package.json +7 -0
  491. package/vendor/zod/mini/parse.d.ts +1 -0
  492. package/vendor/zod/mini/parse.js +1 -0
  493. package/vendor/zod/mini/schemas.d.ts +475 -0
  494. package/vendor/zod/mini/schemas.js +987 -0
  495. package/vendor/zod/package.json +7 -0
  496. package/vendor/zodexy/dist/esm/index.js +1274 -0
  497. package/vendor/zodexy/dist/index.js +1088 -0
  498. package/vendor/zodexy/dist/schema.zodexy.json +1036 -0
  499. package/dist/fundamentalTypes/nativeEnumType.d.ts +0 -6
  500. package/dist/fundamentalTypes/nativeEnumType.d.ts.map +0 -1
  501. package/src/fundamentalTypes/catchType.js +0 -140
  502. package/src/fundamentalTypes/enumType.js +0 -52
  503. package/src/fundamentalTypes/literalType.js +0 -81
  504. package/src/fundamentalTypes/nativeEnumType.js +0 -157
  505. package/src/fundamentalTypes/neverType.js +0 -49
  506. package/src/fundamentalTypes/recordType.js +0 -42
  507. package/src/fundamentalTypes/tupleType.js +0 -39
  508. package/src/fundamentalTypes/voidType.js +0 -48
  509. package/vendor/zod/lib/index.mjs +0 -4236
  510. package/vendor/zodex/dist/esm/dezerialize.d.ts +0 -26
  511. package/vendor/zodex/dist/esm/dezerialize.js +0 -393
  512. package/vendor/zodex/dist/esm/index.d.ts +0 -9
  513. package/vendor/zodex/dist/esm/index.js +0 -4
  514. package/vendor/zodex/dist/esm/infer.d.ts +0 -29
  515. package/vendor/zodex/dist/esm/package.json +0 -1
  516. package/vendor/zodex/dist/esm/types.d.ts +0 -201
  517. package/vendor/zodex/dist/esm/types.js +0 -13
  518. package/vendor/zodex/dist/esm/ui.d.ts +0 -23
  519. package/vendor/zodex/dist/esm/ui.js +0 -10
  520. package/vendor/zodex/dist/esm/zerialize.d.ts +0 -50
  521. package/vendor/zodex/dist/esm/zerialize.js +0 -417
  522. package/vendor/zodex/dist/esm/zod-types.d.ts +0 -11
  523. /package/vendor/{zodex/dist/esm/infer.js → zod/core/json-schema.js} +0 -0
  524. /package/vendor/{zodex/dist/esm/zod-types.js → zod/core/standard-schema.js} +0 -0
@@ -0,0 +1,1274 @@
1
+ // dezerialize.ts
2
+ import { z } from "zod";
3
+
4
+ // types.ts
5
+ var NUMBER_FORMATS = /* @__PURE__ */ new Set([
6
+ "int32",
7
+ "uint32",
8
+ "float32",
9
+ "float64",
10
+ "safeint"
11
+ ]);
12
+ var STRING_KINDS = /* @__PURE__ */ new Set([
13
+ "url",
14
+ "emoji",
15
+ "nanoid",
16
+ "cuid",
17
+ "cuid2",
18
+ "ulid",
19
+ "date",
20
+ "duration",
21
+ "base64",
22
+ "base64url",
23
+ "guid",
24
+ "xid",
25
+ "ksuid",
26
+ "json_string",
27
+ "e164",
28
+ "jwt",
29
+ "credit_card",
30
+ "ipv4",
31
+ "ipv6",
32
+ "cidrv4",
33
+ "cidrv6",
34
+ "e164"
35
+ // "uuidv8", // In docs only
36
+ // "ascii", // In docs only
37
+ // "utf8", // In docs only
38
+ // "lowercase", // Doesn't appear to have enough data to serialize
39
+ // "uppercase", // Doesn't appear to have enough data to serialize
40
+ ]);
41
+
42
+ // dezerialize.ts
43
+ function checkRef(item, opts) {
44
+ if ("$ref" in item) {
45
+ const lazy = z.lazy(() => z.string());
46
+ opts.$refs.push([lazy, item.$ref]);
47
+ return lazy;
48
+ }
49
+ return false;
50
+ }
51
+ var getCustomChecks = (base, shape, opts) => {
52
+ if ("checks" in shape && opts.checks) {
53
+ for (const check of shape.checks) {
54
+ base = base.check(opts.checks[check.name]);
55
+ }
56
+ }
57
+ return base;
58
+ };
59
+ var getError = (shape, opts) => {
60
+ return typeof shape.error == "string" ? shape.error : shape.error && opts.errors ? { error: opts.errors[shape.error.key] } : void 0;
61
+ };
62
+ var d = dezerializeRefs;
63
+ var dezerializers = {
64
+ function: (shape, opts) => {
65
+ const i = z.function({
66
+ input: d(shape.input, opts),
67
+ output: d(shape.output, opts)
68
+ });
69
+ return getCustomChecks(i, shape, opts);
70
+ },
71
+ number: (shape, opts) => {
72
+ const method = shape.format && NUMBER_FORMATS.has(shape.format) ? shape.format === "safeint" ? "int" : shape.format : "number";
73
+ let n = shape.coerce ? z.coerce.number(getError(shape, opts)) : z[method](getError(shape, opts));
74
+ if (shape.min !== void 0) {
75
+ n = shape.minInclusive ? n.min(shape.min) : n.gt(shape.min);
76
+ }
77
+ if (shape.max !== void 0) {
78
+ n = shape.maxInclusive ? n.max(shape.max) : n.lt(shape.max);
79
+ }
80
+ if (shape.multipleOf !== void 0) {
81
+ n = n.multipleOf(shape.multipleOf);
82
+ }
83
+ return getCustomChecks(n, shape, opts);
84
+ },
85
+ string: (shape, opts) => {
86
+ let s2 = shape.coerce ? z.coerce.string(getError(shape, opts)) : z.string(getError(shape, opts));
87
+ if (shape.min !== void 0) {
88
+ s2 = s2.min(shape.min);
89
+ }
90
+ if (shape.max !== void 0) {
91
+ s2 = s2.max(shape.max);
92
+ }
93
+ if (shape.length !== void 0) {
94
+ s2 = s2.length(shape.length);
95
+ }
96
+ if (shape.startsWith !== void 0) {
97
+ s2 = s2.startsWith(shape.startsWith);
98
+ }
99
+ if (shape.endsWith !== void 0) {
100
+ s2 = s2.endsWith(shape.endsWith);
101
+ }
102
+ if (shape.toLowerCase !== void 0) {
103
+ s2 = s2.toLowerCase();
104
+ }
105
+ if (shape.toUpperCase !== void 0) {
106
+ s2 = s2.toUpperCase();
107
+ }
108
+ if (shape.trim !== void 0) {
109
+ s2 = s2.trim();
110
+ }
111
+ if ("includes" in shape) {
112
+ s2 = s2.includes(shape.includes, { position: shape.position });
113
+ }
114
+ if ("regex" in shape) {
115
+ s2 = s2.regex(new RegExp(shape.regex, shape.flags));
116
+ }
117
+ if ("kind" in shape) {
118
+ if (shape.kind == "ip") {
119
+ if (shape.version == "v6") {
120
+ s2 = z.ipv6();
121
+ } else {
122
+ s2 = z.ipv4();
123
+ }
124
+ } else if (shape.kind == "cidr") {
125
+ if (shape.version === "v6") {
126
+ s2 = z.cidrv6();
127
+ } else {
128
+ s2 = z.cidrv4();
129
+ }
130
+ } else if (shape.kind == "uuid") {
131
+ s2 = z.uuid({ version: shape.version });
132
+ } else if (shape.kind == "datetime") {
133
+ s2 = z.iso.datetime({
134
+ offset: shape.offset,
135
+ precision: shape.precision,
136
+ local: shape.local
137
+ });
138
+ } else if (shape.kind == "time") {
139
+ s2 = z.iso.time({
140
+ precision: shape.precision
141
+ });
142
+ } else if (shape.kind === "duration" || shape.kind === "date") {
143
+ s2 = z.iso[shape.kind]();
144
+ } else if (shape.kind === "jwt") {
145
+ s2 = "algorithm" in shape ? z.jwt({ alg: shape.algorithm }) : z.jwt();
146
+ } else if (shape.kind == "email") {
147
+ s2 = "pattern" in shape && shape.pattern ? z.email({
148
+ pattern: new RegExp(shape.pattern, shape.flags)
149
+ /* v8 ignore next -- Guard */
150
+ }) : z.email();
151
+ } else if (shape.kind === "nanoid") {
152
+ s2 = "length" in shape ? z.nanoid({ length: shape.length }) : z.nanoid();
153
+ } else if (shape.kind === "credit_card") {
154
+ s2 = z.creditCard();
155
+ } else if (shape.kind !== "json_string") {
156
+ s2 = z[shape.kind]();
157
+ }
158
+ }
159
+ return getCustomChecks(s2, shape, opts);
160
+ },
161
+ boolean: (shape, opts) => getCustomChecks(
162
+ shape.coerce ? z.coerce.boolean(getError(shape, opts)) : z.boolean(getError(shape, opts)),
163
+ shape,
164
+ opts
165
+ ),
166
+ nan: (shape, opts) => getCustomChecks(z.nan(getError(shape, opts)), shape, opts),
167
+ bigInt: (shape, opts) => {
168
+ const method = shape.format && ["uint64", "int64"].includes(shape.format) ? shape.format : "bigint";
169
+ let i = shape.coerce ? z.coerce.bigint(getError(shape, opts)) : z[method](getError(shape, opts));
170
+ if (shape.min !== void 0) {
171
+ const min = BigInt(shape.min);
172
+ i = shape.minInclusive ? i.min(min) : i.gt(min);
173
+ }
174
+ if (shape.max !== void 0) {
175
+ const max = BigInt(shape.max);
176
+ i = shape.maxInclusive ? i.max(max) : i.lt(max);
177
+ }
178
+ if (shape.multipleOf !== void 0) {
179
+ const multipleOf = BigInt(shape.multipleOf);
180
+ i = i.multipleOf(multipleOf);
181
+ }
182
+ return getCustomChecks(i, shape, opts);
183
+ },
184
+ file: (shape, opts) => {
185
+ let i = z.file(getError(shape, opts));
186
+ if (shape.max) {
187
+ i = i.max(shape.max);
188
+ }
189
+ if (shape.min) {
190
+ i = i.min(shape.min);
191
+ }
192
+ if (shape.mime) {
193
+ i = i.mime(shape.mime);
194
+ }
195
+ return getCustomChecks(i, shape, opts);
196
+ },
197
+ date: (shape, opts) => {
198
+ let i = shape.coerce ? z.coerce.date(getError(shape, opts)) : z.date(getError(shape, opts));
199
+ if (shape.min !== void 0) {
200
+ i = i.min(new Date(shape.min));
201
+ }
202
+ if (shape.max !== void 0) {
203
+ i = i.max(new Date(shape.max));
204
+ }
205
+ return getCustomChecks(i, shape, opts);
206
+ },
207
+ undefined: (shape, opts) => getCustomChecks(z.undefined(getError(shape, opts)), shape, opts),
208
+ null: (shape, opts) => getCustomChecks(z.null(getError(shape, opts)), shape, opts),
209
+ any: (shape, opts) => getCustomChecks(z.any(), shape, opts),
210
+ unknown: (shape, opts) => getCustomChecks(z.unknown(), shape, opts),
211
+ never: (shape, opts) => getCustomChecks(z.never(getError(shape, opts)), shape, opts),
212
+ void: (shape, opts) => getCustomChecks(z.void(getError(shape, opts)), shape, opts),
213
+ literal: (shape, opts) => getCustomChecks(
214
+ z.literal(shape.values, getError(shape, opts)),
215
+ shape,
216
+ opts
217
+ ),
218
+ templateLiteral: (shape, opts) => {
219
+ const error = getError(shape, opts);
220
+ return getCustomChecks(
221
+ z.templateLiteral(
222
+ shape.parts.map((part, idx) => {
223
+ if (typeof part === "string") {
224
+ return part;
225
+ }
226
+ const schema = checkRef(part, opts) || d(part, {
227
+ ...opts,
228
+ path: opts.path + "/parts/" + idx
229
+ });
230
+ return schema;
231
+ }),
232
+ /* v8 ignore next 2 -- TS */
233
+ typeof error === "string" ? error : {
234
+ ...error,
235
+ ...shape.format ? { format: shape.format } : {}
236
+ }
237
+ ),
238
+ shape,
239
+ opts
240
+ );
241
+ },
242
+ symbol: (shape, opts) => getCustomChecks(z.symbol(getError(shape, opts)), shape, opts),
243
+ tuple: ((shape, opts) => {
244
+ let i = z.tuple(
245
+ shape.items.map((item, idx) => {
246
+ return checkRef(item, opts) || d(item, {
247
+ ...opts,
248
+ path: opts.path + "/items/" + idx
249
+ });
250
+ }),
251
+ getError(shape, opts)
252
+ );
253
+ if (shape.rest) {
254
+ const rest = checkRef(shape.rest, opts) || d(shape.rest, {
255
+ ...opts,
256
+ path: opts.path + "/rest"
257
+ });
258
+ i = i.rest(rest);
259
+ }
260
+ opts.pathToSchema.set(opts.path, i);
261
+ return getCustomChecks(i, shape, opts);
262
+ }),
263
+ set: ((shape, opts) => {
264
+ let i = z.set(
265
+ checkRef(shape.value, opts) || d(shape.value, {
266
+ ...opts,
267
+ path: opts.path + "/value"
268
+ }),
269
+ getError(shape, opts)
270
+ );
271
+ if (shape.minSize !== void 0) {
272
+ i = i.min(shape.minSize);
273
+ }
274
+ if (shape.maxSize !== void 0) {
275
+ i = i.max(shape.maxSize);
276
+ }
277
+ opts.pathToSchema.set(opts.path, i);
278
+ return getCustomChecks(i, shape, opts);
279
+ }),
280
+ array: ((shape, opts) => {
281
+ let i = z.array(
282
+ checkRef(shape.element, opts) || d(shape.element, {
283
+ ...opts,
284
+ path: opts.path + "/element"
285
+ }),
286
+ getError(shape, opts)
287
+ );
288
+ if (shape.minLength !== void 0) {
289
+ i = i.min(shape.minLength);
290
+ }
291
+ if (shape.maxLength !== void 0) {
292
+ i = i.max(shape.maxLength);
293
+ }
294
+ opts.pathToSchema.set(opts.path, i);
295
+ return getCustomChecks(i, shape, opts);
296
+ }),
297
+ object: ((shape, opts) => {
298
+ let i = z.object(
299
+ {
300
+ ...Object.fromEntries(
301
+ Object.entries(shape.properties).map(([key, value]) => {
302
+ return [
303
+ key,
304
+ checkRef(value, opts) || d(value, {
305
+ ...opts,
306
+ path: opts.path + "/properties/" + key
307
+ })
308
+ ];
309
+ })
310
+ ),
311
+ ...Object.fromEntries(
312
+ Object.entries(shape.symbols ?? {}).map(([key, value]) => {
313
+ if (!opts.symbols) {
314
+ throw new Error(
315
+ "A symbol key was specified, but no `symbols` option was found"
316
+ );
317
+ }
318
+ if (!(key in opts.symbols)) {
319
+ throw new Error(
320
+ "A symbol key was specified and a `symbols` option was found, but not at the specified index."
321
+ );
322
+ }
323
+ return [
324
+ opts.symbols[Number(key)],
325
+ checkRef(value, opts) || d(value, {
326
+ ...opts,
327
+ path: opts.path + "/symbols/" + key
328
+ })
329
+ ];
330
+ })
331
+ )
332
+ },
333
+ getError(shape, opts)
334
+ );
335
+ if (shape.catchall) {
336
+ i = i.catchall(d(shape.catchall, opts));
337
+ }
338
+ opts.pathToSchema.set(opts.path, i);
339
+ return getCustomChecks(i, shape, opts);
340
+ }),
341
+ record: ((shape, opts) => {
342
+ const i = z.record(
343
+ checkRef(shape.key, opts) || d(shape.key, {
344
+ ...opts,
345
+ path: opts.path + "/key"
346
+ }),
347
+ checkRef(shape.value, opts) || d(shape.value, {
348
+ ...opts,
349
+ path: opts.path + "/value"
350
+ }),
351
+ getError(shape, opts)
352
+ );
353
+ opts.pathToSchema.set(opts.path, i);
354
+ return getCustomChecks(i, shape, opts);
355
+ }),
356
+ looseRecord: ((shape, opts) => {
357
+ const i = z.looseRecord(
358
+ checkRef(shape.key, opts) || d(shape.key, {
359
+ ...opts,
360
+ path: opts.path + "/key"
361
+ }),
362
+ checkRef(shape.value, opts) || d(shape.value, {
363
+ ...opts,
364
+ path: opts.path + "/value"
365
+ }),
366
+ getError(shape, opts)
367
+ );
368
+ opts.pathToSchema.set(opts.path, i);
369
+ return getCustomChecks(i, shape, opts);
370
+ }),
371
+ map: ((shape, opts) => {
372
+ let i = z.map(
373
+ checkRef(shape.key, opts) || d(shape.key, {
374
+ ...opts,
375
+ path: opts.path + "/key"
376
+ }),
377
+ checkRef(shape.value, opts) || d(shape.value, {
378
+ ...opts,
379
+ path: opts.path + "/value"
380
+ }),
381
+ getError(shape, opts)
382
+ );
383
+ if ("min" in shape && shape.min !== void 0) {
384
+ i = i.min(shape.min);
385
+ }
386
+ if ("max" in shape && shape.max !== void 0) {
387
+ i = i.max(shape.max);
388
+ }
389
+ opts.pathToSchema.set(opts.path, i);
390
+ return getCustomChecks(i, shape, opts);
391
+ }),
392
+ enum: ((shape, opts) => getCustomChecks(
393
+ z.enum(shape.values, getError(shape, opts)),
394
+ shape,
395
+ opts
396
+ )),
397
+ union: ((shape, opts) => {
398
+ const i = z.union(
399
+ shape.options.map(
400
+ (opt, idx) => checkRef(opt, opts) || d(opt, {
401
+ ...opts,
402
+ path: opts.path + "/options/" + idx
403
+ })
404
+ ),
405
+ getError(shape, opts)
406
+ );
407
+ opts.pathToSchema.set(opts.path, i);
408
+ return getCustomChecks(i, shape, opts);
409
+ }),
410
+ discriminatedUnion: ((shape, opts) => {
411
+ const i = z.discriminatedUnion(
412
+ shape.discriminator,
413
+ shape.options.map(
414
+ (opt, idx) => checkRef(opt, opts) || d(opt, {
415
+ ...opts,
416
+ path: opts.path + "/options/" + idx
417
+ })
418
+ ),
419
+ getError(shape, opts)
420
+ );
421
+ opts.pathToSchema.set(opts.path, i);
422
+ return getCustomChecks(i, shape, opts);
423
+ }),
424
+ xor: ((shape, opts) => {
425
+ const i = z.xor(
426
+ shape.options.map(
427
+ (opt, idx) => checkRef(opt, opts) || d(opt, {
428
+ ...opts,
429
+ path: opts.path + "/options/" + idx
430
+ })
431
+ ),
432
+ getError(shape, opts)
433
+ );
434
+ opts.pathToSchema.set(opts.path, i);
435
+ return getCustomChecks(i, shape, opts);
436
+ }),
437
+ intersection: ((shape, opts) => {
438
+ const i = z.intersection(
439
+ checkRef(shape.left, opts) || d(shape.left, {
440
+ ...opts,
441
+ path: opts.path + "/left"
442
+ }),
443
+ checkRef(shape.right, opts) || d(shape.right, {
444
+ ...opts,
445
+ path: opts.path + "/right"
446
+ })
447
+ );
448
+ opts.pathToSchema.set(opts.path, i);
449
+ return getCustomChecks(i, shape, opts);
450
+ }),
451
+ promise: ((shape, opts) => {
452
+ const i = z.promise(
453
+ checkRef(shape.value, opts) || d(shape.value, {
454
+ ...opts,
455
+ path: opts.path + "/value"
456
+ })
457
+ );
458
+ opts.pathToSchema.set(opts.path, i);
459
+ return getCustomChecks(i, shape, opts);
460
+ }),
461
+ catch: ((shape, opts) => {
462
+ let base = checkRef(shape.innerType, opts) || d(shape.innerType, {
463
+ ...opts,
464
+ path: opts.path + "/innerType"
465
+ });
466
+ base = base.catch(shape.value);
467
+ opts.pathToSchema.set(opts.path, base);
468
+ return getCustomChecks(base, shape, opts);
469
+ }),
470
+ transform: (shape, opts) => {
471
+ if (!opts.transforms || !(shape.name in opts.transforms)) {
472
+ throw new Error(
473
+ "Must supply transforms for the given transform name, " + shape.name
474
+ );
475
+ }
476
+ return getCustomChecks(
477
+ z.transform(opts.transforms[shape.name]),
478
+ shape,
479
+ opts
480
+ );
481
+ },
482
+ codec: (shape, opts) => {
483
+ const codec = opts.codecs?.[shape.name];
484
+ if (!codec) {
485
+ throw new Error(
486
+ "Must supply a codec for the given codec name, " + shape.name
487
+ );
488
+ }
489
+ return getCustomChecks(
490
+ z.codec(
491
+ d(shape.input, {
492
+ ...opts,
493
+ path: opts.path + "/input"
494
+ }),
495
+ d(shape.output, {
496
+ ...opts,
497
+ path: opts.path + "/output"
498
+ }),
499
+ codec
500
+ ),
501
+ shape,
502
+ opts
503
+ );
504
+ },
505
+ instanceof: (shape, opts) => {
506
+ const Constructor = opts.instances?.[shape.name];
507
+ if (!Constructor) {
508
+ throw new Error(
509
+ "Must supply an instance constructor for the given name, " + shape.name
510
+ );
511
+ }
512
+ const error = getError(shape, opts);
513
+ return z.instanceof(
514
+ Constructor,
515
+ // v8 ignore next -- Appears to always return an object if pressent
516
+ typeof error === "string" ? { error } : error
517
+ );
518
+ },
519
+ pipe: (shape, opts) => {
520
+ if ("truthy" in shape) {
521
+ return z.stringbool({ truthy: shape.truthy, falsy: shape.falsy });
522
+ }
523
+ const base = checkRef(shape.inner, opts) || d(shape.inner, {
524
+ ...opts,
525
+ path: opts.path + "/inner"
526
+ });
527
+ return getCustomChecks(
528
+ base.pipe(
529
+ d(shape.outer, {
530
+ ...opts,
531
+ path: opts.path + "/outer"
532
+ })
533
+ ),
534
+ shape,
535
+ opts
536
+ );
537
+ }
538
+ };
539
+ function dezerializeRefs(shape, opts) {
540
+ if ("isOptional" in shape) {
541
+ const { isOptional, ...rest } = shape;
542
+ const inner = d(rest, opts);
543
+ const result = isOptional ? inner.optional() : inner;
544
+ opts.pathToSchema.set(opts.path, result);
545
+ return result;
546
+ }
547
+ if ("isNullable" in shape) {
548
+ const { isNullable, ...rest } = shape;
549
+ const inner = d(rest, opts);
550
+ const result = isNullable ? inner.nullable() : inner;
551
+ opts.pathToSchema.set(opts.path, result);
552
+ return result;
553
+ }
554
+ if ("defaultValue" in shape) {
555
+ const { defaultValue, ...rest } = shape;
556
+ const inner = d(rest, opts);
557
+ const result = inner.default(
558
+ shape.type === "bigInt" ? BigInt(defaultValue) : shape.type === "date" ? new Date(defaultValue) : defaultValue
559
+ );
560
+ opts.pathToSchema.set(opts.path, result);
561
+ return result;
562
+ }
563
+ if ("readonly" in shape) {
564
+ const { readonly, ...rest } = shape;
565
+ const inner = d(rest, opts);
566
+ const result = readonly ? inner.readonly() : inner;
567
+ opts.pathToSchema.set(opts.path, result);
568
+ return result;
569
+ }
570
+ if ("description" in shape && typeof shape.description === "string") {
571
+ const { description, ...rest } = shape;
572
+ const inner = d(rest, opts);
573
+ const result = inner.meta({ description });
574
+ opts.pathToSchema.set(opts.path, result);
575
+ return result;
576
+ }
577
+ if ("meta" in shape && shape.meta) {
578
+ const { meta, ...rest } = shape;
579
+ const inner = d(rest, opts);
580
+ const result = inner.meta(meta);
581
+ opts.pathToSchema.set(opts.path, result);
582
+ return result;
583
+ }
584
+ return dezerializers[shape.type](shape, opts);
585
+ }
586
+ function resolvePointer(obj, pointer) {
587
+ const tokens = pointer.split("/").slice(1);
588
+ return tokens.reduce((acc, token) => {
589
+ if (acc === void 0) return acc;
590
+ return acc[token.replace(/~1/g, "/").replace(/~0/g, "~")];
591
+ }, obj);
592
+ }
593
+ function dezerialize(shape, opts = {}) {
594
+ if (!("path" in opts)) {
595
+ opts.path = "#";
596
+ }
597
+ if (!("pathToSchema" in opts)) {
598
+ opts.pathToSchema = /* @__PURE__ */ new Map();
599
+ }
600
+ if (!("$refs" in opts)) {
601
+ opts.$refs = [];
602
+ }
603
+ if (!("originalShape" in opts)) {
604
+ opts.originalShape = shape;
605
+ }
606
+ const options = opts;
607
+ const dez = dezerializeRefs(shape, options);
608
+ for (const [lazy, $ref] of options.$refs) {
609
+ lazy._zod.def.getter = () => {
610
+ const schema = options.pathToSchema.get($ref);
611
+ if (schema) {
612
+ return schema;
613
+ }
614
+ const obj = resolvePointer(options.originalShape, $ref);
615
+ const dez2 = dezerialize(obj, options);
616
+ options.pathToSchema.set($ref, dez2);
617
+ return dez2;
618
+ };
619
+ }
620
+ return dez;
621
+ }
622
+
623
+ // zerialize.ts
624
+ import { z as z2 } from "zod";
625
+
626
+ // zodexySchema.ts
627
+ var zodexySchema_default = "https://github.com/brettz9/zodexy/releases/tag/v0.30.1";
628
+
629
+ // zerialize.ts
630
+ var PRIMITIVES = {
631
+ ZodString: "string",
632
+ ZodNumber: "number",
633
+ ZodBoolean: "boolean",
634
+ ZodNaN: "nan",
635
+ ZodBigInt: "bigInt",
636
+ ZodDate: "date",
637
+ ZodUndefined: "undefined",
638
+ ZodNull: "null",
639
+ ZodAny: "any",
640
+ ZodUnknown: "unknown",
641
+ ZodNever: "never",
642
+ ZodVoid: "void",
643
+ ZodSymbol: "symbol"
644
+ };
645
+ var getCustomChecksAndErrors = (def, opts) => {
646
+ let customChecks = null;
647
+ if ("checks" in opts && opts.checks) {
648
+ customChecks = def.checks?.filter((check) => {
649
+ const chk = check._zod.def.check;
650
+ return chk == "custom";
651
+ }).map((check) => {
652
+ const name = Object.entries(
653
+ /* v8 ignore next -- TS doesn't catch */
654
+ opts.checks || {}
655
+ ).find(([, checkFunc]) => {
656
+ return checkFunc === check._zod.check;
657
+ })?.[0];
658
+ if (name) {
659
+ return { name };
660
+ }
661
+ return null;
662
+ }).filter((check) => check !== null);
663
+ }
664
+ let customError;
665
+ if ("error" in def) {
666
+ const key = Object.entries(opts.errors ?? {}).find(([, func]) => {
667
+ return func === def.error;
668
+ })?.[0];
669
+ if (typeof key == "string" || typeof def.error == "function") {
670
+ customError = typeof key == "string" ? { key } : (
671
+ // Not supplying an issue should not be a problem for regular
672
+ // wrapped string errors
673
+ def.error()
674
+ );
675
+ }
676
+ }
677
+ return Object.assign(
678
+ customChecks ? { checks: customChecks } : {},
679
+ customError ? { error: customError } : {}
680
+ );
681
+ };
682
+ var s = zerializeRefs;
683
+ var zerializers = {
684
+ function: (def, opts) => ({
685
+ input: s(def.input, {
686
+ ...opts,
687
+ currentPath: [...opts.currentPath, "input"]
688
+ }),
689
+ output: s(def.output, {
690
+ ...opts,
691
+ currentPath: [...opts.currentPath, "output"]
692
+ }),
693
+ type: "function"
694
+ }),
695
+ optional: (def, opts) => ({
696
+ ...s(def.innerType, opts, true),
697
+ isOptional: true
698
+ }),
699
+ nullable: (def, opts) => ({
700
+ ...s(def.innerType, opts, true),
701
+ isNullable: true
702
+ }),
703
+ default: (def, opts) => ({
704
+ ...s(def.innerType, opts, true),
705
+ defaultValue: def.innerType._zod.def.type === "bigint" ? String(def.defaultValue) : def.innerType._zod.def.type === "date" ? def.defaultValue.getTime() : def.defaultValue
706
+ }),
707
+ number: (def, opts) => {
708
+ const checks = def.checks?.reduce((o, check) => {
709
+ const chk = check._zod.def.check;
710
+ return {
711
+ ...o,
712
+ ...chk == "greater_than" ? {
713
+ min: check._zod.def.value,
714
+ ...check._zod.def.inclusive ? { minInclusive: true } : {}
715
+ } : chk == "less_than" ? {
716
+ max: check._zod.def.value,
717
+ ...check._zod.def.inclusive ? { maxInclusive: true } : {}
718
+ } : chk == "multiple_of" ? {
719
+ multipleOf: check._zod.def.value
720
+ /* v8 ignore next 2 -- Guard */
721
+ } : {}
722
+ };
723
+ }, {});
724
+ return Object.assign(
725
+ {
726
+ type: "number",
727
+ ...checks,
728
+ ...getCustomChecksAndErrors(def, opts),
729
+ // Check is on `def` itself
730
+ ..."check" in def && def.check === "number_format" && "format" in def ? { format: def.format } : {}
731
+ },
732
+ def.coerce ? { coerce: true } : {}
733
+ );
734
+ },
735
+ template_literal: (def, opts) => {
736
+ const parts = def.parts.map((part, idx) => {
737
+ if (typeof part == "string") {
738
+ return part;
739
+ }
740
+ return s(part, {
741
+ ...opts,
742
+ currentPath: [...opts.currentPath, "parts", String(idx)]
743
+ });
744
+ });
745
+ return {
746
+ type: "templateLiteral",
747
+ parts,
748
+ ...def.format ? { format: def.format } : {}
749
+ };
750
+ },
751
+ string: (def, opts) => {
752
+ const checks = def.checks?.reduce((o, check) => {
753
+ const chk = check._zod.def.check;
754
+ const format2 = check._zod.def.format;
755
+ return {
756
+ ...o,
757
+ ...chk == "min_length" ? { min: check._zod.def.minimum } : chk == "max_length" ? { max: check._zod.def.maximum } : chk == "length_equals" ? {
758
+ length: check._zod.def.length
759
+ } : (
760
+ // Any way around this?
761
+ chk === "overwrite" && check._zod.def.tx.toString() === "(input) => input.toUpperCase()" ? { toUpperCase: true } : chk === "overwrite" && check._zod.def.tx.toString() === "(input) => input.toLowerCase()" ? { toLowerCase: true } : chk === "overwrite" && check._zod.def.tx.toString() === "(input) => input.trim()" ? { trim: true } : (
762
+ // No apparent check
763
+ // : chk == "string_format" && format == "trim"
764
+ // ? { trim: true }
765
+ chk == "string_format" && format2 == "starts_with" ? {
766
+ startsWith: check._zod.def.prefix
767
+ } : chk == "string_format" && format2 == "ends_with" ? {
768
+ endsWith: check._zod.def.suffix
769
+ } : chk == "string_format" && format2 == "includes" ? {
770
+ includes: check._zod.def.includes,
771
+ position: check._zod.def.position
772
+ } : chk == "string_format" && format2 == "regex" ? {
773
+ regex: check._zod.def.pattern.source,
774
+ ...check._zod.def.pattern.flags ? {
775
+ flags: check._zod.def.pattern.flags
776
+ } : {}
777
+ /* v8 ignore next 2 -- Guard */
778
+ } : {}
779
+ )
780
+ )
781
+ };
782
+ }, {});
783
+ const format = "format" in def && def.format;
784
+ return Object.assign(
785
+ {
786
+ type: "string",
787
+ ...checks,
788
+ ...getCustomChecksAndErrors(def, opts),
789
+ // Check is on `def` itself
790
+ ...format == "ipv4" ? { kind: "ip", version: "v4" } : format == "ipv6" ? { kind: "ip", version: "v6" } : format == "cidrv4" ? { kind: "cidr", version: "v4" } : format == "cidrv6" ? { kind: "cidr", version: "v6" } : format == "uuid" ? {
791
+ kind: "uuid",
792
+ ..."version" in def ? { version: def.version } : {}
793
+ } : format == "jwt" ? {
794
+ kind: "jwt",
795
+ ..."alg" in def ? { algorithm: def.alg } : {}
796
+ } : format == "email" ? {
797
+ kind: "email",
798
+ ..."pattern" in def && def.pattern && typeof def.pattern == "object" && "source" in def.pattern && "flags" in def.pattern && def.pattern.source !== z2.regexes.email.source ? {
799
+ pattern: def.pattern.source,
800
+ flags: def.pattern.flags
801
+ } : {}
802
+ } : "format" in def && STRING_KINDS.has(format) || format == "datetime" || format == "time" ? {
803
+ kind: format,
804
+ ..."precision" in def && def.precision ? {
805
+ precision: def.precision
806
+ } : {},
807
+ ..."offset" in def && def.offset ? {
808
+ offset: def.offset
809
+ } : {},
810
+ ..."local" in def && def.local ? {
811
+ local: def.local
812
+ } : {},
813
+ ..."length" in def ? {
814
+ length: def.length
815
+ } : {}
816
+ } : {}
817
+ },
818
+ def.coerce ? { coerce: true } : {}
819
+ );
820
+ },
821
+ boolean: (def) => Object.assign({ type: "boolean" }, def.coerce ? { coerce: true } : {}),
822
+ nan: () => ({ type: "nan" }),
823
+ symbol: () => ({ type: "symbol" }),
824
+ bigint: (def, opts) => {
825
+ const checks = def.checks?.reduce((o, check) => {
826
+ const chk = check._zod.def.check;
827
+ return {
828
+ ...o,
829
+ ...chk == "greater_than" ? {
830
+ min: String(
831
+ check._zod.def.value
832
+ ),
833
+ ...check._zod.def.inclusive ? { minInclusive: true } : {}
834
+ } : chk == "less_than" ? {
835
+ max: String(
836
+ check._zod.def.value
837
+ ),
838
+ ...check._zod.def.inclusive ? { maxInclusive: true } : {}
839
+ } : chk == "multiple_of" ? {
840
+ multipleOf: String(
841
+ check._zod.def.value
842
+ )
843
+ /* v8 ignore next 2 -- Guard */
844
+ } : {}
845
+ };
846
+ }, {});
847
+ return Object.assign(
848
+ {
849
+ type: "bigInt",
850
+ ...checks,
851
+ ...getCustomChecksAndErrors(def, opts),
852
+ // Check is on `def` itself
853
+ ..."check" in def && def.check === "bigint_format" && "format" in def ? { format: def.format } : {}
854
+ },
855
+ def.coerce ? { coerce: true } : {}
856
+ );
857
+ },
858
+ file: (def) => {
859
+ const checks = def.checks?.reduce((o, check) => {
860
+ const chk = check._zod.def.check;
861
+ return {
862
+ ...o,
863
+ ...chk == "min_size" ? {
864
+ min: check._zod.def.minimum
865
+ } : chk == "max_size" ? {
866
+ max: check._zod.def.maximum
867
+ } : chk == "mime_type" ? {
868
+ mime: check._zod.def.mime
869
+ /* v8 ignore next 2 -- Guard */
870
+ } : {}
871
+ };
872
+ }, {});
873
+ return {
874
+ type: "file",
875
+ ...checks
876
+ };
877
+ },
878
+ date: (def, opts) => {
879
+ const checks = def.checks?.reduce((o, check) => {
880
+ const chk = check._zod.def.check;
881
+ return {
882
+ ...o,
883
+ ...chk == "greater_than" ? {
884
+ min: check._zod.def.value.getTime()
885
+ // ...((check as z.core.$ZodCheckLessThan<Date>)._zod.def.inclusive
886
+ // ? { minInclusive: true }
887
+ // : {}),
888
+ } : chk == "less_than" ? {
889
+ max: check._zod.def.value.getTime()
890
+ // ...((check as z.core.$ZodCheckLessThan<Date>)._zod.def.inclusive
891
+ // ? { maxInclusive: true }
892
+ // : {}),
893
+ } : (
894
+ /* v8 ignore next -- Guard */
895
+ {}
896
+ )
897
+ };
898
+ }, {});
899
+ return Object.assign(
900
+ { type: "date", ...checks, ...getCustomChecksAndErrors(def, opts) },
901
+ def.coerce ? { coerce: true } : {}
902
+ );
903
+ },
904
+ undefined: () => ({ type: "undefined" }),
905
+ null: () => ({ type: "null" }),
906
+ any: (def, opts) => ({ type: "any", ...getCustomChecksAndErrors(def, opts) }),
907
+ unknown: () => ({ type: "unknown" }),
908
+ never: () => ({ type: "never" }),
909
+ void: () => ({ type: "void" }),
910
+ literal: (def) => ({ type: "literal", values: def.values }),
911
+ tuple: (def, opts) => ({
912
+ type: "tuple",
913
+ ...getCustomChecksAndErrors(def, opts),
914
+ items: def.items.map((item, idx) => {
915
+ const result = s(item, {
916
+ ...opts,
917
+ currentPath: [...opts.currentPath, "items", String(idx)]
918
+ });
919
+ return result;
920
+ }),
921
+ ...def.rest ? {
922
+ rest: s(def.rest, {
923
+ ...opts,
924
+ currentPath: [...opts.currentPath, "rest"]
925
+ })
926
+ } : {}
927
+ }),
928
+ set: (def, opts) => {
929
+ const checks = def.checks?.reduce((o, check) => {
930
+ const chk = check._zod.def.check;
931
+ return {
932
+ ...o,
933
+ ...chk == "min_size" ? {
934
+ minSize: check._zod.def.minimum
935
+ } : chk == "max_size" ? {
936
+ maxSize: check._zod.def.maximum
937
+ } : chk == "size_equals" ? {
938
+ minSize: check._zod.def.size,
939
+ maxSize: check._zod.def.size
940
+ /* v8 ignore next 2 -- Guard */
941
+ } : {}
942
+ };
943
+ }, {});
944
+ return {
945
+ type: "set",
946
+ value: s(def.valueType, {
947
+ ...opts,
948
+ currentPath: [...opts.currentPath, "value"]
949
+ }),
950
+ ...getCustomChecksAndErrors(def, opts),
951
+ ...checks
952
+ };
953
+ },
954
+ array: (def, opts) => {
955
+ const checks = def.checks?.reduce((o, check) => {
956
+ const chk = check._zod.def.check;
957
+ return {
958
+ ...o,
959
+ ...chk == "min_length" ? { minLength: check._zod.def.minimum } : chk == "max_length" ? {
960
+ maxLength: check._zod.def.maximum
961
+ } : chk == "length_equals" ? {
962
+ minLength: check._zod.def.length,
963
+ maxLength: check._zod.def.length
964
+ /* v8 ignore next 2 -- Guard */
965
+ } : {}
966
+ };
967
+ }, {});
968
+ return {
969
+ type: "array",
970
+ element: s(def.element, {
971
+ ...opts,
972
+ currentPath: [...opts.currentPath, "element"]
973
+ }),
974
+ ...getCustomChecksAndErrors(def, opts),
975
+ ...checks
976
+ };
977
+ },
978
+ object: (def, opts) => {
979
+ const ownPropertySymbols = Object.getOwnPropertySymbols(def.shape);
980
+ return {
981
+ type: "object",
982
+ ...getCustomChecksAndErrors(def, opts),
983
+ ...!def.catchall ? {} : {
984
+ catchall: s(def.catchall, {
985
+ ...opts,
986
+ currentPath: [...opts.currentPath, "catchall"]
987
+ })
988
+ },
989
+ ...ownPropertySymbols.length ? {
990
+ symbols: Object.fromEntries(
991
+ ownPropertySymbols.map((symbol) => {
992
+ if (!opts.symbols) {
993
+ throw new Error(
994
+ "Symbol key present without `symbols` option"
995
+ );
996
+ }
997
+ const index = opts.symbols.indexOf(symbol);
998
+ if (index === -1) {
999
+ throw new Error(
1000
+ "Symbol key and `symbols` option both present but key not found"
1001
+ );
1002
+ }
1003
+ return [
1004
+ index,
1005
+ s(def.shape[symbol], {
1006
+ ...opts,
1007
+ currentPath: [...opts.currentPath, "symbols", index]
1008
+ })
1009
+ ];
1010
+ })
1011
+ )
1012
+ } : {},
1013
+ properties: Object.fromEntries(
1014
+ Object.entries(def.shape).map(([key, schema]) => [
1015
+ key,
1016
+ s(schema, {
1017
+ ...opts,
1018
+ currentPath: [...opts.currentPath, "properties", key]
1019
+ })
1020
+ ])
1021
+ )
1022
+ };
1023
+ },
1024
+ record: (def, opts) => ({
1025
+ type: def.mode === "loose" ? "looseRecord" : "record",
1026
+ ...getCustomChecksAndErrors(def, opts),
1027
+ key: s(def.keyType, {
1028
+ ...opts,
1029
+ currentPath: [...opts.currentPath, "key"]
1030
+ }),
1031
+ value: s(def.valueType, {
1032
+ ...opts,
1033
+ currentPath: [...opts.currentPath, "value"]
1034
+ })
1035
+ }),
1036
+ map: (def, opts) => {
1037
+ const checks = def.checks?.reduce((o, check) => {
1038
+ const chk = check._zod.def.check;
1039
+ return {
1040
+ ...o,
1041
+ ...chk === "size_equals" ? {
1042
+ min: check._zod.def.size,
1043
+ max: check._zod.def.size
1044
+ } : chk === "min_size" ? {
1045
+ min: check._zod.def.minimum
1046
+ } : chk === "max_size" ? {
1047
+ max: check._zod.def.maximum
1048
+ } : (
1049
+ /* v8 ignore next -- Guard */
1050
+ {}
1051
+ )
1052
+ };
1053
+ }, {});
1054
+ return {
1055
+ type: "map",
1056
+ ...getCustomChecksAndErrors(def, opts),
1057
+ ...checks,
1058
+ key: s(def.keyType, {
1059
+ ...opts,
1060
+ currentPath: [...opts.currentPath, "key"]
1061
+ }),
1062
+ value: s(def.valueType, {
1063
+ ...opts,
1064
+ currentPath: [...opts.currentPath, "value"]
1065
+ })
1066
+ };
1067
+ },
1068
+ enum: (def) => ({ type: "enum", values: def.entries }),
1069
+ union: (def, opts) => {
1070
+ return {
1071
+ type: "discriminator" in def ? "discriminatedUnion" : "inclusive" in def && !def.inclusive ? "xor" : "union",
1072
+ ..."discriminator" in def ? {
1073
+ discriminator: def.discriminator
1074
+ } : {},
1075
+ ...getCustomChecksAndErrors(def, opts),
1076
+ options: def.options.map((opt, idx) => {
1077
+ const result = s(opt, {
1078
+ ...opts,
1079
+ currentPath: [...opts.currentPath, "options", String(idx)]
1080
+ });
1081
+ return result;
1082
+ })
1083
+ };
1084
+ },
1085
+ intersection: (def, opts) => ({
1086
+ type: "intersection",
1087
+ ...getCustomChecksAndErrors(def, opts),
1088
+ left: s(def.left, {
1089
+ ...opts,
1090
+ currentPath: [...opts.currentPath, "left"]
1091
+ }),
1092
+ right: s(def.right, {
1093
+ ...opts,
1094
+ currentPath: [...opts.currentPath, "right"]
1095
+ })
1096
+ }),
1097
+ promise: (def, opts) => ({
1098
+ type: "promise",
1099
+ value: s(def.innerType, {
1100
+ ...opts,
1101
+ currentPath: [...opts.currentPath, "value"]
1102
+ })
1103
+ }),
1104
+ lazy: (def, opts) => {
1105
+ const getter = def.getter();
1106
+ return s(
1107
+ getter,
1108
+ opts,
1109
+ // official equivalent for `isOptional`
1110
+ getter.safeParse(void 0).success || // official equivalent for `isNullable`
1111
+ getter.safeParse(null).success
1112
+ );
1113
+ },
1114
+ transform: (def, opts) => {
1115
+ let name = null;
1116
+ for (const [transformName, transformItem] of Object.entries(
1117
+ // v8 ignore next -- Guard
1118
+ opts.transforms ?? {}
1119
+ )) {
1120
+ if (def.type === "transform" && transformItem === def.transform) {
1121
+ name = transformName;
1122
+ break;
1123
+ }
1124
+ }
1125
+ return {
1126
+ type: "transform",
1127
+ name
1128
+ // inner: s(def.out, {
1129
+ // ...opts,
1130
+ // currentPath: [...opts.currentPath, "inner"],
1131
+ // }),
1132
+ };
1133
+ },
1134
+ pipe: (def, opts, schema) => {
1135
+ if ("truthy" in schema._zod.bag) {
1136
+ const { truthy, falsy, case: cse } = schema._zod.bag;
1137
+ return {
1138
+ type: "pipe",
1139
+ ...getCustomChecksAndErrors(def, opts),
1140
+ inner: s(def.in, opts),
1141
+ outer: s(def.out, opts),
1142
+ truthy,
1143
+ falsy,
1144
+ case: cse
1145
+ };
1146
+ }
1147
+ if (def.transform && def.reverseTransform) {
1148
+ const name = Object.entries(opts.codecs ?? {}).find(
1149
+ ([, codec]) => codec.decode === def.transform && codec.encode === def.reverseTransform
1150
+ )?.[0];
1151
+ if (!name) {
1152
+ throw new Error("Codec must be registered before it can be serialized");
1153
+ }
1154
+ return {
1155
+ type: "codec",
1156
+ name,
1157
+ ...getCustomChecksAndErrors(def, opts),
1158
+ input: s(def.in, {
1159
+ ...opts,
1160
+ currentPath: [...opts.currentPath, "input"]
1161
+ }),
1162
+ output: s(def.out, {
1163
+ ...opts,
1164
+ currentPath: [...opts.currentPath, "output"]
1165
+ })
1166
+ };
1167
+ }
1168
+ if (!("transforms" in opts)) {
1169
+ return s(def.out, opts);
1170
+ }
1171
+ return {
1172
+ type: "pipe",
1173
+ ...getCustomChecksAndErrors(def, opts),
1174
+ inner: s(def.in, opts),
1175
+ outer: s(def.out, opts)
1176
+ };
1177
+ },
1178
+ catch: (def, opts) => {
1179
+ const catchValue = def.catchValue({
1180
+ value: null,
1181
+ issues: [],
1182
+ // No errors to report, so just add an empty set
1183
+ /* v8 ignore next 3 -- Unused */
1184
+ get error() {
1185
+ return new z2.ZodError([]);
1186
+ },
1187
+ // We don't have any input yet, so just provide `undefined`
1188
+ input: void 0
1189
+ });
1190
+ return {
1191
+ type: "catch",
1192
+ value: catchValue,
1193
+ innerType: s(def.innerType, opts)
1194
+ };
1195
+ },
1196
+ readonly: (def, opts) => ({
1197
+ ...s(def.innerType, opts, true),
1198
+ readonly: true
1199
+ }),
1200
+ custom: (_def, opts, schema) => {
1201
+ const Constructor = schema._zod.bag.Class;
1202
+ if (!Constructor) {
1203
+ throw new Error("Only instanceof custom schemas can be serialized");
1204
+ }
1205
+ const name = Object.entries(opts.instances ?? {}).find(
1206
+ ([, instance]) => instance === Constructor
1207
+ )?.[0];
1208
+ if (!name) {
1209
+ throw new Error(
1210
+ "Instance constructor must be registered before it can be serialized"
1211
+ );
1212
+ }
1213
+ return { type: "instanceof", name };
1214
+ }
1215
+ };
1216
+ function zerializeRefs(schema, opts, wrapReferences) {
1217
+ if (opts.seenObjects.has(schema)) {
1218
+ return wrapReferences ? {
1219
+ type: "union",
1220
+ options: [{ $ref: opts.seenObjects.get(schema) }],
1221
+ ...typeof schema.description === "string" ? {
1222
+ description: schema.description
1223
+ } : {}
1224
+ } : { $ref: opts.seenObjects.get(schema) };
1225
+ }
1226
+ const {
1227
+ _zod: { def }
1228
+ } = schema;
1229
+ const objectPath = "#" + (opts.currentPath.length ? "/" + opts.currentPath.join("/") : "");
1230
+ opts.seenObjects.set(schema, objectPath);
1231
+ const zer = zerializers[def.type](
1232
+ def,
1233
+ opts,
1234
+ schema
1235
+ );
1236
+ Object.assign(zer, getCustomChecksAndErrors(def, opts));
1237
+ if (typeof schema.description === "string") {
1238
+ zer.description = schema.description;
1239
+ }
1240
+ const meta = schema.meta();
1241
+ if (meta && (Object.keys(meta).length !== 1 || !meta.description)) {
1242
+ zer.meta = meta;
1243
+ }
1244
+ return zer;
1245
+ }
1246
+ function zerialize(schema, opts = {}) {
1247
+ if (!opts.currentPath) {
1248
+ opts.currentPath = [];
1249
+ }
1250
+ if (!opts.seenObjects) {
1251
+ opts.seenObjects = /* @__PURE__ */ new WeakMap();
1252
+ }
1253
+ const zerialized = zerializeRefs(
1254
+ schema,
1255
+ opts
1256
+ );
1257
+ if (Object.hasOwn(opts, "schema")) {
1258
+ if (opts.schema !== null) {
1259
+ zerialized.$zodexySchema = opts.schema;
1260
+ }
1261
+ } else {
1262
+ zerialized.$zodexySchema = zodexySchema_default;
1263
+ }
1264
+ return zerialized;
1265
+ }
1266
+ export {
1267
+ NUMBER_FORMATS,
1268
+ PRIMITIVES,
1269
+ STRING_KINDS,
1270
+ dezerialize,
1271
+ dezerializeRefs,
1272
+ zerialize,
1273
+ zerializeRefs
1274
+ };