cross-seed 7.0.0-21 → 7.0.0-23

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 (785) hide show
  1. package/dist/action.js +7 -8
  2. package/dist/action.js.map +1 -1
  3. package/dist/arr.js +2 -2
  4. package/dist/arr.js.map +1 -1
  5. package/dist/bencode.d.ts +62 -0
  6. package/dist/bencode.js +248 -0
  7. package/dist/bencode.js.map +1 -0
  8. package/dist/clients/Deluge.d.ts +5 -10
  9. package/dist/clients/Deluge.js +115 -89
  10. package/dist/clients/Deluge.js.map +1 -1
  11. package/dist/clients/QBittorrent.d.ts +3 -0
  12. package/dist/clients/QBittorrent.js +43 -30
  13. package/dist/clients/QBittorrent.js.map +1 -1
  14. package/dist/clients/RTorrent.d.ts +3 -2
  15. package/dist/clients/RTorrent.js +120 -41
  16. package/dist/clients/RTorrent.js.map +1 -1
  17. package/dist/clients/TorrentClient.d.ts +3 -2
  18. package/dist/clients/TorrentClient.js +3 -5
  19. package/dist/clients/TorrentClient.js.map +1 -1
  20. package/dist/clients/Transmission.d.ts +1 -0
  21. package/dist/clients/Transmission.js +90 -40
  22. package/dist/clients/Transmission.js.map +1 -1
  23. package/dist/clients/qbittorrent-version.d.ts +6 -0
  24. package/dist/clients/qbittorrent-version.js +11 -0
  25. package/dist/clients/qbittorrent-version.js.map +1 -0
  26. package/dist/clients/scgi.d.ts +14 -0
  27. package/dist/clients/scgi.js +111 -0
  28. package/dist/clients/scgi.js.map +1 -0
  29. package/dist/cmd.js +1 -1
  30. package/dist/cmd.js.map +1 -1
  31. package/dist/configuration.js +49 -9
  32. package/dist/configuration.js.map +1 -1
  33. package/dist/constants.d.ts +10 -0
  34. package/dist/constants.js +12 -2
  35. package/dist/constants.js.map +1 -1
  36. package/dist/dataFiles.d.ts +1 -0
  37. package/dist/dataFiles.js +252 -60
  38. package/dist/dataFiles.js.map +1 -1
  39. package/dist/db.js +8 -4
  40. package/dist/db.js.map +1 -1
  41. package/dist/decide.js +8 -8
  42. package/dist/decide.js.map +1 -1
  43. package/dist/devLogin.js.map +1 -1
  44. package/dist/diff.js.map +1 -1
  45. package/dist/indexers.js +5 -4
  46. package/dist/indexers.js.map +1 -1
  47. package/dist/inject.js +5 -5
  48. package/dist/inject.js.map +1 -1
  49. package/dist/jobs.js +2 -1
  50. package/dist/jobs.js.map +1 -1
  51. package/dist/libraryInventory.d.ts +176 -0
  52. package/dist/libraryInventory.js +701 -0
  53. package/dist/libraryInventory.js.map +1 -0
  54. package/dist/logger.js +7 -5
  55. package/dist/logger.js.map +1 -1
  56. package/dist/migrations/09-clientAndDataSearchees.js +1 -0
  57. package/dist/migrations/09-clientAndDataSearchees.js.map +1 -1
  58. package/dist/migrations/17-api-key-settings-json.js +3 -1
  59. package/dist/migrations/17-api-key-settings-json.js.map +1 -1
  60. package/dist/migrations/18-library-inventory.d.ts +9 -0
  61. package/dist/migrations/18-library-inventory.js +48 -0
  62. package/dist/migrations/18-library-inventory.js.map +1 -0
  63. package/dist/migrations/19-library-files.d.ts +9 -0
  64. package/dist/migrations/19-library-files.js +26 -0
  65. package/dist/migrations/19-library-files.js.map +1 -0
  66. package/dist/migrations/migrations.d.ts +12 -5
  67. package/dist/migrations/migrations.js +5 -1
  68. package/dist/migrations/migrations.js.map +1 -1
  69. package/dist/parseTorrent.d.ts +1 -1
  70. package/dist/parseTorrent.js +18 -4
  71. package/dist/parseTorrent.js.map +1 -1
  72. package/dist/pipeline.js +12 -11
  73. package/dist/pipeline.js.map +1 -1
  74. package/dist/problems/linking.js +1 -1
  75. package/dist/problems/linking.js.map +1 -1
  76. package/dist/problems.js +2 -1
  77. package/dist/problems.js.map +1 -1
  78. package/dist/pushNotifier.js +10 -9
  79. package/dist/pushNotifier.js.map +1 -1
  80. package/dist/routes/baseApi.d.ts +8 -0
  81. package/dist/routes/baseApi.js +26 -52
  82. package/dist/routes/baseApi.js.map +1 -1
  83. package/dist/routes/devLogin.js +1 -0
  84. package/dist/routes/devLogin.js.map +1 -1
  85. package/dist/routes/indexerApi.js +1 -0
  86. package/dist/routes/indexerApi.js.map +1 -1
  87. package/dist/routes/staticFrontendPlugin.js +1 -0
  88. package/dist/routes/staticFrontendPlugin.js.map +1 -1
  89. package/dist/searchee.d.ts +14 -2
  90. package/dist/searchee.js +26 -9
  91. package/dist/searchee.js.map +1 -1
  92. package/dist/services/indexerService.js +8 -2
  93. package/dist/services/indexerService.js.map +1 -1
  94. package/dist/startup.d.ts +1 -0
  95. package/dist/startup.js +11 -4
  96. package/dist/startup.js.map +1 -1
  97. package/dist/torrent.js +302 -115
  98. package/dist/torrent.js.map +1 -1
  99. package/dist/torznab.d.ts +2 -2
  100. package/dist/torznab.js +15 -14
  101. package/dist/torznab.js.map +1 -1
  102. package/dist/trpc/routers/auth.js +1 -1
  103. package/dist/trpc/routers/auth.js.map +1 -1
  104. package/dist/trpc/routers/clients.js +8 -13
  105. package/dist/trpc/routers/clients.js.map +1 -1
  106. package/dist/trpc/routers/index.d.ts +51 -50
  107. package/dist/trpc/routers/index.js +2 -2
  108. package/dist/trpc/routers/index.js.map +1 -1
  109. package/dist/trpc/routers/jobs.js +1 -1
  110. package/dist/trpc/routers/jobs.js.map +1 -1
  111. package/dist/trpc/routers/library.d.ts +50 -0
  112. package/dist/trpc/routers/library.js +85 -0
  113. package/dist/trpc/routers/library.js.map +1 -0
  114. package/dist/trpc/routers/logs.js +6 -5
  115. package/dist/trpc/routers/logs.js.map +1 -1
  116. package/dist/trpc/routers/settings.js +78 -21
  117. package/dist/trpc/routers/settings.js.map +1 -1
  118. package/dist/trpc/routers/stats.d.ts +1 -0
  119. package/dist/trpc/routers/stats.js +11 -5
  120. package/dist/trpc/routers/stats.js.map +1 -1
  121. package/dist/userAuth.js +1 -1
  122. package/dist/userAuth.js.map +1 -1
  123. package/dist/utils/background.d.ts +7 -0
  124. package/dist/utils/background.js +14 -0
  125. package/dist/utils/background.js.map +1 -0
  126. package/dist/utils/logWatcher.js +3 -2
  127. package/dist/utils/logWatcher.js.map +1 -1
  128. package/dist/utils.d.ts +11 -1
  129. package/dist/utils.js +47 -8
  130. package/dist/utils.js.map +1 -1
  131. package/dist/webui/assets/DeleteOption-DkdJCiOu.js +1 -0
  132. package/dist/webui/assets/FieldInfo-rcCXc0d-.js +1 -0
  133. package/dist/webui/assets/Page-CKwSnUie.js +1 -0
  134. package/dist/webui/assets/array-field-DM2mAVqa.js +1 -0
  135. package/dist/webui/assets/badge-CLUazitN.js +1 -0
  136. package/dist/webui/assets/button-DoKPR9Fv.js +1 -0
  137. package/dist/webui/assets/check-BlfHpqkp.js +1 -0
  138. package/dist/webui/assets/clients-B5C80D0F.js +1 -0
  139. package/dist/webui/assets/connect-BM7yGLAl.js +2 -0
  140. package/dist/webui/assets/createLucideIcon-Cv-_CLkr.js +1 -0
  141. package/dist/webui/assets/debug-C8d57uIb.js +1 -0
  142. package/dist/webui/assets/directories-DkJnb01t.js +1 -0
  143. package/dist/webui/assets/dist-B7BqKb_s.js +1 -0
  144. package/dist/webui/assets/dist-CXZZv-cf.js +41 -0
  145. package/dist/webui/assets/dist-ChMQZgJB.js +1 -0
  146. package/dist/webui/assets/dist-DQ6Xm99Z.js +1 -0
  147. package/dist/webui/assets/duration-field-w-qiOS_S.js +1 -0
  148. package/dist/webui/assets/general-2HmkyF5T.js +1 -0
  149. package/dist/webui/assets/health-D6tv4ioy.js +1 -0
  150. package/dist/webui/assets/index-NlorOk2I.js +11 -0
  151. package/dist/webui/assets/index-UQKt4Igp.css +2 -0
  152. package/dist/webui/assets/input-BggK3IOz.js +1 -0
  153. package/dist/webui/assets/jobs-Do8vAIqy.js +1 -0
  154. package/dist/webui/assets/library-B1r1nAY-.js +1 -0
  155. package/dist/webui/assets/loader-circle-D988WNxu.js +1 -0
  156. package/dist/webui/assets/logs-_rm8bxf-.js +1 -0
  157. package/dist/webui/assets/number-field-CeKyqI7R.js +1 -0
  158. package/dist/webui/assets/react-dom-DtIef6y6.js +1 -0
  159. package/dist/webui/assets/required-indicator-Ba9NOQEP.js +1 -0
  160. package/dist/webui/assets/routes-Djgf7dZI.js +1 -0
  161. package/dist/webui/assets/search-DGY0ui92.js +1 -0
  162. package/dist/webui/assets/select-BzZ418Yt.js +1 -0
  163. package/dist/webui/assets/select-field-DsBowTDT.js +1 -0
  164. package/dist/webui/assets/settings-B4G8vHXc.js +1 -0
  165. package/dist/webui/assets/sidebar-Qy-rYdhU.js +5 -0
  166. package/dist/webui/assets/submit-button-Bx2Dvr03.js +1 -0
  167. package/dist/webui/assets/switch-CttdmVGp.js +1 -0
  168. package/dist/webui/assets/switch-field-p-JPVVvW.js +1 -0
  169. package/dist/webui/assets/table-Bs6CQscS.js +1 -0
  170. package/dist/webui/assets/{test-tube-CbcievIk.js → test-tube-DD9Yz2bZ.js} +1 -1
  171. package/dist/webui/assets/text-field-B0a3dEGb.js +1 -0
  172. package/dist/webui/assets/time-KFQKyrl-.js +1 -0
  173. package/dist/webui/assets/trackers-DG-YCaaO.js +7 -0
  174. package/dist/webui/assets/{trash-D083IWKI.js → trash-PHXIGUCt.js} +1 -1
  175. package/dist/webui/assets/use-settings-form-submit-CDmMUcwW.js +57 -0
  176. package/dist/webui/assets/useSelector-BoN-mufS.js +2 -0
  177. package/dist/webui/assets/utils-P-unlvb4.js +1 -0
  178. package/dist/webui/assets/with-selector-fbK2t2oY.js +1 -0
  179. package/dist/webui/index.html +12 -14
  180. package/node_modules/@cross-seed/shared/dist/tsconfig.tsbuildinfo +1 -1
  181. package/node_modules/@cross-seed/shared/package.json +6 -2
  182. package/node_modules/zod/README.md +30 -20
  183. package/node_modules/zod/compile.cjs +96 -0
  184. package/node_modules/zod/compile.d.cts +1 -0
  185. package/node_modules/zod/compile.d.ts +1 -0
  186. package/node_modules/zod/compile.js +52 -0
  187. package/node_modules/zod/index.cjs +21 -2
  188. package/node_modules/zod/index.d.cts +1 -2
  189. package/node_modules/zod/index.d.ts +1 -2
  190. package/node_modules/zod/index.js +5 -2
  191. package/node_modules/zod/locales/index.cjs +19 -0
  192. package/node_modules/zod/locales/package.json +2 -1
  193. package/node_modules/zod/mini/index.cjs +19 -0
  194. package/node_modules/zod/mini/package.json +2 -1
  195. package/node_modules/zod/package.json +20 -8
  196. package/node_modules/zod/src/compile.ts +56 -0
  197. package/node_modules/zod/src/index.ts +5 -2
  198. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  199. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  200. package/node_modules/zod/src/v3/tests/all-errors.test.ts +3 -3
  201. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  202. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  203. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  204. package/node_modules/zod/src/v3/tests/object.test.ts +8 -11
  205. package/node_modules/zod/src/v3/tests/partials.test.ts +3 -3
  206. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  207. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  208. package/node_modules/zod/src/v3/types.ts +5 -5
  209. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  210. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  211. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  212. package/node_modules/zod/src/v4/classic/errors.ts +60 -45
  213. package/node_modules/zod/src/v4/classic/external.ts +15 -9
  214. package/node_modules/zod/src/v4/classic/from-json-schema.ts +389 -88
  215. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  216. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  217. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  218. package/node_modules/zod/src/v4/classic/parse.ts +16 -10
  219. package/node_modules/zod/src/v4/classic/schemas.ts +863 -335
  220. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  221. package/node_modules/zod/src/v4/classic/tests/array.test.ts +29 -2
  222. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +192 -0
  223. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +36 -1
  224. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +328 -0
  225. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  226. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +144 -2
  227. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +4 -4
  228. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  229. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +985 -0
  230. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  231. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +31 -17
  232. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  233. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  234. package/node_modules/zod/src/v4/classic/tests/default.test.ts +90 -0
  235. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +221 -0
  236. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +291 -10
  237. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +20 -0
  238. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +324 -2
  239. package/node_modules/zod/src/v4/classic/tests/error.test.ts +403 -6
  240. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +743 -10
  241. package/node_modules/zod/src/v4/classic/tests/function.test.ts +37 -6
  242. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +32 -0
  243. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  244. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  245. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  246. package/node_modules/zod/src/v4/classic/tests/index.test.ts +23 -4
  247. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +319 -0
  248. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +67 -0
  249. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  250. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +215 -0
  251. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +39 -0
  252. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  253. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  254. package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
  255. package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
  256. package/node_modules/zod/src/v4/classic/tests/map.test.ts +19 -0
  257. package/node_modules/zod/src/v4/classic/tests/number.test.ts +138 -7
  258. package/node_modules/zod/src/v4/classic/tests/object.test.ts +378 -12
  259. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +235 -0
  260. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +156 -13
  261. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +71 -1
  262. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +71 -1
  263. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +44 -0
  264. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +69 -0
  265. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  266. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  267. package/node_modules/zod/src/v4/classic/tests/record.test.ts +269 -16
  268. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +126 -1
  269. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  270. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +123 -0
  271. package/node_modules/zod/src/v4/classic/tests/set.test.ts +15 -0
  272. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  273. package/node_modules/zod/src/v4/classic/tests/string.test.ts +269 -4
  274. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  275. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +48 -7
  276. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1948 -205
  277. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +17 -0
  278. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +330 -2
  279. package/node_modules/zod/src/v4/classic/tests/union.test.ts +93 -2
  280. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +645 -0
  281. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  282. package/node_modules/zod/src/v4/core/api.ts +111 -34
  283. package/node_modules/zod/src/v4/core/checks.ts +120 -147
  284. package/node_modules/zod/src/v4/core/compile.ts +2322 -0
  285. package/node_modules/zod/src/v4/core/core.ts +116 -24
  286. package/node_modules/zod/src/v4/core/doc.ts +17 -9
  287. package/node_modules/zod/src/v4/core/errors.ts +138 -43
  288. package/node_modules/zod/src/v4/core/index.ts +3 -0
  289. package/node_modules/zod/src/v4/core/json-schema-generator.ts +8 -3
  290. package/node_modules/zod/src/v4/core/json-schema-processors.ts +440 -173
  291. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  292. package/node_modules/zod/src/v4/core/memoizer.ts +331 -0
  293. package/node_modules/zod/src/v4/core/parse.ts +167 -53
  294. package/node_modules/zod/src/v4/core/regexes.ts +50 -16
  295. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  296. package/node_modules/zod/src/v4/core/schemas.ts +1219 -531
  297. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  298. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +1004 -0
  299. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  300. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  301. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  302. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  303. package/node_modules/zod/src/v4/core/tests/compile.test.ts +2036 -0
  304. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  305. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +214 -0
  306. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  307. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
  308. package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
  309. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  310. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  311. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  312. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +22 -0
  313. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  314. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +58 -0
  315. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  316. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +133 -0
  317. package/node_modules/zod/src/v4/core/to-json-schema.ts +288 -44
  318. package/node_modules/zod/src/v4/core/util.ts +506 -179
  319. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  320. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  321. package/node_modules/zod/src/v4/index.ts +3 -3
  322. package/node_modules/zod/src/v4/locales/ar.ts +5 -0
  323. package/node_modules/zod/src/v4/locales/az.ts +5 -0
  324. package/node_modules/zod/src/v4/locales/be.ts +12 -0
  325. package/node_modules/zod/src/v4/locales/bg.ts +5 -0
  326. package/node_modules/zod/src/v4/locales/bn.ts +123 -0
  327. package/node_modules/zod/src/v4/locales/ca.ts +5 -0
  328. package/node_modules/zod/src/v4/locales/ckb.ts +140 -0
  329. package/node_modules/zod/src/v4/locales/cs.ts +5 -0
  330. package/node_modules/zod/src/v4/locales/da.ts +7 -2
  331. package/node_modules/zod/src/v4/locales/de.ts +5 -0
  332. package/node_modules/zod/src/v4/locales/el.ts +124 -0
  333. package/node_modules/zod/src/v4/locales/en.ts +21 -4
  334. package/node_modules/zod/src/v4/locales/eo.ts +5 -0
  335. package/node_modules/zod/src/v4/locales/es.ts +4 -0
  336. package/node_modules/zod/src/v4/locales/fa.ts +5 -0
  337. package/node_modules/zod/src/v4/locales/fi.ts +5 -0
  338. package/node_modules/zod/src/v4/locales/fr-CA.ts +5 -0
  339. package/node_modules/zod/src/v4/locales/fr.ts +41 -18
  340. package/node_modules/zod/src/v4/locales/gu.ts +123 -0
  341. package/node_modules/zod/src/v4/locales/he.ts +8 -1
  342. package/node_modules/zod/src/v4/locales/hi.ts +126 -0
  343. package/node_modules/zod/src/v4/locales/hr.ts +135 -0
  344. package/node_modules/zod/src/v4/locales/hu.ts +5 -0
  345. package/node_modules/zod/src/v4/locales/hy.ts +11 -0
  346. package/node_modules/zod/src/v4/locales/id.ts +5 -0
  347. package/node_modules/zod/src/v4/locales/index.ts +14 -0
  348. package/node_modules/zod/src/v4/locales/is.ts +5 -0
  349. package/node_modules/zod/src/v4/locales/it.ts +6 -1
  350. package/node_modules/zod/src/v4/locales/ja.ts +5 -0
  351. package/node_modules/zod/src/v4/locales/ka.ts +13 -8
  352. package/node_modules/zod/src/v4/locales/km.ts +5 -0
  353. package/node_modules/zod/src/v4/locales/kn.ts +126 -0
  354. package/node_modules/zod/src/v4/locales/ko.ts +5 -0
  355. package/node_modules/zod/src/v4/locales/lt.ts +4 -0
  356. package/node_modules/zod/src/v4/locales/mk.ts +5 -0
  357. package/node_modules/zod/src/v4/locales/ms.ts +5 -0
  358. package/node_modules/zod/src/v4/locales/ne.ts +128 -0
  359. package/node_modules/zod/src/v4/locales/nl.ts +5 -0
  360. package/node_modules/zod/src/v4/locales/nn.ts +121 -0
  361. package/node_modules/zod/src/v4/locales/no.ts +7 -2
  362. package/node_modules/zod/src/v4/locales/ota.ts +5 -0
  363. package/node_modules/zod/src/v4/locales/pl.ts +5 -0
  364. package/node_modules/zod/src/v4/locales/ps.ts +5 -0
  365. package/node_modules/zod/src/v4/locales/pt-BR.ts +161 -0
  366. package/node_modules/zod/src/v4/locales/pt.ts +101 -58
  367. package/node_modules/zod/src/v4/locales/ro.ts +132 -0
  368. package/node_modules/zod/src/v4/locales/ru.ts +12 -0
  369. package/node_modules/zod/src/v4/locales/sk.ts +123 -0
  370. package/node_modules/zod/src/v4/locales/sl.ts +5 -0
  371. package/node_modules/zod/src/v4/locales/sv.ts +7 -2
  372. package/node_modules/zod/src/v4/locales/ta.ts +5 -0
  373. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  374. package/node_modules/zod/src/v4/locales/th.ts +5 -0
  375. package/node_modules/zod/src/v4/locales/tk.ts +113 -0
  376. package/node_modules/zod/src/v4/locales/tr.ts +5 -0
  377. package/node_modules/zod/src/v4/locales/uk.ts +5 -0
  378. package/node_modules/zod/src/v4/locales/ur.ts +5 -0
  379. package/node_modules/zod/src/v4/locales/uz.ts +4 -0
  380. package/node_modules/zod/src/v4/locales/vi.ts +5 -0
  381. package/node_modules/zod/src/v4/locales/yo.ts +5 -0
  382. package/node_modules/zod/src/v4/locales/zh-CN.ts +5 -0
  383. package/node_modules/zod/src/v4/locales/zh-TW.ts +5 -0
  384. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  385. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  386. package/node_modules/zod/src/v4/mini/external.ts +13 -1
  387. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  388. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  389. package/node_modules/zod/src/v4/mini/schemas.ts +214 -79
  390. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  391. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  392. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  393. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +54 -1
  394. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  395. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  396. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  397. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  398. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  399. package/node_modules/zod/src/v4/mini/tests/index.test.ts +187 -4
  400. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  401. package/node_modules/zod/src/v4/mini/tests/object.test.ts +74 -9
  402. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +67 -1
  403. package/node_modules/zod/src/v4/mini/tests/string.test.ts +49 -0
  404. package/node_modules/zod/v3/ZodError.cjs +41 -12
  405. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  406. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  407. package/node_modules/zod/v3/ZodError.js +22 -12
  408. package/node_modules/zod/v3/errors.cjs +19 -0
  409. package/node_modules/zod/v3/external.cjs +19 -0
  410. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  411. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  412. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  413. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  414. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  415. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  416. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  417. package/node_modules/zod/v3/index.cjs +19 -0
  418. package/node_modules/zod/v3/package.json +2 -1
  419. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  420. package/node_modules/zod/v3/types.cjs +26 -5
  421. package/node_modules/zod/v3/types.js +7 -5
  422. package/node_modules/zod/v4/classic/checks.cjs +21 -1
  423. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  424. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  425. package/node_modules/zod/v4/classic/checks.js +1 -1
  426. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  427. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  428. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  429. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  430. package/node_modules/zod/v4/classic/deep-partial.cjs +58 -0
  431. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  432. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  433. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  434. package/node_modules/zod/v4/classic/errors.cjs +62 -34
  435. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  436. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  437. package/node_modules/zod/v4/classic/errors.js +44 -35
  438. package/node_modules/zod/v4/classic/external.cjs +51 -27
  439. package/node_modules/zod/v4/classic/external.d.cts +6 -2
  440. package/node_modules/zod/v4/classic/external.d.ts +6 -2
  441. package/node_modules/zod/v4/classic/external.js +5 -8
  442. package/node_modules/zod/v4/classic/from-json-schema.cjs +394 -78
  443. package/node_modules/zod/v4/classic/from-json-schema.js +375 -78
  444. package/node_modules/zod/v4/classic/in-out.cjs +82 -0
  445. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  446. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  447. package/node_modules/zod/v4/classic/in-out.js +36 -0
  448. package/node_modules/zod/v4/classic/index.cjs +21 -2
  449. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  450. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  451. package/node_modules/zod/v4/classic/index.js +2 -2
  452. package/node_modules/zod/v4/classic/iso.cjs +30 -22
  453. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  454. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  455. package/node_modules/zod/v4/classic/iso.js +2 -17
  456. package/node_modules/zod/v4/classic/package.json +2 -1
  457. package/node_modules/zod/v4/classic/parse.cjs +23 -1
  458. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  459. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  460. package/node_modules/zod/v4/classic/parse.js +1 -0
  461. package/node_modules/zod/v4/classic/schemas.cjs +629 -225
  462. package/node_modules/zod/v4/classic/schemas.d.cts +104 -27
  463. package/node_modules/zod/v4/classic/schemas.d.ts +104 -27
  464. package/node_modules/zod/v4/classic/schemas.js +601 -223
  465. package/node_modules/zod/v4/core/api.cjs +73 -26
  466. package/node_modules/zod/v4/core/api.d.cts +40 -9
  467. package/node_modules/zod/v4/core/api.d.ts +40 -9
  468. package/node_modules/zod/v4/core/api.js +51 -26
  469. package/node_modules/zod/v4/core/checks.cjs +88 -128
  470. package/node_modules/zod/v4/core/checks.d.cts +30 -14
  471. package/node_modules/zod/v4/core/checks.d.ts +30 -14
  472. package/node_modules/zod/v4/core/checks.js +68 -127
  473. package/node_modules/zod/v4/core/compile.cjs +1916 -0
  474. package/node_modules/zod/v4/core/compile.d.cts +65 -0
  475. package/node_modules/zod/v4/core/compile.d.ts +65 -0
  476. package/node_modules/zod/v4/core/compile.js +1866 -0
  477. package/node_modules/zod/v4/core/core.cjs +104 -20
  478. package/node_modules/zod/v4/core/core.d.cts +16 -4
  479. package/node_modules/zod/v4/core/core.d.ts +16 -4
  480. package/node_modules/zod/v4/core/core.js +87 -22
  481. package/node_modules/zod/v4/core/doc.cjs +31 -9
  482. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  483. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  484. package/node_modules/zod/v4/core/doc.js +12 -9
  485. package/node_modules/zod/v4/core/errors.cjs +146 -42
  486. package/node_modules/zod/v4/core/errors.d.cts +5 -0
  487. package/node_modules/zod/v4/core/errors.d.ts +5 -0
  488. package/node_modules/zod/v4/core/errors.js +127 -42
  489. package/node_modules/zod/v4/core/index.cjs +24 -1
  490. package/node_modules/zod/v4/core/index.d.cts +3 -0
  491. package/node_modules/zod/v4/core/index.d.ts +3 -0
  492. package/node_modules/zod/v4/core/index.js +3 -0
  493. package/node_modules/zod/v4/core/json-schema-generator.cjs +24 -1
  494. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  495. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  496. package/node_modules/zod/v4/core/json-schema-generator.js +6 -2
  497. package/node_modules/zod/v4/core/json-schema-processors.cjs +454 -173
  498. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  499. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  500. package/node_modules/zod/v4/core/json-schema-processors.js +413 -175
  501. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  502. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  503. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  504. package/node_modules/zod/v4/core/memoizer.cjs +360 -0
  505. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  506. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  507. package/node_modules/zod/v4/core/memoizer.js +311 -0
  508. package/node_modules/zod/v4/core/package.json +2 -1
  509. package/node_modules/zod/v4/core/parse.cjs +151 -49
  510. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  511. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  512. package/node_modules/zod/v4/core/parse.js +130 -48
  513. package/node_modules/zod/v4/core/regexes.cjs +61 -18
  514. package/node_modules/zod/v4/core/regexes.d.cts +11 -0
  515. package/node_modules/zod/v4/core/regexes.d.ts +11 -0
  516. package/node_modules/zod/v4/core/regexes.js +39 -16
  517. package/node_modules/zod/v4/core/registries.cjs +19 -0
  518. package/node_modules/zod/v4/core/registries.js +2 -2
  519. package/node_modules/zod/v4/core/schemas.cjs +957 -382
  520. package/node_modules/zod/v4/core/schemas.d.cts +154 -25
  521. package/node_modules/zod/v4/core/schemas.d.ts +154 -25
  522. package/node_modules/zod/v4/core/schemas.js +925 -382
  523. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  524. package/node_modules/zod/v4/core/to-json-schema.cjs +275 -40
  525. package/node_modules/zod/v4/core/to-json-schema.d.cts +45 -5
  526. package/node_modules/zod/v4/core/to-json-schema.d.ts +45 -5
  527. package/node_modules/zod/v4/core/to-json-schema.js +253 -39
  528. package/node_modules/zod/v4/core/util.cjs +428 -174
  529. package/node_modules/zod/v4/core/util.d.cts +82 -1
  530. package/node_modules/zod/v4/core/util.d.ts +82 -1
  531. package/node_modules/zod/v4/core/util.js +397 -175
  532. package/node_modules/zod/v4/core/versions.cjs +21 -2
  533. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  534. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  535. package/node_modules/zod/v4/core/versions.js +2 -2
  536. package/node_modules/zod/v4/core/visit.cjs +214 -0
  537. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  538. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  539. package/node_modules/zod/v4/core/visit.js +169 -0
  540. package/node_modules/zod/v4/index.cjs +34 -5
  541. package/node_modules/zod/v4/index.d.cts +2 -2
  542. package/node_modules/zod/v4/index.d.ts +2 -2
  543. package/node_modules/zod/v4/index.js +3 -2
  544. package/node_modules/zod/v4/locales/ar.cjs +5 -0
  545. package/node_modules/zod/v4/locales/ar.js +5 -0
  546. package/node_modules/zod/v4/locales/az.cjs +5 -0
  547. package/node_modules/zod/v4/locales/az.js +5 -0
  548. package/node_modules/zod/v4/locales/be.cjs +12 -0
  549. package/node_modules/zod/v4/locales/be.js +12 -0
  550. package/node_modules/zod/v4/locales/bg.cjs +5 -0
  551. package/node_modules/zod/v4/locales/bg.js +5 -0
  552. package/node_modules/zod/v4/locales/bn.cjs +140 -0
  553. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  554. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  555. package/node_modules/zod/v4/locales/bn.js +113 -0
  556. package/node_modules/zod/v4/locales/ca.cjs +5 -0
  557. package/node_modules/zod/v4/locales/ca.js +5 -0
  558. package/node_modules/zod/v4/locales/ckb.cjs +160 -0
  559. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  560. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  561. package/node_modules/zod/v4/locales/ckb.js +133 -0
  562. package/node_modules/zod/v4/locales/cs.cjs +5 -0
  563. package/node_modules/zod/v4/locales/cs.js +5 -0
  564. package/node_modules/zod/v4/locales/da.cjs +7 -2
  565. package/node_modules/zod/v4/locales/da.js +7 -2
  566. package/node_modules/zod/v4/locales/de.cjs +5 -0
  567. package/node_modules/zod/v4/locales/de.js +5 -0
  568. package/node_modules/zod/v4/locales/el.cjs +139 -0
  569. package/node_modules/zod/v4/locales/el.d.cts +5 -0
  570. package/node_modules/zod/v4/locales/el.d.ts +4 -0
  571. package/node_modules/zod/v4/locales/el.js +112 -0
  572. package/node_modules/zod/v4/locales/en.cjs +20 -4
  573. package/node_modules/zod/v4/locales/en.js +20 -4
  574. package/node_modules/zod/v4/locales/eo.cjs +5 -0
  575. package/node_modules/zod/v4/locales/eo.js +5 -0
  576. package/node_modules/zod/v4/locales/es.cjs +4 -0
  577. package/node_modules/zod/v4/locales/es.js +4 -0
  578. package/node_modules/zod/v4/locales/fa.cjs +5 -0
  579. package/node_modules/zod/v4/locales/fa.js +5 -0
  580. package/node_modules/zod/v4/locales/fi.cjs +5 -0
  581. package/node_modules/zod/v4/locales/fi.js +5 -0
  582. package/node_modules/zod/v4/locales/fr-CA.cjs +5 -0
  583. package/node_modules/zod/v4/locales/fr-CA.js +5 -0
  584. package/node_modules/zod/v4/locales/fr.cjs +38 -17
  585. package/node_modules/zod/v4/locales/fr.js +38 -17
  586. package/node_modules/zod/v4/locales/gu.cjs +140 -0
  587. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  588. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  589. package/node_modules/zod/v4/locales/gu.js +113 -0
  590. package/node_modules/zod/v4/locales/he.cjs +7 -0
  591. package/node_modules/zod/v4/locales/he.js +7 -0
  592. package/node_modules/zod/v4/locales/hi.cjs +138 -0
  593. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  594. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  595. package/node_modules/zod/v4/locales/hi.js +111 -0
  596. package/node_modules/zod/v4/locales/hr.cjs +153 -0
  597. package/node_modules/zod/v4/locales/hr.d.cts +5 -0
  598. package/node_modules/zod/v4/locales/hr.d.ts +4 -0
  599. package/node_modules/zod/v4/locales/hr.js +126 -0
  600. package/node_modules/zod/v4/locales/hu.cjs +5 -0
  601. package/node_modules/zod/v4/locales/hu.js +5 -0
  602. package/node_modules/zod/v4/locales/hy.cjs +11 -0
  603. package/node_modules/zod/v4/locales/hy.js +11 -0
  604. package/node_modules/zod/v4/locales/id.cjs +5 -0
  605. package/node_modules/zod/v4/locales/id.js +5 -0
  606. package/node_modules/zod/v4/locales/index.cjs +49 -1
  607. package/node_modules/zod/v4/locales/index.d.cts +14 -0
  608. package/node_modules/zod/v4/locales/index.d.ts +14 -0
  609. package/node_modules/zod/v4/locales/index.js +14 -0
  610. package/node_modules/zod/v4/locales/is.cjs +5 -0
  611. package/node_modules/zod/v4/locales/is.js +5 -0
  612. package/node_modules/zod/v4/locales/it.cjs +6 -1
  613. package/node_modules/zod/v4/locales/it.js +6 -1
  614. package/node_modules/zod/v4/locales/ja.cjs +5 -0
  615. package/node_modules/zod/v4/locales/ja.js +5 -0
  616. package/node_modules/zod/v4/locales/ka.cjs +13 -8
  617. package/node_modules/zod/v4/locales/ka.js +13 -8
  618. package/node_modules/zod/v4/locales/km.cjs +5 -0
  619. package/node_modules/zod/v4/locales/km.js +5 -0
  620. package/node_modules/zod/v4/locales/kn.cjs +143 -0
  621. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  622. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  623. package/node_modules/zod/v4/locales/kn.js +116 -0
  624. package/node_modules/zod/v4/locales/ko.cjs +5 -0
  625. package/node_modules/zod/v4/locales/ko.js +5 -0
  626. package/node_modules/zod/v4/locales/lt.cjs +4 -0
  627. package/node_modules/zod/v4/locales/lt.js +4 -0
  628. package/node_modules/zod/v4/locales/mk.cjs +5 -0
  629. package/node_modules/zod/v4/locales/mk.js +5 -0
  630. package/node_modules/zod/v4/locales/ms.cjs +5 -0
  631. package/node_modules/zod/v4/locales/ms.js +5 -0
  632. package/node_modules/zod/v4/locales/ne.cjs +138 -0
  633. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  634. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  635. package/node_modules/zod/v4/locales/ne.js +111 -0
  636. package/node_modules/zod/v4/locales/nl.cjs +5 -0
  637. package/node_modules/zod/v4/locales/nl.js +5 -0
  638. package/node_modules/zod/v4/locales/nn.cjs +140 -0
  639. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  640. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  641. package/node_modules/zod/v4/locales/nn.js +113 -0
  642. package/node_modules/zod/v4/locales/no.cjs +7 -2
  643. package/node_modules/zod/v4/locales/no.js +7 -2
  644. package/node_modules/zod/v4/locales/ota.cjs +5 -0
  645. package/node_modules/zod/v4/locales/ota.js +5 -0
  646. package/node_modules/zod/v4/locales/package.json +2 -1
  647. package/node_modules/zod/v4/locales/pl.cjs +5 -0
  648. package/node_modules/zod/v4/locales/pl.js +5 -0
  649. package/node_modules/zod/v4/locales/ps.cjs +5 -0
  650. package/node_modules/zod/v4/locales/ps.js +5 -0
  651. package/node_modules/zod/v4/locales/pt-BR.cjs +170 -0
  652. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  653. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  654. package/node_modules/zod/v4/locales/pt-BR.js +143 -0
  655. package/node_modules/zod/v4/locales/pt.cjs +89 -55
  656. package/node_modules/zod/v4/locales/pt.js +89 -55
  657. package/node_modules/zod/v4/locales/ro.cjs +149 -0
  658. package/node_modules/zod/v4/locales/ro.d.cts +5 -0
  659. package/node_modules/zod/v4/locales/ro.d.ts +4 -0
  660. package/node_modules/zod/v4/locales/ro.js +122 -0
  661. package/node_modules/zod/v4/locales/ru.cjs +12 -0
  662. package/node_modules/zod/v4/locales/ru.js +12 -0
  663. package/node_modules/zod/v4/locales/sk.cjs +143 -0
  664. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  665. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  666. package/node_modules/zod/v4/locales/sk.js +116 -0
  667. package/node_modules/zod/v4/locales/sl.cjs +5 -0
  668. package/node_modules/zod/v4/locales/sl.js +5 -0
  669. package/node_modules/zod/v4/locales/sv.cjs +7 -2
  670. package/node_modules/zod/v4/locales/sv.js +7 -2
  671. package/node_modules/zod/v4/locales/ta.cjs +5 -0
  672. package/node_modules/zod/v4/locales/ta.js +5 -0
  673. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  674. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  675. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  676. package/node_modules/zod/v4/locales/tg.js +117 -0
  677. package/node_modules/zod/v4/locales/th.cjs +5 -0
  678. package/node_modules/zod/v4/locales/th.js +5 -0
  679. package/node_modules/zod/v4/locales/tk.cjs +134 -0
  680. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  681. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  682. package/node_modules/zod/v4/locales/tk.js +107 -0
  683. package/node_modules/zod/v4/locales/tr.cjs +5 -0
  684. package/node_modules/zod/v4/locales/tr.js +5 -0
  685. package/node_modules/zod/v4/locales/uk.cjs +5 -0
  686. package/node_modules/zod/v4/locales/uk.js +5 -0
  687. package/node_modules/zod/v4/locales/ur.cjs +5 -0
  688. package/node_modules/zod/v4/locales/ur.js +5 -0
  689. package/node_modules/zod/v4/locales/uz.cjs +4 -0
  690. package/node_modules/zod/v4/locales/uz.js +4 -0
  691. package/node_modules/zod/v4/locales/vi.cjs +5 -0
  692. package/node_modules/zod/v4/locales/vi.js +5 -0
  693. package/node_modules/zod/v4/locales/yo.cjs +5 -0
  694. package/node_modules/zod/v4/locales/yo.js +5 -0
  695. package/node_modules/zod/v4/locales/zh-CN.cjs +5 -0
  696. package/node_modules/zod/v4/locales/zh-CN.js +5 -0
  697. package/node_modules/zod/v4/locales/zh-TW.cjs +5 -0
  698. package/node_modules/zod/v4/locales/zh-TW.js +5 -0
  699. package/node_modules/zod/v4/mini/checks.cjs +21 -1
  700. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  701. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  702. package/node_modules/zod/v4/mini/checks.js +1 -1
  703. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  704. package/node_modules/zod/v4/mini/deep-partial.cjs +58 -0
  705. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  706. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  707. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  708. package/node_modules/zod/v4/mini/external.cjs +33 -1
  709. package/node_modules/zod/v4/mini/external.d.cts +6 -2
  710. package/node_modules/zod/v4/mini/external.d.ts +6 -2
  711. package/node_modules/zod/v4/mini/external.js +3 -1
  712. package/node_modules/zod/v4/mini/in-out.cjs +82 -0
  713. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  714. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  715. package/node_modules/zod/v4/mini/in-out.js +36 -0
  716. package/node_modules/zod/v4/mini/index.cjs +19 -0
  717. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  718. package/node_modules/zod/v4/mini/package.json +2 -1
  719. package/node_modules/zod/v4/mini/parse.cjs +22 -1
  720. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  721. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  722. package/node_modules/zod/v4/mini/parse.js +1 -1
  723. package/node_modules/zod/v4/mini/schemas.cjs +151 -50
  724. package/node_modules/zod/v4/mini/schemas.d.cts +75 -22
  725. package/node_modules/zod/v4/mini/schemas.d.ts +75 -22
  726. package/node_modules/zod/v4/mini/schemas.js +125 -48
  727. package/node_modules/zod/v4/package.json +2 -1
  728. package/node_modules/zod/v4-mini/index.cjs +19 -0
  729. package/node_modules/zod/v4-mini/package.json +2 -1
  730. package/package.json +16 -14
  731. package/dist/trpc/routers/searchees.d.ts +0 -51
  732. package/dist/trpc/routers/searchees.js +0 -156
  733. package/dist/trpc/routers/searchees.js.map +0 -1
  734. package/dist/webui/assets/ClientOnly-CzZIsGML.js +0 -1
  735. package/dist/webui/assets/DeleteOption-dxKSbv6N.js +0 -1
  736. package/dist/webui/assets/FieldInfo-FLjtPgL4.js +0 -1
  737. package/dist/webui/assets/Page-C7KClZ28.js +0 -1
  738. package/dist/webui/assets/array-field-DGB7Lbh7.js +0 -1
  739. package/dist/webui/assets/badge-hukNSIir.js +0 -1
  740. package/dist/webui/assets/button-1cIaa9Lf.js +0 -1
  741. package/dist/webui/assets/check-CUrWQ2C7.js +0 -1
  742. package/dist/webui/assets/chevron-down-CVVogpPh.js +0 -1
  743. package/dist/webui/assets/clients-CHdgqO4r.js +0 -1
  744. package/dist/webui/assets/connect-Cr6Q3W8U.js +0 -2
  745. package/dist/webui/assets/createLucideIcon-zYRS_Hrv.js +0 -1
  746. package/dist/webui/assets/debug-CEmoQ2W_.js +0 -1
  747. package/dist/webui/assets/directories-CNuHKfHz.js +0 -1
  748. package/dist/webui/assets/dist-Bbmh5Du9.js +0 -1
  749. package/dist/webui/assets/dist-DhH_lYkz.js +0 -1
  750. package/dist/webui/assets/dist-DzdkRn7I.js +0 -1
  751. package/dist/webui/assets/dist-b2njvUJz.js +0 -41
  752. package/dist/webui/assets/dist-d-Lt00zD.js +0 -1
  753. package/dist/webui/assets/duration-field-CnlQcr37.js +0 -1
  754. package/dist/webui/assets/form-context-B-ekdUc0.js +0 -1
  755. package/dist/webui/assets/form-validation-context-CPAPOloL.js +0 -1
  756. package/dist/webui/assets/general-Cs8dEydJ.js +0 -1
  757. package/dist/webui/assets/health-DugF7R6A.js +0 -1
  758. package/dist/webui/assets/index-DhV1H9AB.css +0 -2
  759. package/dist/webui/assets/index-DinSQfHc.js +0 -11
  760. package/dist/webui/assets/input-CsfmMUT5.js +0 -1
  761. package/dist/webui/assets/jobs-Cr1xWWzM.js +0 -1
  762. package/dist/webui/assets/library-BNsctrbc.js +0 -1
  763. package/dist/webui/assets/loader-circle-BQbzoYGJ.js +0 -1
  764. package/dist/webui/assets/logs-C1l3cu_j.js +0 -1
  765. package/dist/webui/assets/number-field-Ce3QdLSz.js +0 -1
  766. package/dist/webui/assets/react-dom-mEftaaxx.js +0 -1
  767. package/dist/webui/assets/required-indicator-BXf2UzTH.js +0 -1
  768. package/dist/webui/assets/routes-Bw2nXmFg.js +0 -1
  769. package/dist/webui/assets/search-D9W5vk_0.js +0 -1
  770. package/dist/webui/assets/select-CZn10WME.js +0 -1
  771. package/dist/webui/assets/select-field-DozTirAZ.js +0 -1
  772. package/dist/webui/assets/settings-BXbhXNDK.js +0 -1
  773. package/dist/webui/assets/sidebar-y9WJu7Jw.js +0 -5
  774. package/dist/webui/assets/submit-button-CBOzR0f_.js +0 -1
  775. package/dist/webui/assets/switch-D4S9As9u.js +0 -1
  776. package/dist/webui/assets/switch-field-2E9ctvy_.js +0 -1
  777. package/dist/webui/assets/table-B1Y18B60.js +0 -1
  778. package/dist/webui/assets/text-field-DV4EP-I8.js +0 -1
  779. package/dist/webui/assets/time-DjUFOA4D.js +0 -1
  780. package/dist/webui/assets/trackers-ULhLxA6-.js +0 -7
  781. package/dist/webui/assets/use-settings-form-submit-D87nmJRy.js +0 -79
  782. package/dist/webui/assets/useBaseQuery-BvrWhgOK.js +0 -1
  783. package/dist/webui/assets/useRouterState-CZfD5Xdv.js +0 -1
  784. package/dist/webui/assets/useStore-CusP06SD.js +0 -1
  785. package/node_modules/zod/src/v4/core/config.ts +0 -15
@@ -1,4 +1,5 @@
1
1
  import type * as checks from "./checks.js";
2
+ import { globalConfig } from "./core.js";
2
3
  import type { $ZodConfig } from "./core.js";
3
4
  import type * as errors from "./errors.js";
4
5
  import type * as schemas from "./schemas.js";
@@ -85,6 +86,58 @@ export type ParsedTypes =
85
86
  export type AssertEqual<T, U> = (<V>() => V extends T ? 1 : 2) extends <V>() => V extends U ? 1 : 2 ? true : false;
86
87
  export type AssertNotEqual<T, U> = (<V>() => V extends T ? 1 : 2) extends <V>() => V extends U ? 1 : 2 ? false : true;
87
88
  export type AssertExtends<T, U> = T extends U ? T : never;
89
+ type ToZodMismatch<T, S extends schemas.$ZodType> = {
90
+ "types do not match": {
91
+ expected: T;
92
+ received: S["_zod"]["output"];
93
+ };
94
+ };
95
+
96
+ // Stays a `$ZodType` so it still satisfies the shape constraint, and carries a brand no real schema has so the offending property is the one TypeScript reports as unassignable.
97
+ type ToZodKeyMismatch<Expected, Received> = schemas.$ZodType & {
98
+ "types do not match": { expected: Expected; received: Received };
99
+ };
100
+
101
+ // An enum reference and the union of exactly its members are mutually assignable but not identical, so `AssertEqual` alone rejects `z.enum(SomeEnum)` against a `SomeEnum` target. Unioning each side with a private dummy forces the union to be rebuilt, which collapses that one difference and nothing else — plain literals against an enum, member subsets, brands and `any` all still fail. The symbol is not exported, so no user type can smuggle it in and cancel a real difference.
102
+ declare const toZodDummy: unique symbol;
103
+
104
+ // Homomorphic, so `readonly` and optional modifiers survive the rebuild and only leaves are normalized. An intersection flattens here, which is why an intersection target and the flat object with the same keys match each other. A callable stops the walk because `keyof` a function is `never`, so mapping one would erase its signature and make every function compare equal.
105
+ type ToZodNormalize<T> = [T] extends [(...args: any[]) => any]
106
+ ? T
107
+ : [T] extends [object]
108
+ ? { [K in keyof T]: ToZodNormalize<T[K]> }
109
+ : T | typeof toZodDummy;
110
+
111
+ type ToZodEqual<Output, T> = AssertEqual<Output, T> extends true
112
+ ? true
113
+ : IsAny<Output> extends true
114
+ ? false
115
+ : IsAny<T> extends true
116
+ ? false
117
+ : AssertEqual<ToZodNormalize<Output>, ToZodNormalize<T>>;
118
+
119
+ // Rebuilds the shape with a marker on each key that disagrees, so the diagnostic names the key instead of failing the whole schema at the top level. A key the target lacks reports `expected: never`; a key the schema lacks reports `received: never`.
120
+ type ToZodShape<Shape, T> = {
121
+ [K in keyof Shape]: Shape[K] extends schemas.$ZodType
122
+ ? K extends keyof T
123
+ ? ToZodEqual<Shape[K]["_zod"]["output"], T[K]> extends true
124
+ ? Shape[K]
125
+ : ToZodKeyMismatch<T[K], Shape[K]["_zod"]["output"]>
126
+ : ToZodKeyMismatch<never, Shape[K]["_zod"]["output"]>
127
+ : Shape[K];
128
+ } & { [K in Exclude<keyof T, keyof Shape>]: ToZodKeyMismatch<T[K], never> };
129
+
130
+ // Forces the mapped type to display expanded, so the error prints the keys rather than the alias name.
131
+ type ToZodExpand<X> = { [K in keyof X]: X[K] } & {};
132
+
133
+ // Only localizes when a key is genuinely at fault. A whole-type difference the per-key walk cannot see — a `readonly` modifier, an intersection versus the flat object with the same keys — leaves every key agreeing, and reporting nothing there would silently accept what the top-level check rejected.
134
+ type ToZodTarget<S extends schemas.$ZodType, T> = S extends schemas.$ZodObject<infer Shape, infer Config>
135
+ ? T extends object
136
+ ? AssertEqual<ToZodExpand<ToZodShape<Shape, T>>, ToZodExpand<Shape>> extends true
137
+ ? S & ToZodMismatch<T, S>
138
+ : schemas.$ZodObject<ToZodExpand<ToZodShape<Shape, T>>, Config>
139
+ : S & ToZodMismatch<T, S>
140
+ : S & ToZodMismatch<T, S>;
88
141
  export type IsAny<T> = 0 extends 1 & T ? true : false;
89
142
  export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
90
143
  export type OmitKeys<T, K extends string> = Pick<T, Exclude<keyof T, K>>;
@@ -94,6 +147,17 @@ export type MakeRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K
94
147
  export type Exactly<T, X> = T & Record<Exclude<keyof X, keyof T>, never>;
95
148
  export type NoUndefined<T> = T extends undefined ? never : T;
96
149
  export type Whatever = {} | undefined | null;
150
+ // literal inputs widen to their primitive so a property check over `"https:"` accepts a `string` property
151
+ export type Widen<T> = T extends string
152
+ ? string
153
+ : T extends number
154
+ ? number
155
+ : T extends boolean
156
+ ? boolean
157
+ : T extends bigint
158
+ ? bigint
159
+ : T;
160
+
97
161
  export type LoosePartial<T extends object> = InexactPartial<T> & {
98
162
  [k: string]: unknown;
99
163
  };
@@ -196,6 +260,12 @@ export function assertNotEqual<A, B>(val: AssertNotEqual<A, B>): AssertNotEqual<
196
260
  return val;
197
261
  }
198
262
 
263
+ export function toZod<T>(): <S extends schemas.$ZodType>(
264
+ schema: ToZodEqual<S["_zod"]["output"], T> extends true ? S : ToZodTarget<S, T>
265
+ ) => S {
266
+ return (schema) => schema as any;
267
+ }
268
+
199
269
  export function assertIs<T>(_arg: T): void {}
200
270
 
201
271
  export function assertNever(_x: never): never {
@@ -220,18 +290,28 @@ export function jsonStringifyReplacer(_: string, value: any): any {
220
290
  return value;
221
291
  }
222
292
 
293
+ // the accessor lives on a shared prototype: an own accessor makes every box a dictionary-mode object (~360 B and a slow load per read against ~100 B and an inlined getter here)
294
+ class Cached<T> {
295
+ _getter: (() => T) | undefined;
296
+ _value: T | undefined;
297
+
298
+ constructor(getter: () => T) {
299
+ this._getter = getter;
300
+ this._value = undefined;
301
+ }
302
+
303
+ get value(): T {
304
+ const getter = this._getter;
305
+ if (getter !== undefined) {
306
+ this._value = getter();
307
+ this._getter = undefined;
308
+ }
309
+ return this._value as T;
310
+ }
311
+ }
312
+
223
313
  export function cached<T>(getter: () => T): { value: T } {
224
- const set = false;
225
- return {
226
- get value() {
227
- if (!set) {
228
- const value = getter();
229
- Object.defineProperty(this, "value", { value });
230
- return value;
231
- }
232
- throw new Error("cached value already set");
233
- },
234
- };
314
+ return new Cached(getter);
235
315
  }
236
316
 
237
317
  export function nullish(input: any): boolean {
@@ -245,23 +325,15 @@ export function cleanRegex(source: string): string {
245
325
  }
246
326
 
247
327
  export function floatSafeRemainder(val: number, step: number): number {
248
- const valDecCount = (val.toString().split(".")[1] || "").length;
249
- const stepString = step.toString();
250
- let stepDecCount = (stepString.split(".")[1] || "").length;
251
- if (stepDecCount === 0 && /\d?e-\d?/.test(stepString)) {
252
- const match = stepString.match(/\d?e-(\d?)/);
253
- if (match?.[1]) {
254
- stepDecCount = Number.parseInt(match[1]);
255
- }
256
- }
257
-
258
- const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
259
- const valInt = Number.parseInt(val.toFixed(decCount).replace(".", ""));
260
- const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", ""));
261
- return (valInt % stepInt) / 10 ** decCount;
328
+ const ratio = val / step;
329
+ const roundedRatio = Math.round(ratio);
330
+ // `val` and `step` each round to a double before the division rounds again, so a true decimal multiple's quotient can sit up to 1.5 of these scaled epsilons from the integer. A 1x tolerance therefore rejected 2.03 as a multiple of 0.07; 4x covers the worst case with margin.
331
+ const tolerance = 4 * Number.EPSILON * Math.max(Math.abs(ratio), 1);
332
+ if (Math.abs(ratio - roundedRatio) < tolerance) return 0;
333
+ return ratio - roundedRatio;
262
334
  }
263
335
 
264
- const EVALUATING = Symbol("evaluating");
336
+ const EVALUATING = /* @__PURE__*/ Symbol("evaluating");
265
337
 
266
338
  export function defineLazy<T, K extends keyof T>(object: T, key: K, getter: () => T[K]): void {
267
339
  let value: T[K] | typeof EVALUATING | undefined = undefined;
@@ -305,6 +377,80 @@ export function assignProp<T extends object, K extends PropertyKey>(
305
377
  });
306
378
  }
307
379
 
380
+ /** A def's `shape` accessor, carrying whichever object it currently answers from. */
381
+ export interface ShapeGetter {
382
+ (): Record<PropertyKey, any>;
383
+ raw: Record<PropertyKey, any>;
384
+ }
385
+
386
+ /**
387
+ * Whichever object a def's `shape` currently answers from: the one the caller passed until the first read, the frozen copy after it.
388
+ *
389
+ * Its keys and descriptors read without invoking anything, which is what lets a discriminated union check its discriminator, and the cycle walk read a shape, without resolving a getter that references the schema being constructed. A def that answers `shape` from an accessor of its own has none.
390
+ */
391
+ export function rawShape(def: any): Record<PropertyKey, any> | undefined {
392
+ const desc = Object.getOwnPropertyDescriptor(def, "shape");
393
+ return desc?.get ? (desc.get as ShapeGetter).raw : desc?.value;
394
+ }
395
+
396
+ // where a builder reads its source's keys and descriptors, resolving only a shape a def answers for itself. A shape resolves by object spread, so only its enumerable keys are ever part of it.
397
+ function sourceShape(schema: schemas.$ZodObject): Record<PropertyKey, any> {
398
+ return rawShape(schema._zod.def) ?? (schema._zod.def.shape as any);
399
+ }
400
+
401
+ // a key whose value is not settled yet, self-caching so every read after the first gets the same one
402
+ function deferProp(target: object, key: PropertyKey, getter: () => any): void {
403
+ Object.defineProperty(target, key, {
404
+ get(this: any) {
405
+ const value = getter();
406
+ assignProp(this, key as any, value);
407
+ return value;
408
+ },
409
+ enumerable: true,
410
+ configurable: true,
411
+ });
412
+ }
413
+
414
+ // Writes a settled key. A plain assignment is much cheaper than `defineProperty` and produces the same descriptor, but it runs whatever setter already answers to the key — an accessor this shape deferred, or an inherited one, which `__proto__` has on every object and prototype pollution can add for any name.
415
+ function putProp(target: any, key: PropertyKey, value: any): void {
416
+ if (key in target) assignProp(target, key as any, value);
417
+ else target[key] = value;
418
+ }
419
+
420
+ /**
421
+ * Copies `keys` of `source`'s shape onto `target`, each value passed through `wrap`.
422
+ *
423
+ * A key the source has resolved is copied through now, so the derived shape states it outright and nothing has to resolve it to learn what it holds. A key the source still defers stays deferred, and reads back through the source's own `shape`, so it resolves once and both shapes get that one schema.
424
+ */
425
+ function mirrorShape(
426
+ target: object,
427
+ source: schemas.$ZodObject,
428
+ keys: PropertyKey[],
429
+ wrap?: ((value: any, key: PropertyKey) => any) | null
430
+ ): void {
431
+ const raw = sourceShape(source);
432
+ for (const key of keys) {
433
+ const desc = Object.getOwnPropertyDescriptor(raw, key)!;
434
+ if (!desc.enumerable) continue;
435
+ if (desc.get) {
436
+ deferProp(target, key, () => {
437
+ const value = (source._zod.def.shape as any)[key];
438
+ return wrap ? wrap(value, key) : value;
439
+ });
440
+ } else putProp(target, key, wrap ? wrap(desc.value, key) : desc.value);
441
+ }
442
+ }
443
+
444
+ // same, for a plain shape a caller passed rather than a schema's
445
+ function mirrorProps(target: object, source: Record<PropertyKey, any>): void {
446
+ for (const key of Reflect.ownKeys(source)) {
447
+ const desc = Object.getOwnPropertyDescriptor(source, key)!;
448
+ if (!desc.enumerable) continue;
449
+ if (desc.get) deferProp(target, key, () => source[key as any]);
450
+ else putProp(target, key, desc.value);
451
+ }
452
+ }
453
+
308
454
  export function mergeDefs(...defs: Record<string, any>[]): any {
309
455
  const mergedDescriptors: Record<string, PropertyDescriptor> = {};
310
456
 
@@ -368,7 +514,12 @@ export function isObject(data: any): data is Record<PropertyKey, unknown> {
368
514
  return typeof data === "object" && data !== null && !Array.isArray(data);
369
515
  }
370
516
 
371
- export const allowsEval: { value: boolean } = cached(() => {
517
+ export const allowsEval: { value: boolean } = /* @__PURE__*/ cached(() => {
518
+ // Skip the probe under `jitless`: strict CSPs report the caught `new Function` as a `securitypolicyviolation` even though the throw is swallowed.
519
+ if (globalConfig.jitless) {
520
+ return false;
521
+ }
522
+
372
523
  // @ts-ignore
373
524
  if (typeof navigator !== "undefined" && navigator?.userAgent?.includes("Cloudflare")) {
374
525
  return false;
@@ -407,6 +558,8 @@ export function isPlainObject(o: any): o is Record<PropertyKey, unknown> {
407
558
  export function shallowClone(o: any): any {
408
559
  if (isPlainObject(o)) return { ...o };
409
560
  if (Array.isArray(o)) return [...o];
561
+ if (o instanceof Map) return new Map(o);
562
+ if (o instanceof Set) return new Set(o);
410
563
  return o;
411
564
  }
412
565
 
@@ -475,8 +628,15 @@ export const getParsedType = (data: any): ParsedTypes => {
475
628
  }
476
629
  };
477
630
 
478
- export const propertyKeyTypes: Set<string> = new Set(["string", "number", "symbol"]);
479
- export const primitiveTypes: Set<string> = new Set(["string", "number", "bigint", "boolean", "symbol", "undefined"]);
631
+ export const propertyKeyTypes: Set<string> = /* @__PURE__*/ new Set(["string", "number", "symbol"]);
632
+ export const primitiveTypes: Set<string> = /* @__PURE__*/ new Set([
633
+ "string",
634
+ "number",
635
+ "bigint",
636
+ "boolean",
637
+ "symbol",
638
+ "undefined",
639
+ ]);
480
640
  export function escapeRegex(str: string): string {
481
641
  return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
482
642
  }
@@ -565,7 +725,7 @@ export function stringifyPrimitive(value: any): string {
565
725
 
566
726
  export function optionalKeys(shape: schemas.$ZodShape): string[] {
567
727
  return Object.keys(shape).filter((k) => {
568
- return shape[k]!._zod.optin === "optional" && shape[k]!._zod.optout === "optional";
728
+ return shape[k]!._zod.optin !== undefined && shape[k]!._zod.optout === "optional";
569
729
  });
570
730
  }
571
731
 
@@ -577,13 +737,14 @@ export type FromCleanMap<T extends schemas.$ZodLooseShape> = {
577
737
  [k in keyof T as k extends `?${infer K}` ? K : k extends `${infer K}?` ? K : k]: k;
578
738
  };
579
739
 
580
- export const NUMBER_FORMAT_RANGES: Record<checks.$ZodNumberFormats, [number, number]> = {
740
+ // Wrapped in a `@__PURE__` IIFE: esbuild never tree-shakes a top-level initializer that contains a member access on `Number`, so the bare object literal survived into every bundle.
741
+ export const NUMBER_FORMAT_RANGES: Record<checks.$ZodNumberFormats, [number, number]> = /*@__PURE__*/ (() => ({
581
742
  safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],
582
743
  int32: [-2147483648, 2147483647],
583
744
  uint32: [0, 4294967295],
584
745
  float32: [-3.4028234663852886e38, 3.4028234663852886e38],
585
746
  float64: [-Number.MAX_VALUE, Number.MAX_VALUE],
586
- };
747
+ }))();
587
748
 
588
749
  export const BIGINT_FORMAT_RANGES: Record<checks.$ZodBigIntFormats, [bigint, bigint]> = {
589
750
  int64: [/* @__PURE__*/ BigInt("-9223372036854775808"), /* @__PURE__*/ BigInt("9223372036854775807")],
@@ -599,24 +760,24 @@ export function pick(schema: schemas.$ZodObject, mask: Record<string, unknown>):
599
760
  throw new Error(".pick() cannot be used on object schemas containing refinements");
600
761
  }
601
762
 
602
- const def = mergeDefs(schema._zod.def, {
603
- get shape() {
604
- const newShape: Writeable<schemas.$ZodShape> = {};
605
- for (const key in mask) {
606
- if (!(key in currDef.shape)) {
607
- throw new Error(`Unrecognized key: "${key}"`);
608
- }
609
- if (!mask[key]) continue;
610
- newShape[key] = currDef.shape[key]!;
611
- }
763
+ const newShape: Writeable<schemas.$ZodShape> = {};
764
+ mirrorShape(newShape, schema, maskedKeys(schema, mask));
612
765
 
613
- assignProp(this, "shape", newShape); // self-caching
614
- return newShape;
615
- },
616
- checks: [],
617
- });
766
+ return clone(schema, mergeDefs(currDef, { shape: newShape, checks: [] })) as any;
767
+ }
618
768
 
619
- return clone(schema, def) as any;
769
+ // the mask keys that select something, checked against the source's shape without resolving it
770
+ function maskedKeys(schema: schemas.$ZodObject, mask: object): PropertyKey[] {
771
+ const raw = sourceShape(schema);
772
+ const keys: PropertyKey[] = [];
773
+ // `for...in` skips symbols, so a symbol in the mask would select nothing
774
+ for (const key of Reflect.ownKeys(mask)) {
775
+ if (!Object.getOwnPropertyDescriptor(raw, key)?.enumerable) {
776
+ throw new Error(`Unrecognized key: "${String(key)}"`);
777
+ }
778
+ if ((mask as any)[key]) keys.push(key);
779
+ }
780
+ return keys;
620
781
  }
621
782
 
622
783
  export function omit(schema: schemas.$ZodObject, mask: object): any {
@@ -628,24 +789,15 @@ export function omit(schema: schemas.$ZodObject, mask: object): any {
628
789
  throw new Error(".omit() cannot be used on object schemas containing refinements");
629
790
  }
630
791
 
631
- const def = mergeDefs(schema._zod.def, {
632
- get shape() {
633
- const newShape: Writeable<schemas.$ZodShape> = { ...schema._zod.def.shape };
634
- for (const key in mask) {
635
- if (!(key in currDef.shape)) {
636
- throw new Error(`Unrecognized key: "${key}"`);
637
- }
638
- if (!(mask as any)[key]) continue;
792
+ const omitted = new Set(maskedKeys(schema, mask));
793
+ const newShape: Writeable<schemas.$ZodShape> = {};
794
+ mirrorShape(
795
+ newShape,
796
+ schema,
797
+ Reflect.ownKeys(sourceShape(schema)).filter((key) => !omitted.has(key))
798
+ );
639
799
 
640
- delete newShape[key];
641
- }
642
- assignProp(this, "shape", newShape); // self-caching
643
- return newShape;
644
- },
645
- checks: [],
646
- });
647
-
648
- return clone(schema, def);
800
+ return clone(schema, mergeDefs(currDef, { shape: newShape, checks: [] }));
649
801
  }
650
802
 
651
803
  export function extend(schema: schemas.$ZodObject, shape: schemas.$ZodShape): any {
@@ -656,51 +808,50 @@ export function extend(schema: schemas.$ZodObject, shape: schemas.$ZodShape): an
656
808
  const checks = schema._zod.def.checks;
657
809
  const hasChecks = checks && checks.length > 0;
658
810
  if (hasChecks) {
659
- // Only throw if new shape overlaps with existing shape
660
- // Use getOwnPropertyDescriptor to check key existence without accessing values
661
- const existingShape = schema._zod.def.shape;
662
- for (const key in shape) {
811
+ // Only throw if new shape overlaps with existing shape. Use getOwnPropertyDescriptor to check key existence without accessing values
812
+ const existingShape = sourceShape(schema);
813
+ for (const key of Reflect.ownKeys(shape)) {
663
814
  if (Object.getOwnPropertyDescriptor(existingShape, key) !== undefined) {
664
815
  throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.");
665
816
  }
666
817
  }
667
818
  }
668
819
 
669
- const def = mergeDefs(schema._zod.def, {
670
- get shape() {
671
- const _shape = { ...schema._zod.def.shape, ...shape };
672
- assignProp(this, "shape", _shape); // self-caching
673
- return _shape;
674
- },
675
- });
676
- return clone(schema, def) as any;
820
+ return clone(schema, mergeDefs(schema._zod.def, { shape: extended(schema, shape) })) as any;
821
+ }
822
+
823
+ // the source's keys, then the caller's overlaid on top
824
+ function extended(schema: schemas.$ZodObject, shape: schemas.$ZodShape): schemas.$ZodShape {
825
+ const newShape: Writeable<schemas.$ZodShape> = {};
826
+ mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)));
827
+ mirrorProps(newShape, shape);
828
+ return newShape;
677
829
  }
678
830
 
679
831
  export function safeExtend(schema: schemas.$ZodObject, shape: schemas.$ZodShape): any {
680
832
  if (!isPlainObject(shape)) {
681
833
  throw new Error("Invalid input to safeExtend: expected a plain object");
682
834
  }
683
- const def = mergeDefs(schema._zod.def, {
684
- get shape() {
685
- const _shape = { ...schema._zod.def.shape, ...shape };
686
- assignProp(this, "shape", _shape); // self-caching
687
- return _shape;
688
- },
689
- });
690
- return clone(schema, def) as any;
835
+ return clone(schema, mergeDefs(schema._zod.def, { shape: extended(schema, shape) })) as any;
691
836
  }
692
837
 
693
838
  export function merge(a: schemas.$ZodObject, b: schemas.$ZodObject): any {
839
+ if (!b?._zod?.def) {
840
+ throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");
841
+ }
842
+ if (a._zod.def.checks?.length) {
843
+ throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");
844
+ }
845
+ const newShape: Writeable<schemas.$ZodShape> = {};
846
+ mirrorShape(newShape, a, Reflect.ownKeys(sourceShape(a)));
847
+ mirrorShape(newShape, b, Reflect.ownKeys(sourceShape(b)));
848
+
694
849
  const def = mergeDefs(a._zod.def, {
695
- get shape() {
696
- const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };
697
- assignProp(this, "shape", _shape); // self-caching
698
- return _shape;
699
- },
850
+ shape: newShape,
700
851
  get catchall() {
701
852
  return b._zod.def.catchall;
702
853
  },
703
- checks: [], // delete existing checks
854
+ checks: b._zod.def.checks ?? [],
704
855
  });
705
856
 
706
857
  return clone(a, def) as any;
@@ -709,53 +860,27 @@ export function merge(a: schemas.$ZodObject, b: schemas.$ZodObject): any {
709
860
  export function partial(
710
861
  Class: SchemaClass<schemas.$ZodOptional> | null,
711
862
  schema: schemas.$ZodObject,
712
- mask: object | undefined
863
+ mask: object | undefined,
864
+ name = "partial"
713
865
  ): any {
714
866
  const currDef = schema._zod.def;
715
867
  const checks = currDef.checks;
716
868
  const hasChecks = checks && checks.length > 0;
717
869
  if (hasChecks) {
718
- throw new Error(".partial() cannot be used on object schemas containing refinements");
719
- }
720
-
721
- const def = mergeDefs(schema._zod.def, {
722
- get shape() {
723
- const oldShape = schema._zod.def.shape;
724
- const shape: Writeable<schemas.$ZodShape> = { ...oldShape };
725
-
726
- if (mask) {
727
- for (const key in mask) {
728
- if (!(key in oldShape)) {
729
- throw new Error(`Unrecognized key: "${key}"`);
730
- }
731
- if (!(mask as any)[key]) continue;
732
- // if (oldShape[key]!._zod.optin === "optional") continue;
733
- shape[key] = Class
734
- ? new Class({
735
- type: "optional",
736
- innerType: oldShape[key]!,
737
- })
738
- : oldShape[key]!;
739
- }
740
- } else {
741
- for (const key in oldShape) {
742
- // if (oldShape[key]!._zod.optin === "optional") continue;
743
- shape[key] = Class
744
- ? new Class({
745
- type: "optional",
746
- innerType: oldShape[key]!,
747
- })
748
- : oldShape[key]!;
749
- }
750
- }
751
-
752
- assignProp(this, "shape", shape); // self-caching
753
- return shape;
754
- },
755
- checks: [],
756
- });
870
+ throw new Error(`.${name}() cannot be used on object schemas containing refinements`);
871
+ }
757
872
 
758
- return clone(schema, def) as any;
873
+ const selected = mask ? new Set(maskedKeys(schema, mask)) : undefined;
874
+ const newShape: Writeable<schemas.$ZodShape> = {};
875
+ mirrorShape(
876
+ newShape,
877
+ schema,
878
+ Reflect.ownKeys(sourceShape(schema)),
879
+ Class &&
880
+ ((value, key) => (selected && !selected.has(key) ? value : new Class({ type: "optional", innerType: value })))
881
+ );
882
+
883
+ return clone(schema, mergeDefs(schema._zod.def, { shape: newShape, checks: [] })) as any;
759
884
  }
760
885
 
761
886
  export function required(
@@ -763,39 +888,14 @@ export function required(
763
888
  schema: schemas.$ZodObject,
764
889
  mask: object | undefined
765
890
  ): any {
766
- const def = mergeDefs(schema._zod.def, {
767
- get shape() {
768
- const oldShape = schema._zod.def.shape;
769
- const shape: Writeable<schemas.$ZodShape> = { ...oldShape };
770
-
771
- if (mask) {
772
- for (const key in mask) {
773
- if (!(key in shape)) {
774
- throw new Error(`Unrecognized key: "${key}"`);
775
- }
776
- if (!(mask as any)[key]) continue;
777
- // overwrite with non-optional
778
- shape[key] = new Class({
779
- type: "nonoptional",
780
- innerType: oldShape[key]!,
781
- });
782
- }
783
- } else {
784
- for (const key in oldShape) {
785
- // overwrite with non-optional
786
- shape[key] = new Class({
787
- type: "nonoptional",
788
- innerType: oldShape[key]!,
789
- });
790
- }
791
- }
792
-
793
- assignProp(this, "shape", shape); // self-caching
794
- return shape;
795
- },
796
- });
797
-
798
- return clone(schema, def) as any;
891
+ const selected = mask ? new Set(maskedKeys(schema, mask)) : undefined;
892
+ const newShape: Writeable<schemas.$ZodShape> = {};
893
+ mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)), (value, key) =>
894
+ // overwrite with non-optional
895
+ selected && !selected.has(key) ? value : new Class({ type: "nonoptional", innerType: value })
896
+ );
897
+
898
+ return clone(schema, mergeDefs(schema._zod.def, { shape: newShape })) as any;
799
899
  }
800
900
 
801
901
  export type Constructor<T, Def extends any[] = any[]> = new (...args: Def) => T;
@@ -811,6 +911,17 @@ export function aborted(x: schemas.ParsePayload, startIndex = 0): boolean {
811
911
  return false;
812
912
  }
813
913
 
914
+ // Checks for explicit abort (continue === false), as opposed to implicit abort (continue === undefined). Used to respect `abort: true` in .refine() even for checks that have a `when` function.
915
+ export function explicitlyAborted(x: schemas.ParsePayload, startIndex = 0): boolean {
916
+ if (x.aborted === true) return true;
917
+ for (let i = startIndex; i < x.issues.length; i++) {
918
+ if (x.issues[i]?.continue === false) {
919
+ return true;
920
+ }
921
+ }
922
+ return false;
923
+ }
924
+
814
925
  export function prefixIssues(path: PropertyKey, issues: errors.$ZodRawIssue[]): errors.$ZodRawIssue[] {
815
926
  return issues.map((iss) => {
816
927
  (iss as any).path ??= [];
@@ -823,31 +934,60 @@ export function unwrapMessage(message: string | { message: string } | undefined
823
934
  return typeof message === "string" ? message : message?.message;
824
935
  }
825
936
 
937
+ /* A check holds no link back to the schema it is attached to — the same check instance is shared by every clone of that schema — so the owner is stamped onto the issues a check just raised, at the only point where both are in scope. Runs on the failure path only; `start` is the issue count from before the check ran. */
938
+ /** The leading size checks of `defChecks` that set an upper bound, each paired with it. */
939
+ export function sizeCaps(defChecks: checks.$ZodCheck<never>[] | undefined): [number, checks.$ZodCheck<never>][] {
940
+ const caps: [number, checks.$ZodCheck<never>][] = [];
941
+ for (const ch of defChecks ?? []) {
942
+ const d = ch._zod.def as any;
943
+ // a later check may rewrite the value
944
+ if (!/_(length|size)$|_equals$/.test(d.check)) break;
945
+ const max = d.maximum ?? d.length ?? d.size;
946
+ if (max >= 0) caps.push([max, ch]);
947
+ }
948
+ return caps;
949
+ }
950
+
951
+ export function attachSchema(issues: errors.$ZodRawIssue[], start: number, inst: schemas.$ZodType): void {
952
+ for (let i = start; i < issues.length; i++) {
953
+ (issues[i] as any).schema ??= inst;
954
+ }
955
+ }
956
+
826
957
  export function finalizeIssue(
827
958
  iss: errors.$ZodRawIssue,
828
959
  ctx: schemas.ParseContextInternal | undefined,
829
960
  config: $ZodConfig
830
961
  ): errors.$ZodIssue {
831
- const full = { ...iss, path: iss.path ?? [] } as errors.$ZodIssue;
962
+ // A schema that raised an issue itself owns it outright, and outranks any stamp an enclosing check left in `attachSchema`. String formats and z.custom() are schema and check at once, so when they act as a check they defer to that stamp instead.
963
+ const traits: Set<string> | undefined = (iss.inst as any)?._zod?.traits;
964
+ if (traits?.has("$ZodType")) {
965
+ if (traits.has("$ZodCheck")) (iss as any).schema ??= iss.inst;
966
+ else (iss as any).schema = iss.inst;
967
+ }
832
968
 
833
- // for backwards compatibility
834
- if (!iss.message) {
835
- const message =
836
- unwrapMessage(iss.inst?._zod.def?.error?.(iss as never)) ??
969
+ // Decreasing specificity, first map to return a message wins. `inst` is whatever raised the issue, so a check's own map outranks the owning schema's.
970
+ const schemaError = iss.schema !== iss.inst ? iss.schema?._zod.def?.error : undefined;
971
+ const message = iss.message
972
+ ? iss.message
973
+ : (unwrapMessage(iss.inst?._zod.def?.error?.(iss as never)) ??
974
+ unwrapMessage(schemaError?.(iss as never)) ??
837
975
  unwrapMessage(ctx?.error?.(iss as never)) ??
838
976
  unwrapMessage(config.customError?.(iss)) ??
839
977
  unwrapMessage(config.localeError?.(iss)) ??
840
- "Invalid input";
841
- (full as any).message = message;
842
- }
978
+ "Invalid input");
843
979
 
844
- // delete (full as any).def;
845
- delete (full as any).inst;
846
- delete (full as any).continue;
847
- if (!ctx?.reportInput) {
848
- delete (full as any).input;
980
+ // an explicit own-key copy beats object rest with excluded keys, which v8 routes through a generic runtime call; Object.keys rather than for-in so an issue pushed with a prototype does not leak inherited keys, and an own __proto__ key is dropped rather than assigned through the setter
981
+ const full: any = {};
982
+ for (const k of Object.keys(iss)) {
983
+ if (k === "inst" || k === "schema" || k === "continue" || k === "input" || k === "__proto__") continue;
984
+ full[k] = (iss as any)[k];
985
+ }
986
+ full.path ??= [];
987
+ full.message = message;
988
+ if (ctx?.reportInput) {
989
+ full.input = iss.input;
849
990
  }
850
-
851
991
  return full;
852
992
  }
853
993
 
@@ -859,6 +999,22 @@ export function getSizableOrigin(input: any): "set" | "map" | "file" | "unknown"
859
999
  return "unknown";
860
1000
  }
861
1001
 
1002
+ const highSurrogate = /[\uD800-\uDBFF]/;
1003
+
1004
+ // Code points in `str`: a surrogate pair counts once, a lone surrogate as itself. Hand-rolled because the string iterator allocates and runs ~250x slower on this path; the regex probe exits ~50x quicker for a string with no astral characters.
1005
+ export function codePointLength(str: string): number {
1006
+ const units = str.length;
1007
+ if (!highSurrogate.test(str)) return units;
1008
+ let count = units;
1009
+ for (let i = 0; i < units - 1; i++) {
1010
+ if ((str.charCodeAt(i) & 0xfc00) === 0xd800 && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {
1011
+ count--;
1012
+ i++;
1013
+ }
1014
+ }
1015
+ return count;
1016
+ }
1017
+
862
1018
  export function getLengthableOrigin(input: any): "array" | "string" | "unknown" {
863
1019
  if (Array.isArray(input)) return "array";
864
1020
  if (typeof input === "string") return "string";
@@ -964,3 +1120,174 @@ export function uint8ArrayToHex(bytes: Uint8Array): string {
964
1120
  export abstract class Class {
965
1121
  constructor(..._args: any[]) {}
966
1122
  }
1123
+
1124
+ ////////// PROTOTYPE INSTALLERS //////////
1125
+ //
1126
+ // Members live on the prototype and materialize per instance on first read, which keeps own-property count under the step where V8 stops using inline slots. Changing anything here means re-measuring runtime, memory and bundle size together — see "The three axes" in AGENTS.md.
1127
+
1128
+ /**
1129
+ * Installs a trait's members on its prototype. Each value builds that member for the instance on first read; the built value shadows the accessor as an own property, so a detached `const { parse } = schema` keeps working.
1130
+ *
1131
+ * Call this from a `proto` initializer, which runs once per prototype — never per instance.
1132
+ */
1133
+ export function members(proto: object, table: object): void {
1134
+ for (const key in table) {
1135
+ const desc = Object.getOwnPropertyDescriptor(table, key)!;
1136
+ // a getter installs as written, so it stays live: `description` reads through to the registry on every access. not enumerable: an object literal's is, and a prototype member never was
1137
+ if (desc.get) Object.defineProperty(proto, key, { ...desc, enumerable: false });
1138
+ // a method materializes bound on first read, which is what keeps a detached member working: `const opt = schema.optional; opt()`
1139
+ else defineBound(proto, key, desc.value);
1140
+ }
1141
+ }
1142
+
1143
+ /** Shadows a prototype member with an own value, so a getter that builds from the instance runs once. */
1144
+ export function own<T>(inst: object, key: PropertyKey, value: T, enumerable = true): T {
1145
+ Object.defineProperty(inst, key, { configurable: true, writable: true, enumerable, value });
1146
+ return value;
1147
+ }
1148
+
1149
+ /** Like {@link own}, for a member that was never an own data property and has to stay out of `Object.keys`. */
1150
+ export function hide<T>(inst: object, key: PropertyKey, value: T): T {
1151
+ return own(inst, key, value, false);
1152
+ }
1153
+
1154
+ /** Adds members a table derives from the instance: each builds on first read and shadows as own data, and assignment shadows the same way, as when these were own properties. */
1155
+ export /*@__NO_SIDE_EFFECTS__*/ function derived<T>(
1156
+ computes: { [K in keyof T]?: (inst: T) => T[K] },
1157
+ table: ProtoOf<T>
1158
+ ): ProtoOf<T> {
1159
+ for (const key in computes) {
1160
+ const compute = computes[key]!;
1161
+ // an object literal's accessor is configurable and enumerable, and `members` copies the descriptor as written
1162
+ Object.defineProperty(table, key, {
1163
+ configurable: true,
1164
+ enumerable: true,
1165
+ get(this: T) {
1166
+ return own(this as object, key, compute(this));
1167
+ },
1168
+ set(this: T, value: T[typeof key]) {
1169
+ own(this as object, key, value);
1170
+ },
1171
+ });
1172
+ }
1173
+ return table;
1174
+ }
1175
+
1176
+ function defineBound(proto: object, key: PropertyKey, fn: AnyFunc): void {
1177
+ Object.defineProperty(proto, key, {
1178
+ configurable: true,
1179
+ get(this: any) {
1180
+ // vitest's spyOn calls a prototype getter bare to find the function it wraps, so a nullish receiver answers the raw method
1181
+ return this == null ? fn : own(this, key, fn.bind(this));
1182
+ },
1183
+ set(this: any, value: unknown) {
1184
+ own(this, key, value);
1185
+ },
1186
+ });
1187
+ }
1188
+
1189
+ /** Returns the prototype to install on, or `undefined` if this group is already installed on it. */
1190
+ function claim(inst: object, sentinel: string): object | undefined {
1191
+ const proto = Object.getPrototypeOf(inst);
1192
+ // Runs on every construction, so `in` rather than the costlier `hasOwnProperty.call`. Sentinels are keys the group itself defines.
1193
+ return sentinel in proto ? undefined : proto;
1194
+ }
1195
+
1196
+ /** A trait's prototype members: a partial view of its own interface, with `this` typed as the instance. */
1197
+ export type ProtoOf<T> = {
1198
+ // `infer R` resolves a polymorphic `this` return type to `T`, which a method written here can actually produce
1199
+ [K in keyof T]?: (T[K] extends (...args: infer A) => infer R ? (...args: A) => R : T[K]) | undefined;
1200
+ } & ThisType<T>;
1201
+
1202
+ // The internals whose init chain is installing. A second call for the same one is a derived constructor overriding its base, so it must not construct another schema in between or the override is dropped.
1203
+ let installing: object | undefined;
1204
+
1205
+ // Set while a getter is running, so a value that resolved through a recursion break is not memoized. One shared descriptor shadows the key for the duration, which costs no per-key allocation.
1206
+ let broke = false;
1207
+ const breaker: PropertyDescriptor = {
1208
+ configurable: true,
1209
+ get() {
1210
+ broke = true;
1211
+ return undefined;
1212
+ },
1213
+ };
1214
+
1215
+ /**
1216
+ * Installs a lazily-derived internal on the `_zod` prototype of `inst`'s
1217
+ * constructor, computed from the internals object itself and cached there on
1218
+ * first read. One accessor per constructor rather than one per instance.
1219
+ */
1220
+ export function defineLazyInternal<T extends { _zod: any }>(
1221
+ inst: T,
1222
+ key: string,
1223
+ compute: (zod: T["_zod"]) => unknown
1224
+ ): void {
1225
+ const proto = Object.getPrototypeOf(inst._zod);
1226
+ if (key in proto && installing !== inst._zod) {
1227
+ // A repeat construction: everything is installed already. Cleared here so the reference is not held past the first construction of every type.
1228
+ installing = undefined;
1229
+ return;
1230
+ }
1231
+ installing = inst._zod;
1232
+
1233
+ Object.defineProperty(proto, key, {
1234
+ configurable: true,
1235
+ get(this: any) {
1236
+ // Shadowed before computing so a re-entrant read from a recursive schema resolves to undefined instead of running the getter again.
1237
+ Object.defineProperty(this, key, breaker);
1238
+ const outer = broke;
1239
+ broke = false;
1240
+ try {
1241
+ const value = compute(this);
1242
+ // A result that resolved through a recursion break is recomputed once the graph is complete; everything else memoizes, undefined included.
1243
+ if (broke) delete this[key];
1244
+ else Object.defineProperty(this, key, { configurable: true, writable: true, value });
1245
+ broke = broke || outer;
1246
+ return value;
1247
+ } catch (err) {
1248
+ // A compute that threw memoizes nothing, so a later read runs it again and fails the same way. The shadow goes with it, since leaving it installed would answer undefined for every later read.
1249
+ delete this[key];
1250
+ broke = broke || outer;
1251
+ throw err;
1252
+ }
1253
+ },
1254
+ set(this: any, value: unknown) {
1255
+ Object.defineProperty(this, key, { configurable: true, writable: true, value });
1256
+ },
1257
+ });
1258
+ }
1259
+
1260
+ /**
1261
+ * Installs `key` on `inst`'s prototype, computed by `make` on first read and cached there as an own
1262
+ * data property. One accessor per constructor rather than one per instance, because an own accessor
1263
+ * puts every instance after the first into v8 dictionary mode. The key doubles as the sentinel.
1264
+ */
1265
+ export function installLazyProp(inst: object, key: string, make: (self: any) => unknown, enumerable: boolean): void {
1266
+ const proto = claim(inst, key);
1267
+ if (!proto) return;
1268
+ Object.defineProperty(proto, key, {
1269
+ configurable: true,
1270
+ get(this: any) {
1271
+ // Shadowed before computing, so a re-entrant read from a self-referential shape resolves to undefined instead of running the getter again. A data property rather than an accessor: an own accessor is the dictionary-mode transition this exists to avoid.
1272
+ const desc = { configurable: true, writable: true, enumerable, value: undefined as unknown };
1273
+ Object.defineProperty(this, key, desc);
1274
+ // a compute that throws leaves the shadow behind, so later reads answer undefined instead of re-throwing; `defineLazy` did the same, and `defineLazyInternal`'s delete-on-catch would cost bytes in every bundle for a case only a throwing user getter reaches
1275
+ desc.value = make(this);
1276
+ Object.defineProperty(this, key, desc);
1277
+ return desc.value;
1278
+ },
1279
+ set(this: any, value: unknown) {
1280
+ Object.defineProperty(this, key, { configurable: true, writable: true, enumerable, value });
1281
+ },
1282
+ });
1283
+ }
1284
+
1285
+ /** Marks the thunk `_catch` synthesises for a constant catch value. `Function.length` cannot tell that thunk from a user callback — rest and defaulted parameters both report arity 0 — and a user callback reads `ctx.error`, whose issues only finalize correctly against the caller's per-parse error map. Provenance can say what arity cannot. A plain string key rather than `Symbol.for`, whose call at module scope no bundler can prove pure — the same shape that anchored `urlCanParse` into every build. */
1286
+ export const CONSTANT_CATCH = "~constantCatch";
1287
+
1288
+ /** Wraps a constant catch value in a thunk tagged with {@link CONSTANT_CATCH}. */
1289
+ export function constantCatch<T>(value: T): () => T {
1290
+ const fn = () => value;
1291
+ (fn as { [CONSTANT_CATCH]?: boolean })[CONSTANT_CATCH] = true;
1292
+ return fn;
1293
+ }