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
@@ -0,0 +1,140 @@
1
+ import { expect, test } from "vitest";
2
+
3
+ import { regexes } from "zod/v4/core";
4
+
5
+ // the lookahead form `regexes.email` had before this rewrite
6
+ const legacy = /^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;
7
+
8
+ const table: [string, boolean][] = [
9
+ ["a@b.cc", true],
10
+ ["first.last@example.com", true],
11
+ ["a.b.c.d@b.cc", true],
12
+ ["'a@b.cc", true],
13
+ ["a'b@b.cc", true],
14
+ ["a+b@b.cc", true],
15
+ ["a-@b.cc", true],
16
+ ["a_@b.cc", true],
17
+ ["a@0b.cc", true],
18
+ ["a@b.c.dd", true],
19
+ ["a@b-.cc", true],
20
+ [".a@b.cc", false],
21
+ ["a.@b.cc", false],
22
+ ["a..b@b.cc", false],
23
+ ["....@b.cc", false],
24
+ ["a@b..cc", false],
25
+ ["a@.b.cc", false],
26
+ ["a@b.cc.", false],
27
+ ["a'@b.cc", false],
28
+ ["'@b.cc", false],
29
+ ["@b.cc", false],
30
+ ["a@b.c", false],
31
+ ["a@b.c0", false],
32
+ ["a@-b.cc", false],
33
+ ["a@b.cc@d.ee", false],
34
+ ["a b@b.cc", false],
35
+ ["café@b.cc", false],
36
+ ["😀@b.cc", false],
37
+ ["a\0@b.cc", false],
38
+ // `$` is not multiline, so no trailing terminator is tolerated
39
+ ["a@b.cc\n", false],
40
+ ["a@b.cc\r", false],
41
+ ["\na@b.cc", false],
42
+ ];
43
+
44
+ test("boundary cases", () => {
45
+ for (const [input, expected] of table) {
46
+ expect([input, regexes.email.test(input)]).toEqual([input, expected]);
47
+ expect([input, legacy.test(input)]).toEqual([input, expected]);
48
+ }
49
+ });
50
+
51
+ // one representative per character class the two grammars can tell apart
52
+ const classes = ["a", "0", "_", "'", "-", ".", "@", "!", "\n"];
53
+
54
+ test("exhaustive agreement over every string of length <= 6 in the class alphabet", () => {
55
+ const idx: number[] = [];
56
+ let accepted = 0;
57
+ for (let len = 0; len <= 6; len++) {
58
+ idx.length = len;
59
+ idx.fill(0);
60
+ for (;;) {
61
+ let s = "";
62
+ for (let i = 0; i < len; i++) s += classes[idx[i]!];
63
+ const a = legacy.test(s);
64
+ if (a !== regexes.email.test(s)) expect.unreachable(`disagreement on ${JSON.stringify(s)}`);
65
+ if (a) accepted++;
66
+ let p = len - 1;
67
+ while (p >= 0 && ++idx[p]! === classes.length) idx[p--] = 0;
68
+ if (p < 0) break;
69
+ }
70
+ }
71
+ // 4 chars can precede `@`, 2 can open a domain label, 1 is a letter for the TLD
72
+ expect(accepted).toBe(8);
73
+ });
74
+
75
+ function rng(seed: number) {
76
+ let s = seed >>> 0;
77
+ return () => {
78
+ s = (s + 0x6d2b79f5) >>> 0;
79
+ let t = s;
80
+ t = Math.imul(t ^ (t >>> 15), t | 1);
81
+ t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
82
+ return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
83
+ };
84
+ }
85
+
86
+ const local = "abZ09_'+-.".split("");
87
+ const domain = "abZ09-.".split("");
88
+ const hostile = ["@", ".", "..", "...", "\n", "\r", "\0", "\t", " ", '"', "é", "😀", "\\", "<", ";", "/", "{"];
89
+ const any = [...local, ...domain, ...hostile];
90
+
91
+ function fuzz(r: () => number): string {
92
+ const pick = <T>(xs: T[]): T => xs[Math.floor(r() * xs.length)]!;
93
+ const run = (xs: string[], max: number) => {
94
+ let out = "";
95
+ for (let i = Math.floor(r() * max); i > 0; i--) out += pick(xs);
96
+ return out;
97
+ };
98
+ switch (Math.floor(r() * 8)) {
99
+ case 0:
100
+ return run(any, 40);
101
+ case 1:
102
+ return `${run(local, 24)}@${run(domain, 24)}`;
103
+ case 2:
104
+ return `${run(local, 8)}${".".repeat(1 + Math.floor(r() * 6))}${run(local, 8)}@${run(domain, 12)}`;
105
+ case 3:
106
+ return `${run(local, 8)}@${run(domain, 8)}${".".repeat(1 + Math.floor(r() * 6))}${run(domain, 8)}`;
107
+ case 4: {
108
+ // single-character mutation of a valid address
109
+ const base = `${run("abZ09_'+-".split(""), 10)}@example.com`;
110
+ const i = Math.floor(r() * base.length);
111
+ return Math.floor(r() * 3) === 0
112
+ ? base.slice(0, i) + pick(any) + base.slice(i)
113
+ : base.slice(0, i) + (Math.floor(r() * 2) ? pick(any) : "") + base.slice(i + 1);
114
+ }
115
+ case 5:
116
+ return (
117
+ "a".repeat(1 + Math.floor(r() * 60)) +
118
+ ".".repeat(Math.floor(r() * 4)) +
119
+ run(local, 4) +
120
+ (r() < 0.5 ? "@" : "") +
121
+ run(domain, 10)
122
+ );
123
+ case 6:
124
+ return `${run(local, 8)}@${run(domain, 6)}@${run(domain, 8)}`;
125
+ default:
126
+ return pick(["", "\n", " "]) + run(local, 8) + "@example.com" + pick(["", "\n", "\r\n", " ", "\0"]);
127
+ }
128
+ }
129
+
130
+ test("differential fuzz", () => {
131
+ const r = rng(0x5eed);
132
+ let accepted = 0;
133
+ for (let i = 0; i < 25_000; i++) {
134
+ const s = fuzz(r);
135
+ const a = legacy.test(s);
136
+ if (a !== regexes.email.test(s)) expect.unreachable(`disagreement on ${JSON.stringify(s)}`);
137
+ if (a) accepted++;
138
+ }
139
+ expect(accepted).toBeGreaterThan(500);
140
+ });
@@ -0,0 +1,214 @@
1
+ import { expect, test } from "vitest";
2
+ import { z } from "../../../../index.js";
3
+ import el from "../../../locales/el.js";
4
+
5
+ test("Greek locale - too_small errors", () => {
6
+ z.config(el());
7
+
8
+ // Test string type translation
9
+ const stringSchema = z.string().min(5);
10
+ const stringResult = stringSchema.safeParse("abc");
11
+ expect(stringResult.success).toBe(false);
12
+ if (!stringResult.success) {
13
+ expect(stringResult.error.issues[0].message).toBe("Πολύ μικρό: αναμενόταν string να έχει >=5 χαρακτήρες");
14
+ }
15
+
16
+ // Test number type translation
17
+ const numberSchema = z.number().min(10);
18
+ const numberResult = numberSchema.safeParse(5);
19
+ expect(numberResult.success).toBe(false);
20
+ if (!numberResult.success) {
21
+ expect(numberResult.error.issues[0].message).toBe("Πολύ μικρό: αναμενόταν number να είναι >=10");
22
+ }
23
+
24
+ // Test array type translation
25
+ const arraySchema = z.array(z.string()).min(3);
26
+ const arrayResult = arraySchema.safeParse(["a", "b"]);
27
+ expect(arrayResult.success).toBe(false);
28
+ if (!arrayResult.success) {
29
+ expect(arrayResult.error.issues[0].message).toBe("Πολύ μικρό: αναμενόταν array να έχει >=3 στοιχεία");
30
+ }
31
+
32
+ // Test set type translation
33
+ const setSchema = z.set(z.string()).min(2);
34
+ const setResult = setSchema.safeParse(new Set(["a"]));
35
+ expect(setResult.success).toBe(false);
36
+ if (!setResult.success) {
37
+ expect(setResult.error.issues[0].message).toBe("Πολύ μικρό: αναμενόταν set να έχει >=2 στοιχεία");
38
+ }
39
+ });
40
+
41
+ test("Greek locale - too_big errors", () => {
42
+ z.config(el());
43
+
44
+ // Test string type translation
45
+ const stringSchema = z.string().max(3);
46
+ const stringResult = stringSchema.safeParse("abcde");
47
+ expect(stringResult.success).toBe(false);
48
+ if (!stringResult.success) {
49
+ expect(stringResult.error.issues[0].message).toBe("Πολύ μεγάλο: αναμενόταν string να έχει <=3 χαρακτήρες");
50
+ }
51
+
52
+ // Test number type translation
53
+ const numberSchema = z.number().max(10);
54
+ const numberResult = numberSchema.safeParse(15);
55
+ expect(numberResult.success).toBe(false);
56
+ if (!numberResult.success) {
57
+ expect(numberResult.error.issues[0].message).toBe("Πολύ μεγάλο: αναμενόταν number να είναι <=10");
58
+ }
59
+
60
+ // Test array type translation
61
+ const arraySchema = z.array(z.string()).max(2);
62
+ const arrayResult = arraySchema.safeParse(["a", "b", "c"]);
63
+ expect(arrayResult.success).toBe(false);
64
+ if (!arrayResult.success) {
65
+ expect(arrayResult.error.issues[0].message).toBe("Πολύ μεγάλο: αναμενόταν array να έχει <=2 στοιχεία");
66
+ }
67
+ });
68
+
69
+ test("Greek locale - invalid_type errors", () => {
70
+ z.config(el());
71
+
72
+ // Test string expected, number received
73
+ const stringSchema = z.string();
74
+ const stringResult = stringSchema.safeParse(123);
75
+ expect(stringResult.success).toBe(false);
76
+ if (!stringResult.success) {
77
+ expect(stringResult.error.issues[0].message).toBe("Μη έγκυρη είσοδος: αναμενόταν string, λήφθηκε number");
78
+ }
79
+
80
+ // Test number expected, string received
81
+ const numberSchema = z.number();
82
+ const numberResult = numberSchema.safeParse("abc");
83
+ expect(numberResult.success).toBe(false);
84
+ if (!numberResult.success) {
85
+ expect(numberResult.error.issues[0].message).toBe("Μη έγκυρη είσοδος: αναμενόταν number, λήφθηκε string");
86
+ }
87
+
88
+ // Test boolean expected, null received
89
+ const booleanSchema = z.boolean();
90
+ const booleanResult = booleanSchema.safeParse(null);
91
+ expect(booleanResult.success).toBe(false);
92
+ if (!booleanResult.success) {
93
+ expect(booleanResult.error.issues[0].message).toBe("Μη έγκυρη είσοδος: αναμενόταν boolean, λήφθηκε null");
94
+ }
95
+
96
+ // Test array expected, object received
97
+ const arraySchema = z.array(z.string());
98
+ const arrayResult = arraySchema.safeParse({});
99
+ expect(arrayResult.success).toBe(false);
100
+ if (!arrayResult.success) {
101
+ expect(arrayResult.error.issues[0].message).toBe("Μη έγκυρη είσοδος: αναμενόταν array, λήφθηκε object");
102
+ }
103
+ });
104
+
105
+ test("Greek locale - other error cases", () => {
106
+ z.config(el());
107
+
108
+ // Test invalid_element with map (only "map" | "set" produce invalid_element)
109
+ const mapSchema = z.map(z.bigint(), z.number());
110
+ const mapResult = mapSchema.safeParse(new Map([[BigInt(123), BigInt(123)]]));
111
+ expect(mapResult.success).toBe(false);
112
+ if (!mapResult.success) {
113
+ expect(mapResult.error.issues[0].code).toBe("invalid_element");
114
+ expect(mapResult.error.issues[0].message).toBe("Μη έγκυρη τιμή στο map");
115
+ }
116
+
117
+ // Test invalid_key with record (only "map" | "record" produce invalid_key)
118
+ const recordSchema = z.record(z.number(), z.string());
119
+ const recordResult = recordSchema.safeParse({ notANumber: "value" });
120
+ expect(recordResult.success).toBe(false);
121
+ if (!recordResult.success) {
122
+ expect(recordResult.error.issues[0].code).toBe("invalid_key");
123
+ expect(recordResult.error.issues[0].message).toBe("Μη έγκυρο κλειδί στο record");
124
+ }
125
+
126
+ // Test invalid_value with enum
127
+ const enumSchema = z.enum(["a", "b"]);
128
+ const enumResult = enumSchema.safeParse("c");
129
+ expect(enumResult.success).toBe(false);
130
+ if (!enumResult.success) {
131
+ expect(enumResult.error.issues[0].message).toBe('Μη έγκυρη επιλογή: αναμενόταν ένα από "a"|"b"');
132
+ }
133
+
134
+ // Test not_multiple_of
135
+ const multipleSchema = z.number().multipleOf(3);
136
+ const multipleResult = multipleSchema.safeParse(10);
137
+ expect(multipleResult.success).toBe(false);
138
+ if (!multipleResult.success) {
139
+ expect(multipleResult.error.issues[0].message).toBe("Μη έγκυρος αριθμός: πρέπει να είναι πολλαπλάσιο του 3");
140
+ }
141
+
142
+ // Test unrecognized_keys (single key)
143
+ const strictSchema = z.object({ a: z.string() }).strict();
144
+ const strictResult = strictSchema.safeParse({ a: "test", b: "extra" });
145
+ expect(strictResult.success).toBe(false);
146
+ if (!strictResult.success) {
147
+ expect(strictResult.error.issues[0].message).toBe('Άγνωστο κλειδί: "b"');
148
+ }
149
+
150
+ // Test unrecognized_keys (multiple keys)
151
+ const strictMultipleResult = strictSchema.safeParse({
152
+ a: "test",
153
+ b: "extra",
154
+ c: "another",
155
+ });
156
+ expect(strictMultipleResult.success).toBe(false);
157
+ if (!strictMultipleResult.success) {
158
+ expect(strictMultipleResult.error.issues[0].message).toBe('Άγνωστα κλειδιά: "b", "c"');
159
+ }
160
+
161
+ // Test invalid_union
162
+ const unionSchema = z.union([z.string(), z.number()]);
163
+ const unionResult = unionSchema.safeParse(true);
164
+ expect(unionResult.success).toBe(false);
165
+ if (!unionResult.success) {
166
+ expect(unionResult.error.issues[0].message).toBe("Μη έγκυρη είσοδος");
167
+ }
168
+
169
+ // Test invalid_format with regex
170
+ const regexSchema = z.string().regex(/^[a-z]+$/);
171
+ const regexResult = regexSchema.safeParse("ABC123");
172
+ expect(regexResult.success).toBe(false);
173
+ if (!regexResult.success) {
174
+ expect(regexResult.error.issues[0].message).toBe(
175
+ "Μη έγκυρη συμβολοσειρά: πρέπει να ταιριάζει με το μοτίβο /^[a-z]+$/"
176
+ );
177
+ }
178
+
179
+ // Test invalid_format with startsWith
180
+ const startsWithSchema = z.string().startsWith("hello");
181
+ const startsWithResult = startsWithSchema.safeParse("world");
182
+ expect(startsWithResult.success).toBe(false);
183
+ if (!startsWithResult.success) {
184
+ expect(startsWithResult.error.issues[0].message).toBe('Μη έγκυρη συμβολοσειρά: πρέπει να ξεκινά με "hello"');
185
+ }
186
+
187
+ // Test invalid_format with endsWith
188
+ const endsWithSchema = z.string().endsWith("world");
189
+ const endsWithResult = endsWithSchema.safeParse("hello");
190
+ expect(endsWithResult.success).toBe(false);
191
+ if (!endsWithResult.success) {
192
+ expect(endsWithResult.error.issues[0].message).toBe('Μη έγκυρη συμβολοσειρά: πρέπει να τελειώνει με "world"');
193
+ }
194
+
195
+ // Test invalid_format with includes
196
+ const includesSchema = z.string().includes("test");
197
+ const includesResult = includesSchema.safeParse("hello");
198
+ expect(includesResult.success).toBe(false);
199
+ if (!includesResult.success) {
200
+ expect(includesResult.error.issues[0].message).toBe('Μη έγκυρη συμβολοσειρά: πρέπει να περιέχει "test"');
201
+ }
202
+ });
203
+
204
+ test("Greek locale - invalid_type with instanceof (class-name expected)", () => {
205
+ z.config(el());
206
+
207
+ // When `expected` starts with a capital letter, render an `instanceof` message, matching the convention used by most other locales (de, es, fr, it, etc.).
208
+ const dateSchema = z.instanceof(Date);
209
+ const dateResult = dateSchema.safeParse("not a date");
210
+ expect(dateResult.success).toBe(false);
211
+ if (!dateResult.success) {
212
+ expect(dateResult.error.issues[0].message).toBe("Μη έγκυρη είσοδος: αναμενόταν instanceof Date, λήφθηκε string");
213
+ }
214
+ });
@@ -109,8 +109,7 @@ test("Spanish locale - type name translations in invalid_type errors", () => {
109
109
  test("Spanish locale - fallback for unknown type names", () => {
110
110
  z.config(es());
111
111
 
112
- // Test with a type that's not in the TypeNames dictionary
113
- // This will test the fallback behavior
112
+ // Test with a type that's not in the TypeNames dictionary. This will test the fallback behavior
114
113
  const dateSchema = z.date().min(new Date("2025-01-01"));
115
114
  const dateResult = dateSchema.safeParse(new Date("2024-01-01"));
116
115
  expect(dateResult.success).toBe(false);
@@ -0,0 +1,72 @@
1
+ import { expect, test } from "vitest";
2
+ import { z } from "../../../../index.js";
3
+ import fr from "../../../locales/fr.js";
4
+
5
+ test("French locale - type name translations in too_small errors", () => {
6
+ z.config(fr());
7
+
8
+ const stringResult = z.string().min(5).safeParse("abc");
9
+ expect(stringResult.success).toBe(false);
10
+ if (!stringResult.success) {
11
+ expect(stringResult.error.issues[0].message).toBe("Trop petit : chaîne de caractères doit avoir >=5 caractères");
12
+ }
13
+
14
+ const numberResult = z.number().min(10).safeParse(5);
15
+ expect(numberResult.success).toBe(false);
16
+ if (!numberResult.success) {
17
+ expect(numberResult.error.issues[0].message).toBe("Trop petit : nombre doit être >=10");
18
+ }
19
+
20
+ const arrayResult = z.array(z.string()).min(3).safeParse(["a", "b"]);
21
+ expect(arrayResult.success).toBe(false);
22
+ if (!arrayResult.success) {
23
+ expect(arrayResult.error.issues[0].message).toBe("Trop petit : tableau doit avoir >=3 éléments");
24
+ }
25
+
26
+ const setResult = z
27
+ .set(z.string())
28
+ .min(2)
29
+ .safeParse(new Set(["a"]));
30
+ expect(setResult.success).toBe(false);
31
+ if (!setResult.success) {
32
+ expect(setResult.error.issues[0].message).toBe("Trop petit : ensemble doit avoir >=2 éléments");
33
+ }
34
+ });
35
+
36
+ test("French locale - type name translations in too_big errors", () => {
37
+ z.config(fr());
38
+
39
+ const stringResult = z.string().max(3).safeParse("abcde");
40
+ expect(stringResult.success).toBe(false);
41
+ if (!stringResult.success) {
42
+ expect(stringResult.error.issues[0].message).toBe("Trop grand : chaîne de caractères doit avoir <=3 caractères");
43
+ }
44
+
45
+ const numberResult = z.number().max(10).safeParse(15);
46
+ expect(numberResult.success).toBe(false);
47
+ if (!numberResult.success) {
48
+ expect(numberResult.error.issues[0].message).toBe("Trop grand : nombre doit être <=10");
49
+ }
50
+
51
+ const arrayResult = z.array(z.string()).max(2).safeParse(["a", "b", "c"]);
52
+ expect(arrayResult.success).toBe(false);
53
+ if (!arrayResult.success) {
54
+ expect(arrayResult.error.issues[0].message).toBe("Trop grand : tableau doit avoir <=2 éléments");
55
+ }
56
+ });
57
+
58
+ test("French locale - type name translations in invalid_type errors", () => {
59
+ z.config(fr());
60
+
61
+ const stringResult = z.string().safeParse(123);
62
+ expect(stringResult.success).toBe(false);
63
+ if (!stringResult.success) {
64
+ expect(stringResult.error.issues[0].message).toBe("Entrée invalide : chaîne de caractères attendu, nombre reçu");
65
+ }
66
+
67
+ const arrayResult = z.array(z.string()).safeParse({});
68
+ expect(arrayResult.success).toBe(false);
69
+ if (!arrayResult.success) {
70
+ expect(arrayResult.error.issues[0].message).toBe("Entrée invalide : tableau attendu, objet reçu");
71
+ }
72
+ });
@@ -0,0 +1,163 @@
1
+ import { expect, test } from "vitest";
2
+ import { z } from "../../../../index.js";
3
+ import hr from "../../../locales/hr.js";
4
+
5
+ test("Croatian locale - type name translations in too_small errors", () => {
6
+ z.config(hr());
7
+
8
+ // Test string type translation
9
+ const stringSchema = z.string().min(5);
10
+ const stringResult = stringSchema.safeParse("abc");
11
+ expect(stringResult.success).toBe(false);
12
+ if (!stringResult.success) {
13
+ expect(stringResult.error.issues[0].message).toBe("Premalo: očekivano da tekst ima >=5 znakova");
14
+ }
15
+
16
+ // Test number type translation
17
+ const numberSchema = z.number().min(10);
18
+ const numberResult = numberSchema.safeParse(5);
19
+ expect(numberResult.success).toBe(false);
20
+ if (!numberResult.success) {
21
+ expect(numberResult.error.issues[0].message).toBe("Premalo: očekivano da broj bude >=10");
22
+ }
23
+
24
+ // Test array type translation
25
+ const arraySchema = z.array(z.string()).min(3);
26
+ const arrayResult = arraySchema.safeParse(["a", "b"]);
27
+ expect(arrayResult.success).toBe(false);
28
+ if (!arrayResult.success) {
29
+ expect(arrayResult.error.issues[0].message).toBe("Premalo: očekivano da niz ima >=3 stavki");
30
+ }
31
+
32
+ // Test set type translation
33
+ const setSchema = z.set(z.string()).min(2);
34
+ const setResult = setSchema.safeParse(new Set(["a"]));
35
+ expect(setResult.success).toBe(false);
36
+ if (!setResult.success) {
37
+ expect(setResult.error.issues[0].message).toBe("Premalo: očekivano da skup ima >=2 stavki");
38
+ }
39
+ });
40
+
41
+ test("Croatian locale - type name translations in too_big errors", () => {
42
+ z.config(hr());
43
+
44
+ // Test string type translation
45
+ const stringSchema = z.string().max(3);
46
+ const stringResult = stringSchema.safeParse("abcde");
47
+ expect(stringResult.success).toBe(false);
48
+ if (!stringResult.success) {
49
+ expect(stringResult.error.issues[0].message).toBe("Preveliko: očekivano da tekst ima <=3 znakova");
50
+ }
51
+
52
+ // Test number type translation
53
+ const numberSchema = z.number().max(10);
54
+ const numberResult = numberSchema.safeParse(15);
55
+ expect(numberResult.success).toBe(false);
56
+ if (!numberResult.success) {
57
+ expect(numberResult.error.issues[0].message).toBe("Preveliko: očekivano da broj bude <=10");
58
+ }
59
+
60
+ // Test array type translation
61
+ const arraySchema = z.array(z.string()).max(2);
62
+ const arrayResult = arraySchema.safeParse(["a", "b", "c"]);
63
+ expect(arrayResult.success).toBe(false);
64
+ if (!arrayResult.success) {
65
+ expect(arrayResult.error.issues[0].message).toBe("Preveliko: očekivano da niz ima <=2 stavki");
66
+ }
67
+ });
68
+
69
+ test("Croatian locale - type name translations in invalid_type errors", () => {
70
+ z.config(hr());
71
+
72
+ // Test string expected, number received
73
+ const stringSchema = z.string();
74
+ const stringResult = stringSchema.safeParse(123);
75
+ expect(stringResult.success).toBe(false);
76
+ if (!stringResult.success) {
77
+ expect(stringResult.error.issues[0].message).toBe("Neispravan unos: očekuje se tekst, a primljeno je broj");
78
+ }
79
+
80
+ // Test number expected, string received
81
+ const numberSchema = z.number();
82
+ const numberResult = numberSchema.safeParse("abc");
83
+ expect(numberResult.success).toBe(false);
84
+ if (!numberResult.success) {
85
+ expect(numberResult.error.issues[0].message).toBe("Neispravan unos: očekuje se broj, a primljeno je tekst");
86
+ }
87
+
88
+ // Test boolean expected, null received
89
+ const booleanSchema = z.boolean();
90
+ const booleanResult = booleanSchema.safeParse(null);
91
+ expect(booleanResult.success).toBe(false);
92
+ if (!booleanResult.success) {
93
+ expect(booleanResult.error.issues[0].message).toBe("Neispravan unos: očekuje se boolean, a primljeno je null");
94
+ }
95
+
96
+ // Test array expected, object received
97
+ const arraySchema = z.array(z.string());
98
+ const arrayResult = arraySchema.safeParse({});
99
+ expect(arrayResult.success).toBe(false);
100
+ if (!arrayResult.success) {
101
+ expect(arrayResult.error.issues[0].message).toBe("Neispravan unos: očekuje se niz, a primljeno je objekt");
102
+ }
103
+ });
104
+
105
+ test("Croatian locale - other error cases", () => {
106
+ z.config(hr());
107
+
108
+ // Test invalid_element with tuple
109
+ const tupleSchema = z.tuple([z.string(), z.number()]);
110
+ const tupleResult = tupleSchema.safeParse(["abc", "not a number"]);
111
+ expect(tupleResult.success).toBe(false);
112
+ if (!tupleResult.success) {
113
+ expect(tupleResult.error.issues[0].message).toContain("Neispravan unos");
114
+ }
115
+
116
+ // Test invalid_value with enum
117
+ const enumSchema = z.enum(["a", "b"]);
118
+ const enumResult = enumSchema.safeParse("c");
119
+ expect(enumResult.success).toBe(false);
120
+ if (!enumResult.success) {
121
+ expect(enumResult.error.issues[0].message).toBe('Neispravna opcija: očekivano jedno od "a"|"b"');
122
+ }
123
+
124
+ // Test not_multiple_of
125
+ const multipleSchema = z.number().multipleOf(3);
126
+ const multipleResult = multipleSchema.safeParse(10);
127
+ expect(multipleResult.success).toBe(false);
128
+ if (!multipleResult.success) {
129
+ expect(multipleResult.error.issues[0].message).toBe("Neispravan broj: mora biti višekratnik od 3");
130
+ }
131
+
132
+ // Test unrecognized_keys
133
+ const strictSchema = z.object({ a: z.string() }).strict();
134
+ const strictResult = strictSchema.safeParse({ a: "test", b: "extra" });
135
+ expect(strictResult.success).toBe(false);
136
+ if (!strictResult.success) {
137
+ expect(strictResult.error.issues[0].message).toBe('Neprepoznat ključ: "b"');
138
+ }
139
+
140
+ // Test invalid_union
141
+ const unionSchema = z.union([z.string(), z.number()]);
142
+ const unionResult = unionSchema.safeParse(true);
143
+ expect(unionResult.success).toBe(false);
144
+ if (!unionResult.success) {
145
+ expect(unionResult.error.issues[0].message).toBe("Neispravan unos");
146
+ }
147
+
148
+ // Test invalid_format with regex
149
+ const regexSchema = z.string().regex(/^[a-z]+$/);
150
+ const regexResult = regexSchema.safeParse("ABC123");
151
+ expect(regexResult.success).toBe(false);
152
+ if (!regexResult.success) {
153
+ expect(regexResult.error.issues[0].message).toBe("Neispravan tekst: mora odgovarati uzorku /^[a-z]+$/");
154
+ }
155
+
156
+ // Test invalid_format with startsWith
157
+ const startsWithSchema = z.string().startsWith("hello");
158
+ const startsWithResult = startsWithSchema.safeParse("world");
159
+ expect(startsWithResult.success).toBe(false);
160
+ if (!startsWithResult.success) {
161
+ expect(startsWithResult.error.issues[0].message).toBe('Neispravan tekst: mora započinjati s "hello"');
162
+ }
163
+ });
@@ -0,0 +1,42 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { fileURLToPath } from "node:url";
3
+ import { expect, test } from "vitest";
4
+ import { z } from "../../../../index.js";
5
+
6
+ // Every locale must carry an entry for each key `en` translates. Four keys have drifted this way already — `credit_card` (#5931), `mac` (#5440), `Sizable.map` (#5316) and Hebrew's `uuidv4`/`uuidv6`/`template_literal` — each shipped in `en` and left the rest behind, so the gap only surfaced as a raw key in a user's error message.
7
+ //
8
+ // The key lists are read out of `en.ts` rather than hardcoded, so adding a format to `en` extends this test automatically. That is the whole point: a hand-maintained list here would miss the next one exactly the way the last four were missed.
9
+
10
+ const enSource = readFileSync(fileURLToPath(new URL("../../../locales/en.ts", import.meta.url)), "utf8");
11
+
12
+ function keysOf(block: string): string[] {
13
+ const body = enSource.match(new RegExp(`const ${block}[^=]*= \\{([\\s\\S]*?)\\n \\};`))?.[1];
14
+ if (!body) throw new Error(`could not read ${block} out of en.ts`);
15
+ return [...body.matchAll(/^\s{4}([a-z_0-9]+):/gm)].map((m) => m[1]!);
16
+ }
17
+
18
+ const locales = z.locales as unknown as Record<string, () => { localeError: z.core.$ZodErrorMap }>;
19
+ const names = Object.keys(locales).filter((k) => typeof locales[k] === "function");
20
+ const SENTINEL = "zzsentinelzz";
21
+
22
+ /** True when the locale has no entry for `key`: the message is what the sentinel produces. */
23
+ function fallsThrough(locale: string, key: string, build: (k: string) => unknown): boolean {
24
+ const map = locales[locale]!().localeError as (iss: unknown) => string | undefined;
25
+ const real = String(map(build(key)) ?? "");
26
+ const sentinel = String(map(build(SENTINEL)) ?? "");
27
+ return real === sentinel.split(SENTINEL).join(key);
28
+ }
29
+
30
+ const asFormat = (k: string) => ({ code: "invalid_format", format: k, input: "x", path: [] });
31
+ const asSize = (k: string) => ({ code: "too_small", origin: k, minimum: 2, inclusive: true, input: null, path: [] });
32
+
33
+ test.each([
34
+ ["FormatDictionary", keysOf("FormatDictionary"), asFormat],
35
+ ["Sizable", keysOf("Sizable"), asSize],
36
+ ] as const)("every locale translates each %s key that en translates", (_block, keys, build) => {
37
+ // A key `en` maps to its own name (emoji, nanoid, cuid, cuid2) renders identically whether or not a locale defines it, so omitting it is not drift.
38
+ const required = keys.filter((k) => !fallsThrough("en", k, build));
39
+ const gaps = required.flatMap((k) => names.filter((n) => fallsThrough(n, k, build)).map((n) => `${n}.${k}`));
40
+
41
+ expect(gaps).toEqual([]);
42
+ });