@warlock.js/seal 4.0.48 → 4.0.59

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 (733) hide show
  1. package/cjs/config.d.ts +48 -0
  2. package/cjs/config.d.ts.map +1 -0
  3. package/cjs/config.js +42 -0
  4. package/cjs/config.js.map +1 -0
  5. package/cjs/factory/index.d.ts +3 -0
  6. package/cjs/factory/index.d.ts.map +1 -0
  7. package/cjs/factory/validate.d.ts +8 -0
  8. package/cjs/factory/validate.d.ts.map +1 -0
  9. package/cjs/factory/validate.js +23 -0
  10. package/cjs/factory/validate.js.map +1 -0
  11. package/cjs/factory/validators.d.ts +41 -0
  12. package/cjs/factory/validators.d.ts.map +1 -0
  13. package/cjs/factory/validators.js +45 -0
  14. package/cjs/factory/validators.js.map +1 -0
  15. package/cjs/helpers/date-helpers.d.ts +16 -0
  16. package/cjs/helpers/date-helpers.d.ts.map +1 -0
  17. package/cjs/helpers/date-helpers.js +20 -0
  18. package/cjs/helpers/date-helpers.js.map +1 -0
  19. package/cjs/helpers/file.utils.d.ts +8 -0
  20. package/cjs/helpers/file.utils.d.ts.map +1 -0
  21. package/cjs/helpers/file.utils.js +29 -0
  22. package/cjs/helpers/file.utils.js.map +1 -0
  23. package/cjs/helpers/get-field-value.d.ts +37 -0
  24. package/cjs/helpers/get-field-value.d.ts.map +1 -0
  25. package/cjs/helpers/get-field-value.js +40 -0
  26. package/cjs/helpers/get-field-value.js.map +1 -0
  27. package/cjs/helpers/index.d.ts +6 -0
  28. package/cjs/helpers/index.d.ts.map +1 -0
  29. package/cjs/helpers/is-empty-value.d.ts +2 -0
  30. package/cjs/helpers/is-empty-value.d.ts.map +1 -0
  31. package/cjs/helpers/is-empty-value.js +3 -0
  32. package/cjs/helpers/is-empty-value.js.map +1 -0
  33. package/cjs/helpers/path-helpers.d.ts +5 -0
  34. package/cjs/helpers/path-helpers.d.ts.map +1 -0
  35. package/cjs/helpers/path-helpers.js +8 -0
  36. package/cjs/helpers/path-helpers.js.map +1 -0
  37. package/cjs/helpers/validation-helpers.d.ts +4 -0
  38. package/cjs/helpers/validation-helpers.d.ts.map +1 -0
  39. package/cjs/helpers/validation-helpers.js +48 -0
  40. package/cjs/helpers/validation-helpers.js.map +1 -0
  41. package/cjs/index.d.ts +29 -0
  42. package/cjs/index.d.ts.map +1 -0
  43. package/cjs/index.js +1 -63
  44. package/cjs/index.js.map +1 -1
  45. package/cjs/mutators/array-mutators.d.ts +12 -0
  46. package/cjs/mutators/array-mutators.d.ts.map +1 -0
  47. package/cjs/mutators/array-mutators.js +37 -0
  48. package/cjs/mutators/array-mutators.js.map +1 -0
  49. package/cjs/mutators/date-mutators.d.ts +39 -0
  50. package/cjs/mutators/date-mutators.d.ts.map +1 -0
  51. package/cjs/mutators/date-mutators.js +120 -0
  52. package/cjs/mutators/date-mutators.js.map +1 -0
  53. package/cjs/mutators/index.d.ts +7 -0
  54. package/cjs/mutators/index.d.ts.map +1 -0
  55. package/cjs/mutators/number-mutators.d.ts +9 -0
  56. package/cjs/mutators/number-mutators.d.ts.map +1 -0
  57. package/cjs/mutators/number-mutators.js +23 -0
  58. package/cjs/mutators/number-mutators.js.map +1 -0
  59. package/cjs/mutators/object-mutators.d.ts +8 -0
  60. package/cjs/mutators/object-mutators.d.ts.map +1 -0
  61. package/cjs/mutators/object-mutators.js +50 -0
  62. package/cjs/mutators/object-mutators.js.map +1 -0
  63. package/cjs/mutators/scalar-mutators.d.ts +3 -0
  64. package/cjs/mutators/scalar-mutators.d.ts.map +1 -0
  65. package/cjs/mutators/scalar-mutators.js +6 -0
  66. package/cjs/mutators/scalar-mutators.js.map +1 -0
  67. package/cjs/mutators/string-mutators.d.ts +72 -0
  68. package/cjs/mutators/string-mutators.d.ts.map +1 -0
  69. package/cjs/mutators/string-mutators.js +193 -0
  70. package/cjs/mutators/string-mutators.js.map +1 -0
  71. package/cjs/plugins/index.d.ts +7 -0
  72. package/cjs/plugins/index.d.ts.map +1 -0
  73. package/cjs/plugins/plugin-system.d.ts +71 -0
  74. package/cjs/plugins/plugin-system.d.ts.map +1 -0
  75. package/cjs/plugins/plugin-system.js +68 -0
  76. package/cjs/plugins/plugin-system.js.map +1 -0
  77. package/cjs/rules/array/array-rules.d.ts +12 -0
  78. package/cjs/rules/array/array-rules.d.ts.map +1 -0
  79. package/cjs/rules/array/array-rules.js +44 -0
  80. package/cjs/rules/array/array-rules.js.map +1 -0
  81. package/cjs/rules/array/index.d.ts +2 -0
  82. package/cjs/rules/array/index.d.ts.map +1 -0
  83. package/cjs/rules/color/color-rules.d.ts +30 -0
  84. package/cjs/rules/color/color-rules.d.ts.map +1 -0
  85. package/cjs/rules/color/color-rules.js +120 -0
  86. package/cjs/rules/color/color-rules.js.map +1 -0
  87. package/cjs/rules/color/index.d.ts +2 -0
  88. package/cjs/rules/color/index.d.ts.map +1 -0
  89. package/cjs/rules/common/enum.d.ts +26 -0
  90. package/cjs/rules/common/enum.d.ts.map +1 -0
  91. package/cjs/rules/common/enum.js +55 -0
  92. package/cjs/rules/common/enum.js.map +1 -0
  93. package/cjs/rules/common/equals-field-rules.d.ts +18 -0
  94. package/cjs/rules/common/equals-field-rules.d.ts.map +1 -0
  95. package/cjs/rules/common/equals-field-rules.js +38 -0
  96. package/cjs/rules/common/equals-field-rules.js.map +1 -0
  97. package/cjs/rules/common/index.d.ts +5 -0
  98. package/cjs/rules/common/index.d.ts.map +1 -0
  99. package/cjs/rules/common/type-rules.d.ts +34 -0
  100. package/cjs/rules/common/type-rules.d.ts.map +1 -0
  101. package/cjs/rules/common/type-rules.js +104 -0
  102. package/cjs/rules/common/type-rules.js.map +1 -0
  103. package/cjs/rules/common/unknown-key.d.ts +9 -0
  104. package/cjs/rules/common/unknown-key.d.ts.map +1 -0
  105. package/cjs/rules/common/unknown-key.js +18 -0
  106. package/cjs/rules/common/unknown-key.js.map +1 -0
  107. package/cjs/rules/conditional/forbidden-if-rules.d.ts +54 -0
  108. package/cjs/rules/conditional/forbidden-if-rules.d.ts.map +1 -0
  109. package/cjs/rules/conditional/forbidden-if-rules.js +112 -0
  110. package/cjs/rules/conditional/forbidden-if-rules.js.map +1 -0
  111. package/cjs/rules/conditional/index.d.ts +10 -0
  112. package/cjs/rules/conditional/index.d.ts.map +1 -0
  113. package/cjs/rules/conditional/present-if-rules.d.ts +45 -0
  114. package/cjs/rules/conditional/present-if-rules.d.ts.map +1 -0
  115. package/cjs/rules/conditional/present-if-rules.js +98 -0
  116. package/cjs/rules/conditional/present-if-rules.js.map +1 -0
  117. package/cjs/rules/conditional/present-unless-rules.d.ts +11 -0
  118. package/cjs/rules/conditional/present-unless-rules.d.ts.map +1 -0
  119. package/cjs/rules/conditional/present-unless-rules.js +20 -0
  120. package/cjs/rules/conditional/present-unless-rules.js.map +1 -0
  121. package/cjs/rules/conditional/present-with-rules.d.ts +26 -0
  122. package/cjs/rules/conditional/present-with-rules.d.ts.map +1 -0
  123. package/cjs/rules/conditional/present-with-rules.js +63 -0
  124. package/cjs/rules/conditional/present-with-rules.js.map +1 -0
  125. package/cjs/rules/conditional/present-without-rules.d.ts +26 -0
  126. package/cjs/rules/conditional/present-without-rules.d.ts.map +1 -0
  127. package/cjs/rules/conditional/present-without-rules.js +63 -0
  128. package/cjs/rules/conditional/present-without-rules.js.map +1 -0
  129. package/cjs/rules/conditional/required-if-rules.d.ts +45 -0
  130. package/cjs/rules/conditional/required-if-rules.d.ts.map +1 -0
  131. package/cjs/rules/conditional/required-if-rules.js +98 -0
  132. package/cjs/rules/conditional/required-if-rules.js.map +1 -0
  133. package/cjs/rules/conditional/required-unless-rules.d.ts +11 -0
  134. package/cjs/rules/conditional/required-unless-rules.d.ts.map +1 -0
  135. package/cjs/rules/conditional/required-unless-rules.js +20 -0
  136. package/cjs/rules/conditional/required-unless-rules.js.map +1 -0
  137. package/cjs/rules/conditional/required-with-rules.d.ts +26 -0
  138. package/cjs/rules/conditional/required-with-rules.d.ts.map +1 -0
  139. package/cjs/rules/conditional/required-with-rules.js +63 -0
  140. package/cjs/rules/conditional/required-with-rules.js.map +1 -0
  141. package/cjs/rules/conditional/required-without-rules.d.ts +26 -0
  142. package/cjs/rules/conditional/required-without-rules.d.ts.map +1 -0
  143. package/cjs/rules/conditional/required-without-rules.js +63 -0
  144. package/cjs/rules/conditional/required-without-rules.js.map +1 -0
  145. package/cjs/rules/core/equal.d.ts +8 -0
  146. package/cjs/rules/core/equal.d.ts.map +1 -0
  147. package/cjs/rules/core/equal.js +13 -0
  148. package/cjs/rules/core/equal.js.map +1 -0
  149. package/cjs/rules/core/forbidden.d.ts +6 -0
  150. package/cjs/rules/core/forbidden.d.ts.map +1 -0
  151. package/cjs/rules/core/forbidden.js +13 -0
  152. package/cjs/rules/core/forbidden.js.map +1 -0
  153. package/cjs/rules/core/index.d.ts +6 -0
  154. package/cjs/rules/core/index.d.ts.map +1 -0
  155. package/cjs/rules/core/required.d.ts +11 -0
  156. package/cjs/rules/core/required.d.ts.map +1 -0
  157. package/cjs/rules/core/required.js +31 -0
  158. package/cjs/rules/core/required.js.map +1 -0
  159. package/cjs/rules/core/union.d.ts +9 -0
  160. package/cjs/rules/core/union.d.ts.map +1 -0
  161. package/cjs/rules/core/union.js +40 -0
  162. package/cjs/rules/core/union.js.map +1 -0
  163. package/cjs/rules/core/when.d.ts +6 -0
  164. package/cjs/rules/core/when.d.ts.map +1 -0
  165. package/cjs/rules/core/when.js +40 -0
  166. package/cjs/rules/core/when.js.map +1 -0
  167. package/cjs/rules/date/date-comparison-rules.d.ts +25 -0
  168. package/cjs/rules/date/date-comparison-rules.d.ts.map +1 -0
  169. package/cjs/rules/date/date-comparison-rules.js +78 -0
  170. package/cjs/rules/date/date-comparison-rules.js.map +1 -0
  171. package/cjs/rules/date/date-day-rules.d.ts +21 -0
  172. package/cjs/rules/date/date-day-rules.d.ts.map +1 -0
  173. package/cjs/rules/date/date-day-rules.js +65 -0
  174. package/cjs/rules/date/date-day-rules.js.map +1 -0
  175. package/cjs/rules/date/date-field-comparison-rules.d.ts +28 -0
  176. package/cjs/rules/date/date-field-comparison-rules.d.ts.map +1 -0
  177. package/cjs/rules/date/date-field-comparison-rules.js +90 -0
  178. package/cjs/rules/date/date-field-comparison-rules.js.map +1 -0
  179. package/cjs/rules/date/date-period-rules.d.ts +108 -0
  180. package/cjs/rules/date/date-period-rules.d.ts.map +1 -0
  181. package/cjs/rules/date/date-period-rules.js +566 -0
  182. package/cjs/rules/date/date-period-rules.js.map +1 -0
  183. package/cjs/rules/date/date-relative-rules.d.ts +20 -0
  184. package/cjs/rules/date/date-relative-rules.d.ts.map +1 -0
  185. package/cjs/rules/date/date-relative-rules.js +57 -0
  186. package/cjs/rules/date/date-relative-rules.js.map +1 -0
  187. package/cjs/rules/date/date-special-rules.d.ts +20 -0
  188. package/cjs/rules/date/date-special-rules.d.ts.map +1 -0
  189. package/cjs/rules/date/date-special-rules.js +72 -0
  190. package/cjs/rules/date/date-special-rules.js.map +1 -0
  191. package/cjs/rules/date/date.d.ts +93 -0
  192. package/cjs/rules/date/date.d.ts.map +1 -0
  193. package/cjs/rules/date/date.js +279 -0
  194. package/cjs/rules/date/date.js.map +1 -0
  195. package/cjs/rules/date/index.d.ts +8 -0
  196. package/cjs/rules/date/index.d.ts.map +1 -0
  197. package/cjs/rules/file/dimensions.d.ts +26 -0
  198. package/cjs/rules/file/dimensions.d.ts.map +1 -0
  199. package/cjs/rules/file/dimensions.js +56 -0
  200. package/cjs/rules/file/dimensions.js.map +1 -0
  201. package/cjs/rules/file/file-size.d.ts +14 -0
  202. package/cjs/rules/file/file-size.d.ts.map +1 -0
  203. package/cjs/rules/file/file-size.js +48 -0
  204. package/cjs/rules/file/file-size.js.map +1 -0
  205. package/cjs/rules/file/index.d.ts +11 -0
  206. package/cjs/rules/file/index.d.ts.map +1 -0
  207. package/cjs/rules/index.d.ts +19 -0
  208. package/cjs/rules/index.d.ts.map +1 -0
  209. package/cjs/rules/length/index.d.ts +2 -0
  210. package/cjs/rules/length/index.d.ts.map +1 -0
  211. package/cjs/rules/length/length-rules.d.ts +49 -0
  212. package/cjs/rules/length/length-rules.d.ts.map +1 -0
  213. package/cjs/rules/length/length-rules.js +116 -0
  214. package/cjs/rules/length/length-rules.js.map +1 -0
  215. package/cjs/rules/number/index.d.ts +2 -0
  216. package/cjs/rules/number/index.d.ts.map +1 -0
  217. package/cjs/rules/number/number-rules.d.ts +65 -0
  218. package/cjs/rules/number/number-rules.d.ts.map +1 -0
  219. package/cjs/rules/number/number-rules.js +234 -0
  220. package/cjs/rules/number/number-rules.js.map +1 -0
  221. package/cjs/rules/scalar/accepted-rule.d.ts +39 -0
  222. package/cjs/rules/scalar/accepted-rule.d.ts.map +1 -0
  223. package/cjs/rules/scalar/accepted-rule.js +110 -0
  224. package/cjs/rules/scalar/accepted-rule.js.map +1 -0
  225. package/cjs/rules/scalar/declined-rule.d.ts +39 -0
  226. package/cjs/rules/scalar/declined-rule.d.ts.map +1 -0
  227. package/cjs/rules/scalar/declined-rule.js +110 -0
  228. package/cjs/rules/scalar/declined-rule.js.map +1 -0
  229. package/cjs/rules/scalar/index.d.ts +3 -0
  230. package/cjs/rules/scalar/index.d.ts.map +1 -0
  231. package/cjs/rules/string/alpha.d.ts +14 -0
  232. package/cjs/rules/string/alpha.d.ts.map +1 -0
  233. package/cjs/rules/string/alpha.js +39 -0
  234. package/cjs/rules/string/alpha.js.map +1 -0
  235. package/cjs/rules/string/credit-card.d.ts +6 -0
  236. package/cjs/rules/string/credit-card.d.ts.map +1 -0
  237. package/cjs/rules/string/credit-card.js +31 -0
  238. package/cjs/rules/string/credit-card.js.map +1 -0
  239. package/cjs/rules/string/email.d.ts +6 -0
  240. package/cjs/rules/string/email.d.ts.map +1 -0
  241. package/cjs/rules/string/email.js +13 -0
  242. package/cjs/rules/string/email.js.map +1 -0
  243. package/cjs/rules/string/index.d.ts +17 -0
  244. package/cjs/rules/string/index.d.ts.map +1 -0
  245. package/cjs/rules/string/ip.d.ts +14 -0
  246. package/cjs/rules/string/ip.d.ts.map +1 -0
  247. package/cjs/rules/string/ip.js +39 -0
  248. package/cjs/rules/string/ip.js.map +1 -0
  249. package/cjs/rules/string/matches.d.ts +8 -0
  250. package/cjs/rules/string/matches.d.ts.map +1 -0
  251. package/cjs/rules/string/matches.js +14 -0
  252. package/cjs/rules/string/matches.js.map +1 -0
  253. package/cjs/rules/string/pattern.d.ts +8 -0
  254. package/cjs/rules/string/pattern.d.ts.map +1 -0
  255. package/cjs/rules/string/pattern.js +13 -0
  256. package/cjs/rules/string/pattern.js.map +1 -0
  257. package/cjs/rules/string/string-comparison.d.ts +26 -0
  258. package/cjs/rules/string/string-comparison.d.ts.map +1 -0
  259. package/cjs/rules/string/string-comparison.js +52 -0
  260. package/cjs/rules/string/string-comparison.js.map +1 -0
  261. package/cjs/rules/string/strong-password-rule.d.ts +14 -0
  262. package/cjs/rules/string/strong-password-rule.d.ts.map +1 -0
  263. package/cjs/rules/string/strong-password-rule.js +38 -0
  264. package/cjs/rules/string/strong-password-rule.js.map +1 -0
  265. package/cjs/rules/string/url.d.ts +6 -0
  266. package/cjs/rules/string/url.d.ts.map +1 -0
  267. package/cjs/rules/string/url.js +16 -0
  268. package/cjs/rules/string/url.js.map +1 -0
  269. package/cjs/rules/string/without-whitespace.d.ts +6 -0
  270. package/cjs/rules/string/without-whitespace.d.ts.map +1 -0
  271. package/cjs/rules/string/without-whitespace.js +13 -0
  272. package/cjs/rules/string/without-whitespace.js.map +1 -0
  273. package/cjs/types/conditional-types.d.ts +15 -0
  274. package/cjs/types/conditional-types.d.ts.map +1 -0
  275. package/cjs/types/context-types.d.ts +48 -0
  276. package/cjs/types/context-types.d.ts.map +1 -0
  277. package/cjs/types/data-transformer-types.d.ts +25 -0
  278. package/cjs/types/data-transformer-types.d.ts.map +1 -0
  279. package/cjs/types/date-types.d.ts +9 -0
  280. package/cjs/types/date-types.d.ts.map +1 -0
  281. package/cjs/types/date-types.js +12 -0
  282. package/cjs/types/date-types.js.map +1 -0
  283. package/cjs/types/file.types.d.ts +5 -0
  284. package/cjs/types/file.types.d.ts.map +1 -0
  285. package/cjs/types/index.d.ts +11 -0
  286. package/cjs/types/index.d.ts.map +1 -0
  287. package/cjs/types/inference-types.d.ts +27 -0
  288. package/cjs/types/inference-types.d.ts.map +1 -0
  289. package/cjs/types/mutator-types.d.ts +27 -0
  290. package/cjs/types/mutator-types.d.ts.map +1 -0
  291. package/cjs/types/result-types.d.ts +19 -0
  292. package/cjs/types/result-types.d.ts.map +1 -0
  293. package/cjs/types/rule-types.d.ts +54 -0
  294. package/cjs/types/rule-types.d.ts.map +1 -0
  295. package/cjs/types/schema-types.d.ts +6 -0
  296. package/cjs/types/schema-types.d.ts.map +1 -0
  297. package/cjs/validators/any-validator.d.ts +7 -0
  298. package/cjs/validators/any-validator.d.ts.map +1 -0
  299. package/cjs/validators/any-validator.js +5 -0
  300. package/cjs/validators/any-validator.js.map +1 -0
  301. package/cjs/validators/array-validator.d.ts +59 -0
  302. package/cjs/validators/array-validator.d.ts.map +1 -0
  303. package/cjs/validators/array-validator.js +134 -0
  304. package/cjs/validators/array-validator.js.map +1 -0
  305. package/cjs/validators/base-validator.d.ts +610 -0
  306. package/cjs/validators/base-validator.d.ts.map +1 -0
  307. package/cjs/validators/base-validator.js +1160 -0
  308. package/cjs/validators/base-validator.js.map +1 -0
  309. package/cjs/validators/boolean-validator.d.ts +47 -0
  310. package/cjs/validators/boolean-validator.d.ts.map +1 -0
  311. package/cjs/validators/boolean-validator.js +54 -0
  312. package/cjs/validators/boolean-validator.js.map +1 -0
  313. package/cjs/validators/computed-validator.d.ts +64 -0
  314. package/cjs/validators/computed-validator.d.ts.map +1 -0
  315. package/cjs/validators/computed-validator.js +109 -0
  316. package/cjs/validators/computed-validator.js.map +1 -0
  317. package/cjs/validators/date-validator.d.ts +307 -0
  318. package/cjs/validators/date-validator.d.ts.map +1 -0
  319. package/cjs/validators/date-validator.js +645 -0
  320. package/cjs/validators/date-validator.js.map +1 -0
  321. package/cjs/validators/float-validator.d.ts +8 -0
  322. package/cjs/validators/float-validator.d.ts.map +1 -0
  323. package/cjs/validators/float-validator.js +9 -0
  324. package/cjs/validators/float-validator.js.map +1 -0
  325. package/cjs/validators/index.d.ts +26 -0
  326. package/cjs/validators/index.d.ts.map +1 -0
  327. package/cjs/validators/int-validator.d.ts +8 -0
  328. package/cjs/validators/int-validator.d.ts.map +1 -0
  329. package/cjs/validators/int-validator.js +9 -0
  330. package/cjs/validators/int-validator.js.map +1 -0
  331. package/cjs/validators/managed-validator.d.ts +38 -0
  332. package/cjs/validators/managed-validator.d.ts.map +1 -0
  333. package/cjs/validators/managed-validator.js +34 -0
  334. package/cjs/validators/managed-validator.js.map +1 -0
  335. package/cjs/validators/number-validator.d.ts +113 -0
  336. package/cjs/validators/number-validator.d.ts.map +1 -0
  337. package/cjs/validators/number-validator.js +192 -0
  338. package/cjs/validators/number-validator.js.map +1 -0
  339. package/cjs/validators/numeric-validator.d.ts +15 -0
  340. package/cjs/validators/numeric-validator.d.ts.map +1 -0
  341. package/cjs/validators/numeric-validator.js +18 -0
  342. package/cjs/validators/numeric-validator.js.map +1 -0
  343. package/cjs/validators/object-validator.d.ts +187 -0
  344. package/cjs/validators/object-validator.d.ts.map +1 -0
  345. package/cjs/validators/object-validator.js +416 -0
  346. package/cjs/validators/object-validator.js.map +1 -0
  347. package/cjs/validators/record-validator.d.ts +33 -0
  348. package/cjs/validators/record-validator.d.ts.map +1 -0
  349. package/cjs/validators/record-validator.js +70 -0
  350. package/cjs/validators/record-validator.js.map +1 -0
  351. package/cjs/validators/scalar-validator.d.ts +82 -0
  352. package/cjs/validators/scalar-validator.d.ts.map +1 -0
  353. package/cjs/validators/scalar-validator.js +160 -0
  354. package/cjs/validators/scalar-validator.js.map +1 -0
  355. package/cjs/validators/string-validator.d.ts +191 -0
  356. package/cjs/validators/string-validator.d.ts.map +1 -0
  357. package/cjs/validators/string-validator.js +410 -0
  358. package/cjs/validators/string-validator.js.map +1 -0
  359. package/cjs/validators/tuple-validator.d.ts +34 -0
  360. package/cjs/validators/tuple-validator.d.ts.map +1 -0
  361. package/cjs/validators/tuple-validator.js +79 -0
  362. package/cjs/validators/tuple-validator.js.map +1 -0
  363. package/cjs/validators/union-validator.d.ts +42 -0
  364. package/cjs/validators/union-validator.d.ts.map +1 -0
  365. package/cjs/validators/union-validator.js +44 -0
  366. package/cjs/validators/union-validator.js.map +1 -0
  367. package/esm/config.d.ts +48 -0
  368. package/esm/config.d.ts.map +1 -0
  369. package/esm/config.js +42 -0
  370. package/esm/config.js.map +1 -0
  371. package/esm/factory/index.d.ts +3 -0
  372. package/esm/factory/index.d.ts.map +1 -0
  373. package/esm/factory/validate.d.ts +8 -0
  374. package/esm/factory/validate.d.ts.map +1 -0
  375. package/esm/factory/validate.js +23 -0
  376. package/esm/factory/validate.js.map +1 -0
  377. package/esm/factory/validators.d.ts +41 -0
  378. package/esm/factory/validators.d.ts.map +1 -0
  379. package/esm/factory/validators.js +45 -0
  380. package/esm/factory/validators.js.map +1 -0
  381. package/esm/helpers/date-helpers.d.ts +16 -0
  382. package/esm/helpers/date-helpers.d.ts.map +1 -0
  383. package/esm/helpers/date-helpers.js +20 -0
  384. package/esm/helpers/date-helpers.js.map +1 -0
  385. package/esm/helpers/file.utils.d.ts +8 -0
  386. package/esm/helpers/file.utils.d.ts.map +1 -0
  387. package/esm/helpers/file.utils.js +29 -0
  388. package/esm/helpers/file.utils.js.map +1 -0
  389. package/esm/helpers/get-field-value.d.ts +37 -0
  390. package/esm/helpers/get-field-value.d.ts.map +1 -0
  391. package/esm/helpers/get-field-value.js +40 -0
  392. package/esm/helpers/get-field-value.js.map +1 -0
  393. package/esm/helpers/index.d.ts +6 -0
  394. package/esm/helpers/index.d.ts.map +1 -0
  395. package/esm/helpers/is-empty-value.d.ts +2 -0
  396. package/esm/helpers/is-empty-value.d.ts.map +1 -0
  397. package/esm/helpers/is-empty-value.js +3 -0
  398. package/esm/helpers/is-empty-value.js.map +1 -0
  399. package/esm/helpers/path-helpers.d.ts +5 -0
  400. package/esm/helpers/path-helpers.d.ts.map +1 -0
  401. package/esm/helpers/path-helpers.js +8 -0
  402. package/esm/helpers/path-helpers.js.map +1 -0
  403. package/esm/helpers/validation-helpers.d.ts +4 -0
  404. package/esm/helpers/validation-helpers.d.ts.map +1 -0
  405. package/esm/helpers/validation-helpers.js +48 -0
  406. package/esm/helpers/validation-helpers.js.map +1 -0
  407. package/esm/index.d.ts +29 -0
  408. package/esm/index.d.ts.map +1 -0
  409. package/esm/index.js +1 -10
  410. package/esm/index.js.map +1 -1
  411. package/esm/mutators/array-mutators.d.ts +12 -0
  412. package/esm/mutators/array-mutators.d.ts.map +1 -0
  413. package/esm/mutators/array-mutators.js +37 -0
  414. package/esm/mutators/array-mutators.js.map +1 -0
  415. package/esm/mutators/date-mutators.d.ts +39 -0
  416. package/esm/mutators/date-mutators.d.ts.map +1 -0
  417. package/esm/mutators/date-mutators.js +120 -0
  418. package/esm/mutators/date-mutators.js.map +1 -0
  419. package/esm/mutators/index.d.ts +7 -0
  420. package/esm/mutators/index.d.ts.map +1 -0
  421. package/esm/mutators/number-mutators.d.ts +9 -0
  422. package/esm/mutators/number-mutators.d.ts.map +1 -0
  423. package/esm/mutators/number-mutators.js +23 -0
  424. package/esm/mutators/number-mutators.js.map +1 -0
  425. package/esm/mutators/object-mutators.d.ts +8 -0
  426. package/esm/mutators/object-mutators.d.ts.map +1 -0
  427. package/esm/mutators/object-mutators.js +50 -0
  428. package/esm/mutators/object-mutators.js.map +1 -0
  429. package/esm/mutators/scalar-mutators.d.ts +3 -0
  430. package/esm/mutators/scalar-mutators.d.ts.map +1 -0
  431. package/esm/mutators/scalar-mutators.js +6 -0
  432. package/esm/mutators/scalar-mutators.js.map +1 -0
  433. package/esm/mutators/string-mutators.d.ts +72 -0
  434. package/esm/mutators/string-mutators.d.ts.map +1 -0
  435. package/esm/mutators/string-mutators.js +193 -0
  436. package/esm/mutators/string-mutators.js.map +1 -0
  437. package/esm/plugins/index.d.ts +7 -0
  438. package/esm/plugins/index.d.ts.map +1 -0
  439. package/esm/plugins/plugin-system.d.ts +71 -0
  440. package/esm/plugins/plugin-system.d.ts.map +1 -0
  441. package/esm/plugins/plugin-system.js +68 -0
  442. package/esm/plugins/plugin-system.js.map +1 -0
  443. package/esm/rules/array/array-rules.d.ts +12 -0
  444. package/esm/rules/array/array-rules.d.ts.map +1 -0
  445. package/esm/rules/array/array-rules.js +44 -0
  446. package/esm/rules/array/array-rules.js.map +1 -0
  447. package/esm/rules/array/index.d.ts +2 -0
  448. package/esm/rules/array/index.d.ts.map +1 -0
  449. package/esm/rules/color/color-rules.d.ts +30 -0
  450. package/esm/rules/color/color-rules.d.ts.map +1 -0
  451. package/esm/rules/color/color-rules.js +120 -0
  452. package/esm/rules/color/color-rules.js.map +1 -0
  453. package/esm/rules/color/index.d.ts +2 -0
  454. package/esm/rules/color/index.d.ts.map +1 -0
  455. package/esm/rules/common/enum.d.ts +26 -0
  456. package/esm/rules/common/enum.d.ts.map +1 -0
  457. package/esm/rules/common/enum.js +55 -0
  458. package/esm/rules/common/enum.js.map +1 -0
  459. package/esm/rules/common/equals-field-rules.d.ts +18 -0
  460. package/esm/rules/common/equals-field-rules.d.ts.map +1 -0
  461. package/esm/rules/common/equals-field-rules.js +38 -0
  462. package/esm/rules/common/equals-field-rules.js.map +1 -0
  463. package/esm/rules/common/index.d.ts +5 -0
  464. package/esm/rules/common/index.d.ts.map +1 -0
  465. package/esm/rules/common/type-rules.d.ts +34 -0
  466. package/esm/rules/common/type-rules.d.ts.map +1 -0
  467. package/esm/rules/common/type-rules.js +104 -0
  468. package/esm/rules/common/type-rules.js.map +1 -0
  469. package/esm/rules/common/unknown-key.d.ts +9 -0
  470. package/esm/rules/common/unknown-key.d.ts.map +1 -0
  471. package/esm/rules/common/unknown-key.js +18 -0
  472. package/esm/rules/common/unknown-key.js.map +1 -0
  473. package/esm/rules/conditional/forbidden-if-rules.d.ts +54 -0
  474. package/esm/rules/conditional/forbidden-if-rules.d.ts.map +1 -0
  475. package/esm/rules/conditional/forbidden-if-rules.js +112 -0
  476. package/esm/rules/conditional/forbidden-if-rules.js.map +1 -0
  477. package/esm/rules/conditional/index.d.ts +10 -0
  478. package/esm/rules/conditional/index.d.ts.map +1 -0
  479. package/esm/rules/conditional/present-if-rules.d.ts +45 -0
  480. package/esm/rules/conditional/present-if-rules.d.ts.map +1 -0
  481. package/esm/rules/conditional/present-if-rules.js +98 -0
  482. package/esm/rules/conditional/present-if-rules.js.map +1 -0
  483. package/esm/rules/conditional/present-unless-rules.d.ts +11 -0
  484. package/esm/rules/conditional/present-unless-rules.d.ts.map +1 -0
  485. package/esm/rules/conditional/present-unless-rules.js +20 -0
  486. package/esm/rules/conditional/present-unless-rules.js.map +1 -0
  487. package/esm/rules/conditional/present-with-rules.d.ts +26 -0
  488. package/esm/rules/conditional/present-with-rules.d.ts.map +1 -0
  489. package/esm/rules/conditional/present-with-rules.js +63 -0
  490. package/esm/rules/conditional/present-with-rules.js.map +1 -0
  491. package/esm/rules/conditional/present-without-rules.d.ts +26 -0
  492. package/esm/rules/conditional/present-without-rules.d.ts.map +1 -0
  493. package/esm/rules/conditional/present-without-rules.js +63 -0
  494. package/esm/rules/conditional/present-without-rules.js.map +1 -0
  495. package/esm/rules/conditional/required-if-rules.d.ts +45 -0
  496. package/esm/rules/conditional/required-if-rules.d.ts.map +1 -0
  497. package/esm/rules/conditional/required-if-rules.js +98 -0
  498. package/esm/rules/conditional/required-if-rules.js.map +1 -0
  499. package/esm/rules/conditional/required-unless-rules.d.ts +11 -0
  500. package/esm/rules/conditional/required-unless-rules.d.ts.map +1 -0
  501. package/esm/rules/conditional/required-unless-rules.js +20 -0
  502. package/esm/rules/conditional/required-unless-rules.js.map +1 -0
  503. package/esm/rules/conditional/required-with-rules.d.ts +26 -0
  504. package/esm/rules/conditional/required-with-rules.d.ts.map +1 -0
  505. package/esm/rules/conditional/required-with-rules.js +63 -0
  506. package/esm/rules/conditional/required-with-rules.js.map +1 -0
  507. package/esm/rules/conditional/required-without-rules.d.ts +26 -0
  508. package/esm/rules/conditional/required-without-rules.d.ts.map +1 -0
  509. package/esm/rules/conditional/required-without-rules.js +63 -0
  510. package/esm/rules/conditional/required-without-rules.js.map +1 -0
  511. package/esm/rules/core/equal.d.ts +8 -0
  512. package/esm/rules/core/equal.d.ts.map +1 -0
  513. package/esm/rules/core/equal.js +13 -0
  514. package/esm/rules/core/equal.js.map +1 -0
  515. package/esm/rules/core/forbidden.d.ts +6 -0
  516. package/esm/rules/core/forbidden.d.ts.map +1 -0
  517. package/esm/rules/core/forbidden.js +13 -0
  518. package/esm/rules/core/forbidden.js.map +1 -0
  519. package/esm/rules/core/index.d.ts +6 -0
  520. package/esm/rules/core/index.d.ts.map +1 -0
  521. package/esm/rules/core/required.d.ts +11 -0
  522. package/esm/rules/core/required.d.ts.map +1 -0
  523. package/esm/rules/core/required.js +31 -0
  524. package/esm/rules/core/required.js.map +1 -0
  525. package/esm/rules/core/union.d.ts +9 -0
  526. package/esm/rules/core/union.d.ts.map +1 -0
  527. package/esm/rules/core/union.js +40 -0
  528. package/esm/rules/core/union.js.map +1 -0
  529. package/esm/rules/core/when.d.ts +6 -0
  530. package/esm/rules/core/when.d.ts.map +1 -0
  531. package/esm/rules/core/when.js +40 -0
  532. package/esm/rules/core/when.js.map +1 -0
  533. package/esm/rules/date/date-comparison-rules.d.ts +25 -0
  534. package/esm/rules/date/date-comparison-rules.d.ts.map +1 -0
  535. package/esm/rules/date/date-comparison-rules.js +78 -0
  536. package/esm/rules/date/date-comparison-rules.js.map +1 -0
  537. package/esm/rules/date/date-day-rules.d.ts +21 -0
  538. package/esm/rules/date/date-day-rules.d.ts.map +1 -0
  539. package/esm/rules/date/date-day-rules.js +65 -0
  540. package/esm/rules/date/date-day-rules.js.map +1 -0
  541. package/esm/rules/date/date-field-comparison-rules.d.ts +28 -0
  542. package/esm/rules/date/date-field-comparison-rules.d.ts.map +1 -0
  543. package/esm/rules/date/date-field-comparison-rules.js +90 -0
  544. package/esm/rules/date/date-field-comparison-rules.js.map +1 -0
  545. package/esm/rules/date/date-period-rules.d.ts +108 -0
  546. package/esm/rules/date/date-period-rules.d.ts.map +1 -0
  547. package/esm/rules/date/date-period-rules.js +566 -0
  548. package/esm/rules/date/date-period-rules.js.map +1 -0
  549. package/esm/rules/date/date-relative-rules.d.ts +20 -0
  550. package/esm/rules/date/date-relative-rules.d.ts.map +1 -0
  551. package/esm/rules/date/date-relative-rules.js +57 -0
  552. package/esm/rules/date/date-relative-rules.js.map +1 -0
  553. package/esm/rules/date/date-special-rules.d.ts +20 -0
  554. package/esm/rules/date/date-special-rules.d.ts.map +1 -0
  555. package/esm/rules/date/date-special-rules.js +72 -0
  556. package/esm/rules/date/date-special-rules.js.map +1 -0
  557. package/esm/rules/date/date.d.ts +93 -0
  558. package/esm/rules/date/date.d.ts.map +1 -0
  559. package/esm/rules/date/date.js +279 -0
  560. package/esm/rules/date/date.js.map +1 -0
  561. package/esm/rules/date/index.d.ts +8 -0
  562. package/esm/rules/date/index.d.ts.map +1 -0
  563. package/esm/rules/file/dimensions.d.ts +26 -0
  564. package/esm/rules/file/dimensions.d.ts.map +1 -0
  565. package/esm/rules/file/dimensions.js +56 -0
  566. package/esm/rules/file/dimensions.js.map +1 -0
  567. package/esm/rules/file/file-size.d.ts +14 -0
  568. package/esm/rules/file/file-size.d.ts.map +1 -0
  569. package/esm/rules/file/file-size.js +48 -0
  570. package/esm/rules/file/file-size.js.map +1 -0
  571. package/esm/rules/file/index.d.ts +11 -0
  572. package/esm/rules/file/index.d.ts.map +1 -0
  573. package/esm/rules/index.d.ts +19 -0
  574. package/esm/rules/index.d.ts.map +1 -0
  575. package/esm/rules/length/index.d.ts +2 -0
  576. package/esm/rules/length/index.d.ts.map +1 -0
  577. package/esm/rules/length/length-rules.d.ts +49 -0
  578. package/esm/rules/length/length-rules.d.ts.map +1 -0
  579. package/esm/rules/length/length-rules.js +116 -0
  580. package/esm/rules/length/length-rules.js.map +1 -0
  581. package/esm/rules/number/index.d.ts +2 -0
  582. package/esm/rules/number/index.d.ts.map +1 -0
  583. package/esm/rules/number/number-rules.d.ts +65 -0
  584. package/esm/rules/number/number-rules.d.ts.map +1 -0
  585. package/esm/rules/number/number-rules.js +234 -0
  586. package/esm/rules/number/number-rules.js.map +1 -0
  587. package/esm/rules/scalar/accepted-rule.d.ts +39 -0
  588. package/esm/rules/scalar/accepted-rule.d.ts.map +1 -0
  589. package/esm/rules/scalar/accepted-rule.js +110 -0
  590. package/esm/rules/scalar/accepted-rule.js.map +1 -0
  591. package/esm/rules/scalar/declined-rule.d.ts +39 -0
  592. package/esm/rules/scalar/declined-rule.d.ts.map +1 -0
  593. package/esm/rules/scalar/declined-rule.js +110 -0
  594. package/esm/rules/scalar/declined-rule.js.map +1 -0
  595. package/esm/rules/scalar/index.d.ts +3 -0
  596. package/esm/rules/scalar/index.d.ts.map +1 -0
  597. package/esm/rules/string/alpha.d.ts +14 -0
  598. package/esm/rules/string/alpha.d.ts.map +1 -0
  599. package/esm/rules/string/alpha.js +39 -0
  600. package/esm/rules/string/alpha.js.map +1 -0
  601. package/esm/rules/string/credit-card.d.ts +6 -0
  602. package/esm/rules/string/credit-card.d.ts.map +1 -0
  603. package/esm/rules/string/credit-card.js +31 -0
  604. package/esm/rules/string/credit-card.js.map +1 -0
  605. package/esm/rules/string/email.d.ts +6 -0
  606. package/esm/rules/string/email.d.ts.map +1 -0
  607. package/esm/rules/string/email.js +13 -0
  608. package/esm/rules/string/email.js.map +1 -0
  609. package/esm/rules/string/index.d.ts +17 -0
  610. package/esm/rules/string/index.d.ts.map +1 -0
  611. package/esm/rules/string/ip.d.ts +14 -0
  612. package/esm/rules/string/ip.d.ts.map +1 -0
  613. package/esm/rules/string/ip.js +39 -0
  614. package/esm/rules/string/ip.js.map +1 -0
  615. package/esm/rules/string/matches.d.ts +8 -0
  616. package/esm/rules/string/matches.d.ts.map +1 -0
  617. package/esm/rules/string/matches.js +14 -0
  618. package/esm/rules/string/matches.js.map +1 -0
  619. package/esm/rules/string/pattern.d.ts +8 -0
  620. package/esm/rules/string/pattern.d.ts.map +1 -0
  621. package/esm/rules/string/pattern.js +13 -0
  622. package/esm/rules/string/pattern.js.map +1 -0
  623. package/esm/rules/string/string-comparison.d.ts +26 -0
  624. package/esm/rules/string/string-comparison.d.ts.map +1 -0
  625. package/esm/rules/string/string-comparison.js +52 -0
  626. package/esm/rules/string/string-comparison.js.map +1 -0
  627. package/esm/rules/string/strong-password-rule.d.ts +14 -0
  628. package/esm/rules/string/strong-password-rule.d.ts.map +1 -0
  629. package/esm/rules/string/strong-password-rule.js +38 -0
  630. package/esm/rules/string/strong-password-rule.js.map +1 -0
  631. package/esm/rules/string/url.d.ts +6 -0
  632. package/esm/rules/string/url.d.ts.map +1 -0
  633. package/esm/rules/string/url.js +16 -0
  634. package/esm/rules/string/url.js.map +1 -0
  635. package/esm/rules/string/without-whitespace.d.ts +6 -0
  636. package/esm/rules/string/without-whitespace.d.ts.map +1 -0
  637. package/esm/rules/string/without-whitespace.js +13 -0
  638. package/esm/rules/string/without-whitespace.js.map +1 -0
  639. package/esm/types/conditional-types.d.ts +15 -0
  640. package/esm/types/conditional-types.d.ts.map +1 -0
  641. package/esm/types/context-types.d.ts +48 -0
  642. package/esm/types/context-types.d.ts.map +1 -0
  643. package/esm/types/data-transformer-types.d.ts +25 -0
  644. package/esm/types/data-transformer-types.d.ts.map +1 -0
  645. package/esm/types/date-types.d.ts +9 -0
  646. package/esm/types/date-types.d.ts.map +1 -0
  647. package/esm/types/date-types.js +12 -0
  648. package/esm/types/date-types.js.map +1 -0
  649. package/esm/types/file.types.d.ts +5 -0
  650. package/esm/types/file.types.d.ts.map +1 -0
  651. package/esm/types/index.d.ts +11 -0
  652. package/esm/types/index.d.ts.map +1 -0
  653. package/esm/types/inference-types.d.ts +27 -0
  654. package/esm/types/inference-types.d.ts.map +1 -0
  655. package/esm/types/mutator-types.d.ts +27 -0
  656. package/esm/types/mutator-types.d.ts.map +1 -0
  657. package/esm/types/result-types.d.ts +19 -0
  658. package/esm/types/result-types.d.ts.map +1 -0
  659. package/esm/types/rule-types.d.ts +54 -0
  660. package/esm/types/rule-types.d.ts.map +1 -0
  661. package/esm/types/schema-types.d.ts +6 -0
  662. package/esm/types/schema-types.d.ts.map +1 -0
  663. package/esm/validators/any-validator.d.ts +7 -0
  664. package/esm/validators/any-validator.d.ts.map +1 -0
  665. package/esm/validators/any-validator.js +5 -0
  666. package/esm/validators/any-validator.js.map +1 -0
  667. package/esm/validators/array-validator.d.ts +59 -0
  668. package/esm/validators/array-validator.d.ts.map +1 -0
  669. package/esm/validators/array-validator.js +134 -0
  670. package/esm/validators/array-validator.js.map +1 -0
  671. package/esm/validators/base-validator.d.ts +610 -0
  672. package/esm/validators/base-validator.d.ts.map +1 -0
  673. package/esm/validators/base-validator.js +1160 -0
  674. package/esm/validators/base-validator.js.map +1 -0
  675. package/esm/validators/boolean-validator.d.ts +47 -0
  676. package/esm/validators/boolean-validator.d.ts.map +1 -0
  677. package/esm/validators/boolean-validator.js +54 -0
  678. package/esm/validators/boolean-validator.js.map +1 -0
  679. package/esm/validators/computed-validator.d.ts +64 -0
  680. package/esm/validators/computed-validator.d.ts.map +1 -0
  681. package/esm/validators/computed-validator.js +109 -0
  682. package/esm/validators/computed-validator.js.map +1 -0
  683. package/esm/validators/date-validator.d.ts +307 -0
  684. package/esm/validators/date-validator.d.ts.map +1 -0
  685. package/esm/validators/date-validator.js +645 -0
  686. package/esm/validators/date-validator.js.map +1 -0
  687. package/esm/validators/float-validator.d.ts +8 -0
  688. package/esm/validators/float-validator.d.ts.map +1 -0
  689. package/esm/validators/float-validator.js +9 -0
  690. package/esm/validators/float-validator.js.map +1 -0
  691. package/esm/validators/index.d.ts +26 -0
  692. package/esm/validators/index.d.ts.map +1 -0
  693. package/esm/validators/int-validator.d.ts +8 -0
  694. package/esm/validators/int-validator.d.ts.map +1 -0
  695. package/esm/validators/int-validator.js +9 -0
  696. package/esm/validators/int-validator.js.map +1 -0
  697. package/esm/validators/managed-validator.d.ts +38 -0
  698. package/esm/validators/managed-validator.d.ts.map +1 -0
  699. package/esm/validators/managed-validator.js +34 -0
  700. package/esm/validators/managed-validator.js.map +1 -0
  701. package/esm/validators/number-validator.d.ts +113 -0
  702. package/esm/validators/number-validator.d.ts.map +1 -0
  703. package/esm/validators/number-validator.js +192 -0
  704. package/esm/validators/number-validator.js.map +1 -0
  705. package/esm/validators/numeric-validator.d.ts +15 -0
  706. package/esm/validators/numeric-validator.d.ts.map +1 -0
  707. package/esm/validators/numeric-validator.js +18 -0
  708. package/esm/validators/numeric-validator.js.map +1 -0
  709. package/esm/validators/object-validator.d.ts +187 -0
  710. package/esm/validators/object-validator.d.ts.map +1 -0
  711. package/esm/validators/object-validator.js +416 -0
  712. package/esm/validators/object-validator.js.map +1 -0
  713. package/esm/validators/record-validator.d.ts +33 -0
  714. package/esm/validators/record-validator.d.ts.map +1 -0
  715. package/esm/validators/record-validator.js +70 -0
  716. package/esm/validators/record-validator.js.map +1 -0
  717. package/esm/validators/scalar-validator.d.ts +82 -0
  718. package/esm/validators/scalar-validator.d.ts.map +1 -0
  719. package/esm/validators/scalar-validator.js +160 -0
  720. package/esm/validators/scalar-validator.js.map +1 -0
  721. package/esm/validators/string-validator.d.ts +191 -0
  722. package/esm/validators/string-validator.d.ts.map +1 -0
  723. package/esm/validators/string-validator.js +410 -0
  724. package/esm/validators/string-validator.js.map +1 -0
  725. package/esm/validators/tuple-validator.d.ts +34 -0
  726. package/esm/validators/tuple-validator.d.ts.map +1 -0
  727. package/esm/validators/tuple-validator.js +79 -0
  728. package/esm/validators/tuple-validator.js.map +1 -0
  729. package/esm/validators/union-validator.d.ts +42 -0
  730. package/esm/validators/union-validator.d.ts.map +1 -0
  731. package/esm/validators/union-validator.js +44 -0
  732. package/esm/validators/union-validator.js.map +1 -0
  733. package/package.json +47 -36
@@ -0,0 +1,410 @@
1
+ 'use strict';require('@mongez/reinforcements'),require('@mongez/supportive-is'),require('dayjs');var stringMutators=require('../mutators/string-mutators.js'),alpha=require('../rules/string/alpha.js'),creditCard=require('../rules/string/credit-card.js'),email=require('../rules/string/email.js'),ip=require('../rules/string/ip.js'),pattern=require('../rules/string/pattern.js'),stringComparison=require('../rules/string/string-comparison.js'),strongPasswordRule=require('../rules/string/strong-password-rule.js'),url=require('../rules/string/url.js'),withoutWhitespace=require('../rules/string/without-whitespace.js'),lengthRules=require('../rules/length/length-rules.js'),colorRules=require('../rules/color/color-rules.js'),typeRules=require('../rules/common/type-rules.js'),baseValidator=require('./base-validator.js'),scalarValidator=require('./scalar-validator.js');/**
2
+ * String validator class
3
+ */
4
+ class StringValidator extends baseValidator.BaseValidator {
5
+ constructor(errorMessage) {
6
+ super();
7
+ this.addRule(typeRules.stringRule, errorMessage);
8
+ }
9
+ /**
10
+ * Check if value is a string type
11
+ */
12
+ matchesType(value) {
13
+ return typeof value === "string";
14
+ }
15
+ // ==================== Mutators ====================
16
+ /**
17
+ * Stringify the value if not a string
18
+ */
19
+ toString() {
20
+ this.addMutator(stringMutators.stringifyMutator);
21
+ return this;
22
+ }
23
+ /** Convert string to uppercase */
24
+ uppercase() {
25
+ this.addMutator(stringMutators.uppercaseMutator);
26
+ return this;
27
+ }
28
+ /** Convert string to lowercase */
29
+ lowercase() {
30
+ this.addMutator(stringMutators.lowercaseMutator);
31
+ return this;
32
+ }
33
+ /** Capitalize only the first letter of the string */
34
+ capitalize() {
35
+ this.addMutator(stringMutators.capitalizeMutator);
36
+ return this;
37
+ }
38
+ /** Capitalize the first letter of each word (Title Case) */
39
+ titleCase() {
40
+ this.addMutator(stringMutators.titleCaseMutator);
41
+ return this;
42
+ }
43
+ /** Convert to camelCase */
44
+ camelCase() {
45
+ this.addMutator(stringMutators.camelCaseMutator);
46
+ return this;
47
+ }
48
+ /** Convert to PascalCase */
49
+ pascalCase() {
50
+ this.addMutator(stringMutators.pascalCaseMutator);
51
+ return this;
52
+ }
53
+ /** Convert to snake_case */
54
+ snakeCase() {
55
+ this.addMutator(stringMutators.snakeCaseMutator);
56
+ return this;
57
+ }
58
+ /** Convert to kebab-case */
59
+ kebabCase() {
60
+ this.addMutator(stringMutators.kebabCaseMutator);
61
+ return this;
62
+ }
63
+ /**
64
+ * Trim the given needle from the string
65
+ * If no needle is provided, the default is a single space
66
+ */
67
+ trim(needle) {
68
+ this.addMutator(stringMutators.trimMutator, { needle });
69
+ return this;
70
+ }
71
+ /** Trim from the left/start */
72
+ ltrim(needle) {
73
+ this.addMutator(stringMutators.ltrimMutator, { needle });
74
+ return this;
75
+ }
76
+ /** Trim from the right/end */
77
+ rtrim(needle) {
78
+ this.addMutator(stringMutators.rtrimMutator, { needle });
79
+ return this;
80
+ }
81
+ /** Trim multiple whitespace into single space */
82
+ trimMultipleWhitespace() {
83
+ this.addMutator(stringMutators.trimMultipleWhitespaceMutator);
84
+ return this;
85
+ }
86
+ /** Pad string from the start to reach target length */
87
+ padStart(length, char = " ") {
88
+ this.addMutator(stringMutators.padStartMutator, { length, char });
89
+ return this;
90
+ }
91
+ /** Pad string from the end to reach target length */
92
+ padEnd(length, char = " ") {
93
+ this.addMutator(stringMutators.padEndMutator, { length, char });
94
+ return this;
95
+ }
96
+ /** Remove HTML tags (safe HTML) */
97
+ safeHtml() {
98
+ this.addMutator(stringMutators.safeHtmlMutator);
99
+ return this;
100
+ }
101
+ /** HTML escape special characters */
102
+ htmlEscape() {
103
+ return this.addMutator(stringMutators.htmlEscapeMutator);
104
+ }
105
+ /** Unescape HTML entities */
106
+ unescapeHtml() {
107
+ this.addMutator(stringMutators.unescapeHtmlMutator);
108
+ return this;
109
+ }
110
+ /**
111
+ * Remove special characters
112
+ * This will remove all characters that are not alphanumeric or whitespace
113
+ */
114
+ removeSpecialCharacters() {
115
+ this.addMutator(stringMutators.removeSpecialCharactersMutator);
116
+ return this;
117
+ }
118
+ /** Convert to only alphabetic characters */
119
+ toAlpha() {
120
+ this.addMutator(stringMutators.alphaOnlyMutator);
121
+ return this;
122
+ }
123
+ /** Convert to only alphanumeric characters */
124
+ toAlphanumeric() {
125
+ this.addMutator(stringMutators.alphanumericOnlyMutator);
126
+ return this;
127
+ }
128
+ /** Remove all numeric characters */
129
+ removeNumbers() {
130
+ this.addMutator(stringMutators.removeNumbersMutator);
131
+ return this;
132
+ }
133
+ /** URL decode */
134
+ urlDecode() {
135
+ this.addMutator(stringMutators.urlDecodeMutator);
136
+ return this;
137
+ }
138
+ /** URL encode */
139
+ urlEncode() {
140
+ this.addMutator(stringMutators.urlEncodeMutator);
141
+ return this;
142
+ }
143
+ /** Convert to URL-friendly slug */
144
+ slug() {
145
+ this.addMutator(stringMutators.slugMutator);
146
+ return this;
147
+ }
148
+ /** Base64 encode */
149
+ base64Encode() {
150
+ this.addMutator(stringMutators.base64EncodeMutator);
151
+ return this;
152
+ }
153
+ /** Base64 decode */
154
+ base64Decode() {
155
+ this.addMutator(stringMutators.base64DecodeMutator);
156
+ return this;
157
+ }
158
+ /** Replace substring or pattern */
159
+ replace(search, replace) {
160
+ this.addMutator(stringMutators.replaceMutator, { search, replace });
161
+ return this;
162
+ }
163
+ /** Replace all occurrences of substring or pattern */
164
+ replaceAll(search, replace) {
165
+ this.addMutator(stringMutators.replaceAllMutator, { search, replace });
166
+ return this;
167
+ }
168
+ /** Append/suffix text to the end */
169
+ append(suffix) {
170
+ this.addMutator(stringMutators.appendMutator, { suffix });
171
+ return this;
172
+ }
173
+ /** Prepend/prefix text to the beginning */
174
+ prepend(prefix) {
175
+ this.addMutator(stringMutators.prependMutator, { prefix });
176
+ return this;
177
+ }
178
+ /** Reverse the string */
179
+ reverse() {
180
+ this.addMutator(stringMutators.reverseMutator);
181
+ return this;
182
+ }
183
+ /** Truncate to a maximum length */
184
+ truncate(maxLength, suffix = "...") {
185
+ this.addMutator(stringMutators.truncateMutator, { maxLength, suffix });
186
+ return this;
187
+ }
188
+ /** Repeat string N times */
189
+ repeat(count) {
190
+ this.addMutator(stringMutators.repeatMutator, { count });
191
+ return this;
192
+ }
193
+ /** Mask part of string */
194
+ mask(start, end, char = "*") {
195
+ this.addMutator(stringMutators.maskMutator, { start, end, char });
196
+ return this;
197
+ }
198
+ // ==================== Validation Rules ====================
199
+ /** Value must be a valid email */
200
+ email(errorMessage) {
201
+ this.addRule(email.emailRule, errorMessage);
202
+ return this;
203
+ }
204
+ /** Value must be a valid URL */
205
+ url(errorMessage) {
206
+ this.addRule(url.urlRule, errorMessage);
207
+ return this;
208
+ }
209
+ /** Value can not have whitespace */
210
+ withoutWhitespace(errorMessage) {
211
+ this.addRule(withoutWhitespace.withoutWhitespaceRule, errorMessage);
212
+ return this;
213
+ }
214
+ /** Value must match the given pattern */
215
+ pattern(pattern$1, errorMessage) {
216
+ const rule = this.addRule(pattern.patternRule, errorMessage);
217
+ rule.context.options.pattern = pattern$1;
218
+ return this;
219
+ }
220
+ /**
221
+ * Value must be a strong password
222
+ * Requirements:
223
+ * - At least 8 characters
224
+ * - At least 1 uppercase letter
225
+ * - At least 1 lowercase letter
226
+ * - At least 1 number
227
+ * - At least 1 special character
228
+ */
229
+ strongPassword(minLength, errorMessage) {
230
+ const rule = this.addRule(strongPasswordRule.strongPasswordRule, errorMessage);
231
+ rule.context.options.minLength = minLength;
232
+ return this;
233
+ }
234
+ /** Value must be exactly the given number of words */
235
+ words(words, errorMessage) {
236
+ const rule = this.addRule(lengthRules.wordsRule, errorMessage);
237
+ rule.context.options.words = words;
238
+ return this;
239
+ }
240
+ /** Value must be at least the given number of words */
241
+ minWords(words, errorMessage) {
242
+ const rule = this.addRule(lengthRules.minWordsRule, errorMessage);
243
+ rule.context.options.minWords = words;
244
+ return this;
245
+ }
246
+ /** Value must be at most the given number of words */
247
+ maxWords(words, errorMessage) {
248
+ const rule = this.addRule(lengthRules.maxWordsRule, errorMessage);
249
+ rule.context.options.maxWords = words;
250
+ return this;
251
+ }
252
+ /** Value length must be greater than the given length */
253
+ minLength(length, errorMessage) {
254
+ const rule = this.addRule(lengthRules.minLengthRule, errorMessage);
255
+ rule.context.options.minLength = length;
256
+ return this;
257
+ }
258
+ /** @alias minLength */
259
+ min(min, errorMessage) {
260
+ return this.minLength(min, errorMessage);
261
+ }
262
+ /** Value length must be less than the given length */
263
+ maxLength(length, errorMessage) {
264
+ const rule = this.addRule(lengthRules.maxLengthRule, errorMessage);
265
+ rule.context.options.maxLength = length;
266
+ return this;
267
+ }
268
+ /** @alias maxLength */
269
+ max(max, errorMessage) {
270
+ return this.maxLength(max, errorMessage);
271
+ }
272
+ /** Value must be of the given length */
273
+ length(length, errorMessage) {
274
+ const rule = this.addRule(lengthRules.lengthRule, errorMessage);
275
+ rule.context.options.length = length;
276
+ return this;
277
+ }
278
+ /**
279
+ * String length must be between min and max (inclusive)
280
+ *
281
+ * @param min - Minimum length (inclusive)
282
+ * @param max - Maximum length (inclusive)
283
+ *
284
+ * @example
285
+ * ```ts
286
+ * v.string().between(5, 10) // Length: 5 to 10 characters
287
+ * v.string().lengthBetween(8, 20) // Same using alias
288
+ * ```
289
+ *
290
+ * @category Validation Rule
291
+ */
292
+ between(min, max, errorMessage) {
293
+ const rule = this.addRule(lengthRules.betweenLengthRule, errorMessage);
294
+ rule.context.options.minLength = min;
295
+ rule.context.options.maxLength = max;
296
+ return this;
297
+ }
298
+ /**
299
+ * Alias for between() - string length between min and max
300
+ */
301
+ lengthBetween(min, max, errorMessage) {
302
+ return this.between(min, max, errorMessage);
303
+ }
304
+ /** Allow only alphabetic characters */
305
+ alpha(errorMessage) {
306
+ this.addRule(alpha.alphaRule, errorMessage);
307
+ return this;
308
+ }
309
+ /** Allow only alphanumeric characters */
310
+ alphanumeric(errorMessage) {
311
+ this.addRule(alpha.alphaNumericRule, errorMessage);
312
+ return this;
313
+ }
314
+ /** Allow only numeric characters */
315
+ numeric(errorMessage) {
316
+ this.addRule(alpha.isNumericRule, errorMessage);
317
+ return this;
318
+ }
319
+ /** Value must starts with the given string */
320
+ startsWith(value, errorMessage) {
321
+ const rule = this.addRule(stringComparison.startsWithRule, errorMessage);
322
+ rule.context.options.value = value;
323
+ return this;
324
+ }
325
+ /** Value must ends with the given string */
326
+ endsWith(value, errorMessage) {
327
+ const rule = this.addRule(stringComparison.endsWithRule, errorMessage);
328
+ rule.context.options.value = value;
329
+ return this;
330
+ }
331
+ /** Value must contain the given string */
332
+ contains(value, errorMessage) {
333
+ const rule = this.addRule(stringComparison.containsRule, errorMessage);
334
+ rule.context.options.value = value;
335
+ return this;
336
+ }
337
+ /** Value must not contain the given string */
338
+ notContains(value, errorMessage) {
339
+ const rule = this.addRule(stringComparison.notContainsRule, errorMessage);
340
+ rule.context.options.value = value;
341
+ return this;
342
+ }
343
+ /** Value must be a valid IP address */
344
+ ip(errorMessage) {
345
+ this.addRule(ip.ipRule, errorMessage);
346
+ return this;
347
+ }
348
+ /** Value must be a valid IPv4 address */
349
+ ip4(errorMessage) {
350
+ this.addRule(ip.ip4Rule, errorMessage);
351
+ return this;
352
+ }
353
+ /** Value must be a valid IPv6 address */
354
+ ip6(errorMessage) {
355
+ this.addRule(ip.ip6Rule, errorMessage);
356
+ return this;
357
+ }
358
+ /** Check if the string matches a credit card number */
359
+ creditCard(errorMessage) {
360
+ this.addRule(creditCard.isCreditCardRule, errorMessage);
361
+ return this;
362
+ }
363
+ /** Determine if the value is a valid color */
364
+ color(errorMessage) {
365
+ this.addRule(colorRules.colorRule, errorMessage);
366
+ return this;
367
+ }
368
+ /** Determine if the value is a valid hex color */
369
+ hexColor(errorMessage) {
370
+ this.addRule(colorRules.hexColorRule, errorMessage);
371
+ return this;
372
+ }
373
+ /** Determine if the value is a valid HSL color */
374
+ hslColor(errorMessage) {
375
+ this.addRule(colorRules.hslColorRule, errorMessage);
376
+ return this;
377
+ }
378
+ /** Determine if the value is a valid RGB color */
379
+ rgbColor(errorMessage) {
380
+ this.addRule(colorRules.rgbColorRule, errorMessage);
381
+ return this;
382
+ }
383
+ /** Determine if the value is a valid RGBA color */
384
+ rgbaColor(errorMessage) {
385
+ this.addRule(colorRules.rgbaColorRule, errorMessage);
386
+ return this;
387
+ }
388
+ /** Determine if the value is a valid light color */
389
+ lightColor(errorMessage) {
390
+ this.addRule(colorRules.lightColorRule, errorMessage);
391
+ return this;
392
+ }
393
+ /** Determine if the value is a valid dark color */
394
+ darkColor(errorMessage) {
395
+ this.addRule(colorRules.darkColorRule, errorMessage);
396
+ return this;
397
+ }
398
+ // Enum and value checking methods from ScalarValidator
399
+ enum = scalarValidator.ScalarValidator.prototype.enum;
400
+ /** Value must be in one of the given values */
401
+ in = scalarValidator.ScalarValidator.prototype.in;
402
+ /** @alias in */
403
+ oneOf = scalarValidator.ScalarValidator.prototype.in;
404
+ /** @alias oneOf */
405
+ allowsOnly = scalarValidator.ScalarValidator.prototype.allowsOnly;
406
+ /** Forbid the value from being one of the given values */
407
+ forbids = scalarValidator.ScalarValidator.prototype.forbids;
408
+ /** @alias forbids */
409
+ notIn = scalarValidator.ScalarValidator.prototype.forbids;
410
+ }exports.StringValidator=StringValidator;//# sourceMappingURL=string-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-validator.js","sources":["../../src/validators/string-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","stringRule","stringifyMutator","uppercaseMutator","lowercaseMutator","capitalizeMutator","titleCaseMutator","camelCaseMutator","pascalCaseMutator","snakeCaseMutator","kebabCaseMutator","trimMutator","ltrimMutator","rtrimMutator","trimMultipleWhitespaceMutator","padStartMutator","padEndMutator","safeHtmlMutator","htmlEscapeMutator","unescapeHtmlMutator","removeSpecialCharactersMutator","alphaOnlyMutator","alphanumericOnlyMutator","removeNumbersMutator","urlDecodeMutator","urlEncodeMutator","slugMutator","base64EncodeMutator","base64DecodeMutator","replaceMutator","replaceAllMutator","appendMutator","prependMutator","reverseMutator","truncateMutator","repeatMutator","maskMutator","emailRule","urlRule","withoutWhitespaceRule","pattern","patternRule","strongPasswordRule","wordsRule","minWordsRule","maxWordsRule","minLengthRule","maxLengthRule","lengthRule","betweenLengthRule","alphaRule","alphaNumericRule","isNumericRule","startsWithRule","endsWithRule","containsRule","notContainsRule","ipRule","ip4Rule","ip6Rule","isCreditCardRule","colorRule","hexColorRule","hslColorRule","rgbColorRule","rgbaColorRule","lightColorRule","darkColorRule","ScalarValidator"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { SchemaContext, ValidationResult } from "../types";
2
+ import { BaseValidator } from "./base-validator";
3
+ /**
4
+ * Tuple validator class - validates fixed-length arrays with position-specific types
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * // RGB color tuple
9
+ * v.tuple([v.number(), v.number(), v.number()])
10
+ * // Valid: [255, 128, 0]
11
+ * // Invalid: [255, 128] (too short)
12
+ *
13
+ * // Mixed types
14
+ * v.tuple([v.string(), v.int(), v.boolean()])
15
+ * // Valid: ["John", 25, true]
16
+ * ```
17
+ */
18
+ export declare class TupleValidator extends BaseValidator {
19
+ validators: BaseValidator[];
20
+ constructor(validators: BaseValidator[], errorMessage?: string);
21
+ /**
22
+ * Check if value is an array type
23
+ */
24
+ matchesType(value: any): boolean;
25
+ /**
26
+ * Clone the validator
27
+ */
28
+ clone(): this;
29
+ /**
30
+ * Validate tuple - check length then validate each position
31
+ */
32
+ validate(data: any, context: SchemaContext): Promise<ValidationResult>;
33
+ }
34
+ //# sourceMappingURL=tuple-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tuple-validator.d.ts","sourceRoot":"","sources":["../../src/validators/tuple-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAEtC,UAAU,EAAE,aAAa,EAAE;gBAA3B,UAAU,EAAE,aAAa,EAAE,EAClC,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIvC;;OAEG;IACa,KAAK,IAAI,IAAI;IAM7B;;OAEG;IACU,QAAQ,CACnB,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,gBAAgB,CAAC;CAkD7B"}
@@ -0,0 +1,79 @@
1
+ 'use strict';require('@mongez/reinforcements');var pathHelpers=require('../helpers/path-helpers.js');require('@mongez/supportive-is'),require('net');var typeRules=require('../rules/common/type-rules.js'),baseValidator=require('./base-validator.js');/**
2
+ * Tuple validator class - validates fixed-length arrays with position-specific types
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * // RGB color tuple
7
+ * v.tuple([v.number(), v.number(), v.number()])
8
+ * // Valid: [255, 128, 0]
9
+ * // Invalid: [255, 128] (too short)
10
+ *
11
+ * // Mixed types
12
+ * v.tuple([v.string(), v.int(), v.boolean()])
13
+ * // Valid: ["John", 25, true]
14
+ * ```
15
+ */
16
+ class TupleValidator extends baseValidator.BaseValidator {
17
+ validators;
18
+ constructor(validators, errorMessage) {
19
+ super();
20
+ this.validators = validators;
21
+ this.addRule(typeRules.arrayRule, errorMessage);
22
+ }
23
+ /**
24
+ * Check if value is an array type
25
+ */
26
+ matchesType(value) {
27
+ return Array.isArray(value);
28
+ }
29
+ /**
30
+ * Clone the validator
31
+ */
32
+ clone() {
33
+ const cloned = super.clone();
34
+ cloned.validators = this.validators.map(v => v.clone());
35
+ return cloned;
36
+ }
37
+ /**
38
+ * Validate tuple - check length then validate each position
39
+ */
40
+ async validate(data, context) {
41
+ const mutatedData = (await this.mutate(data, context)) || [];
42
+ const result = await super.validate(data, context);
43
+ if (result.isValid === false)
44
+ return result;
45
+ const errors = [];
46
+ // Tuple-specific: length validation
47
+ if (mutatedData.length !== this.validators.length) {
48
+ errors.push({
49
+ type: "tuple",
50
+ input: context.key || "value",
51
+ error: `Expected exactly ${this.validators.length} items, but got ${mutatedData.length}`,
52
+ });
53
+ return { isValid: false, errors, data: mutatedData };
54
+ }
55
+ // Validate each position with its specific validator in parallel
56
+ const validationPromises = this.validators.map(async (validator, index) => {
57
+ const childContext = {
58
+ ...context,
59
+ parent: mutatedData,
60
+ value: mutatedData[index],
61
+ key: index.toString(),
62
+ path: pathHelpers.setKeyPath(context.path, index.toString()),
63
+ };
64
+ const childResult = await validator.validate(mutatedData[index], childContext);
65
+ // Update mutated data with validated result
66
+ mutatedData[index] = childResult.data;
67
+ // Collect errors from this element
68
+ if (childResult.isValid === false) {
69
+ errors.push(...childResult.errors);
70
+ }
71
+ });
72
+ await Promise.all(validationPromises);
73
+ return {
74
+ isValid: errors.length === 0,
75
+ errors,
76
+ data: await this.startTransformationPipeline(mutatedData, context),
77
+ };
78
+ }
79
+ }exports.TupleValidator=TupleValidator;//# sourceMappingURL=tuple-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tuple-validator.js","sources":["../../src/validators/tuple-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","arrayRule","setKeyPath"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { BaseValidator } from "./base-validator";
2
+ /**
3
+ * Union validator class - validates value against multiple validator types
4
+ *
5
+ * Tries each validator in order until one passes. If a validator's matchesType()
6
+ * returns false, it's skipped for optimization. First validator that both matches
7
+ * the type and passes validation wins.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // Accept email or username
12
+ * const identifier = v.union([
13
+ * v.string().email(),
14
+ * v.string().alphanumeric().min(3).max(20)
15
+ * ]);
16
+ *
17
+ * // Accept different types
18
+ * const customValue = v.union([
19
+ * v.string().required(),
20
+ * v.number().required(),
21
+ * v.boolean().required(),
22
+ * v.file().required()
23
+ * ]);
24
+ * ```
25
+ */
26
+ export declare class UnionValidator extends BaseValidator {
27
+ /**
28
+ * Set the validators to try for union validation
29
+ *
30
+ * @param validators - Array of validators to try
31
+ * @param errorMessage - Optional custom error message if all validators fail
32
+ * @returns This validator for chaining
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * new UnionValidator()
37
+ * .union([v.string(), v.number()], 'Must be string or number');
38
+ * ```
39
+ */
40
+ union(validators: BaseValidator[], errorMessage?: string): this;
41
+ }
42
+ //# sourceMappingURL=union-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union-validator.d.ts","sourceRoot":"","sources":["../../src/validators/union-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;CAKhE"}
@@ -0,0 +1,44 @@
1
+ 'use strict';require('@mongez/reinforcements'),require('@mongez/supportive-is');var union=require('../rules/core/union.js');require('net');var baseValidator=require('./base-validator.js');/**
2
+ * Union validator class - validates value against multiple validator types
3
+ *
4
+ * Tries each validator in order until one passes. If a validator's matchesType()
5
+ * returns false, it's skipped for optimization. First validator that both matches
6
+ * the type and passes validation wins.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * // Accept email or username
11
+ * const identifier = v.union([
12
+ * v.string().email(),
13
+ * v.string().alphanumeric().min(3).max(20)
14
+ * ]);
15
+ *
16
+ * // Accept different types
17
+ * const customValue = v.union([
18
+ * v.string().required(),
19
+ * v.number().required(),
20
+ * v.boolean().required(),
21
+ * v.file().required()
22
+ * ]);
23
+ * ```
24
+ */
25
+ class UnionValidator extends baseValidator.BaseValidator {
26
+ /**
27
+ * Set the validators to try for union validation
28
+ *
29
+ * @param validators - Array of validators to try
30
+ * @param errorMessage - Optional custom error message if all validators fail
31
+ * @returns This validator for chaining
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * new UnionValidator()
36
+ * .union([v.string(), v.number()], 'Must be string or number');
37
+ * ```
38
+ */
39
+ union(validators, errorMessage) {
40
+ const rule = this.addRule(union.unionRule, errorMessage);
41
+ rule.context.options.validators = validators;
42
+ return this;
43
+ }
44
+ }exports.UnionValidator=UnionValidator;//# sourceMappingURL=union-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union-validator.js","sources":["../../src/validators/union-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","unionRule"],"mappings":"4LAGA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACG,MAAO,cAAe,SAAQA,2BAAa,CAAA;AAC/C;;;;;;;;;;;;AAYG;IACI,KAAK,CAAC,UAA2B,EAAE,YAAqB,EAAA;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAACC,eAAS,EAAE,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7C,QAAA,OAAO,IAAI,CAAC;KACb;AACF"}