@warlock.js/seal 3.0.14

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 (642) hide show
  1. package/README.md +373 -0
  2. package/cjs/config.d.ts +48 -0
  3. package/cjs/config.d.ts.map +1 -0
  4. package/cjs/config.js +42 -0
  5. package/cjs/config.js.map +1 -0
  6. package/cjs/factory/index.d.ts +3 -0
  7. package/cjs/factory/index.d.ts.map +1 -0
  8. package/cjs/factory/validate.d.ts +8 -0
  9. package/cjs/factory/validate.d.ts.map +1 -0
  10. package/cjs/factory/validate.js +21 -0
  11. package/cjs/factory/validate.js.map +1 -0
  12. package/cjs/factory/validators.d.ts +32 -0
  13. package/cjs/factory/validators.d.ts.map +1 -0
  14. package/cjs/factory/validators.js +38 -0
  15. package/cjs/factory/validators.js.map +1 -0
  16. package/cjs/helpers/date-helpers.d.ts +16 -0
  17. package/cjs/helpers/date-helpers.d.ts.map +1 -0
  18. package/cjs/helpers/date-helpers.js +25 -0
  19. package/cjs/helpers/date-helpers.js.map +1 -0
  20. package/cjs/helpers/get-field-value.d.ts +37 -0
  21. package/cjs/helpers/get-field-value.d.ts.map +1 -0
  22. package/cjs/helpers/get-field-value.js +40 -0
  23. package/cjs/helpers/get-field-value.js.map +1 -0
  24. package/cjs/helpers/index.d.ts +5 -0
  25. package/cjs/helpers/index.d.ts.map +1 -0
  26. package/cjs/helpers/path-helpers.d.ts +5 -0
  27. package/cjs/helpers/path-helpers.d.ts.map +1 -0
  28. package/cjs/helpers/path-helpers.js +8 -0
  29. package/cjs/helpers/path-helpers.js.map +1 -0
  30. package/cjs/helpers/validation-helpers.d.ts +4 -0
  31. package/cjs/helpers/validation-helpers.d.ts.map +1 -0
  32. package/cjs/helpers/validation-helpers.js +39 -0
  33. package/cjs/helpers/validation-helpers.js.map +1 -0
  34. package/cjs/index.d.ts +29 -0
  35. package/cjs/index.d.ts.map +1 -0
  36. package/cjs/index.js +1 -0
  37. package/cjs/index.js.map +1 -0
  38. package/cjs/mutators/array-mutators.d.ts +12 -0
  39. package/cjs/mutators/array-mutators.d.ts.map +1 -0
  40. package/cjs/mutators/array-mutators.js +37 -0
  41. package/cjs/mutators/array-mutators.js.map +1 -0
  42. package/cjs/mutators/date-mutators.d.ts +39 -0
  43. package/cjs/mutators/date-mutators.d.ts.map +1 -0
  44. package/cjs/mutators/date-mutators.js +120 -0
  45. package/cjs/mutators/date-mutators.js.map +1 -0
  46. package/cjs/mutators/index.d.ts +6 -0
  47. package/cjs/mutators/index.d.ts.map +1 -0
  48. package/cjs/mutators/number-mutators.d.ts +8 -0
  49. package/cjs/mutators/number-mutators.d.ts.map +1 -0
  50. package/cjs/mutators/number-mutators.js +18 -0
  51. package/cjs/mutators/number-mutators.js.map +1 -0
  52. package/cjs/mutators/object-mutators.d.ts +8 -0
  53. package/cjs/mutators/object-mutators.d.ts.map +1 -0
  54. package/cjs/mutators/object-mutators.js +50 -0
  55. package/cjs/mutators/object-mutators.js.map +1 -0
  56. package/cjs/mutators/string-mutators.d.ts +72 -0
  57. package/cjs/mutators/string-mutators.d.ts.map +1 -0
  58. package/cjs/mutators/string-mutators.js +193 -0
  59. package/cjs/mutators/string-mutators.js.map +1 -0
  60. package/cjs/plugins/index.d.ts +7 -0
  61. package/cjs/plugins/index.d.ts.map +1 -0
  62. package/cjs/plugins/plugin-system.d.ts +71 -0
  63. package/cjs/plugins/plugin-system.d.ts.map +1 -0
  64. package/cjs/plugins/plugin-system.js +68 -0
  65. package/cjs/plugins/plugin-system.js.map +1 -0
  66. package/cjs/rules/array/array-rules.d.ts +12 -0
  67. package/cjs/rules/array/array-rules.d.ts.map +1 -0
  68. package/cjs/rules/array/array-rules.js +44 -0
  69. package/cjs/rules/array/array-rules.js.map +1 -0
  70. package/cjs/rules/array/index.d.ts +2 -0
  71. package/cjs/rules/array/index.d.ts.map +1 -0
  72. package/cjs/rules/color/color-rules.d.ts +30 -0
  73. package/cjs/rules/color/color-rules.d.ts.map +1 -0
  74. package/cjs/rules/color/color-rules.js +120 -0
  75. package/cjs/rules/color/color-rules.js.map +1 -0
  76. package/cjs/rules/color/index.d.ts +2 -0
  77. package/cjs/rules/color/index.d.ts.map +1 -0
  78. package/cjs/rules/common/enum.d.ts +26 -0
  79. package/cjs/rules/common/enum.d.ts.map +1 -0
  80. package/cjs/rules/common/enum.js +55 -0
  81. package/cjs/rules/common/enum.js.map +1 -0
  82. package/cjs/rules/common/equals-field-rules.d.ts +18 -0
  83. package/cjs/rules/common/equals-field-rules.d.ts.map +1 -0
  84. package/cjs/rules/common/equals-field-rules.js +38 -0
  85. package/cjs/rules/common/equals-field-rules.js.map +1 -0
  86. package/cjs/rules/common/index.d.ts +5 -0
  87. package/cjs/rules/common/index.d.ts.map +1 -0
  88. package/cjs/rules/common/type-rules.d.ts +34 -0
  89. package/cjs/rules/common/type-rules.d.ts.map +1 -0
  90. package/cjs/rules/common/type-rules.js +104 -0
  91. package/cjs/rules/common/type-rules.js.map +1 -0
  92. package/cjs/rules/common/unknown-key.d.ts +9 -0
  93. package/cjs/rules/common/unknown-key.d.ts.map +1 -0
  94. package/cjs/rules/common/unknown-key.js +20 -0
  95. package/cjs/rules/common/unknown-key.js.map +1 -0
  96. package/cjs/rules/conditional/index.d.ts +9 -0
  97. package/cjs/rules/conditional/index.d.ts.map +1 -0
  98. package/cjs/rules/conditional/present-if-rules.d.ts +45 -0
  99. package/cjs/rules/conditional/present-if-rules.d.ts.map +1 -0
  100. package/cjs/rules/conditional/present-if-rules.js +98 -0
  101. package/cjs/rules/conditional/present-if-rules.js.map +1 -0
  102. package/cjs/rules/conditional/present-unless-rules.d.ts +11 -0
  103. package/cjs/rules/conditional/present-unless-rules.d.ts.map +1 -0
  104. package/cjs/rules/conditional/present-unless-rules.js +20 -0
  105. package/cjs/rules/conditional/present-unless-rules.js.map +1 -0
  106. package/cjs/rules/conditional/present-with-rules.d.ts +26 -0
  107. package/cjs/rules/conditional/present-with-rules.d.ts.map +1 -0
  108. package/cjs/rules/conditional/present-with-rules.js +63 -0
  109. package/cjs/rules/conditional/present-with-rules.js.map +1 -0
  110. package/cjs/rules/conditional/present-without-rules.d.ts +26 -0
  111. package/cjs/rules/conditional/present-without-rules.d.ts.map +1 -0
  112. package/cjs/rules/conditional/present-without-rules.js +63 -0
  113. package/cjs/rules/conditional/present-without-rules.js.map +1 -0
  114. package/cjs/rules/conditional/required-if-rules.d.ts +45 -0
  115. package/cjs/rules/conditional/required-if-rules.d.ts.map +1 -0
  116. package/cjs/rules/conditional/required-if-rules.js +98 -0
  117. package/cjs/rules/conditional/required-if-rules.js.map +1 -0
  118. package/cjs/rules/conditional/required-unless-rules.d.ts +11 -0
  119. package/cjs/rules/conditional/required-unless-rules.d.ts.map +1 -0
  120. package/cjs/rules/conditional/required-unless-rules.js +20 -0
  121. package/cjs/rules/conditional/required-unless-rules.js.map +1 -0
  122. package/cjs/rules/conditional/required-with-rules.d.ts +26 -0
  123. package/cjs/rules/conditional/required-with-rules.d.ts.map +1 -0
  124. package/cjs/rules/conditional/required-with-rules.js +63 -0
  125. package/cjs/rules/conditional/required-with-rules.js.map +1 -0
  126. package/cjs/rules/conditional/required-without-rules.d.ts +26 -0
  127. package/cjs/rules/conditional/required-without-rules.d.ts.map +1 -0
  128. package/cjs/rules/conditional/required-without-rules.js +63 -0
  129. package/cjs/rules/conditional/required-without-rules.js.map +1 -0
  130. package/cjs/rules/core/equal.d.ts +8 -0
  131. package/cjs/rules/core/equal.d.ts.map +1 -0
  132. package/cjs/rules/core/equal.js +13 -0
  133. package/cjs/rules/core/equal.js.map +1 -0
  134. package/cjs/rules/core/forbidden.d.ts +6 -0
  135. package/cjs/rules/core/forbidden.d.ts.map +1 -0
  136. package/cjs/rules/core/forbidden.js +13 -0
  137. package/cjs/rules/core/forbidden.js.map +1 -0
  138. package/cjs/rules/core/index.d.ts +5 -0
  139. package/cjs/rules/core/index.d.ts.map +1 -0
  140. package/cjs/rules/core/required.d.ts +11 -0
  141. package/cjs/rules/core/required.d.ts.map +1 -0
  142. package/cjs/rules/core/required.js +31 -0
  143. package/cjs/rules/core/required.js.map +1 -0
  144. package/cjs/rules/core/when.d.ts +6 -0
  145. package/cjs/rules/core/when.d.ts.map +1 -0
  146. package/cjs/rules/core/when.js +40 -0
  147. package/cjs/rules/core/when.js.map +1 -0
  148. package/cjs/rules/date/date-comparison-rules.d.ts +25 -0
  149. package/cjs/rules/date/date-comparison-rules.d.ts.map +1 -0
  150. package/cjs/rules/date/date-comparison-rules.js +78 -0
  151. package/cjs/rules/date/date-comparison-rules.js.map +1 -0
  152. package/cjs/rules/date/date-day-rules.d.ts +21 -0
  153. package/cjs/rules/date/date-day-rules.d.ts.map +1 -0
  154. package/cjs/rules/date/date-day-rules.js +65 -0
  155. package/cjs/rules/date/date-day-rules.js.map +1 -0
  156. package/cjs/rules/date/date-field-comparison-rules.d.ts +28 -0
  157. package/cjs/rules/date/date-field-comparison-rules.d.ts.map +1 -0
  158. package/cjs/rules/date/date-field-comparison-rules.js +90 -0
  159. package/cjs/rules/date/date-field-comparison-rules.js.map +1 -0
  160. package/cjs/rules/date/date-period-rules.d.ts +108 -0
  161. package/cjs/rules/date/date-period-rules.d.ts.map +1 -0
  162. package/cjs/rules/date/date-period-rules.js +566 -0
  163. package/cjs/rules/date/date-period-rules.js.map +1 -0
  164. package/cjs/rules/date/date-relative-rules.d.ts +20 -0
  165. package/cjs/rules/date/date-relative-rules.d.ts.map +1 -0
  166. package/cjs/rules/date/date-relative-rules.js +57 -0
  167. package/cjs/rules/date/date-relative-rules.js.map +1 -0
  168. package/cjs/rules/date/date-special-rules.d.ts +20 -0
  169. package/cjs/rules/date/date-special-rules.d.ts.map +1 -0
  170. package/cjs/rules/date/date-special-rules.js +72 -0
  171. package/cjs/rules/date/date-special-rules.js.map +1 -0
  172. package/cjs/rules/date/date.d.ts +93 -0
  173. package/cjs/rules/date/date.d.ts.map +1 -0
  174. package/cjs/rules/date/date.js +279 -0
  175. package/cjs/rules/date/date.js.map +1 -0
  176. package/cjs/rules/date/index.d.ts +8 -0
  177. package/cjs/rules/date/index.d.ts.map +1 -0
  178. package/cjs/rules/file/dimensions.d.ts +26 -0
  179. package/cjs/rules/file/dimensions.d.ts.map +1 -0
  180. package/cjs/rules/file/dimensions.js +56 -0
  181. package/cjs/rules/file/dimensions.js.map +1 -0
  182. package/cjs/rules/file/file-size.d.ts +14 -0
  183. package/cjs/rules/file/file-size.d.ts.map +1 -0
  184. package/cjs/rules/file/file-size.js +26 -0
  185. package/cjs/rules/file/file-size.js.map +1 -0
  186. package/cjs/rules/file/index.d.ts +11 -0
  187. package/cjs/rules/file/index.d.ts.map +1 -0
  188. package/cjs/rules/index.d.ts +19 -0
  189. package/cjs/rules/index.d.ts.map +1 -0
  190. package/cjs/rules/length/index.d.ts +2 -0
  191. package/cjs/rules/length/index.d.ts.map +1 -0
  192. package/cjs/rules/length/length-rules.d.ts +49 -0
  193. package/cjs/rules/length/length-rules.d.ts.map +1 -0
  194. package/cjs/rules/length/length-rules.js +116 -0
  195. package/cjs/rules/length/length-rules.js.map +1 -0
  196. package/cjs/rules/number/index.d.ts +2 -0
  197. package/cjs/rules/number/index.d.ts.map +1 -0
  198. package/cjs/rules/number/number-rules.d.ts +43 -0
  199. package/cjs/rules/number/number-rules.d.ts.map +1 -0
  200. package/cjs/rules/number/number-rules.js +107 -0
  201. package/cjs/rules/number/number-rules.js.map +1 -0
  202. package/cjs/rules/scalar/accepted-rule.d.ts +39 -0
  203. package/cjs/rules/scalar/accepted-rule.d.ts.map +1 -0
  204. package/cjs/rules/scalar/accepted-rule.js +110 -0
  205. package/cjs/rules/scalar/accepted-rule.js.map +1 -0
  206. package/cjs/rules/scalar/declined-rule.d.ts +39 -0
  207. package/cjs/rules/scalar/declined-rule.d.ts.map +1 -0
  208. package/cjs/rules/scalar/declined-rule.js +110 -0
  209. package/cjs/rules/scalar/declined-rule.js.map +1 -0
  210. package/cjs/rules/scalar/index.d.ts +3 -0
  211. package/cjs/rules/scalar/index.d.ts.map +1 -0
  212. package/cjs/rules/string/alpha.d.ts +14 -0
  213. package/cjs/rules/string/alpha.d.ts.map +1 -0
  214. package/cjs/rules/string/alpha.js +39 -0
  215. package/cjs/rules/string/alpha.js.map +1 -0
  216. package/cjs/rules/string/credit-card.d.ts +6 -0
  217. package/cjs/rules/string/credit-card.d.ts.map +1 -0
  218. package/cjs/rules/string/credit-card.js +31 -0
  219. package/cjs/rules/string/credit-card.js.map +1 -0
  220. package/cjs/rules/string/email.d.ts +6 -0
  221. package/cjs/rules/string/email.d.ts.map +1 -0
  222. package/cjs/rules/string/email.js +13 -0
  223. package/cjs/rules/string/email.js.map +1 -0
  224. package/cjs/rules/string/index.d.ts +17 -0
  225. package/cjs/rules/string/index.d.ts.map +1 -0
  226. package/cjs/rules/string/ip.d.ts +14 -0
  227. package/cjs/rules/string/ip.d.ts.map +1 -0
  228. package/cjs/rules/string/ip.js +39 -0
  229. package/cjs/rules/string/ip.js.map +1 -0
  230. package/cjs/rules/string/matches.d.ts +8 -0
  231. package/cjs/rules/string/matches.d.ts.map +1 -0
  232. package/cjs/rules/string/matches.js +14 -0
  233. package/cjs/rules/string/matches.js.map +1 -0
  234. package/cjs/rules/string/pattern.d.ts +8 -0
  235. package/cjs/rules/string/pattern.d.ts.map +1 -0
  236. package/cjs/rules/string/pattern.js +13 -0
  237. package/cjs/rules/string/pattern.js.map +1 -0
  238. package/cjs/rules/string/string-comparison.d.ts +26 -0
  239. package/cjs/rules/string/string-comparison.d.ts.map +1 -0
  240. package/cjs/rules/string/string-comparison.js +52 -0
  241. package/cjs/rules/string/string-comparison.js.map +1 -0
  242. package/cjs/rules/string/strong-password-rule.d.ts +14 -0
  243. package/cjs/rules/string/strong-password-rule.d.ts.map +1 -0
  244. package/cjs/rules/string/strong-password-rule.js +38 -0
  245. package/cjs/rules/string/strong-password-rule.js.map +1 -0
  246. package/cjs/rules/string/url.d.ts +6 -0
  247. package/cjs/rules/string/url.d.ts.map +1 -0
  248. package/cjs/rules/string/url.js +16 -0
  249. package/cjs/rules/string/url.js.map +1 -0
  250. package/cjs/rules/string/without-whitespace.d.ts +6 -0
  251. package/cjs/rules/string/without-whitespace.d.ts.map +1 -0
  252. package/cjs/rules/string/without-whitespace.js +13 -0
  253. package/cjs/rules/string/without-whitespace.js.map +1 -0
  254. package/cjs/types/conditional-types.d.ts +15 -0
  255. package/cjs/types/conditional-types.d.ts.map +1 -0
  256. package/cjs/types/context-types.d.ts +44 -0
  257. package/cjs/types/context-types.d.ts.map +1 -0
  258. package/cjs/types/data-transformer-types.d.ts +25 -0
  259. package/cjs/types/data-transformer-types.d.ts.map +1 -0
  260. package/cjs/types/date-types.d.ts +9 -0
  261. package/cjs/types/date-types.d.ts.map +1 -0
  262. package/cjs/types/date-types.js +12 -0
  263. package/cjs/types/date-types.js.map +1 -0
  264. package/cjs/types/index.d.ts +10 -0
  265. package/cjs/types/index.d.ts.map +1 -0
  266. package/cjs/types/inference-types.d.ts +29 -0
  267. package/cjs/types/inference-types.d.ts.map +1 -0
  268. package/cjs/types/mutator-types.d.ts +27 -0
  269. package/cjs/types/mutator-types.d.ts.map +1 -0
  270. package/cjs/types/result-types.d.ts +19 -0
  271. package/cjs/types/result-types.d.ts.map +1 -0
  272. package/cjs/types/rule-types.d.ts +53 -0
  273. package/cjs/types/rule-types.d.ts.map +1 -0
  274. package/cjs/types/schema-types.d.ts +6 -0
  275. package/cjs/types/schema-types.d.ts.map +1 -0
  276. package/cjs/validators/any-validator.d.ts +7 -0
  277. package/cjs/validators/any-validator.d.ts.map +1 -0
  278. package/cjs/validators/any-validator.js +5 -0
  279. package/cjs/validators/any-validator.js.map +1 -0
  280. package/cjs/validators/array-validator.d.ts +51 -0
  281. package/cjs/validators/array-validator.d.ts.map +1 -0
  282. package/cjs/validators/array-validator.js +120 -0
  283. package/cjs/validators/array-validator.js.map +1 -0
  284. package/cjs/validators/base-validator.d.ts +500 -0
  285. package/cjs/validators/base-validator.d.ts.map +1 -0
  286. package/cjs/validators/base-validator.js +950 -0
  287. package/cjs/validators/base-validator.js.map +1 -0
  288. package/cjs/validators/boolean-validator.d.ts +43 -0
  289. package/cjs/validators/boolean-validator.d.ts.map +1 -0
  290. package/cjs/validators/boolean-validator.js +48 -0
  291. package/cjs/validators/boolean-validator.js.map +1 -0
  292. package/cjs/validators/date-validator.d.ts +303 -0
  293. package/cjs/validators/date-validator.d.ts.map +1 -0
  294. package/cjs/validators/date-validator.js +639 -0
  295. package/cjs/validators/date-validator.js.map +1 -0
  296. package/cjs/validators/float-validator.d.ts +8 -0
  297. package/cjs/validators/float-validator.d.ts.map +1 -0
  298. package/cjs/validators/float-validator.js +9 -0
  299. package/cjs/validators/float-validator.js.map +1 -0
  300. package/cjs/validators/index.d.ts +20 -0
  301. package/cjs/validators/index.d.ts.map +1 -0
  302. package/cjs/validators/int-validator.d.ts +8 -0
  303. package/cjs/validators/int-validator.d.ts.map +1 -0
  304. package/cjs/validators/int-validator.js +9 -0
  305. package/cjs/validators/int-validator.js.map +1 -0
  306. package/cjs/validators/number-validator.d.ts +35 -0
  307. package/cjs/validators/number-validator.d.ts.map +1 -0
  308. package/cjs/validators/number-validator.js +66 -0
  309. package/cjs/validators/number-validator.js.map +1 -0
  310. package/cjs/validators/object-validator.d.ts +24 -0
  311. package/cjs/validators/object-validator.d.ts.map +1 -0
  312. package/cjs/validators/object-validator.js +120 -0
  313. package/cjs/validators/object-validator.js.map +1 -0
  314. package/cjs/validators/scalar-validator.d.ts +74 -0
  315. package/cjs/validators/scalar-validator.d.ts.map +1 -0
  316. package/cjs/validators/scalar-validator.js +145 -0
  317. package/cjs/validators/scalar-validator.js.map +1 -0
  318. package/cjs/validators/string-validator.d.ts +187 -0
  319. package/cjs/validators/string-validator.d.ts.map +1 -0
  320. package/cjs/validators/string-validator.js +404 -0
  321. package/cjs/validators/string-validator.js.map +1 -0
  322. package/esm/config.d.ts +48 -0
  323. package/esm/config.d.ts.map +1 -0
  324. package/esm/config.js +42 -0
  325. package/esm/config.js.map +1 -0
  326. package/esm/factory/index.d.ts +3 -0
  327. package/esm/factory/index.d.ts.map +1 -0
  328. package/esm/factory/validate.d.ts +8 -0
  329. package/esm/factory/validate.d.ts.map +1 -0
  330. package/esm/factory/validate.js +21 -0
  331. package/esm/factory/validate.js.map +1 -0
  332. package/esm/factory/validators.d.ts +32 -0
  333. package/esm/factory/validators.d.ts.map +1 -0
  334. package/esm/factory/validators.js +38 -0
  335. package/esm/factory/validators.js.map +1 -0
  336. package/esm/helpers/date-helpers.d.ts +16 -0
  337. package/esm/helpers/date-helpers.d.ts.map +1 -0
  338. package/esm/helpers/date-helpers.js +25 -0
  339. package/esm/helpers/date-helpers.js.map +1 -0
  340. package/esm/helpers/get-field-value.d.ts +37 -0
  341. package/esm/helpers/get-field-value.d.ts.map +1 -0
  342. package/esm/helpers/get-field-value.js +40 -0
  343. package/esm/helpers/get-field-value.js.map +1 -0
  344. package/esm/helpers/index.d.ts +5 -0
  345. package/esm/helpers/index.d.ts.map +1 -0
  346. package/esm/helpers/path-helpers.d.ts +5 -0
  347. package/esm/helpers/path-helpers.d.ts.map +1 -0
  348. package/esm/helpers/path-helpers.js +8 -0
  349. package/esm/helpers/path-helpers.js.map +1 -0
  350. package/esm/helpers/validation-helpers.d.ts +4 -0
  351. package/esm/helpers/validation-helpers.d.ts.map +1 -0
  352. package/esm/helpers/validation-helpers.js +39 -0
  353. package/esm/helpers/validation-helpers.js.map +1 -0
  354. package/esm/index.d.ts +29 -0
  355. package/esm/index.d.ts.map +1 -0
  356. package/esm/index.js +1 -0
  357. package/esm/index.js.map +1 -0
  358. package/esm/mutators/array-mutators.d.ts +12 -0
  359. package/esm/mutators/array-mutators.d.ts.map +1 -0
  360. package/esm/mutators/array-mutators.js +37 -0
  361. package/esm/mutators/array-mutators.js.map +1 -0
  362. package/esm/mutators/date-mutators.d.ts +39 -0
  363. package/esm/mutators/date-mutators.d.ts.map +1 -0
  364. package/esm/mutators/date-mutators.js +120 -0
  365. package/esm/mutators/date-mutators.js.map +1 -0
  366. package/esm/mutators/index.d.ts +6 -0
  367. package/esm/mutators/index.d.ts.map +1 -0
  368. package/esm/mutators/number-mutators.d.ts +8 -0
  369. package/esm/mutators/number-mutators.d.ts.map +1 -0
  370. package/esm/mutators/number-mutators.js +18 -0
  371. package/esm/mutators/number-mutators.js.map +1 -0
  372. package/esm/mutators/object-mutators.d.ts +8 -0
  373. package/esm/mutators/object-mutators.d.ts.map +1 -0
  374. package/esm/mutators/object-mutators.js +50 -0
  375. package/esm/mutators/object-mutators.js.map +1 -0
  376. package/esm/mutators/string-mutators.d.ts +72 -0
  377. package/esm/mutators/string-mutators.d.ts.map +1 -0
  378. package/esm/mutators/string-mutators.js +193 -0
  379. package/esm/mutators/string-mutators.js.map +1 -0
  380. package/esm/plugins/index.d.ts +7 -0
  381. package/esm/plugins/index.d.ts.map +1 -0
  382. package/esm/plugins/plugin-system.d.ts +71 -0
  383. package/esm/plugins/plugin-system.d.ts.map +1 -0
  384. package/esm/plugins/plugin-system.js +68 -0
  385. package/esm/plugins/plugin-system.js.map +1 -0
  386. package/esm/rules/array/array-rules.d.ts +12 -0
  387. package/esm/rules/array/array-rules.d.ts.map +1 -0
  388. package/esm/rules/array/array-rules.js +44 -0
  389. package/esm/rules/array/array-rules.js.map +1 -0
  390. package/esm/rules/array/index.d.ts +2 -0
  391. package/esm/rules/array/index.d.ts.map +1 -0
  392. package/esm/rules/color/color-rules.d.ts +30 -0
  393. package/esm/rules/color/color-rules.d.ts.map +1 -0
  394. package/esm/rules/color/color-rules.js +120 -0
  395. package/esm/rules/color/color-rules.js.map +1 -0
  396. package/esm/rules/color/index.d.ts +2 -0
  397. package/esm/rules/color/index.d.ts.map +1 -0
  398. package/esm/rules/common/enum.d.ts +26 -0
  399. package/esm/rules/common/enum.d.ts.map +1 -0
  400. package/esm/rules/common/enum.js +55 -0
  401. package/esm/rules/common/enum.js.map +1 -0
  402. package/esm/rules/common/equals-field-rules.d.ts +18 -0
  403. package/esm/rules/common/equals-field-rules.d.ts.map +1 -0
  404. package/esm/rules/common/equals-field-rules.js +38 -0
  405. package/esm/rules/common/equals-field-rules.js.map +1 -0
  406. package/esm/rules/common/index.d.ts +5 -0
  407. package/esm/rules/common/index.d.ts.map +1 -0
  408. package/esm/rules/common/type-rules.d.ts +34 -0
  409. package/esm/rules/common/type-rules.d.ts.map +1 -0
  410. package/esm/rules/common/type-rules.js +104 -0
  411. package/esm/rules/common/type-rules.js.map +1 -0
  412. package/esm/rules/common/unknown-key.d.ts +9 -0
  413. package/esm/rules/common/unknown-key.d.ts.map +1 -0
  414. package/esm/rules/common/unknown-key.js +20 -0
  415. package/esm/rules/common/unknown-key.js.map +1 -0
  416. package/esm/rules/conditional/index.d.ts +9 -0
  417. package/esm/rules/conditional/index.d.ts.map +1 -0
  418. package/esm/rules/conditional/present-if-rules.d.ts +45 -0
  419. package/esm/rules/conditional/present-if-rules.d.ts.map +1 -0
  420. package/esm/rules/conditional/present-if-rules.js +98 -0
  421. package/esm/rules/conditional/present-if-rules.js.map +1 -0
  422. package/esm/rules/conditional/present-unless-rules.d.ts +11 -0
  423. package/esm/rules/conditional/present-unless-rules.d.ts.map +1 -0
  424. package/esm/rules/conditional/present-unless-rules.js +20 -0
  425. package/esm/rules/conditional/present-unless-rules.js.map +1 -0
  426. package/esm/rules/conditional/present-with-rules.d.ts +26 -0
  427. package/esm/rules/conditional/present-with-rules.d.ts.map +1 -0
  428. package/esm/rules/conditional/present-with-rules.js +63 -0
  429. package/esm/rules/conditional/present-with-rules.js.map +1 -0
  430. package/esm/rules/conditional/present-without-rules.d.ts +26 -0
  431. package/esm/rules/conditional/present-without-rules.d.ts.map +1 -0
  432. package/esm/rules/conditional/present-without-rules.js +63 -0
  433. package/esm/rules/conditional/present-without-rules.js.map +1 -0
  434. package/esm/rules/conditional/required-if-rules.d.ts +45 -0
  435. package/esm/rules/conditional/required-if-rules.d.ts.map +1 -0
  436. package/esm/rules/conditional/required-if-rules.js +98 -0
  437. package/esm/rules/conditional/required-if-rules.js.map +1 -0
  438. package/esm/rules/conditional/required-unless-rules.d.ts +11 -0
  439. package/esm/rules/conditional/required-unless-rules.d.ts.map +1 -0
  440. package/esm/rules/conditional/required-unless-rules.js +20 -0
  441. package/esm/rules/conditional/required-unless-rules.js.map +1 -0
  442. package/esm/rules/conditional/required-with-rules.d.ts +26 -0
  443. package/esm/rules/conditional/required-with-rules.d.ts.map +1 -0
  444. package/esm/rules/conditional/required-with-rules.js +63 -0
  445. package/esm/rules/conditional/required-with-rules.js.map +1 -0
  446. package/esm/rules/conditional/required-without-rules.d.ts +26 -0
  447. package/esm/rules/conditional/required-without-rules.d.ts.map +1 -0
  448. package/esm/rules/conditional/required-without-rules.js +63 -0
  449. package/esm/rules/conditional/required-without-rules.js.map +1 -0
  450. package/esm/rules/core/equal.d.ts +8 -0
  451. package/esm/rules/core/equal.d.ts.map +1 -0
  452. package/esm/rules/core/equal.js +13 -0
  453. package/esm/rules/core/equal.js.map +1 -0
  454. package/esm/rules/core/forbidden.d.ts +6 -0
  455. package/esm/rules/core/forbidden.d.ts.map +1 -0
  456. package/esm/rules/core/forbidden.js +13 -0
  457. package/esm/rules/core/forbidden.js.map +1 -0
  458. package/esm/rules/core/index.d.ts +5 -0
  459. package/esm/rules/core/index.d.ts.map +1 -0
  460. package/esm/rules/core/required.d.ts +11 -0
  461. package/esm/rules/core/required.d.ts.map +1 -0
  462. package/esm/rules/core/required.js +31 -0
  463. package/esm/rules/core/required.js.map +1 -0
  464. package/esm/rules/core/when.d.ts +6 -0
  465. package/esm/rules/core/when.d.ts.map +1 -0
  466. package/esm/rules/core/when.js +40 -0
  467. package/esm/rules/core/when.js.map +1 -0
  468. package/esm/rules/date/date-comparison-rules.d.ts +25 -0
  469. package/esm/rules/date/date-comparison-rules.d.ts.map +1 -0
  470. package/esm/rules/date/date-comparison-rules.js +78 -0
  471. package/esm/rules/date/date-comparison-rules.js.map +1 -0
  472. package/esm/rules/date/date-day-rules.d.ts +21 -0
  473. package/esm/rules/date/date-day-rules.d.ts.map +1 -0
  474. package/esm/rules/date/date-day-rules.js +65 -0
  475. package/esm/rules/date/date-day-rules.js.map +1 -0
  476. package/esm/rules/date/date-field-comparison-rules.d.ts +28 -0
  477. package/esm/rules/date/date-field-comparison-rules.d.ts.map +1 -0
  478. package/esm/rules/date/date-field-comparison-rules.js +90 -0
  479. package/esm/rules/date/date-field-comparison-rules.js.map +1 -0
  480. package/esm/rules/date/date-period-rules.d.ts +108 -0
  481. package/esm/rules/date/date-period-rules.d.ts.map +1 -0
  482. package/esm/rules/date/date-period-rules.js +566 -0
  483. package/esm/rules/date/date-period-rules.js.map +1 -0
  484. package/esm/rules/date/date-relative-rules.d.ts +20 -0
  485. package/esm/rules/date/date-relative-rules.d.ts.map +1 -0
  486. package/esm/rules/date/date-relative-rules.js +57 -0
  487. package/esm/rules/date/date-relative-rules.js.map +1 -0
  488. package/esm/rules/date/date-special-rules.d.ts +20 -0
  489. package/esm/rules/date/date-special-rules.d.ts.map +1 -0
  490. package/esm/rules/date/date-special-rules.js +72 -0
  491. package/esm/rules/date/date-special-rules.js.map +1 -0
  492. package/esm/rules/date/date.d.ts +93 -0
  493. package/esm/rules/date/date.d.ts.map +1 -0
  494. package/esm/rules/date/date.js +279 -0
  495. package/esm/rules/date/date.js.map +1 -0
  496. package/esm/rules/date/index.d.ts +8 -0
  497. package/esm/rules/date/index.d.ts.map +1 -0
  498. package/esm/rules/file/dimensions.d.ts +26 -0
  499. package/esm/rules/file/dimensions.d.ts.map +1 -0
  500. package/esm/rules/file/dimensions.js +56 -0
  501. package/esm/rules/file/dimensions.js.map +1 -0
  502. package/esm/rules/file/file-size.d.ts +14 -0
  503. package/esm/rules/file/file-size.d.ts.map +1 -0
  504. package/esm/rules/file/file-size.js +26 -0
  505. package/esm/rules/file/file-size.js.map +1 -0
  506. package/esm/rules/file/index.d.ts +11 -0
  507. package/esm/rules/file/index.d.ts.map +1 -0
  508. package/esm/rules/index.d.ts +19 -0
  509. package/esm/rules/index.d.ts.map +1 -0
  510. package/esm/rules/length/index.d.ts +2 -0
  511. package/esm/rules/length/index.d.ts.map +1 -0
  512. package/esm/rules/length/length-rules.d.ts +49 -0
  513. package/esm/rules/length/length-rules.d.ts.map +1 -0
  514. package/esm/rules/length/length-rules.js +116 -0
  515. package/esm/rules/length/length-rules.js.map +1 -0
  516. package/esm/rules/number/index.d.ts +2 -0
  517. package/esm/rules/number/index.d.ts.map +1 -0
  518. package/esm/rules/number/number-rules.d.ts +43 -0
  519. package/esm/rules/number/number-rules.d.ts.map +1 -0
  520. package/esm/rules/number/number-rules.js +107 -0
  521. package/esm/rules/number/number-rules.js.map +1 -0
  522. package/esm/rules/scalar/accepted-rule.d.ts +39 -0
  523. package/esm/rules/scalar/accepted-rule.d.ts.map +1 -0
  524. package/esm/rules/scalar/accepted-rule.js +110 -0
  525. package/esm/rules/scalar/accepted-rule.js.map +1 -0
  526. package/esm/rules/scalar/declined-rule.d.ts +39 -0
  527. package/esm/rules/scalar/declined-rule.d.ts.map +1 -0
  528. package/esm/rules/scalar/declined-rule.js +110 -0
  529. package/esm/rules/scalar/declined-rule.js.map +1 -0
  530. package/esm/rules/scalar/index.d.ts +3 -0
  531. package/esm/rules/scalar/index.d.ts.map +1 -0
  532. package/esm/rules/string/alpha.d.ts +14 -0
  533. package/esm/rules/string/alpha.d.ts.map +1 -0
  534. package/esm/rules/string/alpha.js +39 -0
  535. package/esm/rules/string/alpha.js.map +1 -0
  536. package/esm/rules/string/credit-card.d.ts +6 -0
  537. package/esm/rules/string/credit-card.d.ts.map +1 -0
  538. package/esm/rules/string/credit-card.js +31 -0
  539. package/esm/rules/string/credit-card.js.map +1 -0
  540. package/esm/rules/string/email.d.ts +6 -0
  541. package/esm/rules/string/email.d.ts.map +1 -0
  542. package/esm/rules/string/email.js +13 -0
  543. package/esm/rules/string/email.js.map +1 -0
  544. package/esm/rules/string/index.d.ts +17 -0
  545. package/esm/rules/string/index.d.ts.map +1 -0
  546. package/esm/rules/string/ip.d.ts +14 -0
  547. package/esm/rules/string/ip.d.ts.map +1 -0
  548. package/esm/rules/string/ip.js +39 -0
  549. package/esm/rules/string/ip.js.map +1 -0
  550. package/esm/rules/string/matches.d.ts +8 -0
  551. package/esm/rules/string/matches.d.ts.map +1 -0
  552. package/esm/rules/string/matches.js +14 -0
  553. package/esm/rules/string/matches.js.map +1 -0
  554. package/esm/rules/string/pattern.d.ts +8 -0
  555. package/esm/rules/string/pattern.d.ts.map +1 -0
  556. package/esm/rules/string/pattern.js +13 -0
  557. package/esm/rules/string/pattern.js.map +1 -0
  558. package/esm/rules/string/string-comparison.d.ts +26 -0
  559. package/esm/rules/string/string-comparison.d.ts.map +1 -0
  560. package/esm/rules/string/string-comparison.js +52 -0
  561. package/esm/rules/string/string-comparison.js.map +1 -0
  562. package/esm/rules/string/strong-password-rule.d.ts +14 -0
  563. package/esm/rules/string/strong-password-rule.d.ts.map +1 -0
  564. package/esm/rules/string/strong-password-rule.js +38 -0
  565. package/esm/rules/string/strong-password-rule.js.map +1 -0
  566. package/esm/rules/string/url.d.ts +6 -0
  567. package/esm/rules/string/url.d.ts.map +1 -0
  568. package/esm/rules/string/url.js +16 -0
  569. package/esm/rules/string/url.js.map +1 -0
  570. package/esm/rules/string/without-whitespace.d.ts +6 -0
  571. package/esm/rules/string/without-whitespace.d.ts.map +1 -0
  572. package/esm/rules/string/without-whitespace.js +13 -0
  573. package/esm/rules/string/without-whitespace.js.map +1 -0
  574. package/esm/types/conditional-types.d.ts +15 -0
  575. package/esm/types/conditional-types.d.ts.map +1 -0
  576. package/esm/types/context-types.d.ts +44 -0
  577. package/esm/types/context-types.d.ts.map +1 -0
  578. package/esm/types/data-transformer-types.d.ts +25 -0
  579. package/esm/types/data-transformer-types.d.ts.map +1 -0
  580. package/esm/types/date-types.d.ts +9 -0
  581. package/esm/types/date-types.d.ts.map +1 -0
  582. package/esm/types/date-types.js +12 -0
  583. package/esm/types/date-types.js.map +1 -0
  584. package/esm/types/index.d.ts +10 -0
  585. package/esm/types/index.d.ts.map +1 -0
  586. package/esm/types/inference-types.d.ts +29 -0
  587. package/esm/types/inference-types.d.ts.map +1 -0
  588. package/esm/types/mutator-types.d.ts +27 -0
  589. package/esm/types/mutator-types.d.ts.map +1 -0
  590. package/esm/types/result-types.d.ts +19 -0
  591. package/esm/types/result-types.d.ts.map +1 -0
  592. package/esm/types/rule-types.d.ts +53 -0
  593. package/esm/types/rule-types.d.ts.map +1 -0
  594. package/esm/types/schema-types.d.ts +6 -0
  595. package/esm/types/schema-types.d.ts.map +1 -0
  596. package/esm/validators/any-validator.d.ts +7 -0
  597. package/esm/validators/any-validator.d.ts.map +1 -0
  598. package/esm/validators/any-validator.js +5 -0
  599. package/esm/validators/any-validator.js.map +1 -0
  600. package/esm/validators/array-validator.d.ts +51 -0
  601. package/esm/validators/array-validator.d.ts.map +1 -0
  602. package/esm/validators/array-validator.js +120 -0
  603. package/esm/validators/array-validator.js.map +1 -0
  604. package/esm/validators/base-validator.d.ts +500 -0
  605. package/esm/validators/base-validator.d.ts.map +1 -0
  606. package/esm/validators/base-validator.js +950 -0
  607. package/esm/validators/base-validator.js.map +1 -0
  608. package/esm/validators/boolean-validator.d.ts +43 -0
  609. package/esm/validators/boolean-validator.d.ts.map +1 -0
  610. package/esm/validators/boolean-validator.js +48 -0
  611. package/esm/validators/boolean-validator.js.map +1 -0
  612. package/esm/validators/date-validator.d.ts +303 -0
  613. package/esm/validators/date-validator.d.ts.map +1 -0
  614. package/esm/validators/date-validator.js +639 -0
  615. package/esm/validators/date-validator.js.map +1 -0
  616. package/esm/validators/float-validator.d.ts +8 -0
  617. package/esm/validators/float-validator.d.ts.map +1 -0
  618. package/esm/validators/float-validator.js +9 -0
  619. package/esm/validators/float-validator.js.map +1 -0
  620. package/esm/validators/index.d.ts +20 -0
  621. package/esm/validators/index.d.ts.map +1 -0
  622. package/esm/validators/int-validator.d.ts +8 -0
  623. package/esm/validators/int-validator.d.ts.map +1 -0
  624. package/esm/validators/int-validator.js +9 -0
  625. package/esm/validators/int-validator.js.map +1 -0
  626. package/esm/validators/number-validator.d.ts +35 -0
  627. package/esm/validators/number-validator.d.ts.map +1 -0
  628. package/esm/validators/number-validator.js +66 -0
  629. package/esm/validators/number-validator.js.map +1 -0
  630. package/esm/validators/object-validator.d.ts +24 -0
  631. package/esm/validators/object-validator.d.ts.map +1 -0
  632. package/esm/validators/object-validator.js +120 -0
  633. package/esm/validators/object-validator.js.map +1 -0
  634. package/esm/validators/scalar-validator.d.ts +74 -0
  635. package/esm/validators/scalar-validator.d.ts.map +1 -0
  636. package/esm/validators/scalar-validator.js +145 -0
  637. package/esm/validators/scalar-validator.js.map +1 -0
  638. package/esm/validators/string-validator.d.ts +187 -0
  639. package/esm/validators/string-validator.d.ts.map +1 -0
  640. package/esm/validators/string-validator.js +404 -0
  641. package/esm/validators/string-validator.js.map +1 -0
  642. package/package.json +29 -0
@@ -0,0 +1,26 @@
1
+ import type { SchemaRule } from "../../types";
2
+ /**
3
+ * Required with rule - field is required if another field is present
4
+ * Supports both global and sibling scope
5
+ */
6
+ export declare const requiredWithRule: SchemaRule<{
7
+ field: string;
8
+ scope?: "global" | "sibling";
9
+ }>;
10
+ /**
11
+ * Required with all rule - field is required if all specified fields are present
12
+ * Supports both global and sibling scope
13
+ */
14
+ export declare const requiredWithAllRule: SchemaRule<{
15
+ fields: string[];
16
+ scope?: "global" | "sibling";
17
+ }>;
18
+ /**
19
+ * Required with any rule - field is required if any of the specified fields is present
20
+ * Supports both global and sibling scope
21
+ */
22
+ export declare const requiredWithAnyRule: SchemaRule<{
23
+ fields: string[];
24
+ scope?: "global" | "sibling";
25
+ }>;
26
+ //# sourceMappingURL=required-with-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-with-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/required-with-rules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAoBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAqBA,CAAC"}
@@ -0,0 +1,63 @@
1
+ import {get}from'@mongez/reinforcements';import {isEmpty}from'@mongez/supportive-is';import {getFieldValue}from'../../helpers/get-field-value.js';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';/**
2
+ * Required with rule - field is required if another field is present
3
+ * Supports both global and sibling scope
4
+ */
5
+ const requiredWithRule = {
6
+ name: "requiredWith",
7
+ description: "The field is required if another field is present",
8
+ sortOrder: -2,
9
+ requiresValue: false,
10
+ defaultErrorMessage: "The :input is required",
11
+ async validate(value, context) {
12
+ const fieldValue = getFieldValue(this, context);
13
+ // Field is required if the other field is present
14
+ if (isEmpty(value) && fieldValue !== undefined) {
15
+ return invalidRule(this, context);
16
+ }
17
+ return VALID_RULE;
18
+ },
19
+ };
20
+ /**
21
+ * Required with all rule - field is required if all specified fields are present
22
+ * Supports both global and sibling scope
23
+ */
24
+ const requiredWithAllRule = {
25
+ name: "requiredWithAll",
26
+ description: "The field is required if all specified fields are present",
27
+ sortOrder: -2,
28
+ requiresValue: false,
29
+ defaultErrorMessage: "The :input is required",
30
+ async validate(value, context) {
31
+ const { fields, scope = "global" } = this.context.options;
32
+ const source = scope === "sibling" ? context.parent : context.allValues;
33
+ // Check if all fields are present
34
+ const allPresent = fields.every(field => get(source, field) !== undefined);
35
+ // Field is required if all other fields are present
36
+ if (isEmpty(value) && allPresent) {
37
+ return invalidRule(this, context);
38
+ }
39
+ return VALID_RULE;
40
+ },
41
+ };
42
+ /**
43
+ * Required with any rule - field is required if any of the specified fields is present
44
+ * Supports both global and sibling scope
45
+ */
46
+ const requiredWithAnyRule = {
47
+ name: "requiredWithAny",
48
+ description: "The field is required if any of the specified fields is present",
49
+ sortOrder: -2,
50
+ requiresValue: false,
51
+ defaultErrorMessage: "The :input is required",
52
+ async validate(value, context) {
53
+ const { fields, scope = "global" } = this.context.options;
54
+ const source = scope === "sibling" ? context.parent : context.allValues;
55
+ // Check if any field is present
56
+ const anyPresent = fields.some(field => get(source, field) !== undefined);
57
+ // Field is required if any other field is present
58
+ if (isEmpty(value) && anyPresent) {
59
+ return invalidRule(this, context);
60
+ }
61
+ return VALID_RULE;
62
+ },
63
+ };export{requiredWithAllRule,requiredWithAnyRule,requiredWithRule};//# sourceMappingURL=required-with-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-with-rules.js","sources":["../../../src/rules/conditional/required-with-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"2NAKA;;;AAGG;AACU,MAAA,gBAAgB,GAGxB;AACH,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,WAAW,EAAE,mDAAmD;IAChE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;QAGhD,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,SAAS,EAAE;AAC9C,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,mBAAmB,GAG3B;AACH,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,WAAW,EAAE,2DAA2D;IACxE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;;AAGxE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG3E,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AAChC,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,mBAAmB,GAG3B;AACH,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,WAAW,EACT,iEAAiE;IACnE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;;AAGxE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG1E,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AAChC,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;"}
@@ -0,0 +1,26 @@
1
+ import type { SchemaRule } from "../../types";
2
+ /**
3
+ * Required without rule - field is required if another field is missing
4
+ * Supports both global and sibling scope
5
+ */
6
+ export declare const requiredWithoutRule: SchemaRule<{
7
+ field: string;
8
+ scope?: "global" | "sibling";
9
+ }>;
10
+ /**
11
+ * Required without all rule - field is required if all specified fields are missing
12
+ * Supports both global and sibling scope
13
+ */
14
+ export declare const requiredWithoutAllRule: SchemaRule<{
15
+ fields: string[];
16
+ scope?: "global" | "sibling";
17
+ }>;
18
+ /**
19
+ * Required without any rule - field is required if any of the specified fields is missing
20
+ * Supports both global and sibling scope
21
+ */
22
+ export declare const requiredWithoutAnyRule: SchemaRule<{
23
+ fields: string[];
24
+ scope?: "global" | "sibling";
25
+ }>;
26
+ //# sourceMappingURL=required-without-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-without-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/required-without-rules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAoBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAqBA,CAAC"}
@@ -0,0 +1,63 @@
1
+ import {get}from'@mongez/reinforcements';import {isEmpty}from'@mongez/supportive-is';import {getFieldValue}from'../../helpers/get-field-value.js';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';/**
2
+ * Required without rule - field is required if another field is missing
3
+ * Supports both global and sibling scope
4
+ */
5
+ const requiredWithoutRule = {
6
+ name: "requiredWithout",
7
+ description: "The field is required if another field is missing",
8
+ sortOrder: -2,
9
+ requiresValue: false,
10
+ defaultErrorMessage: "The :input is required",
11
+ async validate(value, context) {
12
+ const fieldValue = getFieldValue(this, context);
13
+ // Field is required if the other field is missing
14
+ if (isEmpty(value) && fieldValue === undefined) {
15
+ return invalidRule(this, context);
16
+ }
17
+ return VALID_RULE;
18
+ },
19
+ };
20
+ /**
21
+ * Required without all rule - field is required if all specified fields are missing
22
+ * Supports both global and sibling scope
23
+ */
24
+ const requiredWithoutAllRule = {
25
+ name: "requiredWithoutAll",
26
+ description: "The field is required if all specified fields are missing",
27
+ sortOrder: -2,
28
+ requiresValue: false,
29
+ defaultErrorMessage: "The :input is required",
30
+ async validate(value, context) {
31
+ const { fields, scope = "global" } = this.context.options;
32
+ const source = scope === "sibling" ? context.parent : context.allValues;
33
+ // Check if all fields are missing
34
+ const allMissing = fields.every(field => get(source, field) === undefined);
35
+ // Field is required if all other fields are missing
36
+ if (isEmpty(value) && allMissing) {
37
+ return invalidRule(this, context);
38
+ }
39
+ return VALID_RULE;
40
+ },
41
+ };
42
+ /**
43
+ * Required without any rule - field is required if any of the specified fields is missing
44
+ * Supports both global and sibling scope
45
+ */
46
+ const requiredWithoutAnyRule = {
47
+ name: "requiredWithoutAny",
48
+ description: "The field is required if any of the specified fields is missing",
49
+ sortOrder: -2,
50
+ requiresValue: false,
51
+ defaultErrorMessage: "The :input is required",
52
+ async validate(value, context) {
53
+ const { fields, scope = "global" } = this.context.options;
54
+ const source = scope === "sibling" ? context.parent : context.allValues;
55
+ // Check if any field is missing
56
+ const anyMissing = fields.some(field => get(source, field) === undefined);
57
+ // Field is required if any other field is missing
58
+ if (isEmpty(value) && anyMissing) {
59
+ return invalidRule(this, context);
60
+ }
61
+ return VALID_RULE;
62
+ },
63
+ };export{requiredWithoutAllRule,requiredWithoutAnyRule,requiredWithoutRule};//# sourceMappingURL=required-without-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-without-rules.js","sources":["../../../src/rules/conditional/required-without-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"2NAKA;;;AAGG;AACU,MAAA,mBAAmB,GAG3B;AACH,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,WAAW,EAAE,mDAAmD;IAChE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;QAGhD,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,SAAS,EAAE;AAC9C,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,sBAAsB,GAG9B;AACH,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,WAAW,EAAE,2DAA2D;IACxE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;;AAGxE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG3E,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AAChC,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,sBAAsB,GAG9B;AACH,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,WAAW,EACT,iEAAiE;IACnE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;;AAGxE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG1E,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AAChC,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;"}
@@ -0,0 +1,8 @@
1
+ import type { SchemaRule } from "../../types";
2
+ /**
3
+ * Equal rule - value must be equal to a specific value
4
+ */
5
+ export declare const equalRule: SchemaRule<{
6
+ value: any;
7
+ }>;
8
+ //# sourceMappingURL=equal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equal.d.ts","sourceRoot":"","sources":["../../../src/rules/core/equal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,CAShD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import'@mongez/reinforcements';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';/**
2
+ * Equal rule - value must be equal to a specific value
3
+ */
4
+ const equalRule = {
5
+ name: "equal",
6
+ defaultErrorMessage: "The :input must be equal to :value",
7
+ async validate(value, context) {
8
+ if (value !== this.context.options.value) {
9
+ return invalidRule(this, context);
10
+ }
11
+ return VALID_RULE;
12
+ },
13
+ };export{equalRule};//# sourceMappingURL=equal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equal.js","sources":["../../../src/rules/core/equal.ts"],"sourcesContent":[null],"names":[],"mappings":"wGAGA;;AAEG;AACU,MAAA,SAAS,GAA+B;AACnD,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,mBAAmB,EAAE,oCAAoC;AACzD,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;AACxC,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;"}
@@ -0,0 +1,6 @@
1
+ import type { SchemaRule } from "../../types";
2
+ /**
3
+ * Forbidden rule - value must not be present
4
+ */
5
+ export declare const forbiddenRule: SchemaRule;
6
+ //# sourceMappingURL=forbidden.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forbidden.d.ts","sourceRoot":"","sources":["../../../src/rules/core/forbidden.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,UAS3B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import {isEmpty}from'@mongez/supportive-is';import'@mongez/reinforcements';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';/**
2
+ * Forbidden rule - value must not be present
3
+ */
4
+ const forbiddenRule = {
5
+ name: "forbidden",
6
+ defaultErrorMessage: "The :input is forbidden",
7
+ async validate(value, context) {
8
+ if (!isEmpty(value)) {
9
+ return invalidRule(this, context);
10
+ }
11
+ return VALID_RULE;
12
+ },
13
+ };export{forbiddenRule};//# sourceMappingURL=forbidden.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forbidden.js","sources":["../../../src/rules/core/forbidden.ts"],"sourcesContent":[null],"names":[],"mappings":"oJAIA;;AAEG;AACU,MAAA,aAAa,GAAe;AACvC,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,mBAAmB,EAAE,yBAAyB;AAC9C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;"}
@@ -0,0 +1,5 @@
1
+ export * from "./equal";
2
+ export * from "./forbidden";
3
+ export * from "./required";
4
+ export * from "./when";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { SchemaRule } from "../../types";
2
+ /**
3
+ * Required rule - value must be present and not empty
4
+ */
5
+ export declare const requiredRule: SchemaRule;
6
+ /**
7
+ * Present rule - key must exist in the data, but value can be anything
8
+ * (empty string, null, undefined are all valid as long as the key exists)
9
+ */
10
+ export declare const presentRule: SchemaRule;
11
+ //# sourceMappingURL=required.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required.d.ts","sourceRoot":"","sources":["../../../src/rules/core/required.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAW1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,UAYzB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import {isEmpty}from'@mongez/supportive-is';import'@mongez/reinforcements';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';/**
2
+ * Required rule - value must be present and not empty
3
+ */
4
+ const requiredRule = {
5
+ name: "required",
6
+ defaultErrorMessage: "The :input is required",
7
+ requiresValue: false,
8
+ sortOrder: -2,
9
+ async validate(value, context) {
10
+ if (isEmpty(value)) {
11
+ return invalidRule(this, context);
12
+ }
13
+ return VALID_RULE;
14
+ },
15
+ };
16
+ /**
17
+ * Present rule - key must exist in the data, but value can be anything
18
+ * (empty string, null, undefined are all valid as long as the key exists)
19
+ */
20
+ const presentRule = {
21
+ name: "present",
22
+ defaultErrorMessage: "The :input field is required",
23
+ requiresValue: false,
24
+ sortOrder: -2,
25
+ async validate(value, context) {
26
+ if (value === undefined) {
27
+ return invalidRule(this, context);
28
+ }
29
+ return VALID_RULE;
30
+ },
31
+ };export{presentRule,requiredRule};//# sourceMappingURL=required.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required.js","sources":["../../../src/rules/core/required.ts"],"sourcesContent":[null],"names":[],"mappings":"oJAIA;;AAEG;AACU,MAAA,YAAY,GAAe;AACtC,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AAClB,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,WAAW,GAAe;AACrC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,mBAAmB,EAAE,8BAA8B;AACnD,IAAA,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;"}
@@ -0,0 +1,6 @@
1
+ import type { SchemaRule, WhenRuleOptions } from "../../types";
2
+ /**
3
+ * When rule - conditional validation based on another field value
4
+ */
5
+ export declare const whenRule: SchemaRule<WhenRuleOptions>;
6
+ //# sourceMappingURL=when.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when.d.ts","sourceRoot":"","sources":["../../../src/rules/core/when.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAAU,CAAC,eAAe,CA6ChD,CAAC"}
@@ -0,0 +1,40 @@
1
+ import {get}from'@mongez/reinforcements';import {VALID_RULE,invalidRule}from'../../helpers/validation-helpers.js';/**
2
+ * When rule - conditional validation based on another field value
3
+ */
4
+ const whenRule = {
5
+ name: "when",
6
+ description: "Apply conditional validation based on another field value",
7
+ async validate(value, context) {
8
+ const fieldToCheck = this.context.options.field;
9
+ const conditions = this.context.options.is;
10
+ const otherwise = this.context.options.otherwise;
11
+ const scope = this.context.options.scope || "global";
12
+ const fieldValue = scope === "global"
13
+ ? get(context.allValues, fieldToCheck)
14
+ : get(context.parent, fieldToCheck);
15
+ // Convert field value to string for key lookup
16
+ // This handles boolean, number, and string field values
17
+ const fieldValueKey = String(fieldValue);
18
+ if (conditions[fieldValueKey]) {
19
+ const result = await conditions[fieldValueKey].validate(value, context);
20
+ if (result.isValid) {
21
+ return VALID_RULE;
22
+ }
23
+ // Safe error access
24
+ this.context.errorMessage =
25
+ result.errors?.[0]?.error || "Validation failed";
26
+ return invalidRule(this, context);
27
+ }
28
+ if (otherwise) {
29
+ const result = await otherwise.validate(value, context);
30
+ if (result.isValid) {
31
+ return VALID_RULE;
32
+ }
33
+ // Safe error access
34
+ this.context.errorMessage =
35
+ result.errors?.[0]?.error || "Validation failed";
36
+ return invalidRule(this, context);
37
+ }
38
+ return VALID_RULE;
39
+ },
40
+ };export{whenRule};//# sourceMappingURL=when.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when.js","sources":["../../../src/rules/core/when.ts"],"sourcesContent":[null],"names":[],"mappings":"kHAIA;;AAEG;AACU,MAAA,QAAQ,GAAgC;AACnD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,WAAW,EAAE,2DAA2D;AACxE,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAErD,QAAA,MAAM,UAAU,GACd,KAAK,KAAK,QAAQ;cACd,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC;cACpC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;;;AAIxC,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAEzC,QAAA,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE;AAC7B,YAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,gBAAA,OAAO,UAAU,CAAC;AACnB,aAAA;;YAGD,IAAI,CAAC,OAAO,CAAC,YAAY;gBACvB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,mBAAmB,CAAC;AACnD,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,IAAI,SAAS,EAAE;YACb,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAExD,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,gBAAA,OAAO,UAAU,CAAC;AACnB,aAAA;;YAGD,IAAI,CAAC,OAAO,CAAC,YAAY;gBACvB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,mBAAmB,CAAC;AACnD,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;"}
@@ -0,0 +1,25 @@
1
+ import type { SchemaRule } from "../../types";
2
+ /**
3
+ * Between dates rule - date must be between start and end dates
4
+ */
5
+ export declare const betweenDatesRule: SchemaRule<{
6
+ startDate: Date;
7
+ endDate: Date;
8
+ }>;
9
+ /**
10
+ * Today rule - date must be exactly today
11
+ */
12
+ export declare const todayRule: SchemaRule;
13
+ /**
14
+ * Past rule - date must be in the past
15
+ */
16
+ export declare const pastRule: SchemaRule;
17
+ /**
18
+ * Future rule - date must be in the future
19
+ */
20
+ export declare const futureRule: SchemaRule;
21
+ /**
22
+ * After today rule - date must be after today (not including today)
23
+ */
24
+ export declare const afterTodayRule: SchemaRule;
25
+ //# sourceMappingURL=date-comparison-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-comparison-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/date/date-comparison-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;CACf,CAYA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAcvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAYtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,UAYxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAc5B,CAAC"}
@@ -0,0 +1,78 @@
1
+ import'@mongez/reinforcements';import {VALID_RULE,invalidRule}from'../../helpers/validation-helpers.js';/**
2
+ * Between dates rule - date must be between start and end dates
3
+ */
4
+ const betweenDatesRule = {
5
+ name: "betweenDates",
6
+ defaultErrorMessage: "The :input must be between :startDate and :endDate",
7
+ async validate(value, context) {
8
+ const { startDate, endDate } = this.context.options;
9
+ const inputDate = new Date(value);
10
+ if (inputDate >= startDate && inputDate <= endDate) {
11
+ return VALID_RULE;
12
+ }
13
+ return invalidRule(this, context);
14
+ },
15
+ };
16
+ /**
17
+ * Today rule - date must be exactly today
18
+ */
19
+ const todayRule = {
20
+ name: "today",
21
+ defaultErrorMessage: "The :input must be today",
22
+ async validate(value, context) {
23
+ const today = new Date();
24
+ today.setHours(0, 0, 0, 0);
25
+ const inputDate = new Date(value);
26
+ inputDate.setHours(0, 0, 0, 0);
27
+ if (inputDate.getTime() === today.getTime()) {
28
+ return VALID_RULE;
29
+ }
30
+ return invalidRule(this, context);
31
+ },
32
+ };
33
+ /**
34
+ * Past rule - date must be in the past
35
+ */
36
+ const pastRule = {
37
+ name: "past",
38
+ defaultErrorMessage: "The :input must be in the past",
39
+ async validate(value, context) {
40
+ const now = new Date();
41
+ const inputDate = new Date(value);
42
+ if (inputDate < now) {
43
+ return VALID_RULE;
44
+ }
45
+ return invalidRule(this, context);
46
+ },
47
+ };
48
+ /**
49
+ * Future rule - date must be in the future
50
+ */
51
+ const futureRule = {
52
+ name: "future",
53
+ defaultErrorMessage: "The :input must be in the future",
54
+ async validate(value, context) {
55
+ const now = new Date();
56
+ if (value > now) {
57
+ return VALID_RULE;
58
+ }
59
+ return invalidRule(this, context);
60
+ },
61
+ };
62
+ /**
63
+ * After today rule - date must be after today (not including today)
64
+ */
65
+ const afterTodayRule = {
66
+ name: "afterToday",
67
+ defaultErrorMessage: "The :input must be after today",
68
+ async validate(value, context) {
69
+ const today = new Date();
70
+ today.setHours(0, 0, 0, 0);
71
+ const inputDate = new Date(value);
72
+ inputDate.setHours(0, 0, 0, 0);
73
+ if (inputDate > today) {
74
+ return VALID_RULE;
75
+ }
76
+ return invalidRule(this, context);
77
+ },
78
+ };export{afterTodayRule,betweenDatesRule,futureRule,pastRule,todayRule};//# sourceMappingURL=date-comparison-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-comparison-rules.js","sources":["../../../src/rules/date/date-comparison-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"wGAGA;;AAEG;AACU,MAAA,gBAAgB,GAGxB;AACH,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,mBAAmB,EAAE,oDAAoD;AACzE,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;QACjC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACpD,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAElC,QAAA,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,EAAE;AAClD,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,SAAS,GAAe;AACnC,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,mBAAmB,EAAE,0BAA0B;AAC/C,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/B,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE;AAC3C,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,QAAQ,GAAe;AAClC,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,mBAAmB,EAAE,gCAAgC;AACrD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,SAAS,GAAG,GAAG,EAAE;AACnB,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,UAAU,GAAe;AACpC,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,IAAI,KAAK,GAAG,GAAG,EAAE;AACf,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AAED,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,cAAc,GAAe;AACxC,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,mBAAmB,EAAE,gCAAgC;AACrD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/B,IAAI,SAAS,GAAG,KAAK,EAAE;AACrB,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;"}
@@ -0,0 +1,21 @@
1
+ import type { SchemaRule } from "../../types";
2
+ import type { WeekDay } from "../../types/date-types";
3
+ /**
4
+ * Weekend rule - date must be Saturday or Sunday
5
+ */
6
+ export declare const weekendRule: SchemaRule;
7
+ /**
8
+ * Weekday rule - date must be Monday through Friday
9
+ */
10
+ export declare const weekdayRule: SchemaRule;
11
+ /**
12
+ * Weekdays rule - date must be one of specified weekdays
13
+ */
14
+ export declare const weekdaysRule: SchemaRule<{
15
+ days: WeekDay[];
16
+ }>;
17
+ /**
18
+ * Business day rule - date must be Monday-Friday (no weekends)
19
+ */
20
+ export declare const businessDayRule: SchemaRule;
21
+ //# sourceMappingURL=date-day-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-day-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/date/date-day-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGtD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,UAazB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,UAazB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,CAexD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,UAa7B,CAAC"}
@@ -0,0 +1,65 @@
1
+ import'@mongez/reinforcements';import {VALID_RULE,invalidRule}from'../../helpers/validation-helpers.js';import {WEEK_DAYS}from'../../types/date-types.js';/**
2
+ * Weekend rule - date must be Saturday or Sunday
3
+ */
4
+ const weekendRule = {
5
+ name: "weekend",
6
+ defaultErrorMessage: "The :input must be a weekend (Saturday or Sunday)",
7
+ async validate(value, context) {
8
+ const inputDate = new Date(value);
9
+ const dayOfWeek = inputDate.getDay();
10
+ // 0 = Sunday, 6 = Saturday
11
+ if (dayOfWeek === 0 || dayOfWeek === 6) {
12
+ return VALID_RULE;
13
+ }
14
+ return invalidRule(this, context);
15
+ },
16
+ };
17
+ /**
18
+ * Weekday rule - date must be Monday through Friday
19
+ */
20
+ const weekdayRule = {
21
+ name: "weekday",
22
+ defaultErrorMessage: "The :input must be a weekday (Monday-Friday)",
23
+ async validate(value, context) {
24
+ const inputDate = new Date(value);
25
+ const dayOfWeek = inputDate.getDay();
26
+ // 1-5 = Monday-Friday
27
+ if (dayOfWeek >= 1 && dayOfWeek <= 5) {
28
+ return VALID_RULE;
29
+ }
30
+ return invalidRule(this, context);
31
+ },
32
+ };
33
+ /**
34
+ * Weekdays rule - date must be one of specified weekdays
35
+ */
36
+ const weekdaysRule = {
37
+ name: "weekdays",
38
+ defaultErrorMessage: "The :input must be one of: :days",
39
+ async validate(value, context) {
40
+ const inputDate = new Date(value);
41
+ const dayOfWeek = inputDate.getDay();
42
+ const { days } = this.context.options;
43
+ const allowedDays = days.map(day => WEEK_DAYS[day]);
44
+ if (allowedDays.includes(dayOfWeek)) {
45
+ return VALID_RULE;
46
+ }
47
+ return invalidRule(this, context);
48
+ },
49
+ };
50
+ /**
51
+ * Business day rule - date must be Monday-Friday (no weekends)
52
+ */
53
+ const businessDayRule = {
54
+ name: "businessDay",
55
+ defaultErrorMessage: "The :input must be a business day",
56
+ async validate(value, context) {
57
+ const inputDate = new Date(value);
58
+ const dayOfWeek = inputDate.getDay();
59
+ // 1-5 = Monday-Friday
60
+ if (dayOfWeek >= 1 && dayOfWeek <= 5) {
61
+ return VALID_RULE;
62
+ }
63
+ return invalidRule(this, context);
64
+ },
65
+ };export{businessDayRule,weekdayRule,weekdaysRule,weekendRule};//# sourceMappingURL=date-day-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-day-rules.js","sources":["../../../src/rules/date/date-day-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"0JAKA;;AAEG;AACU,MAAA,WAAW,GAAe;AACrC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,mBAAmB,EAAE,mDAAmD;AACxE,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;;AAGrC,QAAA,IAAI,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;AACtC,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,WAAW,GAAe;AACrC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,mBAAmB,EAAE,8CAA8C;AACnE,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;;AAGrC,QAAA,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE;AACpC,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,YAAY,GAAoC;AAC3D,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAEtC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpD,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,eAAe,GAAe;AACzC,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,mBAAmB,EAAE,mCAAmC;AACxD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;;AAGrC,QAAA,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE;AACpC,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;"}
@@ -0,0 +1,28 @@
1
+ import type { SchemaRule } from "../../types";
2
+ /**
3
+ * Before field rule - date must be < given date or field
4
+ * Smart detection: date value or field name
5
+ * Supports both global and sibling scope
6
+ */
7
+ export declare const beforeFieldRule: SchemaRule<{
8
+ dateOrField: Date | string | number;
9
+ scope?: "global" | "sibling";
10
+ }>;
11
+ /**
12
+ * After field rule - date must be > given date or field
13
+ * Smart detection: date value or field name
14
+ * Supports both global and sibling scope
15
+ */
16
+ export declare const afterFieldRule: SchemaRule<{
17
+ dateOrField: Date | string | number;
18
+ scope?: "global" | "sibling";
19
+ }>;
20
+ /**
21
+ * Same as field rule - date must be the same as another field's date
22
+ * Supports both global and sibling scope
23
+ */
24
+ export declare const sameAsFieldDateRule: SchemaRule<{
25
+ field: string;
26
+ scope?: "global" | "sibling";
27
+ }>;
28
+ //# sourceMappingURL=date-field-comparison-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-field-comparison-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/date/date-field-comparison-rules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC;IACvC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CA8BA,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,UAAU,CAAC;IACtC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CA8BA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAwBA,CAAC"}