@warlock.js/seal 4.0.31 → 4.0.39

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 (697) hide show
  1. package/cjs/index.js +2 -1
  2. package/cjs/index.js.map +1 -1
  3. package/esm/index.js +2 -1
  4. package/esm/index.js.map +1 -1
  5. package/package.json +36 -48
  6. package/cjs/config.d.ts +0 -48
  7. package/cjs/config.d.ts.map +0 -1
  8. package/cjs/config.js +0 -42
  9. package/cjs/config.js.map +0 -1
  10. package/cjs/factory/index.d.ts +0 -3
  11. package/cjs/factory/index.d.ts.map +0 -1
  12. package/cjs/factory/validate.d.ts +0 -8
  13. package/cjs/factory/validate.d.ts.map +0 -1
  14. package/cjs/factory/validate.js +0 -21
  15. package/cjs/factory/validate.js.map +0 -1
  16. package/cjs/factory/validators.d.ts +0 -36
  17. package/cjs/factory/validators.d.ts.map +0 -1
  18. package/cjs/factory/validators.js +0 -39
  19. package/cjs/factory/validators.js.map +0 -1
  20. package/cjs/helpers/date-helpers.d.ts +0 -16
  21. package/cjs/helpers/date-helpers.d.ts.map +0 -1
  22. package/cjs/helpers/date-helpers.js +0 -20
  23. package/cjs/helpers/date-helpers.js.map +0 -1
  24. package/cjs/helpers/get-field-value.d.ts +0 -37
  25. package/cjs/helpers/get-field-value.d.ts.map +0 -1
  26. package/cjs/helpers/get-field-value.js +0 -40
  27. package/cjs/helpers/get-field-value.js.map +0 -1
  28. package/cjs/helpers/index.d.ts +0 -5
  29. package/cjs/helpers/index.d.ts.map +0 -1
  30. package/cjs/helpers/path-helpers.d.ts +0 -5
  31. package/cjs/helpers/path-helpers.d.ts.map +0 -1
  32. package/cjs/helpers/path-helpers.js +0 -8
  33. package/cjs/helpers/path-helpers.js.map +0 -1
  34. package/cjs/helpers/validation-helpers.d.ts +0 -4
  35. package/cjs/helpers/validation-helpers.d.ts.map +0 -1
  36. package/cjs/helpers/validation-helpers.js +0 -48
  37. package/cjs/helpers/validation-helpers.js.map +0 -1
  38. package/cjs/index.d.ts +0 -29
  39. package/cjs/index.d.ts.map +0 -1
  40. package/cjs/mutators/array-mutators.d.ts +0 -12
  41. package/cjs/mutators/array-mutators.d.ts.map +0 -1
  42. package/cjs/mutators/array-mutators.js +0 -37
  43. package/cjs/mutators/array-mutators.js.map +0 -1
  44. package/cjs/mutators/date-mutators.d.ts +0 -39
  45. package/cjs/mutators/date-mutators.d.ts.map +0 -1
  46. package/cjs/mutators/date-mutators.js +0 -120
  47. package/cjs/mutators/date-mutators.js.map +0 -1
  48. package/cjs/mutators/index.d.ts +0 -7
  49. package/cjs/mutators/index.d.ts.map +0 -1
  50. package/cjs/mutators/number-mutators.d.ts +0 -9
  51. package/cjs/mutators/number-mutators.d.ts.map +0 -1
  52. package/cjs/mutators/number-mutators.js +0 -23
  53. package/cjs/mutators/number-mutators.js.map +0 -1
  54. package/cjs/mutators/object-mutators.d.ts +0 -8
  55. package/cjs/mutators/object-mutators.d.ts.map +0 -1
  56. package/cjs/mutators/object-mutators.js +0 -50
  57. package/cjs/mutators/object-mutators.js.map +0 -1
  58. package/cjs/mutators/scalar-mutators.d.ts +0 -3
  59. package/cjs/mutators/scalar-mutators.d.ts.map +0 -1
  60. package/cjs/mutators/scalar-mutators.js +0 -6
  61. package/cjs/mutators/scalar-mutators.js.map +0 -1
  62. package/cjs/mutators/string-mutators.d.ts +0 -72
  63. package/cjs/mutators/string-mutators.d.ts.map +0 -1
  64. package/cjs/mutators/string-mutators.js +0 -193
  65. package/cjs/mutators/string-mutators.js.map +0 -1
  66. package/cjs/plugins/index.d.ts +0 -7
  67. package/cjs/plugins/index.d.ts.map +0 -1
  68. package/cjs/plugins/plugin-system.d.ts +0 -71
  69. package/cjs/plugins/plugin-system.d.ts.map +0 -1
  70. package/cjs/plugins/plugin-system.js +0 -68
  71. package/cjs/plugins/plugin-system.js.map +0 -1
  72. package/cjs/rules/array/array-rules.d.ts +0 -12
  73. package/cjs/rules/array/array-rules.d.ts.map +0 -1
  74. package/cjs/rules/array/array-rules.js +0 -44
  75. package/cjs/rules/array/array-rules.js.map +0 -1
  76. package/cjs/rules/array/index.d.ts +0 -2
  77. package/cjs/rules/array/index.d.ts.map +0 -1
  78. package/cjs/rules/color/color-rules.d.ts +0 -30
  79. package/cjs/rules/color/color-rules.d.ts.map +0 -1
  80. package/cjs/rules/color/color-rules.js +0 -120
  81. package/cjs/rules/color/color-rules.js.map +0 -1
  82. package/cjs/rules/color/index.d.ts +0 -2
  83. package/cjs/rules/color/index.d.ts.map +0 -1
  84. package/cjs/rules/common/enum.d.ts +0 -26
  85. package/cjs/rules/common/enum.d.ts.map +0 -1
  86. package/cjs/rules/common/enum.js +0 -55
  87. package/cjs/rules/common/enum.js.map +0 -1
  88. package/cjs/rules/common/equals-field-rules.d.ts +0 -18
  89. package/cjs/rules/common/equals-field-rules.d.ts.map +0 -1
  90. package/cjs/rules/common/equals-field-rules.js +0 -38
  91. package/cjs/rules/common/equals-field-rules.js.map +0 -1
  92. package/cjs/rules/common/index.d.ts +0 -5
  93. package/cjs/rules/common/index.d.ts.map +0 -1
  94. package/cjs/rules/common/type-rules.d.ts +0 -34
  95. package/cjs/rules/common/type-rules.d.ts.map +0 -1
  96. package/cjs/rules/common/type-rules.js +0 -104
  97. package/cjs/rules/common/type-rules.js.map +0 -1
  98. package/cjs/rules/common/unknown-key.d.ts +0 -9
  99. package/cjs/rules/common/unknown-key.d.ts.map +0 -1
  100. package/cjs/rules/common/unknown-key.js +0 -20
  101. package/cjs/rules/common/unknown-key.js.map +0 -1
  102. package/cjs/rules/conditional/forbidden-if-rules.d.ts +0 -54
  103. package/cjs/rules/conditional/forbidden-if-rules.d.ts.map +0 -1
  104. package/cjs/rules/conditional/forbidden-if-rules.js +0 -112
  105. package/cjs/rules/conditional/forbidden-if-rules.js.map +0 -1
  106. package/cjs/rules/conditional/index.d.ts +0 -10
  107. package/cjs/rules/conditional/index.d.ts.map +0 -1
  108. package/cjs/rules/conditional/present-if-rules.d.ts +0 -45
  109. package/cjs/rules/conditional/present-if-rules.d.ts.map +0 -1
  110. package/cjs/rules/conditional/present-if-rules.js +0 -98
  111. package/cjs/rules/conditional/present-if-rules.js.map +0 -1
  112. package/cjs/rules/conditional/present-unless-rules.d.ts +0 -11
  113. package/cjs/rules/conditional/present-unless-rules.d.ts.map +0 -1
  114. package/cjs/rules/conditional/present-unless-rules.js +0 -20
  115. package/cjs/rules/conditional/present-unless-rules.js.map +0 -1
  116. package/cjs/rules/conditional/present-with-rules.d.ts +0 -26
  117. package/cjs/rules/conditional/present-with-rules.d.ts.map +0 -1
  118. package/cjs/rules/conditional/present-with-rules.js +0 -63
  119. package/cjs/rules/conditional/present-with-rules.js.map +0 -1
  120. package/cjs/rules/conditional/present-without-rules.d.ts +0 -26
  121. package/cjs/rules/conditional/present-without-rules.d.ts.map +0 -1
  122. package/cjs/rules/conditional/present-without-rules.js +0 -63
  123. package/cjs/rules/conditional/present-without-rules.js.map +0 -1
  124. package/cjs/rules/conditional/required-if-rules.d.ts +0 -45
  125. package/cjs/rules/conditional/required-if-rules.d.ts.map +0 -1
  126. package/cjs/rules/conditional/required-if-rules.js +0 -98
  127. package/cjs/rules/conditional/required-if-rules.js.map +0 -1
  128. package/cjs/rules/conditional/required-unless-rules.d.ts +0 -11
  129. package/cjs/rules/conditional/required-unless-rules.d.ts.map +0 -1
  130. package/cjs/rules/conditional/required-unless-rules.js +0 -20
  131. package/cjs/rules/conditional/required-unless-rules.js.map +0 -1
  132. package/cjs/rules/conditional/required-with-rules.d.ts +0 -26
  133. package/cjs/rules/conditional/required-with-rules.d.ts.map +0 -1
  134. package/cjs/rules/conditional/required-with-rules.js +0 -63
  135. package/cjs/rules/conditional/required-with-rules.js.map +0 -1
  136. package/cjs/rules/conditional/required-without-rules.d.ts +0 -26
  137. package/cjs/rules/conditional/required-without-rules.d.ts.map +0 -1
  138. package/cjs/rules/conditional/required-without-rules.js +0 -63
  139. package/cjs/rules/conditional/required-without-rules.js.map +0 -1
  140. package/cjs/rules/core/equal.d.ts +0 -8
  141. package/cjs/rules/core/equal.d.ts.map +0 -1
  142. package/cjs/rules/core/equal.js +0 -13
  143. package/cjs/rules/core/equal.js.map +0 -1
  144. package/cjs/rules/core/forbidden.d.ts +0 -6
  145. package/cjs/rules/core/forbidden.d.ts.map +0 -1
  146. package/cjs/rules/core/forbidden.js +0 -13
  147. package/cjs/rules/core/forbidden.js.map +0 -1
  148. package/cjs/rules/core/index.d.ts +0 -6
  149. package/cjs/rules/core/index.d.ts.map +0 -1
  150. package/cjs/rules/core/required.d.ts +0 -11
  151. package/cjs/rules/core/required.d.ts.map +0 -1
  152. package/cjs/rules/core/required.js +0 -31
  153. package/cjs/rules/core/required.js.map +0 -1
  154. package/cjs/rules/core/union.d.ts +0 -9
  155. package/cjs/rules/core/union.d.ts.map +0 -1
  156. package/cjs/rules/core/union.js +0 -40
  157. package/cjs/rules/core/union.js.map +0 -1
  158. package/cjs/rules/core/when.d.ts +0 -6
  159. package/cjs/rules/core/when.d.ts.map +0 -1
  160. package/cjs/rules/core/when.js +0 -40
  161. package/cjs/rules/core/when.js.map +0 -1
  162. package/cjs/rules/date/date-comparison-rules.d.ts +0 -25
  163. package/cjs/rules/date/date-comparison-rules.d.ts.map +0 -1
  164. package/cjs/rules/date/date-comparison-rules.js +0 -78
  165. package/cjs/rules/date/date-comparison-rules.js.map +0 -1
  166. package/cjs/rules/date/date-day-rules.d.ts +0 -21
  167. package/cjs/rules/date/date-day-rules.d.ts.map +0 -1
  168. package/cjs/rules/date/date-day-rules.js +0 -65
  169. package/cjs/rules/date/date-day-rules.js.map +0 -1
  170. package/cjs/rules/date/date-field-comparison-rules.d.ts +0 -28
  171. package/cjs/rules/date/date-field-comparison-rules.d.ts.map +0 -1
  172. package/cjs/rules/date/date-field-comparison-rules.js +0 -90
  173. package/cjs/rules/date/date-field-comparison-rules.js.map +0 -1
  174. package/cjs/rules/date/date-period-rules.d.ts +0 -108
  175. package/cjs/rules/date/date-period-rules.d.ts.map +0 -1
  176. package/cjs/rules/date/date-period-rules.js +0 -566
  177. package/cjs/rules/date/date-period-rules.js.map +0 -1
  178. package/cjs/rules/date/date-relative-rules.d.ts +0 -20
  179. package/cjs/rules/date/date-relative-rules.d.ts.map +0 -1
  180. package/cjs/rules/date/date-relative-rules.js +0 -57
  181. package/cjs/rules/date/date-relative-rules.js.map +0 -1
  182. package/cjs/rules/date/date-special-rules.d.ts +0 -20
  183. package/cjs/rules/date/date-special-rules.d.ts.map +0 -1
  184. package/cjs/rules/date/date-special-rules.js +0 -72
  185. package/cjs/rules/date/date-special-rules.js.map +0 -1
  186. package/cjs/rules/date/date.d.ts +0 -93
  187. package/cjs/rules/date/date.d.ts.map +0 -1
  188. package/cjs/rules/date/date.js +0 -279
  189. package/cjs/rules/date/date.js.map +0 -1
  190. package/cjs/rules/date/index.d.ts +0 -8
  191. package/cjs/rules/date/index.d.ts.map +0 -1
  192. package/cjs/rules/file/dimensions.d.ts +0 -26
  193. package/cjs/rules/file/dimensions.d.ts.map +0 -1
  194. package/cjs/rules/file/dimensions.js +0 -56
  195. package/cjs/rules/file/dimensions.js.map +0 -1
  196. package/cjs/rules/file/file-size.d.ts +0 -14
  197. package/cjs/rules/file/file-size.d.ts.map +0 -1
  198. package/cjs/rules/file/file-size.js +0 -26
  199. package/cjs/rules/file/file-size.js.map +0 -1
  200. package/cjs/rules/file/index.d.ts +0 -11
  201. package/cjs/rules/file/index.d.ts.map +0 -1
  202. package/cjs/rules/index.d.ts +0 -19
  203. package/cjs/rules/index.d.ts.map +0 -1
  204. package/cjs/rules/length/index.d.ts +0 -2
  205. package/cjs/rules/length/index.d.ts.map +0 -1
  206. package/cjs/rules/length/length-rules.d.ts +0 -49
  207. package/cjs/rules/length/length-rules.d.ts.map +0 -1
  208. package/cjs/rules/length/length-rules.js +0 -116
  209. package/cjs/rules/length/length-rules.js.map +0 -1
  210. package/cjs/rules/number/index.d.ts +0 -2
  211. package/cjs/rules/number/index.d.ts.map +0 -1
  212. package/cjs/rules/number/number-rules.d.ts +0 -65
  213. package/cjs/rules/number/number-rules.d.ts.map +0 -1
  214. package/cjs/rules/number/number-rules.js +0 -234
  215. package/cjs/rules/number/number-rules.js.map +0 -1
  216. package/cjs/rules/scalar/accepted-rule.d.ts +0 -39
  217. package/cjs/rules/scalar/accepted-rule.d.ts.map +0 -1
  218. package/cjs/rules/scalar/accepted-rule.js +0 -110
  219. package/cjs/rules/scalar/accepted-rule.js.map +0 -1
  220. package/cjs/rules/scalar/declined-rule.d.ts +0 -39
  221. package/cjs/rules/scalar/declined-rule.d.ts.map +0 -1
  222. package/cjs/rules/scalar/declined-rule.js +0 -110
  223. package/cjs/rules/scalar/declined-rule.js.map +0 -1
  224. package/cjs/rules/scalar/index.d.ts +0 -3
  225. package/cjs/rules/scalar/index.d.ts.map +0 -1
  226. package/cjs/rules/string/alpha.d.ts +0 -14
  227. package/cjs/rules/string/alpha.d.ts.map +0 -1
  228. package/cjs/rules/string/alpha.js +0 -39
  229. package/cjs/rules/string/alpha.js.map +0 -1
  230. package/cjs/rules/string/credit-card.d.ts +0 -6
  231. package/cjs/rules/string/credit-card.d.ts.map +0 -1
  232. package/cjs/rules/string/credit-card.js +0 -31
  233. package/cjs/rules/string/credit-card.js.map +0 -1
  234. package/cjs/rules/string/email.d.ts +0 -6
  235. package/cjs/rules/string/email.d.ts.map +0 -1
  236. package/cjs/rules/string/email.js +0 -13
  237. package/cjs/rules/string/email.js.map +0 -1
  238. package/cjs/rules/string/index.d.ts +0 -17
  239. package/cjs/rules/string/index.d.ts.map +0 -1
  240. package/cjs/rules/string/ip.d.ts +0 -14
  241. package/cjs/rules/string/ip.d.ts.map +0 -1
  242. package/cjs/rules/string/ip.js +0 -39
  243. package/cjs/rules/string/ip.js.map +0 -1
  244. package/cjs/rules/string/matches.d.ts +0 -8
  245. package/cjs/rules/string/matches.d.ts.map +0 -1
  246. package/cjs/rules/string/matches.js +0 -14
  247. package/cjs/rules/string/matches.js.map +0 -1
  248. package/cjs/rules/string/pattern.d.ts +0 -8
  249. package/cjs/rules/string/pattern.d.ts.map +0 -1
  250. package/cjs/rules/string/pattern.js +0 -13
  251. package/cjs/rules/string/pattern.js.map +0 -1
  252. package/cjs/rules/string/string-comparison.d.ts +0 -26
  253. package/cjs/rules/string/string-comparison.d.ts.map +0 -1
  254. package/cjs/rules/string/string-comparison.js +0 -52
  255. package/cjs/rules/string/string-comparison.js.map +0 -1
  256. package/cjs/rules/string/strong-password-rule.d.ts +0 -14
  257. package/cjs/rules/string/strong-password-rule.d.ts.map +0 -1
  258. package/cjs/rules/string/strong-password-rule.js +0 -38
  259. package/cjs/rules/string/strong-password-rule.js.map +0 -1
  260. package/cjs/rules/string/url.d.ts +0 -6
  261. package/cjs/rules/string/url.d.ts.map +0 -1
  262. package/cjs/rules/string/url.js +0 -16
  263. package/cjs/rules/string/url.js.map +0 -1
  264. package/cjs/rules/string/without-whitespace.d.ts +0 -6
  265. package/cjs/rules/string/without-whitespace.d.ts.map +0 -1
  266. package/cjs/rules/string/without-whitespace.js +0 -13
  267. package/cjs/rules/string/without-whitespace.js.map +0 -1
  268. package/cjs/types/conditional-types.d.ts +0 -15
  269. package/cjs/types/conditional-types.d.ts.map +0 -1
  270. package/cjs/types/context-types.d.ts +0 -44
  271. package/cjs/types/context-types.d.ts.map +0 -1
  272. package/cjs/types/data-transformer-types.d.ts +0 -25
  273. package/cjs/types/data-transformer-types.d.ts.map +0 -1
  274. package/cjs/types/date-types.d.ts +0 -9
  275. package/cjs/types/date-types.d.ts.map +0 -1
  276. package/cjs/types/date-types.js +0 -12
  277. package/cjs/types/date-types.js.map +0 -1
  278. package/cjs/types/index.d.ts +0 -10
  279. package/cjs/types/index.d.ts.map +0 -1
  280. package/cjs/types/inference-types.d.ts +0 -29
  281. package/cjs/types/inference-types.d.ts.map +0 -1
  282. package/cjs/types/mutator-types.d.ts +0 -27
  283. package/cjs/types/mutator-types.d.ts.map +0 -1
  284. package/cjs/types/result-types.d.ts +0 -19
  285. package/cjs/types/result-types.d.ts.map +0 -1
  286. package/cjs/types/rule-types.d.ts +0 -54
  287. package/cjs/types/rule-types.d.ts.map +0 -1
  288. package/cjs/types/schema-types.d.ts +0 -6
  289. package/cjs/types/schema-types.d.ts.map +0 -1
  290. package/cjs/validators/any-validator.d.ts +0 -7
  291. package/cjs/validators/any-validator.d.ts.map +0 -1
  292. package/cjs/validators/any-validator.js +0 -5
  293. package/cjs/validators/any-validator.js.map +0 -1
  294. package/cjs/validators/array-validator.d.ts +0 -59
  295. package/cjs/validators/array-validator.d.ts.map +0 -1
  296. package/cjs/validators/array-validator.js +0 -134
  297. package/cjs/validators/array-validator.js.map +0 -1
  298. package/cjs/validators/base-validator.d.ts +0 -609
  299. package/cjs/validators/base-validator.d.ts.map +0 -1
  300. package/cjs/validators/base-validator.js +0 -1154
  301. package/cjs/validators/base-validator.js.map +0 -1
  302. package/cjs/validators/boolean-validator.d.ts +0 -47
  303. package/cjs/validators/boolean-validator.d.ts.map +0 -1
  304. package/cjs/validators/boolean-validator.js +0 -54
  305. package/cjs/validators/boolean-validator.js.map +0 -1
  306. package/cjs/validators/date-validator.d.ts +0 -307
  307. package/cjs/validators/date-validator.d.ts.map +0 -1
  308. package/cjs/validators/date-validator.js +0 -645
  309. package/cjs/validators/date-validator.js.map +0 -1
  310. package/cjs/validators/float-validator.d.ts +0 -8
  311. package/cjs/validators/float-validator.d.ts.map +0 -1
  312. package/cjs/validators/float-validator.js +0 -9
  313. package/cjs/validators/float-validator.js.map +0 -1
  314. package/cjs/validators/index.d.ts +0 -24
  315. package/cjs/validators/index.d.ts.map +0 -1
  316. package/cjs/validators/int-validator.d.ts +0 -8
  317. package/cjs/validators/int-validator.d.ts.map +0 -1
  318. package/cjs/validators/int-validator.js +0 -9
  319. package/cjs/validators/int-validator.js.map +0 -1
  320. package/cjs/validators/number-validator.d.ts +0 -113
  321. package/cjs/validators/number-validator.d.ts.map +0 -1
  322. package/cjs/validators/number-validator.js +0 -192
  323. package/cjs/validators/number-validator.js.map +0 -1
  324. package/cjs/validators/numeric-validator.d.ts +0 -15
  325. package/cjs/validators/numeric-validator.d.ts.map +0 -1
  326. package/cjs/validators/numeric-validator.js +0 -18
  327. package/cjs/validators/numeric-validator.js.map +0 -1
  328. package/cjs/validators/object-validator.d.ts +0 -178
  329. package/cjs/validators/object-validator.d.ts.map +0 -1
  330. package/cjs/validators/object-validator.js +0 -356
  331. package/cjs/validators/object-validator.js.map +0 -1
  332. package/cjs/validators/record-validator.d.ts +0 -33
  333. package/cjs/validators/record-validator.d.ts.map +0 -1
  334. package/cjs/validators/record-validator.js +0 -70
  335. package/cjs/validators/record-validator.js.map +0 -1
  336. package/cjs/validators/scalar-validator.d.ts +0 -82
  337. package/cjs/validators/scalar-validator.d.ts.map +0 -1
  338. package/cjs/validators/scalar-validator.js +0 -160
  339. package/cjs/validators/scalar-validator.js.map +0 -1
  340. package/cjs/validators/string-validator.d.ts +0 -191
  341. package/cjs/validators/string-validator.d.ts.map +0 -1
  342. package/cjs/validators/string-validator.js +0 -410
  343. package/cjs/validators/string-validator.js.map +0 -1
  344. package/cjs/validators/tuple-validator.d.ts +0 -34
  345. package/cjs/validators/tuple-validator.d.ts.map +0 -1
  346. package/cjs/validators/tuple-validator.js +0 -79
  347. package/cjs/validators/tuple-validator.js.map +0 -1
  348. package/cjs/validators/union-validator.d.ts +0 -42
  349. package/cjs/validators/union-validator.d.ts.map +0 -1
  350. package/cjs/validators/union-validator.js +0 -44
  351. package/cjs/validators/union-validator.js.map +0 -1
  352. package/esm/config.d.ts +0 -48
  353. package/esm/config.d.ts.map +0 -1
  354. package/esm/config.js +0 -42
  355. package/esm/config.js.map +0 -1
  356. package/esm/factory/index.d.ts +0 -3
  357. package/esm/factory/index.d.ts.map +0 -1
  358. package/esm/factory/validate.d.ts +0 -8
  359. package/esm/factory/validate.d.ts.map +0 -1
  360. package/esm/factory/validate.js +0 -21
  361. package/esm/factory/validate.js.map +0 -1
  362. package/esm/factory/validators.d.ts +0 -36
  363. package/esm/factory/validators.d.ts.map +0 -1
  364. package/esm/factory/validators.js +0 -39
  365. package/esm/factory/validators.js.map +0 -1
  366. package/esm/helpers/date-helpers.d.ts +0 -16
  367. package/esm/helpers/date-helpers.d.ts.map +0 -1
  368. package/esm/helpers/date-helpers.js +0 -20
  369. package/esm/helpers/date-helpers.js.map +0 -1
  370. package/esm/helpers/get-field-value.d.ts +0 -37
  371. package/esm/helpers/get-field-value.d.ts.map +0 -1
  372. package/esm/helpers/get-field-value.js +0 -40
  373. package/esm/helpers/get-field-value.js.map +0 -1
  374. package/esm/helpers/index.d.ts +0 -5
  375. package/esm/helpers/index.d.ts.map +0 -1
  376. package/esm/helpers/path-helpers.d.ts +0 -5
  377. package/esm/helpers/path-helpers.d.ts.map +0 -1
  378. package/esm/helpers/path-helpers.js +0 -8
  379. package/esm/helpers/path-helpers.js.map +0 -1
  380. package/esm/helpers/validation-helpers.d.ts +0 -4
  381. package/esm/helpers/validation-helpers.d.ts.map +0 -1
  382. package/esm/helpers/validation-helpers.js +0 -48
  383. package/esm/helpers/validation-helpers.js.map +0 -1
  384. package/esm/index.d.ts +0 -29
  385. package/esm/index.d.ts.map +0 -1
  386. package/esm/mutators/array-mutators.d.ts +0 -12
  387. package/esm/mutators/array-mutators.d.ts.map +0 -1
  388. package/esm/mutators/array-mutators.js +0 -37
  389. package/esm/mutators/array-mutators.js.map +0 -1
  390. package/esm/mutators/date-mutators.d.ts +0 -39
  391. package/esm/mutators/date-mutators.d.ts.map +0 -1
  392. package/esm/mutators/date-mutators.js +0 -120
  393. package/esm/mutators/date-mutators.js.map +0 -1
  394. package/esm/mutators/index.d.ts +0 -7
  395. package/esm/mutators/index.d.ts.map +0 -1
  396. package/esm/mutators/number-mutators.d.ts +0 -9
  397. package/esm/mutators/number-mutators.d.ts.map +0 -1
  398. package/esm/mutators/number-mutators.js +0 -23
  399. package/esm/mutators/number-mutators.js.map +0 -1
  400. package/esm/mutators/object-mutators.d.ts +0 -8
  401. package/esm/mutators/object-mutators.d.ts.map +0 -1
  402. package/esm/mutators/object-mutators.js +0 -50
  403. package/esm/mutators/object-mutators.js.map +0 -1
  404. package/esm/mutators/scalar-mutators.d.ts +0 -3
  405. package/esm/mutators/scalar-mutators.d.ts.map +0 -1
  406. package/esm/mutators/scalar-mutators.js +0 -6
  407. package/esm/mutators/scalar-mutators.js.map +0 -1
  408. package/esm/mutators/string-mutators.d.ts +0 -72
  409. package/esm/mutators/string-mutators.d.ts.map +0 -1
  410. package/esm/mutators/string-mutators.js +0 -193
  411. package/esm/mutators/string-mutators.js.map +0 -1
  412. package/esm/plugins/index.d.ts +0 -7
  413. package/esm/plugins/index.d.ts.map +0 -1
  414. package/esm/plugins/plugin-system.d.ts +0 -71
  415. package/esm/plugins/plugin-system.d.ts.map +0 -1
  416. package/esm/plugins/plugin-system.js +0 -68
  417. package/esm/plugins/plugin-system.js.map +0 -1
  418. package/esm/rules/array/array-rules.d.ts +0 -12
  419. package/esm/rules/array/array-rules.d.ts.map +0 -1
  420. package/esm/rules/array/array-rules.js +0 -44
  421. package/esm/rules/array/array-rules.js.map +0 -1
  422. package/esm/rules/array/index.d.ts +0 -2
  423. package/esm/rules/array/index.d.ts.map +0 -1
  424. package/esm/rules/color/color-rules.d.ts +0 -30
  425. package/esm/rules/color/color-rules.d.ts.map +0 -1
  426. package/esm/rules/color/color-rules.js +0 -120
  427. package/esm/rules/color/color-rules.js.map +0 -1
  428. package/esm/rules/color/index.d.ts +0 -2
  429. package/esm/rules/color/index.d.ts.map +0 -1
  430. package/esm/rules/common/enum.d.ts +0 -26
  431. package/esm/rules/common/enum.d.ts.map +0 -1
  432. package/esm/rules/common/enum.js +0 -55
  433. package/esm/rules/common/enum.js.map +0 -1
  434. package/esm/rules/common/equals-field-rules.d.ts +0 -18
  435. package/esm/rules/common/equals-field-rules.d.ts.map +0 -1
  436. package/esm/rules/common/equals-field-rules.js +0 -38
  437. package/esm/rules/common/equals-field-rules.js.map +0 -1
  438. package/esm/rules/common/index.d.ts +0 -5
  439. package/esm/rules/common/index.d.ts.map +0 -1
  440. package/esm/rules/common/type-rules.d.ts +0 -34
  441. package/esm/rules/common/type-rules.d.ts.map +0 -1
  442. package/esm/rules/common/type-rules.js +0 -104
  443. package/esm/rules/common/type-rules.js.map +0 -1
  444. package/esm/rules/common/unknown-key.d.ts +0 -9
  445. package/esm/rules/common/unknown-key.d.ts.map +0 -1
  446. package/esm/rules/common/unknown-key.js +0 -20
  447. package/esm/rules/common/unknown-key.js.map +0 -1
  448. package/esm/rules/conditional/forbidden-if-rules.d.ts +0 -54
  449. package/esm/rules/conditional/forbidden-if-rules.d.ts.map +0 -1
  450. package/esm/rules/conditional/forbidden-if-rules.js +0 -112
  451. package/esm/rules/conditional/forbidden-if-rules.js.map +0 -1
  452. package/esm/rules/conditional/index.d.ts +0 -10
  453. package/esm/rules/conditional/index.d.ts.map +0 -1
  454. package/esm/rules/conditional/present-if-rules.d.ts +0 -45
  455. package/esm/rules/conditional/present-if-rules.d.ts.map +0 -1
  456. package/esm/rules/conditional/present-if-rules.js +0 -98
  457. package/esm/rules/conditional/present-if-rules.js.map +0 -1
  458. package/esm/rules/conditional/present-unless-rules.d.ts +0 -11
  459. package/esm/rules/conditional/present-unless-rules.d.ts.map +0 -1
  460. package/esm/rules/conditional/present-unless-rules.js +0 -20
  461. package/esm/rules/conditional/present-unless-rules.js.map +0 -1
  462. package/esm/rules/conditional/present-with-rules.d.ts +0 -26
  463. package/esm/rules/conditional/present-with-rules.d.ts.map +0 -1
  464. package/esm/rules/conditional/present-with-rules.js +0 -63
  465. package/esm/rules/conditional/present-with-rules.js.map +0 -1
  466. package/esm/rules/conditional/present-without-rules.d.ts +0 -26
  467. package/esm/rules/conditional/present-without-rules.d.ts.map +0 -1
  468. package/esm/rules/conditional/present-without-rules.js +0 -63
  469. package/esm/rules/conditional/present-without-rules.js.map +0 -1
  470. package/esm/rules/conditional/required-if-rules.d.ts +0 -45
  471. package/esm/rules/conditional/required-if-rules.d.ts.map +0 -1
  472. package/esm/rules/conditional/required-if-rules.js +0 -98
  473. package/esm/rules/conditional/required-if-rules.js.map +0 -1
  474. package/esm/rules/conditional/required-unless-rules.d.ts +0 -11
  475. package/esm/rules/conditional/required-unless-rules.d.ts.map +0 -1
  476. package/esm/rules/conditional/required-unless-rules.js +0 -20
  477. package/esm/rules/conditional/required-unless-rules.js.map +0 -1
  478. package/esm/rules/conditional/required-with-rules.d.ts +0 -26
  479. package/esm/rules/conditional/required-with-rules.d.ts.map +0 -1
  480. package/esm/rules/conditional/required-with-rules.js +0 -63
  481. package/esm/rules/conditional/required-with-rules.js.map +0 -1
  482. package/esm/rules/conditional/required-without-rules.d.ts +0 -26
  483. package/esm/rules/conditional/required-without-rules.d.ts.map +0 -1
  484. package/esm/rules/conditional/required-without-rules.js +0 -63
  485. package/esm/rules/conditional/required-without-rules.js.map +0 -1
  486. package/esm/rules/core/equal.d.ts +0 -8
  487. package/esm/rules/core/equal.d.ts.map +0 -1
  488. package/esm/rules/core/equal.js +0 -13
  489. package/esm/rules/core/equal.js.map +0 -1
  490. package/esm/rules/core/forbidden.d.ts +0 -6
  491. package/esm/rules/core/forbidden.d.ts.map +0 -1
  492. package/esm/rules/core/forbidden.js +0 -13
  493. package/esm/rules/core/forbidden.js.map +0 -1
  494. package/esm/rules/core/index.d.ts +0 -6
  495. package/esm/rules/core/index.d.ts.map +0 -1
  496. package/esm/rules/core/required.d.ts +0 -11
  497. package/esm/rules/core/required.d.ts.map +0 -1
  498. package/esm/rules/core/required.js +0 -31
  499. package/esm/rules/core/required.js.map +0 -1
  500. package/esm/rules/core/union.d.ts +0 -9
  501. package/esm/rules/core/union.d.ts.map +0 -1
  502. package/esm/rules/core/union.js +0 -40
  503. package/esm/rules/core/union.js.map +0 -1
  504. package/esm/rules/core/when.d.ts +0 -6
  505. package/esm/rules/core/when.d.ts.map +0 -1
  506. package/esm/rules/core/when.js +0 -40
  507. package/esm/rules/core/when.js.map +0 -1
  508. package/esm/rules/date/date-comparison-rules.d.ts +0 -25
  509. package/esm/rules/date/date-comparison-rules.d.ts.map +0 -1
  510. package/esm/rules/date/date-comparison-rules.js +0 -78
  511. package/esm/rules/date/date-comparison-rules.js.map +0 -1
  512. package/esm/rules/date/date-day-rules.d.ts +0 -21
  513. package/esm/rules/date/date-day-rules.d.ts.map +0 -1
  514. package/esm/rules/date/date-day-rules.js +0 -65
  515. package/esm/rules/date/date-day-rules.js.map +0 -1
  516. package/esm/rules/date/date-field-comparison-rules.d.ts +0 -28
  517. package/esm/rules/date/date-field-comparison-rules.d.ts.map +0 -1
  518. package/esm/rules/date/date-field-comparison-rules.js +0 -90
  519. package/esm/rules/date/date-field-comparison-rules.js.map +0 -1
  520. package/esm/rules/date/date-period-rules.d.ts +0 -108
  521. package/esm/rules/date/date-period-rules.d.ts.map +0 -1
  522. package/esm/rules/date/date-period-rules.js +0 -566
  523. package/esm/rules/date/date-period-rules.js.map +0 -1
  524. package/esm/rules/date/date-relative-rules.d.ts +0 -20
  525. package/esm/rules/date/date-relative-rules.d.ts.map +0 -1
  526. package/esm/rules/date/date-relative-rules.js +0 -57
  527. package/esm/rules/date/date-relative-rules.js.map +0 -1
  528. package/esm/rules/date/date-special-rules.d.ts +0 -20
  529. package/esm/rules/date/date-special-rules.d.ts.map +0 -1
  530. package/esm/rules/date/date-special-rules.js +0 -72
  531. package/esm/rules/date/date-special-rules.js.map +0 -1
  532. package/esm/rules/date/date.d.ts +0 -93
  533. package/esm/rules/date/date.d.ts.map +0 -1
  534. package/esm/rules/date/date.js +0 -279
  535. package/esm/rules/date/date.js.map +0 -1
  536. package/esm/rules/date/index.d.ts +0 -8
  537. package/esm/rules/date/index.d.ts.map +0 -1
  538. package/esm/rules/file/dimensions.d.ts +0 -26
  539. package/esm/rules/file/dimensions.d.ts.map +0 -1
  540. package/esm/rules/file/dimensions.js +0 -56
  541. package/esm/rules/file/dimensions.js.map +0 -1
  542. package/esm/rules/file/file-size.d.ts +0 -14
  543. package/esm/rules/file/file-size.d.ts.map +0 -1
  544. package/esm/rules/file/file-size.js +0 -26
  545. package/esm/rules/file/file-size.js.map +0 -1
  546. package/esm/rules/file/index.d.ts +0 -11
  547. package/esm/rules/file/index.d.ts.map +0 -1
  548. package/esm/rules/index.d.ts +0 -19
  549. package/esm/rules/index.d.ts.map +0 -1
  550. package/esm/rules/length/index.d.ts +0 -2
  551. package/esm/rules/length/index.d.ts.map +0 -1
  552. package/esm/rules/length/length-rules.d.ts +0 -49
  553. package/esm/rules/length/length-rules.d.ts.map +0 -1
  554. package/esm/rules/length/length-rules.js +0 -116
  555. package/esm/rules/length/length-rules.js.map +0 -1
  556. package/esm/rules/number/index.d.ts +0 -2
  557. package/esm/rules/number/index.d.ts.map +0 -1
  558. package/esm/rules/number/number-rules.d.ts +0 -65
  559. package/esm/rules/number/number-rules.d.ts.map +0 -1
  560. package/esm/rules/number/number-rules.js +0 -234
  561. package/esm/rules/number/number-rules.js.map +0 -1
  562. package/esm/rules/scalar/accepted-rule.d.ts +0 -39
  563. package/esm/rules/scalar/accepted-rule.d.ts.map +0 -1
  564. package/esm/rules/scalar/accepted-rule.js +0 -110
  565. package/esm/rules/scalar/accepted-rule.js.map +0 -1
  566. package/esm/rules/scalar/declined-rule.d.ts +0 -39
  567. package/esm/rules/scalar/declined-rule.d.ts.map +0 -1
  568. package/esm/rules/scalar/declined-rule.js +0 -110
  569. package/esm/rules/scalar/declined-rule.js.map +0 -1
  570. package/esm/rules/scalar/index.d.ts +0 -3
  571. package/esm/rules/scalar/index.d.ts.map +0 -1
  572. package/esm/rules/string/alpha.d.ts +0 -14
  573. package/esm/rules/string/alpha.d.ts.map +0 -1
  574. package/esm/rules/string/alpha.js +0 -39
  575. package/esm/rules/string/alpha.js.map +0 -1
  576. package/esm/rules/string/credit-card.d.ts +0 -6
  577. package/esm/rules/string/credit-card.d.ts.map +0 -1
  578. package/esm/rules/string/credit-card.js +0 -31
  579. package/esm/rules/string/credit-card.js.map +0 -1
  580. package/esm/rules/string/email.d.ts +0 -6
  581. package/esm/rules/string/email.d.ts.map +0 -1
  582. package/esm/rules/string/email.js +0 -13
  583. package/esm/rules/string/email.js.map +0 -1
  584. package/esm/rules/string/index.d.ts +0 -17
  585. package/esm/rules/string/index.d.ts.map +0 -1
  586. package/esm/rules/string/ip.d.ts +0 -14
  587. package/esm/rules/string/ip.d.ts.map +0 -1
  588. package/esm/rules/string/ip.js +0 -39
  589. package/esm/rules/string/ip.js.map +0 -1
  590. package/esm/rules/string/matches.d.ts +0 -8
  591. package/esm/rules/string/matches.d.ts.map +0 -1
  592. package/esm/rules/string/matches.js +0 -14
  593. package/esm/rules/string/matches.js.map +0 -1
  594. package/esm/rules/string/pattern.d.ts +0 -8
  595. package/esm/rules/string/pattern.d.ts.map +0 -1
  596. package/esm/rules/string/pattern.js +0 -13
  597. package/esm/rules/string/pattern.js.map +0 -1
  598. package/esm/rules/string/string-comparison.d.ts +0 -26
  599. package/esm/rules/string/string-comparison.d.ts.map +0 -1
  600. package/esm/rules/string/string-comparison.js +0 -52
  601. package/esm/rules/string/string-comparison.js.map +0 -1
  602. package/esm/rules/string/strong-password-rule.d.ts +0 -14
  603. package/esm/rules/string/strong-password-rule.d.ts.map +0 -1
  604. package/esm/rules/string/strong-password-rule.js +0 -38
  605. package/esm/rules/string/strong-password-rule.js.map +0 -1
  606. package/esm/rules/string/url.d.ts +0 -6
  607. package/esm/rules/string/url.d.ts.map +0 -1
  608. package/esm/rules/string/url.js +0 -16
  609. package/esm/rules/string/url.js.map +0 -1
  610. package/esm/rules/string/without-whitespace.d.ts +0 -6
  611. package/esm/rules/string/without-whitespace.d.ts.map +0 -1
  612. package/esm/rules/string/without-whitespace.js +0 -13
  613. package/esm/rules/string/without-whitespace.js.map +0 -1
  614. package/esm/types/conditional-types.d.ts +0 -15
  615. package/esm/types/conditional-types.d.ts.map +0 -1
  616. package/esm/types/context-types.d.ts +0 -44
  617. package/esm/types/context-types.d.ts.map +0 -1
  618. package/esm/types/data-transformer-types.d.ts +0 -25
  619. package/esm/types/data-transformer-types.d.ts.map +0 -1
  620. package/esm/types/date-types.d.ts +0 -9
  621. package/esm/types/date-types.d.ts.map +0 -1
  622. package/esm/types/date-types.js +0 -12
  623. package/esm/types/date-types.js.map +0 -1
  624. package/esm/types/index.d.ts +0 -10
  625. package/esm/types/index.d.ts.map +0 -1
  626. package/esm/types/inference-types.d.ts +0 -29
  627. package/esm/types/inference-types.d.ts.map +0 -1
  628. package/esm/types/mutator-types.d.ts +0 -27
  629. package/esm/types/mutator-types.d.ts.map +0 -1
  630. package/esm/types/result-types.d.ts +0 -19
  631. package/esm/types/result-types.d.ts.map +0 -1
  632. package/esm/types/rule-types.d.ts +0 -54
  633. package/esm/types/rule-types.d.ts.map +0 -1
  634. package/esm/types/schema-types.d.ts +0 -6
  635. package/esm/types/schema-types.d.ts.map +0 -1
  636. package/esm/validators/any-validator.d.ts +0 -7
  637. package/esm/validators/any-validator.d.ts.map +0 -1
  638. package/esm/validators/any-validator.js +0 -5
  639. package/esm/validators/any-validator.js.map +0 -1
  640. package/esm/validators/array-validator.d.ts +0 -59
  641. package/esm/validators/array-validator.d.ts.map +0 -1
  642. package/esm/validators/array-validator.js +0 -134
  643. package/esm/validators/array-validator.js.map +0 -1
  644. package/esm/validators/base-validator.d.ts +0 -609
  645. package/esm/validators/base-validator.d.ts.map +0 -1
  646. package/esm/validators/base-validator.js +0 -1154
  647. package/esm/validators/base-validator.js.map +0 -1
  648. package/esm/validators/boolean-validator.d.ts +0 -47
  649. package/esm/validators/boolean-validator.d.ts.map +0 -1
  650. package/esm/validators/boolean-validator.js +0 -54
  651. package/esm/validators/boolean-validator.js.map +0 -1
  652. package/esm/validators/date-validator.d.ts +0 -307
  653. package/esm/validators/date-validator.d.ts.map +0 -1
  654. package/esm/validators/date-validator.js +0 -645
  655. package/esm/validators/date-validator.js.map +0 -1
  656. package/esm/validators/float-validator.d.ts +0 -8
  657. package/esm/validators/float-validator.d.ts.map +0 -1
  658. package/esm/validators/float-validator.js +0 -9
  659. package/esm/validators/float-validator.js.map +0 -1
  660. package/esm/validators/index.d.ts +0 -24
  661. package/esm/validators/index.d.ts.map +0 -1
  662. package/esm/validators/int-validator.d.ts +0 -8
  663. package/esm/validators/int-validator.d.ts.map +0 -1
  664. package/esm/validators/int-validator.js +0 -9
  665. package/esm/validators/int-validator.js.map +0 -1
  666. package/esm/validators/number-validator.d.ts +0 -113
  667. package/esm/validators/number-validator.d.ts.map +0 -1
  668. package/esm/validators/number-validator.js +0 -192
  669. package/esm/validators/number-validator.js.map +0 -1
  670. package/esm/validators/numeric-validator.d.ts +0 -15
  671. package/esm/validators/numeric-validator.d.ts.map +0 -1
  672. package/esm/validators/numeric-validator.js +0 -18
  673. package/esm/validators/numeric-validator.js.map +0 -1
  674. package/esm/validators/object-validator.d.ts +0 -178
  675. package/esm/validators/object-validator.d.ts.map +0 -1
  676. package/esm/validators/object-validator.js +0 -356
  677. package/esm/validators/object-validator.js.map +0 -1
  678. package/esm/validators/record-validator.d.ts +0 -33
  679. package/esm/validators/record-validator.d.ts.map +0 -1
  680. package/esm/validators/record-validator.js +0 -70
  681. package/esm/validators/record-validator.js.map +0 -1
  682. package/esm/validators/scalar-validator.d.ts +0 -82
  683. package/esm/validators/scalar-validator.d.ts.map +0 -1
  684. package/esm/validators/scalar-validator.js +0 -160
  685. package/esm/validators/scalar-validator.js.map +0 -1
  686. package/esm/validators/string-validator.d.ts +0 -191
  687. package/esm/validators/string-validator.d.ts.map +0 -1
  688. package/esm/validators/string-validator.js +0 -410
  689. package/esm/validators/string-validator.js.map +0 -1
  690. package/esm/validators/tuple-validator.d.ts +0 -34
  691. package/esm/validators/tuple-validator.d.ts.map +0 -1
  692. package/esm/validators/tuple-validator.js +0 -79
  693. package/esm/validators/tuple-validator.js.map +0 -1
  694. package/esm/validators/union-validator.d.ts +0 -42
  695. package/esm/validators/union-validator.d.ts.map +0 -1
  696. package/esm/validators/union-validator.js +0 -44
  697. package/esm/validators/union-validator.js.map +0 -1
@@ -1,356 +0,0 @@
1
- import {except}from'@mongez/reinforcements';import {isPlainObject}from'@mongez/supportive-is';import {setKeyPath}from'../helpers/path-helpers.js';import'dayjs';import {stripUnknownMutator,objectTrimMutator}from'../mutators/object-mutators.js';import'net';import {objectRule}from'../rules/common/type-rules.js';import {unknownKeyRule}from'../rules/common/unknown-key.js';import {BaseValidator}from'./base-validator.js';/**
2
- * Object validator class
3
- */
4
- class ObjectValidator extends BaseValidator {
5
- schema;
6
- shouldAllowUnknown = false;
7
- allowedKeys = [];
8
- constructor(schema, errorMessage) {
9
- super();
10
- this.schema = schema;
11
- this.addRule(objectRule, errorMessage);
12
- }
13
- /**
14
- * Check if value is an object type (plain object, not array or date)
15
- */
16
- matchesType(value) {
17
- return isPlainObject(value);
18
- }
19
- /** Strip unknown keys from the data */
20
- stripUnknown() {
21
- // eslint-disable-next-line @typescript-eslint/no-this-alias
22
- const validator = this;
23
- this.addMutator(stripUnknownMutator, {
24
- get allowedKeys() {
25
- return validator.allowedKeys;
26
- },
27
- });
28
- return this;
29
- }
30
- /** Add list of allowed keys that could be in the data but not necessarily validated */
31
- allow(...keys) {
32
- this.allowedKeys.push(...keys);
33
- return this;
34
- }
35
- /** Trim values of the object properties */
36
- trim(recursive = true) {
37
- this.addMutator(objectTrimMutator, { recursive });
38
- return this;
39
- }
40
- /** Whether to allow unknown properties
41
- * Please note it will allow only unknown direct children keys, not nested children keys
42
- */
43
- allowUnknown(allow = true) {
44
- this.shouldAllowUnknown = allow;
45
- return this;
46
- }
47
- /**
48
- * Create a copy of this object validator with the same configuration
49
- * Copies schema, rules, mutators, transformers, and object-specific settings
50
- *
51
- * @returns A new ObjectValidator instance with copied configuration
52
- *
53
- * @example
54
- * ```ts
55
- * const baseUser = v.object({ name: v.string() }).allowUnknown();
56
- * const userCopy = baseUser.clone();
57
- * // userCopy has the same schema and allowUnknown setting
58
- * ```
59
- */
60
- clone(keys) {
61
- // Get cloned instance with all BaseValidator properties
62
- const cloned = super.clone();
63
- // Clone schema with deep copy of validators
64
- const newSchema = {};
65
- for (const key in this.schema) {
66
- if (keys && !keys.includes(key))
67
- continue;
68
- newSchema[key] = this.schema[key].clone();
69
- }
70
- cloned.schema = newSchema;
71
- // Add ObjectValidator-specific properties
72
- cloned.shouldAllowUnknown = this.shouldAllowUnknown;
73
- cloned.allowedKeys = [...this.allowedKeys];
74
- return cloned;
75
- }
76
- /**
77
- * Extend this schema with additional fields
78
- * Clones the current validator and adds new fields to the schema
79
- * **Keeps original configuration** (allowUnknown, stripUnknown, etc.)
80
- *
81
- * If an ObjectValidator is provided, only its schema is used - its configuration is ignored.
82
- * This is useful for creating reusable field collections that can be added to different schemas.
83
- *
84
- * @param schemaOrValidator - Plain schema object or ObjectValidator to extend with
85
- * @returns A new ObjectValidator with merged schema and original configuration
86
- *
87
- * @example
88
- * ```ts
89
- * // Extend with plain schema
90
- * const baseUser = v.object({
91
- * name: v.string().required(),
92
- * email: v.string().email().required()
93
- * }).allowUnknown();
94
- *
95
- * const adminUser = baseUser.extend({
96
- * role: v.string().in(['admin', 'superadmin']).required()
97
- * });
98
- * // adminUser has: name, email, role
99
- * // adminUser keeps: allowUnknown() from base ✅
100
- *
101
- * // Extend with ObjectValidator (only schema is used)
102
- * const auditFields = v.object({
103
- * createdAt: v.date().required(),
104
- * updatedAt: v.date().required()
105
- * }).stripUnknown(); // This config is ignored!
106
- *
107
- * const fullUser = baseUser.extend(auditFields);
108
- * // fullUser has: name, email, createdAt, updatedAt
109
- * // fullUser keeps: allowUnknown() from base (NOT stripUnknown from auditFields) ✅
110
- *
111
- * // Chain multiple extends
112
- * const complexSchema = baseUser
113
- * .extend(auditFields)
114
- * .extend({ metadata: v.object({}) });
115
- * ```
116
- */
117
- extend(schemaOrValidator) {
118
- // Clone current validator to preserve original
119
- const extended = this.clone();
120
- // Extract schema from parameter
121
- const schemaToAdd = schemaOrValidator instanceof ObjectValidator
122
- ? schemaOrValidator.schema
123
- : schemaOrValidator;
124
- // Merge schemas with cloned validators (later fields override earlier ones)
125
- for (const key in schemaToAdd) {
126
- extended.schema[key] = schemaToAdd[key].clone();
127
- }
128
- return extended;
129
- }
130
- /**
131
- * Merge with another ObjectValidator
132
- * Clones current validator, merges schemas, and **overrides configuration** with other validator's config
133
- *
134
- * Unlike extend(), merge() combines both schemas AND configurations.
135
- * The other validator's configuration (allowUnknown, stripUnknown, etc.) takes precedence.
136
- *
137
- * @param validator - Another ObjectValidator to merge with
138
- * @returns A new ObjectValidator with merged schema and configuration
139
- *
140
- * @example
141
- * ```ts
142
- * const baseUser = v.object({
143
- * name: v.string().required()
144
- * }).allowUnknown();
145
- *
146
- * const timestamps = v.object({
147
- * createdAt: v.date().required(),
148
- * updatedAt: v.date().required()
149
- * }).stripUnknown();
150
- *
151
- * const merged = baseUser.merge(timestamps);
152
- * // merged has: name, createdAt, updatedAt
153
- * // merged config: stripUnknown() from timestamps (overrides allowUnknown) ✅
154
- *
155
- * // Chain multiple merges
156
- * const full = baseUser.merge(timestamps).merge(softDeleteSchema);
157
- * ```
158
- */
159
- merge(validator) {
160
- // Clone current validator
161
- const merged = this.clone();
162
- // Merge schemas with cloned validators (later fields override earlier ones)
163
- for (const key in validator.schema) {
164
- merged.schema[key] = validator.schema[key].clone();
165
- }
166
- // Override configuration with other validator's config
167
- merged.shouldAllowUnknown = validator.shouldAllowUnknown;
168
- merged.allowedKeys = [...merged.allowedKeys, ...validator.allowedKeys];
169
- // Append rules, mutators, transformers from other validator
170
- merged.rules.push(...validator.rules);
171
- merged.mutators.push(...validator.mutators);
172
- merged.dataTransformers.push(...validator.dataTransformers);
173
- // Merge attributes text (later wins)
174
- merged.attributesText = {
175
- ...merged.attributesText,
176
- ...validator.attributesText,
177
- };
178
- return merged;
179
- }
180
- /**
181
- * Create a new schema with only the specified fields
182
- * Clones the current validator and keeps only the selected fields
183
- * **Preserves all configuration** (allowUnknown, stripUnknown, etc.)
184
- *
185
- * @param keys - Field names to keep in the schema
186
- * @returns A new ObjectValidator with only the picked fields
187
- *
188
- * @example
189
- * ```ts
190
- * const fullUser = v.object({
191
- * id: v.int().required(),
192
- * name: v.string().required(),
193
- * email: v.string().email().required(),
194
- * password: v.string().required(),
195
- * role: v.string()
196
- * }).allowUnknown();
197
- *
198
- * // For login - only need email and password
199
- * const loginSchema = fullUser.pick('email', 'password');
200
- * // loginSchema has: { email, password }
201
- * // loginSchema keeps: allowUnknown() ✅
202
- *
203
- * // For public profile
204
- * const publicSchema = fullUser.pick('id', 'name', 'role');
205
- * // publicSchema has: { id, name, role }
206
- * ```
207
- */
208
- pick(...keys) {
209
- // Clone current validator
210
- const picked = this.clone();
211
- // Create new schema with only picked keys
212
- const newSchema = {};
213
- for (const key of keys) {
214
- if (key in picked.schema) {
215
- newSchema[key] = picked.schema[key];
216
- }
217
- }
218
- picked.schema = newSchema;
219
- return picked;
220
- }
221
- /**
222
- * Create a new schema excluding the specified fields
223
- * Clones the current validator and removes the specified fields
224
- * **Preserves all configuration** (allowUnknown, stripUnknown, etc.)
225
- *
226
- * @param keys - Field names to exclude from the schema
227
- * @returns A new ObjectValidator without the excluded fields
228
- *
229
- * @example
230
- * ```ts
231
- * const fullUser = v.object({
232
- * id: v.int().required(),
233
- * name: v.string().required(),
234
- * email: v.string().email().required(),
235
- * password: v.string().required(),
236
- * role: v.string()
237
- * }).allowUnknown();
238
- *
239
- * // For updates - exclude id
240
- * const updateSchema = fullUser.without('id');
241
- * // updateSchema has: { name, email, password, role }
242
- * // updateSchema keeps: allowUnknown() ✅
243
- *
244
- * // For public API - exclude sensitive fields
245
- * const publicSchema = fullUser.without('password', 'role');
246
- * // publicSchema has: { id, name, email }
247
- *
248
- * // Combine with other methods
249
- * const patchSchema = fullUser.without('id', 'password');
250
- * // patchSchema has: { name, email, role }
251
- * ```
252
- */
253
- without(...keys) {
254
- // Clone current validator
255
- const filtered = this.clone();
256
- // Create new schema excluding specified keys
257
- const newSchema = {};
258
- for (const key in filtered.schema) {
259
- if (!keys.includes(key)) {
260
- newSchema[key] = filtered.schema[key];
261
- }
262
- }
263
- filtered.schema = newSchema;
264
- return filtered;
265
- }
266
- /** Mutate the data */
267
- mutate(data, context) {
268
- if (!isPlainObject(data))
269
- return data;
270
- return super.mutate({ ...data }, context);
271
- }
272
- /** Validate the data */
273
- async validate(data, context) {
274
- context.schema = this.schema;
275
- const mutatedData = await this.mutate(data, context);
276
- // Check for unknown properties
277
- if (this.shouldAllowUnknown === false) {
278
- const rule = this.addRule(unknownKeyRule);
279
- rule.context.options.allowedKeys = this.allowedKeys;
280
- rule.context.options.schema = this.schema;
281
- this.setRuleAttributesList(rule);
282
- }
283
- const result = await super.validate(mutatedData, context);
284
- if (result.isValid === false)
285
- return result;
286
- if (data === undefined)
287
- return result;
288
- // Validate object properties
289
- const errors = [];
290
- const finalData = {};
291
- const validationPromises = Object.keys(this.schema).map(async (key) => {
292
- const validator = this.schema[key];
293
- const value = mutatedData?.[key] !== undefined
294
- ? mutatedData[key]
295
- : validator.getDefaultValue();
296
- const childContext = {
297
- ...context,
298
- parent: mutatedData,
299
- value,
300
- key,
301
- path: setKeyPath(context.path, key),
302
- };
303
- const childResult = await validator.validate(value, childContext);
304
- // Only include in final data if not omitted
305
- if (childResult.data !== undefined && !validator.isOmitted()) {
306
- finalData[key] = childResult.data;
307
- }
308
- if (childResult.isValid === false) {
309
- errors.push(...childResult.errors);
310
- }
311
- });
312
- await Promise.all(validationPromises);
313
- // Remove undefined values
314
- const cleanedData = removeUndefinedValues(finalData);
315
- const transformedData = await this.startTransformationPipeline(cleanedData, context);
316
- const output = this.shouldAllowUnknown === false
317
- ? transformedData
318
- : {
319
- ...transformedData,
320
- ...except(mutatedData, Object.keys(this.schema)),
321
- };
322
- return {
323
- isValid: errors.length === 0,
324
- errors,
325
- data: output,
326
- };
327
- }
328
- }
329
- /** Recursively remove undefined values from an object */
330
- function removeUndefinedValues(obj, visited = new WeakMap()) {
331
- // Handle primitives and null
332
- if (obj === null || obj === undefined) {
333
- return obj;
334
- }
335
- // Handle arrays
336
- if (Array.isArray(obj)) {
337
- return obj.map(item => removeUndefinedValues(item, visited));
338
- }
339
- // Skip non-plain objects (class instances, Dates, Buffers, etc.)
340
- if (!isPlainObject(obj)) {
341
- return obj;
342
- }
343
- // Handle circular references - return already processed result
344
- if (visited.has(obj)) {
345
- return visited.get(obj);
346
- }
347
- // Process plain objects
348
- const result = {};
349
- visited.set(obj, result); // Mark as processing BEFORE recursion
350
- for (const [key, value] of Object.entries(obj)) {
351
- if (value !== undefined) {
352
- result[key] = removeUndefinedValues(value, visited);
353
- }
354
- }
355
- return result;
356
- }export{ObjectValidator};//# sourceMappingURL=object-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object-validator.js","sources":["../../src/validators/object-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import type { SchemaContext, ValidationResult } from "../types";
2
- import { BaseValidator } from "./base-validator";
3
- /**
4
- * Record validator class - validates objects with dynamic keys and consistent value types
5
- *
6
- * @example
7
- * ```ts
8
- * // Translations object
9
- * v.record(v.string())
10
- * // Valid: { en: "Hello", ar: "مرحبا", fr: "Bonjour" }
11
- *
12
- * // User preferences
13
- * v.record(v.union([v.string(), v.number(), v.boolean()]))
14
- * // Valid: { theme: "dark", fontSize: 16, notifications: true }
15
- * ```
16
- */
17
- export declare class RecordValidator extends BaseValidator {
18
- valueValidator: BaseValidator;
19
- constructor(valueValidator: BaseValidator, errorMessage?: string);
20
- /**
21
- * Check if value is a plain object type
22
- */
23
- matchesType(value: any): boolean;
24
- /**
25
- * Clone the validator
26
- */
27
- clone(): this;
28
- /**
29
- * Validate record - iterate all keys and validate each value
30
- */
31
- validate(data: any, context: SchemaContext): Promise<ValidationResult>;
32
- }
33
- //# sourceMappingURL=record-validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-validator.d.ts","sourceRoot":"","sources":["../../src/validators/record-validator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAEvC,cAAc,EAAE,aAAa;gBAA7B,cAAc,EAAE,aAAa,EACpC,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;CAyC7B"}
@@ -1,70 +0,0 @@
1
- import {isPlainObject}from'@mongez/supportive-is';import'@mongez/reinforcements';import {setKeyPath}from'../helpers/path-helpers.js';import'net';import {objectRule}from'../rules/common/type-rules.js';import {BaseValidator}from'./base-validator.js';/**
2
- * Record validator class - validates objects with dynamic keys and consistent value types
3
- *
4
- * @example
5
- * ```ts
6
- * // Translations object
7
- * v.record(v.string())
8
- * // Valid: { en: "Hello", ar: "مرحبا", fr: "Bonjour" }
9
- *
10
- * // User preferences
11
- * v.record(v.union([v.string(), v.number(), v.boolean()]))
12
- * // Valid: { theme: "dark", fontSize: 16, notifications: true }
13
- * ```
14
- */
15
- class RecordValidator extends BaseValidator {
16
- valueValidator;
17
- constructor(valueValidator, errorMessage) {
18
- super();
19
- this.valueValidator = valueValidator;
20
- this.addRule(objectRule, errorMessage);
21
- }
22
- /**
23
- * Check if value is a plain object type
24
- */
25
- matchesType(value) {
26
- return isPlainObject(value);
27
- }
28
- /**
29
- * Clone the validator
30
- */
31
- clone() {
32
- const cloned = super.clone();
33
- cloned.valueValidator = this.valueValidator.clone();
34
- return cloned;
35
- }
36
- /**
37
- * Validate record - iterate all keys and validate each value
38
- */
39
- async validate(data, context) {
40
- const mutatedData = (await this.mutate(data, context)) || {};
41
- const result = await super.validate(data, context);
42
- if (result.isValid === false)
43
- return result;
44
- const errors = [];
45
- const keys = Object.keys(mutatedData);
46
- // Validate all values in parallel
47
- const validationPromises = keys.map(async (key) => {
48
- const childContext = {
49
- ...context,
50
- parent: mutatedData,
51
- value: mutatedData[key],
52
- key,
53
- path: setKeyPath(context.path, key),
54
- };
55
- const childResult = await this.valueValidator.validate(mutatedData[key], childContext);
56
- // Update mutated data with validated result
57
- mutatedData[key] = childResult.data;
58
- // Collect errors from this value
59
- if (childResult.isValid === false) {
60
- errors.push(...childResult.errors);
61
- }
62
- });
63
- await Promise.all(validationPromises);
64
- return {
65
- isValid: errors.length === 0,
66
- errors,
67
- data: await this.startTransformationPipeline(mutatedData, context),
68
- };
69
- }
70
- }export{RecordValidator};//# sourceMappingURL=record-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-validator.js","sources":["../../src/validators/record-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"wPAMA;;;;;;;;;;;;;AAaG;AACG,MAAO,eAAgB,SAAQ,aAAa,CAAA;AAEvC,IAAA,cAAA,CAAA;IADT,WACS,CAAA,cAA6B,EACpC,YAAqB,EAAA;AAErB,QAAA,KAAK,EAAE,CAAC;QAHD,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;AAIpC,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;KACxC;AAED;;AAEG;AACI,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED;;AAEG;IACa,KAAK,GAAA;AACnB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AACpD,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;AAEG;AACI,IAAA,MAAM,QAAQ,CACnB,IAAS,EACT,OAAsB,EAAA;AAEtB,QAAA,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAEnD,QAAA,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;AAAE,YAAA,OAAO,MAAM,CAAC;QAE5C,MAAM,MAAM,GAA+B,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;QAGtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAM,GAAG,KAAG;AAC9C,YAAA,MAAM,YAAY,GAAkB;AAClC,gBAAA,GAAG,OAAO;AACV,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;gBACvB,GAAG;gBACH,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aACpC,CAAC;AAEF,YAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CACpD,WAAW,CAAC,GAAG,CAAC,EAChB,YAAY,CACb,CAAC;;AAGF,YAAA,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC;;AAGpC,YAAA,IAAI,WAAW,CAAC,OAAO,KAAK,KAAK,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEtC,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,MAAM;YACN,IAAI,EAAE,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,OAAO,CAAC;SACnE,CAAC;KACH;AACF"}
@@ -1,82 +0,0 @@
1
- import { BaseValidator } from "./base-validator";
2
- /**
3
- * Scalar validator class
4
- *
5
- * Core validator for scalar values (string, number, boolean)
6
- *
7
- * Database methods (unique, exists, etc.) are injected by the framework
8
- */
9
- export declare class ScalarValidator extends BaseValidator {
10
- constructor(errorMessage?: string);
11
- /**
12
- * Add matches type
13
- */
14
- matchesType(value: any): boolean;
15
- /**
16
- * Mutate the scalar value to be number
17
- */
18
- asNumber(): this;
19
- /**
20
- * Accepted value
21
- * The value will be valid if it equals 1 | "1" | true | "true" | "yes" | "y" | "on"
22
- */
23
- accepted(errorMessage?: string): this;
24
- /**
25
- * Accepted value if another field's value equals to a specific value
26
- */
27
- acceptedIf(field: string, value: any, errorMessage?: string): this;
28
- /**
29
- * Accepted value if another field's value is not equal to the given value
30
- */
31
- acceptedUnless(field: string, value: any, errorMessage?: string): this;
32
- /**
33
- * Accepted value if another field is required
34
- */
35
- acceptedIfRequired(field: string, errorMessage?: string): this;
36
- /**
37
- * Accepted value if another field is present
38
- */
39
- acceptedIfPresent(field: string, errorMessage?: string): this;
40
- /**
41
- * Accepted value if another field is missing
42
- */
43
- acceptedWithout(field: string, errorMessage?: string): this;
44
- /**
45
- * Declined value
46
- * The value will be valid if it equals 0 | "0" | false | "false" | "no" | "n" | "off"
47
- */
48
- declined(errorMessage?: string): this;
49
- /**
50
- * Declined value if another field's value equals to a specific value
51
- */
52
- declinedIf(field: string, value: any, errorMessage?: string): this;
53
- /**
54
- * Declined value if another field's value is not equal to the given value
55
- */
56
- declinedUnless(field: string, value: any, errorMessage?: string): this;
57
- /**
58
- * Declined value if another field is required
59
- */
60
- declinedIfRequired(field: string, errorMessage?: string): this;
61
- /**
62
- * Declined value if another field is present
63
- */
64
- declinedIfPresent(field: string, errorMessage?: string): this;
65
- /**
66
- * Declined value if another field is missing
67
- */
68
- declinedWithout(field: string, errorMessage?: string): this;
69
- /** Value must be one of the given values */
70
- enum(values: any, errorMessage?: string): this;
71
- /** Value must be one of the given values */
72
- in(values: any[], errorMessage?: string): this;
73
- /** @alias in */
74
- oneOf(values: any[], errorMessage?: string): this;
75
- /** Add rule to check if the value is one of the allowed values */
76
- allowsOnly(values: any[], errorMessage?: string): this;
77
- /** Forbid the value from being one of the given values */
78
- forbids(values: any[], errorMessage?: string): this;
79
- /** @alias forbids */
80
- notIn(values: any[], errorMessage?: string): this;
81
- }
82
- //# sourceMappingURL=scalar-validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scalar-validator.d.ts","sourceRoot":"","sources":["../../src/validators/scalar-validator.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,aAAa;gBAC7B,YAAY,CAAC,EAAE,MAAM;IAKxC;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG;IAQ7B;;OAEG;IACI,QAAQ;IAMf;;;OAGG;IACI,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;IAKrC;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAOlE;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAOtE;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAM9D;;OAEG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAM7D;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAM3D;;;OAGG;IACI,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;IAKrC;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAOlE;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAOtE;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAM9D;;OAEG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAM7D;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAM3D,4CAA4C;IACrC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAM9C,4CAA4C;IACrC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;IAM9C,gBAAgB;IACT,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;IAIjD,kEAAkE;IAC3D,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;IAMtD,0DAA0D;IACnD,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;IAMnD,qBAAqB;IACd,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;CAGlD"}