@warlock.js/seal 5.29.0 → 5.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +58 -8
  3. package/cjs/index.cjs +58 -43
  4. package/cjs/index.cjs.map +1 -1
  5. package/cjs/{object-DubGC-xu.cjs → object-VTtA-k1a.cjs} +23 -19
  6. package/cjs/object-VTtA-k1a.cjs.map +1 -0
  7. package/cjs/object.cjs +2 -2
  8. package/cjs/{required-methods-BOVNRtci.cjs → required-methods-chT0TXQS.cjs} +197 -92
  9. package/cjs/required-methods-chT0TXQS.cjs.map +1 -0
  10. package/cjs/{string-DpDpgefH.cjs → string-edcPIpcU.cjs} +8 -8
  11. package/cjs/string-edcPIpcU.cjs.map +1 -0
  12. package/cjs/string.cjs +2 -2
  13. package/esm/config.d.mts +2 -1
  14. package/esm/config.d.mts.map +1 -1
  15. package/esm/config.mjs +1 -1
  16. package/esm/config.mjs.map +1 -1
  17. package/esm/factory/validate.d.mts +9 -6
  18. package/esm/factory/validate.d.mts.map +1 -1
  19. package/esm/factory/validate.mjs +12 -4
  20. package/esm/factory/validate.mjs.map +1 -1
  21. package/esm/factory/validators.d.mts +13 -13
  22. package/esm/factory/validators.d.mts.map +1 -1
  23. package/esm/factory/validators.mjs +8 -2
  24. package/esm/factory/validators.mjs.map +1 -1
  25. package/esm/helpers/date-helpers.d.mts +1 -1
  26. package/esm/helpers/date-helpers.d.mts.map +1 -1
  27. package/esm/helpers/date-helpers.mjs +1 -1
  28. package/esm/helpers/date-helpers.mjs.map +1 -1
  29. package/esm/helpers/file.utils.d.mts +1 -1
  30. package/esm/helpers/file.utils.d.mts.map +1 -1
  31. package/esm/helpers/file.utils.mjs +1 -1
  32. package/esm/helpers/file.utils.mjs.map +1 -1
  33. package/esm/helpers/get-field-value.d.mts +2 -1
  34. package/esm/helpers/get-field-value.d.mts.map +1 -1
  35. package/esm/helpers/get-field-value.mjs +1 -1
  36. package/esm/helpers/get-field-value.mjs.map +1 -1
  37. package/esm/helpers/is-empty-value.mjs +1 -1
  38. package/esm/helpers/is-empty-value.mjs.map +1 -1
  39. package/esm/helpers/path-helpers.d.mts +1 -1
  40. package/esm/helpers/path-helpers.d.mts.map +1 -1
  41. package/esm/helpers/path-helpers.mjs +1 -1
  42. package/esm/helpers/path-helpers.mjs.map +1 -1
  43. package/esm/helpers/validation-helpers.d.mts +2 -1
  44. package/esm/helpers/validation-helpers.d.mts.map +1 -1
  45. package/esm/helpers/validation-helpers.mjs +1 -1
  46. package/esm/helpers/validation-helpers.mjs.map +1 -1
  47. package/esm/index.d.mts +3 -3
  48. package/esm/mutators/array-mutators.d.mts +2 -1
  49. package/esm/mutators/array-mutators.d.mts.map +1 -1
  50. package/esm/mutators/array-mutators.mjs +1 -1
  51. package/esm/mutators/array-mutators.mjs.map +1 -1
  52. package/esm/mutators/boolean-mutators.d.mts +2 -1
  53. package/esm/mutators/boolean-mutators.d.mts.map +1 -1
  54. package/esm/mutators/boolean-mutators.mjs +1 -1
  55. package/esm/mutators/boolean-mutators.mjs.map +1 -1
  56. package/esm/mutators/date-mutators.d.mts +2 -1
  57. package/esm/mutators/date-mutators.d.mts.map +1 -1
  58. package/esm/mutators/date-mutators.mjs +1 -1
  59. package/esm/mutators/date-mutators.mjs.map +1 -1
  60. package/esm/mutators/number-mutators.d.mts +2 -1
  61. package/esm/mutators/number-mutators.d.mts.map +1 -1
  62. package/esm/mutators/number-mutators.mjs +1 -1
  63. package/esm/mutators/number-mutators.mjs.map +1 -1
  64. package/esm/mutators/object-mutators.d.mts +2 -1
  65. package/esm/mutators/object-mutators.d.mts.map +1 -1
  66. package/esm/mutators/object-mutators.mjs +1 -1
  67. package/esm/mutators/object-mutators.mjs.map +1 -1
  68. package/esm/mutators/scalar-mutators.d.mts +2 -1
  69. package/esm/mutators/scalar-mutators.d.mts.map +1 -1
  70. package/esm/mutators/scalar-mutators.mjs +1 -1
  71. package/esm/mutators/scalar-mutators.mjs.map +1 -1
  72. package/esm/mutators/string-mutators.d.mts +2 -1
  73. package/esm/mutators/string-mutators.d.mts.map +1 -1
  74. package/esm/mutators/string-mutators.mjs +3 -3
  75. package/esm/mutators/string-mutators.mjs.map +1 -1
  76. package/esm/object.d.mts +2 -4
  77. package/esm/object.d.mts.map +1 -1
  78. package/esm/object.mjs +1 -1
  79. package/esm/object.mjs.map +1 -1
  80. package/esm/plugins/plugin-system.d.mts +1 -1
  81. package/esm/plugins/plugin-system.d.mts.map +1 -1
  82. package/esm/plugins/plugin-system.mjs +1 -1
  83. package/esm/plugins/plugin-system.mjs.map +1 -1
  84. package/esm/rules/array/array-rules.d.mts +2 -1
  85. package/esm/rules/array/array-rules.d.mts.map +1 -1
  86. package/esm/rules/array/array-rules.mjs +1 -1
  87. package/esm/rules/array/array-rules.mjs.map +1 -1
  88. package/esm/rules/color/color-rules.d.mts +2 -1
  89. package/esm/rules/color/color-rules.d.mts.map +1 -1
  90. package/esm/rules/color/color-rules.mjs +1 -1
  91. package/esm/rules/color/color-rules.mjs.map +1 -1
  92. package/esm/rules/common/enum.d.mts +2 -1
  93. package/esm/rules/common/enum.d.mts.map +1 -1
  94. package/esm/rules/common/enum.mjs +1 -1
  95. package/esm/rules/common/enum.mjs.map +1 -1
  96. package/esm/rules/common/equals-field-rules.d.mts +2 -1
  97. package/esm/rules/common/equals-field-rules.d.mts.map +1 -1
  98. package/esm/rules/common/equals-field-rules.mjs +1 -1
  99. package/esm/rules/common/equals-field-rules.mjs.map +1 -1
  100. package/esm/rules/common/instanceof.d.mts +2 -1
  101. package/esm/rules/common/instanceof.d.mts.map +1 -1
  102. package/esm/rules/common/instanceof.mjs +1 -1
  103. package/esm/rules/common/instanceof.mjs.map +1 -1
  104. package/esm/rules/common/literal.d.mts +2 -1
  105. package/esm/rules/common/literal.d.mts.map +1 -1
  106. package/esm/rules/common/literal.mjs +1 -1
  107. package/esm/rules/common/literal.mjs.map +1 -1
  108. package/esm/rules/common/type-rules.d.mts +2 -1
  109. package/esm/rules/common/type-rules.d.mts.map +1 -1
  110. package/esm/rules/common/type-rules.mjs +1 -1
  111. package/esm/rules/common/type-rules.mjs.map +1 -1
  112. package/esm/rules/common/unknown-key.d.mts +2 -1
  113. package/esm/rules/common/unknown-key.d.mts.map +1 -1
  114. package/esm/rules/common/unknown-key.mjs +1 -1
  115. package/esm/rules/common/unknown-key.mjs.map +1 -1
  116. package/esm/rules/conditional/forbidden-if-rules.d.mts +2 -1
  117. package/esm/rules/conditional/forbidden-if-rules.d.mts.map +1 -1
  118. package/esm/rules/conditional/forbidden-if-rules.mjs +1 -1
  119. package/esm/rules/conditional/forbidden-if-rules.mjs.map +1 -1
  120. package/esm/rules/conditional/present-if-rules.d.mts +2 -1
  121. package/esm/rules/conditional/present-if-rules.d.mts.map +1 -1
  122. package/esm/rules/conditional/present-if-rules.mjs +1 -1
  123. package/esm/rules/conditional/present-if-rules.mjs.map +1 -1
  124. package/esm/rules/conditional/present-unless-rules.d.mts +2 -1
  125. package/esm/rules/conditional/present-unless-rules.d.mts.map +1 -1
  126. package/esm/rules/conditional/present-unless-rules.mjs +1 -1
  127. package/esm/rules/conditional/present-unless-rules.mjs.map +1 -1
  128. package/esm/rules/conditional/present-with-rules.d.mts +2 -1
  129. package/esm/rules/conditional/present-with-rules.d.mts.map +1 -1
  130. package/esm/rules/conditional/present-with-rules.mjs +1 -1
  131. package/esm/rules/conditional/present-with-rules.mjs.map +1 -1
  132. package/esm/rules/conditional/present-without-rules.d.mts +2 -1
  133. package/esm/rules/conditional/present-without-rules.d.mts.map +1 -1
  134. package/esm/rules/conditional/present-without-rules.mjs +1 -1
  135. package/esm/rules/conditional/present-without-rules.mjs.map +1 -1
  136. package/esm/rules/conditional/required-if-rules.d.mts +2 -1
  137. package/esm/rules/conditional/required-if-rules.d.mts.map +1 -1
  138. package/esm/rules/conditional/required-if-rules.mjs +1 -1
  139. package/esm/rules/conditional/required-if-rules.mjs.map +1 -1
  140. package/esm/rules/conditional/required-unless-rules.d.mts +2 -1
  141. package/esm/rules/conditional/required-unless-rules.d.mts.map +1 -1
  142. package/esm/rules/conditional/required-unless-rules.mjs +1 -1
  143. package/esm/rules/conditional/required-unless-rules.mjs.map +1 -1
  144. package/esm/rules/conditional/required-when-rule.d.mts +2 -1
  145. package/esm/rules/conditional/required-when-rule.d.mts.map +1 -1
  146. package/esm/rules/conditional/required-when-rule.mjs +1 -1
  147. package/esm/rules/conditional/required-when-rule.mjs.map +1 -1
  148. package/esm/rules/conditional/required-with-rules.d.mts +2 -1
  149. package/esm/rules/conditional/required-with-rules.d.mts.map +1 -1
  150. package/esm/rules/conditional/required-with-rules.mjs +1 -1
  151. package/esm/rules/conditional/required-with-rules.mjs.map +1 -1
  152. package/esm/rules/conditional/required-without-rules.d.mts +2 -1
  153. package/esm/rules/conditional/required-without-rules.d.mts.map +1 -1
  154. package/esm/rules/conditional/required-without-rules.mjs +1 -1
  155. package/esm/rules/conditional/required-without-rules.mjs.map +1 -1
  156. package/esm/rules/core/equal.d.mts +2 -1
  157. package/esm/rules/core/equal.d.mts.map +1 -1
  158. package/esm/rules/core/equal.mjs +1 -1
  159. package/esm/rules/core/equal.mjs.map +1 -1
  160. package/esm/rules/core/forbidden.d.mts +2 -1
  161. package/esm/rules/core/forbidden.d.mts.map +1 -1
  162. package/esm/rules/core/forbidden.mjs +1 -1
  163. package/esm/rules/core/forbidden.mjs.map +1 -1
  164. package/esm/rules/core/required.d.mts +2 -1
  165. package/esm/rules/core/required.d.mts.map +1 -1
  166. package/esm/rules/core/required.mjs +1 -1
  167. package/esm/rules/core/required.mjs.map +1 -1
  168. package/esm/rules/core/union.d.mts +9 -2
  169. package/esm/rules/core/union.d.mts.map +1 -1
  170. package/esm/rules/core/union.mjs +59 -11
  171. package/esm/rules/core/union.mjs.map +1 -1
  172. package/esm/rules/core/when.d.mts +2 -1
  173. package/esm/rules/core/when.d.mts.map +1 -1
  174. package/esm/rules/core/when.mjs +1 -1
  175. package/esm/rules/core/when.mjs.map +1 -1
  176. package/esm/rules/date/date-comparison-rules.d.mts +2 -1
  177. package/esm/rules/date/date-comparison-rules.d.mts.map +1 -1
  178. package/esm/rules/date/date-comparison-rules.mjs +1 -1
  179. package/esm/rules/date/date-comparison-rules.mjs.map +1 -1
  180. package/esm/rules/date/date-day-rules.d.mts +2 -1
  181. package/esm/rules/date/date-day-rules.d.mts.map +1 -1
  182. package/esm/rules/date/date-day-rules.mjs +1 -1
  183. package/esm/rules/date/date-day-rules.mjs.map +1 -1
  184. package/esm/rules/date/date-field-comparison-rules.d.mts +2 -1
  185. package/esm/rules/date/date-field-comparison-rules.d.mts.map +1 -1
  186. package/esm/rules/date/date-field-comparison-rules.mjs +1 -1
  187. package/esm/rules/date/date-field-comparison-rules.mjs.map +1 -1
  188. package/esm/rules/date/date-period-rules.d.mts +2 -1
  189. package/esm/rules/date/date-period-rules.d.mts.map +1 -1
  190. package/esm/rules/date/date-period-rules.mjs +1 -1
  191. package/esm/rules/date/date-period-rules.mjs.map +1 -1
  192. package/esm/rules/date/date-relative-rules.d.mts +2 -1
  193. package/esm/rules/date/date-relative-rules.d.mts.map +1 -1
  194. package/esm/rules/date/date-relative-rules.mjs +1 -1
  195. package/esm/rules/date/date-relative-rules.mjs.map +1 -1
  196. package/esm/rules/date/date-special-rules.d.mts +2 -1
  197. package/esm/rules/date/date-special-rules.d.mts.map +1 -1
  198. package/esm/rules/date/date-special-rules.mjs +1 -1
  199. package/esm/rules/date/date-special-rules.mjs.map +1 -1
  200. package/esm/rules/date/date.d.mts +2 -1
  201. package/esm/rules/date/date.d.mts.map +1 -1
  202. package/esm/rules/date/date.mjs +1 -1
  203. package/esm/rules/date/date.mjs.map +1 -1
  204. package/esm/rules/file/dimensions.d.mts +2 -1
  205. package/esm/rules/file/dimensions.d.mts.map +1 -1
  206. package/esm/rules/file/dimensions.mjs +1 -1
  207. package/esm/rules/file/dimensions.mjs.map +1 -1
  208. package/esm/rules/file/file-size.d.mts +2 -1
  209. package/esm/rules/file/file-size.d.mts.map +1 -1
  210. package/esm/rules/file/file-size.mjs +1 -1
  211. package/esm/rules/file/file-size.mjs.map +1 -1
  212. package/esm/rules/length/length-rules.d.mts +2 -1
  213. package/esm/rules/length/length-rules.d.mts.map +1 -1
  214. package/esm/rules/length/length-rules.mjs +1 -1
  215. package/esm/rules/length/length-rules.mjs.map +1 -1
  216. package/esm/rules/number/number-rules.d.mts +2 -1
  217. package/esm/rules/number/number-rules.d.mts.map +1 -1
  218. package/esm/rules/number/number-rules.mjs +1 -1
  219. package/esm/rules/number/number-rules.mjs.map +1 -1
  220. package/esm/rules/scalar/accepted-rule.mjs +1 -1
  221. package/esm/rules/scalar/accepted-rule.mjs.map +1 -1
  222. package/esm/rules/scalar/declined-rule.mjs +1 -1
  223. package/esm/rules/scalar/declined-rule.mjs.map +1 -1
  224. package/esm/rules/string/alpha.d.mts +2 -1
  225. package/esm/rules/string/alpha.d.mts.map +1 -1
  226. package/esm/rules/string/alpha.mjs +1 -1
  227. package/esm/rules/string/alpha.mjs.map +1 -1
  228. package/esm/rules/string/credit-card.d.mts +2 -1
  229. package/esm/rules/string/credit-card.d.mts.map +1 -1
  230. package/esm/rules/string/credit-card.mjs +1 -1
  231. package/esm/rules/string/credit-card.mjs.map +1 -1
  232. package/esm/rules/string/email.d.mts +2 -1
  233. package/esm/rules/string/email.d.mts.map +1 -1
  234. package/esm/rules/string/email.mjs +1 -1
  235. package/esm/rules/string/email.mjs.map +1 -1
  236. package/esm/rules/string/id-formats.d.mts +2 -1
  237. package/esm/rules/string/id-formats.d.mts.map +1 -1
  238. package/esm/rules/string/id-formats.mjs +1 -1
  239. package/esm/rules/string/id-formats.mjs.map +1 -1
  240. package/esm/rules/string/ip.d.mts +2 -1
  241. package/esm/rules/string/ip.d.mts.map +1 -1
  242. package/esm/rules/string/ip.mjs +1 -1
  243. package/esm/rules/string/ip.mjs.map +1 -1
  244. package/esm/rules/string/matches.d.mts +2 -1
  245. package/esm/rules/string/matches.d.mts.map +1 -1
  246. package/esm/rules/string/matches.mjs +1 -1
  247. package/esm/rules/string/matches.mjs.map +1 -1
  248. package/esm/rules/string/pattern.d.mts +2 -1
  249. package/esm/rules/string/pattern.d.mts.map +1 -1
  250. package/esm/rules/string/pattern.mjs +1 -1
  251. package/esm/rules/string/pattern.mjs.map +1 -1
  252. package/esm/rules/string/string-comparison.d.mts +2 -1
  253. package/esm/rules/string/string-comparison.d.mts.map +1 -1
  254. package/esm/rules/string/string-comparison.mjs +1 -1
  255. package/esm/rules/string/string-comparison.mjs.map +1 -1
  256. package/esm/rules/string/strong-password-rule.d.mts +2 -1
  257. package/esm/rules/string/strong-password-rule.d.mts.map +1 -1
  258. package/esm/rules/string/strong-password-rule.mjs +1 -1
  259. package/esm/rules/string/strong-password-rule.mjs.map +1 -1
  260. package/esm/rules/string/url.d.mts +2 -1
  261. package/esm/rules/string/url.d.mts.map +1 -1
  262. package/esm/rules/string/url.mjs +1 -1
  263. package/esm/rules/string/url.mjs.map +1 -1
  264. package/esm/rules/string/without-whitespace.d.mts +2 -1
  265. package/esm/rules/string/without-whitespace.d.mts.map +1 -1
  266. package/esm/rules/string/without-whitespace.mjs +1 -1
  267. package/esm/rules/string/without-whitespace.mjs.map +1 -1
  268. package/esm/standard-schema/json-schema.d.mts +1 -1
  269. package/esm/standard-schema/json-schema.d.mts.map +1 -1
  270. package/esm/standard-schema/json-schema.mjs +1 -1
  271. package/esm/standard-schema/json-schema.mjs.map +1 -1
  272. package/esm/standard-schema/map-result.d.mts +2 -1
  273. package/esm/standard-schema/map-result.d.mts.map +1 -1
  274. package/esm/standard-schema/map-result.mjs +1 -1
  275. package/esm/standard-schema/map-result.mjs.map +1 -1
  276. package/esm/standard-schema/types.d.mts +1 -1
  277. package/esm/standard-schema/types.d.mts.map +1 -1
  278. package/esm/string.d.mts +1 -1
  279. package/esm/string.d.mts.map +1 -1
  280. package/esm/string.mjs +1 -1
  281. package/esm/string.mjs.map +1 -1
  282. package/esm/types/conditional-types.d.mts +1 -1
  283. package/esm/types/conditional-types.d.mts.map +1 -1
  284. package/esm/types/context-types.d.mts +8 -2
  285. package/esm/types/context-types.d.mts.map +1 -1
  286. package/esm/types/data-transformer-types.d.mts +1 -1
  287. package/esm/types/data-transformer-types.d.mts.map +1 -1
  288. package/esm/types/date-types.d.mts +1 -1
  289. package/esm/types/date-types.d.mts.map +1 -1
  290. package/esm/types/date-types.mjs +1 -1
  291. package/esm/types/date-types.mjs.map +1 -1
  292. package/esm/types/file.types.d.mts +1 -1
  293. package/esm/types/file.types.d.mts.map +1 -1
  294. package/esm/types/inference-types.d.mts +22 -5
  295. package/esm/types/inference-types.d.mts.map +1 -1
  296. package/esm/types/mutator-types.d.mts +1 -1
  297. package/esm/types/mutator-types.d.mts.map +1 -1
  298. package/esm/types/result-types.d.mts +26 -2
  299. package/esm/types/result-types.d.mts.map +1 -1
  300. package/esm/types/rule-types.d.mts +11 -2
  301. package/esm/types/rule-types.d.mts.map +1 -1
  302. package/esm/types/schema-types.d.mts +1 -1
  303. package/esm/types/schema-types.d.mts.map +1 -1
  304. package/esm/validators/any-validator.d.mts +1 -1
  305. package/esm/validators/any-validator.d.mts.map +1 -1
  306. package/esm/validators/any-validator.mjs +1 -1
  307. package/esm/validators/any-validator.mjs.map +1 -1
  308. package/esm/validators/array-validator.d.mts +1 -1
  309. package/esm/validators/array-validator.d.mts.map +1 -1
  310. package/esm/validators/array-validator.mjs +4 -4
  311. package/esm/validators/array-validator.mjs.map +1 -1
  312. package/esm/validators/base-validator.d.mts +10 -3
  313. package/esm/validators/base-validator.d.mts.map +1 -1
  314. package/esm/validators/base-validator.mjs +67 -18
  315. package/esm/validators/base-validator.mjs.map +1 -1
  316. package/esm/validators/boolean-validator.d.mts +1 -1
  317. package/esm/validators/boolean-validator.d.mts.map +1 -1
  318. package/esm/validators/boolean-validator.mjs +1 -1
  319. package/esm/validators/boolean-validator.mjs.map +1 -1
  320. package/esm/validators/computed-validator.d.mts +1 -1
  321. package/esm/validators/computed-validator.d.mts.map +1 -1
  322. package/esm/validators/computed-validator.mjs +5 -5
  323. package/esm/validators/computed-validator.mjs.map +1 -1
  324. package/esm/validators/date-validator.d.mts +2 -1
  325. package/esm/validators/date-validator.d.mts.map +1 -1
  326. package/esm/validators/date-validator.mjs +1 -1
  327. package/esm/validators/date-validator.mjs.map +1 -1
  328. package/esm/validators/discriminated-union-validator.d.mts +8 -2
  329. package/esm/validators/discriminated-union-validator.d.mts.map +1 -1
  330. package/esm/validators/discriminated-union-validator.mjs +7 -2
  331. package/esm/validators/discriminated-union-validator.mjs.map +1 -1
  332. package/esm/validators/float-validator.d.mts +1 -1
  333. package/esm/validators/float-validator.d.mts.map +1 -1
  334. package/esm/validators/float-validator.mjs +1 -1
  335. package/esm/validators/float-validator.mjs.map +1 -1
  336. package/esm/validators/instanceof-validator.d.mts +1 -1
  337. package/esm/validators/instanceof-validator.d.mts.map +1 -1
  338. package/esm/validators/instanceof-validator.mjs +1 -1
  339. package/esm/validators/instanceof-validator.mjs.map +1 -1
  340. package/esm/validators/int-validator.d.mts +1 -1
  341. package/esm/validators/int-validator.d.mts.map +1 -1
  342. package/esm/validators/int-validator.mjs +1 -1
  343. package/esm/validators/int-validator.mjs.map +1 -1
  344. package/esm/validators/lazy-validator.d.mts +1 -1
  345. package/esm/validators/lazy-validator.d.mts.map +1 -1
  346. package/esm/validators/lazy-validator.mjs +2 -2
  347. package/esm/validators/lazy-validator.mjs.map +1 -1
  348. package/esm/validators/literal-validator.d.mts +1 -1
  349. package/esm/validators/literal-validator.d.mts.map +1 -1
  350. package/esm/validators/literal-validator.mjs +5 -2
  351. package/esm/validators/literal-validator.mjs.map +1 -1
  352. package/esm/validators/managed-validator.d.mts +1 -1
  353. package/esm/validators/managed-validator.d.mts.map +1 -1
  354. package/esm/validators/managed-validator.mjs +1 -1
  355. package/esm/validators/managed-validator.mjs.map +1 -1
  356. package/esm/validators/methods/equality-conditional-methods.d.mts +2 -1
  357. package/esm/validators/methods/equality-conditional-methods.d.mts.map +1 -1
  358. package/esm/validators/methods/equality-conditional-methods.mjs +1 -1
  359. package/esm/validators/methods/equality-conditional-methods.mjs.map +1 -1
  360. package/esm/validators/methods/forbidden-methods.d.mts +1 -1
  361. package/esm/validators/methods/forbidden-methods.d.mts.map +1 -1
  362. package/esm/validators/methods/forbidden-methods.mjs +1 -1
  363. package/esm/validators/methods/forbidden-methods.mjs.map +1 -1
  364. package/esm/validators/methods/present-methods.d.mts +1 -1
  365. package/esm/validators/methods/present-methods.d.mts.map +1 -1
  366. package/esm/validators/methods/present-methods.mjs +1 -1
  367. package/esm/validators/methods/present-methods.mjs.map +1 -1
  368. package/esm/validators/methods/required-methods.d.mts +2 -1
  369. package/esm/validators/methods/required-methods.d.mts.map +1 -1
  370. package/esm/validators/methods/required-methods.mjs +1 -1
  371. package/esm/validators/methods/required-methods.mjs.map +1 -1
  372. package/esm/validators/number-validator.d.mts +1 -1
  373. package/esm/validators/number-validator.d.mts.map +1 -1
  374. package/esm/validators/number-validator.mjs +1 -1
  375. package/esm/validators/number-validator.mjs.map +1 -1
  376. package/esm/validators/numeric-validator.d.mts +1 -1
  377. package/esm/validators/numeric-validator.d.mts.map +1 -1
  378. package/esm/validators/numeric-validator.mjs +1 -1
  379. package/esm/validators/numeric-validator.mjs.map +1 -1
  380. package/esm/validators/object-validator.d.mts +1 -1
  381. package/esm/validators/object-validator.d.mts.map +1 -1
  382. package/esm/validators/object-validator.mjs +14 -10
  383. package/esm/validators/object-validator.mjs.map +1 -1
  384. package/esm/validators/primitive-validator.d.mts +1 -1
  385. package/esm/validators/primitive-validator.d.mts.map +1 -1
  386. package/esm/validators/primitive-validator.mjs +1 -1
  387. package/esm/validators/primitive-validator.mjs.map +1 -1
  388. package/esm/validators/record-validator.d.mts +1 -1
  389. package/esm/validators/record-validator.d.mts.map +1 -1
  390. package/esm/validators/record-validator.mjs +4 -4
  391. package/esm/validators/record-validator.mjs.map +1 -1
  392. package/esm/validators/scalar-validator.d.mts +1 -1
  393. package/esm/validators/scalar-validator.d.mts.map +1 -1
  394. package/esm/validators/scalar-validator.mjs +1 -1
  395. package/esm/validators/scalar-validator.mjs.map +1 -1
  396. package/esm/validators/string-validator.d.mts +1 -1
  397. package/esm/validators/string-validator.d.mts.map +1 -1
  398. package/esm/validators/string-validator.mjs +1 -1
  399. package/esm/validators/string-validator.mjs.map +1 -1
  400. package/esm/validators/tuple-validator.d.mts +1 -1
  401. package/esm/validators/tuple-validator.d.mts.map +1 -1
  402. package/esm/validators/tuple-validator.mjs +4 -4
  403. package/esm/validators/tuple-validator.mjs.map +1 -1
  404. package/esm/validators/union-validator.d.mts +4 -2
  405. package/esm/validators/union-validator.d.mts.map +1 -1
  406. package/esm/validators/union-validator.mjs +4 -2
  407. package/esm/validators/union-validator.mjs.map +1 -1
  408. package/llms-full.txt +664 -533
  409. package/llms.txt +1 -1
  410. package/package.json +3 -2
  411. package/skills/bridge-standard-schema/SKILL.md +60 -36
  412. package/skills/compose-seal-modifiers/SKILL.md +89 -53
  413. package/skills/define-structural-shape/SKILL.md +41 -27
  414. package/skills/define-structural-shape/array-methods.md +27 -27
  415. package/skills/define-structural-shape/object-methods.md +38 -30
  416. package/skills/extend-seal-with-plugins/SKILL.md +39 -5
  417. package/skills/generate-json-schema/SKILL.md +13 -13
  418. package/skills/handle-seal-errors/SKILL.md +26 -28
  419. package/skills/index.md +4 -1
  420. package/skills/overview/SKILL.md +10 -2
  421. package/skills/pick-seal-primitive/SKILL.md +49 -45
  422. package/skills/pick-seal-primitive/date-methods.md +96 -96
  423. package/skills/pick-seal-primitive/number-methods.md +55 -55
  424. package/skills/pick-seal-primitive/string-methods.md +107 -102
  425. package/skills/seal-basics/SKILL.md +15 -15
  426. package/cjs/object-DubGC-xu.cjs.map +0 -1
  427. package/cjs/required-methods-BOVNRtci.cjs.map +0 -1
  428. package/cjs/string-DpDpgefH.cjs.map +0 -1
  429. package/esm/helpers/index.d.mts +0 -5
  430. package/esm/mutators/index.d.mts +0 -7
  431. package/esm/rules/array/index.d.mts +0 -1
  432. package/esm/rules/color/index.d.mts +0 -1
  433. package/esm/rules/common/index.d.mts +0 -6
  434. package/esm/rules/conditional/index.d.mts +0 -10
  435. package/esm/rules/core/index.d.mts +0 -5
  436. package/esm/rules/date/index.d.mts +0 -7
  437. package/esm/rules/file/index.d.mts +0 -2
  438. package/esm/rules/index.d.mts +0 -45
  439. package/esm/rules/length/index.d.mts +0 -1
  440. package/esm/rules/number/index.d.mts +0 -1
  441. package/esm/rules/string/index.d.mts +0 -11
  442. package/esm/standard-schema/index.d.mts +0 -3
  443. package/esm/types/index.d.mts +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.mjs","names":[],"sources":["../../../../../../../../seal/src/rules/string/pattern.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Pattern rule - validates against regex pattern\n */\nexport const patternRule: SchemaRule<{ pattern: RegExp }> = {\n name: \"pattern\",\n defaultErrorMessage: \"The :input does not match the required pattern\",\n async validate(value: any, context) {\n if (this.context.options.pattern.test(value)) {\n return VALID_RULE;\n }\n\n this.context.translationParams.pattern = this.context.options.pattern.toString();\n return invalidRule(this, context);\n },\n};\n"],"mappings":";;;;;;;AAMA,MAAa,cAA+C;CAC1D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,KAAK,QAAQ,QAAQ,QAAQ,KAAK,KAAK,GACzC,OAAO;EAGT,KAAK,QAAQ,kBAAkB,UAAU,KAAK,QAAQ,QAAQ,QAAQ,SAAS;EAC/E,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
1
+ {"version":3,"file":"pattern.mjs","names":[],"sources":["../../../../../../../../../packages/seal/src/rules/string/pattern.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Pattern rule - validates against regex pattern\n */\nexport const patternRule: SchemaRule<{ pattern: RegExp }> = {\n name: \"pattern\",\n defaultErrorMessage: \"The :input does not match the required pattern\",\n async validate(value: any, context) {\n if (this.context.options.pattern.test(value)) {\n return VALID_RULE;\n }\n\n this.context.translationParams.pattern = this.context.options.pattern.toString();\n return invalidRule(this, context);\n },\n};\n"],"mappings":";;;;;;;AAMA,MAAa,cAA+C;CAC1D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,KAAK,QAAQ,QAAQ,QAAQ,KAAK,KAAK,GACzC,OAAO;EAGT,KAAK,QAAQ,kBAAkB,UAAU,KAAK,QAAQ,QAAQ,QAAQ,SAAS;EAC/E,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
@@ -1,5 +1,6 @@
1
1
  import { SchemaRule } from "../../types/rule-types.mjs";
2
- //#region ../seal/src/rules/string/string-comparison.d.ts
2
+
3
+ //#region ../../packages/seal/src/rules/string/string-comparison.d.ts
3
4
  /**
4
5
  * Starts with rule
5
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"string-comparison.d.mts","names":[],"sources":["../../../../../../../../seal/src/rules/string/string-comparison.ts"],"mappings":";;;;;cAMa,cAAA,EAAgB,UAAU;EAAG,KAAK;AAAA;;AAAA;AAiB/C;cAAa,YAAA,EAAc,UAAU;EAAG,KAAK;AAAA;AAAA;AAiB7C;;AAjB6C,cAiBhC,YAAA,EAAc,UAAU;EAAG,KAAK;AAAA;AAiB7C;;;AAAA,cAAa,eAAA,EAAiB,UAAU;EAAG,KAAK;AAAA"}
1
+ {"version":3,"file":"string-comparison.d.mts","names":[],"sources":["../../../../../../../../../packages/seal/src/rules/string/string-comparison.ts"],"mappings":";;;;;AAMA;cAAa,cAAA,EAAgB,UAAU;EAAG,KAAK;AAAA;AAAA;AAiB/C;;AAjB+C,cAiBlC,YAAA,EAAc,UAAU;EAAG,KAAK;AAAA;AAiB7C;;;AAAA,cAAa,YAAA,EAAc,UAAU;EAAG,KAAK;AAAA;;;;cAiBhC,eAAA,EAAiB,UAAU;EAAG,KAAK;AAAA"}
@@ -1,7 +1,7 @@
1
1
  import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
2
2
  import "../../helpers/index.mjs";
3
3
 
4
- //#region ../seal/src/rules/string/string-comparison.ts
4
+ //#region ../../packages/seal/src/rules/string/string-comparison.ts
5
5
  /**
6
6
  * Starts with rule
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"string-comparison.mjs","names":[],"sources":["../../../../../../../../seal/src/rules/string/string-comparison.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Starts with rule\n */\nexport const startsWithRule: SchemaRule<{ value: string }> = {\n name: \"startsWith\",\n defaultErrorMessage: \"The :input must start with :value\",\n async validate(value: any, context) {\n if (String(value).startsWith(this.context.options.value)) {\n return VALID_RULE;\n }\n\n this.context.translatableParams.value = this.context.options.value;\n\n return invalidRule(this, context);\n },\n};\n\n/**\n * Ends with rule\n */\nexport const endsWithRule: SchemaRule<{ value: string }> = {\n name: \"endsWith\",\n defaultErrorMessage: \"The :input must end with :value\",\n async validate(value: any, context) {\n if (String(value).endsWith(this.context.options.value)) {\n return VALID_RULE;\n }\n\n this.context.translatableParams.value = this.context.options.value;\n\n return invalidRule(this, context);\n },\n};\n\n/**\n * Contains rule\n */\nexport const containsRule: SchemaRule<{ value: string }> = {\n name: \"contains\",\n defaultErrorMessage: \"The :input must contain :value\",\n async validate(value: any, context) {\n if (String(value).includes(this.context.options.value)) {\n return VALID_RULE;\n }\n\n this.context.translatableParams.value = this.context.options.value;\n\n return invalidRule(this, context);\n },\n};\n\n/**\n * Not contains rule\n */\nexport const notContainsRule: SchemaRule<{ value: string }> = {\n name: \"notContains\",\n defaultErrorMessage: \"The :input must not contain :value\",\n async validate(value: any, context) {\n if (!String(value).includes(this.context.options.value)) {\n return VALID_RULE;\n }\n\n this.context.translatableParams.value = this.context.options.value;\n\n return invalidRule(this, context);\n },\n};\n"],"mappings":";;;;;;;AAMA,MAAa,iBAAgD;CAC3D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,KAAK,CAAC,CAAC,WAAW,KAAK,QAAQ,QAAQ,KAAK,GACrD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,eAA8C;CACzD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,QAAQ,KAAK,GACnD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,eAA8C;CACzD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,QAAQ,KAAK,GACnD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,kBAAiD;CAC5D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,QAAQ,KAAK,GACpD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
1
+ {"version":3,"file":"string-comparison.mjs","names":[],"sources":["../../../../../../../../../packages/seal/src/rules/string/string-comparison.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Starts with rule\n */\nexport const startsWithRule: SchemaRule<{ value: string }> = {\n name: \"startsWith\",\n defaultErrorMessage: \"The :input must start with :value\",\n async validate(value: any, context) {\n if (String(value).startsWith(this.context.options.value)) {\n return VALID_RULE;\n }\n\n this.context.translatableParams.value = this.context.options.value;\n\n return invalidRule(this, context);\n },\n};\n\n/**\n * Ends with rule\n */\nexport const endsWithRule: SchemaRule<{ value: string }> = {\n name: \"endsWith\",\n defaultErrorMessage: \"The :input must end with :value\",\n async validate(value: any, context) {\n if (String(value).endsWith(this.context.options.value)) {\n return VALID_RULE;\n }\n\n this.context.translatableParams.value = this.context.options.value;\n\n return invalidRule(this, context);\n },\n};\n\n/**\n * Contains rule\n */\nexport const containsRule: SchemaRule<{ value: string }> = {\n name: \"contains\",\n defaultErrorMessage: \"The :input must contain :value\",\n async validate(value: any, context) {\n if (String(value).includes(this.context.options.value)) {\n return VALID_RULE;\n }\n\n this.context.translatableParams.value = this.context.options.value;\n\n return invalidRule(this, context);\n },\n};\n\n/**\n * Not contains rule\n */\nexport const notContainsRule: SchemaRule<{ value: string }> = {\n name: \"notContains\",\n defaultErrorMessage: \"The :input must not contain :value\",\n async validate(value: any, context) {\n if (!String(value).includes(this.context.options.value)) {\n return VALID_RULE;\n }\n\n this.context.translatableParams.value = this.context.options.value;\n\n return invalidRule(this, context);\n },\n};\n"],"mappings":";;;;;;;AAMA,MAAa,iBAAgD;CAC3D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,KAAK,CAAC,CAAC,WAAW,KAAK,QAAQ,QAAQ,KAAK,GACrD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,eAA8C;CACzD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,QAAQ,KAAK,GACnD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,eAA8C;CACzD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,QAAQ,KAAK,GACnD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,kBAAiD;CAC5D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,QAAQ,KAAK,GACpD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
@@ -1,5 +1,6 @@
1
1
  import { SchemaRule } from "../../types/rule-types.mjs";
2
- //#region ../seal/src/rules/string/strong-password-rule.d.ts
2
+
3
+ //#region ../../packages/seal/src/rules/string/strong-password-rule.d.ts
3
4
  /**
4
5
  * Strong Password rule - validates password strength
5
6
  * Requirements:
@@ -1 +1 @@
1
- {"version":3,"file":"strong-password-rule.d.mts","names":[],"sources":["../../../../../../../../seal/src/rules/string/strong-password-rule.ts"],"mappings":";;;;;AAYA;;;;AAAuD;;cAA1C,kBAAA,EAAoB,UAAU;EAAG,SAAS;AAAA"}
1
+ {"version":3,"file":"strong-password-rule.d.mts","names":[],"sources":["../../../../../../../../../packages/seal/src/rules/string/strong-password-rule.ts"],"mappings":";;;;;AAYA;;;;AAAuD;;;cAA1C,kBAAA,EAAoB,UAAU;EAAG,SAAS;AAAA"}
@@ -1,7 +1,7 @@
1
1
  import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
2
2
  import "../../helpers/index.mjs";
3
3
 
4
- //#region ../seal/src/rules/string/strong-password-rule.ts
4
+ //#region ../../packages/seal/src/rules/string/strong-password-rule.ts
5
5
  /**
6
6
  * Strong Password rule - validates password strength
7
7
  * Requirements:
@@ -1 +1 @@
1
- {"version":3,"file":"strong-password-rule.mjs","names":[],"sources":["../../../../../../../../seal/src/rules/string/strong-password-rule.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Strong Password rule - validates password strength\n * Requirements:\n * - At least 8 characters\n * - At least 1 uppercase letter\n * - At least 1 lowercase letter\n * - At least 1 number\n * - At least 1 special character\n */\nexport const strongPasswordRule: SchemaRule<{ minLength?: number }> = {\n name: \"strongPassword\",\n defaultErrorMessage:\n \"The :input must be at least 8 characters and contain at least one uppercase letter, one lowercase letter, one number, and one special character\",\n async validate(value: any, context) {\n const password = String(value);\n const minLength = this.context.options.minLength ?? 8;\n\n // Check minimum length\n if (password.length < minLength) {\n return invalidRule(this, context);\n }\n\n // Check for at least one uppercase letter\n if (!/[A-Z]/.test(password)) {\n return invalidRule(this, context);\n }\n\n // Check for at least one lowercase letter\n if (!/[a-z]/.test(password)) {\n return invalidRule(this, context);\n }\n\n // Check for at least one number\n if (!/[0-9]/.test(password)) {\n return invalidRule(this, context);\n }\n\n // Check for at least one special character\n if (!/[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]/.test(password)) {\n return invalidRule(this, context);\n }\n\n return VALID_RULE;\n },\n};\n"],"mappings":";;;;;;;;;;;;;AAYA,MAAa,qBAAyD;CACpE,MAAM;CACN,qBACE;CACF,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,WAAW,OAAO,KAAK;EAC7B,MAAM,YAAY,KAAK,QAAQ,QAAQ,aAAa;EAGpD,IAAI,SAAS,SAAS,WACpB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,sCAAsC,KAAK,QAAQ,GACtD,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"strong-password-rule.mjs","names":[],"sources":["../../../../../../../../../packages/seal/src/rules/string/strong-password-rule.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Strong Password rule - validates password strength\n * Requirements:\n * - At least 8 characters\n * - At least 1 uppercase letter\n * - At least 1 lowercase letter\n * - At least 1 number\n * - At least 1 special character\n */\nexport const strongPasswordRule: SchemaRule<{ minLength?: number }> = {\n name: \"strongPassword\",\n defaultErrorMessage:\n \"The :input must be at least 8 characters and contain at least one uppercase letter, one lowercase letter, one number, and one special character\",\n async validate(value: any, context) {\n const password = String(value);\n const minLength = this.context.options.minLength ?? 8;\n\n // Check minimum length\n if (password.length < minLength) {\n return invalidRule(this, context);\n }\n\n // Check for at least one uppercase letter\n if (!/[A-Z]/.test(password)) {\n return invalidRule(this, context);\n }\n\n // Check for at least one lowercase letter\n if (!/[a-z]/.test(password)) {\n return invalidRule(this, context);\n }\n\n // Check for at least one number\n if (!/[0-9]/.test(password)) {\n return invalidRule(this, context);\n }\n\n // Check for at least one special character\n if (!/[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]/.test(password)) {\n return invalidRule(this, context);\n }\n\n return VALID_RULE;\n },\n};\n"],"mappings":";;;;;;;;;;;;;AAYA,MAAa,qBAAyD;CACpE,MAAM;CACN,qBACE;CACF,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,WAAW,OAAO,KAAK;EAC7B,MAAM,YAAY,KAAK,QAAQ,QAAQ,aAAa;EAGpD,IAAI,SAAS,SAAS,WACpB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,sCAAsC,KAAK,QAAQ,GACtD,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF"}
@@ -1,5 +1,6 @@
1
1
  import { SchemaRule } from "../../types/rule-types.mjs";
2
- //#region ../seal/src/rules/string/url.d.ts
2
+
3
+ //#region ../../packages/seal/src/rules/string/url.d.ts
3
4
  /**
4
5
  * URL rule - validates URL format
5
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.mts","names":[],"sources":["../../../../../../../../seal/src/rules/string/url.ts"],"mappings":";;;;;cAMa,OAAA,EAAS,UAWrB"}
1
+ {"version":3,"file":"url.d.mts","names":[],"sources":["../../../../../../../../../packages/seal/src/rules/string/url.ts"],"mappings":";;;;;AAMA;cAAa,OAAA,EAAS,UAWrB"}
@@ -1,7 +1,7 @@
1
1
  import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
2
2
  import "../../helpers/index.mjs";
3
3
 
4
- //#region ../seal/src/rules/string/url.ts
4
+ //#region ../../packages/seal/src/rules/string/url.ts
5
5
  /**
6
6
  * URL rule - validates URL format
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"url.mjs","names":[],"sources":["../../../../../../../../seal/src/rules/string/url.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * URL rule - validates URL format\n */\nexport const urlRule: SchemaRule = {\n name: \"url\",\n defaultErrorMessage: \"The :input must be a valid URL\",\n async validate(value: any, context) {\n try {\n new URL(value);\n return VALID_RULE;\n } catch {\n return invalidRule(this, context);\n }\n },\n};\n"],"mappings":";;;;;;;AAMA,MAAa,UAAsB;CACjC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI;GACF,IAAI,IAAI,KAAK;GACb,OAAO;EACT,QAAQ;GACN,OAAO,YAAY,MAAM,OAAO;EAClC;CACF;AACF"}
1
+ {"version":3,"file":"url.mjs","names":[],"sources":["../../../../../../../../../packages/seal/src/rules/string/url.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * URL rule - validates URL format\n */\nexport const urlRule: SchemaRule = {\n name: \"url\",\n defaultErrorMessage: \"The :input must be a valid URL\",\n async validate(value: any, context) {\n try {\n new URL(value);\n return VALID_RULE;\n } catch {\n return invalidRule(this, context);\n }\n },\n};\n"],"mappings":";;;;;;;AAMA,MAAa,UAAsB;CACjC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI;GACF,IAAI,IAAI,KAAK;GACb,OAAO;EACT,QAAQ;GACN,OAAO,YAAY,MAAM,OAAO;EAClC;CACF;AACF"}
@@ -1,5 +1,6 @@
1
1
  import { SchemaRule } from "../../types/rule-types.mjs";
2
- //#region ../seal/src/rules/string/without-whitespace.d.ts
2
+
3
+ //#region ../../packages/seal/src/rules/string/without-whitespace.d.ts
3
4
  /**
4
5
  * Without whitespace rule - value must not contain whitespace
5
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"without-whitespace.d.mts","names":[],"sources":["../../../../../../../../seal/src/rules/string/without-whitespace.ts"],"mappings":";;;;;cAMa,qBAAA,EAAuB,UASnC"}
1
+ {"version":3,"file":"without-whitespace.d.mts","names":[],"sources":["../../../../../../../../../packages/seal/src/rules/string/without-whitespace.ts"],"mappings":";;;;;AAMA;cAAa,qBAAA,EAAuB,UASnC"}
@@ -1,7 +1,7 @@
1
1
  import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
2
2
  import "../../helpers/index.mjs";
3
3
 
4
- //#region ../seal/src/rules/string/without-whitespace.ts
4
+ //#region ../../packages/seal/src/rules/string/without-whitespace.ts
5
5
  /**
6
6
  * Without whitespace rule - value must not contain whitespace
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"without-whitespace.mjs","names":[],"sources":["../../../../../../../../seal/src/rules/string/without-whitespace.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Without whitespace rule - value must not contain whitespace\n */\nexport const withoutWhitespaceRule: SchemaRule = {\n name: \"withoutWhitespace\",\n defaultErrorMessage: \"The :input must not contain whitespace\",\n async validate(value: any, context) {\n if (!/\\s/.test(value)) {\n return VALID_RULE;\n }\n return invalidRule(this, context);\n },\n};\n"],"mappings":";;;;;;;AAMA,MAAa,wBAAoC;CAC/C,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,CAAC,KAAK,KAAK,KAAK,GAClB,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
1
+ {"version":3,"file":"without-whitespace.mjs","names":[],"sources":["../../../../../../../../../packages/seal/src/rules/string/without-whitespace.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Without whitespace rule - value must not contain whitespace\n */\nexport const withoutWhitespaceRule: SchemaRule = {\n name: \"withoutWhitespace\",\n defaultErrorMessage: \"The :input must not contain whitespace\",\n async validate(value: any, context) {\n if (!/\\s/.test(value)) {\n return VALID_RULE;\n }\n return invalidRule(this, context);\n },\n};\n"],"mappings":";;;;;;;AAMA,MAAa,wBAAoC;CAC/C,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,CAAC,KAAK,KAAK,KAAK,GAClB,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
@@ -1,6 +1,6 @@
1
1
  import { StandardJSONSchemaV1 } from "./types.mjs";
2
2
 
3
- //#region ../seal/src/standard-schema/json-schema.d.ts
3
+ //#region ../../packages/seal/src/standard-schema/json-schema.d.ts
4
4
  /**
5
5
  * Supported JSON Schema generation targets.
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.d.mts","names":[],"sources":["../../../../../../../seal/src/standard-schema/json-schema.ts"],"mappings":";;;;;AAKA;KAAY,gBAAA,GAAmB,oBAAA,CAAqB,MAAM;;;AAAA;KAK9C,gBAAA,GAAmB,MAAM;;;;AAAA;AAmBrC;;;;;;;;;AAAgF;AA4ChF;;;iBA5CgB,aAAA,CAAc,MAAA,EAAQ,gBAAA,EAAkB,MAAA,EAAQ,gBAAgB;;;;;AA4CF;AA2B9E;;;;;;;;;;;;;;;;;iBA3BgB,kBAAA,CAAmB,MAAA,EAAQ,gBAAA,GAAmB,gBAAgB;;;;;iBA2B9D,cAAA,CACd,KAAA,EAAO,KAAA;EAAQ,IAAA;EAAc,OAAA;IAAW,OAAA,EAAS,MAAA;EAAA;AAAA,IACjD,QAAA,WACC,MAAA"}
1
+ {"version":3,"file":"json-schema.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/standard-schema/json-schema.ts"],"mappings":";;;;;AAKA;KAAY,gBAAA,GAAmB,oBAAA,CAAqB,MAAM;;;AAAA;KAK9C,gBAAA,GAAmB,MAAM;;;;AAAA;AAmBrC;;;;;;;;;AAAgF;AA0ChF;;;iBA1CgB,aAAA,CAAc,MAAA,EAAQ,gBAAA,EAAkB,MAAA,EAAQ,gBAAgB;;;;;AA0CF;AA2B9E;;;;;;;;;;;;;;;;;iBA3BgB,kBAAA,CAAmB,MAAA,EAAQ,gBAAA,GAAmB,gBAAgB;;;;;iBA2B9D,cAAA,CACd,KAAA,EAAO,KAAA;EAAQ,IAAA;EAAc,OAAA;IAAW,OAAA,EAAS,MAAA;EAAA;AAAA,IACjD,QAAA,WACC,MAAA"}
@@ -1,4 +1,4 @@
1
- //#region ../seal/src/standard-schema/json-schema.ts
1
+ //#region ../../packages/seal/src/standard-schema/json-schema.ts
2
2
  /**
3
3
  * Apply nullable to a JSON Schema object based on the target dialect.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.mjs","names":[],"sources":["../../../../../../../seal/src/standard-schema/json-schema.ts"],"sourcesContent":["import type { StandardJSONSchemaV1 } from \"./types\";\n\n/**\n * Supported JSON Schema generation targets.\n */\nexport type JsonSchemaTarget = StandardJSONSchemaV1.Target;\n\n/**\n * The result shape for a generated JSON Schema.\n */\nexport type JsonSchemaResult = Record<string, unknown>;\n\n/**\n * Apply nullable to a JSON Schema object based on the target dialect.\n *\n * - draft-2020-12 : `type` becomes an array: `[\"string\", \"null\"]`\n * - openai-strict : same as draft-2020-12 (type array form)\n * - draft-07 : wraps in `oneOf: [{ ...schema }, { type: \"null\" }]`\n * - openapi-3.0 : adds `nullable: true` alongside the existing type\n *\n * Mutates the schema in-place.\n *\n * @example\n * ```ts\n * const schema = { type: \"string\" };\n * applyNullable(schema, \"draft-2020-12\");\n * // → { type: [\"string\", \"null\"] }\n * ```\n */\nexport function applyNullable(schema: JsonSchemaResult, target: JsonSchemaTarget): void {\n if (target === \"openapi-3.0\") {\n schema.nullable = true;\n return;\n }\n\n if (target === \"draft-2020-12\" || target === \"openai-strict\") {\n const baseType = schema.type as string | string[] | undefined;\n schema.type = Array.isArray(baseType)\n ? [...baseType, \"null\"]\n : [baseType as string, \"null\"];\n return;\n }\n\n // draft-07: oneOf wrapping\n const copy = { ...schema };\n for (const key of Object.keys(schema)) {\n delete schema[key];\n }\n schema.oneOf = [copy, { type: \"null\" }];\n}\n\n/**\n * Wrap a field schema as nullable for OpenAI strict mode.\n *\n * OpenAI strict requires optional fields to be expressed as a nullable type\n * rather than being omitted from the `required` array. This helper wraps a\n * given schema into its nullable equivalent using the type-array form.\n *\n * Unlike `applyNullable()` (which mutates in-place), this returns a new\n * schema object to avoid side effects when wrapping child schemas.\n *\n * @example\n * ```ts\n * wrapNullableStrict({ type: \"string\", minLength: 3 })\n * // → { type: [\"string\", \"null\"], minLength: 3 }\n *\n * wrapNullableStrict({ type: \"object\", properties: {...} })\n * // → { type: [\"object\", \"null\"], properties: {...} }\n *\n * wrapNullableStrict({ oneOf: [...] })\n * // → { oneOf: [..., { type: \"null\" }] }\n * ```\n */\nexport function wrapNullableStrict(schema: JsonSchemaResult): JsonSchemaResult {\n // If the schema uses oneOf/anyOf (e.g. union), append null to the list\n if (schema.oneOf) {\n return { ...schema, oneOf: [...(schema.oneOf as unknown[]), { type: \"null\" }] };\n }\n\n if (schema.anyOf) {\n return { ...schema, anyOf: [...(schema.anyOf as unknown[]), { type: \"null\" }] };\n }\n\n // If there's no type at all (permissive `{}`), stay permissive\n if (schema.type === undefined) {\n return schema;\n }\n\n // Standard case: wrap type into array with null\n const baseType = schema.type as string | string[];\n return {\n ...schema,\n type: Array.isArray(baseType) ? [...baseType, \"null\"] : [baseType, \"null\"],\n };\n}\n\n/**\n * Find the first rule matching the given name in a rules array,\n * and return its options bag.\n */\nexport function getRuleOptions(\n rules: Array<{ name: string; context: { options: Record<string, unknown> } }>,\n ruleName: string,\n): Record<string, unknown> | undefined {\n const rule = rules.find(r => r.name === ruleName);\n return rule?.context?.options as Record<string, unknown> | undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6BA,SAAgB,cAAc,QAA0B,QAAgC;CACtF,IAAI,WAAW,eAAe;EAC5B,OAAO,WAAW;EAClB;CACF;CAEA,IAAI,WAAW,mBAAmB,WAAW,iBAAiB;EAC5D,MAAM,WAAW,OAAO;EACxB,OAAO,OAAO,MAAM,QAAQ,QAAQ,IAChC,CAAC,GAAG,UAAU,MAAM,IACpB,CAAC,UAAoB,MAAM;EAC/B;CACF;CAGA,MAAM,OAAO,EAAE,GAAG,OAAO;CACzB,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAClC,OAAO,OAAO;CAEhB,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC;AACxC;;;;;;;;;;;;;;;;;;;;;;;AAwBA,SAAgB,mBAAmB,QAA4C;CAE7E,IAAI,OAAO,OACT,OAAO;EAAE,GAAG;EAAQ,OAAO,CAAC,GAAI,OAAO,OAAqB,EAAE,MAAM,OAAO,CAAC;CAAE;CAGhF,IAAI,OAAO,OACT,OAAO;EAAE,GAAG;EAAQ,OAAO,CAAC,GAAI,OAAO,OAAqB,EAAE,MAAM,OAAO,CAAC;CAAE;CAIhF,IAAI,OAAO,SAAS,QAClB,OAAO;CAIT,MAAM,WAAW,OAAO;CACxB,OAAO;EACL,GAAG;EACH,MAAM,MAAM,QAAQ,QAAQ,IAAI,CAAC,GAAG,UAAU,MAAM,IAAI,CAAC,UAAU,MAAM;CAC3E;AACF;;;;;AAMA,SAAgB,eACd,OACA,UACqC;CAErC,OADa,MAAM,MAAK,MAAK,EAAE,SAAS,QAC9B,CAAC,EAAE,SAAS;AACxB"}
1
+ {"version":3,"file":"json-schema.mjs","names":[],"sources":["../../../../../../../../packages/seal/src/standard-schema/json-schema.ts"],"sourcesContent":["import type { StandardJSONSchemaV1 } from \"./types\";\n\n/**\n * Supported JSON Schema generation targets.\n */\nexport type JsonSchemaTarget = StandardJSONSchemaV1.Target;\n\n/**\n * The result shape for a generated JSON Schema.\n */\nexport type JsonSchemaResult = Record<string, unknown>;\n\n/**\n * Apply nullable to a JSON Schema object based on the target dialect.\n *\n * - draft-2020-12 : `type` becomes an array: `[\"string\", \"null\"]`\n * - openai-strict : same as draft-2020-12 (type array form)\n * - draft-07 : wraps in `oneOf: [{ ...schema }, { type: \"null\" }]`\n * - openapi-3.0 : adds `nullable: true` alongside the existing type\n *\n * Mutates the schema in-place.\n *\n * @example\n * ```ts\n * const schema = { type: \"string\" };\n * applyNullable(schema, \"draft-2020-12\");\n * // → { type: [\"string\", \"null\"] }\n * ```\n */\nexport function applyNullable(schema: JsonSchemaResult, target: JsonSchemaTarget): void {\n if (target === \"openapi-3.0\") {\n schema.nullable = true;\n return;\n }\n\n if (target === \"draft-2020-12\" || target === \"openai-strict\") {\n const baseType = schema.type as string | string[] | undefined;\n schema.type = Array.isArray(baseType) ? [...baseType, \"null\"] : [baseType as string, \"null\"];\n return;\n }\n\n // draft-07: oneOf wrapping\n const copy = { ...schema };\n for (const key of Object.keys(schema)) {\n delete schema[key];\n }\n schema.oneOf = [copy, { type: \"null\" }];\n}\n\n/**\n * Wrap a field schema as nullable for OpenAI strict mode.\n *\n * OpenAI strict requires optional fields to be expressed as a nullable type\n * rather than being omitted from the `required` array. This helper wraps a\n * given schema into its nullable equivalent using the type-array form.\n *\n * Unlike `applyNullable()` (which mutates in-place), this returns a new\n * schema object to avoid side effects when wrapping child schemas.\n *\n * @example\n * ```ts\n * wrapNullableStrict({ type: \"string\", minLength: 3 })\n * // → { type: [\"string\", \"null\"], minLength: 3 }\n *\n * wrapNullableStrict({ type: \"object\", properties: {...} })\n * // → { type: [\"object\", \"null\"], properties: {...} }\n *\n * wrapNullableStrict({ oneOf: [...] })\n * // → { oneOf: [..., { type: \"null\" }] }\n * ```\n */\nexport function wrapNullableStrict(schema: JsonSchemaResult): JsonSchemaResult {\n // If the schema uses oneOf/anyOf (e.g. union), append null to the list\n if (schema.oneOf) {\n return { ...schema, oneOf: [...(schema.oneOf as unknown[]), { type: \"null\" }] };\n }\n\n if (schema.anyOf) {\n return { ...schema, anyOf: [...(schema.anyOf as unknown[]), { type: \"null\" }] };\n }\n\n // If there's no type at all (permissive `{}`), stay permissive\n if (schema.type === undefined) {\n return schema;\n }\n\n // Standard case: wrap type into array with null\n const baseType = schema.type as string | string[];\n return {\n ...schema,\n type: Array.isArray(baseType) ? [...baseType, \"null\"] : [baseType, \"null\"],\n };\n}\n\n/**\n * Find the first rule matching the given name in a rules array,\n * and return its options bag.\n */\nexport function getRuleOptions(\n rules: Array<{ name: string; context: { options: Record<string, unknown> } }>,\n ruleName: string,\n): Record<string, unknown> | undefined {\n const rule = rules.find((r) => r.name === ruleName);\n return rule?.context?.options as Record<string, unknown> | undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6BA,SAAgB,cAAc,QAA0B,QAAgC;CACtF,IAAI,WAAW,eAAe;EAC5B,OAAO,WAAW;EAClB;CACF;CAEA,IAAI,WAAW,mBAAmB,WAAW,iBAAiB;EAC5D,MAAM,WAAW,OAAO;EACxB,OAAO,OAAO,MAAM,QAAQ,QAAQ,IAAI,CAAC,GAAG,UAAU,MAAM,IAAI,CAAC,UAAoB,MAAM;EAC3F;CACF;CAGA,MAAM,OAAO,EAAE,GAAG,OAAO;CACzB,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAClC,OAAO,OAAO;CAEhB,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC;AACxC;;;;;;;;;;;;;;;;;;;;;;;AAwBA,SAAgB,mBAAmB,QAA4C;CAE7E,IAAI,OAAO,OACT,OAAO;EAAE,GAAG;EAAQ,OAAO,CAAC,GAAI,OAAO,OAAqB,EAAE,MAAM,OAAO,CAAC;CAAE;CAGhF,IAAI,OAAO,OACT,OAAO;EAAE,GAAG;EAAQ,OAAO,CAAC,GAAI,OAAO,OAAqB,EAAE,MAAM,OAAO,CAAC;CAAE;CAIhF,IAAI,OAAO,SAAS,QAClB,OAAO;CAIT,MAAM,WAAW,OAAO;CACxB,OAAO;EACL,GAAG;EACH,MAAM,MAAM,QAAQ,QAAQ,IAAI,CAAC,GAAG,UAAU,MAAM,IAAI,CAAC,UAAU,MAAM;CAC3E;AACF;;;;;AAMA,SAAgB,eACd,OACA,UACqC;CAErC,OADa,MAAM,MAAM,MAAM,EAAE,SAAS,QAChC,CAAC,EAAE,SAAS;AACxB"}
@@ -1,6 +1,7 @@
1
1
  import { StandardSchemaV1 } from "./types.mjs";
2
2
  import { ValidationResult } from "../types/result-types.mjs";
3
- //#region ../seal/src/standard-schema/map-result.d.ts
3
+
4
+ //#region ../../packages/seal/src/standard-schema/map-result.d.ts
4
5
  /**
5
6
  * Maps a Seal ValidationResult to a Standard Schema result shape.
6
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"map-result.d.mts","names":[],"sources":["../../../../../../../seal/src/standard-schema/map-result.ts"],"mappings":";;;;;;AAiBA;;;;;;;;;AAE0B;;iBAFV,mBAAA,CACd,MAAA,EAAQ,gBAAA,GACP,gBAAA,CAAiB,MAAM"}
1
+ {"version":3,"file":"map-result.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/standard-schema/map-result.ts"],"mappings":";;;;;;AAiBA;;;;;;;;;AAAsF;;;iBAAtE,mBAAA,CAAoB,MAAA,EAAQ,gBAAA,GAAmB,gBAAA,CAAiB,MAAM"}
@@ -1,4 +1,4 @@
1
- //#region ../seal/src/standard-schema/map-result.ts
1
+ //#region ../../packages/seal/src/standard-schema/map-result.ts
2
2
  /**
3
3
  * Maps a Seal ValidationResult to a Standard Schema result shape.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"map-result.mjs","names":[],"sources":["../../../../../../../seal/src/standard-schema/map-result.ts"],"sourcesContent":["import type { ValidationResult } from \"../types\";\nimport type { StandardSchemaV1 } from \"./types\";\n\n/**\n * Maps a Seal ValidationResult to a Standard Schema result shape.\n *\n * Seal error paths are dot-notation strings (e.g. \"address.city\").\n * Standard Schema expects an array of path segments: [{ key: \"address\" }, { key: \"city\" }].\n *\n * @example\n * ```ts\n * const result = await validator.validate(value, context);\n * return mapToStandardResult(result);\n * // Success → { value: <data> }\n * // Failure → { issues: [{ message: \"...\", path: [{ key: \"...\" }] }] }\n * ```\n */\nexport function mapToStandardResult(\n result: ValidationResult,\n): StandardSchemaV1.Result<unknown> {\n if (result.isValid) {\n return { value: result.data };\n }\n\n return {\n issues: result.errors.map(e => ({\n message: e.error,\n path: e.input\n ? e.input.split(\".\").map(key => ({ key }))\n : undefined,\n })),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,SAAgB,oBACd,QACkC;CAClC,IAAI,OAAO,SACT,OAAO,EAAE,OAAO,OAAO,KAAK;CAG9B,OAAO,EACL,QAAQ,OAAO,OAAO,KAAI,OAAM;EAC9B,SAAS,EAAE;EACX,MAAM,EAAE,QACJ,EAAE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAI,SAAQ,EAAE,IAAI,EAAE,IACvC;CACN,EAAE,EACJ;AACF"}
1
+ {"version":3,"file":"map-result.mjs","names":[],"sources":["../../../../../../../../packages/seal/src/standard-schema/map-result.ts"],"sourcesContent":["import type { ValidationResult } from \"../types\";\nimport type { StandardSchemaV1 } from \"./types\";\n\n/**\n * Maps a Seal ValidationResult to a Standard Schema result shape.\n *\n * Seal error paths are dot-notation strings (e.g. \"address.city\").\n * Standard Schema expects an array of path segments: [{ key: \"address\" }, { key: \"city\" }].\n *\n * @example\n * ```ts\n * const result = await validator.validate(value, context);\n * return mapToStandardResult(result);\n * // Success → { value: <data> }\n * // Failure → { issues: [{ message: \"...\", path: [{ key: \"...\" }] }] }\n * ```\n */\nexport function mapToStandardResult(result: ValidationResult): StandardSchemaV1.Result<unknown> {\n if (result.isValid) {\n return { value: result.data };\n }\n\n return {\n issues: result.errors.map((e) => ({\n message: e.error,\n path: e.input ? e.input.split(\".\").map((key) => ({ key })) : undefined,\n })),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,SAAgB,oBAAoB,QAA4D;CAC9F,IAAI,OAAO,SACT,OAAO,EAAE,OAAO,OAAO,KAAK;CAG9B,OAAO,EACL,QAAQ,OAAO,OAAO,KAAK,OAAO;EAChC,SAAS,EAAE;EACX,MAAM,EAAE,QAAQ,EAAE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE,IAAI,EAAE,IAAI;CAC/D,EAAE,EACJ;AACF"}
@@ -1,4 +1,4 @@
1
- //#region ../seal/src/standard-schema/types.d.ts
1
+ //#region ../../packages/seal/src/standard-schema/types.d.ts
2
2
  /**
3
3
  * Standard Schema Spec Types
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../seal/src/standard-schema/types.ts"],"mappings":";;AAgBA;;;;;;;;;;UAAiB,gBAAA,2BAA2C,KAAA;EAAA,SACjD,WAAA,EAAa,gBAAA,CAAiB,KAAA,CAAM,KAAA,EAAO,MAAA;AAAA;AAAA,kBAG7B,gBAAA;EAHgB;EAAA,UAKtB,KAAA,2BAAgC,KAAA;IALG;IAAA,SAOzC,OAAA;IAP+C;IAAA,SAS/C,MAAA;IAN4B;IAAA,SAQ5B,KAAA,GAAQ,KAAA,CAAM,KAAA,EAAO,MAAA;IANiB;IAAA,SAQtC,QAAA,GACP,KAAA,WACA,OAAA,GAAU,OAAA,iBACP,MAAA,CAAO,MAAA,IAAU,OAAA,CAAQ,MAAA,CAAO,MAAA;EAAA;EALpB;EAAA,UASF,aAAA;IAAA,SACN,KAAA,EAAO,MAAA;IAAA,SACP,MAAA;EAAA;EANqB;EAAA,UAUf,OAAA;IAAA,SACN,cAAA,GAAiB,MAAA;EAAA;EAKK;EAAA,UADhB,aAAA;IAAA,SACN,MAAA,EAAQ,aAAA,CAAc,KAAA;EAAA;EAAA,KAGrB,MAAA,WAAiB,aAAA,CAAc,MAAA,IAAU,aAAA;EAKrB;EAAA,UAFf,KAAA;IAAA,SACN,OAAA;IAAA,SACA,IAAA,GAAO,aAAA,CAAc,WAAA,GAAc,WAAA;EAAA;EAU5B;EAAA,UAND,WAAA;IAAA,SACN,GAAA,EAAK,WAAA;EAAA;EAUqC;EAAA,UANpC,KAAA,2BAAgC,KAAA;IAAA,SACtC,KAAA,EAAO,KAAA;IAAA,SACP,MAAA,EAAQ,MAAA;EAAA;EAS8C;EAAA,KALrD,UAAA,WAAqB,gBAAA,IAAoB,WAAA,CACnD,CAAA;EAnDqB;EAAA,KAuDX,WAAA,WAAsB,gBAAA,IAAoB,WAAA,CACpD,CAAA;AAAA;;UASa,oBAAA,2BAA+C,KAAA;EAAA,SACrD,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,KAAA,EAAO,MAAA;AAAA;AAAA,kBAGjC,oBAAA;EAAA,UACN,KAAA,2BAAgC,KAAA,UACvC,IAAA,CAAK,gBAAA,CAAiB,KAAA,CAAM,KAAA,EAAO,MAAA;IAAA,SAClC,UAAA,EAAY,SAAA;EAAA;EA9DT;EAAA,UAkEG,SAAA;IAjEV;IAAA,SAmEI,KAAA,GAAQ,OAAA,EAAS,OAAA,KAAY,MAAA;IAnEhB;IAAA,SAqEb,MAAA,GAAS,OAAA,EAAS,OAAA,KAAY,MAAA;EAAA;EAjExB;;;;;;;;;;;;EAAA,KAgFL,MAAA;EAAA,UAOK,OAAA;IAAA,SACN,MAAA,EAAQ,MAAA;IAAA,SACR,cAAA,GAAiB,MAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/standard-schema/types.ts"],"mappings":";;AAgBA;;;;;;;;;;UAAiB,gBAAA,2BAA2C,KAAA;EAAA,SACjD,WAAA,EAAa,gBAAA,CAAiB,KAAA,CAAM,KAAA,EAAO,MAAA;AAAA;AAAA,kBAG7B,gBAAA;EAHgB;EAAA,UAKtB,KAAA,2BAAgC,KAAA;IALG;IAAA,SAOzC,OAAA;IAP+C;IAAA,SAS/C,MAAA;IAN4B;IAAA,SAQ5B,KAAA,GAAQ,KAAA,CAAM,KAAA,EAAO,MAAA;IANiB;IAAA,SAQtC,QAAA,GACP,KAAA,WACA,OAAA,GAAU,OAAA,iBACP,MAAA,CAAO,MAAA,IAAU,OAAA,CAAQ,MAAA,CAAO,MAAA;EAAA;EALpB;EAAA,UASF,aAAA;IAAA,SACN,KAAA,EAAO,MAAA;IAAA,SACP,MAAA;EAAA;EANqB;EAAA,UAUf,OAAA;IAAA,SACN,cAAA,GAAiB,MAAA;EAAA;EAKK;EAAA,UADhB,aAAA;IAAA,SACN,MAAA,EAAQ,aAAA,CAAc,KAAA;EAAA;EAAA,KAGrB,MAAA,WAAiB,aAAA,CAAc,MAAA,IAAU,aAAA;EAKrB;EAAA,UAFf,KAAA;IAAA,SACN,OAAA;IAAA,SACA,IAAA,GAAO,aAAA,CAAc,WAAA,GAAc,WAAA;EAAA;EAU5B;EAAA,UAND,WAAA;IAAA,SACN,GAAA,EAAK,WAAA;EAAA;EAUqC;EAAA,UANpC,KAAA,2BAAgC,KAAA;IAAA,SACtC,KAAA,EAAO,KAAA;IAAA,SACP,MAAA,EAAQ,MAAA;EAAA;EAS8C;EAAA,KALrD,UAAA,WAAqB,gBAAA,IAAoB,WAAA,CACnD,CAAA;EAnDqB;EAAA,KAuDX,WAAA,WAAsB,gBAAA,IAAoB,WAAA,CACpD,CAAA;AAAA;;UASa,oBAAA,2BAA+C,KAAA;EAAA,SACrD,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,KAAA,EAAO,MAAA;AAAA;AAAA,kBAGjC,oBAAA;EAAA,UACN,KAAA,2BAAgC,KAAA,UAAe,IAAA,CAC9D,gBAAA,CAAiB,KAAA,CAAM,KAAA,EAAO,MAAA;IAAA,SAGrB,UAAA,EAAY,SAAA;EAAA;EAhET;EAAA,UAoEG,SAAA;IAnEV;IAAA,SAqEI,KAAA,GAAQ,OAAA,EAAS,OAAA,KAAY,MAAA;IArEhB;IAAA,SAuEb,MAAA,GAAS,OAAA,EAAS,OAAA,KAAY,MAAA;EAAA;EAnExB;;;;;;;;;;;;EAAA,KAkFL,MAAA;EAAA,UAOK,OAAA;IAAA,SACN,MAAA,EAAQ,MAAA;IAAA,SACR,cAAA,GAAiB,MAAA;EAAA;AAAA"}
package/esm/string.d.mts CHANGED
@@ -5,7 +5,7 @@ import { presentMethodsApplied } from "./validators/methods/present-methods.mjs"
5
5
  import { requiredMethodsApplied } from "./validators/methods/required-methods.mjs";
6
6
  import { StringValidator } from "./validators/string-validator.mjs";
7
7
 
8
- //#region ../seal/src/string.d.ts
8
+ //#region ../../packages/seal/src/string.d.ts
9
9
  /** Create a string schema without importing the complete `v` factory. */
10
10
  declare const string: (errorMessage?: string) => StringValidator & StandardSchemaV1<string>;
11
11
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"string.d.mts","names":[],"sources":["../../../../../../seal/src/string.ts"],"mappings":";;;;;;;;;cAUa,MAAA,GAAU,YAAA,cACgB,eAAA,GAAkB,gBAAgB"}
1
+ {"version":3,"file":"string.d.mts","names":[],"sources":["../../../../../../../packages/seal/src/string.ts"],"mappings":";;;;;;;;;cAUa,MAAA,GAAU,YAAA,cACgB,eAAA,GAAkB,gBAAgB"}
package/esm/string.mjs CHANGED
@@ -4,7 +4,7 @@ import { presentMethodsApplied } from "./validators/methods/present-methods.mjs"
4
4
  import { requiredMethodsApplied } from "./validators/methods/required-methods.mjs";
5
5
  import { StringValidator } from "./validators/string-validator.mjs";
6
6
 
7
- //#region ../seal/src/string.ts
7
+ //#region ../../packages/seal/src/string.ts
8
8
  /** Create a string schema without importing the complete `v` factory. */
9
9
  const string = (errorMessage) => new StringValidator(errorMessage);
10
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"string.mjs","names":[],"sources":["../../../../../../seal/src/string.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"./standard-schema/types\";\nimport { StringValidator } from \"./validators/string-validator\";\n\nexport { equalityConditionalMethodsApplied } from \"./validators/methods/equality-conditional-methods\";\nexport { forbiddenMethodsApplied } from \"./validators/methods/forbidden-methods\";\nexport { presentMethodsApplied } from \"./validators/methods/present-methods\";\nexport { requiredMethodsApplied } from \"./validators/methods/required-methods\";\nexport { StringValidator };\n\n/** Create a string schema without importing the complete `v` factory. */\nexport const string = (errorMessage?: string) =>\n new StringValidator(errorMessage) as StringValidator & StandardSchemaV1<string>;\n"],"mappings":";;;;;;;;AAUA,MAAa,UAAU,iBACrB,IAAI,gBAAgB,YAAY"}
1
+ {"version":3,"file":"string.mjs","names":[],"sources":["../../../../../../../packages/seal/src/string.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"./standard-schema/types\";\nimport { StringValidator } from \"./validators/string-validator\";\n\nexport { equalityConditionalMethodsApplied } from \"./validators/methods/equality-conditional-methods\";\nexport { forbiddenMethodsApplied } from \"./validators/methods/forbidden-methods\";\nexport { presentMethodsApplied } from \"./validators/methods/present-methods\";\nexport { requiredMethodsApplied } from \"./validators/methods/required-methods\";\nexport { StringValidator };\n\n/** Create a string schema without importing the complete `v` factory. */\nexport const string = (errorMessage?: string) =>\n new StringValidator(errorMessage) as StringValidator & StandardSchemaV1<string>;\n"],"mappings":";;;;;;;;AAUA,MAAa,UAAU,iBACrB,IAAI,gBAAgB,YAAY"}
@@ -1,6 +1,6 @@
1
1
  import { BaseValidator } from "../validators/base-validator.mjs";
2
2
 
3
- //#region ../seal/src/types/conditional-types.d.ts
3
+ //#region ../../packages/seal/src/types/conditional-types.d.ts
4
4
  /**
5
5
  * Options for conditional when rule
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/conditional-types.ts"],"mappings":";;;;;AAKA;KAAY,eAAA;4BAEV,KAAA,UAEI;EAAJ,EAAA,EAAI,MAAA,SAAe,aAAA,GAEM;EAAzB,SAAA,GAAY,aAAA,EAJZ;EAMA,KAAA;AAAA"}
1
+ {"version":3,"file":"conditional-types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/conditional-types.ts"],"mappings":";;;;;AAKA;KAAY,eAAA;4BAEV,KAAA,UAEI;EAAJ,EAAA,EAAI,MAAA,SAAe,aAAA,GAEM;EAAzB,SAAA,GAAY,aAAA,EAJZ;EAMA,KAAA;AAAA"}
@@ -1,7 +1,7 @@
1
1
  import { Schema } from "./schema-types.mjs";
2
2
  import { SchemaRule } from "./rule-types.mjs";
3
3
 
4
- //#region ../seal/src/types/context-types.d.ts
4
+ //#region ../../packages/seal/src/types/context-types.d.ts
5
5
  type RuleTranslation = {
6
6
  rule: SchemaRule;
7
7
  context: SchemaContext;
@@ -31,7 +31,13 @@ type SchemaContext = {
31
31
  context?: Record<string, any>; /** Root context */
32
32
  rootContext?: Record<string, any>; /** Translation function for error messages */
33
33
  translateRule: (ruleTranslation: RuleTranslation) => string;
34
- translateAttribute: (attributeTranslation: AttributeTranslation) => string; /** Validation configurations */
34
+ translateAttribute: (attributeTranslation: AttributeTranslation) => string;
35
+ /**
36
+ * Set by a parent `ObjectValidator` when the key was absent and `value` is
37
+ * this field's own `.default()`. The receiving validator reads it once and
38
+ * clears it, so it never leaks into an array/tuple/record's item contexts.
39
+ */
40
+ valueIsDefault?: boolean; /** Validation configurations */
35
41
  configurations?: {
36
42
  firstErrorOnly?: boolean; /** Rendered as `:value` in error messages instead of the submitted input */
37
43
  redactValue?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"context-types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/context-types.ts"],"mappings":";;;;KAGY,eAAA;EACV,IAAA,EAAM,UAAA;EACN,OAAA,EAAS,aAAa;EACtB,UAAA;IACE,KAAA;IACA,IAAA;IACA,GAAA;IACA,KAAA;IAAA,CACC,GAAA;EAAA;AAAA;AAAA,KAIO,oBAAA;EACV,SAAA;EACA,OAAA,EAAS,aAAA;EACT,IAAA,EAAM,UAAU;AAAA;;AAPF;AAIhB;KASY,aAAA;yBAEV,SAAA,OAVA;EAYA,MAAA,OAXS;EAaT,KAAA,OAZM;EAcN,GAAA,UAdgB;EAgBhB,IAAA,UAVuB;EAYvB,MAAA,GAAS,MAAA,EAAA;EAET,OAAA,GAAU,MAAA,eAEI;EAAd,WAAA,GAAc,MAAA,eAG6B;EAD3C,aAAA,GAAgB,eAAA,EAAiB,eAAA;EACjC,kBAAA,GAAqB,oBAAA,EAAsB,oBAAA,aAjB3C;EAmBA,cAAA;IACE,cAAA,YAdF;IAgBE,WAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"context-types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/context-types.ts"],"mappings":";;;;KAGY,eAAA;EACV,IAAA,EAAM,UAAA;EACN,OAAA,EAAS,aAAa;EACtB,UAAA;IACE,KAAA;IACA,IAAA;IACA,GAAA;IACA,KAAA;IAAA,CACC,GAAA;EAAA;AAAA;AAAA,KAIO,oBAAA;EACV,SAAA;EACA,OAAA,EAAS,aAAA;EACT,IAAA,EAAM,UAAU;AAAA;;AAPF;AAIhB;KASY,aAAA;yBAEV,SAAA,OAVA;EAYA,MAAA,OAXS;EAaT,KAAA,OAZM;EAcN,GAAA,UAdgB;EAgBhB,IAAA,UAVuB;EAYvB,MAAA,GAAS,MAAA,EAAA;EAET,OAAA,GAAU,MAAA,eAEI;EAAd,WAAA,GAAc,MAAA,eAG6B;EAD3C,aAAA,GAAgB,eAAA,EAAiB,eAAA;EACjC,kBAAA,GAAqB,oBAAA,EAAsB,oBAAA;EAjB3C;;;;;EAuBA,cAAA,YAbS;EAeT,cAAA;IACE,cAAA,YAZF;IAcE,WAAA;EAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { SchemaContext } from "./context-types.mjs";
2
2
 
3
- //#region ../seal/src/types/data-transformer-types.d.ts
3
+ //#region ../../packages/seal/src/types/data-transformer-types.d.ts
4
4
  /**
5
5
  * Transformer callback signature
6
6
  * First param: the data to transform
@@ -1 +1 @@
1
- {"version":3,"file":"data-transformer-types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/data-transformer-types.ts"],"mappings":";;;;;AAOA;;;KAAY,mBAAA,IACV,IAAA,OACA,MAAA;EACE,OAAA;EACA,OAAA,EAAS,aAAA;AAAA,YAEF,OAAO;;;;;AAAA;KAON,yBAAA,IACV,IAAA,OACA,OAAA,EAAS,aAAA,WACA,OAAO;;;;;KAMN,yBAAA;EACV,SAAA,EAAW,mBAAmB;EAC9B,OAAA;AAAA"}
1
+ {"version":3,"file":"data-transformer-types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/data-transformer-types.ts"],"mappings":";;;;;AAOA;;;KAAY,mBAAA,IACV,IAAA,OACA,MAAA;EACE,OAAA;EACA,OAAA,EAAS,aAAA;AAAA,YAEF,OAAO;;;;;AAAA;KAON,yBAAA,IAA6B,IAAA,OAAW,OAAA,EAAS,aAAA,WAAwB,OAAO;;;;;KAMhF,yBAAA;EACV,SAAA,EAAW,mBAAmB;EAC9B,OAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region ../seal/src/types/date-types.d.ts
1
+ //#region ../../packages/seal/src/types/date-types.d.ts
2
2
  /**
3
3
  * Week day names for validation
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"date-types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/date-types.ts"],"mappings":";;AAGA;;KAAY,OAAA;;AAAO;AAYnB;cAAa,SAAA,EAAW,MAAM,CAAC,OAAA"}
1
+ {"version":3,"file":"date-types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/date-types.ts"],"mappings":";;AAGA;;KAAY,OAAA;;AAAO;AAYnB;cAAa,SAAA,EAAW,MAAM,CAAC,OAAA"}
@@ -1,4 +1,4 @@
1
- //#region ../seal/src/types/date-types.ts
1
+ //#region ../../packages/seal/src/types/date-types.ts
2
2
  /**
3
3
  * Week day numbers mapping
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"date-types.mjs","names":[],"sources":["../../../../../../../seal/src/types/date-types.ts"],"sourcesContent":["/**\n * Week day names for validation\n */\nexport type WeekDay =\n | \"sunday\"\n | \"monday\"\n | \"tuesday\"\n | \"wednesday\"\n | \"thursday\"\n | \"friday\"\n | \"saturday\";\n\n/**\n * Week day numbers mapping\n */\nexport const WEEK_DAYS: Record<WeekDay, number> = {\n sunday: 0,\n monday: 1,\n tuesday: 2,\n wednesday: 3,\n thursday: 4,\n friday: 5,\n saturday: 6,\n};\n"],"mappings":";;;;AAeA,MAAa,YAAqC;CAChD,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,WAAW;CACX,UAAU;CACV,QAAQ;CACR,UAAU;AACZ"}
1
+ {"version":3,"file":"date-types.mjs","names":[],"sources":["../../../../../../../../packages/seal/src/types/date-types.ts"],"sourcesContent":["/**\n * Week day names for validation\n */\nexport type WeekDay =\n | \"sunday\"\n | \"monday\"\n | \"tuesday\"\n | \"wednesday\"\n | \"thursday\"\n | \"friday\"\n | \"saturday\";\n\n/**\n * Week day numbers mapping\n */\nexport const WEEK_DAYS: Record<WeekDay, number> = {\n sunday: 0,\n monday: 1,\n tuesday: 2,\n wednesday: 3,\n thursday: 4,\n friday: 5,\n saturday: 6,\n};\n"],"mappings":";;;;AAeA,MAAa,YAAqC;CAChD,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,WAAW;CACX,UAAU;CACV,QAAQ;CACR,UAAU;AACZ"}
@@ -1,4 +1,4 @@
1
- //#region ../seal/src/types/file.types.d.ts
1
+ //#region ../../packages/seal/src/types/file.types.d.ts
2
2
  type FileSizeOption = {
3
3
  size: number;
4
4
  unit: "B" | "KB" | "MB" | "GB";
@@ -1 +1 @@
1
- {"version":3,"file":"file.types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/file.types.ts"],"mappings":";KAAY,cAAA;EACV,IAAA;EACA,IAAI;AAAA"}
1
+ {"version":3,"file":"file.types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/file.types.ts"],"mappings":";KAAY,cAAA;EACV,IAAA;EACA,IAAI;AAAA"}
@@ -16,7 +16,7 @@ import { LiteralValidator } from "../validators/literal-validator.mjs";
16
16
  import { ManagedValidator } from "../validators/managed-validator.mjs";
17
17
  import { ScalarValidator } from "../validators/scalar-validator.mjs";
18
18
  import { StringValidator } from "../validators/string-validator.mjs";
19
- //#region ../seal/src/types/inference-types.d.ts
19
+ //#region ../../packages/seal/src/types/inference-types.d.ts
20
20
  /**
21
21
  * Two inference shapes describe the two halves of the validation pipeline:
22
22
  *
@@ -107,6 +107,12 @@ type IsInputOptionalKey<V> = V extends {
107
107
  } | {
108
108
  hasCatch: true;
109
109
  } ? true : false;
110
+ /**
111
+ * Merge the optional-key and required-key halves of an object shape into one
112
+ * object type, so `Infer<>` reads (and compares) as a single literal instead
113
+ * of an intersection of two mapped types.
114
+ */
115
+ type Flatten<T> = { [K in keyof T]: T[K] } & {};
110
116
  /**
111
117
  * Apply `| null` widening when the validator type carries `{ isNullable: true }`.
112
118
  *
@@ -125,14 +131,14 @@ type WithNullable<V, T> = V extends {
125
131
  * walker on the parent class's type parameter creates a recursive class-base
126
132
  * reference when combined with brand-checks.
127
133
  */
128
- type InferOutputObjectShape<S extends Schema> = { [K in keyof S as IsOutputOptionalKey<S[K]> extends true ? K : never]?: Infer.Output<S[K]> } & { [K in keyof S as IsOutputOptionalKey<S[K]> extends true ? never : K]: Infer.Output<S[K]> };
134
+ type InferOutputObjectShape<S extends Schema> = Flatten<{ [K in keyof S as IsOutputOptionalKey<S[K]> extends true ? K : never]?: Infer.Output<S[K]> } & { [K in keyof S as IsOutputOptionalKey<S[K]> extends true ? never : K]: Infer.Output<S[K]> }>;
129
135
  /**
130
136
  * Compute the inferred *input* object shape for a Schema. Mirror of
131
137
  * `InferOutputObjectShape` but uses `IsInputOptionalKey` — fields with
132
138
  * `.default()` or `.catch()` (or `.optional()`) are all marked optional in
133
139
  * the input shape.
134
140
  */
135
- type InferInputObjectShape<S extends Schema> = { [K in keyof S as IsInputOptionalKey<S[K]> extends true ? K : never]?: Infer.Input<S[K]> } & { [K in keyof S as IsInputOptionalKey<S[K]> extends true ? never : K]: Infer.Input<S[K]> };
141
+ type InferInputObjectShape<S extends Schema> = Flatten<{ [K in keyof S as IsInputOptionalKey<S[K]> extends true ? K : never]?: Infer.Input<S[K]> } & { [K in keyof S as IsInputOptionalKey<S[K]> extends true ? never : K]: Infer.Input<S[K]> }>;
136
142
  /**
137
143
  * Bare `Infer<T>` defaults to `Infer.Input<T>`. Use `Infer.Output<T>` when
138
144
  * typing validated data (Cascade `Model<>` params, validate() returns).
@@ -153,7 +159,7 @@ declare namespace Infer {
153
159
  */
154
160
  type Output<T> = T extends LazyValidator<infer L> ? Output<L> : T extends DiscriminatedUnionValidator<any, infer Branches> ? Branches extends ReadonlyArray<infer B> ? B extends BaseValidator ? WithNullable<T, Output<B>> : never : never : T extends ObjectValidator<infer S> ? WithNullable<T, InferOutputObjectShape<S>> : T extends ArrayValidator ? T extends {
155
161
  validator: infer V extends BaseValidator;
156
- } ? WithNullable<T, Array<Output<V>>> : never : T extends LiteralValidator<infer V> ? WithNullable<T, V[number]> : T extends InstanceOfValidator<infer R> ? WithNullable<T, R> : T extends ComputedValidator<infer R> ? R : T extends ManagedValidator<infer R> ? R : T extends StandardSchemaV1<infer V, any> ? WithNullable<T, V> : T extends StringValidator ? WithNullable<T, string> : T extends IntValidator ? WithNullable<T, number> : T extends FloatValidator ? WithNullable<T, number> : T extends BooleanValidator ? WithNullable<T, boolean> : T extends DateValidator ? WithNullable<T, Date> : T extends ScalarValidator ? WithNullable<T, string | number | boolean> : T extends AnyValidator ? any : unknown;
162
+ } ? WithNullable<T, Array<Output<V>>> : never : T extends LiteralValidator<infer V> ? WithNullable<T, V[number]> : T extends InstanceOfValidator<infer R> ? WithNullable<T, R> : T extends ComputedValidator<infer R> ? R : T extends ManagedValidator<infer R> ? R : T extends StandardSchemaV1 ? WithNullable<T, StandardSchemaV1.InferOutput<T>> : T extends StringValidator ? WithNullable<T, string> : T extends IntValidator ? WithNullable<T, number> : T extends FloatValidator ? WithNullable<T, number> : T extends BooleanValidator ? WithNullable<T, boolean> : T extends DateValidator ? WithNullable<T, Date> : T extends ScalarValidator ? WithNullable<T, string | number | boolean> : T extends AnyValidator ? any : unknown;
157
163
  }
158
164
  /**
159
165
  * @deprecated Use `Infer.Input<T>` instead. Kept as an alias for one or two
@@ -173,6 +179,17 @@ type InferObjectShape<S extends Schema> = InferOutputObjectShape<S>;
173
179
  * @deprecated Use `IsOutputOptionalKey<V>` instead. Kept for back-compat.
174
180
  */
175
181
  type IsOptionalKey<V> = IsOutputOptionalKey<V>;
182
+ /**
183
+ * The `data` type `validate(schema, input)` returns on success.
184
+ *
185
+ * It is `Infer.Output<T>`, except where the schema's type does not describe
186
+ * its output: a bare `BaseValidator`, an `ObjectValidator` over the wide
187
+ * `Schema` (an index signature whose values are `any`/`unknown`), or anything
188
+ * whose output is `unknown`. Those stay `any`, as they were before
189
+ * `validate()` was typed, so untyped call sites keep compiling. A
190
+ * `v.record(...)` with a typed value keeps its `Record<string, …>` output.
191
+ */
192
+ type ValidatedOutput<T> = [Infer.Output<T>] extends [infer O] ? unknown extends O ? any : O extends object ? string extends keyof O ? unknown extends O[keyof O] ? any : O : O : O : never;
176
193
  //#endregion
177
- export { Infer, InferInput, InferInputObjectShape, InferObjectShape, InferOutput, InferOutputObjectShape, IsInputOptionalKey, IsOptionalKey, IsOutputOptionalKey };
194
+ export { Infer, InferInput, InferInputObjectShape, InferObjectShape, InferOutput, InferOutputObjectShape, IsInputOptionalKey, IsOptionalKey, IsOutputOptionalKey, ValidatedOutput };
178
195
  //# sourceMappingURL=inference-types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inference-types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/inference-types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"inference-types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/inference-types.ts"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { SchemaContext } from "./context-types.mjs";
2
2
 
3
- //#region ../seal/src/types/mutator-types.d.ts
3
+ //#region ../../packages/seal/src/types/mutator-types.d.ts
4
4
  /**
5
5
  * Mutator context
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mutator-types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/mutator-types.ts"],"mappings":";;;;;AAKA;KAAY,cAAA;EAAc,sBAExB,OAAA,EAAS,OAAA,EAFgB;EAIzB,GAAA,EAAK,aAAa;AAAA;;;;KAMR,OAAA,mBAA0B,IAAA,OAAW,OAAA,GAAU,cAAA,CAAe,OAAA,MAAa,OAAA;AAAvF;;;AAAA,KAKY,qBAAA;EAL+C,wBAOzD,MAAA,EAAQ,OAAA,CAAQ,OAAA,GAP4E;EAS5F,OAAA;IACE,OAAA,EAAS,OAAA;IACT,GAAA,EAAK,aAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"mutator-types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/mutator-types.ts"],"mappings":";;;;;AAKA;KAAY,cAAA;EAAc,sBAExB,OAAA,EAAS,OAAA,EAFgB;EAIzB,GAAA,EAAK,aAAa;AAAA;;;;KAMR,OAAA,mBAA0B,IAAA,OAAW,OAAA,GAAU,cAAA,CAAe,OAAA,MAAa,OAAA;AAAvF;;;AAAA,KAKY,qBAAA;EAL+C,wBAOzD,MAAA,EAAQ,OAAA,CAAQ,OAAA,GAP4E;EAS5F,OAAA;IACE,OAAA,EAAS,OAAA;IACT,GAAA,EAAK,aAAA;EAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region ../seal/src/types/result-types.d.ts
1
+ //#region ../../packages/seal/src/types/result-types.d.ts
2
2
  /**
3
3
  * Validation result
4
4
  */
@@ -11,6 +11,30 @@ type ValidationResult = {
11
11
  input: string;
12
12
  }[];
13
13
  };
14
+ /**
15
+ * What `validate()` returns: a result narrowed by `isValid`.
16
+ *
17
+ * On success `data` is the schema's validated output; on failure it is always
18
+ * `undefined` (a failed validation never hands back the input it rejected).
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const result = await validate(schema, input);
23
+ *
24
+ * if (!result.isValid) return result.errors;
25
+ *
26
+ * result.data; // Infer.Output<typeof schema>
27
+ * ```
28
+ */
29
+ type TypedValidationResult<TData> = {
30
+ isValid: true;
31
+ data: TData;
32
+ errors: ValidationResult["errors"];
33
+ } | {
34
+ isValid: false;
35
+ data: undefined;
36
+ errors: ValidationResult["errors"];
37
+ };
14
38
  //#endregion
15
- export { ValidationResult };
39
+ export { TypedValidationResult, ValidationResult };
16
40
  //# sourceMappingURL=result-types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/result-types.ts"],"mappings":";;AAGA;;KAAY,gBAAA;EAAgB,gCAE1B,OAAA,WAEA;EAAA,IAAA,OAIE;EAFF,MAAA;IAME,4BAJA,IAAA,UAIK;IAFL,KAAA;IAEA,KAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"result-types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/result-types.ts"],"mappings":";;AAGA;;KAAY,gBAAA;EAAgB,gCAE1B,OAAA,WAEA;EAAA,IAAA,OAIE;EAFF,MAAA;IAME,4BAJA,IAAA,UAIK;IAFL,KAAA,UAqB6B;IAnB7B,KAAA;EAAA;AAAA;;;;;;;;;;;;;;;AAqB2D;KAFnD,qBAAA;EACN,OAAA;EAAe,IAAA,EAAM,KAAA;EAAO,MAAA,EAAQ,gBAAA;AAAA;EACpC,OAAA;EAAgB,IAAA;EAAiB,MAAA,EAAQ,gBAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { SchemaContext } from "./context-types.mjs";
2
2
 
3
- //#region ../seal/src/types/rule-types.d.ts
3
+ //#region ../../packages/seal/src/types/rule-types.d.ts
4
4
  /**
5
5
  * Rule validation result
6
6
  */
@@ -9,8 +9,17 @@ type RuleResult = {
9
9
  error: string;
10
10
  input: string;
11
11
  path: string;
12
+ /**
13
+ * Report several errors for this rule, each at its own path. When set,
14
+ * it replaces `error`/`path` in the validation result.
15
+ */
16
+ errors?: Array<{
17
+ error: string;
18
+ path: string;
19
+ }>;
12
20
  } | {
13
- isValid: true;
21
+ isValid: true; /** Replace the validated value, including an explicit undefined output. */
22
+ data?: unknown;
14
23
  };
15
24
  type AttributeValue = string | number;
16
25
  type ValidationAttributesList = Record<string, AttributeValue | Record<string, AttributeValue>>;
@@ -1 +1 @@
1
- {"version":3,"file":"rule-types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/rule-types.ts"],"mappings":";;;;;AAKA;KAAY,UAAA;EAEN,OAAA;EACA,KAAA;EACA,KAAA;EACA,IAAA;AAAA;EAGA,OAAA;AAAA;AAAA,KAGD,cAAA;AAAA,KAEO,wBAAA,GAA2B,MAAA,SAErC,cAAA,GAAiB,MAAA,SAAe,cAAA;AAN5B;;;AAAA,KAYM,iBAAA,YAA6B,MAAM,SAAS,CAAA;AAVrC;AAEnB;;AAFmB,KAeP,UAAA,iBAA2B,iBAAA,GAAoB,iBAAA;EAXzD,gBAaA,IAAA,UAbiB;EAejB,WAAA,WAjB2C;EAmB3C,aAAA,YAnBqC;EAqBrC,QAAA,GACE,IAAA,EAAM,oBAAA,CAAqB,OAAA,GAC3B,KAAA,OACA,OAAA,EAAS,aAAA,KACN,OAAA,CAAQ,UAAA,GAvBI;EAyBjB,mBAAA,WAzB8C;EA2B9C,YAAA,WArBU;EAuBV,SAAA;AAAA;;;;KAMU,oBAAA,iBAAqC,iBAAA,GAAoB,iBAAA,IACnE,UAAA;EA9BuD;AAAA;AAKzD;;EA8BI,OAAA;IACE,YAAA;IACA,OAAA,EAAS,OAAA;IACT,cAAA,EAAgB,wBAAA;IAChB,oBAAA,EAAsB,MAAA,kBAvBf;IAyBP,iBAAA,EAAmB,MAAA,eAxBlB;IA0BD,kBAAA,EAAoB,MAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"rule-types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/rule-types.ts"],"mappings":";;;;;AAKA;KAAY,UAAA;EAEN,OAAA;EACA,KAAA;EACA,KAAA;EACA,IAAA;EADA;;;;EAMA,MAAA,GAAS,KAAK;IAAG,KAAA;IAAe,IAAA;EAAA;AAAA;EAGhC,OAAA,QAKD;EAHC,IAAA;AAAA;AAAA,KAGD,cAAA;AAAA,KAEO,wBAAA,GAA2B,MAAA,SAErC,cAAA,GAAiB,MAAA,SAAe,cAAA;AAFlC;;;AAAA,KAQY,iBAAA,YAA6B,MAAM,SAAS,CAAA;;;;KAK5C,UAAA,iBAA2B,iBAAA,GAAoB,iBAAA;EAbd,gBAe3C,IAAA,UAbA;EAeA,WAAA,WAfgC;EAiBhC,aAAA,YAjB8C;EAmB9C,QAAA,GACE,IAAA,EAAM,oBAAA,CAAqB,OAAA,GAC3B,KAAA,OACA,OAAA,EAAS,aAAA,KACN,OAAA,CAAQ,UAAA,GAjBc;EAmB3B,mBAAA,WAnB6C;EAqB7C,YAAA,WArBuC;EAuBvC,SAAA;AAAA;AAvBuD;AAKzD;;AALyD,KA6B7C,oBAAA,iBAAqC,iBAAA,GAAoB,iBAAA,IACnE,UAAA;EAzBqC;;;;EA8BnC,OAAA;IACE,YAAA;IACA,OAAA,EAAS,OAAA;IACT,cAAA,EAAgB,wBAAA;IAChB,oBAAA,EAAsB,MAAA,kBAlCL;IAoCjB,iBAAA,EAAmB,MAAA,eApCkC;IAsCrD,kBAAA,EAAoB,MAAA;EAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { BaseValidator } from "../validators/base-validator.mjs";
2
2
 
3
- //#region ../seal/src/types/schema-types.d.ts
3
+ //#region ../../packages/seal/src/types/schema-types.d.ts
4
4
  /**
5
5
  * Schema definition - a record of validators
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"schema-types.d.mts","names":[],"sources":["../../../../../../../seal/src/types/schema-types.ts"],"mappings":";;;;;AAKA;KAAY,MAAA,GAAS,MAAM,SAAS,aAAA"}
1
+ {"version":3,"file":"schema-types.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/types/schema-types.ts"],"mappings":";;;;;AAKA;KAAY,MAAA,GAAS,MAAM,SAAS,aAAA"}