@warlock.js/notifications 4.15.0 → 5.0.0

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 (344) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/channel_api-CH3DxhRU.cjs +7463 -0
  3. package/cjs/channel_api-CH3DxhRU.cjs.map +1 -0
  4. package/cjs/chunk-fl3r8ClO.cjs +41 -0
  5. package/cjs/index.cjs +34 -4
  6. package/cjs/index.cjs.map +1 -1
  7. package/cjs/rabbitmq-driver-CJtyxjUQ.cjs +3 -0
  8. package/cjs/src-Cus6pYPC.cjs +10981 -0
  9. package/cjs/src-Cus6pYPC.cjs.map +1 -0
  10. package/esm/_virtual/_rolldown/runtime.mjs +32 -0
  11. package/esm/herald/src/communicators/broker-registry.mjs +204 -0
  12. package/esm/herald/src/communicators/broker-registry.mjs.map +1 -0
  13. package/esm/herald/src/communicators/broker.mjs +110 -0
  14. package/esm/herald/src/communicators/broker.mjs.map +1 -0
  15. package/esm/herald/src/communicators/index.mjs +4 -0
  16. package/esm/herald/src/decorators/consumable.mjs +36 -0
  17. package/esm/herald/src/decorators/consumable.mjs.map +1 -0
  18. package/esm/herald/src/decorators/index.mjs +3 -0
  19. package/esm/herald/src/drivers/index.mjs +5 -0
  20. package/esm/herald/src/drivers/rabbitmq/index.mjs +4 -0
  21. package/esm/herald/src/drivers/rabbitmq/rabbitmq-channel.mjs +403 -0
  22. package/esm/herald/src/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -0
  23. package/esm/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs +303 -0
  24. package/esm/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -0
  25. package/esm/herald/src/index.mjs +16 -0
  26. package/esm/herald/src/message-managers/event-consumer.mjs +76 -0
  27. package/esm/herald/src/message-managers/event-consumer.mjs.map +1 -0
  28. package/esm/herald/src/message-managers/event-message.mjs +85 -0
  29. package/esm/herald/src/message-managers/event-message.mjs.map +1 -0
  30. package/esm/herald/src/message-managers/index.mjs +4 -0
  31. package/esm/herald/src/message-managers/prepare-consumer-subscription.mjs +42 -0
  32. package/esm/herald/src/message-managers/prepare-consumer-subscription.mjs.map +1 -0
  33. package/esm/herald/src/use-case-broadcast.mjs +30 -0
  34. package/esm/herald/src/use-case-broadcast.mjs.map +1 -0
  35. package/esm/herald/src/utils/connect-to-broker.mjs +168 -0
  36. package/esm/herald/src/utils/connect-to-broker.mjs.map +1 -0
  37. package/esm/herald/src/utils/index.mjs +3 -0
  38. package/esm/in-app/base-notifications-repository.d.mts +15 -1
  39. package/esm/in-app/base-notifications-repository.d.mts.map +1 -1
  40. package/esm/in-app/base-notifications-repository.mjs +33 -3
  41. package/esm/in-app/base-notifications-repository.mjs.map +1 -1
  42. package/esm/in-app/in-app.d.mts +3 -3
  43. package/esm/in-app/in-app.d.mts.map +1 -1
  44. package/esm/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs +6 -0
  45. package/esm/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs.map +1 -0
  46. package/esm/node_modules/@mongez/reinforcements/esm/Random/bool.mjs +3 -0
  47. package/esm/node_modules/@mongez/reinforcements/esm/Random/color.mjs +3 -0
  48. package/esm/node_modules/@mongez/reinforcements/esm/Random/date.mjs +3 -0
  49. package/esm/node_modules/@mongez/reinforcements/esm/Random/float.mjs +3 -0
  50. package/esm/node_modules/@mongez/reinforcements/esm/Random/id.mjs +3 -0
  51. package/esm/node_modules/@mongez/reinforcements/esm/Random/int.mjs +3 -0
  52. package/esm/node_modules/@mongez/reinforcements/esm/Random/nanoid.mjs +3 -0
  53. package/esm/node_modules/@mongez/reinforcements/esm/Random/pick.mjs +3 -0
  54. package/esm/node_modules/@mongez/reinforcements/esm/Random/random.mjs +16 -0
  55. package/esm/node_modules/@mongez/reinforcements/esm/Random/sample.mjs +3 -0
  56. package/esm/node_modules/@mongez/reinforcements/esm/Random/string.mjs +3 -0
  57. package/esm/node_modules/@mongez/reinforcements/esm/Random/token.mjs +3 -0
  58. package/esm/node_modules/@mongez/reinforcements/esm/Random/uuid.mjs +3 -0
  59. package/esm/node_modules/@mongez/reinforcements/esm/Random/weighted.mjs +3 -0
  60. package/esm/node_modules/@mongez/reinforcements/esm/async/retry.mjs +3 -0
  61. package/esm/node_modules/@mongez/reinforcements/esm/index.mjs +24 -0
  62. package/esm/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs +82 -0
  63. package/esm/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs.map +1 -0
  64. package/esm/node_modules/@mongez/reinforcements/esm/number/round.mjs +17 -0
  65. package/esm/node_modules/@mongez/reinforcements/esm/number/round.mjs.map +1 -0
  66. package/esm/node_modules/@mongez/reinforcements/esm/object/except.mjs +13 -0
  67. package/esm/node_modules/@mongez/reinforcements/esm/object/except.mjs.map +1 -0
  68. package/esm/node_modules/@mongez/reinforcements/esm/object/get.mjs +18 -0
  69. package/esm/node_modules/@mongez/reinforcements/esm/object/get.mjs.map +1 -0
  70. package/esm/node_modules/@mongez/reinforcements/esm/object/omit.mjs +17 -0
  71. package/esm/node_modules/@mongez/reinforcements/esm/object/omit.mjs.map +1 -0
  72. package/esm/node_modules/@mongez/reinforcements/esm/object/unset.mjs +30 -0
  73. package/esm/node_modules/@mongez/reinforcements/esm/object/unset.mjs.map +1 -0
  74. package/esm/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs +19 -0
  75. package/esm/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs.map +1 -0
  76. package/esm/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs +18 -0
  77. package/esm/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs.map +1 -0
  78. package/esm/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs +14 -0
  79. package/esm/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs.map +1 -0
  80. package/esm/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs +18 -0
  81. package/esm/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs.map +1 -0
  82. package/esm/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs +22 -0
  83. package/esm/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs.map +1 -0
  84. package/esm/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs +17 -0
  85. package/esm/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs.map +1 -0
  86. package/esm/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs +21 -0
  87. package/esm/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs.map +1 -0
  88. package/esm/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs +21 -0
  89. package/esm/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs.map +1 -0
  90. package/esm/node_modules/@mongez/reinforcements/esm/string/trim.mjs +20 -0
  91. package/esm/node_modules/@mongez/reinforcements/esm/string/trim.mjs.map +1 -0
  92. package/esm/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs +15 -0
  93. package/esm/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs.map +1 -0
  94. package/esm/node_modules/@mongez/reinforcements/esm/string/words.mjs +25 -0
  95. package/esm/node_modules/@mongez/reinforcements/esm/string/words.mjs.map +1 -0
  96. package/esm/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs +11 -0
  97. package/esm/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs.map +1 -0
  98. package/esm/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs +100 -0
  99. package/esm/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs.map +1 -0
  100. package/esm/node_modules/@mongez/reinforcements/esm/utils/tap.mjs +27 -0
  101. package/esm/node_modules/@mongez/reinforcements/esm/utils/tap.mjs.map +1 -0
  102. package/esm/node_modules/@mongez/supportive-is/esm/index.mjs +353 -0
  103. package/esm/node_modules/@mongez/supportive-is/esm/index.mjs.map +1 -0
  104. package/esm/node_modules/amqplib/channel_api.mjs +28 -0
  105. package/esm/node_modules/amqplib/channel_api.mjs.map +1 -0
  106. package/esm/node_modules/amqplib/lib/api_args.mjs +241 -0
  107. package/esm/node_modules/amqplib/lib/api_args.mjs.map +1 -0
  108. package/esm/node_modules/amqplib/lib/bitset.mjs +130 -0
  109. package/esm/node_modules/amqplib/lib/bitset.mjs.map +1 -0
  110. package/esm/node_modules/amqplib/lib/channel.mjs +302 -0
  111. package/esm/node_modules/amqplib/lib/channel.mjs.map +1 -0
  112. package/esm/node_modules/amqplib/lib/channel_model.mjs +206 -0
  113. package/esm/node_modules/amqplib/lib/channel_model.mjs.map +1 -0
  114. package/esm/node_modules/amqplib/lib/codec.mjs +273 -0
  115. package/esm/node_modules/amqplib/lib/codec.mjs.map +1 -0
  116. package/esm/node_modules/amqplib/lib/connect.mjs +143 -0
  117. package/esm/node_modules/amqplib/lib/connect.mjs.map +1 -0
  118. package/esm/node_modules/amqplib/lib/connection.mjs +416 -0
  119. package/esm/node_modules/amqplib/lib/connection.mjs.map +1 -0
  120. package/esm/node_modules/amqplib/lib/credentials.mjs +50 -0
  121. package/esm/node_modules/amqplib/lib/credentials.mjs.map +1 -0
  122. package/esm/node_modules/amqplib/lib/defs.mjs +4600 -0
  123. package/esm/node_modules/amqplib/lib/defs.mjs.map +1 -0
  124. package/esm/node_modules/amqplib/lib/error.mjs +29 -0
  125. package/esm/node_modules/amqplib/lib/error.mjs.map +1 -0
  126. package/esm/node_modules/amqplib/lib/format.mjs +28 -0
  127. package/esm/node_modules/amqplib/lib/format.mjs.map +1 -0
  128. package/esm/node_modules/amqplib/lib/frame.mjs +130 -0
  129. package/esm/node_modules/amqplib/lib/frame.mjs.map +1 -0
  130. package/esm/node_modules/amqplib/lib/heartbeat.mjs +40 -0
  131. package/esm/node_modules/amqplib/lib/heartbeat.mjs.map +1 -0
  132. package/esm/node_modules/amqplib/lib/mux.mjs +86 -0
  133. package/esm/node_modules/amqplib/lib/mux.mjs.map +1 -0
  134. package/esm/node_modules/amqplib/package.mjs +41 -0
  135. package/esm/node_modules/amqplib/package.mjs.map +1 -0
  136. package/esm/node_modules/buffer-more-ints/buffer-more-ints.mjs +360 -0
  137. package/esm/node_modules/buffer-more-ints/buffer-more-ints.mjs.map +1 -0
  138. package/esm/node_modules/dayjs/dayjs.min.mjs +305 -0
  139. package/esm/node_modules/dayjs/dayjs.min.mjs.map +1 -0
  140. package/esm/node_modules/querystringify/index.mjs +80 -0
  141. package/esm/node_modules/querystringify/index.mjs.map +1 -0
  142. package/esm/node_modules/requires-port/index.mjs +35 -0
  143. package/esm/node_modules/requires-port/index.mjs.map +1 -0
  144. package/esm/node_modules/url-parse/index.mjs +388 -0
  145. package/esm/node_modules/url-parse/index.mjs.map +1 -0
  146. package/esm/queue/load-herald.mjs +1 -1
  147. package/esm/seal/src/config.mjs +15 -0
  148. package/esm/seal/src/config.mjs.map +1 -0
  149. package/esm/seal/src/factory/index.mjs +4 -0
  150. package/esm/seal/src/factory/validate.mjs +34 -0
  151. package/esm/seal/src/factory/validate.mjs.map +1 -0
  152. package/esm/seal/src/factory/validators.mjs +132 -0
  153. package/esm/seal/src/factory/validators.mjs.map +1 -0
  154. package/esm/seal/src/helpers/date-helpers.mjs +24 -0
  155. package/esm/seal/src/helpers/date-helpers.mjs.map +1 -0
  156. package/esm/seal/src/helpers/get-field-value.mjs +46 -0
  157. package/esm/seal/src/helpers/get-field-value.mjs.map +1 -0
  158. package/esm/seal/src/helpers/index.mjs +6 -0
  159. package/esm/seal/src/helpers/is-empty-value.mjs +10 -0
  160. package/esm/seal/src/helpers/is-empty-value.mjs.map +1 -0
  161. package/esm/seal/src/helpers/path-helpers.mjs +12 -0
  162. package/esm/seal/src/helpers/path-helpers.mjs.map +1 -0
  163. package/esm/seal/src/helpers/validation-helpers.mjs +72 -0
  164. package/esm/seal/src/helpers/validation-helpers.mjs.map +1 -0
  165. package/esm/seal/src/index.mjs +87 -0
  166. package/esm/seal/src/mutators/array-mutators.mjs +32 -0
  167. package/esm/seal/src/mutators/array-mutators.mjs.map +1 -0
  168. package/esm/seal/src/mutators/date-mutators.mjs +94 -0
  169. package/esm/seal/src/mutators/date-mutators.mjs.map +1 -0
  170. package/esm/seal/src/mutators/index.mjs +8 -0
  171. package/esm/seal/src/mutators/number-mutators.mjs +52 -0
  172. package/esm/seal/src/mutators/number-mutators.mjs.map +1 -0
  173. package/esm/seal/src/mutators/object-mutators.mjs +30 -0
  174. package/esm/seal/src/mutators/object-mutators.mjs.map +1 -0
  175. package/esm/seal/src/mutators/scalar-mutators.mjs +9 -0
  176. package/esm/seal/src/mutators/scalar-mutators.mjs.map +1 -0
  177. package/esm/seal/src/mutators/string-mutators.mjs +186 -0
  178. package/esm/seal/src/mutators/string-mutators.mjs.map +1 -0
  179. package/esm/seal/src/rules/array/array-rules.mjs +41 -0
  180. package/esm/seal/src/rules/array/array-rules.mjs.map +1 -0
  181. package/esm/seal/src/rules/array/index.mjs +3 -0
  182. package/esm/seal/src/rules/color/color-rules.mjs +104 -0
  183. package/esm/seal/src/rules/color/color-rules.mjs.map +1 -0
  184. package/esm/seal/src/rules/color/index.mjs +3 -0
  185. package/esm/seal/src/rules/common/enum.mjs +77 -0
  186. package/esm/seal/src/rules/common/enum.mjs.map +1 -0
  187. package/esm/seal/src/rules/common/equals-field-rules.mjs +42 -0
  188. package/esm/seal/src/rules/common/equals-field-rules.mjs.map +1 -0
  189. package/esm/seal/src/rules/common/index.mjs +8 -0
  190. package/esm/seal/src/rules/common/instanceof.mjs +23 -0
  191. package/esm/seal/src/rules/common/instanceof.mjs.map +1 -0
  192. package/esm/seal/src/rules/common/literal.mjs +31 -0
  193. package/esm/seal/src/rules/common/literal.mjs.map +1 -0
  194. package/esm/seal/src/rules/common/type-rules.mjs +97 -0
  195. package/esm/seal/src/rules/common/type-rules.mjs.map +1 -0
  196. package/esm/seal/src/rules/common/unknown-key.mjs +25 -0
  197. package/esm/seal/src/rules/common/unknown-key.mjs.map +1 -0
  198. package/esm/seal/src/rules/conditional/forbidden-if-rules.mjs +116 -0
  199. package/esm/seal/src/rules/conditional/forbidden-if-rules.mjs.map +1 -0
  200. package/esm/seal/src/rules/conditional/index.mjs +12 -0
  201. package/esm/seal/src/rules/conditional/present-if-rules.mjs +97 -0
  202. package/esm/seal/src/rules/conditional/present-if-rules.mjs.map +1 -0
  203. package/esm/seal/src/rules/conditional/present-unless-rules.mjs +30 -0
  204. package/esm/seal/src/rules/conditional/present-unless-rules.mjs.map +1 -0
  205. package/esm/seal/src/rules/conditional/present-with-rules.mjs +76 -0
  206. package/esm/seal/src/rules/conditional/present-with-rules.mjs.map +1 -0
  207. package/esm/seal/src/rules/conditional/present-without-rules.mjs +76 -0
  208. package/esm/seal/src/rules/conditional/present-without-rules.mjs.map +1 -0
  209. package/esm/seal/src/rules/conditional/required-if-rules.mjs +204 -0
  210. package/esm/seal/src/rules/conditional/required-if-rules.mjs.map +1 -0
  211. package/esm/seal/src/rules/conditional/required-unless-rules.mjs +31 -0
  212. package/esm/seal/src/rules/conditional/required-unless-rules.mjs.map +1 -0
  213. package/esm/seal/src/rules/conditional/required-when-rule.mjs +32 -0
  214. package/esm/seal/src/rules/conditional/required-when-rule.mjs.map +1 -0
  215. package/esm/seal/src/rules/conditional/required-with-rules.mjs +67 -0
  216. package/esm/seal/src/rules/conditional/required-with-rules.mjs.map +1 -0
  217. package/esm/seal/src/rules/conditional/required-without-rules.mjs +67 -0
  218. package/esm/seal/src/rules/conditional/required-without-rules.mjs.map +1 -0
  219. package/esm/seal/src/rules/core/equal.mjs +22 -0
  220. package/esm/seal/src/rules/core/equal.mjs.map +1 -0
  221. package/esm/seal/src/rules/core/forbidden.mjs +20 -0
  222. package/esm/seal/src/rules/core/forbidden.mjs.map +1 -0
  223. package/esm/seal/src/rules/core/index.mjs +7 -0
  224. package/esm/seal/src/rules/core/required.mjs +36 -0
  225. package/esm/seal/src/rules/core/required.mjs.map +1 -0
  226. package/esm/seal/src/rules/core/union.mjs +30 -0
  227. package/esm/seal/src/rules/core/union.mjs.map +1 -0
  228. package/esm/seal/src/rules/core/when.mjs +37 -0
  229. package/esm/seal/src/rules/core/when.mjs.map +1 -0
  230. package/esm/seal/src/rules/date/date-comparison-rules.mjs +78 -0
  231. package/esm/seal/src/rules/date/date-comparison-rules.mjs.map +1 -0
  232. package/esm/seal/src/rules/date/date-day-rules.mjs +49 -0
  233. package/esm/seal/src/rules/date/date-day-rules.mjs.map +1 -0
  234. package/esm/seal/src/rules/date/date-field-comparison-rules.mjs +82 -0
  235. package/esm/seal/src/rules/date/date-field-comparison-rules.mjs.map +1 -0
  236. package/esm/seal/src/rules/date/date-period-rules.mjs +399 -0
  237. package/esm/seal/src/rules/date/date-period-rules.mjs.map +1 -0
  238. package/esm/seal/src/rules/date/date-relative-rules.mjs +55 -0
  239. package/esm/seal/src/rules/date/date-relative-rules.mjs.map +1 -0
  240. package/esm/seal/src/rules/date/date-special-rules.mjs +58 -0
  241. package/esm/seal/src/rules/date/date-special-rules.mjs.map +1 -0
  242. package/esm/seal/src/rules/date/date.mjs +235 -0
  243. package/esm/seal/src/rules/date/date.mjs.map +1 -0
  244. package/esm/seal/src/rules/date/index.mjs +9 -0
  245. package/esm/seal/src/rules/file/dimensions.mjs +3 -0
  246. package/esm/seal/src/rules/file/file-size.mjs +3 -0
  247. package/esm/seal/src/rules/file/index.mjs +4 -0
  248. package/esm/seal/src/rules/index.mjs +54 -0
  249. package/esm/seal/src/rules/length/index.mjs +3 -0
  250. package/esm/seal/src/rules/length/length-rules.mjs +98 -0
  251. package/esm/seal/src/rules/length/length-rules.mjs.map +1 -0
  252. package/esm/seal/src/rules/number/index.mjs +3 -0
  253. package/esm/seal/src/rules/number/number-rules.mjs +197 -0
  254. package/esm/seal/src/rules/number/number-rules.mjs.map +1 -0
  255. package/esm/seal/src/rules/scalar/accepted-rule.mjs +116 -0
  256. package/esm/seal/src/rules/scalar/accepted-rule.mjs.map +1 -0
  257. package/esm/seal/src/rules/scalar/declined-rule.mjs +116 -0
  258. package/esm/seal/src/rules/scalar/declined-rule.mjs.map +1 -0
  259. package/esm/seal/src/rules/scalar/index.mjs +4 -0
  260. package/esm/seal/src/rules/string/alpha.mjs +41 -0
  261. package/esm/seal/src/rules/string/alpha.mjs.map +1 -0
  262. package/esm/seal/src/rules/string/credit-card.mjs +32 -0
  263. package/esm/seal/src/rules/string/credit-card.mjs.map +1 -0
  264. package/esm/seal/src/rules/string/email.mjs +20 -0
  265. package/esm/seal/src/rules/string/email.mjs.map +1 -0
  266. package/esm/seal/src/rules/string/id-formats.mjs +104 -0
  267. package/esm/seal/src/rules/string/id-formats.mjs.map +1 -0
  268. package/esm/seal/src/rules/string/index.mjs +13 -0
  269. package/esm/seal/src/rules/string/ip.mjs +66 -0
  270. package/esm/seal/src/rules/string/ip.mjs.map +1 -0
  271. package/esm/seal/src/rules/string/matches.mjs +4 -0
  272. package/esm/seal/src/rules/string/pattern.mjs +20 -0
  273. package/esm/seal/src/rules/string/pattern.mjs.map +1 -0
  274. package/esm/seal/src/rules/string/string-comparison.mjs +56 -0
  275. package/esm/seal/src/rules/string/string-comparison.mjs.map +1 -0
  276. package/esm/seal/src/rules/string/strong-password-rule.mjs +31 -0
  277. package/esm/seal/src/rules/string/strong-password-rule.mjs.map +1 -0
  278. package/esm/seal/src/rules/string/url.mjs +23 -0
  279. package/esm/seal/src/rules/string/url.mjs.map +1 -0
  280. package/esm/seal/src/rules/string/without-whitespace.mjs +19 -0
  281. package/esm/seal/src/rules/string/without-whitespace.mjs.map +1 -0
  282. package/esm/seal/src/standard-schema/json-schema.mjs +81 -0
  283. package/esm/seal/src/standard-schema/json-schema.mjs.map +1 -0
  284. package/esm/seal/src/standard-schema/map-result.mjs +26 -0
  285. package/esm/seal/src/standard-schema/map-result.mjs.map +1 -0
  286. package/esm/seal/src/types/date-types.mjs +17 -0
  287. package/esm/seal/src/types/date-types.mjs.map +1 -0
  288. package/esm/seal/src/validators/any-validator.mjs +38 -0
  289. package/esm/seal/src/validators/any-validator.mjs.map +1 -0
  290. package/esm/seal/src/validators/array-validator.mjs +177 -0
  291. package/esm/seal/src/validators/array-validator.mjs.map +1 -0
  292. package/esm/seal/src/validators/base-validator.mjs +691 -0
  293. package/esm/seal/src/validators/base-validator.mjs.map +1 -0
  294. package/esm/seal/src/validators/boolean-validator.mjs +126 -0
  295. package/esm/seal/src/validators/boolean-validator.mjs.map +1 -0
  296. package/esm/seal/src/validators/computed-validator.mjs +118 -0
  297. package/esm/seal/src/validators/computed-validator.mjs.map +1 -0
  298. package/esm/seal/src/validators/date-validator.mjs +639 -0
  299. package/esm/seal/src/validators/date-validator.mjs.map +1 -0
  300. package/esm/seal/src/validators/discriminated-union-validator.mjs +129 -0
  301. package/esm/seal/src/validators/discriminated-union-validator.mjs.map +1 -0
  302. package/esm/seal/src/validators/float-validator.mjs +18 -0
  303. package/esm/seal/src/validators/float-validator.mjs.map +1 -0
  304. package/esm/seal/src/validators/index.mjs +28 -0
  305. package/esm/seal/src/validators/instanceof-validator.mjs +64 -0
  306. package/esm/seal/src/validators/instanceof-validator.mjs.map +1 -0
  307. package/esm/seal/src/validators/int-validator.mjs +30 -0
  308. package/esm/seal/src/validators/int-validator.mjs.map +1 -0
  309. package/esm/seal/src/validators/lazy-validator.mjs +87 -0
  310. package/esm/seal/src/validators/lazy-validator.mjs.map +1 -0
  311. package/esm/seal/src/validators/literal-validator.mjs +71 -0
  312. package/esm/seal/src/validators/literal-validator.mjs.map +1 -0
  313. package/esm/seal/src/validators/managed-validator.mjs +39 -0
  314. package/esm/seal/src/validators/managed-validator.mjs.map +1 -0
  315. package/esm/seal/src/validators/methods/equality-conditional-methods.mjs +129 -0
  316. package/esm/seal/src/validators/methods/equality-conditional-methods.mjs.map +1 -0
  317. package/esm/seal/src/validators/methods/forbidden-methods.mjs +131 -0
  318. package/esm/seal/src/validators/methods/forbidden-methods.mjs.map +1 -0
  319. package/esm/seal/src/validators/methods/present-methods.mjs +235 -0
  320. package/esm/seal/src/validators/methods/present-methods.mjs.map +1 -0
  321. package/esm/seal/src/validators/methods/required-methods.mjs +347 -0
  322. package/esm/seal/src/validators/methods/required-methods.mjs.map +1 -0
  323. package/esm/seal/src/validators/number-validator.mjs +310 -0
  324. package/esm/seal/src/validators/number-validator.mjs.map +1 -0
  325. package/esm/seal/src/validators/numeric-validator.mjs +27 -0
  326. package/esm/seal/src/validators/numeric-validator.mjs.map +1 -0
  327. package/esm/seal/src/validators/object-validator.mjs +442 -0
  328. package/esm/seal/src/validators/object-validator.mjs.map +1 -0
  329. package/esm/seal/src/validators/primitive-validator.mjs +89 -0
  330. package/esm/seal/src/validators/primitive-validator.mjs.map +1 -0
  331. package/esm/seal/src/validators/record-validator.mjs +112 -0
  332. package/esm/seal/src/validators/record-validator.mjs.map +1 -0
  333. package/esm/seal/src/validators/scalar-validator.mjs +172 -0
  334. package/esm/seal/src/validators/scalar-validator.mjs.map +1 -0
  335. package/esm/seal/src/validators/string-validator.mjs +459 -0
  336. package/esm/seal/src/validators/string-validator.mjs.map +1 -0
  337. package/esm/seal/src/validators/tuple-validator.mjs +134 -0
  338. package/esm/seal/src/validators/tuple-validator.mjs.map +1 -0
  339. package/esm/seal/src/validators/union-validator.mjs +66 -0
  340. package/esm/seal/src/validators/union-validator.mjs.map +1 -0
  341. package/llms-full.txt +5 -1
  342. package/package.json +5 -5
  343. package/skills/send-ad-hoc/SKILL.md +1 -1
  344. package/skills/use-in-app/SKILL.md +4 -0
@@ -0,0 +1,310 @@
1
+ import { applyNullable, getRuleOptions } from "../standard-schema/json-schema.mjs";
2
+ import { absMutator, ceilMutator, floorMutator, roundMutator, toFixedMutator } from "../mutators/number-mutators.mjs";
3
+ import "../mutators/index.mjs";
4
+ import { betweenNumbersRule, evenRule, greaterThanRule, lessThanRule, maxRule, minRule, moduloRule, negativeRule, oddRule, positiveRule } from "../rules/number/number-rules.mjs";
5
+ import { lengthRule, maxLengthRule, minLengthRule } from "../rules/length/length-rules.mjs";
6
+ import { numberRule } from "../rules/common/type-rules.mjs";
7
+ import "../rules/index.mjs";
8
+ import { PrimitiveValidator } from "./primitive-validator.mjs";
9
+
10
+ //#region ../seal/src/validators/number-validator.ts
11
+ /**
12
+ * Number validator class - base for Int and Float validators
13
+ */
14
+ var NumberValidator = class extends PrimitiveValidator {
15
+ constructor(errorMessage) {
16
+ super();
17
+ this.addMutableRule(numberRule, errorMessage);
18
+ }
19
+ /**
20
+ * Check if value is a number type
21
+ */
22
+ matchesType(value) {
23
+ return typeof value === "number" && !isNaN(value);
24
+ }
25
+ /**
26
+ * Value must be equal or higher than the given number or field
27
+ * Smart detection: number or field name
28
+ *
29
+ * @category Validation Rule
30
+ */
31
+ min(min, errorMessage) {
32
+ return this.addRule(minRule, errorMessage, {
33
+ min,
34
+ scope: "global"
35
+ });
36
+ }
37
+ /**
38
+ * Value must be equal or less than the given number or field
39
+ * Smart detection: number or field name
40
+ *
41
+ * @category Validation Rule
42
+ */
43
+ max(max, errorMessage) {
44
+ return this.addRule(maxRule, errorMessage, {
45
+ max,
46
+ scope: "global"
47
+ });
48
+ }
49
+ /**
50
+ * Value must be >= sibling field value
51
+ * @category Validation Rule
52
+ */
53
+ minSibling(field, errorMessage) {
54
+ return this.addRule(minRule, errorMessage, {
55
+ min: field,
56
+ scope: "sibling"
57
+ });
58
+ }
59
+ /**
60
+ * Value must be <= sibling field value
61
+ * @category Validation Rule
62
+ */
63
+ maxSibling(field, errorMessage) {
64
+ return this.addRule(maxRule, errorMessage, {
65
+ max: field,
66
+ scope: "sibling"
67
+ });
68
+ }
69
+ /**
70
+ * Value must be strictly greater than the given number or field (>)
71
+ * Smart detection: number or field name
72
+ *
73
+ * @category Validation Rule
74
+ */
75
+ greaterThan(value, errorMessage) {
76
+ return this.addRule(greaterThanRule, errorMessage, {
77
+ value,
78
+ scope: "global"
79
+ });
80
+ }
81
+ /**
82
+ * Value must be strictly less than the given number or field (<)
83
+ * Smart detection: number or field name
84
+ *
85
+ * @category Validation Rule
86
+ */
87
+ lessThan(value, errorMessage) {
88
+ return this.addRule(lessThanRule, errorMessage, {
89
+ value,
90
+ scope: "global"
91
+ });
92
+ }
93
+ /**
94
+ * Alias for greaterThan() - shorter syntax
95
+ * @category Validation Rule
96
+ */
97
+ gt(value, errorMessage) {
98
+ return this.greaterThan(value, errorMessage);
99
+ }
100
+ /**
101
+ * Alias for lessThan() - shorter syntax
102
+ * @category Validation Rule
103
+ */
104
+ lt(value, errorMessage) {
105
+ return this.lessThan(value, errorMessage);
106
+ }
107
+ /**
108
+ * Value must be > sibling field value
109
+ * @category Validation Rule
110
+ */
111
+ greaterThanSibling(field, errorMessage) {
112
+ return this.addRule(greaterThanRule, errorMessage, {
113
+ value: field,
114
+ scope: "sibling"
115
+ });
116
+ }
117
+ /**
118
+ * Alias for greaterThanSibling() - shorter syntax
119
+ * @category Validation Rule
120
+ */
121
+ gtSibling(field, errorMessage) {
122
+ return this.greaterThanSibling(field, errorMessage);
123
+ }
124
+ /**
125
+ * Value must be < sibling field value
126
+ * @category Validation Rule
127
+ */
128
+ lessThanSibling(field, errorMessage) {
129
+ return this.addRule(lessThanRule, errorMessage, {
130
+ value: field,
131
+ scope: "sibling"
132
+ });
133
+ }
134
+ /**
135
+ * Alias for lessThanSibling() - shorter syntax
136
+ * @category Validation Rule
137
+ */
138
+ ltSibling(field, errorMessage) {
139
+ return this.lessThanSibling(field, errorMessage);
140
+ }
141
+ /** Value must be a modulo of the given number */
142
+ modulo(value, errorMessage) {
143
+ return this.addRule(moduloRule, errorMessage, { value });
144
+ }
145
+ /**
146
+ * Alias for modulo() - Value must be divisible by the given number
147
+ */
148
+ divisibleBy(value, errorMessage) {
149
+ return this.modulo(value, errorMessage);
150
+ }
151
+ /**
152
+ * Alias for modulo() - Value must be a multiple of the given number
153
+ */
154
+ multipleOf(value, errorMessage) {
155
+ return this.modulo(value, errorMessage);
156
+ }
157
+ /**
158
+ * Alias for modulo() - Value must be a multiple of the given number
159
+ */
160
+ modulusOf(value, errorMessage) {
161
+ return this.modulo(value, errorMessage);
162
+ }
163
+ /** Accept only numbers higher than 0 */
164
+ positive(errorMessage) {
165
+ return this.addRule(positiveRule, errorMessage);
166
+ }
167
+ /** Accept only negative numbers */
168
+ negative(errorMessage) {
169
+ return this.addRule(negativeRule, errorMessage);
170
+ }
171
+ /** Accept only odd numbers */
172
+ odd(errorMessage) {
173
+ return this.addRule(oddRule, errorMessage);
174
+ }
175
+ /** Accept only even numbers */
176
+ even(errorMessage) {
177
+ return this.addRule(evenRule, errorMessage);
178
+ }
179
+ /**
180
+ * Accept only numbers between the given two numbers or fields (Inclusive)
181
+ * Smart detection: number or field name
182
+ *
183
+ * @category Validation Rule
184
+ */
185
+ between(min, max, errorMessage) {
186
+ return this.addRule(betweenNumbersRule, errorMessage, {
187
+ min,
188
+ max,
189
+ scope: "global"
190
+ });
191
+ }
192
+ /**
193
+ * Value must be between sibling field values
194
+ * @category Validation Rule
195
+ */
196
+ betweenSibling(minField, maxField, errorMessage) {
197
+ return this.addRule(betweenNumbersRule, errorMessage, {
198
+ min: minField,
199
+ max: maxField,
200
+ scope: "sibling"
201
+ });
202
+ }
203
+ /**
204
+ * Value (as a string) must be exactly this many characters.
205
+ * Useful for fixed-format numeric codes (e.g. 4-digit PIN).
206
+ */
207
+ length(length, errorMessage) {
208
+ return this.addRule(lengthRule, errorMessage, { length });
209
+ }
210
+ /** Value (as string representation) length must be ≥ min */
211
+ minLength(length, errorMessage) {
212
+ return this.addRule(minLengthRule, errorMessage, { minLength: length });
213
+ }
214
+ /** Value (as string representation) length must be ≤ max */
215
+ maxLength(length, errorMessage) {
216
+ return this.addRule(maxLengthRule, errorMessage, { maxLength: length });
217
+ }
218
+ /**
219
+ * Convert value to its absolute value
220
+ */
221
+ abs() {
222
+ return this.addMutator(absMutator);
223
+ }
224
+ /**
225
+ * Round value up to the nearest integer
226
+ */
227
+ ceil() {
228
+ return this.addMutator(ceilMutator);
229
+ }
230
+ /**
231
+ * Round value down to the nearest integer
232
+ */
233
+ floor() {
234
+ return this.addMutator(floorMutator);
235
+ }
236
+ /**
237
+ * Round value to the nearest integer or specified decimals
238
+ */
239
+ round(decimals = 0) {
240
+ return this.addMutator(roundMutator, { decimals });
241
+ }
242
+ /**
243
+ * Round to a fixed number of decimal places, keeping the value a **number**.
244
+ *
245
+ * `v.number().toFixed(2)` on `3.14159` yields `3.14`, not `"3.14"` — a number
246
+ * schema has to output a number, or its own type rule rejects the result.
247
+ * Format to a fixed-point *string* at the presentation edge instead.
248
+ *
249
+ * @example
250
+ * v.number().toFixed(2) // 3.14159 → 3.14
251
+ */
252
+ toFixed(decimals = 2) {
253
+ return this.addMutator(toFixedMutator, { decimals });
254
+ }
255
+ /**
256
+ * @inheritdoc
257
+ *
258
+ * Returns `{ type: "number" }` with numeric constraint keywords.
259
+ * IntValidator overrides `type` to `"integer"`.
260
+ *
261
+ * @note Sibling-scoped rules (minSibling, maxSibling, etc.) are not representable
262
+ * in JSON Schema and are silently omitted.
263
+ *
264
+ * @example
265
+ * ```ts
266
+ * v.number().min(0).max(100).toJsonSchema("draft-2020-12")
267
+ * // → { type: "number", minimum: 0, maximum: 100 }
268
+ * ```
269
+ */
270
+ toJsonSchema(target = "draft-2020-12") {
271
+ return this.buildNumberJsonSchema("number", target);
272
+ }
273
+ /**
274
+ * Shared logic for number/integer JSON Schema generation.
275
+ * Called by NumberValidator.toJsonSchema() (→ type: "number")
276
+ * and IntValidator.toJsonSchema() (→ type: "integer").
277
+ */
278
+ buildNumberJsonSchema(type, target) {
279
+ const schema = { type };
280
+ const minOpts = getRuleOptions(this.rules, "min");
281
+ if (minOpts?.min !== void 0 && typeof minOpts.min === "number") schema.minimum = minOpts.min;
282
+ const maxOpts = getRuleOptions(this.rules, "max");
283
+ if (maxOpts?.max !== void 0 && typeof maxOpts.max === "number") schema.maximum = maxOpts.max;
284
+ const betweenOpts = getRuleOptions(this.rules, "betweenNumbers");
285
+ if (betweenOpts) {
286
+ if (typeof betweenOpts.min === "number") schema.minimum = betweenOpts.min;
287
+ if (typeof betweenOpts.max === "number") schema.maximum = betweenOpts.max;
288
+ }
289
+ const gtOpts = getRuleOptions(this.rules, "greaterThan");
290
+ if (gtOpts?.value !== void 0 && typeof gtOpts.value === "number") if (target === "draft-07") {
291
+ schema.minimum = gtOpts.value;
292
+ schema.exclusiveMinimum = true;
293
+ } else schema.exclusiveMinimum = gtOpts.value;
294
+ const ltOpts = getRuleOptions(this.rules, "lessThan");
295
+ if (ltOpts?.value !== void 0 && typeof ltOpts.value === "number") if (target === "draft-07") {
296
+ schema.maximum = ltOpts.value;
297
+ schema.exclusiveMaximum = true;
298
+ } else schema.exclusiveMaximum = ltOpts.value;
299
+ const moduloOpts = getRuleOptions(this.rules, "modulo");
300
+ if (moduloOpts?.value !== void 0 && typeof moduloOpts.value === "number") schema.multipleOf = moduloOpts.value;
301
+ const inOpts = getRuleOptions(this.rules, "in");
302
+ if (inOpts?.values && Array.isArray(inOpts.values)) schema.enum = inOpts.values;
303
+ if (this.isNullable) applyNullable(schema, target);
304
+ return schema;
305
+ }
306
+ };
307
+
308
+ //#endregion
309
+ export { NumberValidator };
310
+ //# sourceMappingURL=number-validator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-validator.mjs","names":[],"sources":["../../../../../../../../../seal/src/validators/number-validator.ts"],"sourcesContent":["import { absMutator, ceilMutator, floorMutator, roundMutator, toFixedMutator } from \"../mutators\";\r\nimport {\r\n betweenNumbersRule,\r\n evenRule,\r\n greaterThanRule,\r\n lengthRule,\r\n lessThanRule,\r\n maxLengthRule,\r\n maxRule,\r\n minLengthRule,\r\n minRule,\r\n moduloRule,\r\n negativeRule,\r\n numberRule,\r\n oddRule,\r\n positiveRule,\r\n} from \"../rules\";\r\nimport { PrimitiveValidator } from \"./primitive-validator\";\r\nimport { applyNullable, getRuleOptions } from \"../standard-schema/json-schema\";\r\nimport type { JsonSchemaResult, JsonSchemaTarget } from \"../standard-schema/json-schema\";\r\n\r\n/**\r\n * Number validator class - base for Int and Float validators\r\n */\r\nexport class NumberValidator extends PrimitiveValidator {\r\n public constructor(errorMessage?: string) {\r\n super();\r\n this.addMutableRule(numberRule, errorMessage);\r\n }\r\n\r\n /**\r\n * Check if value is a number type\r\n */\r\n public matchesType(value: any): boolean {\r\n return typeof value === \"number\" && !isNaN(value);\r\n }\r\n\r\n /**\r\n * Value must be equal or higher than the given number or field\r\n * Smart detection: number or field name\r\n *\r\n * @category Validation Rule\r\n */\r\n public min(min: number | string, errorMessage?: string) {\r\n return this.addRule(minRule, errorMessage, { min, scope: \"global\" });\r\n }\r\n\r\n /**\r\n * Value must be equal or less than the given number or field\r\n * Smart detection: number or field name\r\n *\r\n * @category Validation Rule\r\n */\r\n public max(max: number | string, errorMessage?: string) {\r\n return this.addRule(maxRule, errorMessage, { max, scope: \"global\" });\r\n }\r\n\r\n /**\r\n * Value must be >= sibling field value\r\n * @category Validation Rule\r\n */\r\n public minSibling(field: string, errorMessage?: string) {\r\n return this.addRule(minRule, errorMessage, { min: field, scope: \"sibling\" });\r\n }\r\n\r\n /**\r\n * Value must be <= sibling field value\r\n * @category Validation Rule\r\n */\r\n public maxSibling(field: string, errorMessage?: string) {\r\n return this.addRule(maxRule, errorMessage, { max: field, scope: \"sibling\" });\r\n }\r\n\r\n /**\r\n * Value must be strictly greater than the given number or field (>)\r\n * Smart detection: number or field name\r\n *\r\n * @category Validation Rule\r\n */\r\n public greaterThan(value: number | string, errorMessage?: string) {\r\n return this.addRule(greaterThanRule, errorMessage, {\r\n value,\r\n scope: \"global\",\r\n });\r\n }\r\n\r\n /**\r\n * Value must be strictly less than the given number or field (<)\r\n * Smart detection: number or field name\r\n *\r\n * @category Validation Rule\r\n */\r\n public lessThan(value: number | string, errorMessage?: string) {\r\n return this.addRule(lessThanRule, errorMessage, {\r\n value,\r\n scope: \"global\",\r\n });\r\n }\r\n\r\n /**\r\n * Alias for greaterThan() - shorter syntax\r\n * @category Validation Rule\r\n */\r\n public gt(value: number | string, errorMessage?: string) {\r\n return this.greaterThan(value, errorMessage);\r\n }\r\n\r\n /**\r\n * Alias for lessThan() - shorter syntax\r\n * @category Validation Rule\r\n */\r\n public lt(value: number | string, errorMessage?: string) {\r\n return this.lessThan(value, errorMessage);\r\n }\r\n\r\n /**\r\n * Value must be > sibling field value\r\n * @category Validation Rule\r\n */\r\n public greaterThanSibling(field: string, errorMessage?: string) {\r\n return this.addRule(greaterThanRule, errorMessage, {\r\n value: field,\r\n scope: \"sibling\",\r\n });\r\n }\r\n\r\n /**\r\n * Alias for greaterThanSibling() - shorter syntax\r\n * @category Validation Rule\r\n */\r\n public gtSibling(field: string, errorMessage?: string) {\r\n return this.greaterThanSibling(field, errorMessage);\r\n }\r\n\r\n /**\r\n * Value must be < sibling field value\r\n * @category Validation Rule\r\n */\r\n public lessThanSibling(field: string, errorMessage?: string) {\r\n return this.addRule(lessThanRule, errorMessage, {\r\n value: field,\r\n scope: \"sibling\",\r\n });\r\n }\r\n\r\n /**\r\n * Alias for lessThanSibling() - shorter syntax\r\n * @category Validation Rule\r\n */\r\n public ltSibling(field: string, errorMessage?: string) {\r\n return this.lessThanSibling(field, errorMessage);\r\n }\r\n\r\n /** Value must be a modulo of the given number */\r\n public modulo(value: number, errorMessage?: string) {\r\n return this.addRule(moduloRule, errorMessage, { value });\r\n }\r\n\r\n /**\r\n * Alias for modulo() - Value must be divisible by the given number\r\n */\r\n public divisibleBy(value: number, errorMessage?: string) {\r\n return this.modulo(value, errorMessage);\r\n }\r\n\r\n /**\r\n * Alias for modulo() - Value must be a multiple of the given number\r\n */\r\n public multipleOf(value: number, errorMessage?: string) {\r\n return this.modulo(value, errorMessage);\r\n }\r\n\r\n /**\r\n * Alias for modulo() - Value must be a multiple of the given number\r\n */\r\n public modulusOf(value: number, errorMessage?: string) {\r\n return this.modulo(value, errorMessage);\r\n }\r\n\r\n /** Accept only numbers higher than 0 */\r\n public positive(errorMessage?: string) {\r\n return this.addRule(positiveRule, errorMessage);\r\n }\r\n\r\n /** Accept only negative numbers */\r\n public negative(errorMessage?: string) {\r\n return this.addRule(negativeRule, errorMessage);\r\n }\r\n\r\n /** Accept only odd numbers */\r\n public odd(errorMessage?: string) {\r\n return this.addRule(oddRule, errorMessage);\r\n }\r\n\r\n /** Accept only even numbers */\r\n public even(errorMessage?: string) {\r\n return this.addRule(evenRule, errorMessage);\r\n }\r\n\r\n /**\r\n * Accept only numbers between the given two numbers or fields (Inclusive)\r\n * Smart detection: number or field name\r\n *\r\n * @category Validation Rule\r\n */\r\n public between(min: number | string, max: number | string, errorMessage?: string) {\r\n return this.addRule(betweenNumbersRule, errorMessage, {\r\n min,\r\n max,\r\n scope: \"global\",\r\n });\r\n }\r\n\r\n /**\r\n * Value must be between sibling field values\r\n * @category Validation Rule\r\n */\r\n public betweenSibling(minField: string, maxField: string, errorMessage?: string) {\r\n return this.addRule(betweenNumbersRule, errorMessage, {\r\n min: minField,\r\n max: maxField,\r\n scope: \"sibling\",\r\n });\r\n }\r\n\r\n // Enum and value membership methods are inherited from PrimitiveValidator.\r\n\r\n /**\r\n * Value (as a string) must be exactly this many characters.\r\n * Useful for fixed-format numeric codes (e.g. 4-digit PIN).\r\n */\r\n public length(length: number, errorMessage?: string) {\r\n return this.addRule(lengthRule, errorMessage, { length });\r\n }\r\n\r\n /** Value (as string representation) length must be ≥ min */\r\n public minLength(length: number, errorMessage?: string) {\r\n return this.addRule(minLengthRule, errorMessage, { minLength: length });\r\n }\r\n\r\n /** Value (as string representation) length must be ≤ max */\r\n public maxLength(length: number, errorMessage?: string) {\r\n return this.addRule(maxLengthRule, errorMessage, { maxLength: length });\r\n }\r\n\r\n // Mutators\r\n\r\n /**\r\n * Convert value to its absolute value\r\n */\r\n public abs() {\r\n return this.addMutator(absMutator);\r\n }\r\n\r\n /**\r\n * Round value up to the nearest integer\r\n */\r\n public ceil() {\r\n return this.addMutator(ceilMutator);\r\n }\r\n\r\n /**\r\n * Round value down to the nearest integer\r\n */\r\n public floor() {\r\n return this.addMutator(floorMutator);\r\n }\r\n\r\n /**\r\n * Round value to the nearest integer or specified decimals\r\n */\r\n public round(decimals = 0) {\r\n return this.addMutator(roundMutator, { decimals });\r\n }\r\n\r\n /**\r\n * Round to a fixed number of decimal places, keeping the value a **number**.\r\n *\r\n * `v.number().toFixed(2)` on `3.14159` yields `3.14`, not `\"3.14\"` — a number\r\n * schema has to output a number, or its own type rule rejects the result.\r\n * Format to a fixed-point *string* at the presentation edge instead.\r\n *\r\n * @example\r\n * v.number().toFixed(2) // 3.14159 → 3.14\r\n */\r\n public toFixed(decimals = 2) {\r\n return this.addMutator(toFixedMutator, { decimals });\r\n }\r\n\r\n /**\r\n * @inheritdoc\r\n *\r\n * Returns `{ type: \"number\" }` with numeric constraint keywords.\r\n * IntValidator overrides `type` to `\"integer\"`.\r\n *\r\n * @note Sibling-scoped rules (minSibling, maxSibling, etc.) are not representable\r\n * in JSON Schema and are silently omitted.\r\n *\r\n * @example\r\n * ```ts\r\n * v.number().min(0).max(100).toJsonSchema(\"draft-2020-12\")\r\n * // → { type: \"number\", minimum: 0, maximum: 100 }\r\n * ```\r\n */\r\n public override toJsonSchema(target: JsonSchemaTarget = \"draft-2020-12\"): JsonSchemaResult {\r\n return this.buildNumberJsonSchema(\"number\", target);\r\n }\r\n\r\n /**\r\n * Shared logic for number/integer JSON Schema generation.\r\n * Called by NumberValidator.toJsonSchema() (→ type: \"number\")\r\n * and IntValidator.toJsonSchema() (→ type: \"integer\").\r\n */\r\n protected buildNumberJsonSchema(\r\n type: \"number\" | \"integer\",\r\n target: JsonSchemaTarget,\r\n ): JsonSchemaResult {\r\n const schema: JsonSchemaResult = { type };\r\n\r\n // minimum (inclusive)\r\n const minOpts = getRuleOptions(this.rules, \"min\");\r\n if (minOpts?.min !== undefined && typeof minOpts.min === \"number\") {\r\n schema.minimum = minOpts.min;\r\n }\r\n\r\n // maximum (inclusive)\r\n const maxOpts = getRuleOptions(this.rules, \"max\");\r\n if (maxOpts?.max !== undefined && typeof maxOpts.max === \"number\") {\r\n schema.maximum = maxOpts.max;\r\n }\r\n\r\n // between (inclusive range)\r\n const betweenOpts = getRuleOptions(this.rules, \"betweenNumbers\");\r\n if (betweenOpts) {\r\n if (typeof betweenOpts.min === \"number\") schema.minimum = betweenOpts.min;\r\n if (typeof betweenOpts.max === \"number\") schema.maximum = betweenOpts.max;\r\n }\r\n\r\n // greaterThan (>) → exclusiveMinimum\r\n const gtOpts = getRuleOptions(this.rules, \"greaterThan\");\r\n if (gtOpts?.value !== undefined && typeof gtOpts.value === \"number\") {\r\n if (target === \"draft-07\") {\r\n schema.minimum = gtOpts.value;\r\n schema.exclusiveMinimum = true;\r\n } else {\r\n schema.exclusiveMinimum = gtOpts.value;\r\n }\r\n }\r\n\r\n // lessThan (<) → exclusiveMaximum\r\n const ltOpts = getRuleOptions(this.rules, \"lessThan\");\r\n if (ltOpts?.value !== undefined && typeof ltOpts.value === \"number\") {\r\n if (target === \"draft-07\") {\r\n schema.maximum = ltOpts.value;\r\n schema.exclusiveMaximum = true;\r\n } else {\r\n schema.exclusiveMaximum = ltOpts.value;\r\n }\r\n }\r\n\r\n // multipleOf / modulo\r\n const moduloOpts = getRuleOptions(this.rules, \"modulo\");\r\n if (moduloOpts?.value !== undefined && typeof moduloOpts.value === \"number\") {\r\n schema.multipleOf = moduloOpts.value;\r\n }\r\n\r\n // enum (from PrimitiveValidator.in / .enum)\r\n const inOpts = getRuleOptions(this.rules, \"in\");\r\n if (inOpts?.values && Array.isArray(inOpts.values)) {\r\n schema.enum = inOpts.values;\r\n }\r\n\r\n if (this.isNullable) applyNullable(schema, target);\r\n\r\n return schema;\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { isNumeric } from "../../../node_modules/@mongez/supportive-is/esm/index.mjs";
2
+ import { numericMutator } from "../mutators/number-mutators.mjs";
3
+ import { NumberValidator } from "./number-validator.mjs";
4
+
5
+ //#region ../seal/src/validators/numeric-validator.ts
6
+ /**
7
+ * Numeric validator class - base for Int and Float validators either as number or string
8
+ */
9
+ var NumericValidator = class extends NumberValidator {
10
+ /**
11
+ * Constructor
12
+ */
13
+ constructor(errorMessage) {
14
+ super(errorMessage);
15
+ this.addMutableMutator(numericMutator);
16
+ }
17
+ /**
18
+ * Check if value is a numeric type
19
+ */
20
+ matchesType(value) {
21
+ return isNumeric(value);
22
+ }
23
+ };
24
+
25
+ //#endregion
26
+ export { NumericValidator };
27
+ //# sourceMappingURL=numeric-validator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-validator.mjs","names":[],"sources":["../../../../../../../../../seal/src/validators/numeric-validator.ts"],"sourcesContent":["import { isNumeric } from \"@mongez/supportive-is\";\r\nimport { numericMutator } from \"../mutators/number-mutators\";\r\nimport { NumberValidator } from \"./number-validator\";\r\n\r\n/**\r\n * Numeric validator class - base for Int and Float validators either as number or string\r\n */\r\nexport class NumericValidator extends NumberValidator {\r\n /**\r\n * Constructor\r\n */\r\n public constructor(errorMessage?: string) {\r\n super(errorMessage);\r\n this.addMutableMutator(numericMutator);\r\n }\r\n\r\n /**\r\n * Check if value is a numeric type\r\n */\r\n public matchesType(value: any): boolean {\r\n return isNumeric(value);\r\n }\r\n}\r\n"],"mappings":";;;;;;;;AAOA,IAAa,mBAAb,cAAsC,gBAAgB;;;;CAIpD,AAAO,YAAY,cAAuB;EACxC,MAAM,YAAY;EAClB,KAAK,kBAAkB,cAAc;CACvC;;;;CAKA,AAAO,YAAY,OAAqB;EACtC,OAAO,UAAU,KAAK;CACxB;AACF"}