@warlock.js/notifications 5.12.0 → 5.14.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.
- package/CHANGELOG.md +12 -0
- package/cjs/{src-Cx9y1PWY.cjs → esm-vxGmLpQa.cjs} +207 -299
- package/cjs/esm-vxGmLpQa.cjs.map +1 -0
- package/cjs/index.cjs +118 -7
- package/cjs/index.cjs.map +1 -1
- package/cjs/rabbitmq-driver-wtDiBUNX.cjs +3 -0
- package/esm/index.d.mts +8 -1
- package/esm/index.mjs +4 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/communicators/broker-registry.d.mts +1 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/communicators/broker-registry.mjs +5 -5
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/communicators/broker-registry.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/communicators/broker.d.mts +1 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/communicators/broker.mjs +1 -7
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/communicators/broker.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/communicators/index.mjs +3 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/contracts/broker-driver.contract.d.mts +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/contracts/channel.contract.d.mts +1 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/decorators/consumable.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/decorators/consumable.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/decorators/index.mjs +3 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/drivers/index.mjs +5 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/index.mjs +4 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.d.mts +1 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/drivers/rabbitmq/rabbitmq-channel.mjs +6 -13
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.d.mts +1 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/drivers/rabbitmq/rabbitmq-driver.mjs +10 -11
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/index.d.mts +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.d.mts +1 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/message-managers/event-consumer.mjs +10 -22
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/message-managers/event-message.d.mts +1 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/message-managers/event-message.mjs +3 -20
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/message-managers/event-message.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/message-managers/index.mjs +3 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/message-managers/prepare-consumer-subscription.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/message-managers/prepare-consumer-subscription.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/types/channel.types.d.mts +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/types/registry.types.d.mts +1 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/use-case-broadcast.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/use-case-broadcast.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.d.mts +1 -0
- package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/utils/connect-to-broker.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm/utils/index.mjs +3 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/config.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/config.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/factory/index.mjs +3 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/factory/validate.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/factory/validate.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/factory/validators.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/factory/validators.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/helpers/date-helpers.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/helpers/date-helpers.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/helpers/get-field-value.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/helpers/get-field-value.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/helpers/index.mjs +3 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/helpers/is-empty-value.mjs +10 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/helpers/is-empty-value.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/helpers/path-helpers.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/helpers/path-helpers.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/helpers/validation-helpers.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/helpers/validation-helpers.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/index.d.mts +10 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/index.mjs +7 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/mutators/array-mutators.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/mutators/array-mutators.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/mutators/boolean-mutators.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/mutators/boolean-mutators.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/mutators/date-mutators.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/mutators/date-mutators.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/mutators/index.mjs +8 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/mutators/number-mutators.mjs +4 -4
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/mutators/number-mutators.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/mutators/object-mutators.mjs +4 -4
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/mutators/object-mutators.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/mutators/scalar-mutators.mjs +9 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/mutators/scalar-mutators.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/mutators/string-mutators.mjs +11 -11
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/mutators/string-mutators.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/array/array-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/array/array-rules.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/array/index.mjs +3 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/color/color-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/color/color-rules.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/color/index.mjs +3 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/common/enum.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/common/enum.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/common/equals-field-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/common/equals-field-rules.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/common/index.mjs +8 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/common/instanceof.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/common/instanceof.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/common/literal.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/common/literal.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/common/type-rules.mjs +2 -2
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/common/type-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/common/unknown-key.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/common/unknown-key.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/forbidden-if-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/forbidden-if-rules.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/index.mjs +12 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/present-if-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/present-if-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/present-unless-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/present-unless-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/present-with-rules.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/present-with-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/present-without-rules.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/present-without-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/required-if-rules.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-if-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/required-unless-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-unless-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/required-when-rule.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-when-rule.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/required-with-rules.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-with-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/conditional/required-without-rules.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-without-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/core/equal.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/core/equal.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/core/forbidden.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/core/forbidden.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/core/index.mjs +7 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/core/required.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/core/required.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/core/union.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/core/union.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/core/when.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/core/when.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/date/date-comparison-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/date/date-comparison-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/date/date-day-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/date/date-day-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/date/date-field-comparison-rules.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/date/date-field-comparison-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/date/date-period-rules.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/date/date-period-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/date/date-relative-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/date/date-relative-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/date/date-special-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/date/date-special-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/date/date.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/date/date.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/date/index.mjs +9 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/index.mjs +57 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/length/index.mjs +3 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/length/length-rules.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/length/length-rules.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/number/index.mjs +3 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/number/number-rules.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/number/number-rules.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/scalar/accepted-rule.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/scalar/accepted-rule.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/scalar/declined-rule.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/scalar/declined-rule.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/scalar/index.mjs +4 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/alpha.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/alpha.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/credit-card.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/credit-card.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/email.mjs +2 -2
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/email.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/id-formats.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/id-formats.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/index.mjs +13 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/ip.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/ip.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/matches.mjs +4 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/pattern.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/pattern.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/string-comparison.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/string-comparison.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/strong-password-rule.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/strong-password-rule.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/url.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/url.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/string/without-whitespace.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/rules/string/without-whitespace.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.d.mts +32 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.d.mts.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/standard-schema/json-schema.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/standard-schema/map-result.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/standard-schema/map-result.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/standard-schema/types.d.mts +97 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/standard-schema/types.d.mts.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/conditional-types.d.mts +16 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/conditional-types.d.mts.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/context-types.d.mts +42 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/context-types.d.mts.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/data-transformer-types.d.mts +30 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/data-transformer-types.d.mts.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/types/date-types.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/date-types.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/mutator-types.d.mts +28 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/mutator-types.d.mts.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/result-types.d.mts +17 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/result-types.d.mts.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/rule-types.d.mts +53 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/rule-types.d.mts.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/schema-types.d.mts +11 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/types/schema-types.d.mts.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/any-validator.mjs +6 -9
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/any-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/array-validator.mjs +1 -2
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/array-validator.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/base-validator.d.mts +492 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/base-validator.d.mts.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/base-validator.mjs +16 -49
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/base-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/boolean-validator.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/boolean-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/computed-validator.mjs +1 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/computed-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/date-validator.mjs +3 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/date-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/discriminated-union-validator.mjs +2 -6
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/discriminated-union-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/float-validator.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/float-validator.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/index.mjs +28 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/instanceof-validator.mjs +1 -2
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/instanceof-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/int-validator.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/int-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/lazy-validator.mjs +1 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/lazy-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/literal-validator.mjs +1 -2
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/literal-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/managed-validator.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/managed-validator.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.d.mts +91 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.d.mts.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/methods/equality-conditional-methods.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.d.mts +59 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.d.mts.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/methods/forbidden-methods.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.d.mts +103 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.d.mts.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/methods/present-methods.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.mjs.map +1 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.d.mts +194 -0
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.d.mts.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/methods/required-methods.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/number-validator.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/number-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/numeric-validator.mjs +2 -2
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/numeric-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/object-validator.mjs +7 -8
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/object-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/primitive-validator.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/primitive-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/record-validator.mjs +2 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/record-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/scalar-validator.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/scalar-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/string-validator.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/string-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/tuple-validator.mjs +1 -2
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/tuple-validator.mjs.map +1 -0
- package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/validators/union-validator.mjs +1 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm/validators/union-validator.mjs.map +1 -0
- package/esm/queue/bullmq-queue.d.mts +25 -0
- package/esm/queue/bullmq-queue.d.mts.map +1 -0
- package/esm/queue/bullmq-queue.mjs +65 -0
- package/esm/queue/bullmq-queue.mjs.map +1 -0
- package/esm/queue/index.d.mts +4 -1
- package/esm/queue/index.mjs +3 -0
- package/esm/queue/load-herald.d.mts.map +1 -1
- package/esm/queue/load-herald.mjs +1 -1
- package/esm/queue/load-queue.d.mts +11 -0
- package/esm/queue/load-queue.d.mts.map +1 -0
- package/esm/queue/load-queue.mjs +32 -0
- package/esm/queue/load-queue.mjs.map +1 -0
- package/esm/queue/queue-package-not-installed.error.d.mts +13 -0
- package/esm/queue/queue-package-not-installed.error.d.mts.map +1 -0
- package/esm/queue/queue-package-not-installed.error.mjs +21 -0
- package/esm/queue/queue-package-not-installed.error.mjs.map +1 -0
- package/llms-full.txt +64 -36
- package/llms.txt +1 -1
- package/package.json +14 -6
- package/skills/queue-notifications/SKILL.md +64 -36
- package/cjs/rabbitmq-driver-Dn0M0-ln.cjs +0 -3
- package/cjs/src-Cx9y1PWY.cjs.map +0 -1
- package/esm/herald/src/communicators/broker-registry.mjs.map +0 -1
- package/esm/herald/src/communicators/broker.mjs.map +0 -1
- package/esm/herald/src/communicators/index.mjs +0 -4
- package/esm/herald/src/decorators/consumable.mjs.map +0 -1
- package/esm/herald/src/decorators/index.mjs +0 -3
- package/esm/herald/src/drivers/index.mjs +0 -5
- package/esm/herald/src/drivers/rabbitmq/index.mjs +0 -4
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-channel.mjs.map +0 -1
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs.map +0 -1
- package/esm/herald/src/message-managers/event-consumer.mjs.map +0 -1
- package/esm/herald/src/message-managers/event-message.mjs.map +0 -1
- package/esm/herald/src/message-managers/index.mjs +0 -4
- package/esm/herald/src/message-managers/prepare-consumer-subscription.mjs.map +0 -1
- package/esm/herald/src/use-case-broadcast.mjs.map +0 -1
- package/esm/herald/src/utils/connect-to-broker.mjs.map +0 -1
- package/esm/herald/src/utils/index.mjs +0 -3
- package/esm/seal/src/config.mjs.map +0 -1
- package/esm/seal/src/factory/index.mjs +0 -4
- package/esm/seal/src/factory/validate.mjs.map +0 -1
- package/esm/seal/src/factory/validators.mjs.map +0 -1
- package/esm/seal/src/helpers/date-helpers.mjs.map +0 -1
- package/esm/seal/src/helpers/get-field-value.mjs.map +0 -1
- package/esm/seal/src/helpers/index.mjs +0 -6
- package/esm/seal/src/helpers/is-empty-value.mjs +0 -10
- package/esm/seal/src/helpers/is-empty-value.mjs.map +0 -1
- package/esm/seal/src/helpers/path-helpers.mjs.map +0 -1
- package/esm/seal/src/helpers/validation-helpers.mjs.map +0 -1
- package/esm/seal/src/mutators/array-mutators.mjs.map +0 -1
- package/esm/seal/src/mutators/boolean-mutators.mjs.map +0 -1
- package/esm/seal/src/mutators/date-mutators.mjs.map +0 -1
- package/esm/seal/src/mutators/index.mjs +0 -9
- package/esm/seal/src/mutators/number-mutators.mjs.map +0 -1
- package/esm/seal/src/mutators/object-mutators.mjs.map +0 -1
- package/esm/seal/src/mutators/scalar-mutators.mjs +0 -9
- package/esm/seal/src/mutators/scalar-mutators.mjs.map +0 -1
- package/esm/seal/src/mutators/string-mutators.mjs.map +0 -1
- package/esm/seal/src/rules/array/array-rules.mjs.map +0 -1
- package/esm/seal/src/rules/array/index.mjs +0 -3
- package/esm/seal/src/rules/color/color-rules.mjs.map +0 -1
- package/esm/seal/src/rules/color/index.mjs +0 -3
- package/esm/seal/src/rules/common/enum.mjs.map +0 -1
- package/esm/seal/src/rules/common/equals-field-rules.mjs.map +0 -1
- package/esm/seal/src/rules/common/index.mjs +0 -8
- package/esm/seal/src/rules/common/instanceof.mjs.map +0 -1
- package/esm/seal/src/rules/common/literal.mjs.map +0 -1
- package/esm/seal/src/rules/common/type-rules.mjs.map +0 -1
- package/esm/seal/src/rules/common/unknown-key.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/forbidden-if-rules.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/index.mjs +0 -12
- package/esm/seal/src/rules/conditional/present-if-rules.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/present-unless-rules.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/present-with-rules.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/present-without-rules.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/required-if-rules.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/required-unless-rules.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/required-when-rule.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/required-with-rules.mjs.map +0 -1
- package/esm/seal/src/rules/conditional/required-without-rules.mjs.map +0 -1
- package/esm/seal/src/rules/core/equal.mjs.map +0 -1
- package/esm/seal/src/rules/core/forbidden.mjs.map +0 -1
- package/esm/seal/src/rules/core/index.mjs +0 -7
- package/esm/seal/src/rules/core/required.mjs.map +0 -1
- package/esm/seal/src/rules/core/union.mjs.map +0 -1
- package/esm/seal/src/rules/core/when.mjs.map +0 -1
- package/esm/seal/src/rules/date/date-comparison-rules.mjs.map +0 -1
- package/esm/seal/src/rules/date/date-day-rules.mjs.map +0 -1
- package/esm/seal/src/rules/date/date-field-comparison-rules.mjs.map +0 -1
- package/esm/seal/src/rules/date/date-period-rules.mjs.map +0 -1
- package/esm/seal/src/rules/date/date-relative-rules.mjs.map +0 -1
- package/esm/seal/src/rules/date/date-special-rules.mjs.map +0 -1
- package/esm/seal/src/rules/date/date.mjs.map +0 -1
- package/esm/seal/src/rules/date/index.mjs +0 -9
- package/esm/seal/src/rules/index.mjs +0 -54
- package/esm/seal/src/rules/length/index.mjs +0 -3
- package/esm/seal/src/rules/length/length-rules.mjs.map +0 -1
- package/esm/seal/src/rules/number/index.mjs +0 -3
- package/esm/seal/src/rules/number/number-rules.mjs.map +0 -1
- package/esm/seal/src/rules/scalar/accepted-rule.mjs.map +0 -1
- package/esm/seal/src/rules/scalar/declined-rule.mjs.map +0 -1
- package/esm/seal/src/rules/scalar/index.mjs +0 -4
- package/esm/seal/src/rules/string/alpha.mjs.map +0 -1
- package/esm/seal/src/rules/string/credit-card.mjs.map +0 -1
- package/esm/seal/src/rules/string/email.mjs.map +0 -1
- package/esm/seal/src/rules/string/id-formats.mjs.map +0 -1
- package/esm/seal/src/rules/string/index.mjs +0 -13
- package/esm/seal/src/rules/string/ip.mjs.map +0 -1
- package/esm/seal/src/rules/string/matches.mjs +0 -4
- package/esm/seal/src/rules/string/pattern.mjs.map +0 -1
- package/esm/seal/src/rules/string/string-comparison.mjs.map +0 -1
- package/esm/seal/src/rules/string/strong-password-rule.mjs.map +0 -1
- package/esm/seal/src/rules/string/url.mjs.map +0 -1
- package/esm/seal/src/rules/string/without-whitespace.mjs.map +0 -1
- package/esm/seal/src/standard-schema/json-schema.mjs.map +0 -1
- package/esm/seal/src/standard-schema/map-result.mjs.map +0 -1
- package/esm/seal/src/types/date-types.mjs.map +0 -1
- package/esm/seal/src/validators/any-validator.mjs.map +0 -1
- package/esm/seal/src/validators/array-validator.mjs.map +0 -1
- package/esm/seal/src/validators/base-validator.mjs.map +0 -1
- package/esm/seal/src/validators/boolean-validator.mjs.map +0 -1
- package/esm/seal/src/validators/computed-validator.mjs.map +0 -1
- package/esm/seal/src/validators/date-validator.mjs.map +0 -1
- package/esm/seal/src/validators/discriminated-union-validator.mjs.map +0 -1
- package/esm/seal/src/validators/float-validator.mjs.map +0 -1
- package/esm/seal/src/validators/index.mjs +0 -28
- package/esm/seal/src/validators/instanceof-validator.mjs.map +0 -1
- package/esm/seal/src/validators/int-validator.mjs.map +0 -1
- package/esm/seal/src/validators/lazy-validator.mjs.map +0 -1
- package/esm/seal/src/validators/literal-validator.mjs.map +0 -1
- package/esm/seal/src/validators/managed-validator.mjs.map +0 -1
- package/esm/seal/src/validators/methods/equality-conditional-methods.mjs.map +0 -1
- package/esm/seal/src/validators/methods/forbidden-methods.mjs.map +0 -1
- package/esm/seal/src/validators/methods/present-methods.mjs.map +0 -1
- package/esm/seal/src/validators/methods/required-methods.mjs.map +0 -1
- package/esm/seal/src/validators/number-validator.mjs.map +0 -1
- package/esm/seal/src/validators/numeric-validator.mjs.map +0 -1
- package/esm/seal/src/validators/object-validator.mjs.map +0 -1
- package/esm/seal/src/validators/primitive-validator.mjs.map +0 -1
- package/esm/seal/src/validators/record-validator.mjs.map +0 -1
- package/esm/seal/src/validators/scalar-validator.mjs.map +0 -1
- package/esm/seal/src/validators/string-validator.mjs.map +0 -1
- package/esm/seal/src/validators/tuple-validator.mjs.map +0 -1
- package/esm/seal/src/validators/union-validator.mjs.map +0 -1
- /package/esm/{herald/src → node_modules/.pnpm/@warlock.js_herald@5.13.0_@_59180b5cb298943e15ce89ac6e9c641d/node_modules/@warlock.js/herald/esm}/index.mjs +0 -0
- /package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/file/dimensions.mjs +0 -0
- /package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/file/file-size.mjs +0 -0
- /package/esm/{seal/src → node_modules/.pnpm/@warlock.js_seal@5.13.0/node_modules/@warlock.js/seal/esm}/rules/file/index.mjs +0 -0
package/llms.txt
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
- [define-notification](@warlock.js/notifications/define-notification/SKILL.md): Build a reusable multi-channel notification with `defineNotification<Data>({ type, via, ...renderers })`. `type` is the stable identifier preference/rate-limit gates use AND defaults the database channel's `type`. `via` is `ChannelName[]` OR `(data, to) => ChannelName[]` for per-recipient channel selection. Renderers are `(data, to, ctx) => NotificationChannels[C]`; `ctx` carries `locale` + `meta` from `SendOptions`. The returned object exposes `.send(to|to[], data, options?)`, `.queue(to|to[], data, options?)`, and `.only(...channels)`. Per-recipient + per-channel `Promise.allSettled` isolates failures; the database channel's `type` is auto-defaulted from `def.type`; `SendOptions.idempotencyKey` is injected into the database payload. Triggers: `defineNotification`, `via`, "reusable notification", "multi-channel notification", "send through several channels at once", "render per channel", `RenderContext`, `def.type`; "force on a notification", "queue with delay"; typical import `import { defineNotification } from "@warlock.js/notifications"`. Skip: single-channel ad-hoc sends — `@warlock.js/notifications/send-ad-hoc/SKILL.md`; adding a brand-new channel — `@warlock.js/notifications/define-channel/SKILL.md`; observing dispatch outcomes — `@warlock.js/notifications/observe-notifications/SKILL.md`.
|
|
12
12
|
- [notifications-basics](@warlock.js/notifications/notifications-basics/SKILL.md): Front-door for `@warlock.js/notifications` — what the package is, when to reach for it, and the four moving parts (channel registry, defineNotification, notify, inApp). Multi-channel dispatch: define once, fire anywhere. Recipients are cascade `Model` instances; payloads are typed per channel via a declaration-merge `NotificationChannels` registry; reusable definitions go through `defineNotification`; ad-hoc per-channel sends go through the `notify.<channel>` proxy; the in-app database channel is read via the `inApp` facade. Phase 1 ships `mail` + `database`; bridges-backed channels (whatsapp/telegram/push/slack) arrive in Phase 2. Triggers: `defineNotification`, `notify.<channel>`, `inApp.configure`, `setNotificationConfig`, `NotificationConfig`, `NotificationChannels`; "send a notification", "in-app notifications", "what channels can I use", "what is `@warlock.js/notifications`", "where do I start"; typical import `import { defineNotification, notify, inApp } from "@warlock.js/notifications"`. Skip: configuring channels in `config/notifications.ts` — `@warlock.js/notifications/configure-notifications/SKILL.md`; building a multi-channel definition — `@warlock.js/notifications/define-notification/SKILL.md`; reading in-app rows — `@warlock.js/notifications/use-in-app/SKILL.md`.
|
|
13
13
|
- [observe-notifications](@warlock.js/notifications/observe-notifications/SKILL.md): 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`.
|
|
14
|
-
- [queue-notifications](@warlock.js/notifications/queue-notifications/SKILL.md): Send notifications asynchronously
|
|
14
|
+
- [queue-notifications](@warlock.js/notifications/queue-notifications/SKILL.md): 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/*.
|
|
15
15
|
- [send-ad-hoc](@warlock.js/notifications/send-ad-hoc/SKILL.md): 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`.
|
|
16
16
|
- [use-in-app](@warlock.js/notifications/use-in-app/SKILL.md): 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`.
|
|
17
17
|
- [write-notification-migration](@warlock.js/notifications/write-notification-migration/SKILL.md): 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`. 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`.
|
package/package.json
CHANGED
|
@@ -5,13 +5,21 @@
|
|
|
5
5
|
"environment": "server"
|
|
6
6
|
},
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@warlock.js/cache": "5.
|
|
9
|
-
"@warlock.js/cascade": "5.
|
|
10
|
-
"@warlock.js/core": "5.
|
|
11
|
-
"@warlock.js/logger": "5.
|
|
8
|
+
"@warlock.js/cache": "5.14.0",
|
|
9
|
+
"@warlock.js/cascade": "5.14.0",
|
|
10
|
+
"@warlock.js/core": "5.14.0",
|
|
11
|
+
"@warlock.js/logger": "5.14.0"
|
|
12
12
|
},
|
|
13
13
|
"optionalDependencies": {
|
|
14
|
-
"@warlock.js/herald": "5.
|
|
14
|
+
"@warlock.js/herald": "5.14.0"
|
|
15
|
+
},
|
|
16
|
+
"peerDependencies": {
|
|
17
|
+
"@warlock.js/queue": "5.14.0"
|
|
18
|
+
},
|
|
19
|
+
"peerDependenciesMeta": {
|
|
20
|
+
"@warlock.js/queue": {
|
|
21
|
+
"optional": true
|
|
22
|
+
}
|
|
15
23
|
},
|
|
16
24
|
"repository": {
|
|
17
25
|
"type": "git",
|
|
@@ -27,7 +35,7 @@
|
|
|
27
35
|
],
|
|
28
36
|
"author": "hassanzohdy",
|
|
29
37
|
"license": "MIT",
|
|
30
|
-
"version": "5.
|
|
38
|
+
"version": "5.14.0",
|
|
31
39
|
"main": "./cjs/index.cjs",
|
|
32
40
|
"module": "./esm/index.mjs",
|
|
33
41
|
"types": "./esm/index.d.mts",
|
|
@@ -1,81 +1,109 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: queue-notifications
|
|
3
|
-
description:
|
|
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/*."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Queue notifications (async)
|
|
7
7
|
|
|
8
|
-
Move slow channels (SMTP, HTTP) off the request path. `.queue()`
|
|
9
|
-
|
|
8
|
+
Move slow channels (SMTP, HTTP) off the request path. `.queue()` renders the
|
|
9
|
+
payload and resolves the route before passing a serializable job to a dispatcher.
|
|
10
10
|
|
|
11
|
-
## Wire the dispatcher
|
|
11
|
+
## Wire the herald dispatcher
|
|
12
12
|
|
|
13
13
|
```ts title="src/config/notifications.ts"
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
type NotificationConfig,
|
|
16
|
+
heraldQueue,
|
|
17
|
+
inApp,
|
|
18
|
+
mailChannel,
|
|
19
|
+
} from "@warlock.js/notifications";
|
|
15
20
|
import { Notification } from "app/notifications/notification.model";
|
|
16
21
|
|
|
17
22
|
const config: NotificationConfig = {
|
|
18
23
|
channels: { mail: mailChannel(), database: inApp.configure({ model: Notification }) },
|
|
19
|
-
queue: heraldQueue(),
|
|
24
|
+
queue: heraldQueue(),
|
|
20
25
|
};
|
|
21
26
|
|
|
22
|
-
export default config;
|
|
27
|
+
export default config;
|
|
23
28
|
```
|
|
24
29
|
|
|
25
|
-
`heraldQueue({ channel?, broker? })` publishes to `"notifications.dispatch"`
|
|
26
|
-
the default broker unless overridden. It lazy-imports `@warlock.js/herald`;
|
|
27
|
-
that package
|
|
30
|
+
`heraldQueue({ channel?, broker? })` publishes to `"notifications.dispatch"`
|
|
31
|
+
on the default broker unless overridden. It lazy-imports `@warlock.js/herald`;
|
|
32
|
+
if that package is missing, the first `.queue()` throws an install message.
|
|
28
33
|
|
|
29
|
-
|
|
30
|
-
config error, not a silent no-op.
|
|
34
|
+
## Use BullMQ for delayed or retried delivery
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
Use the `bullmq` driver instead of the herald dispatcher — it ships inside
|
|
37
|
+
`@warlock.js/notifications` itself and lazy-loads `@warlock.js/queue` (an
|
|
38
|
+
OPTIONAL peer) the first time `.queue()` runs:
|
|
33
39
|
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
```ts title="src/config/notifications.ts"
|
|
41
|
+
import { type NotificationConfig, bullmqQueue, mailChannel } from "@warlock.js/notifications";
|
|
42
|
+
|
|
43
|
+
const config: NotificationConfig = {
|
|
44
|
+
channels: { mail: mailChannel() },
|
|
45
|
+
queue: bullmqQueue({ attempts: 3, backoff: { type: "exponential", delay: 5000 } }),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default config;
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The BullMQ driver honours `SendOptions.delay`: numeric delays are seconds and
|
|
52
|
+
string delays use the normal duration syntax, such as `"10m"`. It also supports
|
|
53
|
+
BullMQ retries through `attempts` and `backoff`. If `@warlock.js/queue` isn't
|
|
54
|
+
installed, the first `.queue()` throws `QueuePackageNotInstalledError` naming
|
|
55
|
+
`warlock add queue`.
|
|
56
|
+
|
|
57
|
+
> **Deprecated:** `queueNotificationDispatcher` from
|
|
58
|
+
> `@warlock.js/queue/notifications` still works for this release (it logs a
|
|
59
|
+
> one-time deprecation warning) and is removed next release. Migrate to
|
|
60
|
+
> `bullmqQueue` above — same option names (`queue`, `attempts`, `backoff`).
|
|
61
|
+
|
|
62
|
+
## Run the herald worker
|
|
63
|
+
|
|
64
|
+
In a worker entrypoint (or the web process), after the config and herald broker
|
|
65
|
+
are up:
|
|
36
66
|
|
|
37
67
|
```ts
|
|
38
68
|
import { startNotificationsWorker } from "@warlock.js/notifications";
|
|
39
69
|
|
|
40
|
-
await startNotificationsWorker();
|
|
70
|
+
await startNotificationsWorker();
|
|
41
71
|
```
|
|
42
72
|
|
|
43
|
-
The worker
|
|
44
|
-
`channel.send({ payload, route, options })`. The
|
|
45
|
-
|
|
46
|
-
worker needs no recipient model.
|
|
73
|
+
The worker looks up the channel by name and runs
|
|
74
|
+
`channel.send({ payload, route, options })`. The worker needs no recipient model
|
|
75
|
+
because rendering happened at enqueue time.
|
|
47
76
|
|
|
48
77
|
## Send
|
|
49
78
|
|
|
50
79
|
```ts
|
|
51
|
-
await orderShipped.queue(user, { order });
|
|
80
|
+
await orderShipped.queue(user, { order });
|
|
52
81
|
await orderShipped.queue(buyers, { order }, { delay: "10m" });
|
|
53
|
-
await notify.mail(user, payload, {
|
|
82
|
+
await notify.mail(user, payload, {/* synchronous - notify.* does not queue */});
|
|
54
83
|
```
|
|
55
84
|
|
|
56
|
-
`.queue()` renders
|
|
57
|
-
|
|
85
|
+
`.queue()` renders per recipient and enqueues one job per recipient. Without a
|
|
86
|
+
configured dispatcher, it rejects `NoQueueDispatcherError`.
|
|
58
87
|
|
|
59
88
|
## Idempotency
|
|
60
89
|
|
|
61
|
-
Pass `idempotencyKey` so a redelivered
|
|
62
|
-
in-app row
|
|
90
|
+
Pass `idempotencyKey` so a redelivered or retried job does not create a duplicate
|
|
91
|
+
in-app row. `createFor` finds or creates the row by that key.
|
|
63
92
|
|
|
64
93
|
```ts
|
|
65
94
|
await orderShipped.queue(user, { order }, { idempotencyKey: `ship:${order.id}` });
|
|
66
95
|
```
|
|
67
96
|
|
|
68
|
-
##
|
|
97
|
+
## Current limits
|
|
69
98
|
|
|
70
|
-
-
|
|
71
|
-
immediately.
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
- Rate-limit budget is consumed at
|
|
75
|
-
`RateLimiter` docstring).
|
|
99
|
+
- With the herald backend, `delay` is carried on the job but not honoured; the
|
|
100
|
+
worker delivers immediately. Use the BullMQ adapter for delayed delivery.
|
|
101
|
+
- Herald has no retry or dead-letter handling yet; failed `channel.send` calls
|
|
102
|
+
are logged and acknowledged.
|
|
103
|
+
- Rate-limit budget is consumed at enqueue time for queued sends.
|
|
76
104
|
|
|
77
105
|
## See also
|
|
78
106
|
|
|
79
|
-
- [`define-notification/SKILL.md`](../define-notification/SKILL.md)
|
|
80
|
-
- [`configure-notifications/SKILL.md`](../configure-notifications/SKILL.md)
|
|
81
|
-
- [`@warlock.js/herald/herald-basics/SKILL.md`](../../../herald/skills/herald-basics/SKILL.md)
|
|
107
|
+
- [`define-notification/SKILL.md`](../define-notification/SKILL.md) - `.queue()` on a defined notification.
|
|
108
|
+
- [`configure-notifications/SKILL.md`](../configure-notifications/SKILL.md) - the `queue` config slot.
|
|
109
|
+
- [`@warlock.js/herald/herald-basics/SKILL.md`](../../../herald/skills/herald-basics/SKILL.md) - connecting the broker.
|