@warlock.js/seal 4.0.174 → 4.1.2

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 (1226) hide show
  1. package/cjs/index.cjs +8900 -0
  2. package/cjs/index.cjs.map +1 -0
  3. package/esm/config.d.mts +47 -0
  4. package/esm/config.d.mts.map +1 -0
  5. package/esm/config.mjs +40 -0
  6. package/esm/config.mjs.map +1 -0
  7. package/esm/factory/index.d.mts +2 -0
  8. package/esm/factory/index.mjs +4 -0
  9. package/esm/factory/validate.d.mts +16 -0
  10. package/esm/factory/validate.d.mts.map +1 -0
  11. package/esm/factory/validate.mjs +29 -0
  12. package/esm/factory/validate.mjs.map +1 -0
  13. package/esm/factory/validators.d.mts +75 -0
  14. package/esm/factory/validators.d.mts.map +1 -0
  15. package/esm/factory/validators.mjs +132 -0
  16. package/esm/factory/validators.mjs.map +1 -0
  17. package/esm/helpers/date-helpers.d.mts +19 -0
  18. package/esm/helpers/date-helpers.d.mts.map +1 -0
  19. package/esm/helpers/date-helpers.mjs +24 -0
  20. package/esm/helpers/date-helpers.mjs.map +1 -0
  21. package/esm/helpers/file.utils.d.mts +12 -0
  22. package/esm/helpers/file.utils.d.mts.map +1 -0
  23. package/esm/helpers/file.utils.mjs +33 -0
  24. package/esm/helpers/file.utils.mjs.map +1 -0
  25. package/esm/helpers/get-field-value.d.mts +42 -0
  26. package/esm/helpers/get-field-value.d.mts.map +1 -0
  27. package/esm/helpers/get-field-value.mjs +45 -0
  28. package/esm/helpers/get-field-value.mjs.map +1 -0
  29. package/esm/helpers/index.mjs +7 -0
  30. package/esm/helpers/is-empty-value.mjs +10 -0
  31. package/esm/helpers/is-empty-value.mjs.map +1 -0
  32. package/esm/helpers/path-helpers.d.mts +8 -0
  33. package/esm/helpers/path-helpers.d.mts.map +1 -0
  34. package/esm/helpers/path-helpers.mjs +12 -0
  35. package/esm/helpers/path-helpers.mjs.map +1 -0
  36. package/esm/helpers/validation-helpers.d.mts +36 -0
  37. package/esm/helpers/validation-helpers.d.mts.map +1 -0
  38. package/esm/helpers/validation-helpers.mjs +72 -0
  39. package/esm/helpers/validation-helpers.mjs.map +1 -0
  40. package/esm/index.d.mts +96 -0
  41. package/esm/index.mjs +92 -0
  42. package/esm/mutators/array-mutators.d.mts +16 -0
  43. package/esm/mutators/array-mutators.d.mts.map +1 -0
  44. package/esm/mutators/array-mutators.mjs +40 -0
  45. package/esm/mutators/array-mutators.mjs.map +1 -0
  46. package/esm/mutators/date-mutators.d.mts +43 -0
  47. package/esm/mutators/date-mutators.d.mts.map +1 -0
  48. package/esm/mutators/date-mutators.mjs +113 -0
  49. package/esm/mutators/date-mutators.mjs.map +1 -0
  50. package/esm/mutators/index.mjs +8 -0
  51. package/esm/mutators/number-mutators.d.mts +26 -0
  52. package/esm/mutators/number-mutators.d.mts.map +1 -0
  53. package/esm/mutators/number-mutators.mjs +53 -0
  54. package/esm/mutators/number-mutators.mjs.map +1 -0
  55. package/esm/mutators/object-mutators.d.mts +12 -0
  56. package/esm/mutators/object-mutators.d.mts.map +1 -0
  57. package/esm/mutators/object-mutators.mjs +37 -0
  58. package/esm/mutators/object-mutators.mjs.map +1 -0
  59. package/esm/mutators/scalar-mutators.d.mts +7 -0
  60. package/esm/mutators/scalar-mutators.d.mts.map +1 -0
  61. package/esm/mutators/scalar-mutators.mjs +9 -0
  62. package/esm/mutators/scalar-mutators.mjs.map +1 -0
  63. package/esm/mutators/string-mutators.d.mts +76 -0
  64. package/esm/mutators/string-mutators.d.mts.map +1 -0
  65. package/esm/mutators/string-mutators.mjs +169 -0
  66. package/esm/mutators/string-mutators.mjs.map +1 -0
  67. package/esm/plugins/plugin-system.d.mts +71 -0
  68. package/esm/plugins/plugin-system.d.mts.map +1 -0
  69. package/esm/plugins/plugin-system.mjs +64 -0
  70. package/esm/plugins/plugin-system.mjs.map +1 -0
  71. package/esm/rules/array/array-rules.d.mts +16 -0
  72. package/esm/rules/array/array-rules.d.mts.map +1 -0
  73. package/esm/rules/array/array-rules.mjs +41 -0
  74. package/esm/rules/array/array-rules.mjs.map +1 -0
  75. package/esm/rules/array/index.mjs +3 -0
  76. package/esm/rules/color/color-rules.d.mts +34 -0
  77. package/esm/rules/color/color-rules.d.mts.map +1 -0
  78. package/esm/rules/color/color-rules.mjs +104 -0
  79. package/esm/rules/color/color-rules.mjs.map +1 -0
  80. package/esm/rules/color/index.mjs +3 -0
  81. package/esm/rules/common/enum.d.mts +30 -0
  82. package/esm/rules/common/enum.d.mts.map +1 -0
  83. package/esm/rules/common/enum.mjs +77 -0
  84. package/esm/rules/common/enum.mjs.map +1 -0
  85. package/esm/rules/common/equals-field-rules.d.mts +22 -0
  86. package/esm/rules/common/equals-field-rules.d.mts.map +1 -0
  87. package/esm/rules/common/equals-field-rules.mjs +42 -0
  88. package/esm/rules/common/equals-field-rules.mjs.map +1 -0
  89. package/esm/rules/common/index.mjs +8 -0
  90. package/esm/rules/common/instanceof.d.mts +16 -0
  91. package/esm/rules/common/instanceof.d.mts.map +1 -0
  92. package/esm/rules/common/instanceof.mjs +23 -0
  93. package/esm/rules/common/instanceof.mjs.map +1 -0
  94. package/esm/rules/common/literal.d.mts +16 -0
  95. package/esm/rules/common/literal.d.mts.map +1 -0
  96. package/esm/rules/common/literal.mjs +29 -0
  97. package/esm/rules/common/literal.mjs.map +1 -0
  98. package/esm/rules/common/type-rules.d.mts +42 -0
  99. package/esm/rules/common/type-rules.d.mts.map +1 -0
  100. package/esm/rules/common/type-rules.mjs +112 -0
  101. package/esm/rules/common/type-rules.mjs.map +1 -0
  102. package/esm/rules/common/unknown-key.d.mts +14 -0
  103. package/esm/rules/common/unknown-key.d.mts.map +1 -0
  104. package/esm/rules/common/unknown-key.mjs +25 -0
  105. package/esm/rules/common/unknown-key.mjs.map +1 -0
  106. package/esm/rules/conditional/forbidden-if-rules.d.mts +58 -0
  107. package/esm/rules/conditional/forbidden-if-rules.d.mts.map +1 -0
  108. package/esm/rules/conditional/forbidden-if-rules.mjs +116 -0
  109. package/esm/rules/conditional/forbidden-if-rules.mjs.map +1 -0
  110. package/esm/rules/conditional/index.mjs +12 -0
  111. package/esm/rules/conditional/present-if-rules.d.mts +49 -0
  112. package/esm/rules/conditional/present-if-rules.d.mts.map +1 -0
  113. package/esm/rules/conditional/present-if-rules.mjs +97 -0
  114. package/esm/rules/conditional/present-if-rules.mjs.map +1 -0
  115. package/esm/rules/conditional/present-unless-rules.d.mts +15 -0
  116. package/esm/rules/conditional/present-unless-rules.d.mts.map +1 -0
  117. package/esm/rules/conditional/present-unless-rules.mjs +30 -0
  118. package/esm/rules/conditional/present-unless-rules.mjs.map +1 -0
  119. package/esm/rules/conditional/present-with-rules.d.mts +30 -0
  120. package/esm/rules/conditional/present-with-rules.d.mts.map +1 -0
  121. package/esm/rules/conditional/present-with-rules.mjs +75 -0
  122. package/esm/rules/conditional/present-with-rules.mjs.map +1 -0
  123. package/esm/rules/conditional/present-without-rules.d.mts +30 -0
  124. package/esm/rules/conditional/present-without-rules.d.mts.map +1 -0
  125. package/esm/rules/conditional/present-without-rules.mjs +75 -0
  126. package/esm/rules/conditional/present-without-rules.mjs.map +1 -0
  127. package/esm/rules/conditional/required-if-rules.d.mts +81 -0
  128. package/esm/rules/conditional/required-if-rules.d.mts.map +1 -0
  129. package/esm/rules/conditional/required-if-rules.mjs +203 -0
  130. package/esm/rules/conditional/required-if-rules.mjs.map +1 -0
  131. package/esm/rules/conditional/required-unless-rules.d.mts +15 -0
  132. package/esm/rules/conditional/required-unless-rules.d.mts.map +1 -0
  133. package/esm/rules/conditional/required-unless-rules.mjs +31 -0
  134. package/esm/rules/conditional/required-unless-rules.mjs.map +1 -0
  135. package/esm/rules/conditional/required-when-rule.d.mts +23 -0
  136. package/esm/rules/conditional/required-when-rule.d.mts.map +1 -0
  137. package/esm/rules/conditional/required-when-rule.mjs +32 -0
  138. package/esm/rules/conditional/required-when-rule.mjs.map +1 -0
  139. package/esm/rules/conditional/required-with-rules.d.mts +30 -0
  140. package/esm/rules/conditional/required-with-rules.d.mts.map +1 -0
  141. package/esm/rules/conditional/required-with-rules.mjs +66 -0
  142. package/esm/rules/conditional/required-with-rules.mjs.map +1 -0
  143. package/esm/rules/conditional/required-without-rules.d.mts +30 -0
  144. package/esm/rules/conditional/required-without-rules.d.mts.map +1 -0
  145. package/esm/rules/conditional/required-without-rules.mjs +66 -0
  146. package/esm/rules/conditional/required-without-rules.mjs.map +1 -0
  147. package/esm/rules/core/equal.d.mts +12 -0
  148. package/esm/rules/core/equal.d.mts.map +1 -0
  149. package/esm/rules/core/equal.mjs +22 -0
  150. package/esm/rules/core/equal.mjs.map +1 -0
  151. package/esm/rules/core/forbidden.d.mts +10 -0
  152. package/esm/rules/core/forbidden.d.mts.map +1 -0
  153. package/esm/rules/core/forbidden.mjs +20 -0
  154. package/esm/rules/core/forbidden.mjs.map +1 -0
  155. package/esm/rules/core/index.mjs +7 -0
  156. package/esm/rules/core/required.d.mts +15 -0
  157. package/esm/rules/core/required.d.mts.map +1 -0
  158. package/esm/rules/core/required.mjs +36 -0
  159. package/esm/rules/core/required.mjs.map +1 -0
  160. package/esm/rules/core/union.d.mts +13 -0
  161. package/esm/rules/core/union.d.mts.map +1 -0
  162. package/esm/rules/core/union.mjs +30 -0
  163. package/esm/rules/core/union.mjs.map +1 -0
  164. package/esm/rules/core/when.d.mts +11 -0
  165. package/esm/rules/core/when.d.mts.map +1 -0
  166. package/esm/rules/core/when.mjs +36 -0
  167. package/esm/rules/core/when.mjs.map +1 -0
  168. package/esm/rules/date/date-comparison-rules.d.mts +29 -0
  169. package/esm/rules/date/date-comparison-rules.d.mts.map +1 -0
  170. package/esm/rules/date/date-comparison-rules.mjs +78 -0
  171. package/esm/rules/date/date-comparison-rules.mjs.map +1 -0
  172. package/esm/rules/date/date-day-rules.d.mts +25 -0
  173. package/esm/rules/date/date-day-rules.d.mts.map +1 -0
  174. package/esm/rules/date/date-day-rules.mjs +61 -0
  175. package/esm/rules/date/date-day-rules.mjs.map +1 -0
  176. package/esm/rules/date/date-field-comparison-rules.d.mts +32 -0
  177. package/esm/rules/date/date-field-comparison-rules.d.mts.map +1 -0
  178. package/esm/rules/date/date-field-comparison-rules.mjs +81 -0
  179. package/esm/rules/date/date-field-comparison-rules.mjs.map +1 -0
  180. package/esm/rules/date/date-period-rules.d.mts +127 -0
  181. package/esm/rules/date/date-period-rules.d.mts.map +1 -0
  182. package/esm/rules/date/date-period-rules.mjs +398 -0
  183. package/esm/rules/date/date-period-rules.mjs.map +1 -0
  184. package/esm/rules/date/date-relative-rules.d.mts +24 -0
  185. package/esm/rules/date/date-relative-rules.d.mts.map +1 -0
  186. package/esm/rules/date/date-relative-rules.mjs +55 -0
  187. package/esm/rules/date/date-relative-rules.mjs.map +1 -0
  188. package/esm/rules/date/date-special-rules.d.mts +24 -0
  189. package/esm/rules/date/date-special-rules.d.mts.map +1 -0
  190. package/esm/rules/date/date-special-rules.mjs +58 -0
  191. package/esm/rules/date/date-special-rules.mjs.map +1 -0
  192. package/esm/rules/date/date.d.mts +97 -0
  193. package/esm/rules/date/date.d.mts.map +1 -0
  194. package/esm/rules/date/date.mjs +234 -0
  195. package/esm/rules/date/date.mjs.map +1 -0
  196. package/esm/rules/date/index.mjs +9 -0
  197. package/esm/rules/file/dimensions.d.mts +30 -0
  198. package/esm/rules/file/dimensions.d.mts.map +1 -0
  199. package/esm/rules/file/dimensions.mjs +56 -0
  200. package/esm/rules/file/dimensions.mjs.map +1 -0
  201. package/esm/rules/file/file-size.d.mts +18 -0
  202. package/esm/rules/file/file-size.d.mts.map +1 -0
  203. package/esm/rules/file/file-size.mjs +33 -0
  204. package/esm/rules/file/file-size.mjs.map +1 -0
  205. package/esm/rules/file/index.mjs +4 -0
  206. package/esm/rules/index.mjs +57 -0
  207. package/esm/rules/length/index.mjs +3 -0
  208. package/esm/rules/length/length-rules.d.mts +53 -0
  209. package/esm/rules/length/length-rules.d.mts.map +1 -0
  210. package/esm/rules/length/length-rules.mjs +98 -0
  211. package/esm/rules/length/length-rules.mjs.map +1 -0
  212. package/esm/rules/number/index.mjs +3 -0
  213. package/esm/rules/number/number-rules.d.mts +69 -0
  214. package/esm/rules/number/number-rules.d.mts.map +1 -0
  215. package/esm/rules/number/number-rules.mjs +196 -0
  216. package/esm/rules/number/number-rules.mjs.map +1 -0
  217. package/esm/rules/scalar/accepted-rule.mjs +116 -0
  218. package/esm/rules/scalar/accepted-rule.mjs.map +1 -0
  219. package/esm/rules/scalar/declined-rule.mjs +116 -0
  220. package/esm/rules/scalar/declined-rule.mjs.map +1 -0
  221. package/esm/rules/scalar/index.mjs +4 -0
  222. package/esm/rules/string/alpha.d.mts +18 -0
  223. package/esm/rules/string/alpha.d.mts.map +1 -0
  224. package/esm/rules/string/alpha.mjs +41 -0
  225. package/esm/rules/string/alpha.mjs.map +1 -0
  226. package/esm/rules/string/credit-card.d.mts +10 -0
  227. package/esm/rules/string/credit-card.d.mts.map +1 -0
  228. package/esm/rules/string/credit-card.mjs +32 -0
  229. package/esm/rules/string/credit-card.mjs.map +1 -0
  230. package/esm/rules/string/email.d.mts +10 -0
  231. package/esm/rules/string/email.d.mts.map +1 -0
  232. package/esm/rules/string/email.mjs +20 -0
  233. package/esm/rules/string/email.mjs.map +1 -0
  234. package/esm/rules/string/id-formats.d.mts +54 -0
  235. package/esm/rules/string/id-formats.d.mts.map +1 -0
  236. package/esm/rules/string/id-formats.mjs +104 -0
  237. package/esm/rules/string/id-formats.mjs.map +1 -0
  238. package/esm/rules/string/index.mjs +13 -0
  239. package/esm/rules/string/ip.d.mts +18 -0
  240. package/esm/rules/string/ip.d.mts.map +1 -0
  241. package/esm/rules/string/ip.mjs +42 -0
  242. package/esm/rules/string/ip.mjs.map +1 -0
  243. package/esm/rules/string/matches.d.mts +12 -0
  244. package/esm/rules/string/matches.d.mts.map +1 -0
  245. package/esm/rules/string/matches.mjs +21 -0
  246. package/esm/rules/string/matches.mjs.map +1 -0
  247. package/esm/rules/string/pattern.d.mts +12 -0
  248. package/esm/rules/string/pattern.d.mts.map +1 -0
  249. package/esm/rules/string/pattern.mjs +20 -0
  250. package/esm/rules/string/pattern.mjs.map +1 -0
  251. package/esm/rules/string/string-comparison.d.mts +30 -0
  252. package/esm/rules/string/string-comparison.d.mts.map +1 -0
  253. package/esm/rules/string/string-comparison.mjs +56 -0
  254. package/esm/rules/string/string-comparison.mjs.map +1 -0
  255. package/esm/rules/string/strong-password-rule.d.mts +18 -0
  256. package/esm/rules/string/strong-password-rule.d.mts.map +1 -0
  257. package/esm/rules/string/strong-password-rule.mjs +31 -0
  258. package/esm/rules/string/strong-password-rule.mjs.map +1 -0
  259. package/esm/rules/string/url.d.mts +10 -0
  260. package/esm/rules/string/url.d.mts.map +1 -0
  261. package/esm/rules/string/url.mjs +23 -0
  262. package/esm/rules/string/url.mjs.map +1 -0
  263. package/esm/rules/string/without-whitespace.d.mts +10 -0
  264. package/esm/rules/string/without-whitespace.d.mts.map +1 -0
  265. package/esm/rules/string/without-whitespace.mjs +19 -0
  266. package/esm/rules/string/without-whitespace.mjs.map +1 -0
  267. package/esm/standard-schema/json-schema.d.mts +65 -0
  268. package/esm/standard-schema/json-schema.d.mts.map +1 -0
  269. package/esm/standard-schema/json-schema.mjs +81 -0
  270. package/esm/standard-schema/json-schema.mjs.map +1 -0
  271. package/esm/standard-schema/map-result.d.mts +22 -0
  272. package/esm/standard-schema/map-result.d.mts.map +1 -0
  273. package/esm/standard-schema/map-result.mjs +26 -0
  274. package/esm/standard-schema/map-result.mjs.map +1 -0
  275. package/esm/standard-schema/types.d.mts +96 -0
  276. package/esm/standard-schema/types.d.mts.map +1 -0
  277. package/esm/types/conditional-types.d.mts +15 -0
  278. package/esm/types/conditional-types.d.mts.map +1 -0
  279. package/esm/types/context-types.d.mts +41 -0
  280. package/esm/types/context-types.d.mts.map +1 -0
  281. package/esm/types/data-transformer-types.d.mts +29 -0
  282. package/esm/types/data-transformer-types.d.mts.map +1 -0
  283. package/esm/types/date-types.d.mts +12 -0
  284. package/esm/types/date-types.d.mts.map +1 -0
  285. package/esm/types/date-types.mjs +17 -0
  286. package/esm/types/date-types.mjs.map +1 -0
  287. package/esm/types/file.types.d.mts +8 -0
  288. package/esm/types/file.types.d.mts.map +1 -0
  289. package/esm/types/inference-types.d.mts +178 -0
  290. package/esm/types/inference-types.d.mts.map +1 -0
  291. package/esm/types/mutator-types.d.mts +27 -0
  292. package/esm/types/mutator-types.d.mts.map +1 -0
  293. package/esm/types/result-types.d.mts +16 -0
  294. package/esm/types/result-types.d.mts.map +1 -0
  295. package/esm/types/rule-types.d.mts +52 -0
  296. package/esm/types/rule-types.d.mts.map +1 -0
  297. package/esm/types/schema-types.d.mts +10 -0
  298. package/esm/types/schema-types.d.mts.map +1 -0
  299. package/esm/validators/any-validator.d.mts +33 -0
  300. package/esm/validators/any-validator.d.mts.map +1 -0
  301. package/esm/validators/any-validator.mjs +35 -0
  302. package/esm/validators/any-validator.mjs.map +1 -0
  303. package/esm/validators/array-validator.d.mts +82 -0
  304. package/esm/validators/array-validator.d.mts.map +1 -0
  305. package/esm/validators/array-validator.mjs +176 -0
  306. package/esm/validators/array-validator.mjs.map +1 -0
  307. package/esm/validators/base-validator.d.mts +491 -0
  308. package/esm/validators/base-validator.d.mts.map +1 -0
  309. package/esm/validators/base-validator.mjs +656 -0
  310. package/esm/validators/base-validator.mjs.map +1 -0
  311. package/esm/validators/boolean-validator.d.mts +71 -0
  312. package/esm/validators/boolean-validator.d.mts.map +1 -0
  313. package/esm/validators/boolean-validator.mjs +126 -0
  314. package/esm/validators/boolean-validator.mjs.map +1 -0
  315. package/esm/validators/computed-validator.d.mts +80 -0
  316. package/esm/validators/computed-validator.d.mts.map +1 -0
  317. package/esm/validators/computed-validator.mjs +116 -0
  318. package/esm/validators/computed-validator.mjs.map +1 -0
  319. package/esm/validators/date-validator.d.mts +336 -0
  320. package/esm/validators/date-validator.d.mts.map +1 -0
  321. package/esm/validators/date-validator.mjs +637 -0
  322. package/esm/validators/date-validator.mjs.map +1 -0
  323. package/esm/validators/discriminated-union-validator.d.mts +67 -0
  324. package/esm/validators/discriminated-union-validator.d.mts.map +1 -0
  325. package/esm/validators/discriminated-union-validator.mjs +125 -0
  326. package/esm/validators/discriminated-union-validator.mjs.map +1 -0
  327. package/esm/validators/float-validator.d.mts +12 -0
  328. package/esm/validators/float-validator.d.mts.map +1 -0
  329. package/esm/validators/float-validator.mjs +18 -0
  330. package/esm/validators/float-validator.mjs.map +1 -0
  331. package/esm/validators/index.d.mts +22 -0
  332. package/esm/validators/index.mjs +28 -0
  333. package/esm/validators/instanceof-validator.d.mts +48 -0
  334. package/esm/validators/instanceof-validator.d.mts.map +1 -0
  335. package/esm/validators/instanceof-validator.mjs +63 -0
  336. package/esm/validators/instanceof-validator.mjs.map +1 -0
  337. package/esm/validators/int-validator.d.mts +23 -0
  338. package/esm/validators/int-validator.d.mts.map +1 -0
  339. package/esm/validators/int-validator.mjs +30 -0
  340. package/esm/validators/int-validator.mjs.map +1 -0
  341. package/esm/validators/lazy-validator.d.mts +70 -0
  342. package/esm/validators/lazy-validator.d.mts.map +1 -0
  343. package/esm/validators/lazy-validator.mjs +85 -0
  344. package/esm/validators/lazy-validator.mjs.map +1 -0
  345. package/esm/validators/literal-validator.d.mts +52 -0
  346. package/esm/validators/literal-validator.d.mts.map +1 -0
  347. package/esm/validators/literal-validator.mjs +67 -0
  348. package/esm/validators/literal-validator.mjs.map +1 -0
  349. package/esm/validators/managed-validator.d.mts +42 -0
  350. package/esm/validators/managed-validator.d.mts.map +1 -0
  351. package/esm/validators/managed-validator.mjs +39 -0
  352. package/esm/validators/managed-validator.mjs.map +1 -0
  353. package/esm/validators/methods/equality-conditional-methods.d.mts +90 -0
  354. package/esm/validators/methods/equality-conditional-methods.d.mts.map +1 -0
  355. package/esm/validators/methods/equality-conditional-methods.mjs +129 -0
  356. package/esm/validators/methods/equality-conditional-methods.mjs.map +1 -0
  357. package/esm/validators/methods/forbidden-methods.d.mts +58 -0
  358. package/esm/validators/methods/forbidden-methods.d.mts.map +1 -0
  359. package/esm/validators/methods/forbidden-methods.mjs +131 -0
  360. package/esm/validators/methods/forbidden-methods.mjs.map +1 -0
  361. package/esm/validators/methods/present-methods.d.mts +102 -0
  362. package/esm/validators/methods/present-methods.d.mts.map +1 -0
  363. package/esm/validators/methods/present-methods.mjs +235 -0
  364. package/esm/validators/methods/present-methods.mjs.map +1 -0
  365. package/esm/validators/methods/required-methods.d.mts +193 -0
  366. package/esm/validators/methods/required-methods.d.mts.map +1 -0
  367. package/esm/validators/methods/required-methods.mjs +347 -0
  368. package/esm/validators/methods/required-methods.mjs.map +1 -0
  369. package/esm/validators/number-validator.d.mts +170 -0
  370. package/esm/validators/number-validator.d.mts.map +1 -0
  371. package/esm/validators/number-validator.mjs +303 -0
  372. package/esm/validators/number-validator.mjs.map +1 -0
  373. package/esm/validators/numeric-validator.d.mts +19 -0
  374. package/esm/validators/numeric-validator.d.mts.map +1 -0
  375. package/esm/validators/numeric-validator.mjs +27 -0
  376. package/esm/validators/numeric-validator.mjs.map +1 -0
  377. package/esm/validators/object-validator.d.mts +253 -0
  378. package/esm/validators/object-validator.d.mts.map +1 -0
  379. package/esm/validators/object-validator.mjs +440 -0
  380. package/esm/validators/object-validator.mjs.map +1 -0
  381. package/esm/validators/primitive-validator.d.mts +74 -0
  382. package/esm/validators/primitive-validator.d.mts.map +1 -0
  383. package/esm/validators/primitive-validator.mjs +89 -0
  384. package/esm/validators/primitive-validator.mjs.map +1 -0
  385. package/esm/validators/record-validator.d.mts +63 -0
  386. package/esm/validators/record-validator.d.mts.map +1 -0
  387. package/esm/validators/record-validator.mjs +111 -0
  388. package/esm/validators/record-validator.mjs.map +1 -0
  389. package/esm/validators/scalar-validator.d.mts +97 -0
  390. package/esm/validators/scalar-validator.d.mts.map +1 -0
  391. package/esm/validators/scalar-validator.mjs +172 -0
  392. package/esm/validators/scalar-validator.mjs.map +1 -0
  393. package/esm/validators/string-validator.d.mts +224 -0
  394. package/esm/validators/string-validator.d.mts.map +1 -0
  395. package/esm/validators/string-validator.mjs +443 -0
  396. package/esm/validators/string-validator.mjs.map +1 -0
  397. package/esm/validators/tuple-validator.d.mts +66 -0
  398. package/esm/validators/tuple-validator.d.mts.map +1 -0
  399. package/esm/validators/tuple-validator.mjs +133 -0
  400. package/esm/validators/tuple-validator.mjs.map +1 -0
  401. package/esm/validators/union-validator.d.mts +59 -0
  402. package/esm/validators/union-validator.d.mts.map +1 -0
  403. package/esm/validators/union-validator.mjs +66 -0
  404. package/esm/validators/union-validator.mjs.map +1 -0
  405. package/llms-full.txt +2175 -0
  406. package/llms.txt +17 -0
  407. package/package.json +37 -48
  408. package/skills/bridge-standard-schema/SKILL.md +138 -0
  409. package/skills/compose-seal-modifiers/SKILL.md +271 -0
  410. package/skills/define-structural-shape/SKILL.md +138 -0
  411. package/skills/define-structural-shape/array-methods.md +78 -0
  412. package/skills/define-structural-shape/object-methods.md +166 -0
  413. package/skills/extend-seal-with-plugins/SKILL.md +178 -0
  414. package/skills/generate-json-schema/SKILL.md +143 -0
  415. package/skills/handle-seal-errors/SKILL.md +148 -0
  416. package/skills/overview/SKILL.md +72 -0
  417. package/skills/pick-seal-primitive/SKILL.md +133 -0
  418. package/skills/pick-seal-primitive/boolean-methods.md +71 -0
  419. package/skills/pick-seal-primitive/date-methods.md +175 -0
  420. package/skills/pick-seal-primitive/number-methods.md +123 -0
  421. package/skills/pick-seal-primitive/string-methods.md +169 -0
  422. package/skills/seal-basics/SKILL.md +106 -0
  423. package/cjs/config.d.ts +0 -48
  424. package/cjs/config.d.ts.map +0 -1
  425. package/cjs/config.js +0 -42
  426. package/cjs/config.js.map +0 -1
  427. package/cjs/factory/index.d.ts +0 -3
  428. package/cjs/factory/index.d.ts.map +0 -1
  429. package/cjs/factory/validate.d.ts +0 -8
  430. package/cjs/factory/validate.d.ts.map +0 -1
  431. package/cjs/factory/validate.js +0 -23
  432. package/cjs/factory/validate.js.map +0 -1
  433. package/cjs/factory/validators.d.ts +0 -56
  434. package/cjs/factory/validators.d.ts.map +0 -1
  435. package/cjs/factory/validators.js +0 -47
  436. package/cjs/factory/validators.js.map +0 -1
  437. package/cjs/helpers/date-helpers.d.ts +0 -16
  438. package/cjs/helpers/date-helpers.d.ts.map +0 -1
  439. package/cjs/helpers/date-helpers.js +0 -20
  440. package/cjs/helpers/date-helpers.js.map +0 -1
  441. package/cjs/helpers/file.utils.d.ts +0 -8
  442. package/cjs/helpers/file.utils.d.ts.map +0 -1
  443. package/cjs/helpers/file.utils.js +0 -29
  444. package/cjs/helpers/file.utils.js.map +0 -1
  445. package/cjs/helpers/get-field-value.d.ts +0 -37
  446. package/cjs/helpers/get-field-value.d.ts.map +0 -1
  447. package/cjs/helpers/get-field-value.js +0 -40
  448. package/cjs/helpers/get-field-value.js.map +0 -1
  449. package/cjs/helpers/index.d.ts +0 -6
  450. package/cjs/helpers/index.d.ts.map +0 -1
  451. package/cjs/helpers/is-empty-value.d.ts +0 -2
  452. package/cjs/helpers/is-empty-value.d.ts.map +0 -1
  453. package/cjs/helpers/is-empty-value.js +0 -3
  454. package/cjs/helpers/is-empty-value.js.map +0 -1
  455. package/cjs/helpers/path-helpers.d.ts +0 -5
  456. package/cjs/helpers/path-helpers.d.ts.map +0 -1
  457. package/cjs/helpers/path-helpers.js +0 -8
  458. package/cjs/helpers/path-helpers.js.map +0 -1
  459. package/cjs/helpers/validation-helpers.d.ts +0 -26
  460. package/cjs/helpers/validation-helpers.d.ts.map +0 -1
  461. package/cjs/helpers/validation-helpers.js +0 -74
  462. package/cjs/helpers/validation-helpers.js.map +0 -1
  463. package/cjs/index.d.ts +0 -30
  464. package/cjs/index.d.ts.map +0 -1
  465. package/cjs/index.js +0 -1
  466. package/cjs/index.js.map +0 -1
  467. package/cjs/mutators/array-mutators.d.ts +0 -12
  468. package/cjs/mutators/array-mutators.d.ts.map +0 -1
  469. package/cjs/mutators/array-mutators.js +0 -37
  470. package/cjs/mutators/array-mutators.js.map +0 -1
  471. package/cjs/mutators/date-mutators.d.ts +0 -39
  472. package/cjs/mutators/date-mutators.d.ts.map +0 -1
  473. package/cjs/mutators/date-mutators.js +0 -120
  474. package/cjs/mutators/date-mutators.js.map +0 -1
  475. package/cjs/mutators/index.d.ts +0 -7
  476. package/cjs/mutators/index.d.ts.map +0 -1
  477. package/cjs/mutators/number-mutators.d.ts +0 -22
  478. package/cjs/mutators/number-mutators.d.ts.map +0 -1
  479. package/cjs/mutators/number-mutators.js +0 -53
  480. package/cjs/mutators/number-mutators.js.map +0 -1
  481. package/cjs/mutators/object-mutators.d.ts +0 -8
  482. package/cjs/mutators/object-mutators.d.ts.map +0 -1
  483. package/cjs/mutators/object-mutators.js +0 -48
  484. package/cjs/mutators/object-mutators.js.map +0 -1
  485. package/cjs/mutators/scalar-mutators.d.ts +0 -3
  486. package/cjs/mutators/scalar-mutators.d.ts.map +0 -1
  487. package/cjs/mutators/scalar-mutators.js +0 -6
  488. package/cjs/mutators/scalar-mutators.js.map +0 -1
  489. package/cjs/mutators/string-mutators.d.ts +0 -72
  490. package/cjs/mutators/string-mutators.d.ts.map +0 -1
  491. package/cjs/mutators/string-mutators.js +0 -193
  492. package/cjs/mutators/string-mutators.js.map +0 -1
  493. package/cjs/plugins/index.d.ts +0 -7
  494. package/cjs/plugins/index.d.ts.map +0 -1
  495. package/cjs/plugins/plugin-system.d.ts +0 -71
  496. package/cjs/plugins/plugin-system.d.ts.map +0 -1
  497. package/cjs/plugins/plugin-system.js +0 -67
  498. package/cjs/plugins/plugin-system.js.map +0 -1
  499. package/cjs/rules/array/array-rules.d.ts +0 -12
  500. package/cjs/rules/array/array-rules.d.ts.map +0 -1
  501. package/cjs/rules/array/array-rules.js +0 -45
  502. package/cjs/rules/array/array-rules.js.map +0 -1
  503. package/cjs/rules/array/index.d.ts +0 -2
  504. package/cjs/rules/array/index.d.ts.map +0 -1
  505. package/cjs/rules/color/color-rules.d.ts +0 -30
  506. package/cjs/rules/color/color-rules.d.ts.map +0 -1
  507. package/cjs/rules/color/color-rules.js +0 -120
  508. package/cjs/rules/color/color-rules.js.map +0 -1
  509. package/cjs/rules/color/index.d.ts +0 -2
  510. package/cjs/rules/color/index.d.ts.map +0 -1
  511. package/cjs/rules/common/enum.d.ts +0 -26
  512. package/cjs/rules/common/enum.d.ts.map +0 -1
  513. package/cjs/rules/common/enum.js +0 -69
  514. package/cjs/rules/common/enum.js.map +0 -1
  515. package/cjs/rules/common/equals-field-rules.d.ts +0 -18
  516. package/cjs/rules/common/equals-field-rules.d.ts.map +0 -1
  517. package/cjs/rules/common/equals-field-rules.js +0 -39
  518. package/cjs/rules/common/equals-field-rules.js.map +0 -1
  519. package/cjs/rules/common/index.d.ts +0 -5
  520. package/cjs/rules/common/index.d.ts.map +0 -1
  521. package/cjs/rules/common/type-rules.d.ts +0 -38
  522. package/cjs/rules/common/type-rules.d.ts.map +0 -1
  523. package/cjs/rules/common/type-rules.js +0 -117
  524. package/cjs/rules/common/type-rules.js.map +0 -1
  525. package/cjs/rules/common/unknown-key.d.ts +0 -9
  526. package/cjs/rules/common/unknown-key.d.ts.map +0 -1
  527. package/cjs/rules/common/unknown-key.js +0 -17
  528. package/cjs/rules/common/unknown-key.js.map +0 -1
  529. package/cjs/rules/conditional/forbidden-if-rules.d.ts +0 -54
  530. package/cjs/rules/conditional/forbidden-if-rules.d.ts.map +0 -1
  531. package/cjs/rules/conditional/forbidden-if-rules.js +0 -118
  532. package/cjs/rules/conditional/forbidden-if-rules.js.map +0 -1
  533. package/cjs/rules/conditional/index.d.ts +0 -11
  534. package/cjs/rules/conditional/index.d.ts.map +0 -1
  535. package/cjs/rules/conditional/present-if-rules.d.ts +0 -45
  536. package/cjs/rules/conditional/present-if-rules.d.ts.map +0 -1
  537. package/cjs/rules/conditional/present-if-rules.js +0 -100
  538. package/cjs/rules/conditional/present-if-rules.js.map +0 -1
  539. package/cjs/rules/conditional/present-unless-rules.d.ts +0 -11
  540. package/cjs/rules/conditional/present-unless-rules.d.ts.map +0 -1
  541. package/cjs/rules/conditional/present-unless-rules.js +0 -22
  542. package/cjs/rules/conditional/present-unless-rules.js.map +0 -1
  543. package/cjs/rules/conditional/present-with-rules.d.ts +0 -26
  544. package/cjs/rules/conditional/present-with-rules.d.ts.map +0 -1
  545. package/cjs/rules/conditional/present-with-rules.js +0 -70
  546. package/cjs/rules/conditional/present-with-rules.js.map +0 -1
  547. package/cjs/rules/conditional/present-without-rules.d.ts +0 -26
  548. package/cjs/rules/conditional/present-without-rules.d.ts.map +0 -1
  549. package/cjs/rules/conditional/present-without-rules.js +0 -70
  550. package/cjs/rules/conditional/present-without-rules.js.map +0 -1
  551. package/cjs/rules/conditional/required-if-rules.d.ts +0 -77
  552. package/cjs/rules/conditional/required-if-rules.d.ts.map +0 -1
  553. package/cjs/rules/conditional/required-if-rules.js +0 -205
  554. package/cjs/rules/conditional/required-if-rules.js.map +0 -1
  555. package/cjs/rules/conditional/required-unless-rules.d.ts +0 -11
  556. package/cjs/rules/conditional/required-unless-rules.d.ts.map +0 -1
  557. package/cjs/rules/conditional/required-unless-rules.js +0 -22
  558. package/cjs/rules/conditional/required-unless-rules.js.map +0 -1
  559. package/cjs/rules/conditional/required-when-rule.d.ts +0 -18
  560. package/cjs/rules/conditional/required-when-rule.d.ts.map +0 -1
  561. package/cjs/rules/conditional/required-when-rule.js +0 -26
  562. package/cjs/rules/conditional/required-when-rule.js.map +0 -1
  563. package/cjs/rules/conditional/required-with-rules.d.ts +0 -26
  564. package/cjs/rules/conditional/required-with-rules.d.ts.map +0 -1
  565. package/cjs/rules/conditional/required-with-rules.js +0 -64
  566. package/cjs/rules/conditional/required-with-rules.js.map +0 -1
  567. package/cjs/rules/conditional/required-without-rules.d.ts +0 -26
  568. package/cjs/rules/conditional/required-without-rules.d.ts.map +0 -1
  569. package/cjs/rules/conditional/required-without-rules.js +0 -64
  570. package/cjs/rules/conditional/required-without-rules.js.map +0 -1
  571. package/cjs/rules/core/equal.d.ts +0 -8
  572. package/cjs/rules/core/equal.d.ts.map +0 -1
  573. package/cjs/rules/core/equal.js +0 -14
  574. package/cjs/rules/core/equal.js.map +0 -1
  575. package/cjs/rules/core/forbidden.d.ts +0 -6
  576. package/cjs/rules/core/forbidden.d.ts.map +0 -1
  577. package/cjs/rules/core/forbidden.js +0 -13
  578. package/cjs/rules/core/forbidden.js.map +0 -1
  579. package/cjs/rules/core/index.d.ts +0 -6
  580. package/cjs/rules/core/index.d.ts.map +0 -1
  581. package/cjs/rules/core/required.d.ts +0 -11
  582. package/cjs/rules/core/required.d.ts.map +0 -1
  583. package/cjs/rules/core/required.js +0 -31
  584. package/cjs/rules/core/required.js.map +0 -1
  585. package/cjs/rules/core/union.d.ts +0 -9
  586. package/cjs/rules/core/union.d.ts.map +0 -1
  587. package/cjs/rules/core/union.js +0 -40
  588. package/cjs/rules/core/union.js.map +0 -1
  589. package/cjs/rules/core/when.d.ts +0 -6
  590. package/cjs/rules/core/when.d.ts.map +0 -1
  591. package/cjs/rules/core/when.js +0 -40
  592. package/cjs/rules/core/when.js.map +0 -1
  593. package/cjs/rules/date/date-comparison-rules.d.ts +0 -25
  594. package/cjs/rules/date/date-comparison-rules.d.ts.map +0 -1
  595. package/cjs/rules/date/date-comparison-rules.js +0 -80
  596. package/cjs/rules/date/date-comparison-rules.js.map +0 -1
  597. package/cjs/rules/date/date-day-rules.d.ts +0 -21
  598. package/cjs/rules/date/date-day-rules.d.ts.map +0 -1
  599. package/cjs/rules/date/date-day-rules.js +0 -68
  600. package/cjs/rules/date/date-day-rules.js.map +0 -1
  601. package/cjs/rules/date/date-field-comparison-rules.d.ts +0 -28
  602. package/cjs/rules/date/date-field-comparison-rules.d.ts.map +0 -1
  603. package/cjs/rules/date/date-field-comparison-rules.js +0 -94
  604. package/cjs/rules/date/date-field-comparison-rules.js.map +0 -1
  605. package/cjs/rules/date/date-period-rules.d.ts +0 -124
  606. package/cjs/rules/date/date-period-rules.d.ts.map +0 -1
  607. package/cjs/rules/date/date-period-rules.js +0 -605
  608. package/cjs/rules/date/date-period-rules.js.map +0 -1
  609. package/cjs/rules/date/date-relative-rules.d.ts +0 -20
  610. package/cjs/rules/date/date-relative-rules.d.ts.map +0 -1
  611. package/cjs/rules/date/date-relative-rules.js +0 -60
  612. package/cjs/rules/date/date-relative-rules.js.map +0 -1
  613. package/cjs/rules/date/date-special-rules.d.ts +0 -20
  614. package/cjs/rules/date/date-special-rules.d.ts.map +0 -1
  615. package/cjs/rules/date/date-special-rules.js +0 -71
  616. package/cjs/rules/date/date-special-rules.js.map +0 -1
  617. package/cjs/rules/date/date.d.ts +0 -93
  618. package/cjs/rules/date/date.d.ts.map +0 -1
  619. package/cjs/rules/date/date.js +0 -288
  620. package/cjs/rules/date/date.js.map +0 -1
  621. package/cjs/rules/date/index.d.ts +0 -8
  622. package/cjs/rules/date/index.d.ts.map +0 -1
  623. package/cjs/rules/file/dimensions.d.ts +0 -26
  624. package/cjs/rules/file/dimensions.d.ts.map +0 -1
  625. package/cjs/rules/file/dimensions.js +0 -60
  626. package/cjs/rules/file/dimensions.js.map +0 -1
  627. package/cjs/rules/file/file-size.d.ts +0 -14
  628. package/cjs/rules/file/file-size.d.ts.map +0 -1
  629. package/cjs/rules/file/file-size.js +0 -30
  630. package/cjs/rules/file/file-size.js.map +0 -1
  631. package/cjs/rules/file/index.d.ts +0 -11
  632. package/cjs/rules/file/index.d.ts.map +0 -1
  633. package/cjs/rules/index.d.ts +0 -19
  634. package/cjs/rules/index.d.ts.map +0 -1
  635. package/cjs/rules/length/index.d.ts +0 -2
  636. package/cjs/rules/length/index.d.ts.map +0 -1
  637. package/cjs/rules/length/length-rules.d.ts +0 -49
  638. package/cjs/rules/length/length-rules.d.ts.map +0 -1
  639. package/cjs/rules/length/length-rules.js +0 -107
  640. package/cjs/rules/length/length-rules.js.map +0 -1
  641. package/cjs/rules/number/index.d.ts +0 -2
  642. package/cjs/rules/number/index.d.ts.map +0 -1
  643. package/cjs/rules/number/number-rules.d.ts +0 -65
  644. package/cjs/rules/number/number-rules.d.ts.map +0 -1
  645. package/cjs/rules/number/number-rules.js +0 -245
  646. package/cjs/rules/number/number-rules.js.map +0 -1
  647. package/cjs/rules/scalar/accepted-rule.d.ts +0 -39
  648. package/cjs/rules/scalar/accepted-rule.d.ts.map +0 -1
  649. package/cjs/rules/scalar/accepted-rule.js +0 -117
  650. package/cjs/rules/scalar/accepted-rule.js.map +0 -1
  651. package/cjs/rules/scalar/declined-rule.d.ts +0 -39
  652. package/cjs/rules/scalar/declined-rule.d.ts.map +0 -1
  653. package/cjs/rules/scalar/declined-rule.js +0 -117
  654. package/cjs/rules/scalar/declined-rule.js.map +0 -1
  655. package/cjs/rules/scalar/index.d.ts +0 -3
  656. package/cjs/rules/scalar/index.d.ts.map +0 -1
  657. package/cjs/rules/string/alpha.d.ts +0 -14
  658. package/cjs/rules/string/alpha.d.ts.map +0 -1
  659. package/cjs/rules/string/alpha.js +0 -39
  660. package/cjs/rules/string/alpha.js.map +0 -1
  661. package/cjs/rules/string/credit-card.d.ts +0 -6
  662. package/cjs/rules/string/credit-card.d.ts.map +0 -1
  663. package/cjs/rules/string/credit-card.js +0 -31
  664. package/cjs/rules/string/credit-card.js.map +0 -1
  665. package/cjs/rules/string/email.d.ts +0 -6
  666. package/cjs/rules/string/email.d.ts.map +0 -1
  667. package/cjs/rules/string/email.js +0 -13
  668. package/cjs/rules/string/email.js.map +0 -1
  669. package/cjs/rules/string/index.d.ts +0 -17
  670. package/cjs/rules/string/index.d.ts.map +0 -1
  671. package/cjs/rules/string/ip.d.ts +0 -14
  672. package/cjs/rules/string/ip.d.ts.map +0 -1
  673. package/cjs/rules/string/ip.js +0 -39
  674. package/cjs/rules/string/ip.js.map +0 -1
  675. package/cjs/rules/string/matches.d.ts +0 -8
  676. package/cjs/rules/string/matches.d.ts.map +0 -1
  677. package/cjs/rules/string/matches.js +0 -15
  678. package/cjs/rules/string/matches.js.map +0 -1
  679. package/cjs/rules/string/pattern.d.ts +0 -8
  680. package/cjs/rules/string/pattern.d.ts.map +0 -1
  681. package/cjs/rules/string/pattern.js +0 -14
  682. package/cjs/rules/string/pattern.js.map +0 -1
  683. package/cjs/rules/string/string-comparison.d.ts +0 -26
  684. package/cjs/rules/string/string-comparison.d.ts.map +0 -1
  685. package/cjs/rules/string/string-comparison.js +0 -56
  686. package/cjs/rules/string/string-comparison.js.map +0 -1
  687. package/cjs/rules/string/strong-password-rule.d.ts +0 -14
  688. package/cjs/rules/string/strong-password-rule.d.ts.map +0 -1
  689. package/cjs/rules/string/strong-password-rule.js +0 -38
  690. package/cjs/rules/string/strong-password-rule.js.map +0 -1
  691. package/cjs/rules/string/url.d.ts +0 -6
  692. package/cjs/rules/string/url.d.ts.map +0 -1
  693. package/cjs/rules/string/url.js +0 -16
  694. package/cjs/rules/string/url.js.map +0 -1
  695. package/cjs/rules/string/without-whitespace.d.ts +0 -6
  696. package/cjs/rules/string/without-whitespace.d.ts.map +0 -1
  697. package/cjs/rules/string/without-whitespace.js +0 -13
  698. package/cjs/rules/string/without-whitespace.js.map +0 -1
  699. package/cjs/standard-schema/index.d.ts +0 -4
  700. package/cjs/standard-schema/index.d.ts.map +0 -1
  701. package/cjs/standard-schema/json-schema.d.ts +0 -61
  702. package/cjs/standard-schema/json-schema.d.ts.map +0 -1
  703. package/cjs/standard-schema/json-schema.js +0 -85
  704. package/cjs/standard-schema/json-schema.js.map +0 -1
  705. package/cjs/standard-schema/map-result.d.ts +0 -18
  706. package/cjs/standard-schema/map-result.d.ts.map +0 -1
  707. package/cjs/standard-schema/map-result.js +0 -27
  708. package/cjs/standard-schema/map-result.js.map +0 -1
  709. package/cjs/standard-schema/types.d.ts +0 -93
  710. package/cjs/standard-schema/types.d.ts.map +0 -1
  711. package/cjs/types/conditional-types.d.ts +0 -15
  712. package/cjs/types/conditional-types.d.ts.map +0 -1
  713. package/cjs/types/context-types.d.ts +0 -47
  714. package/cjs/types/context-types.d.ts.map +0 -1
  715. package/cjs/types/data-transformer-types.d.ts +0 -25
  716. package/cjs/types/data-transformer-types.d.ts.map +0 -1
  717. package/cjs/types/date-types.d.ts +0 -9
  718. package/cjs/types/date-types.d.ts.map +0 -1
  719. package/cjs/types/date-types.js +0 -12
  720. package/cjs/types/date-types.js.map +0 -1
  721. package/cjs/types/file.types.d.ts +0 -5
  722. package/cjs/types/file.types.d.ts.map +0 -1
  723. package/cjs/types/index.d.ts +0 -11
  724. package/cjs/types/index.d.ts.map +0 -1
  725. package/cjs/types/inference-types.d.ts +0 -32
  726. package/cjs/types/inference-types.d.ts.map +0 -1
  727. package/cjs/types/mutator-types.d.ts +0 -27
  728. package/cjs/types/mutator-types.d.ts.map +0 -1
  729. package/cjs/types/result-types.d.ts +0 -19
  730. package/cjs/types/result-types.d.ts.map +0 -1
  731. package/cjs/types/rule-types.d.ts +0 -58
  732. package/cjs/types/rule-types.d.ts.map +0 -1
  733. package/cjs/types/schema-types.d.ts +0 -6
  734. package/cjs/types/schema-types.d.ts.map +0 -1
  735. package/cjs/validators/any-validator.d.ts +0 -29
  736. package/cjs/validators/any-validator.d.ts.map +0 -1
  737. package/cjs/validators/any-validator.js +0 -31
  738. package/cjs/validators/any-validator.js.map +0 -1
  739. package/cjs/validators/array-validator.d.ts +0 -72
  740. package/cjs/validators/array-validator.d.ts.map +0 -1
  741. package/cjs/validators/array-validator.js +0 -162
  742. package/cjs/validators/array-validator.js.map +0 -1
  743. package/cjs/validators/base-validator.d.ts +0 -425
  744. package/cjs/validators/base-validator.d.ts.map +0 -1
  745. package/cjs/validators/base-validator.js +0 -637
  746. package/cjs/validators/base-validator.js.map +0 -1
  747. package/cjs/validators/boolean-validator.d.ts +0 -67
  748. package/cjs/validators/boolean-validator.d.ts.map +0 -1
  749. package/cjs/validators/boolean-validator.js +0 -105
  750. package/cjs/validators/boolean-validator.js.map +0 -1
  751. package/cjs/validators/computed-validator.d.ts +0 -75
  752. package/cjs/validators/computed-validator.d.ts.map +0 -1
  753. package/cjs/validators/computed-validator.js +0 -124
  754. package/cjs/validators/computed-validator.js.map +0 -1
  755. package/cjs/validators/date-validator.d.ts +0 -330
  756. package/cjs/validators/date-validator.d.ts.map +0 -1
  757. package/cjs/validators/date-validator.js +0 -614
  758. package/cjs/validators/date-validator.js.map +0 -1
  759. package/cjs/validators/float-validator.d.ts +0 -8
  760. package/cjs/validators/float-validator.d.ts.map +0 -1
  761. package/cjs/validators/float-validator.js +0 -9
  762. package/cjs/validators/float-validator.js.map +0 -1
  763. package/cjs/validators/index.d.ts +0 -31
  764. package/cjs/validators/index.d.ts.map +0 -1
  765. package/cjs/validators/int-validator.d.ts +0 -19
  766. package/cjs/validators/int-validator.d.ts.map +0 -1
  767. package/cjs/validators/int-validator.js +0 -21
  768. package/cjs/validators/int-validator.js.map +0 -1
  769. package/cjs/validators/managed-validator.d.ts +0 -38
  770. package/cjs/validators/managed-validator.d.ts.map +0 -1
  771. package/cjs/validators/managed-validator.js +0 -34
  772. package/cjs/validators/managed-validator.js.map +0 -1
  773. package/cjs/validators/methods/equality-conditional-methods.d.ts +0 -88
  774. package/cjs/validators/methods/equality-conditional-methods.d.ts.map +0 -1
  775. package/cjs/validators/methods/equality-conditional-methods.js +0 -118
  776. package/cjs/validators/methods/equality-conditional-methods.js.map +0 -1
  777. package/cjs/validators/methods/forbidden-methods.d.ts +0 -58
  778. package/cjs/validators/methods/forbidden-methods.d.ts.map +0 -1
  779. package/cjs/validators/methods/forbidden-methods.js +0 -122
  780. package/cjs/validators/methods/forbidden-methods.js.map +0 -1
  781. package/cjs/validators/methods/present-methods.d.ts +0 -102
  782. package/cjs/validators/methods/present-methods.d.ts.map +0 -1
  783. package/cjs/validators/methods/present-methods.js +0 -229
  784. package/cjs/validators/methods/present-methods.js.map +0 -1
  785. package/cjs/validators/methods/required-methods.d.ts +0 -174
  786. package/cjs/validators/methods/required-methods.d.ts.map +0 -1
  787. package/cjs/validators/methods/required-methods.js +0 -246
  788. package/cjs/validators/methods/required-methods.js.map +0 -1
  789. package/cjs/validators/number-validator.d.ts +0 -166
  790. package/cjs/validators/number-validator.d.ts.map +0 -1
  791. package/cjs/validators/number-validator.js +0 -307
  792. package/cjs/validators/number-validator.js.map +0 -1
  793. package/cjs/validators/numeric-validator.d.ts +0 -15
  794. package/cjs/validators/numeric-validator.d.ts.map +0 -1
  795. package/cjs/validators/numeric-validator.js +0 -18
  796. package/cjs/validators/numeric-validator.js.map +0 -1
  797. package/cjs/validators/object-validator.d.ts +0 -233
  798. package/cjs/validators/object-validator.d.ts.map +0 -1
  799. package/cjs/validators/object-validator.js +0 -517
  800. package/cjs/validators/object-validator.js.map +0 -1
  801. package/cjs/validators/primitive-validator.d.ts +0 -70
  802. package/cjs/validators/primitive-validator.d.ts.map +0 -1
  803. package/cjs/validators/primitive-validator.js +0 -80
  804. package/cjs/validators/primitive-validator.js.map +0 -1
  805. package/cjs/validators/record-validator.d.ts +0 -54
  806. package/cjs/validators/record-validator.d.ts.map +0 -1
  807. package/cjs/validators/record-validator.js +0 -100
  808. package/cjs/validators/record-validator.js.map +0 -1
  809. package/cjs/validators/scalar-validator.d.ts +0 -93
  810. package/cjs/validators/scalar-validator.d.ts.map +0 -1
  811. package/cjs/validators/scalar-validator.js +0 -149
  812. package/cjs/validators/scalar-validator.js.map +0 -1
  813. package/cjs/validators/string-validator.d.ts +0 -189
  814. package/cjs/validators/string-validator.d.ts.map +0 -1
  815. package/cjs/validators/string-validator.js +0 -387
  816. package/cjs/validators/string-validator.js.map +0 -1
  817. package/cjs/validators/tuple-validator.d.ts +0 -56
  818. package/cjs/validators/tuple-validator.d.ts.map +0 -1
  819. package/cjs/validators/tuple-validator.js +0 -121
  820. package/cjs/validators/tuple-validator.js.map +0 -1
  821. package/cjs/validators/union-validator.d.ts +0 -55
  822. package/cjs/validators/union-validator.d.ts.map +0 -1
  823. package/cjs/validators/union-validator.js +0 -60
  824. package/cjs/validators/union-validator.js.map +0 -1
  825. package/esm/config.d.ts +0 -48
  826. package/esm/config.d.ts.map +0 -1
  827. package/esm/config.js +0 -42
  828. package/esm/config.js.map +0 -1
  829. package/esm/factory/index.d.ts +0 -3
  830. package/esm/factory/index.d.ts.map +0 -1
  831. package/esm/factory/validate.d.ts +0 -8
  832. package/esm/factory/validate.d.ts.map +0 -1
  833. package/esm/factory/validate.js +0 -23
  834. package/esm/factory/validate.js.map +0 -1
  835. package/esm/factory/validators.d.ts +0 -56
  836. package/esm/factory/validators.d.ts.map +0 -1
  837. package/esm/factory/validators.js +0 -47
  838. package/esm/factory/validators.js.map +0 -1
  839. package/esm/helpers/date-helpers.d.ts +0 -16
  840. package/esm/helpers/date-helpers.d.ts.map +0 -1
  841. package/esm/helpers/date-helpers.js +0 -20
  842. package/esm/helpers/date-helpers.js.map +0 -1
  843. package/esm/helpers/file.utils.d.ts +0 -8
  844. package/esm/helpers/file.utils.d.ts.map +0 -1
  845. package/esm/helpers/file.utils.js +0 -29
  846. package/esm/helpers/file.utils.js.map +0 -1
  847. package/esm/helpers/get-field-value.d.ts +0 -37
  848. package/esm/helpers/get-field-value.d.ts.map +0 -1
  849. package/esm/helpers/get-field-value.js +0 -40
  850. package/esm/helpers/get-field-value.js.map +0 -1
  851. package/esm/helpers/index.d.ts +0 -6
  852. package/esm/helpers/index.d.ts.map +0 -1
  853. package/esm/helpers/is-empty-value.d.ts +0 -2
  854. package/esm/helpers/is-empty-value.d.ts.map +0 -1
  855. package/esm/helpers/is-empty-value.js +0 -3
  856. package/esm/helpers/is-empty-value.js.map +0 -1
  857. package/esm/helpers/path-helpers.d.ts +0 -5
  858. package/esm/helpers/path-helpers.d.ts.map +0 -1
  859. package/esm/helpers/path-helpers.js +0 -8
  860. package/esm/helpers/path-helpers.js.map +0 -1
  861. package/esm/helpers/validation-helpers.d.ts +0 -26
  862. package/esm/helpers/validation-helpers.d.ts.map +0 -1
  863. package/esm/helpers/validation-helpers.js +0 -74
  864. package/esm/helpers/validation-helpers.js.map +0 -1
  865. package/esm/index.d.ts +0 -30
  866. package/esm/index.d.ts.map +0 -1
  867. package/esm/index.js +0 -1
  868. package/esm/index.js.map +0 -1
  869. package/esm/mutators/array-mutators.d.ts +0 -12
  870. package/esm/mutators/array-mutators.d.ts.map +0 -1
  871. package/esm/mutators/array-mutators.js +0 -37
  872. package/esm/mutators/array-mutators.js.map +0 -1
  873. package/esm/mutators/date-mutators.d.ts +0 -39
  874. package/esm/mutators/date-mutators.d.ts.map +0 -1
  875. package/esm/mutators/date-mutators.js +0 -120
  876. package/esm/mutators/date-mutators.js.map +0 -1
  877. package/esm/mutators/index.d.ts +0 -7
  878. package/esm/mutators/index.d.ts.map +0 -1
  879. package/esm/mutators/number-mutators.d.ts +0 -22
  880. package/esm/mutators/number-mutators.d.ts.map +0 -1
  881. package/esm/mutators/number-mutators.js +0 -53
  882. package/esm/mutators/number-mutators.js.map +0 -1
  883. package/esm/mutators/object-mutators.d.ts +0 -8
  884. package/esm/mutators/object-mutators.d.ts.map +0 -1
  885. package/esm/mutators/object-mutators.js +0 -48
  886. package/esm/mutators/object-mutators.js.map +0 -1
  887. package/esm/mutators/scalar-mutators.d.ts +0 -3
  888. package/esm/mutators/scalar-mutators.d.ts.map +0 -1
  889. package/esm/mutators/scalar-mutators.js +0 -6
  890. package/esm/mutators/scalar-mutators.js.map +0 -1
  891. package/esm/mutators/string-mutators.d.ts +0 -72
  892. package/esm/mutators/string-mutators.d.ts.map +0 -1
  893. package/esm/mutators/string-mutators.js +0 -193
  894. package/esm/mutators/string-mutators.js.map +0 -1
  895. package/esm/plugins/index.d.ts +0 -7
  896. package/esm/plugins/index.d.ts.map +0 -1
  897. package/esm/plugins/plugin-system.d.ts +0 -71
  898. package/esm/plugins/plugin-system.d.ts.map +0 -1
  899. package/esm/plugins/plugin-system.js +0 -67
  900. package/esm/plugins/plugin-system.js.map +0 -1
  901. package/esm/rules/array/array-rules.d.ts +0 -12
  902. package/esm/rules/array/array-rules.d.ts.map +0 -1
  903. package/esm/rules/array/array-rules.js +0 -45
  904. package/esm/rules/array/array-rules.js.map +0 -1
  905. package/esm/rules/array/index.d.ts +0 -2
  906. package/esm/rules/array/index.d.ts.map +0 -1
  907. package/esm/rules/color/color-rules.d.ts +0 -30
  908. package/esm/rules/color/color-rules.d.ts.map +0 -1
  909. package/esm/rules/color/color-rules.js +0 -120
  910. package/esm/rules/color/color-rules.js.map +0 -1
  911. package/esm/rules/color/index.d.ts +0 -2
  912. package/esm/rules/color/index.d.ts.map +0 -1
  913. package/esm/rules/common/enum.d.ts +0 -26
  914. package/esm/rules/common/enum.d.ts.map +0 -1
  915. package/esm/rules/common/enum.js +0 -69
  916. package/esm/rules/common/enum.js.map +0 -1
  917. package/esm/rules/common/equals-field-rules.d.ts +0 -18
  918. package/esm/rules/common/equals-field-rules.d.ts.map +0 -1
  919. package/esm/rules/common/equals-field-rules.js +0 -39
  920. package/esm/rules/common/equals-field-rules.js.map +0 -1
  921. package/esm/rules/common/index.d.ts +0 -5
  922. package/esm/rules/common/index.d.ts.map +0 -1
  923. package/esm/rules/common/type-rules.d.ts +0 -38
  924. package/esm/rules/common/type-rules.d.ts.map +0 -1
  925. package/esm/rules/common/type-rules.js +0 -117
  926. package/esm/rules/common/type-rules.js.map +0 -1
  927. package/esm/rules/common/unknown-key.d.ts +0 -9
  928. package/esm/rules/common/unknown-key.d.ts.map +0 -1
  929. package/esm/rules/common/unknown-key.js +0 -17
  930. package/esm/rules/common/unknown-key.js.map +0 -1
  931. package/esm/rules/conditional/forbidden-if-rules.d.ts +0 -54
  932. package/esm/rules/conditional/forbidden-if-rules.d.ts.map +0 -1
  933. package/esm/rules/conditional/forbidden-if-rules.js +0 -118
  934. package/esm/rules/conditional/forbidden-if-rules.js.map +0 -1
  935. package/esm/rules/conditional/index.d.ts +0 -11
  936. package/esm/rules/conditional/index.d.ts.map +0 -1
  937. package/esm/rules/conditional/present-if-rules.d.ts +0 -45
  938. package/esm/rules/conditional/present-if-rules.d.ts.map +0 -1
  939. package/esm/rules/conditional/present-if-rules.js +0 -100
  940. package/esm/rules/conditional/present-if-rules.js.map +0 -1
  941. package/esm/rules/conditional/present-unless-rules.d.ts +0 -11
  942. package/esm/rules/conditional/present-unless-rules.d.ts.map +0 -1
  943. package/esm/rules/conditional/present-unless-rules.js +0 -22
  944. package/esm/rules/conditional/present-unless-rules.js.map +0 -1
  945. package/esm/rules/conditional/present-with-rules.d.ts +0 -26
  946. package/esm/rules/conditional/present-with-rules.d.ts.map +0 -1
  947. package/esm/rules/conditional/present-with-rules.js +0 -70
  948. package/esm/rules/conditional/present-with-rules.js.map +0 -1
  949. package/esm/rules/conditional/present-without-rules.d.ts +0 -26
  950. package/esm/rules/conditional/present-without-rules.d.ts.map +0 -1
  951. package/esm/rules/conditional/present-without-rules.js +0 -70
  952. package/esm/rules/conditional/present-without-rules.js.map +0 -1
  953. package/esm/rules/conditional/required-if-rules.d.ts +0 -77
  954. package/esm/rules/conditional/required-if-rules.d.ts.map +0 -1
  955. package/esm/rules/conditional/required-if-rules.js +0 -205
  956. package/esm/rules/conditional/required-if-rules.js.map +0 -1
  957. package/esm/rules/conditional/required-unless-rules.d.ts +0 -11
  958. package/esm/rules/conditional/required-unless-rules.d.ts.map +0 -1
  959. package/esm/rules/conditional/required-unless-rules.js +0 -22
  960. package/esm/rules/conditional/required-unless-rules.js.map +0 -1
  961. package/esm/rules/conditional/required-when-rule.d.ts +0 -18
  962. package/esm/rules/conditional/required-when-rule.d.ts.map +0 -1
  963. package/esm/rules/conditional/required-when-rule.js +0 -26
  964. package/esm/rules/conditional/required-when-rule.js.map +0 -1
  965. package/esm/rules/conditional/required-with-rules.d.ts +0 -26
  966. package/esm/rules/conditional/required-with-rules.d.ts.map +0 -1
  967. package/esm/rules/conditional/required-with-rules.js +0 -64
  968. package/esm/rules/conditional/required-with-rules.js.map +0 -1
  969. package/esm/rules/conditional/required-without-rules.d.ts +0 -26
  970. package/esm/rules/conditional/required-without-rules.d.ts.map +0 -1
  971. package/esm/rules/conditional/required-without-rules.js +0 -64
  972. package/esm/rules/conditional/required-without-rules.js.map +0 -1
  973. package/esm/rules/core/equal.d.ts +0 -8
  974. package/esm/rules/core/equal.d.ts.map +0 -1
  975. package/esm/rules/core/equal.js +0 -14
  976. package/esm/rules/core/equal.js.map +0 -1
  977. package/esm/rules/core/forbidden.d.ts +0 -6
  978. package/esm/rules/core/forbidden.d.ts.map +0 -1
  979. package/esm/rules/core/forbidden.js +0 -13
  980. package/esm/rules/core/forbidden.js.map +0 -1
  981. package/esm/rules/core/index.d.ts +0 -6
  982. package/esm/rules/core/index.d.ts.map +0 -1
  983. package/esm/rules/core/required.d.ts +0 -11
  984. package/esm/rules/core/required.d.ts.map +0 -1
  985. package/esm/rules/core/required.js +0 -31
  986. package/esm/rules/core/required.js.map +0 -1
  987. package/esm/rules/core/union.d.ts +0 -9
  988. package/esm/rules/core/union.d.ts.map +0 -1
  989. package/esm/rules/core/union.js +0 -40
  990. package/esm/rules/core/union.js.map +0 -1
  991. package/esm/rules/core/when.d.ts +0 -6
  992. package/esm/rules/core/when.d.ts.map +0 -1
  993. package/esm/rules/core/when.js +0 -40
  994. package/esm/rules/core/when.js.map +0 -1
  995. package/esm/rules/date/date-comparison-rules.d.ts +0 -25
  996. package/esm/rules/date/date-comparison-rules.d.ts.map +0 -1
  997. package/esm/rules/date/date-comparison-rules.js +0 -80
  998. package/esm/rules/date/date-comparison-rules.js.map +0 -1
  999. package/esm/rules/date/date-day-rules.d.ts +0 -21
  1000. package/esm/rules/date/date-day-rules.d.ts.map +0 -1
  1001. package/esm/rules/date/date-day-rules.js +0 -68
  1002. package/esm/rules/date/date-day-rules.js.map +0 -1
  1003. package/esm/rules/date/date-field-comparison-rules.d.ts +0 -28
  1004. package/esm/rules/date/date-field-comparison-rules.d.ts.map +0 -1
  1005. package/esm/rules/date/date-field-comparison-rules.js +0 -94
  1006. package/esm/rules/date/date-field-comparison-rules.js.map +0 -1
  1007. package/esm/rules/date/date-period-rules.d.ts +0 -124
  1008. package/esm/rules/date/date-period-rules.d.ts.map +0 -1
  1009. package/esm/rules/date/date-period-rules.js +0 -605
  1010. package/esm/rules/date/date-period-rules.js.map +0 -1
  1011. package/esm/rules/date/date-relative-rules.d.ts +0 -20
  1012. package/esm/rules/date/date-relative-rules.d.ts.map +0 -1
  1013. package/esm/rules/date/date-relative-rules.js +0 -60
  1014. package/esm/rules/date/date-relative-rules.js.map +0 -1
  1015. package/esm/rules/date/date-special-rules.d.ts +0 -20
  1016. package/esm/rules/date/date-special-rules.d.ts.map +0 -1
  1017. package/esm/rules/date/date-special-rules.js +0 -71
  1018. package/esm/rules/date/date-special-rules.js.map +0 -1
  1019. package/esm/rules/date/date.d.ts +0 -93
  1020. package/esm/rules/date/date.d.ts.map +0 -1
  1021. package/esm/rules/date/date.js +0 -288
  1022. package/esm/rules/date/date.js.map +0 -1
  1023. package/esm/rules/date/index.d.ts +0 -8
  1024. package/esm/rules/date/index.d.ts.map +0 -1
  1025. package/esm/rules/file/dimensions.d.ts +0 -26
  1026. package/esm/rules/file/dimensions.d.ts.map +0 -1
  1027. package/esm/rules/file/dimensions.js +0 -60
  1028. package/esm/rules/file/dimensions.js.map +0 -1
  1029. package/esm/rules/file/file-size.d.ts +0 -14
  1030. package/esm/rules/file/file-size.d.ts.map +0 -1
  1031. package/esm/rules/file/file-size.js +0 -30
  1032. package/esm/rules/file/file-size.js.map +0 -1
  1033. package/esm/rules/file/index.d.ts +0 -11
  1034. package/esm/rules/file/index.d.ts.map +0 -1
  1035. package/esm/rules/index.d.ts +0 -19
  1036. package/esm/rules/index.d.ts.map +0 -1
  1037. package/esm/rules/length/index.d.ts +0 -2
  1038. package/esm/rules/length/index.d.ts.map +0 -1
  1039. package/esm/rules/length/length-rules.d.ts +0 -49
  1040. package/esm/rules/length/length-rules.d.ts.map +0 -1
  1041. package/esm/rules/length/length-rules.js +0 -107
  1042. package/esm/rules/length/length-rules.js.map +0 -1
  1043. package/esm/rules/number/index.d.ts +0 -2
  1044. package/esm/rules/number/index.d.ts.map +0 -1
  1045. package/esm/rules/number/number-rules.d.ts +0 -65
  1046. package/esm/rules/number/number-rules.d.ts.map +0 -1
  1047. package/esm/rules/number/number-rules.js +0 -245
  1048. package/esm/rules/number/number-rules.js.map +0 -1
  1049. package/esm/rules/scalar/accepted-rule.d.ts +0 -39
  1050. package/esm/rules/scalar/accepted-rule.d.ts.map +0 -1
  1051. package/esm/rules/scalar/accepted-rule.js +0 -117
  1052. package/esm/rules/scalar/accepted-rule.js.map +0 -1
  1053. package/esm/rules/scalar/declined-rule.d.ts +0 -39
  1054. package/esm/rules/scalar/declined-rule.d.ts.map +0 -1
  1055. package/esm/rules/scalar/declined-rule.js +0 -117
  1056. package/esm/rules/scalar/declined-rule.js.map +0 -1
  1057. package/esm/rules/scalar/index.d.ts +0 -3
  1058. package/esm/rules/scalar/index.d.ts.map +0 -1
  1059. package/esm/rules/string/alpha.d.ts +0 -14
  1060. package/esm/rules/string/alpha.d.ts.map +0 -1
  1061. package/esm/rules/string/alpha.js +0 -39
  1062. package/esm/rules/string/alpha.js.map +0 -1
  1063. package/esm/rules/string/credit-card.d.ts +0 -6
  1064. package/esm/rules/string/credit-card.d.ts.map +0 -1
  1065. package/esm/rules/string/credit-card.js +0 -31
  1066. package/esm/rules/string/credit-card.js.map +0 -1
  1067. package/esm/rules/string/email.d.ts +0 -6
  1068. package/esm/rules/string/email.d.ts.map +0 -1
  1069. package/esm/rules/string/email.js +0 -13
  1070. package/esm/rules/string/email.js.map +0 -1
  1071. package/esm/rules/string/index.d.ts +0 -17
  1072. package/esm/rules/string/index.d.ts.map +0 -1
  1073. package/esm/rules/string/ip.d.ts +0 -14
  1074. package/esm/rules/string/ip.d.ts.map +0 -1
  1075. package/esm/rules/string/ip.js +0 -39
  1076. package/esm/rules/string/ip.js.map +0 -1
  1077. package/esm/rules/string/matches.d.ts +0 -8
  1078. package/esm/rules/string/matches.d.ts.map +0 -1
  1079. package/esm/rules/string/matches.js +0 -15
  1080. package/esm/rules/string/matches.js.map +0 -1
  1081. package/esm/rules/string/pattern.d.ts +0 -8
  1082. package/esm/rules/string/pattern.d.ts.map +0 -1
  1083. package/esm/rules/string/pattern.js +0 -14
  1084. package/esm/rules/string/pattern.js.map +0 -1
  1085. package/esm/rules/string/string-comparison.d.ts +0 -26
  1086. package/esm/rules/string/string-comparison.d.ts.map +0 -1
  1087. package/esm/rules/string/string-comparison.js +0 -56
  1088. package/esm/rules/string/string-comparison.js.map +0 -1
  1089. package/esm/rules/string/strong-password-rule.d.ts +0 -14
  1090. package/esm/rules/string/strong-password-rule.d.ts.map +0 -1
  1091. package/esm/rules/string/strong-password-rule.js +0 -38
  1092. package/esm/rules/string/strong-password-rule.js.map +0 -1
  1093. package/esm/rules/string/url.d.ts +0 -6
  1094. package/esm/rules/string/url.d.ts.map +0 -1
  1095. package/esm/rules/string/url.js +0 -16
  1096. package/esm/rules/string/url.js.map +0 -1
  1097. package/esm/rules/string/without-whitespace.d.ts +0 -6
  1098. package/esm/rules/string/without-whitespace.d.ts.map +0 -1
  1099. package/esm/rules/string/without-whitespace.js +0 -13
  1100. package/esm/rules/string/without-whitespace.js.map +0 -1
  1101. package/esm/standard-schema/index.d.ts +0 -4
  1102. package/esm/standard-schema/index.d.ts.map +0 -1
  1103. package/esm/standard-schema/json-schema.d.ts +0 -61
  1104. package/esm/standard-schema/json-schema.d.ts.map +0 -1
  1105. package/esm/standard-schema/json-schema.js +0 -85
  1106. package/esm/standard-schema/json-schema.js.map +0 -1
  1107. package/esm/standard-schema/map-result.d.ts +0 -18
  1108. package/esm/standard-schema/map-result.d.ts.map +0 -1
  1109. package/esm/standard-schema/map-result.js +0 -27
  1110. package/esm/standard-schema/map-result.js.map +0 -1
  1111. package/esm/standard-schema/types.d.ts +0 -93
  1112. package/esm/standard-schema/types.d.ts.map +0 -1
  1113. package/esm/types/conditional-types.d.ts +0 -15
  1114. package/esm/types/conditional-types.d.ts.map +0 -1
  1115. package/esm/types/context-types.d.ts +0 -47
  1116. package/esm/types/context-types.d.ts.map +0 -1
  1117. package/esm/types/data-transformer-types.d.ts +0 -25
  1118. package/esm/types/data-transformer-types.d.ts.map +0 -1
  1119. package/esm/types/date-types.d.ts +0 -9
  1120. package/esm/types/date-types.d.ts.map +0 -1
  1121. package/esm/types/date-types.js +0 -12
  1122. package/esm/types/date-types.js.map +0 -1
  1123. package/esm/types/file.types.d.ts +0 -5
  1124. package/esm/types/file.types.d.ts.map +0 -1
  1125. package/esm/types/index.d.ts +0 -11
  1126. package/esm/types/index.d.ts.map +0 -1
  1127. package/esm/types/inference-types.d.ts +0 -32
  1128. package/esm/types/inference-types.d.ts.map +0 -1
  1129. package/esm/types/mutator-types.d.ts +0 -27
  1130. package/esm/types/mutator-types.d.ts.map +0 -1
  1131. package/esm/types/result-types.d.ts +0 -19
  1132. package/esm/types/result-types.d.ts.map +0 -1
  1133. package/esm/types/rule-types.d.ts +0 -58
  1134. package/esm/types/rule-types.d.ts.map +0 -1
  1135. package/esm/types/schema-types.d.ts +0 -6
  1136. package/esm/types/schema-types.d.ts.map +0 -1
  1137. package/esm/validators/any-validator.d.ts +0 -29
  1138. package/esm/validators/any-validator.d.ts.map +0 -1
  1139. package/esm/validators/any-validator.js +0 -31
  1140. package/esm/validators/any-validator.js.map +0 -1
  1141. package/esm/validators/array-validator.d.ts +0 -72
  1142. package/esm/validators/array-validator.d.ts.map +0 -1
  1143. package/esm/validators/array-validator.js +0 -162
  1144. package/esm/validators/array-validator.js.map +0 -1
  1145. package/esm/validators/base-validator.d.ts +0 -425
  1146. package/esm/validators/base-validator.d.ts.map +0 -1
  1147. package/esm/validators/base-validator.js +0 -637
  1148. package/esm/validators/base-validator.js.map +0 -1
  1149. package/esm/validators/boolean-validator.d.ts +0 -67
  1150. package/esm/validators/boolean-validator.d.ts.map +0 -1
  1151. package/esm/validators/boolean-validator.js +0 -105
  1152. package/esm/validators/boolean-validator.js.map +0 -1
  1153. package/esm/validators/computed-validator.d.ts +0 -75
  1154. package/esm/validators/computed-validator.d.ts.map +0 -1
  1155. package/esm/validators/computed-validator.js +0 -124
  1156. package/esm/validators/computed-validator.js.map +0 -1
  1157. package/esm/validators/date-validator.d.ts +0 -330
  1158. package/esm/validators/date-validator.d.ts.map +0 -1
  1159. package/esm/validators/date-validator.js +0 -614
  1160. package/esm/validators/date-validator.js.map +0 -1
  1161. package/esm/validators/float-validator.d.ts +0 -8
  1162. package/esm/validators/float-validator.d.ts.map +0 -1
  1163. package/esm/validators/float-validator.js +0 -9
  1164. package/esm/validators/float-validator.js.map +0 -1
  1165. package/esm/validators/index.d.ts +0 -31
  1166. package/esm/validators/index.d.ts.map +0 -1
  1167. package/esm/validators/int-validator.d.ts +0 -19
  1168. package/esm/validators/int-validator.d.ts.map +0 -1
  1169. package/esm/validators/int-validator.js +0 -21
  1170. package/esm/validators/int-validator.js.map +0 -1
  1171. package/esm/validators/managed-validator.d.ts +0 -38
  1172. package/esm/validators/managed-validator.d.ts.map +0 -1
  1173. package/esm/validators/managed-validator.js +0 -34
  1174. package/esm/validators/managed-validator.js.map +0 -1
  1175. package/esm/validators/methods/equality-conditional-methods.d.ts +0 -88
  1176. package/esm/validators/methods/equality-conditional-methods.d.ts.map +0 -1
  1177. package/esm/validators/methods/equality-conditional-methods.js +0 -118
  1178. package/esm/validators/methods/equality-conditional-methods.js.map +0 -1
  1179. package/esm/validators/methods/forbidden-methods.d.ts +0 -58
  1180. package/esm/validators/methods/forbidden-methods.d.ts.map +0 -1
  1181. package/esm/validators/methods/forbidden-methods.js +0 -122
  1182. package/esm/validators/methods/forbidden-methods.js.map +0 -1
  1183. package/esm/validators/methods/present-methods.d.ts +0 -102
  1184. package/esm/validators/methods/present-methods.d.ts.map +0 -1
  1185. package/esm/validators/methods/present-methods.js +0 -229
  1186. package/esm/validators/methods/present-methods.js.map +0 -1
  1187. package/esm/validators/methods/required-methods.d.ts +0 -174
  1188. package/esm/validators/methods/required-methods.d.ts.map +0 -1
  1189. package/esm/validators/methods/required-methods.js +0 -246
  1190. package/esm/validators/methods/required-methods.js.map +0 -1
  1191. package/esm/validators/number-validator.d.ts +0 -166
  1192. package/esm/validators/number-validator.d.ts.map +0 -1
  1193. package/esm/validators/number-validator.js +0 -307
  1194. package/esm/validators/number-validator.js.map +0 -1
  1195. package/esm/validators/numeric-validator.d.ts +0 -15
  1196. package/esm/validators/numeric-validator.d.ts.map +0 -1
  1197. package/esm/validators/numeric-validator.js +0 -18
  1198. package/esm/validators/numeric-validator.js.map +0 -1
  1199. package/esm/validators/object-validator.d.ts +0 -233
  1200. package/esm/validators/object-validator.d.ts.map +0 -1
  1201. package/esm/validators/object-validator.js +0 -517
  1202. package/esm/validators/object-validator.js.map +0 -1
  1203. package/esm/validators/primitive-validator.d.ts +0 -70
  1204. package/esm/validators/primitive-validator.d.ts.map +0 -1
  1205. package/esm/validators/primitive-validator.js +0 -80
  1206. package/esm/validators/primitive-validator.js.map +0 -1
  1207. package/esm/validators/record-validator.d.ts +0 -54
  1208. package/esm/validators/record-validator.d.ts.map +0 -1
  1209. package/esm/validators/record-validator.js +0 -100
  1210. package/esm/validators/record-validator.js.map +0 -1
  1211. package/esm/validators/scalar-validator.d.ts +0 -93
  1212. package/esm/validators/scalar-validator.d.ts.map +0 -1
  1213. package/esm/validators/scalar-validator.js +0 -149
  1214. package/esm/validators/scalar-validator.js.map +0 -1
  1215. package/esm/validators/string-validator.d.ts +0 -189
  1216. package/esm/validators/string-validator.d.ts.map +0 -1
  1217. package/esm/validators/string-validator.js +0 -387
  1218. package/esm/validators/string-validator.js.map +0 -1
  1219. package/esm/validators/tuple-validator.d.ts +0 -56
  1220. package/esm/validators/tuple-validator.d.ts.map +0 -1
  1221. package/esm/validators/tuple-validator.js +0 -121
  1222. package/esm/validators/tuple-validator.js.map +0 -1
  1223. package/esm/validators/union-validator.d.ts +0 -55
  1224. package/esm/validators/union-validator.d.ts.map +0 -1
  1225. package/esm/validators/union-validator.js +0 -60
  1226. package/esm/validators/union-validator.js.map +0 -1
@@ -0,0 +1,143 @@
1
+ ---
2
+ name: generate-json-schema
3
+ description: 'Generate JSON Schema via `schema.toJsonSchema(target)` — `draft-2020-12` / `draft-07` / `openapi-3.0` / `openai-strict`. Triggers: `toJsonSchema`, `JsonSchemaTarget`, `draft-2020-12`, `draft-07`, `openapi-3.0`, `openai-strict`, `response_format`, `additionalProperties`, `nullable`; "how do I generate JSON Schema from seal", "OpenAI structured outputs from schema", "OpenAPI 3.0 nullable", "json_schema strict mode"; typical import `import { v } from "@warlock.js/seal"`. Skip: foundations — `@warlock.js/seal/seal-basics/SKILL.md`; bridge typing — `@warlock.js/seal/bridge-standard-schema/SKILL.md`; competing libs `zod-to-json-schema`, `ajv`, `@anatine/zod-openapi`.'
4
+ ---
5
+
6
+ # JSON Schema generation
7
+
8
+ Every seal validator exposes `toJsonSchema(target)`. The result is a plain object — pass it straight to OpenAI's `response_format`, an OpenAPI spec, a UI form builder, or anywhere else JSON Schema is the contract.
9
+
10
+ ```ts
11
+ const userSchema = v.object({
12
+ email: v.string().email(),
13
+ age: v.int().min(13).optional(),
14
+ });
15
+
16
+ userSchema.toJsonSchema("draft-2020-12");
17
+ // {
18
+ // type: "object",
19
+ // properties: {
20
+ // email: { type: "string", format: "email" },
21
+ // age: { type: "integer", minimum: 13 },
22
+ // },
23
+ // required: ["email"],
24
+ // additionalProperties: false,
25
+ // }
26
+ ```
27
+
28
+ ## The four targets
29
+
30
+ ```ts
31
+ type JsonSchemaTarget =
32
+ | "draft-2020-12" // default — modern JSON Schema
33
+ | "draft-07" // older tooling, Swagger 2.0
34
+ | "openapi-3.0" // uses { nullable: true } instead of type unions
35
+ | "openai-strict" // OpenAI Structured Outputs strict mode
36
+ ```
37
+
38
+ Pick by consumer:
39
+
40
+ | Consumer | Target |
41
+ | --- | --- |
42
+ | Modern tooling, no specific reason otherwise | `"draft-2020-12"` |
43
+ | Swagger 2.0 / older OpenAPI / older form builders | `"draft-07"` |
44
+ | OpenAPI 3.0 spec (uses `nullable: true`) | `"openapi-3.0"` |
45
+ | OpenAI `response_format: { type: "json_schema", strict: true }` | `"openai-strict"` |
46
+
47
+ ## OpenAI structured outputs (`openai-strict`)
48
+
49
+ This target encodes the quirks of OpenAI's strict mode:
50
+
51
+ - **Every field listed in `required`** — strict mode forbids leaving fields out.
52
+ - **Optional fields encoded as `type: ["T", "null"]`** instead of being omitted from `required`.
53
+ - **`additionalProperties: false` on every object.**
54
+
55
+ ```ts
56
+ const schema = v.object({
57
+ reply: v.string(),
58
+ citations: v.array(v.string()).optional(),
59
+ });
60
+
61
+ schema.toJsonSchema("openai-strict");
62
+ // {
63
+ // type: "object",
64
+ // properties: {
65
+ // reply: { type: "string" },
66
+ // citations: { type: ["array", "null"], items: { type: "string" } },
67
+ // },
68
+ // required: ["reply", "citations"], // every field listed
69
+ // additionalProperties: false,
70
+ // }
71
+ ```
72
+
73
+ Hand to OpenAI:
74
+
75
+ ```ts
76
+ import OpenAI from "openai";
77
+
78
+ const completion = await openai.chat.completions.create({
79
+ model: "gpt-4o",
80
+ messages: [...],
81
+ response_format: {
82
+ type: "json_schema",
83
+ json_schema: {
84
+ name: "user_reply",
85
+ strict: true,
86
+ schema: schema.toJsonSchema("openai-strict"),
87
+ },
88
+ },
89
+ });
90
+ ```
91
+
92
+ In `@warlock.js/ai`, this happens automatically when you set `output: schema` on a supervisor / agent — the runtime picks `openai-strict` for OpenAI providers. You only call `toJsonSchema()` directly when integrating with a non-warlock OpenAI usage.
93
+
94
+ ## OpenAPI 3.0 nullable
95
+
96
+ ```ts
97
+ v.string().nullable().toJsonSchema("openapi-3.0");
98
+ // { type: "string", nullable: true }
99
+
100
+ v.string().nullable().toJsonSchema("draft-2020-12");
101
+ // { type: ["string", "null"] }
102
+ ```
103
+
104
+ OpenAPI 3.0 uses the boolean `nullable` keyword instead of a type union. Use this target when generating a `paths.openapi.yaml` consumed by Swagger UI or codegen tools.
105
+
106
+ ## What's representable
107
+
108
+ Cleanly mapped:
109
+
110
+ - `v.string()` — `{ type: "string" }` (with `format: email/url/uuid`, `pattern`, `minLength`, `maxLength`, `enum`)
111
+ - `v.int()` / `v.float()` — `{ type: "integer" | "number" }` (with `minimum`, `maximum`, `multipleOf`)
112
+ - `v.boolean()` — `{ type: "boolean" }`
113
+ - `v.date()` — `{ type: "string", format: "date-time" | "date" | "time" }` (format derived from transformer if applicable)
114
+ - `v.literal(values)` — `{ const: value }` (single) or `{ enum: [...] }` (multiple)
115
+ - `v.array(item)` — `{ type: "array", items: ... }` (with `minItems`, `maxItems` from length rules; `.unique()`/`.sorted()` are runtime-only and not emitted)
116
+ - `v.object({...})` — `{ type: "object", properties, required, additionalProperties }`
117
+ - `v.union([...])` — `{ oneOf: [...] }`
118
+ - `v.tuple([...])` — `{ type: "array", prefixItems: [...] }` (draft-2020-12) or `{ type: "array", items: [...] }` (draft-07)
119
+ - `v.nullable()` — type union or `nullable: true` per target
120
+
121
+ ## What's silently dropped
122
+
123
+ Some seal constructs have no JSON Schema representation:
124
+
125
+ - **Cross-field rules** (`sameAs`, `requiredIf`, `requiredWith`, etc.) — runtime-only. The generated schema describes the *shape*, not the inter-field invariants.
126
+ - **Transformers and mutators** — output reshaping doesn't appear in the schema; the schema reflects *post-mutator, pre-transformer* shape (since that's what rules see and what the LLM is asked to produce for `openai-strict`).
127
+ - **`v.computed` / `v.managed`** — **skipped** entirely by the parent `v.object`; they never appear in `properties`. They aren't part of the data contract. (Calling `.toJsonSchema()` directly on one throws — the parent object is responsible for skipping them.)
128
+ - **`v.instanceof(Ctor)`** — produces `{}`. Class identity isn't expressible. For `File`, attach `{ type: "string", format: "binary" }` manually after generation if needed for OpenAPI.
129
+ - **`v.any()`** — produces `{}` deliberately (any value is valid).
130
+
131
+ Boolean rules `accepted` / `declined` and similar coercion-style rules are also dropped — JSON Schema doesn't have a notion of "yes/no/on/off" beyond `enum`.
132
+
133
+ ## When the generated schema rejects valid data
134
+
135
+ If the schema validator itself accepts data but the *generated* JSON Schema rejects the same data downstream, the cause is usually one of:
136
+
137
+ - **Cross-field rule.** The generated schema doesn't enforce it, but a separate consumer might. (Or the runtime check fired at a different stage.)
138
+ - **Transformer running on the wrong side.** The schema describes the input shape (or strict-mode normalized form). If your transformer reshapes `Date` to ISO string for `data`, the *input* still needs to be a Date-parseable thing.
139
+ - **`openai-strict` quirk.** Optional fields show as `["T", "null"]` rather than omitted — if the model omits them entirely (without sending `null`), strict mode fails. The fix is on the prompt side: tell the model to send `null` for unused fields.
140
+
141
+ ## Cost note
142
+
143
+ Generating JSON Schema is cheap (pure-function tree walk), so don't worry about caching the result for schemas that change at startup. For dynamic schemas built per-request, generate per-request — there's no shared mutable state.
@@ -0,0 +1,148 @@
1
+ ---
2
+ name: handle-seal-errors
3
+ description: 'Read `ValidationResult` — `isValid`, `errors[]`, `data`. Branch on `error.type`, customize messages, hook translation. Triggers: `ValidationResult`, `ValidationError`, `validate`, `isValid`, `errors`, `data`, `error.type`, `error.input`, `error.error`, `translationParams`, `.attribute`, `SealConfig`; "how to read seal errors", "branch on a specific rule failure", "customize validation error message", "translate seal error", "surface validation errors as 422"; typical import `import { validate, v } from "@warlock.js/seal"`. Skip: modifiers — `@warlock.js/seal/compose-seal-modifiers/SKILL.md`; structural shapes — `@warlock.js/seal/define-structural-shape/SKILL.md`; competing libs `zod` `.safeParse`, `yup` `ValidationError`, `joi`.'
4
+ ---
5
+
6
+ # `ValidationResult` — reading errors
7
+
8
+ `validate(schema, data)` never throws. It returns a `ValidationResult`:
9
+
10
+ ```ts
11
+ type ValidationResult = {
12
+ isValid: boolean;
13
+ data: any; // shape after mutators + transformers (the validated value)
14
+ errors: ValidationError[];
15
+ };
16
+
17
+ type ValidationError = {
18
+ type: string; // rule type that failed — "required", "email", "min", "string", ...
19
+ error: string; // resolved message (translated, with attribute substitution)
20
+ input: string; // input field name — "email" or "address.city"
21
+ };
22
+ ```
23
+
24
+ Branch on `isValid` first; reach for `errors[]` only when you need to act on a specific failure.
25
+
26
+ ## Basic flow
27
+
28
+ ```ts
29
+ import { validate, v } from "@warlock.js/seal";
30
+
31
+ const schema = v.object({
32
+ email: v.string().email(),
33
+ age: v.int().min(13).optional(),
34
+ });
35
+
36
+ const result = await validate(schema, input);
37
+
38
+ if (result.isValid) {
39
+ return result.data; // typed as the inferred shape (post-transformer)
40
+ }
41
+
42
+ return {
43
+ status: 422,
44
+ body: { errors: result.errors },
45
+ };
46
+ ```
47
+
48
+ ## Branching on a specific rule
49
+
50
+ ```ts
51
+ const result = await validate(schema, input);
52
+
53
+ if (!result.isValid) {
54
+ const emailMissing = result.errors.find(
55
+ e => e.input === "email" && e.type === "required",
56
+ );
57
+ if (emailMissing) {
58
+ return { redirect: "/signup", reason: "no email" };
59
+ }
60
+
61
+ const ageInvalid = result.errors.find(
62
+ e => e.input === "age" && (e.type === "int" || e.type === "min"),
63
+ );
64
+ if (ageInvalid) {
65
+ return { error: "Age must be 13 or older" };
66
+ }
67
+ }
68
+ ```
69
+
70
+ The `type` field is the **stable** identifier — the message is human-facing and may be localized. Branch on `type`, never on the message string.
71
+
72
+ ## Common rule type names
73
+
74
+ These are the strings you'll see in `error.type`:
75
+
76
+ The `type` is the rule's own `name` field — not the method you called. Several methods map to one shared rule name (e.g. `.min()` / `.minLength()` on a string both surface as `minLength`; `.sameAs()` surfaces as `equalsField`). The table below lists the actual `type` strings:
77
+
78
+ | Type | Produced by |
79
+ | --- | --- |
80
+ | `required`, `present` | `.required()`, `.present()` (note: `.optional()` has no error type — it clears the required rule) |
81
+ | `requiredIf`, `requiredWith`, `requiredWithout`, `requiredUnless` | conditional required methods |
82
+ | `string`, `number`, `int`, `float`, `boolean`, `scalar`, `object`, `array`, `date` | type guards from `matchesType` |
83
+ | `minLength`, `maxLength`, `betweenLength`, `length` | string / array length rules (`.min`/`.max` on a string alias to `minLength`/`maxLength`) |
84
+ | `min`, `max`, `betweenNumbers` | number range rules (`.min`/`.max`/`.between` on a number) |
85
+ | `email`, `url`, `uuid`, `pattern`, `matches` | string format rules (`.pattern()` → `pattern`) |
86
+ | `literal`, `enum`, `in`, `allowedValues`, `notAllowedValues` | value-membership rules (`.oneOf` aliases `in`; `.notIn`/`.forbids` → `notAllowedValues`; `.allowsOnly` → `allowedValues`) |
87
+ | `instanceof` | `v.instanceof(Ctor)` |
88
+ | `equalsField`, `notEqualsField` | cross-field equality (`.sameAs` → `equalsField`; `.differentFrom` → `notEqualsField`) |
89
+ | `minDate`, `maxDate`, `beforeField`, `afterField`, `today`, `past`, `future`, `weekDay`, `weekend`, `businessDay`, `birthday` | date rules (`.min`/`.max` → `minDate`/`maxDate`; `.before`/`.after` → `beforeField`/`afterField`) |
90
+
91
+ If you write custom rules, the `type` name you set on the rule object is what shows up here. Pick stable, kebab-or-camel-case names — they become a public API.
92
+
93
+ ## Customizing error messages
94
+
95
+ Two layers:
96
+
97
+ ```ts
98
+ v.string().email("Please enter a valid email address").required("Email is required");
99
+ // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
100
+ // per-rule override per-rule override
101
+ ```
102
+
103
+ Each chain method takes an optional `errorMessage` as its last argument. That overrides the rule's `defaultErrorMessage`. Use it when a single rule needs a tailored message in a specific schema.
104
+
105
+ For project-wide message overrides, hook into the translation layer (the framework calls `resolveTranslation` with the rule context — wire up your own `t()` function via `SealConfig`).
106
+
107
+ ## Translation params
108
+
109
+ Rules can stash dynamic substitution params on the context. The default messages reference them:
110
+
111
+ ```
112
+ "The :input must be at least :min characters"
113
+ ```
114
+
115
+ `:input` is the field name (or its translated display name); `:min` and others come from rule-specific metadata. If you need to render the message yourself in a custom UI, the params are available on the rule's context.
116
+
117
+ For attribute display names ("email" → "Email Address"), use `.attributes({ email: "Email Address" })` on the parent `v.object` or pass via the `validate()` options. The `:input` placeholder picks up the configured display name.
118
+
119
+ ## When to throw
120
+
121
+ Don't wrap `validate()` in try/catch for *validation* failures — those land in `result.errors`. The only thing that *throws* is a programming bug:
122
+
123
+ - A rule's callback threw (e.g. you wrote `async validate() { throw new Error(...) }`).
124
+ - A transformer threw on output.
125
+ - A mutator threw on input.
126
+
127
+ Those are bugs — fix them. Don't try/catch them in app code as a way to handle bad input.
128
+
129
+ ## At the framework boundary
130
+
131
+ If you're surfacing seal errors through HTTP / RPC, the typical shape is:
132
+
133
+ ```ts
134
+ if (!result.isValid) {
135
+ return reply.code(422).send({
136
+ error: "validation_failed",
137
+ fields: result.errors.map(e => ({
138
+ field: e.input,
139
+ type: e.type,
140
+ message: e.error,
141
+ })),
142
+ });
143
+ }
144
+ ```
145
+
146
+ Avoid leaking `result.data` back to the client when rejecting — it might contain transformed sensitive fields.
147
+
148
+ For server-side logs, log `errors[]` with the field paths and rule types; redact values unless you're certain the field isn't sensitive. The `@warlock.js/logger` redaction layer is the right place to enforce that.
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: overview
3
+ description: 'Front-door orientation for `@warlock.js/seal` — framework-agnostic, type-safe validation. The `v` factory builds schemas, `validate(schema, data)` runs them, `Infer<typeof schema>` extracts the type. Primitives, structural shapes (object/array/record/tuple/union/discriminatedUnion/lazy), modifiers, mutators, a plugin system, JSON-Schema export, and a Standard Schema bridge. TRIGGER when: code imports `v`, `validate`, or `Infer` from `@warlock.js/seal`; user asks "what does @warlock.js/seal do", "validation library for Warlock", "compare seal with zod / yup / valibot", "infer a type from a schema", "JSON schema from a validator", "Standard Schema interop"; package.json adds `@warlock.js/seal`. Skip: specific task already known — load the matching task skill directly (`seal-basics`, `pick-seal-primitive`, `define-structural-shape`, `compose-seal-modifiers`, `handle-seal-errors`, `generate-json-schema`, `bridge-standard-schema`, `extend-seal-with-plugins`); framework-specific validators (FileValidator, database rules) live in `@warlock.js/core/v`, not here.'
4
+ ---
5
+
6
+ # `@warlock.js/seal` — overview
7
+
8
+ A type-safe, framework-agnostic validation library. You build a schema with the `v` factory, run it with `validate(schema, data)`, and pull the static type out with `Infer<typeof schema>`. One schema is the runtime check *and* the TypeScript type *and* (optionally) a JSON Schema.
9
+
10
+ Standalone — no framework required. Ships built-in with `@warlock.js/core`, which adds framework-specific validators (file uploads, database existence/uniqueness rules) on top.
11
+
12
+ ## When to reach for it
13
+
14
+ - You want a single source of truth for a shape — runtime validation, the TS type, and JSON Schema all from one declaration.
15
+ - You'd reach for **zod** / **yup** / **valibot** but want the library the rest of Warlock already speaks (request validation, AI tool inputs, Cascade model schemas).
16
+ - You need **JSON Schema output** for OpenAI structured outputs or an OpenAPI spec.
17
+
18
+ Skip if you only need framework-bound validators (file uploads, DB rules) — those live in `@warlock.js/core/v`, which extends this package.
19
+
20
+ ## The mental model in one paragraph
21
+
22
+ `v` is a builder: `v.string()`, `v.int()`, `v.object({...})`, `v.array(...)`, and so on, chained with modifiers (`.optional()`, `.nullable()`, `.default(...)`, `.min(...)`). `validate(schema, data)` returns a `ValidationResult` with `isValid`, `data` (the validated value), and `errors[]`. `Infer<typeof schema>` gives you the static type (with `Infer.Input` / `Infer.Output` distinguishing pre- and post-transform shapes). Because every schema implements Standard Schema, it slots into any `StandardSchemaV1<T>` consumer — and `schema.toJsonSchema(target)` emits JSON Schema for external tools.
23
+
24
+ ## Skills index
25
+
26
+ Eight task skills. Most schemas only need `seal-basics` + `pick-seal-primitive` + `define-structural-shape`.
27
+
28
+ ### Foundations
29
+
30
+ #### [`seal-basics/`](../seal-basics/SKILL.md)
31
+ Start here. The `v` factory, `validate(schema, data)`, and `Infer<typeof schema>`.
32
+
33
+ ### Building schemas
34
+
35
+ #### [`pick-seal-primitive/`](../pick-seal-primitive/SKILL.md)
36
+ Choose the right primitive — `string` / `int` / `literal` / `date` / `enum` / `computed` / `managed` / `instanceof` / `any`. Covers the close calls (`string` vs `scalar`, `int` vs `number`, `literal` vs `enum`).
37
+
38
+ #### [`define-structural-shape/`](../define-structural-shape/SKILL.md)
39
+ Compose `v.object` / `v.array` / `v.record` / `v.tuple` / `v.union` / `v.discriminatedUnion` / `v.lazy` — object schemas, dynamic-keyed records, tagged unions, recursive shapes.
40
+
41
+ #### [`compose-seal-modifiers/`](../compose-seal-modifiers/SKILL.md)
42
+ Cross-cutting modifiers — `.optional` / `.nullable` / `.default` / `.catch` / `.omit` / membership rules — plus the mutator-vs-transformer pipeline and `Infer.Input` vs `Infer.Output`.
43
+
44
+ ### Output + interop
45
+
46
+ #### [`handle-seal-errors/`](../handle-seal-errors/SKILL.md)
47
+ Read a `ValidationResult` — `isValid`, `errors[]`, `data`. Branch on `error.type`, customize messages, hook translation.
48
+
49
+ #### [`generate-json-schema/`](../generate-json-schema/SKILL.md)
50
+ `schema.toJsonSchema(target)` — draft-2020-12 / draft-07 / openapi-3.0 / openai-strict. For OpenAI structured outputs, OpenAPI specs, any JSON-Schema consumer.
51
+
52
+ #### [`bridge-standard-schema/`](../bridge-standard-schema/SKILL.md)
53
+ Standard Schema interop — why a `StandardSchemaV1<T>` slot might reject a schema, the phantom-intersection at the `v` factory return, Cascade `Model<TSchema>` variance. For migrating off `as unknown as` casts.
54
+
55
+ #### [`extend-seal-with-plugins/`](../extend-seal-with-plugins/SKILL.md)
56
+ Author a plugin to add validator methods (`.slug`, `.postalCode`, …) — the `SealPlugin` shape, `registerPlugin` lifecycle, TS prototype augmentation.
57
+
58
+ ## Configuration
59
+
60
+ `configureSeal({ ... })` sets global behavior (translation hooks, first-error-only mode); `getSealConfig()` reads it; `resetSealConfig()` clears it. Most apps call `configureSeal` once at boot to wire i18n.
61
+
62
+ ## What this package deliberately doesn't do
63
+
64
+ - **Framework-bound validation.** File-upload and database (exists/unique) rules live in `@warlock.js/core/v`, which builds on this package.
65
+ - **Coercion by default.** Seal validates the shape you declare; reshaping is explicit via mutators/transformers, not silent coercion.
66
+ - **Async-everywhere.** `validate()` is async to support rules that need it, but the core primitives are synchronous checks.
67
+
68
+ ## See also
69
+
70
+ - [`@warlock.js/cascade`](../../cascade/skills/overview/SKILL.md) — uses seal schemas as `Model.schema`.
71
+ - [`@warlock.js/core`](../../core/skills/overview/SKILL.md) — re-exports `v` (aliased) and adds framework validators in `core/v`.
72
+ - [`mongez-agent-kit-authoring-skills`](../../../../domains/shared/skills/) (load via agent-kit sync) — how this becomes `.claude/skills/warlock-js-seal-overview/`.
@@ -0,0 +1,133 @@
1
+ ---
2
+ name: pick-seal-primitive
3
+ description: 'Pick the right `v` factory primitive — string / int / literal / date / enum / computed / managed / instanceof / any. Triggers: `v.string`, `v.email`, `v.number`, `v.int`, `v.float`, `v.numeric`, `v.boolean`, `v.scalar`, `v.date`, `v.literal`, `v.enum`, `v.instanceof`, `v.computed`, `v.managed`, `v.any`; "v.string vs v.scalar", "v.literal vs v.enum", "v.date vs v.instanceof(Date)", "what is v.computed"; typical import `import { v } from "@warlock.js/seal"`. Skip: structural shapes — `@warlock.js/seal/define-structural-shape/SKILL.md`; modifiers — `@warlock.js/seal/compose-seal-modifiers/SKILL.md`; competing libs `zod`, `valibot`, `yup`.'
4
+ ---
5
+
6
+ # Picking the right primitive
7
+
8
+ This is the orientation skill — *which* primitive for *which* job. For the chainable methods on each (`.email()`, `.min()`, `.between()`, etc.), load the matching `*-methods.md` reference file in this skill folder.
9
+
10
+ ## Strings
11
+
12
+ ```ts
13
+ v.string() // type: string — full surface in string-methods.md
14
+ v.email() // shorthand for v.string().email()
15
+ v.enum(["a", "b"]) // type: "a" | "b" — runs as v.string().oneOf, but the factory overload preserves the literal union
16
+ ```
17
+
18
+ Reach for `v.string()` for any text input. `v.email()` is just sugar — switch back to `v.string().email().min(...)` when you need extra rules.
19
+
20
+ ## Numbers — pick by what you accept
21
+
22
+ | Validator | Accepts | When |
23
+ |---|---|---|
24
+ | `v.number()` | any finite number | accepts both integers and floats |
25
+ | `v.int()` | integers only | rejects `1.5` |
26
+ | `v.float()` | finite, non-integer | rejects `1` |
27
+ | `v.numeric()` | numeric strings + numbers | form/query inputs that arrive as `"42"` — coerces to number |
28
+
29
+ All four share the same chain surface (see [`number-methods.md`](./number-methods.md)). Picking is about input acceptance, not chain power.
30
+
31
+ ## Booleans & scalars
32
+
33
+ ```ts
34
+ v.boolean() // type: boolean — adds .accepted() / .declined() for form-style inputs
35
+ v.scalar() // type: string | number | boolean — usually a smell pointing at a missing discriminator
36
+ ```
37
+
38
+ Use `v.scalar()` only when the field truly accepts any of the three primitives. If it's "one of N specific values across types", `v.literal(...)` is cleaner.
39
+
40
+ ## Dates
41
+
42
+ ```ts
43
+ v.date() // type: Date — normalizes strings/timestamps to Date, rich rule surface
44
+ v.instanceof(Date) // type: Date — raw instanceof, no normalization, no rules
45
+ ```
46
+
47
+ `v.date()` is the right tool 99% of the time — it ships `.min/.max/.before/.after/.weekDay/.minAge/...` and a built-in mutator that parses strings. `v.instanceof(Date)` is the escape hatch when you specifically need strict instance identity with zero coercion.
48
+
49
+ ## Literals & instances
50
+
51
+ ```ts
52
+ v.literal("items") // type: "items"
53
+ v.literal("draft", "published", "archived") // type: "draft" | "published" | "archived"
54
+ v.literal(1, 2, 3) // type: 1 | 2 | 3
55
+ v.literal(true) // type: true
56
+
57
+ v.instanceof(File) // type: File
58
+ v.instanceof(Buffer) // type: Buffer
59
+ v.instanceof(MyClass) // type: MyClass
60
+ ```
61
+
62
+ **`v.literal` vs `v.string().oneOf([...])` vs `v.enum([...])`:**
63
+
64
+ - `v.literal("a", "b")` infers as `"a" | "b"` (literal narrowing). **Use this for discriminator fields.**
65
+ - `v.string().oneOf(["a", "b"])` infers as `string` (loses literal types). Use when broad type is fine.
66
+ - `v.enum(["a", "b"])` runs the same `oneOf` rule at runtime (it builds a `StringValidator().oneOf(...)`), but the `v.enum` factory overload **preserves the literal union** — it infers `"a" | "b"`, not `string`. Pass a TS enum object (`v.enum(Direction)`) and it uses `Object.values`, inferring `Direction[keyof Direction]`.
67
+
68
+ `v.instanceof(Ctor)` for File/Buffer/Uint8Array/custom classes. Returns `{}` from `toJsonSchema()` (not representable). For OpenAPI `File`, attach `{ type: "string", format: "binary" }` manually after generation.
69
+
70
+ ## `v.any` — escape hatch
71
+
72
+ ```ts
73
+ v.any() // type: any — skips validation entirely
74
+ ```
75
+
76
+ Reach for it when you genuinely don't care about the shape. Usually a smell — search PRs for it and ask whether a real schema would catch a class of bugs.
77
+
78
+ ## Derived: `v.computed` and `v.managed`
79
+
80
+ These two **don't validate input** — they produce a value as part of validation.
81
+
82
+ ```ts
83
+ v.object({
84
+ firstName: v.string(),
85
+ lastName: v.string(),
86
+ fullName: v.computed<string>((data) => `${data.firstName} ${data.lastName}`),
87
+ createdAt: v.managed<Date>(() => new Date()),
88
+ createdBy: v.managed<string>((context) => context.context?.userId),
89
+ });
90
+ ```
91
+
92
+ - **`v.computed`** runs after sibling validation; callback signature is `(data, context)` — `data` is the validated sibling object. Use for derived values (full name, hash of fields, computed totals). An optional second arg validates the result: `v.computed<string>(cb, v.string().min(3))`.
93
+ - **`v.managed`** runs from `SchemaContext` only — callback signature is `(context)`. Caller-supplied extras passed to `validate(schema, data, { context })` land on `context.context`. Use for framework-injected values — timestamps, current user, request id. The callback is optional (`v.managed()`) for values the framework injects without a generator.
94
+
95
+ Both are **skipped** when their parent `v.object` generates JSON Schema — they never appear in `properties`, since they're runtime-only and not part of the JSON contract an LLM or external API consumer reads. Calling `.toJsonSchema()` *directly* on a `v.computed` / `v.managed` validator **throws** (it's a programming error — let the parent object skip them).
96
+
97
+ ## Quick map — "I need to validate…"
98
+
99
+ | Need | Reach for |
100
+ |---|---|
101
+ | Email | `v.string().email()` or `v.email()` |
102
+ | URL | `v.string().url()` |
103
+ | UUID | `v.string().uuid()` (see [`string-methods.md`](./string-methods.md)) |
104
+ | Number 0–100 | `v.number().between(0, 100)` |
105
+ | Positive integer | `v.int().positive()` |
106
+ | One of N constants | `v.literal(...values)` |
107
+ | One of TS enum values | `v.enum(MyEnum)` |
108
+ | Date in the past | `v.date().past()` |
109
+ | File upload | `v.instanceof(File)` |
110
+ | Class instance (not Date) | `v.instanceof(Ctor)` |
111
+ | Discriminated union | see [`@warlock.js/seal/define-structural-shape/SKILL.md`](@warlock.js/seal/define-structural-shape/SKILL.md) |
112
+ | Derived value (computed from siblings) | `v.computed<T>(callback)` |
113
+ | Framework-injected value | `v.managed<T>(callback)` |
114
+ | Free-form / pass-through | `v.any()` (only when you've thought about it) |
115
+
116
+ ## Method-surface reference
117
+
118
+ Each primitive's full method list lives in a sibling file:
119
+
120
+ - [`string-methods.md`](./string-methods.md) — `.email` / `.url` / `.uuid` / `.pattern` / `.startsWith` / `.alpha` / `.trim` / `.slug` / `.mask` / `.base64Encode` / …
121
+ - [`number-methods.md`](./number-methods.md) — `.min` / `.max` / `.between` / `.greaterThan` / `.positive` / `.even` / `.multipleOf` / `.minSibling` / `.round` / …
122
+ - [`date-methods.md`](./date-methods.md) — `.min` / `.before` / `.after` / `.today` / `.past` / `.future` / `.weekDay` / `.minAge` / `.year` / `.quarter` / `.toISOString` / …
123
+ - [`boolean-methods.md`](./boolean-methods.md) — `.accepted` / `.declined` / `.mustBeTrue` / `.mustBeFalse` / `.acceptedIf` / `.declinedWithout` / …
124
+
125
+ For cross-cutting modifiers (`.optional`/`.nullable`/`.default`/`.catch`/`.in`/`.oneOf`), see [`@warlock.js/seal/compose-seal-modifiers/SKILL.md`](@warlock.js/seal/compose-seal-modifiers/SKILL.md). For containers (object/array/record/tuple/union), see [`@warlock.js/seal/define-structural-shape/SKILL.md`](@warlock.js/seal/define-structural-shape/SKILL.md).
126
+
127
+ ## Things NOT to do
128
+
129
+ - Don't `new ObjectValidator()` (or any class) directly — factory returns carry the StandardSchema bridge that bare instantiation loses.
130
+ - Don't pick `v.scalar` because "it's flexible". Flexibility at this layer usually means a missing discriminator — try `v.literal` or `v.union` first.
131
+ - Don't reach for `v.instanceof(Date)` when `v.date()` works. The latter is purpose-built.
132
+ - Don't use `v.string().oneOf(["a", "b"])` for discriminator fields where you need the literal type — use `v.literal("a", "b")`.
133
+ - Don't expect `v.computed` / `v.managed` to validate input — they ignore input shape entirely. Reach for them only when *producing* a value.
@@ -0,0 +1,71 @@
1
+ # `v.boolean()` — method reference
2
+
3
+ Picking guide is in [`@warlock.js/seal/pick-seal-primitive/SKILL.md`](@warlock.js/seal/pick-seal-primitive/SKILL.md). Membership rules (`.in`/`.oneOf`) inherited from PrimitiveValidator — see [`@warlock.js/seal/compose-seal-modifiers/SKILL.md`](@warlock.js/seal/compose-seal-modifiers/SKILL.md).
4
+
5
+ ## Strict equality
6
+
7
+ | Method | Effect |
8
+ |---|---|
9
+ | `.mustBeTrue(msg?)` | strictly `=== true` (rejects `"yes"`, `1`, `"on"`) |
10
+ | `.mustBeFalse(msg?)` | strictly `=== false` |
11
+
12
+ Use these when the field is a real boolean checkbox value — e.g. "agree to terms" must be exactly `true`, not a truthy string.
13
+
14
+ ## Form-style coercion — `accepted` / `declined`
15
+
16
+ The "accepted" rules treat `true`, `"yes"`, `"on"`, `1`, `"1"`, `"true"` as accepted. "Declined" treats their counterparts (`false`, `"no"`, `"off"`, `0`, etc.) as declined. Designed for form inputs where a checkbox/radio arrives as a string.
17
+
18
+ | Method | Effect |
19
+ |---|---|
20
+ | `.accepted(msg?)` | value must be accepted |
21
+ | `.declined(msg?)` | value must be declined |
22
+
23
+ ## Conditional variants — accepted
24
+
25
+ | Method | Args | Effect |
26
+ |---|---|---|
27
+ | `.acceptedIf(field, value, msg?)` | sibling field equals value | must be accepted in that case |
28
+ | `.acceptedUnless(field, value, msg?)` | sibling field equals value | must be accepted unless that's true |
29
+ | `.acceptedIfRequired(field, msg?)` | sibling field is required | — |
30
+ | `.acceptedIfPresent(field, msg?)` | sibling field is present | — |
31
+ | `.acceptedWithout(field, msg?)` | sibling field is absent | — |
32
+
33
+ ## Conditional variants — declined
34
+
35
+ | Method | Args | Effect |
36
+ |---|---|---|
37
+ | `.declinedIf(field, value, msg?)` | sibling field equals value | must be declined in that case |
38
+ | `.declinedUnless(field, value, msg?)` | sibling field equals value | must be declined unless that's true |
39
+ | `.declinedIfRequired(field, msg?)` | — | — |
40
+ | `.declinedIfPresent(field, msg?)` | — | — |
41
+ | `.declinedWithout(field, msg?)` | — | — |
42
+
43
+ All conditional variants only run inside `v.object` — sibling resolution silently passes otherwise.
44
+
45
+ ## JSON Schema mapping
46
+
47
+ - `v.boolean()` → `{ type: "boolean" }`
48
+ - `.mustBeTrue()` / `.mustBeFalse()` — not currently emitted (could add `const: true/false` in the future)
49
+ - `.accepted()` / `.declined()` and their conditional variants — runtime coercion concerns, not representable
50
+
51
+ ## Common chains
52
+
53
+ ```ts
54
+ // Strict consent checkbox
55
+ v.boolean().mustBeTrue("You must accept the terms")
56
+
57
+ // Form-style "remember me" — accepts "on" / true / 1
58
+ v.boolean().accepted().optional()
59
+
60
+ // Cross-field — newsletter must be accepted if subscriptionType = "premium"
61
+ v.object({
62
+ subscriptionType: v.string().oneOf(["free", "premium"]),
63
+ newsletter: v.boolean().acceptedIf("subscriptionType", "premium"),
64
+ })
65
+
66
+ // Marketing opt-in — declined unless region is GDPR-exempt
67
+ v.object({
68
+ region: v.string(),
69
+ marketingOptIn: v.boolean().declinedUnless("region", "US"),
70
+ })
71
+ ```