@es-joy/jsoe 0.24.2 → 0.25.0

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