@warlock.js/seal 4.0.174 → 4.1.1

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
package/llms.txt ADDED
@@ -0,0 +1,17 @@
1
+ # Warlock Seal
2
+
3
+ > Package: `@warlock.js/seal`
4
+
5
+ > Comprehensive Validation library
6
+
7
+ ## Skills
8
+
9
+ - [bridge-standard-schema](@warlock.js/seal/bridge-standard-schema/SKILL.md): Diagnose `StandardSchemaV1` interop — phantom-intersection at the `v` factory return, why typed slots reject a schema, cascade `Model<TSchema>` variance. Triggers: `StandardSchemaV1`, `~standard`, `Infer`, `ObjectValidator`, `StringValidator`, `LiteralValidator`, `BaseValidator`, `Model<TSchema>`, `StandardJSONSchemaV1`, `Result<unknown>`; "StandardSchemaV1 slot rejecting my schema", "Result<unknown> error", "drop as unknown as cast", "cascade Model schema variance"; typical import `import { v, type Infer } from "@warlock.js/seal"`. Skip: foundations — `@warlock.js/seal/seal-basics/SKILL.md`; JSON Schema gen — `@warlock.js/seal/generate-json-schema/SKILL.md`; competing spec `@standard-schema/spec`.
10
+ - [compose-seal-modifiers](@warlock.js/seal/compose-seal-modifiers/SKILL.md): Apply cross-cutting modifiers — `.optional` / `.nullable` / `.default` / `.catch` / `.omit` / membership rules — plus the mutator-vs-transformer pipeline and `Infer.Input` vs `Infer.Output`. Triggers: `.optional`, `.required`, `.nullable`, `.default`, `.catch`, `.present`, `.requiredIf`, `.requiredWith`, `.in`, `.oneOf`, `.notIn`, `.omit`, `.attribute`, `.mutable`, `.addMutator`, `Infer.Input`, `Infer.Output`; "mark field optional in seal", "default value in schema", "mutator vs transformer", "when does .catch fire"; typical import `import { v, type Infer } from "@warlock.js/seal"`. Skip: primitives — `@warlock.js/seal/pick-seal-primitive/SKILL.md`; containers — `@warlock.js/seal/define-structural-shape/SKILL.md`; errors — `@warlock.js/seal/handle-seal-errors/SKILL.md`; competing `zod` `.optional`/`.default`.
11
+ - [define-structural-shape](@warlock.js/seal/define-structural-shape/SKILL.md): Compose `v.object` / `v.array` / `v.record` / `v.tuple` / `v.union` / `v.discriminatedUnion` / `v.lazy`. Triggers: `v.object`, `v.array`, `v.record`, `v.tuple`, `v.union`, `v.discriminatedUnion`, `v.lazy`, `ObjectValidator`; "how do I build an object schema", "dynamic-keyed record", "tagged union with discriminator", "recursive schema", "self-referencing schema"; typical import `import { v, type Infer } from "@warlock.js/seal"`. Skip: leaf primitives — `@warlock.js/seal/pick-seal-primitive/SKILL.md`; modifiers — `@warlock.js/seal/compose-seal-modifiers/SKILL.md`; standard-schema bridge — `@warlock.js/seal/bridge-standard-schema/SKILL.md`; competing libs `zod`, `valibot`.
12
+ - [extend-seal-with-plugins](@warlock.js/seal/extend-seal-with-plugins/SKILL.md): Author a custom seal plugin to add validator methods (`.slug`, `.postalCode`, etc) — `SealPlugin` shape, `registerPlugin` lifecycle, TS prototype augmentation. Triggers: `SealPlugin`, `registerPlugin`, `unregisterPlugin`, `hasPlugin`, `getInstalledPlugins`, `StringValidator`, `NumberValidator`, `DateValidator`, `BaseValidator`, `install`, `uninstall`; "how do I add a custom validator method", "write a seal plugin", "extend v.string with .slug", "module augmentation for seal"; typical import `import { StringValidator, registerPlugin, type SealPlugin } from "@warlock.js/seal"`. Skip: built-in primitives — `@warlock.js/seal/pick-seal-primitive/SKILL.md`; bridge typing — `@warlock.js/seal/bridge-standard-schema/SKILL.md`; competing `zod` `.refine`/`.transform`.
13
+ - [generate-json-schema](@warlock.js/seal/generate-json-schema/SKILL.md): 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`.
14
+ - [handle-seal-errors](@warlock.js/seal/handle-seal-errors/SKILL.md): 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`.
15
+ - [overview](@warlock.js/seal/overview/SKILL.md): 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.
16
+ - [pick-seal-primitive](@warlock.js/seal/pick-seal-primitive/SKILL.md): 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`.
17
+ - [seal-basics](@warlock.js/seal/seal-basics/SKILL.md): Start with @warlock.js/seal — the `v` factory, `validate(schema, data)`, and `Infer<typeof schema>`. Triggers: `v`, `validate`, `Infer`, `Infer.Input`, `Infer.Output`, `v.object`, `v.lazy`, `v.discriminatedUnion`, `v.computed`, `v.managed`, `ValidationResult`; "how do I start with seal", "what is the v factory", "validate a schema in warlock", "Infer.Input vs Infer.Output"; typical import `import { v, validate, type Infer } from "@warlock.js/seal"`. Skip: primitive picking — `@warlock.js/seal/pick-seal-primitive/SKILL.md`; modifiers — `@warlock.js/seal/compose-seal-modifiers/SKILL.md`; competing libs `zod`, `valibot`, `yup`, `joi`, `ajv`.
package/package.json CHANGED
@@ -1,49 +1,38 @@
1
1
  {
2
- "name": "@warlock.js/seal",
3
- "version": "4.0.174",
4
- "description": "Comprehensive Validation library",
5
- "main": "./cjs/index.js",
6
- "dependencies": {
7
- "@mongez/supportive-is": "^2.0.0",
8
- "dayjs": "^1.11.9"
9
- },
10
- "scripts": {
11
- "test": "vitest",
12
- "test:run": "vitest run",
13
- "test:coverage": "vitest run --coverage",
14
- "test:ui": "vitest --ui",
15
- "lint": "eslint ./tests/**/*.{ts,tsx,json,md}",
16
- "lint:fix": "eslint ./tests/**/*.{ts,tsx,json,md} --fix",
17
- "format": "prettier --write ./tests/**/*.{ts,tsx,json,md}",
18
- "format:check": "prettier --check ./tests/**/*.{ts,tsx,json,md}"
19
- },
20
- "repository": {
21
- "type": "git",
22
- "url": "https://github.com/warlockjs/seal"
23
- },
24
- "keywords": [
25
- "validation",
26
- "typescript",
27
- "framework-agnostic",
28
- "seal",
29
- "warlock.js"
30
- ],
31
- "author": "hassanzohdy",
32
- "license": "MIT",
33
- "devDependencies": {
34
- "@vitest/coverage-v8": "^4.0.6",
35
- "@vitest/ui": "^4.0.6",
36
- "@typescript-eslint/eslint-plugin": "^7.1.1",
37
- "@typescript-eslint/parser": "^7.1.1",
38
- "eslint": "^8.57.0",
39
- "eslint-config-prettier": "^9.1.0",
40
- "eslint-plugin-prettier": "^5.1.3",
41
- "eslint-plugin-unused-imports": "^3.1.0",
42
- "prettier": "^3.2.5",
43
- "prettier-plugin-organize-imports": "^3.2.4",
44
- "typescript": "^5.9.3",
45
- "vitest": "^4.0.6"
46
- },
47
- "module": "./esm/index.js",
48
- "typings": "./cjs/index.d.ts"
49
- }
2
+ "name": "@warlock.js/seal",
3
+ "description": "Comprehensive Validation library",
4
+ "keywords": [
5
+ "validation",
6
+ "typescript",
7
+ "framework-agnostic",
8
+ "seal",
9
+ "warlock.js"
10
+ ],
11
+ "author": "hassanzohdy",
12
+ "license": "MIT",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "https://github.com/warlockjs/seal"
16
+ },
17
+ "dependencies": {
18
+ "@mongez/supportive-is": "^2.1.3",
19
+ "@mongez/reinforcements": "^3.2.0",
20
+ "dayjs": "^1.11.9"
21
+ },
22
+ "version": "4.1.1",
23
+ "main": "./cjs/index.cjs",
24
+ "module": "./esm/index.mjs",
25
+ "types": "./esm/index.d.mts",
26
+ "exports": {
27
+ ".": {
28
+ "import": {
29
+ "types": "./esm/index.d.mts",
30
+ "default": "./esm/index.mjs"
31
+ },
32
+ "require": {
33
+ "types": "./esm/index.d.mts",
34
+ "default": "./cjs/index.cjs"
35
+ }
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,138 @@
1
+ ---
2
+ name: bridge-standard-schema
3
+ description: 'Diagnose `StandardSchemaV1` interop — phantom-intersection at the `v` factory return, why typed slots reject a schema, cascade `Model<TSchema>` variance. Triggers: `StandardSchemaV1`, `~standard`, `Infer`, `ObjectValidator`, `StringValidator`, `LiteralValidator`, `BaseValidator`, `Model<TSchema>`, `StandardJSONSchemaV1`, `Result<unknown>`; "StandardSchemaV1 slot rejecting my schema", "Result<unknown> error", "drop as unknown as cast", "cascade Model schema variance"; typical import `import { v, type Infer } from "@warlock.js/seal"`. Skip: foundations — `@warlock.js/seal/seal-basics/SKILL.md`; JSON Schema gen — `@warlock.js/seal/generate-json-schema/SKILL.md`; competing spec `@standard-schema/spec`.'
4
+ ---
5
+
6
+ # The Standard Schema bridge
7
+
8
+ Seal validators implement [Standard Schema V1](https://standardschema.dev) — every validator exposes a `~standard` member with `validate()`, JSON Schema metadata, and inferred types. Any consumer that accepts `StandardSchemaV1<T>` (`@warlock.js/ai` supervisor `output`, ai tool `input`, LangGraph state, OpenAI structured outputs, TanStack Form, Conform) accepts a seal schema directly.
9
+
10
+ This skill is about the **typing** of that interop — the phantom intersection that makes `v.object({...})` satisfy `StandardSchemaV1<T>` without `as unknown as` casts.
11
+
12
+ ## The shape of the bridge
13
+
14
+ The `v` factory returns aren't bare validator classes. Each factory widens its return with a phantom intersection:
15
+
16
+ ```ts
17
+ // Inside seal's factory:
18
+ object: <T extends Schema>(schema: T) =>
19
+ new ObjectValidator<T>(schema) as ObjectValidator<T>
20
+ & StandardSchemaV1<Infer<ObjectValidator<T>>>;
21
+
22
+ string: () =>
23
+ new StringValidator() as StringValidator & StandardSchemaV1<string>;
24
+
25
+ literal: <T extends readonly [...] >(...values: T) =>
26
+ new LiteralValidator<T>(values) as LiteralValidator<T> & StandardSchemaV1<T[number]>;
27
+
28
+ // ...one intersection per factory.
29
+ ```
30
+
31
+ The intersection is **only on the factory return type** — the `BaseValidator` and `ObjectValidator` *class* shapes are unchanged. That distinction is load-bearing: putting `Infer<this>` directly on `BaseValidator['~standard']` breaks `@warlock.js/cascade`'s `Model<TSchema>` because `ObjectValidator` becomes invariant when its members vary with `TSchema`. The factory-side intersection avoids that — bare classes in `Model.schema: ObjectValidator<TSchema>` slots are still structurally compatible with the typed factory return.
32
+
33
+ ## What this means for app code
34
+
35
+ You write the schema once, you use it anywhere a `StandardSchemaV1<T>` is expected, you never cast:
36
+
37
+ ```ts
38
+ import { v, validate, type Infer } from "@warlock.js/seal";
39
+ import { ai } from "@warlock.js/ai";
40
+
41
+ const userSchema = v.object({
42
+ email: v.string().email(),
43
+ age: v.int().optional(),
44
+ });
45
+
46
+ type User = Infer<typeof userSchema>;
47
+
48
+ // ✅ ai-side slot — no cast
49
+ ai.tool({
50
+ name: "create_user",
51
+ description: "Create a new user",
52
+ input: userSchema,
53
+ execute: async input => createUser(input),
54
+ });
55
+
56
+ // ✅ supervisor output — no cast
57
+ ai.supervisor({
58
+ name: "user-flow",
59
+ output: userSchema,
60
+ // ...
61
+ });
62
+
63
+ // ✅ direct validation — call ~standard
64
+ const result = await userSchema["~standard"].validate(rawData);
65
+ ```
66
+
67
+ ## `Infer<typeof schema>` vs hand-rolled types
68
+
69
+ Use `Infer<>`. Always:
70
+
71
+ ```ts
72
+ const schema = v.object({
73
+ email: v.string(),
74
+ blocks: v.array(v.literal("text", "image")).optional(),
75
+ });
76
+
77
+ type Output = Infer<typeof schema>;
78
+ // { email: string; blocks?: ("text" | "image")[] }
79
+ ```
80
+
81
+ Hand-rolled parallel types drift the moment a field changes — and seal's tightened typing now catches that drift at compile time. The old loose typing hid the mismatch; the bridge surfaces it.
82
+
83
+ ## When the bridge "fails"
84
+
85
+ Three failure modes you'll see in real projects:
86
+
87
+ ### 1. You annotated the schema with the bare class type
88
+
89
+ ```ts
90
+ // ❌ Discards the phantom intersection
91
+ const schema: ObjectValidator<{ email: StringValidator }> = v.object({...});
92
+
93
+ // ✅ Let inference run
94
+ const schema = v.object({...});
95
+ ```
96
+
97
+ The annotation strips `& StandardSchemaV1<...>` from the type. The schema stops fitting `StandardSchemaV1<T>` slots. Fix: remove the annotation. If you need the value type, use `Infer<typeof schema>`.
98
+
99
+ ### 2. The schema's inferred shape doesn't match the target type
100
+
101
+ ```ts
102
+ ai.supervisor<MyOutput, ...>({
103
+ output: schema, // ❌ schema infers differently from MyOutput
104
+ });
105
+ ```
106
+
107
+ The supervisor's explicit `<MyOutput>` generic is a constraint the schema must satisfy. If they diverge, TS rightly rejects. Two fixes:
108
+
109
+ - **Drop the explicit generic** — let the supervisor infer output type from the schema. The hand-rolled type was probably documentation-only anyway.
110
+ - **Align them** — if the hand-rolled type is the source of truth (e.g. a domain type from elsewhere), make the schema match.
111
+
112
+ ### 3. The error says `Result<unknown>` even though `Infer<>` resolves correctly
113
+
114
+ This is a TypeScript reporting quirk, not a bridge bug. When a `StandardSchemaV1<T>` slot rejects a schema, TS picks the simplest mismatch chain to report — often it falls through `BaseValidator['~standard'].validate`'s wider `Result<unknown>` declaration before reaching the factory-side narrower one. The intersection *is* there structurally, but the error message mentions `unknown`.
115
+
116
+ If you see this, ignore the `unknown` and ask: does `Infer<typeof schema>` match the slot's expected `T`? Probe with:
117
+
118
+ ```ts
119
+ type _Probe = Infer<typeof schema>;
120
+ const _force: { __nope: 1 } = null as unknown as _Probe;
121
+ // Hover the error to see the resolved shape, then compare to the slot's T.
122
+ ```
123
+
124
+ That's the real mismatch.
125
+
126
+ ## Why not `Omit<class, "~standard"> & StandardSchemaV1<T>`?
127
+
128
+ Tempting — it would force the factory's `~standard` to fully replace the class's wider one, fixing the misleading `Result<unknown>` error message. **Don't do it.** `Omit` on a class instance type triggers the same variance trap as putting `Infer<this>` on the class itself: cascade explodes with hundreds of `ObjectValidator<{specific}>` vs `ObjectValidator<TSchema>` errors. The phantom intersection is the only shape that satisfies both ends — narrower for typed slots, structurally identical to the class for cascade's invariant generic positions.
129
+
130
+ ## Why not import `@standard-schema/spec` instead of forking the types?
131
+
132
+ Seal forks the types locally. Reasons:
133
+
134
+ - Seal extends the spec with `StandardJSONSchemaV1` (JSON Schema converter on `~standard.jsonSchema`). The package doesn't have this — half-importing is the worst of both worlds.
135
+ - V1 spec is locked. The fork is ~70 lines and updates rarely.
136
+ - Avoids version-coupling pain across `@warlock.js/*` packages.
137
+
138
+ If V2 lands, re-fork. Until then the local copy is the right call.
@@ -0,0 +1,271 @@
1
+ ---
2
+ name: compose-seal-modifiers
3
+ description: 'Apply cross-cutting modifiers — `.optional` / `.nullable` / `.default` / `.catch` / `.omit` / membership rules — plus the mutator-vs-transformer pipeline and `Infer.Input` vs `Infer.Output`. Triggers: `.optional`, `.required`, `.nullable`, `.default`, `.catch`, `.present`, `.requiredIf`, `.requiredWith`, `.in`, `.oneOf`, `.notIn`, `.omit`, `.attribute`, `.mutable`, `.addMutator`, `Infer.Input`, `Infer.Output`; "mark field optional in seal", "default value in schema", "mutator vs transformer", "when does .catch fire"; typical import `import { v, type Infer } from "@warlock.js/seal"`. Skip: primitives — `@warlock.js/seal/pick-seal-primitive/SKILL.md`; containers — `@warlock.js/seal/define-structural-shape/SKILL.md`; errors — `@warlock.js/seal/handle-seal-errors/SKILL.md`; competing `zod` `.optional`/`.default`.'
4
+ ---
5
+
6
+ # Cross-cutting modifiers + the pipeline
7
+
8
+ This skill covers methods that work on **every** validator. Type-specific methods (`.email()`, `.min()` on strings, `.between()` on numbers, `.weekDay()` on dates, etc.) live in the per-type method references — see [`@warlock.js/seal/pick-seal-primitive/SKILL.md`](@warlock.js/seal/pick-seal-primitive/SKILL.md) and [`@warlock.js/seal/define-structural-shape/SKILL.md`](@warlock.js/seal/define-structural-shape/SKILL.md).
9
+
10
+ ## The pipeline
11
+
12
+ When `validate()` runs against a value, the order is:
13
+
14
+ ```
15
+ 1. default — fills if input is undefined
16
+ 2. mutators — reshape value (string → Date, .trim(), .toUTC())
17
+ 3. optional/required check — decide whether to run rules
18
+ 4. requiredRule — required-condition rule (.requiredIf, .requiredWith, etc.)
19
+ 5. rules — every other rule, in declaration order
20
+ 6. transformers — reshape value into data (.toISOString, .toLowerCase)
21
+ ```
22
+
23
+ If a rule fails, transformers don't run for that field.
24
+
25
+ **Mutator vs transformer mental model:**
26
+ - **Mutator** = pre-validation reshape. `v.date()` ships one that parses strings. Use when you want rules to see the reshaped value.
27
+ - **Transformer** = post-validation reshape. Lands in `data`. Use when you only care about the output form.
28
+
29
+ ```ts
30
+ // trim BEFORE length check — use a mutator
31
+ v.string().addMutator(s => s.trim()).min(3)
32
+ // " Hi " → mutator trims → "Hi" → fails min(3)
33
+
34
+ // trim only the OUTPUT — use a transformer (.trim() on string is a transformer)
35
+ v.string().min(3).trim()
36
+ // " Hi " → rules see " Hi " (length 6, passes min(3)) → trim → data = "Hi"
37
+ ```
38
+
39
+ ## `.required()` / `.optional()` / `.present()`
40
+
41
+ ```ts
42
+ v.string() // already required inside v.object — no need to call .required()
43
+ v.string().optional() // type: string | undefined — { isOptional: true } brand
44
+ v.string().present() // must exist, may be "" / null
45
+ v.string().required() // explicit form — same behavior, redundant
46
+ ```
47
+
48
+ **Required is the default inside `v.object`.** Most schemas read cleaner without `.required()` — `Infer<>` already shows what's required (no `?`) vs optional (`?`). Calling `.required()` explicitly is harmless and accepted, but the canonical seal style is to skip it. Keep `.optional()` explicit (it changes behavior); skip `.required()` (it doesn't).
49
+
50
+ The `{ isOptional: true }` brand survives chaining (`.optional().min(3)` is still optional) and `Infer<>` reads it to make the key optional.
51
+
52
+ **When `.required()` is still useful:**
53
+ - Visual contrast next to `.optional()` siblings when you want the asymmetry to be loud — style call.
54
+ - It's not needed for conditional rules — `.requiredIf(field, value)` and friends *replace* the default required-condition slot, so they work standalone.
55
+
56
+ Conditional variants (run inside `v.object` only):
57
+ - `.requiredIf(field, value)` / `.requiredIfSibling(field, value)`
58
+ - `.requiredWith(field)` / `.requiredWithSibling(field)`
59
+ - `.requiredWithout(field)` / `.requiredWithoutSibling(field)`
60
+ - `.requiredUnless(field, value)`
61
+ - `.requiredWhen(callback)` — predicate
62
+ - `.present()` / `.presentIf(field, value)` / `.presentUnless(field, value)`
63
+ - `.forbidden()` / `.forbiddenIf(field, value)` — opposite of present
64
+
65
+ ## `.nullable()` / `.notNullable()` / `.nullish()`
66
+
67
+ ```ts
68
+ v.string().nullable() // type: string | null
69
+ v.string().nullish() // sugar for .optional().nullable()
70
+ ```
71
+
72
+ Independent of optional — a field can be required *and* nullable. Defaults to non-nullable. The `{ isNullable: true }` brand widens both `Infer.Input` and `Infer.Output` with `| null`.
73
+
74
+ ## `.default(value | callback)`
75
+
76
+ ```ts
77
+ v.string().default("guest")
78
+ v.int().default(0)
79
+ v.date().default(() => new Date()) // lazy — fresh each validation
80
+ v.array(v.string()).default([])
81
+ ```
82
+
83
+ If input is `undefined` (or missing), the default is used and rules run against it. Pass a callback for fresh-per-run values. The default fires *before* rules — so `v.string().min(3).default("a")` fails because `"a"` is shorter than 3.
84
+
85
+ Date sugar: `v.date().defaultNow()` ≡ `.default(() => new Date())`.
86
+
87
+ The `{ hasDefault: true }` brand makes the key optional in `Infer.Input` (caller doesn't have to send it) and required in `Infer.Output` (data always has it).
88
+
89
+ ## `.catch(fallback)`
90
+
91
+ Rescues *failed* validation by substituting a fallback. Complement to `.default()`:
92
+
93
+ - `.default(x)` fires when input is **absent**
94
+ - `.catch(y)` fires when input is **present but invalid**
95
+
96
+ ```ts
97
+ const config = v.object({
98
+ retries: v.int().min(0).catch(3),
99
+ region: v.string().in(["us", "eu"]).catch("us"),
100
+ features: v.array(v.string()).catch([]),
101
+ });
102
+
103
+ await validate(config, { retries: "five", region: null, features: "x" });
104
+ // { isValid: true, data: { retries: 3, region: "us", features: [] } }
105
+ ```
106
+
107
+ The fallback can be a value or a callback `(errors, originalInput) => fallback` — the callback variant is the only side-channel for the swallowed errors. Use it to log/alert before substituting.
108
+
109
+ **Scope (v1).** Catch is honoured for **leaf validators** (string, number, boolean, date, …) and for fields inside containers. It is a **no-op on container validators themselves** (`v.object`, `v.array`, `v.record`, `v.tuple`, `v.discriminatedUnion`) — those use their own iteration logic that bypasses the catch hook. To rescue a whole-container failure, wrap the call site in your own try/catch instead.
110
+
111
+ **Best used for:** LLM output parsing, third-party API responses, config files, any data where the cost of failure is higher than the cost of a wrong value. Overuse masks real bugs — reach for it deliberately.
112
+
113
+ The `{ hasCatch: true }` brand has the same effect on `Infer.Input`/`Infer.Output` as `{ hasDefault: true }`.
114
+
115
+ ## `Infer.Input` vs `Infer.Output`
116
+
117
+ The two inference helpers describe the two halves of the pipeline:
118
+
119
+ ```ts
120
+ const schema = v.object({
121
+ bio: v.string().optional(),
122
+ status: v.enum(Status).optional().default(Status.ACTIVE),
123
+ retries: v.int().catch(3),
124
+ });
125
+
126
+ type In = Infer.Input<typeof schema>;
127
+ // {
128
+ // bio?: string;
129
+ // status?: Status; ← default makes caller optional
130
+ // retries?: number; ← catch makes caller optional
131
+ // }
132
+
133
+ type Out = Infer.Output<typeof schema>;
134
+ // {
135
+ // bio?: string;
136
+ // status: Status; ← default guarantees a value
137
+ // retries: number; ← catch guarantees a value
138
+ // }
139
+
140
+ type Default = Infer<typeof schema>; // alias for Infer.Input
141
+ ```
142
+
143
+ **When to reach for which:**
144
+ - `Infer.Input<T>` (or bare `Infer<T>`) — for HTTP request bodies, form payloads, DTOs, anything pre-validation. **The common case in HTTP-shaped code.**
145
+ - `Infer.Output<T>` — for Cascade `Model<>` params, validated state, anywhere downstream of `validate()`.
146
+
147
+ Both widen with `| null` when `.nullable()` is set.
148
+
149
+ ## Absent vs empty vs invalid — what `data` actually contains
150
+
151
+ Three failure modes, three different rescue mechanisms:
152
+
153
+ | Input state | Rescued by | What appears in `data` |
154
+ | --- | --- | --- |
155
+ | Field absent | `.default(x)` | `x` |
156
+ | Field absent (no default) | `.optional()` | Key omitted entirely |
157
+ | Field present and invalid | `.catch(y)` | `y` |
158
+ | Field is `null` | `.nullable()` | `null` |
159
+ | Field present, empty (`""`, `[]`, `{}`) | (none needed — empty is a valid value) | Preserved as-is |
160
+
161
+ Full truth table for an `.optional()` field inside `v.object(…)`:
162
+
163
+ | Input | What appears in `data` |
164
+ | --- | --- |
165
+ | Field absent | Key **omitted entirely** (not `undefined`-valued) |
166
+ | Field is explicit `undefined` | Key omitted (treated identically to absent) |
167
+ | Field is `null` (no `.nullable()`) | Key omitted — for an **optional** field, `null` coalesces to empty and the (cleared) required rule doesn't fire. On a **required** field the same `null` triggers a validation error. |
168
+ | Field is `null` with `.nullable()` | Key is `null` |
169
+ | Field present and empty (`""`, `[]`, `{}`) | Preserved as-is — empty ≠ absent |
170
+ | Field is `.default(x)` and absent | Key is `x` (default fires, then rules run on `x`) |
171
+ | Field is `.default(x)` and present | Caller value wins; default is unused |
172
+ | Field is `.catch(y)` and validation fails | Key is `y` (catch rescues) |
173
+
174
+ ```ts
175
+ const schema = v.object({
176
+ metadata: v.record(v.string()).optional(),
177
+ embedding: v.array(v.number()).optional(),
178
+ });
179
+
180
+ (await validate(schema, {})).data
181
+ // → {} — neither key appears
182
+ // (NOT { metadata: {}, embedding: [] })
183
+
184
+ (await validate(schema, { metadata: {}, embedding: [] })).data
185
+ // → { metadata: {}, embedding: [] } — present-empty is preserved
186
+ ```
187
+
188
+ **Why the distinction matters.** Persistence layers see `key in data` as "user touched this column". Synthesizing `{}` / `[]` for absent input would write empty values to the DB, defeat `$exists` filters, and confuse "I cleared this" vs "I never set this" downstream. Cascade models, Standard-Schema consumers, and JSON serializers all depend on this contract.
189
+
190
+ Collection validators (`v.record`, `v.array`, `v.tuple`) explicitly honor this — they used to coerce absent input to empty containers (a long-standing bug), but now propagate `undefined` so the parent `v.object` correctly omits the key.
191
+
192
+ ## Membership rules (inherited by every primitive)
193
+
194
+ Available on `v.string()`, `v.number()`, `v.int()`, `v.float()`, `v.boolean()`, `v.scalar()`:
195
+
196
+ ```ts
197
+ v.string().in(["admin", "user", "guest"]) // value must match one
198
+ v.string().oneOf(["a", "b"]) // alias for .in
199
+ v.string().notIn(["banned", "blocked"]) // value must NOT match
200
+ v.string().forbids(["banned"]) // alias for .notIn
201
+ v.number().allowsOnly([1, 2, 3]) // stricter — explicit allowlist
202
+ v.string().enum(MyTSEnum) // accepts a TS enum object via Object.values
203
+ ```
204
+
205
+ For literal-typed narrowing (`"admin" | "user" | "guest"` instead of `string`), use `v.literal(...)` instead — `oneOf` keeps the broader primitive type.
206
+
207
+ ## `.omit()` / `.exclude()`
208
+
209
+ ```ts
210
+ v.object({
211
+ email: v.string(),
212
+ password: v.string(),
213
+ passwordConfirm: v.string().sameAs("password").omit(),
214
+ })
215
+ ```
216
+
217
+ `.omit()` keeps the field in *validation* but drops it from `data` and from `Infer<>`. Use for confirmation/checksum fields that exist only for cross-field rules. `.exclude()` is the same idea, used internally for managed/computed plumbing.
218
+
219
+ ## `.label("Display Name")` — field display name
220
+
221
+ To control the `:input` placeholder in a field's own messages, call `.label()` on the field validator:
222
+
223
+ ```ts
224
+ v.object({
225
+ email_address: v.string().label("Email Address"),
226
+ })
227
+ // Error message: "The Email Address is required" (instead of "The email_address is required")
228
+ ```
229
+
230
+ `.label(x)` sets the field's `:input` attribute, so every rule message for that field renders the friendly name.
231
+
232
+ ### `.attributes({ ... })` is a different tool
233
+
234
+ `.attributes()` does NOT relabel a field's own `:input`. It supplies named substitution values consumed by the translation layer and by rules that reference *other* fields (e.g. `matches`):
235
+
236
+ ```ts
237
+ v.string().sameAs("confirmPassword").attributes({
238
+ matches: { confirmPassword: "Confirm Password" },
239
+ })
240
+ ```
241
+
242
+ For per-field display names use `.label()`; for translated messages wire the `translateRule` / `translateAttribute` hooks via `configureSeal()`.
243
+
244
+ ## Mutability — `.mutable` / `.immutable`
245
+
246
+ Validators are **immutable by default**. Every chain method returns a clone:
247
+
248
+ ```ts
249
+ const baseString = v.string();
250
+ const required = baseString.required();
251
+ // baseString is unchanged
252
+ ```
253
+
254
+ This matters because schemas are often shared (`Model.schema = v.object({...})`). If chaining mutated, every reuse would carry forward the previous chain's state.
255
+
256
+ Toggle in-place with the `.mutable` getter (rare):
257
+
258
+ ```ts
259
+ const schema = v.string().mutable.required().min(3);
260
+ // Same instance throughout — useful when building dynamically
261
+ ```
262
+
263
+ Switch back with `.immutable`. Default is fine 99% of the time. Reach for `.mutable` only when you've thought about who else holds a reference.
264
+
265
+ ## Things NOT to do
266
+
267
+ - Don't put a transformer where a mutator belongs — `.trim()` is a transformer; if you need trimming *before* `.min()`, use `.addMutator(s => s.trim())`.
268
+ - Don't combine `.required()` and `.optional()` on the same chain — last wins, but the intent is unclear; pick one.
269
+ - Don't chain `.default("a")` with `.min(3)` and expect `"a"` to pass — the default goes through rules.
270
+ - Don't expect `.requiredIf()` to work on a standalone validator outside `v.object` — sibling resolution silently passes.
271
+ - Don't mutate a schema you handed to a Model. Default immutability protects you; opting into `.mutable` on shared schemas is asking for confusion.