@warlock.js/notifications 5.28.0 → 5.30.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 (530) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/{channel_api-CBB_XoIl.cjs → channel_api-C5ZZDkgQ.cjs} +21 -21
  3. package/cjs/channel_api-C5ZZDkgQ.cjs.map +1 -0
  4. package/cjs/index.cjs +22 -22
  5. package/cjs/index.cjs.map +1 -1
  6. package/cjs/rabbitmq-driver-BFoWr21L.cjs +3 -0
  7. package/cjs/{src-B6UVThgW.cjs → src-eu2jxS21.cjs} +173 -135
  8. package/cjs/src-eu2jxS21.cjs.map +1 -0
  9. package/esm/channels/database-channel.d.mts +1 -1
  10. package/esm/channels/database-channel.d.mts.map +1 -1
  11. package/esm/channels/database-channel.mjs +1 -1
  12. package/esm/channels/database-channel.mjs.map +1 -1
  13. package/esm/channels/mail-channel.d.mts +1 -1
  14. package/esm/channels/mail-channel.d.mts.map +1 -1
  15. package/esm/channels/mail-channel.mjs +1 -1
  16. package/esm/channels/mail-channel.mjs.map +1 -1
  17. package/esm/config.d.mts +1 -1
  18. package/esm/config.d.mts.map +1 -1
  19. package/esm/config.mjs +1 -1
  20. package/esm/config.mjs.map +1 -1
  21. package/esm/contracts/channel.contract.d.mts +1 -1
  22. package/esm/contracts/channel.contract.d.mts.map +1 -1
  23. package/esm/contracts/notification.contract.d.mts +1 -1
  24. package/esm/contracts/notification.contract.d.mts.map +1 -1
  25. package/esm/contracts/preference-provider.contract.d.mts +1 -1
  26. package/esm/contracts/preference-provider.contract.d.mts.map +1 -1
  27. package/esm/contracts/queue-dispatcher.contract.d.mts +1 -1
  28. package/esm/contracts/queue-dispatcher.contract.d.mts.map +1 -1
  29. package/esm/contracts/rate-limiter.contract.d.mts +1 -1
  30. package/esm/contracts/rate-limiter.contract.d.mts.map +1 -1
  31. package/esm/dispatch/define-channel.d.mts +1 -1
  32. package/esm/dispatch/define-channel.d.mts.map +1 -1
  33. package/esm/dispatch/define-channel.mjs +1 -1
  34. package/esm/dispatch/define-channel.mjs.map +1 -1
  35. package/esm/dispatch/define-notification.d.mts +1 -1
  36. package/esm/dispatch/define-notification.d.mts.map +1 -1
  37. package/esm/dispatch/define-notification.mjs +1 -1
  38. package/esm/dispatch/define-notification.mjs.map +1 -1
  39. package/esm/dispatch/dispatch-id.mjs +1 -1
  40. package/esm/dispatch/dispatch-id.mjs.map +1 -1
  41. package/esm/dispatch/dispatcher.mjs +1 -1
  42. package/esm/dispatch/dispatcher.mjs.map +1 -1
  43. package/esm/dispatch/notifications-event-bus.d.mts +1 -1
  44. package/esm/dispatch/notifications-event-bus.d.mts.map +1 -1
  45. package/esm/dispatch/notifications-event-bus.mjs +1 -1
  46. package/esm/dispatch/notifications-event-bus.mjs.map +1 -1
  47. package/esm/dispatch/notify.d.mts +1 -1
  48. package/esm/dispatch/notify.d.mts.map +1 -1
  49. package/esm/dispatch/notify.mjs +1 -1
  50. package/esm/dispatch/notify.mjs.map +1 -1
  51. package/esm/errors.d.mts +1 -1
  52. package/esm/errors.d.mts.map +1 -1
  53. package/esm/errors.mjs +1 -1
  54. package/esm/errors.mjs.map +1 -1
  55. package/esm/in-app/base-notifications-repository.d.mts +1 -1
  56. package/esm/in-app/base-notifications-repository.d.mts.map +1 -1
  57. package/esm/in-app/base-notifications-repository.mjs +1 -1
  58. package/esm/in-app/base-notifications-repository.mjs.map +1 -1
  59. package/esm/in-app/column-map.d.mts +1 -1
  60. package/esm/in-app/column-map.d.mts.map +1 -1
  61. package/esm/in-app/column-map.mjs +1 -1
  62. package/esm/in-app/column-map.mjs.map +1 -1
  63. package/esm/in-app/database-notification.d.mts +1 -1
  64. package/esm/in-app/database-notification.d.mts.map +1 -1
  65. package/esm/in-app/database-notification.mjs +1 -1
  66. package/esm/in-app/database-notification.mjs.map +1 -1
  67. package/esm/in-app/in-app.d.mts +1 -1
  68. package/esm/in-app/in-app.d.mts.map +1 -1
  69. package/esm/in-app/in-app.mjs +1 -1
  70. package/esm/in-app/in-app.mjs.map +1 -1
  71. package/esm/migration/notification-columns.d.mts +1 -1
  72. package/esm/migration/notification-columns.d.mts.map +1 -1
  73. package/esm/migration/notification-columns.mjs +1 -1
  74. package/esm/migration/notification-columns.mjs.map +1 -1
  75. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs +1 -1
  76. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs.map +1 -1
  77. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs +1 -1
  78. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs.map +1 -1
  79. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/number/round.mjs +1 -1
  80. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/number/round.mjs.map +1 -1
  81. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/except.mjs +1 -1
  82. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/except.mjs.map +1 -1
  83. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/get.mjs +1 -1
  84. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/get.mjs.map +1 -1
  85. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/omit.mjs +1 -1
  86. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/omit.mjs.map +1 -1
  87. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/unset.mjs +1 -1
  88. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/unset.mjs.map +1 -1
  89. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs +1 -1
  90. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs.map +1 -1
  91. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs +1 -1
  92. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs.map +1 -1
  93. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs +1 -1
  94. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs.map +1 -1
  95. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs +1 -1
  96. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs.map +1 -1
  97. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs +1 -1
  98. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs.map +1 -1
  99. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs +1 -1
  100. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs.map +1 -1
  101. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs +1 -1
  102. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs.map +1 -1
  103. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs +1 -1
  104. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs.map +1 -1
  105. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/trim.mjs +1 -1
  106. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/trim.mjs.map +1 -1
  107. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs +1 -1
  108. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs.map +1 -1
  109. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/words.mjs +1 -1
  110. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/string/words.mjs.map +1 -1
  111. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs +1 -1
  112. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs.map +1 -1
  113. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs +1 -1
  114. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs.map +1 -1
  115. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/utils/tap.mjs +1 -1
  116. package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/utils/tap.mjs.map +1 -1
  117. package/esm/node_modules/.pnpm/@mongez_supportive-is@3.0.0/node_modules/@mongez/supportive-is/esm/index.mjs +1 -1
  118. package/esm/node_modules/.pnpm/@mongez_supportive-is@3.0.0/node_modules/@mongez/supportive-is/esm/index.mjs.map +1 -1
  119. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/channel_api.mjs +1 -1
  120. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/channel_api.mjs.map +1 -1
  121. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/api_args.mjs +1 -1
  122. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/api_args.mjs.map +1 -1
  123. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/bitset.mjs +1 -1
  124. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/bitset.mjs.map +1 -1
  125. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/channel.mjs +1 -1
  126. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/channel.mjs.map +1 -1
  127. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/channel_model.mjs +1 -1
  128. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/channel_model.mjs.map +1 -1
  129. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/codec.mjs +1 -1
  130. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/codec.mjs.map +1 -1
  131. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/connect.mjs +1 -1
  132. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/connect.mjs.map +1 -1
  133. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/connection.mjs +1 -1
  134. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/connection.mjs.map +1 -1
  135. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/credentials.mjs +1 -1
  136. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/credentials.mjs.map +1 -1
  137. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/defs.mjs +1 -1
  138. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/defs.mjs.map +1 -1
  139. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/error.mjs +1 -1
  140. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/error.mjs.map +1 -1
  141. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/format.mjs +1 -1
  142. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/format.mjs.map +1 -1
  143. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/frame.mjs +1 -1
  144. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/frame.mjs.map +1 -1
  145. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/heartbeat.mjs +1 -1
  146. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/heartbeat.mjs.map +1 -1
  147. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/mux.mjs +1 -1
  148. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/mux.mjs.map +1 -1
  149. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/package.mjs +1 -1
  150. package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/package.mjs.map +1 -1
  151. package/esm/node_modules/.pnpm/buffer-more-ints@1.0.0/node_modules/buffer-more-ints/buffer-more-ints.mjs +1 -1
  152. package/esm/node_modules/.pnpm/buffer-more-ints@1.0.0/node_modules/buffer-more-ints/buffer-more-ints.mjs.map +1 -1
  153. package/esm/node_modules/.pnpm/dayjs@1.11.23/node_modules/dayjs/dayjs.min.mjs +1 -1
  154. package/esm/node_modules/.pnpm/dayjs@1.11.23/node_modules/dayjs/dayjs.min.mjs.map +1 -1
  155. package/esm/node_modules/.pnpm/querystringify@2.2.0/node_modules/querystringify/index.mjs +1 -1
  156. package/esm/node_modules/.pnpm/querystringify@2.2.0/node_modules/querystringify/index.mjs.map +1 -1
  157. package/esm/node_modules/.pnpm/requires-port@1.0.0/node_modules/requires-port/index.mjs +1 -1
  158. package/esm/node_modules/.pnpm/requires-port@1.0.0/node_modules/requires-port/index.mjs.map +1 -1
  159. package/esm/node_modules/.pnpm/url-parse@1.5.10/node_modules/url-parse/index.mjs +1 -1
  160. package/esm/node_modules/.pnpm/url-parse@1.5.10/node_modules/url-parse/index.mjs.map +1 -1
  161. package/esm/{herald → packages/herald}/src/communicators/broker-registry.mjs +1 -1
  162. package/esm/packages/herald/src/communicators/broker-registry.mjs.map +1 -0
  163. package/esm/{herald → packages/herald}/src/communicators/broker.mjs +1 -1
  164. package/esm/packages/herald/src/communicators/broker.mjs.map +1 -0
  165. package/esm/{herald → packages/herald}/src/decorators/consumable.mjs +1 -1
  166. package/esm/packages/herald/src/decorators/consumable.mjs.map +1 -0
  167. package/esm/{herald → packages/herald}/src/drivers/rabbitmq/rabbitmq-channel.mjs +1 -1
  168. package/esm/packages/herald/src/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -0
  169. package/esm/{herald → packages/herald}/src/drivers/rabbitmq/rabbitmq-driver.mjs +3 -3
  170. package/esm/packages/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -0
  171. package/esm/{herald → packages/herald}/src/message-managers/event-consumer.mjs +1 -1
  172. package/esm/packages/herald/src/message-managers/event-consumer.mjs.map +1 -0
  173. package/esm/{herald → packages/herald}/src/message-managers/event-message.mjs +1 -1
  174. package/esm/packages/herald/src/message-managers/event-message.mjs.map +1 -0
  175. package/esm/{herald → packages/herald}/src/message-managers/prepare-consumer-subscription.mjs +1 -1
  176. package/esm/packages/herald/src/message-managers/prepare-consumer-subscription.mjs.map +1 -0
  177. package/esm/{herald → packages/herald}/src/use-case-broadcast.mjs +1 -1
  178. package/esm/packages/herald/src/use-case-broadcast.mjs.map +1 -0
  179. package/esm/{herald → packages/herald}/src/utils/connect-to-broker.mjs +1 -1
  180. package/esm/packages/herald/src/utils/connect-to-broker.mjs.map +1 -0
  181. package/esm/{seal → packages/seal}/src/config.mjs +1 -1
  182. package/esm/packages/seal/src/config.mjs.map +1 -0
  183. package/esm/{seal → packages/seal}/src/factory/validate.mjs +12 -4
  184. package/esm/packages/seal/src/factory/validate.mjs.map +1 -0
  185. package/esm/{seal → packages/seal}/src/factory/validators.mjs +1 -1
  186. package/esm/packages/seal/src/factory/validators.mjs.map +1 -0
  187. package/esm/{seal → packages/seal}/src/helpers/date-helpers.mjs +1 -1
  188. package/esm/packages/seal/src/helpers/date-helpers.mjs.map +1 -0
  189. package/esm/{seal → packages/seal}/src/helpers/get-field-value.mjs +3 -3
  190. package/esm/packages/seal/src/helpers/get-field-value.mjs.map +1 -0
  191. package/esm/packages/seal/src/helpers/is-empty-value.mjs +10 -0
  192. package/esm/packages/seal/src/helpers/is-empty-value.mjs.map +1 -0
  193. package/esm/{seal → packages/seal}/src/helpers/path-helpers.mjs +1 -1
  194. package/esm/packages/seal/src/helpers/path-helpers.mjs.map +1 -0
  195. package/esm/{seal → packages/seal}/src/helpers/validation-helpers.mjs +1 -1
  196. package/esm/packages/seal/src/helpers/validation-helpers.mjs.map +1 -0
  197. package/esm/{seal → packages/seal}/src/mutators/array-mutators.mjs +3 -3
  198. package/esm/packages/seal/src/mutators/array-mutators.mjs.map +1 -0
  199. package/esm/{seal → packages/seal}/src/mutators/boolean-mutators.mjs +1 -1
  200. package/esm/packages/seal/src/mutators/boolean-mutators.mjs.map +1 -0
  201. package/esm/{seal → packages/seal}/src/mutators/date-mutators.mjs +3 -3
  202. package/esm/packages/seal/src/mutators/date-mutators.mjs.map +1 -0
  203. package/esm/{seal → packages/seal}/src/mutators/number-mutators.mjs +4 -4
  204. package/esm/packages/seal/src/mutators/number-mutators.mjs.map +1 -0
  205. package/esm/{seal → packages/seal}/src/mutators/object-mutators.mjs +4 -4
  206. package/esm/packages/seal/src/mutators/object-mutators.mjs.map +1 -0
  207. package/esm/{seal → packages/seal}/src/mutators/scalar-mutators.mjs +1 -1
  208. package/esm/packages/seal/src/mutators/scalar-mutators.mjs.map +1 -0
  209. package/esm/{seal → packages/seal}/src/mutators/string-mutators.mjs +11 -11
  210. package/esm/packages/seal/src/mutators/string-mutators.mjs.map +1 -0
  211. package/esm/{seal → packages/seal}/src/object.mjs +1 -1
  212. package/esm/packages/seal/src/object.mjs.map +1 -0
  213. package/esm/{seal → packages/seal}/src/rules/array/array-rules.mjs +1 -1
  214. package/esm/packages/seal/src/rules/array/array-rules.mjs.map +1 -0
  215. package/esm/{seal → packages/seal}/src/rules/color/color-rules.mjs +1 -1
  216. package/esm/packages/seal/src/rules/color/color-rules.mjs.map +1 -0
  217. package/esm/{seal → packages/seal}/src/rules/common/enum.mjs +1 -1
  218. package/esm/packages/seal/src/rules/common/enum.mjs.map +1 -0
  219. package/esm/{seal → packages/seal}/src/rules/common/equals-field-rules.mjs +1 -1
  220. package/esm/packages/seal/src/rules/common/equals-field-rules.mjs.map +1 -0
  221. package/esm/{seal → packages/seal}/src/rules/common/instanceof.mjs +1 -1
  222. package/esm/packages/seal/src/rules/common/instanceof.mjs.map +1 -0
  223. package/esm/{seal → packages/seal}/src/rules/common/literal.mjs +1 -1
  224. package/esm/packages/seal/src/rules/common/literal.mjs.map +1 -0
  225. package/esm/{seal → packages/seal}/src/rules/common/type-rules.mjs +2 -2
  226. package/esm/packages/seal/src/rules/common/type-rules.mjs.map +1 -0
  227. package/esm/{seal → packages/seal}/src/rules/common/unknown-key.mjs +1 -1
  228. package/esm/packages/seal/src/rules/common/unknown-key.mjs.map +1 -0
  229. package/esm/{seal → packages/seal}/src/rules/conditional/forbidden-if-rules.mjs +1 -1
  230. package/esm/packages/seal/src/rules/conditional/forbidden-if-rules.mjs.map +1 -0
  231. package/esm/{seal → packages/seal}/src/rules/conditional/present-if-rules.mjs +1 -1
  232. package/esm/packages/seal/src/rules/conditional/present-if-rules.mjs.map +1 -0
  233. package/esm/{seal → packages/seal}/src/rules/conditional/present-unless-rules.mjs +1 -1
  234. package/esm/packages/seal/src/rules/conditional/present-unless-rules.mjs.map +1 -0
  235. package/esm/{seal → packages/seal}/src/rules/conditional/present-with-rules.mjs +3 -3
  236. package/esm/packages/seal/src/rules/conditional/present-with-rules.mjs.map +1 -0
  237. package/esm/{seal → packages/seal}/src/rules/conditional/present-without-rules.mjs +3 -3
  238. package/esm/packages/seal/src/rules/conditional/present-without-rules.mjs.map +1 -0
  239. package/esm/{seal → packages/seal}/src/rules/conditional/required-if-rules.mjs +3 -3
  240. package/esm/packages/seal/src/rules/conditional/required-if-rules.mjs.map +1 -0
  241. package/esm/{seal → packages/seal}/src/rules/conditional/required-unless-rules.mjs +1 -1
  242. package/esm/packages/seal/src/rules/conditional/required-unless-rules.mjs.map +1 -0
  243. package/esm/{seal → packages/seal}/src/rules/conditional/required-when-rule.mjs +1 -1
  244. package/esm/packages/seal/src/rules/conditional/required-when-rule.mjs.map +1 -0
  245. package/esm/{seal → packages/seal}/src/rules/conditional/required-with-rules.mjs +3 -3
  246. package/esm/packages/seal/src/rules/conditional/required-with-rules.mjs.map +1 -0
  247. package/esm/{seal → packages/seal}/src/rules/conditional/required-without-rules.mjs +3 -3
  248. package/esm/packages/seal/src/rules/conditional/required-without-rules.mjs.map +1 -0
  249. package/esm/{seal → packages/seal}/src/rules/core/equal.mjs +1 -1
  250. package/esm/packages/seal/src/rules/core/equal.mjs.map +1 -0
  251. package/esm/{seal → packages/seal}/src/rules/core/forbidden.mjs +1 -1
  252. package/esm/packages/seal/src/rules/core/forbidden.mjs.map +1 -0
  253. package/esm/{seal → packages/seal}/src/rules/core/required.mjs +1 -1
  254. package/esm/packages/seal/src/rules/core/required.mjs.map +1 -0
  255. package/esm/{seal → packages/seal}/src/rules/core/union.mjs +3 -1
  256. package/esm/packages/seal/src/rules/core/union.mjs.map +1 -0
  257. package/esm/{seal → packages/seal}/src/rules/core/when.mjs +3 -3
  258. package/esm/packages/seal/src/rules/core/when.mjs.map +1 -0
  259. package/esm/{seal → packages/seal}/src/rules/date/date-comparison-rules.mjs +1 -1
  260. package/esm/packages/seal/src/rules/date/date-comparison-rules.mjs.map +1 -0
  261. package/esm/{seal → packages/seal}/src/rules/date/date-day-rules.mjs +1 -1
  262. package/esm/packages/seal/src/rules/date/date-day-rules.mjs.map +1 -0
  263. package/esm/{seal → packages/seal}/src/rules/date/date-field-comparison-rules.mjs +3 -3
  264. package/esm/packages/seal/src/rules/date/date-field-comparison-rules.mjs.map +1 -0
  265. package/esm/{seal → packages/seal}/src/rules/date/date-period-rules.mjs +3 -3
  266. package/esm/packages/seal/src/rules/date/date-period-rules.mjs.map +1 -0
  267. package/esm/{seal → packages/seal}/src/rules/date/date-relative-rules.mjs +1 -1
  268. package/esm/packages/seal/src/rules/date/date-relative-rules.mjs.map +1 -0
  269. package/esm/{seal → packages/seal}/src/rules/date/date-special-rules.mjs +1 -1
  270. package/esm/packages/seal/src/rules/date/date-special-rules.mjs.map +1 -0
  271. package/esm/{seal → packages/seal}/src/rules/date/date.mjs +3 -3
  272. package/esm/packages/seal/src/rules/date/date.mjs.map +1 -0
  273. package/esm/{seal → packages/seal}/src/rules/length/length-rules.mjs +1 -1
  274. package/esm/packages/seal/src/rules/length/length-rules.mjs.map +1 -0
  275. package/esm/{seal → packages/seal}/src/rules/number/number-rules.mjs +3 -3
  276. package/esm/packages/seal/src/rules/number/number-rules.mjs.map +1 -0
  277. package/esm/{seal → packages/seal}/src/rules/scalar/accepted-rule.mjs +1 -1
  278. package/esm/packages/seal/src/rules/scalar/accepted-rule.mjs.map +1 -0
  279. package/esm/{seal → packages/seal}/src/rules/scalar/declined-rule.mjs +1 -1
  280. package/esm/packages/seal/src/rules/scalar/declined-rule.mjs.map +1 -0
  281. package/esm/{seal → packages/seal}/src/rules/string/alpha.mjs +1 -1
  282. package/esm/packages/seal/src/rules/string/alpha.mjs.map +1 -0
  283. package/esm/{seal → packages/seal}/src/rules/string/credit-card.mjs +1 -1
  284. package/esm/packages/seal/src/rules/string/credit-card.mjs.map +1 -0
  285. package/esm/{seal → packages/seal}/src/rules/string/email.mjs +2 -2
  286. package/esm/packages/seal/src/rules/string/email.mjs.map +1 -0
  287. package/esm/{seal → packages/seal}/src/rules/string/id-formats.mjs +1 -1
  288. package/esm/packages/seal/src/rules/string/id-formats.mjs.map +1 -0
  289. package/esm/{seal → packages/seal}/src/rules/string/ip.mjs +1 -1
  290. package/esm/packages/seal/src/rules/string/ip.mjs.map +1 -0
  291. package/esm/packages/seal/src/rules/string/matches.mjs +4 -0
  292. package/esm/{seal → packages/seal}/src/rules/string/pattern.mjs +1 -1
  293. package/esm/packages/seal/src/rules/string/pattern.mjs.map +1 -0
  294. package/esm/{seal → packages/seal}/src/rules/string/string-comparison.mjs +1 -1
  295. package/esm/packages/seal/src/rules/string/string-comparison.mjs.map +1 -0
  296. package/esm/{seal → packages/seal}/src/rules/string/strong-password-rule.mjs +1 -1
  297. package/esm/packages/seal/src/rules/string/strong-password-rule.mjs.map +1 -0
  298. package/esm/{seal → packages/seal}/src/rules/string/url.mjs +1 -1
  299. package/esm/packages/seal/src/rules/string/url.mjs.map +1 -0
  300. package/esm/{seal → packages/seal}/src/rules/string/without-whitespace.mjs +1 -1
  301. package/esm/packages/seal/src/rules/string/without-whitespace.mjs.map +1 -0
  302. package/esm/{seal → packages/seal}/src/standard-schema/json-schema.mjs +1 -1
  303. package/esm/packages/seal/src/standard-schema/json-schema.mjs.map +1 -0
  304. package/esm/{seal → packages/seal}/src/standard-schema/map-result.mjs +1 -1
  305. package/esm/packages/seal/src/standard-schema/map-result.mjs.map +1 -0
  306. package/esm/{seal → packages/seal}/src/string.mjs +1 -1
  307. package/esm/packages/seal/src/string.mjs.map +1 -0
  308. package/esm/{seal → packages/seal}/src/types/date-types.mjs +1 -1
  309. package/esm/packages/seal/src/types/date-types.mjs.map +1 -0
  310. package/esm/{seal → packages/seal}/src/validators/any-validator.mjs +1 -1
  311. package/esm/packages/seal/src/validators/any-validator.mjs.map +1 -0
  312. package/esm/{seal → packages/seal}/src/validators/array-validator.mjs +1 -1
  313. package/esm/packages/seal/src/validators/array-validator.mjs.map +1 -0
  314. package/esm/{seal → packages/seal}/src/validators/base-validator.mjs +25 -6
  315. package/esm/packages/seal/src/validators/base-validator.mjs.map +1 -0
  316. package/esm/{seal → packages/seal}/src/validators/boolean-validator.mjs +1 -1
  317. package/esm/packages/seal/src/validators/boolean-validator.mjs.map +1 -0
  318. package/esm/{seal → packages/seal}/src/validators/computed-validator.mjs +1 -1
  319. package/esm/packages/seal/src/validators/computed-validator.mjs.map +1 -0
  320. package/esm/{seal → packages/seal}/src/validators/date-validator.mjs +3 -3
  321. package/esm/packages/seal/src/validators/date-validator.mjs.map +1 -0
  322. package/esm/{seal → packages/seal}/src/validators/discriminated-union-validator.mjs +7 -2
  323. package/esm/packages/seal/src/validators/discriminated-union-validator.mjs.map +1 -0
  324. package/esm/{seal → packages/seal}/src/validators/float-validator.mjs +1 -1
  325. package/esm/packages/seal/src/validators/float-validator.mjs.map +1 -0
  326. package/esm/{seal → packages/seal}/src/validators/instanceof-validator.mjs +1 -1
  327. package/esm/packages/seal/src/validators/instanceof-validator.mjs.map +1 -0
  328. package/esm/{seal → packages/seal}/src/validators/int-validator.mjs +1 -1
  329. package/esm/packages/seal/src/validators/int-validator.mjs.map +1 -0
  330. package/esm/{seal → packages/seal}/src/validators/lazy-validator.mjs +1 -1
  331. package/esm/packages/seal/src/validators/lazy-validator.mjs.map +1 -0
  332. package/esm/{seal → packages/seal}/src/validators/literal-validator.mjs +5 -2
  333. package/esm/packages/seal/src/validators/literal-validator.mjs.map +1 -0
  334. package/esm/{seal → packages/seal}/src/validators/managed-validator.mjs +1 -1
  335. package/esm/packages/seal/src/validators/managed-validator.mjs.map +1 -0
  336. package/esm/{seal → packages/seal}/src/validators/methods/equality-conditional-methods.mjs +1 -1
  337. package/esm/packages/seal/src/validators/methods/equality-conditional-methods.mjs.map +1 -0
  338. package/esm/{seal → packages/seal}/src/validators/methods/forbidden-methods.mjs +1 -1
  339. package/esm/packages/seal/src/validators/methods/forbidden-methods.mjs.map +1 -0
  340. package/esm/{seal → packages/seal}/src/validators/methods/present-methods.mjs +1 -1
  341. package/esm/packages/seal/src/validators/methods/present-methods.mjs.map +1 -0
  342. package/esm/{seal → packages/seal}/src/validators/methods/required-methods.mjs +1 -1
  343. package/esm/packages/seal/src/validators/methods/required-methods.mjs.map +1 -0
  344. package/esm/{seal → packages/seal}/src/validators/number-validator.mjs +1 -1
  345. package/esm/packages/seal/src/validators/number-validator.mjs.map +1 -0
  346. package/esm/{seal → packages/seal}/src/validators/numeric-validator.mjs +2 -2
  347. package/esm/packages/seal/src/validators/numeric-validator.mjs.map +1 -0
  348. package/esm/{seal → packages/seal}/src/validators/object-validator.mjs +8 -6
  349. package/esm/packages/seal/src/validators/object-validator.mjs.map +1 -0
  350. package/esm/{seal → packages/seal}/src/validators/primitive-validator.mjs +1 -1
  351. package/esm/packages/seal/src/validators/primitive-validator.mjs.map +1 -0
  352. package/esm/{seal → packages/seal}/src/validators/record-validator.mjs +2 -2
  353. package/esm/packages/seal/src/validators/record-validator.mjs.map +1 -0
  354. package/esm/{seal → packages/seal}/src/validators/scalar-validator.mjs +1 -1
  355. package/esm/packages/seal/src/validators/scalar-validator.mjs.map +1 -0
  356. package/esm/{seal → packages/seal}/src/validators/string-validator.mjs +1 -1
  357. package/esm/packages/seal/src/validators/string-validator.mjs.map +1 -0
  358. package/esm/{seal → packages/seal}/src/validators/tuple-validator.mjs +1 -1
  359. package/esm/packages/seal/src/validators/tuple-validator.mjs.map +1 -0
  360. package/esm/{seal → packages/seal}/src/validators/union-validator.mjs +1 -1
  361. package/esm/packages/seal/src/validators/union-validator.mjs.map +1 -0
  362. package/esm/queue/bullmq-queue.d.mts +1 -1
  363. package/esm/queue/bullmq-queue.d.mts.map +1 -1
  364. package/esm/queue/bullmq-queue.mjs +1 -1
  365. package/esm/queue/bullmq-queue.mjs.map +1 -1
  366. package/esm/queue/herald-queue.d.mts +1 -1
  367. package/esm/queue/herald-queue.d.mts.map +1 -1
  368. package/esm/queue/herald-queue.mjs +1 -1
  369. package/esm/queue/herald-queue.mjs.map +1 -1
  370. package/esm/queue/load-herald.d.mts +1 -1
  371. package/esm/queue/load-herald.d.mts.map +1 -1
  372. package/esm/queue/load-herald.mjs +2 -2
  373. package/esm/queue/load-herald.mjs.map +1 -1
  374. package/esm/queue/load-queue.d.mts +1 -1
  375. package/esm/queue/load-queue.d.mts.map +1 -1
  376. package/esm/queue/load-queue.mjs +1 -1
  377. package/esm/queue/load-queue.mjs.map +1 -1
  378. package/esm/queue/notifications-worker.d.mts +1 -1
  379. package/esm/queue/notifications-worker.d.mts.map +1 -1
  380. package/esm/queue/notifications-worker.mjs +1 -1
  381. package/esm/queue/notifications-worker.mjs.map +1 -1
  382. package/esm/queue/queue-package-not-installed.error.d.mts +1 -1
  383. package/esm/queue/queue-package-not-installed.error.d.mts.map +1 -1
  384. package/esm/queue/queue-package-not-installed.error.mjs +1 -1
  385. package/esm/queue/queue-package-not-installed.error.mjs.map +1 -1
  386. package/esm/types.d.mts +1 -1
  387. package/esm/types.d.mts.map +1 -1
  388. package/llms-full.txt +57 -57
  389. package/llms.txt +8 -8
  390. package/package.json +9 -8
  391. package/skills/configure-notifications/SKILL.md +6 -6
  392. package/skills/define-channel/SKILL.md +6 -6
  393. package/skills/define-notification/SKILL.md +5 -5
  394. package/skills/notifications-basics/SKILL.md +8 -8
  395. package/skills/observe-notifications/SKILL.md +4 -4
  396. package/skills/queue-notifications/SKILL.md +5 -5
  397. package/skills/send-ad-hoc/SKILL.md +8 -8
  398. package/skills/use-in-app/SKILL.md +8 -8
  399. package/skills/write-notification-migration/SKILL.md +7 -7
  400. package/cjs/channel_api-CBB_XoIl.cjs.map +0 -1
  401. package/cjs/rabbitmq-driver-CYeFwv0w.cjs +0 -3
  402. package/cjs/src-B6UVThgW.cjs.map +0 -1
  403. package/esm/herald/src/communicators/broker-registry.mjs.map +0 -1
  404. package/esm/herald/src/communicators/broker.mjs.map +0 -1
  405. package/esm/herald/src/decorators/consumable.mjs.map +0 -1
  406. package/esm/herald/src/drivers/rabbitmq/rabbitmq-channel.mjs.map +0 -1
  407. package/esm/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs.map +0 -1
  408. package/esm/herald/src/message-managers/event-consumer.mjs.map +0 -1
  409. package/esm/herald/src/message-managers/event-message.mjs.map +0 -1
  410. package/esm/herald/src/message-managers/prepare-consumer-subscription.mjs.map +0 -1
  411. package/esm/herald/src/use-case-broadcast.mjs.map +0 -1
  412. package/esm/herald/src/utils/connect-to-broker.mjs.map +0 -1
  413. package/esm/seal/src/config.mjs.map +0 -1
  414. package/esm/seal/src/factory/validate.mjs.map +0 -1
  415. package/esm/seal/src/factory/validators.mjs.map +0 -1
  416. package/esm/seal/src/helpers/date-helpers.mjs.map +0 -1
  417. package/esm/seal/src/helpers/get-field-value.mjs.map +0 -1
  418. package/esm/seal/src/helpers/is-empty-value.mjs +0 -10
  419. package/esm/seal/src/helpers/is-empty-value.mjs.map +0 -1
  420. package/esm/seal/src/helpers/path-helpers.mjs.map +0 -1
  421. package/esm/seal/src/helpers/validation-helpers.mjs.map +0 -1
  422. package/esm/seal/src/mutators/array-mutators.mjs.map +0 -1
  423. package/esm/seal/src/mutators/boolean-mutators.mjs.map +0 -1
  424. package/esm/seal/src/mutators/date-mutators.mjs.map +0 -1
  425. package/esm/seal/src/mutators/number-mutators.mjs.map +0 -1
  426. package/esm/seal/src/mutators/object-mutators.mjs.map +0 -1
  427. package/esm/seal/src/mutators/scalar-mutators.mjs.map +0 -1
  428. package/esm/seal/src/mutators/string-mutators.mjs.map +0 -1
  429. package/esm/seal/src/object.mjs.map +0 -1
  430. package/esm/seal/src/rules/array/array-rules.mjs.map +0 -1
  431. package/esm/seal/src/rules/color/color-rules.mjs.map +0 -1
  432. package/esm/seal/src/rules/common/enum.mjs.map +0 -1
  433. package/esm/seal/src/rules/common/equals-field-rules.mjs.map +0 -1
  434. package/esm/seal/src/rules/common/instanceof.mjs.map +0 -1
  435. package/esm/seal/src/rules/common/literal.mjs.map +0 -1
  436. package/esm/seal/src/rules/common/type-rules.mjs.map +0 -1
  437. package/esm/seal/src/rules/common/unknown-key.mjs.map +0 -1
  438. package/esm/seal/src/rules/conditional/forbidden-if-rules.mjs.map +0 -1
  439. package/esm/seal/src/rules/conditional/present-if-rules.mjs.map +0 -1
  440. package/esm/seal/src/rules/conditional/present-unless-rules.mjs.map +0 -1
  441. package/esm/seal/src/rules/conditional/present-with-rules.mjs.map +0 -1
  442. package/esm/seal/src/rules/conditional/present-without-rules.mjs.map +0 -1
  443. package/esm/seal/src/rules/conditional/required-if-rules.mjs.map +0 -1
  444. package/esm/seal/src/rules/conditional/required-unless-rules.mjs.map +0 -1
  445. package/esm/seal/src/rules/conditional/required-when-rule.mjs.map +0 -1
  446. package/esm/seal/src/rules/conditional/required-with-rules.mjs.map +0 -1
  447. package/esm/seal/src/rules/conditional/required-without-rules.mjs.map +0 -1
  448. package/esm/seal/src/rules/core/equal.mjs.map +0 -1
  449. package/esm/seal/src/rules/core/forbidden.mjs.map +0 -1
  450. package/esm/seal/src/rules/core/required.mjs.map +0 -1
  451. package/esm/seal/src/rules/core/union.mjs.map +0 -1
  452. package/esm/seal/src/rules/core/when.mjs.map +0 -1
  453. package/esm/seal/src/rules/date/date-comparison-rules.mjs.map +0 -1
  454. package/esm/seal/src/rules/date/date-day-rules.mjs.map +0 -1
  455. package/esm/seal/src/rules/date/date-field-comparison-rules.mjs.map +0 -1
  456. package/esm/seal/src/rules/date/date-period-rules.mjs.map +0 -1
  457. package/esm/seal/src/rules/date/date-relative-rules.mjs.map +0 -1
  458. package/esm/seal/src/rules/date/date-special-rules.mjs.map +0 -1
  459. package/esm/seal/src/rules/date/date.mjs.map +0 -1
  460. package/esm/seal/src/rules/length/length-rules.mjs.map +0 -1
  461. package/esm/seal/src/rules/number/number-rules.mjs.map +0 -1
  462. package/esm/seal/src/rules/scalar/accepted-rule.mjs.map +0 -1
  463. package/esm/seal/src/rules/scalar/declined-rule.mjs.map +0 -1
  464. package/esm/seal/src/rules/string/alpha.mjs.map +0 -1
  465. package/esm/seal/src/rules/string/credit-card.mjs.map +0 -1
  466. package/esm/seal/src/rules/string/email.mjs.map +0 -1
  467. package/esm/seal/src/rules/string/id-formats.mjs.map +0 -1
  468. package/esm/seal/src/rules/string/ip.mjs.map +0 -1
  469. package/esm/seal/src/rules/string/matches.mjs +0 -4
  470. package/esm/seal/src/rules/string/pattern.mjs.map +0 -1
  471. package/esm/seal/src/rules/string/string-comparison.mjs.map +0 -1
  472. package/esm/seal/src/rules/string/strong-password-rule.mjs.map +0 -1
  473. package/esm/seal/src/rules/string/url.mjs.map +0 -1
  474. package/esm/seal/src/rules/string/without-whitespace.mjs.map +0 -1
  475. package/esm/seal/src/standard-schema/json-schema.mjs.map +0 -1
  476. package/esm/seal/src/standard-schema/map-result.mjs.map +0 -1
  477. package/esm/seal/src/string.mjs.map +0 -1
  478. package/esm/seal/src/types/date-types.mjs.map +0 -1
  479. package/esm/seal/src/validators/any-validator.mjs.map +0 -1
  480. package/esm/seal/src/validators/array-validator.mjs.map +0 -1
  481. package/esm/seal/src/validators/base-validator.mjs.map +0 -1
  482. package/esm/seal/src/validators/boolean-validator.mjs.map +0 -1
  483. package/esm/seal/src/validators/computed-validator.mjs.map +0 -1
  484. package/esm/seal/src/validators/date-validator.mjs.map +0 -1
  485. package/esm/seal/src/validators/discriminated-union-validator.mjs.map +0 -1
  486. package/esm/seal/src/validators/float-validator.mjs.map +0 -1
  487. package/esm/seal/src/validators/instanceof-validator.mjs.map +0 -1
  488. package/esm/seal/src/validators/int-validator.mjs.map +0 -1
  489. package/esm/seal/src/validators/lazy-validator.mjs.map +0 -1
  490. package/esm/seal/src/validators/literal-validator.mjs.map +0 -1
  491. package/esm/seal/src/validators/managed-validator.mjs.map +0 -1
  492. package/esm/seal/src/validators/methods/equality-conditional-methods.mjs.map +0 -1
  493. package/esm/seal/src/validators/methods/forbidden-methods.mjs.map +0 -1
  494. package/esm/seal/src/validators/methods/present-methods.mjs.map +0 -1
  495. package/esm/seal/src/validators/methods/required-methods.mjs.map +0 -1
  496. package/esm/seal/src/validators/number-validator.mjs.map +0 -1
  497. package/esm/seal/src/validators/numeric-validator.mjs.map +0 -1
  498. package/esm/seal/src/validators/object-validator.mjs.map +0 -1
  499. package/esm/seal/src/validators/primitive-validator.mjs.map +0 -1
  500. package/esm/seal/src/validators/record-validator.mjs.map +0 -1
  501. package/esm/seal/src/validators/scalar-validator.mjs.map +0 -1
  502. package/esm/seal/src/validators/string-validator.mjs.map +0 -1
  503. package/esm/seal/src/validators/tuple-validator.mjs.map +0 -1
  504. package/esm/seal/src/validators/union-validator.mjs.map +0 -1
  505. /package/esm/{herald → packages/herald}/src/communicators/index.mjs +0 -0
  506. /package/esm/{herald → packages/herald}/src/decorators/index.mjs +0 -0
  507. /package/esm/{herald → packages/herald}/src/drivers/index.mjs +0 -0
  508. /package/esm/{herald → packages/herald}/src/drivers/rabbitmq/index.mjs +0 -0
  509. /package/esm/{herald → packages/herald}/src/index.mjs +0 -0
  510. /package/esm/{herald → packages/herald}/src/message-managers/index.mjs +0 -0
  511. /package/esm/{herald → packages/herald}/src/utils/index.mjs +0 -0
  512. /package/esm/{seal → packages/seal}/src/factory/index.mjs +0 -0
  513. /package/esm/{seal → packages/seal}/src/helpers/index.mjs +0 -0
  514. /package/esm/{seal → packages/seal}/src/index.mjs +0 -0
  515. /package/esm/{seal → packages/seal}/src/mutators/index.mjs +0 -0
  516. /package/esm/{seal → packages/seal}/src/rules/array/index.mjs +0 -0
  517. /package/esm/{seal → packages/seal}/src/rules/color/index.mjs +0 -0
  518. /package/esm/{seal → packages/seal}/src/rules/common/index.mjs +0 -0
  519. /package/esm/{seal → packages/seal}/src/rules/conditional/index.mjs +0 -0
  520. /package/esm/{seal → packages/seal}/src/rules/core/index.mjs +0 -0
  521. /package/esm/{seal → packages/seal}/src/rules/date/index.mjs +0 -0
  522. /package/esm/{seal → packages/seal}/src/rules/file/dimensions.mjs +0 -0
  523. /package/esm/{seal → packages/seal}/src/rules/file/file-size.mjs +0 -0
  524. /package/esm/{seal → packages/seal}/src/rules/file/index.mjs +0 -0
  525. /package/esm/{seal → packages/seal}/src/rules/index.mjs +0 -0
  526. /package/esm/{seal → packages/seal}/src/rules/length/index.mjs +0 -0
  527. /package/esm/{seal → packages/seal}/src/rules/number/index.mjs +0 -0
  528. /package/esm/{seal → packages/seal}/src/rules/scalar/index.mjs +0 -0
  529. /package/esm/{seal → packages/seal}/src/rules/string/index.mjs +0 -0
  530. /package/esm/{seal → packages/seal}/src/validators/index.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: observe-notifications
3
- description: 'Wire metrics, logging, tracing, and audits via `notifications.on(event, handler)` — four events fire per (channel, recipient): `sending` (gates passed, about to hit the transport), `sent` (succeeded), `failed` (channel threw — carries the Error), `skipped` (a pre-send gate dropped it — carries `reason: "preference" | "rate-limit"`). Every event carries the recipient as `notifiable?` (undefined only for raw-target ad-hoc sends) and a `dispatchId` — `sending` and its terminal `sent`/`failed` share it, so observers can pair them (spans, latency, hung-send detection). `sent`/`failed` also carry `durationMs`. Handler exceptions are logged-and-swallowed so one bad listener can not break the dispatcher. `on(...)` returns an unsubscribe function; `off(event, handler)` exists for symmetry. Triggers: `notifications.on`, `notifications.off`, `"sending"` event, `"sent"` event, `"failed"` event, `"skipped"` event, `dispatchId`, `durationMs`, `NotificationEvents`, "notification metrics", "notification latency", "trace notifications", "notification audit log", "track notification drops"; typical import `import { notifications } from "@warlock.js/notifications"`. Skip: building notifications — `@warlock.js/notifications/define-notification/SKILL.md`; configuring the preference/rate-limit gates that produce `skipped` — `@warlock.js/notifications/configure-notifications/SKILL.md`.'
3
+ description: 'Wire metrics, logging, tracing, and audits via `notifications.on(event, handler)` — four events fire per (channel, recipient): `sending` (gates passed, about to hit the transport), `sent` (succeeded), `failed` (channel threw — carries the Error), `skipped` (a pre-send gate dropped it — carries `reason: "preference" | "rate-limit"`). Every event carries the recipient as `notifiable?` (undefined only for raw-target ad-hoc sends) and a `dispatchId` — `sending` and its terminal `sent`/`failed` share it, so observers can pair them (spans, latency, hung-send detection). `sent`/`failed` also carry `durationMs`. Handler exceptions are logged-and-swallowed so one bad listener can not break the dispatcher. `on(...)` returns an unsubscribe function; `off(event, handler)` exists for symmetry. Triggers: `notifications.on`, `notifications.off`, `"sending"` event, `"sent"` event, `"failed"` event, `"skipped"` event, `dispatchId`, `durationMs`, `NotificationEvents`, "notification metrics", "notification latency", "trace notifications", "notification audit log", "track notification drops"; typical import `import { notifications } from "@warlock.js/notifications"`. Skip: building notifications — the `define-notification` topic; configuring the preference/rate-limit gates that produce `skipped` — the `configure-notifications` topic.'
4
4
  ---
5
5
 
6
6
  # Observe notifications
@@ -61,6 +61,6 @@ A handler that throws is logged and swallowed — the other handlers for the sam
61
61
 
62
62
  ## See also
63
63
 
64
- - [`notifications-basics/SKILL.md`](../notifications-basics/SKILL.md) — front door + mental model.
65
- - [`configure-notifications/SKILL.md`](../configure-notifications/SKILL.md) — `preferences` / `rateLimit` slots that emit `skipped`.
66
- - [`send-ad-hoc/SKILL.md`](../send-ad-hoc/SKILL.md) — when `notifiable` is undefined in events.
64
+ - The `notifications-basics` topic — front door + mental model.
65
+ - The `configure-notifications` topic — `preferences` / `rateLimit` slots that emit `skipped`.
66
+ - The `send-ad-hoc` topic — when `notifiable` is undefined in events.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: queue-notifications
3
- description: "Send notifications asynchronously through the herald backend or the BullMQ driver. Configure a QueueDispatcher in config/notifications.ts, then use notif.queue(to, data, options?) to enqueue rendered jobs. Herald uses heraldQueue() and startNotificationsWorker(); bullmqQueue({ attempts, backoff }) from @warlock.js/notifications uses BullMQ (lazy-loading the optional @warlock.js/queue peer), supports retries, and honours SendOptions.delay. Without a queue configured, .queue() rejects NoQueueDispatcherError. Triggers: heraldQueue, bullmqQueue, startNotificationsWorker, QueueDispatcher, .queue(, async notifications, queue notifications, notification worker, background notifications, notifications.dispatch. Skip: synchronous sends - @warlock.js/notifications/define-notification/SKILL.md; herald itself - @warlock.js/herald/*."
3
+ description: "Send notifications asynchronously through the herald backend or the BullMQ driver. Configure a QueueDispatcher in config/notifications.ts, then use notif.queue(to, data, options?) to enqueue rendered jobs. Herald uses heraldQueue() and startNotificationsWorker(); bullmqQueue({ attempts, backoff }) from @warlock.js/notifications uses BullMQ (lazy-loading the optional @warlock.js/queue peer), supports retries, and honours SendOptions.delay. Without a queue configured, .queue() rejects NoQueueDispatcherError. Triggers: heraldQueue, bullmqQueue, startNotificationsWorker, QueueDispatcher, .queue(, async notifications, queue notifications, notification worker, background notifications, notifications.dispatch. Skip: synchronous sends - the `define-notification` topic; herald itself - @warlock.js/herald/*."
4
4
  ---
5
5
 
6
6
  # Queue notifications (async)
@@ -17,7 +17,7 @@ import {
17
17
  inApp,
18
18
  mailChannel,
19
19
  } from "@warlock.js/notifications";
20
- import { Notification } from "app/notifications/notification.model";
20
+ import { Notification } from "app/notifications/models/notification/notification.model";
21
21
 
22
22
  const config: NotificationConfig = {
23
23
  channels: { mail: mailChannel(), database: inApp.configure({ model: Notification }) },
@@ -105,6 +105,6 @@ await orderShipped.queue(user, { order }, { idempotencyKey: `ship:${order.id}` }
105
105
 
106
106
  ## See also
107
107
 
108
- - [`define-notification/SKILL.md`](../define-notification/SKILL.md) - `.queue()` on a defined notification.
109
- - [`configure-notifications/SKILL.md`](../configure-notifications/SKILL.md) - the `queue` config slot.
110
- - [`@warlock.js/herald/herald-basics/SKILL.md`](../../../herald/skills/herald-basics/SKILL.md) - connecting the broker.
108
+ - The `define-notification` topic - `.queue()` on a defined notification.
109
+ - The `configure-notifications` topic - the `queue` config slot.
110
+ - The `herald-basics` topic of the `warlock-js-herald` skill - connecting the broker.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: send-ad-hoc
3
- description: 'Ad-hoc per-channel send via the `notify.<channel>(to, payload, options?)` Proxy facade. Works for any channel registered in `NotificationChannels` (built-in or custom). `to` accepts a `Notifiable` model OR a raw route string (`"x@y.com"`); `payload` is typed per channel via the registry; `options` is the standard `SendOptions`. `notify.channel(name).send(...)` is the runtime escape when the channel name is not a compile-time literal. Type-based preference gating applies when a type is known — explicit via `options.type` OR auto-detected from a database payload''s `type` field. For multi-channel sends use `defineNotification` instead — there is no inline `notify(to, { via, ... })` form on purpose. Triggers: `notify.<channel>`, `notify.channel(name)`, `notify.mail`, `notify.database`, "send a one-off notification", "ad-hoc notification", "send an email without defining a notification", "raw email target", "dynamic channel name"; typical import `import { notify } from "@warlock.js/notifications"`. Skip: reusable multi-channel notifications — `@warlock.js/notifications/define-notification/SKILL.md`; configuring channels — `@warlock.js/notifications/configure-notifications/SKILL.md`.'
3
+ description: 'Ad-hoc per-channel send via the `notify.<channel>(to, payload, options?)` Proxy facade. Works for any channel registered in `NotificationChannels` (built-in or custom). `to` accepts a `Notifiable` model OR a raw route string (`"x@y.com"`); `payload` is typed per channel via the registry; `options` is the standard `SendOptions`. `notify.channel(name).send(...)` is the runtime escape when the channel name is not a compile-time literal. Type-based preference gating applies when a type is known — explicit via `options.type` OR auto-detected from a database payload''s `type` field. For multi-channel sends use `defineNotification` instead — there is no inline `notify(to, { via, ... })` form on purpose. Triggers: `notify.<channel>`, `notify.channel(name)`, `notify.mail`, `notify.database`, "send a one-off notification", "ad-hoc notification", "send an email without defining a notification", "raw email target", "dynamic channel name"; typical import `import { notify } from "@warlock.js/notifications"`. Skip: reusable multi-channel notifications — the `define-notification` topic; configuring channels — the `configure-notifications` topic.'
4
4
  ---
5
5
 
6
6
  # `notify.<channel>` — ad-hoc, per-channel sends
@@ -14,7 +14,7 @@ await notify.mail(user, { subject: "Welcome", html: "<p>Hi!</p>" });
14
14
  await notify.database(user, { type: "welcome", title: "Welcome!" });
15
15
  ```
16
16
 
17
- For **multi-channel** sends, use [`defineNotification`](../define-notification/SKILL.md) — that's the reusable pattern and the only mental model for "send through several channels at once" (no inline multi-channel overload).
17
+ For **multi-channel** sends, use `defineNotification` (the `define-notification` topic) — that's the reusable pattern and the only mental model for "send through several channels at once" (no inline multi-channel overload).
18
18
 
19
19
  ## Shape
20
20
 
@@ -46,7 +46,7 @@ const channelName = await chooseChannelForUser(user);
46
46
  await notify.channel(channelName).send(user, payload);
47
47
  ```
48
48
 
49
- This is the only path with `unknown`-typed payloads — prefer the literal `notify.<channel>` when you can. `to` is still what decides the recipient: even for the `database` channel, a `recipientId`-shaped key on `payload` (or the model's physical recipient column name) is stripped before the row is built, so an untyped payload assembled from request JSON can't redirect the write to another recipient — see [`use-in-app/SKILL.md`](../use-in-app/SKILL.md#createfor-write-side--no-idor-either-since-4150).
49
+ This is the only path with `unknown`-typed payloads — prefer the literal `notify.<channel>` when you can. `to` is still what decides the recipient: even for the `database` channel, a `recipientId`-shaped key on `payload` (or the model's physical recipient column name) is stripped before the row is built, so an untyped payload assembled from request JSON can't redirect the write to another recipient — see the `createFor` write-side section of the `use-in-app` topic.
50
50
 
51
51
  ## Opt into preference/rate-limit gating
52
52
 
@@ -65,7 +65,7 @@ await notify.database(user, { type: "welcome", title: "Welcome!" });
65
65
 
66
66
  ## Custom channels
67
67
 
68
- After registering a custom channel (see [`define-channel`](../define-channel/SKILL.md)), it's first-class:
68
+ After registering a custom channel (see the `define-channel` topic), it's first-class:
69
69
 
70
70
  ```ts
71
71
  await notify.discord(user, { content: "Build finished 🎉" });
@@ -89,7 +89,7 @@ await notify.slack(staff, { text: "Deploy starting" });
89
89
 
90
90
  ## See also
91
91
 
92
- - [`notifications-basics/SKILL.md`](../notifications-basics/SKILL.md) — front door + mental model.
93
- - [`define-notification/SKILL.md`](../define-notification/SKILL.md) — reusable multi-channel.
94
- - [`define-channel/SKILL.md`](../define-channel/SKILL.md) — register a custom channel.
95
- - [`observe-notifications/SKILL.md`](../observe-notifications/SKILL.md) — `sending` / `sent` / `failed` / `skipped` events.
92
+ - The `notifications-basics` topic — front door + mental model.
93
+ - The `define-notification` topic — reusable multi-channel.
94
+ - The `define-channel` topic — register a custom channel.
95
+ - The `observe-notifications` topic — `sending` / `sent` / `failed` / `skipped` events.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: use-in-app
3
- description: 'Use the `inApp` facade for the in-app/database channel''s READ side: `inApp.configure({ model: Notification })` or `{ repository: myRepo }` binds the store AND returns the channel; `inApp.list / listUnread / countUnread / markAsRead / markAsUnread` are RECIPIENT-SCOPED by construction (no IDOR — `markAsRead(user, id)` cannot flip another user''s row even with a foreign id). `countUnread` uses `RepositoryManager.countCached` for the badge fast-path. Triggers: `inApp.configure`, `inApp.list`, `inApp.listUnread`, `inApp.countUnread`, `inApp.markAsRead`, `inApp.markAsUnread`, `BaseNotificationsRepository`, `DatabaseNotification`, `NotificationsFilter`, "in-app notifications", "mark notification as read", "unread count", "notification badge", "IDOR-safe markAsRead"; typical import `import { inApp } from "@warlock.js/notifications"`. Skip: writing notifications (use `defineNotification` or `notify.database`) — `@warlock.js/notifications/define-notification/SKILL.md`; the migration columns — `@warlock.js/notifications/write-notification-migration/SKILL.md`; wiring it into config — `@warlock.js/notifications/configure-notifications/SKILL.md`.'
3
+ description: 'Use the `inApp` facade for the in-app/database channel''s READ side: `inApp.configure({ model: Notification })` or `{ repository: myRepo }` binds the store AND returns the channel; `inApp.list / listUnread / countUnread / markAsRead / markAsUnread` are RECIPIENT-SCOPED by construction (no IDOR — `markAsRead(user, id)` cannot flip another user''s row even with a foreign id). `countUnread` uses `RepositoryManager.countCached` for the badge fast-path. Triggers: `inApp.configure`, `inApp.list`, `inApp.listUnread`, `inApp.countUnread`, `inApp.markAsRead`, `inApp.markAsUnread`, `BaseNotificationsRepository`, `DatabaseNotification`, `NotificationsFilter`, "in-app notifications", "mark notification as read", "unread count", "notification badge", "IDOR-safe markAsRead"; typical import `import { inApp } from "@warlock.js/notifications"`. Skip: writing notifications (use `defineNotification` or `notify.database`) — the `define-notification` topic; the migration columns — the `write-notification-migration` topic; wiring it into config — the `configure-notifications` topic.'
4
4
  ---
5
5
 
6
6
  # `inApp` — in-app notification read API
@@ -112,7 +112,7 @@ the repo; there is no `isRead` filter key to remember.
112
112
 
113
113
  ## Your model — declare `table`, `schema`, and `columnMap`
114
114
 
115
- ```ts title="src/app/notifications/notification.model.ts"
115
+ ```ts title="src/app/notifications/models/notification/notification.model.ts"
116
116
  import { RegisterModel } from "@warlock.js/cascade";
117
117
  import { v } from "@warlock.js/seal";
118
118
  import { DatabaseNotification, type NotificationColumnMap } from "@warlock.js/notifications";
@@ -147,9 +147,9 @@ repo filter, and the accessors all follow. For a different driver's naming
147
147
 
148
148
  `columnMap` already covers column naming. Subclass only for EXTRA query methods:
149
149
 
150
- ```ts title="src/app/notifications/notifications.repository.ts"
150
+ ```ts title="src/app/notifications/repositories/notifications.repository.ts"
151
151
  import { BaseNotificationsRepository } from "@warlock.js/notifications";
152
- import { Notification } from "./notification.model";
152
+ import { Notification } from "../models/notification/notification.model";
153
153
 
154
154
  export class NotificationsRepository extends BaseNotificationsRepository<Notification> {
155
155
  public source = Notification; // its columnMap still drives filter + write mapping
@@ -166,7 +166,7 @@ database: inApp.configure({ repository: notificationsRepository }),
166
166
 
167
167
  ## See also
168
168
 
169
- - [`notifications-basics/SKILL.md`](../notifications-basics/SKILL.md) — package front door.
170
- - [`configure-notifications/SKILL.md`](../configure-notifications/SKILL.md) — wire `inApp.configure` into the config.
171
- - [`write-notification-migration/SKILL.md`](../write-notification-migration/SKILL.md) — `notificationColumns(Notification)`, named from `columnMap`.
172
- - [`define-notification/SKILL.md`](../define-notification/SKILL.md) — create rows via the database channel.
169
+ - The `notifications-basics` topic — package front door.
170
+ - The `configure-notifications` topic — wire `inApp.configure` into the config.
171
+ - The `write-notification-migration` topic — `notificationColumns(Notification)`, named from `columnMap`.
172
+ - The `define-notification` topic — create rows via the database channel.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: write-notification-migration
3
- description: 'Create the notifications table with the `notificationColumns(Notification)` factory + cascade `Migration.create`. Column NAMES come from the model''s `columnMap` (recipient / tenant / readAt / isRead); the fixed columns are `type` / `title` / `body` / `payload` / `idempotency_key`. Set `{ idType: "bigint" }` for integer-key apps; UUID remains the default. Read-state follows columnMap presence: `readAt` → nullable timestamp, `isRead` → indexed boolean, both → both. Defaults to `user_id` + `read_at` when no columnMap. Spread + extend for extras (FK references, composite indexes). Triggers: `notificationColumns`, `Migration.create` for notifications, "create the notifications table", "notification migration", "add organization_id to notifications", `is_read` column, `read_at` column, `idempotency_key` column; typical import `import { Migration } from "@warlock.js/cascade"; import { notificationColumns } from "@warlock.js/notifications"`. Skip: generic cascade migration writing — `@warlock.js/cascade/write-migration/SKILL.md`; the model itself — `@warlock.js/notifications/use-in-app/SKILL.md`.'
3
+ description: 'Create the notifications table with the `notificationColumns(Notification)` factory + cascade `Migration.create`. Column NAMES come from the model''s `columnMap` (recipient / tenant / readAt / isRead); the fixed columns are `type` / `title` / `body` / `payload` / `idempotency_key`. Set `{ idType: "bigint" }` for integer-key apps; UUID remains the default. Read-state follows columnMap presence: `readAt` → nullable timestamp, `isRead` → indexed boolean, both → both. Defaults to `user_id` + `read_at` when no columnMap. Spread + extend for extras (FK references, composite indexes). Triggers: `notificationColumns`, `Migration.create` for notifications, "create the notifications table", "notification migration", "add organization_id to notifications", `is_read` column, `read_at` column, `idempotency_key` column; typical import `import { Migration } from "@warlock.js/cascade"; import { notificationColumns } from "@warlock.js/notifications"`. Skip: generic cascade migration writing — the `write-migration` topic of the `warlock-js-cascade` skill; the model itself — the `use-in-app` topic.'
4
4
  ---
5
5
 
6
6
  # Write the notifications migration
@@ -11,7 +11,7 @@ The package ships no table or migration (thin eject). You own the migration; the
11
11
 
12
12
  ## Common case — one line
13
13
 
14
- ```ts title="src/app/notifications/migrations/01-01-2026_00-00-00-notifications.migration.ts"
14
+ ```ts title="src/app/notifications/models/notification/migrations/01-01-2026_00-00-00-notifications.migration.ts"
15
15
  import { Migration } from "@warlock.js/cascade";
16
16
  import { notificationColumns } from "@warlock.js/notifications";
17
17
  import { Notification } from "../notification.model";
@@ -58,7 +58,7 @@ export default Migration.create(Notification, {
58
58
  });
59
59
  ```
60
60
 
61
- Mirror any extra column in the model `schema`. To make it filterable, add a method to a custom repository (see `use-in-app/SKILL.md`).
61
+ Mirror any extra column in the model `schema`. To make it filterable, add a method to a custom repository (see the `use-in-app` topic).
62
62
 
63
63
  ## Column naming follows `columnMap`
64
64
 
@@ -71,10 +71,10 @@ class Notification extends DatabaseNotification {
71
71
  // → notificationColumns(Notification) emits `userId` + `readAt`
72
72
  ```
73
73
 
74
- Without a model passed, defaults to `user_id` + `read_at` (read_at-only). See [`use-in-app/SKILL.md`](../use-in-app/SKILL.md) for the full `columnMap` shape.
74
+ Without a model passed, defaults to `user_id` + `read_at` (read_at-only). See the `use-in-app` topic for the full `columnMap` shape.
75
75
 
76
76
  ## See also
77
77
 
78
- - [`use-in-app/SKILL.md`](../use-in-app/SKILL.md) — the model + repository the migration backs.
79
- - [`@warlock.js/cascade/write-migration/SKILL.md`](../../../cascade/skills/write-migration/SKILL.md) — generic Cascade migration form, `Migration.alter`, etc.
80
- - [`@warlock.js/cascade/manage-data-sources/SKILL.md`](../../../cascade/skills/manage-data-sources/SKILL.md) — multi-data-source setup.
78
+ - The `use-in-app` topic — the model + repository the migration backs.
79
+ - The `write-migration` topic of the `warlock-js-cascade` skill — generic Cascade migration form, `Migration.alter`, etc.
80
+ - The `manage-data-sources` topic of the `warlock-js-cascade` skill — multi-data-source setup.