redis-smq 8.0.0-rc.16 → 8.0.0-rc.18
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 +30 -0
- package/README.md +12 -7
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/src/common/index.js +18 -0
- package/dist/cjs/src/common/redis-client/errors/redis-client-instance-lock.error.js +8 -0
- package/dist/cjs/src/common/redis-client/redis-client-factory.js +15 -0
- package/dist/cjs/src/common/redis-client/redis-client-instance.js +56 -0
- package/dist/cjs/src/common/redis-client/scripts/lua/cleanup-offline-consumer.lua +33 -0
- package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/delete-message.lua +0 -1
- package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/delete-queue-messages.lua +4 -4
- package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/handle-processing-queue.lua +3 -14
- package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/init-consumer-queue.lua +1 -1
- package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/publish-message.lua +5 -5
- package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/publish-scheduled-message.lua +4 -4
- package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/requeue-message.lua +1 -1
- package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/schedule-message.lua +1 -1
- package/dist/cjs/src/common/redis-client/scripts/scripts.js +81 -0
- package/dist/cjs/src/common/redis-keys/redis-keys.error.js +8 -0
- package/dist/cjs/src/common/redis-keys/redis-keys.js +135 -0
- package/dist/cjs/src/common/types/event.js +3 -0
- package/dist/cjs/src/common/types/index.js +18 -0
- package/dist/cjs/src/config/configuration.error.js +8 -0
- package/dist/cjs/src/config/configuration.js +40 -0
- package/dist/cjs/src/config/event-bus.js +15 -0
- package/dist/cjs/src/config/index.js +19 -0
- package/dist/cjs/src/config/logger.js +15 -0
- package/dist/cjs/src/config/messages/messages.js +27 -0
- package/dist/cjs/src/config/messages/store.js +46 -0
- package/dist/cjs/src/config/namespace.js +14 -0
- package/dist/cjs/src/config/redis.js +16 -0
- package/dist/cjs/src/config/types/config.js +3 -0
- package/dist/cjs/src/config/types/index.js +18 -0
- package/dist/cjs/src/lib/consumer/consumer/consumer.js +192 -0
- package/dist/cjs/src/lib/consumer/consumer/event-bus-publisher.js +49 -0
- package/dist/cjs/src/lib/consumer/consumer-heartbeat/_/_cleanup-offline-consumer.js +21 -0
- package/dist/cjs/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.js +202 -0
- package/dist/cjs/src/lib/consumer/consumer-heartbeat/event-bus-publisher.js +17 -0
- package/dist/cjs/src/lib/consumer/consumer-queues.js +52 -0
- package/dist/cjs/src/lib/consumer/errors/consumer-group-delete.error.js +8 -0
- package/dist/cjs/src/lib/consumer/errors/consumer-group-id-not-found.error.js +11 -0
- package/dist/cjs/src/lib/consumer/errors/consumer-group-id-not-supported.error.js +11 -0
- package/dist/cjs/src/lib/consumer/errors/consumer-group-id-required.error.js +11 -0
- package/dist/cjs/src/lib/consumer/errors/consumer-invalid-group-id.error.js +11 -0
- package/dist/cjs/src/lib/consumer/errors/consumer-message-handler-already-exists.error.js +11 -0
- package/dist/cjs/src/lib/consumer/errors/consumer.error.js +8 -0
- package/dist/cjs/src/lib/consumer/errors/index.js +18 -0
- package/dist/cjs/src/lib/consumer/index.js +20 -0
- package/dist/cjs/src/lib/consumer/message-handler/consume-message/consume-message.js +181 -0
- package/dist/cjs/src/lib/consumer/message-handler/consume-message/event-bus-publisher.js +58 -0
- package/dist/cjs/src/lib/consumer/message-handler/dequeue-message/dequeue-message.js +275 -0
- package/dist/cjs/src/lib/consumer/message-handler/dequeue-message/event-bus-publisher.js +34 -0
- package/dist/cjs/src/lib/consumer/message-handler/errors/consumer-message-handler-file.error.js +11 -0
- package/dist/cjs/src/lib/consumer/message-handler/errors/consumer-message-handler-filename-extension.error.js +11 -0
- package/dist/cjs/src/lib/consumer/message-handler/errors/consumer-message-handler.error.js +11 -0
- package/dist/cjs/src/lib/consumer/message-handler/errors/index.js +10 -0
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/even-bus-publisher.js +17 -0
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/message-handler.js +146 -0
- package/dist/cjs/src/lib/consumer/message-handler/multiplexed-message-handler.js +21 -0
- package/dist/cjs/src/lib/consumer/message-handler/processing-queue.js +130 -0
- package/dist/cjs/src/lib/consumer/message-handler/retry-message.js +42 -0
- package/dist/cjs/src/lib/consumer/message-handler-runner/event-bus-publisher.js +17 -0
- package/dist/cjs/src/lib/consumer/message-handler-runner/message-handler-runner.js +139 -0
- package/dist/cjs/src/lib/consumer/message-handler-runner/multiplexed-message-handler-runner.js +68 -0
- package/dist/cjs/src/lib/consumer/types/config.js +3 -0
- package/dist/cjs/src/lib/consumer/types/consume-message.js +19 -0
- package/dist/cjs/src/lib/consumer/types/consumer-heartbeat.js +3 -0
- package/dist/cjs/src/lib/consumer/types/index.js +21 -0
- package/dist/cjs/src/lib/consumer/types/message-handler.js +3 -0
- package/dist/cjs/src/lib/consumer/workers/delay-unacknowledged.worker.js +82 -0
- package/dist/cjs/src/lib/consumer/workers/publish-scheduled.worker.js +107 -0
- package/dist/cjs/src/lib/consumer/workers/requeue-unacknowledged.worker.js +72 -0
- package/dist/cjs/src/lib/consumer/workers/watch-consumers.worker.js +40 -0
- package/dist/cjs/src/lib/consumer/workers/worker.js +54 -0
- package/dist/cjs/src/lib/consumer-groups/_/_delete-consumer-group.js +38 -0
- package/dist/cjs/src/lib/consumer-groups/_/_get-consumer-groups.js +10 -0
- package/dist/cjs/src/lib/consumer-groups/_/_save-consumer-group.js +32 -0
- package/dist/cjs/src/lib/consumer-groups/consumer-groups.js +82 -0
- package/dist/cjs/src/lib/consumer-groups/index.js +18 -0
- package/dist/cjs/src/lib/event-bus/errors/event-bus-lock.error.js +8 -0
- package/dist/cjs/src/lib/event-bus/event-bus-redis-factory.js +15 -0
- package/dist/cjs/src/lib/event-bus/event-bus-redis-instance.js +58 -0
- package/dist/cjs/src/lib/event-bus/index.js +19 -0
- package/dist/cjs/src/lib/event-bus/types/config.js +3 -0
- package/dist/cjs/src/lib/event-bus/types/index.js +18 -0
- package/dist/cjs/src/lib/exchange/_/_get-exchange-queues.js +19 -0
- package/dist/cjs/src/lib/exchange/errors/exchange-fan-out.error.js +8 -0
- package/dist/cjs/src/lib/exchange/errors/exchange-invalid-data.error.js +8 -0
- package/dist/cjs/src/lib/exchange/errors/exchange.error.js +8 -0
- package/dist/cjs/src/lib/exchange/errors/index.js +10 -0
- package/dist/cjs/src/lib/exchange/exchange-abstract.js +19 -0
- package/dist/cjs/src/lib/exchange/exchange-direct/_/_get-exchange-direct-transferable.js +15 -0
- package/dist/cjs/src/lib/exchange/exchange-direct/_/_validate-exchange-direct-params.js +12 -0
- package/dist/cjs/src/lib/exchange/exchange-direct/exchange-direct.js +13 -0
- package/dist/cjs/src/lib/exchange/exchange-direct/index.js +18 -0
- package/dist/cjs/src/lib/exchange/exchange-fan-out/_/_get-exchange-fanout-transferable.js +15 -0
- package/dist/cjs/src/lib/exchange/exchange-fan-out/_/_get-fan-out-exchange-queues.js +17 -0
- package/dist/cjs/src/lib/exchange/exchange-fan-out/_/_get-queue-fan-out-exchange.js +19 -0
- package/dist/cjs/src/lib/exchange/exchange-fan-out/_/_validate-exchange-fan-out-params.js +12 -0
- package/dist/cjs/src/lib/exchange/exchange-fan-out/exchange-fan-out.js +217 -0
- package/dist/cjs/src/lib/exchange/exchange-fan-out/index.js +18 -0
- package/dist/cjs/src/lib/exchange/exchange-topic/_/_get-exchange-topic-transferable.js +15 -0
- package/dist/cjs/src/lib/exchange/exchange-topic/_/_get-topic-exchange-params.js +26 -0
- package/dist/cjs/src/lib/exchange/exchange-topic/_/_get-topic-exchange-queues.js +30 -0
- package/dist/cjs/src/lib/exchange/exchange-topic/_/_validate-exchange-topic-params.js +12 -0
- package/dist/cjs/src/lib/exchange/exchange-topic/exchange-topic.js +26 -0
- package/dist/cjs/src/lib/exchange/exchange-topic/index.js +18 -0
- package/dist/cjs/src/lib/exchange/index.js +22 -0
- package/dist/cjs/src/lib/exchange/types/exchange.js +10 -0
- package/dist/cjs/src/lib/exchange/types/index.js +18 -0
- package/dist/cjs/src/lib/index.js +27 -0
- package/dist/cjs/src/lib/message/_/_delete-message.js +48 -0
- package/dist/cjs/src/lib/message/_/_from-message.js +39 -0
- package/dist/cjs/src/lib/message/_/_get-message-state.js +19 -0
- package/dist/cjs/src/lib/message/_/_get-message-status.js +19 -0
- package/dist/cjs/src/lib/message/_/_get-message.js +45 -0
- package/dist/cjs/src/lib/message/errors/index.js +16 -0
- package/dist/cjs/src/lib/message/errors/message-delete.error.js +11 -0
- package/dist/cjs/src/lib/message/errors/message-destination-queue-already-set.error.js +11 -0
- package/dist/cjs/src/lib/message/errors/message-destination-queue-required.error.js +11 -0
- package/dist/cjs/src/lib/message/errors/message-exchange-required.error.js +11 -0
- package/dist/cjs/src/lib/message/errors/message-not-found.error.js +11 -0
- package/dist/cjs/src/lib/message/errors/message.error.js +8 -0
- package/dist/cjs/src/lib/message/index.js +21 -0
- package/dist/cjs/src/lib/message/message-envelope.js +154 -0
- package/dist/cjs/src/lib/message/message-state.js +161 -0
- package/dist/cjs/src/lib/message/message.js +90 -0
- package/dist/cjs/src/lib/message/producible-message.js +220 -0
- package/dist/cjs/src/lib/message/types/config.js +3 -0
- package/dist/cjs/src/lib/message/types/index.js +20 -0
- package/dist/cjs/src/lib/message/types/message-state.js +3 -0
- package/dist/cjs/src/lib/message/types/message.js +33 -0
- package/dist/cjs/src/lib/namespace/errors/index.js +8 -0
- package/dist/cjs/src/lib/namespace/errors/namespace-not-found.error.js +11 -0
- package/dist/cjs/src/lib/namespace/errors/namespace.error.js +8 -0
- package/dist/cjs/src/lib/namespace/index.js +19 -0
- package/dist/cjs/src/lib/namespace/namespace.js +117 -0
- package/dist/cjs/src/lib/producer/_/_schedule-message.js +50 -0
- package/dist/cjs/src/lib/producer/errors/index.js +16 -0
- package/dist/cjs/src/lib/producer/errors/producer-instance-not-running.error.js +11 -0
- package/dist/cjs/src/lib/producer/errors/producer-message-exchange-required.error.js +8 -0
- package/dist/cjs/src/lib/producer/errors/producer-message-not-published.error.js +8 -0
- package/dist/cjs/src/lib/producer/errors/producer-message-not-scheduled.error.js +8 -0
- package/dist/cjs/src/lib/producer/errors/producer-queue-without-consumer-groups.error.js +8 -0
- package/dist/cjs/src/lib/producer/errors/producer.error.js +8 -0
- package/dist/cjs/src/lib/producer/event-bus-publisher.js +57 -0
- package/dist/cjs/src/lib/producer/index.js +19 -0
- package/dist/cjs/src/lib/producer/producer.js +234 -0
- package/dist/cjs/src/lib/producer/queue-consumer-groups-cache.js +126 -0
- package/dist/cjs/src/lib/queue/_/_delete-queue.js +137 -0
- package/dist/cjs/src/lib/queue/_/_get-queue-properties.js +56 -0
- package/dist/cjs/src/lib/queue/_/_get-queues.js +20 -0
- package/dist/cjs/src/lib/queue/_/_parse-queue-extended-params.js +46 -0
- package/dist/cjs/src/lib/queue/_/_parse-queue-params.js +23 -0
- package/dist/cjs/src/lib/queue/errors/index.js +14 -0
- package/dist/cjs/src/lib/queue/errors/queue-exists.error.js +8 -0
- package/dist/cjs/src/lib/queue/errors/queue-has-running-consumers.error.js +11 -0
- package/dist/cjs/src/lib/queue/errors/queue-not-empty.error.js +8 -0
- package/dist/cjs/src/lib/queue/errors/queue-not-found.error.js +8 -0
- package/dist/cjs/src/lib/queue/errors/queue.error.js +8 -0
- package/dist/cjs/src/lib/queue/index.js +20 -0
- package/dist/cjs/src/lib/queue/queue.js +163 -0
- package/dist/cjs/src/lib/queue/types/index.js +19 -0
- package/dist/cjs/src/lib/queue/types/queue-consumer.js +3 -0
- package/dist/cjs/src/lib/queue/types/queue.js +23 -0
- package/dist/cjs/src/lib/queue-messages/_/_requeue-message.js +71 -0
- package/dist/cjs/src/lib/queue-messages/_/_validate-queue-extended-params.js +28 -0
- package/dist/cjs/src/lib/queue-messages/errors/index.js +8 -0
- package/dist/cjs/src/lib/queue-messages/errors/message-requeue.error.js +11 -0
- package/dist/cjs/src/lib/queue-messages/errors/queue-message.error.js +8 -0
- package/dist/cjs/src/lib/queue-messages/index.js +24 -0
- package/dist/cjs/src/lib/queue-messages/queue-acknowledged-messages.js +25 -0
- package/dist/cjs/src/lib/queue-messages/queue-dead-lettered-messages.js +25 -0
- package/dist/cjs/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-abstract.js +148 -0
- package/dist/cjs/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-list.js +60 -0
- package/dist/cjs/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-set.js +68 -0
- package/dist/cjs/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-sorted-set.js +60 -0
- package/dist/cjs/src/lib/queue-messages/queue-messages.js +119 -0
- package/dist/cjs/src/lib/queue-messages/queue-pending-messages/index.js +18 -0
- package/dist/cjs/src/lib/queue-messages/queue-pending-messages/linear-queue-pending-messages.js +13 -0
- package/dist/cjs/src/lib/queue-messages/queue-pending-messages/priority-queue-pending-messages.js +13 -0
- package/dist/cjs/src/lib/queue-messages/queue-pending-messages/queue-pending-messages.js +90 -0
- package/dist/cjs/src/lib/queue-messages/queue-scheduled-messages.js +12 -0
- package/dist/cjs/src/lib/queue-messages/types/index.js +3 -0
- package/dist/cjs/src/lib/queue-rate-limit/_/_has-rate-limit-exceeded.js +19 -0
- package/dist/cjs/src/lib/queue-rate-limit/errors/index.js +6 -0
- package/dist/cjs/src/lib/queue-rate-limit/errors/queue-rate-limit.error.js +8 -0
- package/dist/cjs/src/lib/queue-rate-limit/index.js +19 -0
- package/dist/cjs/src/lib/queue-rate-limit/queue-rate-limit.js +111 -0
- package/dist/cjs/tests/common/base-instance.js +32 -0
- package/dist/cjs/tests/common/config.js +27 -0
- package/dist/cjs/tests/common/consumer-thread.js +26 -0
- package/dist/cjs/tests/common/consumer.js +36 -0
- package/dist/cjs/tests/common/event-bus-redis.js +31 -0
- package/dist/cjs/tests/common/events.js +76 -0
- package/dist/cjs/tests/common/exchange.js +63 -0
- package/dist/cjs/tests/common/logger.js +7 -0
- package/dist/cjs/tests/common/message-handler-worker-acks.js +7 -0
- package/dist/cjs/tests/common/message-handler-worker-faulty-exit.js +6 -0
- package/dist/cjs/tests/common/message-handler-worker-faulty.js +5 -0
- package/dist/cjs/tests/common/message-handler-worker-unacks-exception.js +7 -0
- package/dist/cjs/tests/common/message-handler-worker-unacks.js +7 -0
- package/dist/cjs/tests/common/message-producing-consuming.js +120 -0
- package/dist/cjs/tests/common/message.js +35 -0
- package/dist/cjs/tests/common/namespace.js +35 -0
- package/dist/cjs/tests/common/producer.js +34 -0
- package/dist/cjs/tests/common/queue-acknowledged-messages.js +35 -0
- package/dist/cjs/tests/common/queue-dead-lettered-messages.js +35 -0
- package/dist/cjs/tests/common/queue-messages.js +35 -0
- package/dist/cjs/tests/common/queue-pending-messages.js +35 -0
- package/dist/cjs/tests/common/queue-rate-limit.js +35 -0
- package/dist/cjs/tests/common/queue-scheduled-messages.js +35 -0
- package/dist/cjs/tests/common/queue.js +35 -0
- package/dist/cjs/tests/common/redis.js +40 -0
- package/dist/cjs/tests/common/schedule-worker.js +38 -0
- package/dist/cjs/tests/common/shut-down.js +50 -0
- package/dist/cjs/tests/common/start-up.js +35 -0
- package/dist/cjs/tests/common/utils.js +10 -0
- package/dist/cjs/tests/common/validate-time.js +9 -0
- package/dist/cjs/tests/setup.js +23 -0
- package/dist/cjs/tests/tests/consume-message-worker/test00001.test.js +45 -0
- package/dist/cjs/tests/tests/consume-message-worker/test00002.test.js +84 -0
- package/dist/cjs/tests/tests/consume-message-worker/test00003.test.js +126 -0
- package/dist/cjs/tests/tests/consuming-messages/test00001.test.js +67 -0
- package/dist/cjs/tests/tests/consuming-messages/test00002.test.js +31 -0
- package/dist/cjs/tests/tests/consuming-messages/test00003.test.js +48 -0
- package/dist/cjs/tests/tests/consuming-messages/test00004.test.js +48 -0
- package/dist/cjs/tests/tests/consuming-messages/test00005.test.js +48 -0
- package/dist/cjs/tests/tests/consuming-messages/test00006.test.js +45 -0
- package/dist/cjs/tests/tests/consuming-messages/test00007.test.js +52 -0
- package/dist/cjs/tests/tests/consuming-messages/test00008.test.js +58 -0
- package/dist/cjs/tests/tests/consuming-messages/test00009.test.js +48 -0
- package/dist/cjs/tests/tests/consuming-messages/test00010.test.js +27 -0
- package/dist/cjs/tests/tests/consuming-messages/test00011.test.js +69 -0
- package/dist/cjs/tests/tests/consuming-messages/test00012.test.js +79 -0
- package/dist/cjs/tests/tests/consuming-messages/test00013.test.js +71 -0
- package/dist/cjs/tests/tests/consuming-messages/test00014.test.js +57 -0
- package/dist/cjs/tests/tests/consuming-messages/test00015.test.js +65 -0
- package/dist/cjs/tests/tests/consuming-messages/test00016.test.js +47 -0
- package/dist/cjs/tests/tests/consuming-messages/test00017.test.js +47 -0
- package/dist/cjs/tests/tests/consuming-messages/test00019.test.js +41 -0
- package/dist/cjs/tests/tests/consuming-messages/test00020.test.js +22 -0
- package/dist/cjs/tests/tests/consuming-messages/test00021.test.js +24 -0
- package/dist/cjs/tests/tests/consuming-messages/test00022.test.js +41 -0
- package/dist/cjs/tests/tests/consuming-messages/test00023.test.js +47 -0
- package/dist/cjs/tests/tests/consuming-messages/test00024.test.js +50 -0
- package/dist/cjs/tests/tests/consuming-messages/test00025.test.js +50 -0
- package/dist/cjs/tests/tests/consuming-messages/test00026.test.js +48 -0
- package/dist/cjs/tests/tests/consuming-messages/test00027.test.js +61 -0
- package/dist/cjs/tests/tests/consuming-messages/test00032.test.js +50 -0
- package/dist/cjs/tests/tests/consuming-messages/test00033.test.js +110 -0
- package/dist/cjs/tests/tests/consuming-messages/test00034.test.js +52 -0
- package/dist/cjs/tests/tests/consuming-messages/test00035.test.js +85 -0
- package/dist/cjs/tests/tests/consuming-messages/test00036.test.js +50 -0
- package/dist/cjs/tests/tests/consuming-messages/test00038.test.js +48 -0
- package/dist/cjs/tests/tests/deleting-messages/test00001.test.js +33 -0
- package/dist/cjs/tests/tests/deleting-messages/test00002.test.js +35 -0
- package/dist/cjs/tests/tests/deleting-messages/test00003.test.js +57 -0
- package/dist/cjs/tests/tests/deleting-messages/test00004.test.js +58 -0
- package/dist/cjs/tests/tests/deleting-messages/test00005.test.js +49 -0
- package/dist/cjs/tests/tests/event-bus/test00001.test.js +93 -0
- package/dist/cjs/tests/tests/event-bus/test00002.test.js +51 -0
- package/dist/cjs/tests/tests/exchanges/direct-exchange/test00001.test.js +26 -0
- package/dist/cjs/tests/tests/exchanges/direct-exchange/test00002.test.js +32 -0
- package/dist/cjs/tests/tests/exchanges/fanout-exchange/test00001.test.js +47 -0
- package/dist/cjs/tests/tests/exchanges/fanout-exchange/test00002.test.js +29 -0
- package/dist/cjs/tests/tests/exchanges/fanout-exchange/test00003.test.js +37 -0
- package/dist/cjs/tests/tests/exchanges/fanout-exchange/test00006.test.js +21 -0
- package/dist/cjs/tests/tests/exchanges/fanout-exchange/test00007.test.js +42 -0
- package/dist/cjs/tests/tests/exchanges/fanout-exchange/test00008.test.js +27 -0
- package/dist/cjs/tests/tests/exchanges/topic-exchange/test00001.test.js +24 -0
- package/dist/cjs/tests/tests/exchanges/topic-exchange/test00002.test.js +37 -0
- package/dist/cjs/tests/tests/exchanges/topic-exchange/test00003.test.js +30 -0
- package/dist/cjs/tests/tests/exchanges/topic-exchange/test00005.test.js +36 -0
- package/dist/cjs/tests/tests/exchanges/topic-exchange/test00007.test.js +21 -0
- package/dist/cjs/tests/tests/health-check/test00001.test.js +35 -0
- package/dist/cjs/tests/tests/health-check/test00002.test.js +35 -0
- package/dist/cjs/tests/tests/health-check/test00003.test.js +82 -0
- package/dist/cjs/tests/tests/health-check/test00004.test.js +32 -0
- package/dist/cjs/tests/tests/health-check/test00005.test.js +36 -0
- package/dist/cjs/tests/tests/health-check/test00006.test.js +40 -0
- package/dist/cjs/tests/tests/message-status/test00001.test.js +50 -0
- package/dist/cjs/tests/tests/message-status/test00002.test.js +42 -0
- package/dist/cjs/tests/tests/message-status/test00003.test.js +53 -0
- package/dist/cjs/tests/tests/message-status/test00004.test.js +55 -0
- package/dist/cjs/tests/tests/misc/test00001.test.js +41 -0
- package/dist/cjs/tests/tests/misc/test00002.test.js +15 -0
- package/dist/cjs/tests/tests/misc/test00003.test.js +22 -0
- package/dist/cjs/tests/tests/misc/test00004.test.js +23 -0
- package/dist/cjs/tests/tests/misc/test00014.test.js +38 -0
- package/dist/cjs/tests/tests/misc/test00019.test.js +152 -0
- package/dist/cjs/tests/tests/misc/test00020.test.js +50 -0
- package/dist/cjs/tests/tests/priority-queuing/test00001.test.js +27 -0
- package/dist/cjs/tests/tests/priority-queuing/test00002.test.js +69 -0
- package/dist/cjs/tests/tests/producer/test00001.test.js +25 -0
- package/dist/cjs/tests/tests/purging-queues/test00001.test.js +25 -0
- package/dist/cjs/tests/tests/purging-queues/test00002.test.js +25 -0
- package/dist/cjs/tests/tests/purging-queues/test00003.test.js +27 -0
- package/dist/cjs/tests/tests/purging-queues/test00004.test.js +27 -0
- package/dist/cjs/tests/tests/purging-queues/test00005.test.js +25 -0
- package/dist/cjs/tests/tests/purging-queues/test00006.test.js +33 -0
- package/dist/cjs/tests/tests/purging-queues/test00007.test.js +31 -0
- package/dist/cjs/tests/tests/purging-queues/test00008.test.js +57 -0
- package/dist/cjs/tests/tests/purging-queues/test00009.test.js +27 -0
- package/dist/cjs/tests/tests/purging-queues/test00010.test.js +27 -0
- package/dist/cjs/tests/tests/purging-queues/test00011.test.js +29 -0
- package/dist/cjs/tests/tests/purging-queues/test00012.test.js +29 -0
- package/dist/cjs/tests/tests/purging-queues/test00013.test.js +27 -0
- package/dist/cjs/tests/tests/queue-acknowledged-messages/test00001.test.js +52 -0
- package/dist/cjs/tests/tests/queue-consumer-groups/test00001.test.js +122 -0
- package/dist/cjs/tests/tests/queue-consumer-groups/test00002.test.js +70 -0
- package/dist/cjs/tests/tests/queue-consumer-groups/test00003.test.js +81 -0
- package/dist/cjs/tests/tests/queue-consumer-groups/test00004.test.js +90 -0
- package/dist/cjs/tests/tests/queue-consumer-groups/test00005.test.js +119 -0
- package/dist/cjs/tests/tests/queue-dead-lettered-messages/test00001.test.js +52 -0
- package/dist/cjs/tests/tests/queue-pending-messages/test00001.test.js +45 -0
- package/dist/cjs/tests/tests/queue-rate-limit/test00028.test.js +35 -0
- package/dist/cjs/tests/tests/queue-rate-limit/test00029.test.js +59 -0
- package/dist/cjs/tests/tests/queue-rate-limit/test00030.test.js +81 -0
- package/dist/cjs/tests/tests/queue-rate-limit/test00031.test.js +63 -0
- package/dist/cjs/tests/tests/queue-scheduled-messages/test00001.test.js +49 -0
- package/dist/cjs/tests/tests/queue-scheduled-messages/test00002.test.js +63 -0
- package/dist/cjs/tests/tests/queue-scheduled-messages/test00003.test.js +48 -0
- package/dist/cjs/tests/tests/queue-scheduled-messages/test00004.test.js +57 -0
- package/dist/cjs/tests/tests/queue-scheduled-messages/test00005.test.js +71 -0
- package/dist/cjs/tests/tests/queue-scheduled-messages/test00006.test.js +72 -0
- package/dist/cjs/tests/tests/queue-scheduled-messages/test00007.test.js +51 -0
- package/dist/cjs/tests/tests/queue-scheduled-messages/test00008.test.js +45 -0
- package/dist/cjs/tests/tests/queue-scheduled-messages/test00010.test.js +57 -0
- package/dist/cjs/tests/tests/requeuing-messages/test00001.test.js +39 -0
- package/dist/cjs/tests/tests/requeuing-messages/test00002.test.js +39 -0
- package/dist/cjs/tests/tests/requeuing-messages/test00003.test.js +63 -0
- package/dist/cjs/tests/tests/workers/test00001.test.js +69 -0
- package/dist/cjs/tests/tests/workers/test00002.test.js +58 -0
- package/dist/cjs/tests/tests/workers/test00003.test.js +36 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/src/common/index.js +2 -0
- package/dist/esm/src/common/redis-client/errors/redis-client-instance-lock.error.js +4 -0
- package/dist/esm/src/common/redis-client/redis-client-factory.js +11 -0
- package/dist/esm/src/common/redis-client/redis-client-instance.js +49 -0
- package/dist/esm/src/common/redis-client/scripts/lua/acknowledge-message.lua +28 -0
- package/dist/esm/src/common/redis-client/scripts/lua/cleanup-offline-consumer.lua +33 -0
- package/dist/esm/src/common/redis-client/scripts/lua/create-queue.lua +23 -0
- package/dist/esm/src/common/redis-client/scripts/lua/delete-consumer-group.lua +34 -0
- package/dist/esm/src/common/redis-client/scripts/lua/delete-message.lua +107 -0
- package/dist/esm/src/common/redis-client/scripts/lua/delete-queue-messages.lua +21 -0
- package/dist/esm/src/common/redis-client/scripts/lua/fetch-message-for-processing.lua +12 -0
- package/dist/esm/src/common/redis-client/scripts/lua/handle-processing-queue.lua +125 -0
- package/dist/esm/src/common/redis-client/scripts/lua/has-queue-rate-exceeded.lua +19 -0
- package/dist/esm/src/common/redis-client/scripts/lua/init-consumer-queue.lua +21 -0
- package/dist/esm/src/common/redis-client/scripts/lua/publish-message.lua +61 -0
- package/dist/esm/src/common/redis-client/scripts/lua/publish-scheduled-message.lua +149 -0
- package/dist/esm/src/common/redis-client/scripts/lua/requeue-message.lua +85 -0
- package/dist/esm/src/common/redis-client/scripts/lua/schedule-message.lua +100 -0
- package/dist/esm/src/common/redis-client/scripts/scripts.js +55 -0
- package/dist/esm/src/common/redis-keys/redis-keys.error.js +4 -0
- package/dist/esm/src/common/redis-keys/redis-keys.js +145 -0
- package/dist/esm/src/common/types/event.js +2 -0
- package/dist/esm/src/common/types/index.js +2 -0
- package/dist/esm/src/config/configuration.error.js +4 -0
- package/dist/esm/src/config/configuration.js +34 -0
- package/dist/esm/src/config/event-bus.js +8 -0
- package/dist/esm/src/config/index.js +3 -0
- package/dist/esm/src/config/logger.js +8 -0
- package/dist/esm/src/config/messages/messages.js +21 -0
- package/dist/esm/src/config/messages/store.js +41 -0
- package/dist/esm/src/config/namespace.js +11 -0
- package/dist/esm/src/config/redis.js +9 -0
- package/dist/esm/src/config/types/config.js +2 -0
- package/dist/esm/src/config/types/index.js +2 -0
- package/dist/esm/src/lib/consumer/consumer/consumer.js +188 -0
- package/dist/esm/src/lib/consumer/consumer/event-bus-publisher.js +45 -0
- package/dist/esm/src/lib/consumer/consumer-heartbeat/_/_cleanup-offline-consumer.js +17 -0
- package/dist/esm/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.js +185 -0
- package/dist/esm/src/lib/consumer/consumer-heartbeat/event-bus-publisher.js +13 -0
- package/dist/esm/src/lib/consumer/consumer-queues.js +49 -0
- package/dist/esm/src/lib/consumer/errors/consumer-group-delete.error.js +4 -0
- package/dist/esm/src/lib/consumer/errors/consumer-group-id-not-found.error.js +7 -0
- package/dist/esm/src/lib/consumer/errors/consumer-group-id-not-supported.error.js +7 -0
- package/dist/esm/src/lib/consumer/errors/consumer-group-id-required.error.js +7 -0
- package/dist/esm/src/lib/consumer/errors/consumer-invalid-group-id.error.js +7 -0
- package/dist/esm/src/lib/consumer/errors/consumer-message-handler-already-exists.error.js +7 -0
- package/dist/esm/src/lib/consumer/errors/consumer.error.js +4 -0
- package/dist/esm/src/lib/consumer/errors/index.js +8 -0
- package/dist/esm/src/lib/consumer/index.js +4 -0
- package/dist/esm/src/lib/consumer/message-handler/consume-message/consume-message.js +182 -0
- package/dist/esm/src/lib/consumer/message-handler/consume-message/event-bus-publisher.js +54 -0
- package/dist/esm/src/lib/consumer/message-handler/dequeue-message/dequeue-message.js +262 -0
- package/dist/esm/src/lib/consumer/message-handler/dequeue-message/event-bus-publisher.js +30 -0
- package/dist/esm/src/lib/consumer/message-handler/errors/consumer-message-handler-file.error.js +7 -0
- package/dist/esm/src/lib/consumer/message-handler/errors/consumer-message-handler-filename-extension.error.js +7 -0
- package/dist/esm/src/lib/consumer/message-handler/errors/consumer-message-handler.error.js +7 -0
- package/dist/esm/src/lib/consumer/message-handler/errors/index.js +4 -0
- package/dist/esm/src/lib/consumer/message-handler/message-handler/even-bus-publisher.js +13 -0
- package/dist/esm/src/lib/consumer/message-handler/message-handler/message-handler.js +151 -0
- package/dist/esm/src/lib/consumer/message-handler/multiplexed-message-handler.js +18 -0
- package/dist/esm/src/lib/consumer/message-handler/processing-queue.js +127 -0
- package/dist/esm/src/lib/consumer/message-handler/retry-message.js +38 -0
- package/dist/esm/src/lib/consumer/message-handler-runner/event-bus-publisher.js +13 -0
- package/dist/esm/src/lib/consumer/message-handler-runner/message-handler-runner.js +137 -0
- package/dist/esm/src/lib/consumer/message-handler-runner/multiplexed-message-handler-runner.js +65 -0
- package/dist/esm/src/lib/consumer/types/config.js +2 -0
- package/dist/esm/src/lib/consumer/types/consume-message.js +16 -0
- package/dist/esm/src/lib/consumer/types/consumer-heartbeat.js +2 -0
- package/dist/esm/src/lib/consumer/types/index.js +5 -0
- package/dist/esm/src/lib/consumer/types/message-handler.js +2 -0
- package/dist/esm/src/lib/consumer/workers/delay-unacknowledged.worker.js +77 -0
- package/dist/esm/src/lib/consumer/workers/publish-scheduled.worker.js +101 -0
- package/dist/esm/src/lib/consumer/workers/requeue-unacknowledged.worker.js +70 -0
- package/dist/esm/src/lib/consumer/workers/watch-consumers.worker.js +35 -0
- package/dist/esm/src/lib/consumer/workers/worker.js +54 -0
- package/dist/esm/src/lib/consumer-groups/_/_delete-consumer-group.js +34 -0
- package/dist/esm/src/lib/consumer-groups/_/_get-consumer-groups.js +6 -0
- package/dist/esm/src/lib/consumer-groups/_/_save-consumer-group.js +28 -0
- package/dist/esm/src/lib/consumer-groups/consumer-groups.js +81 -0
- package/dist/esm/src/lib/consumer-groups/index.js +2 -0
- package/dist/esm/src/lib/event-bus/errors/event-bus-lock.error.js +4 -0
- package/dist/esm/src/lib/event-bus/event-bus-redis-factory.js +11 -0
- package/dist/esm/src/lib/event-bus/event-bus-redis-instance.js +51 -0
- package/dist/esm/src/lib/event-bus/index.js +3 -0
- package/dist/esm/src/lib/event-bus/types/config.js +2 -0
- package/dist/esm/src/lib/event-bus/types/index.js +2 -0
- package/dist/esm/src/lib/exchange/_/_get-exchange-queues.js +15 -0
- package/dist/esm/src/lib/exchange/errors/exchange-fan-out.error.js +4 -0
- package/dist/esm/src/lib/exchange/errors/exchange-invalid-data.error.js +4 -0
- package/dist/esm/src/lib/exchange/errors/exchange.error.js +4 -0
- package/dist/esm/src/lib/exchange/errors/index.js +4 -0
- package/dist/esm/src/lib/exchange/exchange-abstract.js +17 -0
- package/dist/esm/src/lib/exchange/exchange-direct/_/_get-exchange-direct-transferable.js +11 -0
- package/dist/esm/src/lib/exchange/exchange-direct/_/_validate-exchange-direct-params.js +8 -0
- package/dist/esm/src/lib/exchange/exchange-direct/exchange-direct.js +9 -0
- package/dist/esm/src/lib/exchange/exchange-direct/index.js +2 -0
- package/dist/esm/src/lib/exchange/exchange-fan-out/_/_get-exchange-fanout-transferable.js +11 -0
- package/dist/esm/src/lib/exchange/exchange-fan-out/_/_get-fan-out-exchange-queues.js +13 -0
- package/dist/esm/src/lib/exchange/exchange-fan-out/_/_get-queue-fan-out-exchange.js +15 -0
- package/dist/esm/src/lib/exchange/exchange-fan-out/_/_validate-exchange-fan-out-params.js +8 -0
- package/dist/esm/src/lib/exchange/exchange-fan-out/exchange-fan-out.js +213 -0
- package/dist/esm/src/lib/exchange/exchange-fan-out/index.js +2 -0
- package/dist/esm/src/lib/exchange/exchange-topic/_/_get-exchange-topic-transferable.js +11 -0
- package/dist/esm/src/lib/exchange/exchange-topic/_/_get-topic-exchange-params.js +22 -0
- package/dist/esm/src/lib/exchange/exchange-topic/_/_get-topic-exchange-queues.js +26 -0
- package/dist/esm/src/lib/exchange/exchange-topic/_/_validate-exchange-topic-params.js +8 -0
- package/dist/esm/src/lib/exchange/exchange-topic/exchange-topic.js +22 -0
- package/dist/esm/src/lib/exchange/exchange-topic/index.js +2 -0
- package/dist/esm/src/lib/exchange/index.js +6 -0
- package/dist/esm/src/lib/exchange/types/exchange.js +7 -0
- package/dist/esm/src/lib/exchange/types/index.js +2 -0
- package/dist/esm/src/lib/index.js +11 -0
- package/dist/esm/src/lib/message/_/_delete-message.js +44 -0
- package/dist/esm/src/lib/message/_/_from-message.js +24 -0
- package/dist/esm/src/lib/message/_/_get-message-state.js +15 -0
- package/dist/esm/src/lib/message/_/_get-message-status.js +15 -0
- package/dist/esm/src/lib/message/_/_get-message.js +40 -0
- package/dist/esm/src/lib/message/errors/index.js +7 -0
- package/dist/esm/src/lib/message/errors/message-delete.error.js +7 -0
- package/dist/esm/src/lib/message/errors/message-destination-queue-already-set.error.js +7 -0
- package/dist/esm/src/lib/message/errors/message-destination-queue-required.error.js +7 -0
- package/dist/esm/src/lib/message/errors/message-exchange-required.error.js +7 -0
- package/dist/esm/src/lib/message/errors/message-not-found.error.js +7 -0
- package/dist/esm/src/lib/message/errors/message.error.js +4 -0
- package/dist/esm/src/lib/message/index.js +5 -0
- package/dist/esm/src/lib/message/message-envelope.js +154 -0
- package/dist/esm/src/lib/message/message-state.js +158 -0
- package/dist/esm/src/lib/message/message.js +88 -0
- package/dist/esm/src/lib/message/producible-message.js +214 -0
- package/dist/esm/src/lib/message/types/config.js +2 -0
- package/dist/esm/src/lib/message/types/index.js +4 -0
- package/dist/esm/src/lib/message/types/message-state.js +2 -0
- package/dist/esm/src/lib/message/types/message.js +30 -0
- package/dist/esm/src/lib/namespace/errors/index.js +3 -0
- package/dist/esm/src/lib/namespace/errors/namespace-not-found.error.js +7 -0
- package/dist/esm/src/lib/namespace/errors/namespace.error.js +4 -0
- package/dist/esm/src/lib/namespace/index.js +3 -0
- package/dist/esm/src/lib/namespace/namespace.js +115 -0
- package/dist/esm/src/lib/producer/_/_schedule-message.js +46 -0
- package/dist/esm/src/lib/producer/errors/index.js +7 -0
- package/dist/esm/src/lib/producer/errors/producer-instance-not-running.error.js +7 -0
- package/dist/esm/src/lib/producer/errors/producer-message-exchange-required.error.js +4 -0
- package/dist/esm/src/lib/producer/errors/producer-message-not-published.error.js +4 -0
- package/dist/esm/src/lib/producer/errors/producer-message-not-scheduled.error.js +4 -0
- package/dist/esm/src/lib/producer/errors/producer-queue-without-consumer-groups.error.js +4 -0
- package/dist/esm/src/lib/producer/errors/producer.error.js +4 -0
- package/dist/esm/src/lib/producer/event-bus-publisher.js +53 -0
- package/dist/esm/src/lib/producer/index.js +3 -0
- package/dist/esm/src/lib/producer/producer.js +232 -0
- package/dist/esm/src/lib/producer/queue-consumer-groups-cache.js +126 -0
- package/dist/esm/src/lib/queue/_/_delete-queue.js +132 -0
- package/dist/esm/src/lib/queue/_/_get-queue-properties.js +52 -0
- package/dist/esm/src/lib/queue/_/_get-queues.js +16 -0
- package/dist/esm/src/lib/queue/_/_parse-queue-extended-params.js +42 -0
- package/dist/esm/src/lib/queue/_/_parse-queue-params.js +19 -0
- package/dist/esm/src/lib/queue/errors/index.js +6 -0
- package/dist/esm/src/lib/queue/errors/queue-exists.error.js +4 -0
- package/dist/esm/src/lib/queue/errors/queue-has-running-consumers.error.js +7 -0
- package/dist/esm/src/lib/queue/errors/queue-not-empty.error.js +4 -0
- package/dist/esm/src/lib/queue/errors/queue-not-found.error.js +4 -0
- package/dist/esm/src/lib/queue/errors/queue.error.js +4 -0
- package/dist/esm/src/lib/queue/index.js +4 -0
- package/dist/esm/src/lib/queue/queue.js +162 -0
- package/dist/esm/src/lib/queue/types/index.js +3 -0
- package/dist/esm/src/lib/queue/types/queue-consumer.js +2 -0
- package/dist/esm/src/lib/queue/types/queue.js +20 -0
- package/dist/esm/src/lib/queue-messages/_/_requeue-message.js +66 -0
- package/dist/esm/src/lib/queue-messages/_/_validate-queue-extended-params.js +24 -0
- package/dist/esm/src/lib/queue-messages/errors/index.js +3 -0
- package/dist/esm/src/lib/queue-messages/errors/message-requeue.error.js +7 -0
- package/dist/esm/src/lib/queue-messages/errors/queue-message.error.js +4 -0
- package/dist/esm/src/lib/queue-messages/index.js +8 -0
- package/dist/esm/src/lib/queue-messages/queue-acknowledged-messages.js +18 -0
- package/dist/esm/src/lib/queue-messages/queue-dead-lettered-messages.js +18 -0
- package/dist/esm/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-abstract.js +147 -0
- package/dist/esm/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-list.js +56 -0
- package/dist/esm/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-set.js +64 -0
- package/dist/esm/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-sorted-set.js +56 -0
- package/dist/esm/src/lib/queue-messages/queue-messages.js +120 -0
- package/dist/esm/src/lib/queue-messages/queue-pending-messages/index.js +2 -0
- package/dist/esm/src/lib/queue-messages/queue-pending-messages/linear-queue-pending-messages.js +6 -0
- package/dist/esm/src/lib/queue-messages/queue-pending-messages/priority-queue-pending-messages.js +6 -0
- package/dist/esm/src/lib/queue-messages/queue-pending-messages/queue-pending-messages.js +90 -0
- package/dist/esm/src/lib/queue-messages/queue-scheduled-messages.js +5 -0
- package/dist/esm/src/lib/queue-messages/types/index.js +2 -0
- package/dist/esm/src/lib/queue-rate-limit/_/_has-rate-limit-exceeded.js +15 -0
- package/dist/esm/src/lib/queue-rate-limit/errors/index.js +2 -0
- package/dist/esm/src/lib/queue-rate-limit/errors/queue-rate-limit.error.js +4 -0
- package/dist/esm/src/lib/queue-rate-limit/index.js +3 -0
- package/dist/esm/src/lib/queue-rate-limit/queue-rate-limit.js +110 -0
- package/dist/esm/tests/common/base-instance.js +17 -0
- package/dist/esm/tests/common/config.js +24 -0
- package/dist/esm/tests/common/consumer-thread.js +24 -0
- package/dist/esm/tests/common/consumer.js +17 -0
- package/dist/esm/tests/common/event-bus-redis.js +10 -0
- package/dist/esm/tests/common/events.js +52 -0
- package/dist/esm/tests/common/exchange.js +36 -0
- package/dist/esm/tests/common/logger.js +4 -0
- package/dist/esm/tests/common/message-handler-worker-acks.js +4 -0
- package/dist/esm/tests/common/message-handler-worker-faulty-exit.js +3 -0
- package/dist/esm/tests/common/message-handler-worker-faulty.js +2 -0
- package/dist/esm/tests/common/message-handler-worker-unacks-exception.js +4 -0
- package/dist/esm/tests/common/message-handler-worker-unacks.js +4 -0
- package/dist/esm/tests/common/message-producing-consuming.js +84 -0
- package/dist/esm/tests/common/message.js +14 -0
- package/dist/esm/tests/common/namespace.js +14 -0
- package/dist/esm/tests/common/producer.js +15 -0
- package/dist/esm/tests/common/queue-acknowledged-messages.js +14 -0
- package/dist/esm/tests/common/queue-dead-lettered-messages.js +14 -0
- package/dist/esm/tests/common/queue-messages.js +14 -0
- package/dist/esm/tests/common/queue-pending-messages.js +14 -0
- package/dist/esm/tests/common/queue-rate-limit.js +14 -0
- package/dist/esm/tests/common/queue-scheduled-messages.js +14 -0
- package/dist/esm/tests/common/queue.js +14 -0
- package/dist/esm/tests/common/redis.js +19 -0
- package/dist/esm/tests/common/schedule-worker.js +17 -0
- package/dist/esm/tests/common/shut-down.js +35 -0
- package/dist/esm/tests/common/start-up.js +20 -0
- package/dist/esm/tests/common/utils.js +3 -0
- package/dist/esm/tests/common/validate-time.js +5 -0
- package/dist/esm/tests/setup.js +12 -0
- package/dist/esm/tests/tests/consume-message-worker/test00001.test.js +31 -0
- package/dist/esm/tests/tests/consume-message-worker/test00002.test.js +70 -0
- package/dist/esm/tests/tests/consume-message-worker/test00003.test.js +112 -0
- package/dist/esm/tests/tests/consuming-messages/test00001.test.js +56 -0
- package/dist/esm/tests/tests/consuming-messages/test00002.test.js +20 -0
- package/dist/esm/tests/tests/consuming-messages/test00003.test.js +34 -0
- package/dist/esm/tests/tests/consuming-messages/test00004.test.js +34 -0
- package/dist/esm/tests/tests/consuming-messages/test00005.test.js +34 -0
- package/dist/esm/tests/tests/consuming-messages/test00006.test.js +34 -0
- package/dist/esm/tests/tests/consuming-messages/test00007.test.js +41 -0
- package/dist/esm/tests/tests/consuming-messages/test00008.test.js +44 -0
- package/dist/esm/tests/tests/consuming-messages/test00009.test.js +34 -0
- package/dist/esm/tests/tests/consuming-messages/test00010.test.js +16 -0
- package/dist/esm/tests/tests/consuming-messages/test00011.test.js +55 -0
- package/dist/esm/tests/tests/consuming-messages/test00012.test.js +68 -0
- package/dist/esm/tests/tests/consuming-messages/test00013.test.js +57 -0
- package/dist/esm/tests/tests/consuming-messages/test00014.test.js +46 -0
- package/dist/esm/tests/tests/consuming-messages/test00015.test.js +51 -0
- package/dist/esm/tests/tests/consuming-messages/test00016.test.js +33 -0
- package/dist/esm/tests/tests/consuming-messages/test00017.test.js +33 -0
- package/dist/esm/tests/tests/consuming-messages/test00019.test.js +30 -0
- package/dist/esm/tests/tests/consuming-messages/test00020.test.js +11 -0
- package/dist/esm/tests/tests/consuming-messages/test00021.test.js +13 -0
- package/dist/esm/tests/tests/consuming-messages/test00022.test.js +30 -0
- package/dist/esm/tests/tests/consuming-messages/test00023.test.js +36 -0
- package/dist/esm/tests/tests/consuming-messages/test00024.test.js +36 -0
- package/dist/esm/tests/tests/consuming-messages/test00025.test.js +36 -0
- package/dist/esm/tests/tests/consuming-messages/test00026.test.js +34 -0
- package/dist/esm/tests/tests/consuming-messages/test00027.test.js +47 -0
- package/dist/esm/tests/tests/consuming-messages/test00032.test.js +36 -0
- package/dist/esm/tests/tests/consuming-messages/test00033.test.js +96 -0
- package/dist/esm/tests/tests/consuming-messages/test00034.test.js +38 -0
- package/dist/esm/tests/tests/consuming-messages/test00035.test.js +71 -0
- package/dist/esm/tests/tests/consuming-messages/test00036.test.js +39 -0
- package/dist/esm/tests/tests/consuming-messages/test00038.test.js +34 -0
- package/dist/esm/tests/tests/deleting-messages/test00001.test.js +22 -0
- package/dist/esm/tests/tests/deleting-messages/test00002.test.js +24 -0
- package/dist/esm/tests/tests/deleting-messages/test00003.test.js +46 -0
- package/dist/esm/tests/tests/deleting-messages/test00004.test.js +47 -0
- package/dist/esm/tests/tests/deleting-messages/test00005.test.js +35 -0
- package/dist/esm/tests/tests/event-bus/test00001.test.js +77 -0
- package/dist/esm/tests/tests/event-bus/test00002.test.js +36 -0
- package/dist/esm/tests/tests/exchanges/direct-exchange/test00001.test.js +15 -0
- package/dist/esm/tests/tests/exchanges/direct-exchange/test00002.test.js +20 -0
- package/dist/esm/tests/tests/exchanges/fanout-exchange/test00001.test.js +36 -0
- package/dist/esm/tests/tests/exchanges/fanout-exchange/test00002.test.js +18 -0
- package/dist/esm/tests/tests/exchanges/fanout-exchange/test00003.test.js +26 -0
- package/dist/esm/tests/tests/exchanges/fanout-exchange/test00006.test.js +10 -0
- package/dist/esm/tests/tests/exchanges/fanout-exchange/test00007.test.js +31 -0
- package/dist/esm/tests/tests/exchanges/fanout-exchange/test00008.test.js +16 -0
- package/dist/esm/tests/tests/exchanges/topic-exchange/test00001.test.js +13 -0
- package/dist/esm/tests/tests/exchanges/topic-exchange/test00002.test.js +26 -0
- package/dist/esm/tests/tests/exchanges/topic-exchange/test00003.test.js +19 -0
- package/dist/esm/tests/tests/exchanges/topic-exchange/test00005.test.js +25 -0
- package/dist/esm/tests/tests/exchanges/topic-exchange/test00007.test.js +10 -0
- package/dist/esm/tests/tests/health-check/test00001.test.js +21 -0
- package/dist/esm/tests/tests/health-check/test00002.test.js +21 -0
- package/dist/esm/tests/tests/health-check/test00003.test.js +68 -0
- package/dist/esm/tests/tests/health-check/test00004.test.js +18 -0
- package/dist/esm/tests/tests/health-check/test00005.test.js +22 -0
- package/dist/esm/tests/tests/health-check/test00006.test.js +26 -0
- package/dist/esm/tests/tests/message-status/test00001.test.js +39 -0
- package/dist/esm/tests/tests/message-status/test00002.test.js +31 -0
- package/dist/esm/tests/tests/message-status/test00003.test.js +42 -0
- package/dist/esm/tests/tests/message-status/test00004.test.js +44 -0
- package/dist/esm/tests/tests/misc/test00001.test.js +27 -0
- package/dist/esm/tests/tests/misc/test00002.test.js +4 -0
- package/dist/esm/tests/tests/misc/test00003.test.js +11 -0
- package/dist/esm/tests/tests/misc/test00004.test.js +12 -0
- package/dist/esm/tests/tests/misc/test00014.test.js +27 -0
- package/dist/esm/tests/tests/misc/test00019.test.js +138 -0
- package/dist/esm/tests/tests/misc/test00020.test.js +39 -0
- package/dist/esm/tests/tests/priority-queuing/test00001.test.js +13 -0
- package/dist/esm/tests/tests/priority-queuing/test00002.test.js +55 -0
- package/dist/esm/tests/tests/producer/test00001.test.js +14 -0
- package/dist/esm/tests/tests/purging-queues/test00001.test.js +14 -0
- package/dist/esm/tests/tests/purging-queues/test00002.test.js +14 -0
- package/dist/esm/tests/tests/purging-queues/test00003.test.js +16 -0
- package/dist/esm/tests/tests/purging-queues/test00004.test.js +16 -0
- package/dist/esm/tests/tests/purging-queues/test00005.test.js +14 -0
- package/dist/esm/tests/tests/purging-queues/test00006.test.js +22 -0
- package/dist/esm/tests/tests/purging-queues/test00007.test.js +20 -0
- package/dist/esm/tests/tests/purging-queues/test00008.test.js +46 -0
- package/dist/esm/tests/tests/purging-queues/test00009.test.js +16 -0
- package/dist/esm/tests/tests/purging-queues/test00010.test.js +16 -0
- package/dist/esm/tests/tests/purging-queues/test00011.test.js +18 -0
- package/dist/esm/tests/tests/purging-queues/test00012.test.js +18 -0
- package/dist/esm/tests/tests/purging-queues/test00013.test.js +16 -0
- package/dist/esm/tests/tests/queue-acknowledged-messages/test00001.test.js +41 -0
- package/dist/esm/tests/tests/queue-consumer-groups/test00001.test.js +108 -0
- package/dist/esm/tests/tests/queue-consumer-groups/test00002.test.js +56 -0
- package/dist/esm/tests/tests/queue-consumer-groups/test00003.test.js +67 -0
- package/dist/esm/tests/tests/queue-consumer-groups/test00004.test.js +76 -0
- package/dist/esm/tests/tests/queue-consumer-groups/test00005.test.js +105 -0
- package/dist/esm/tests/tests/queue-dead-lettered-messages/test00001.test.js +41 -0
- package/dist/esm/tests/tests/queue-pending-messages/test00001.test.js +34 -0
- package/dist/esm/tests/tests/queue-rate-limit/test00028.test.js +24 -0
- package/dist/esm/tests/tests/queue-rate-limit/test00029.test.js +45 -0
- package/dist/esm/tests/tests/queue-rate-limit/test00030.test.js +67 -0
- package/dist/esm/tests/tests/queue-rate-limit/test00031.test.js +49 -0
- package/dist/esm/tests/tests/queue-scheduled-messages/test00001.test.js +38 -0
- package/dist/esm/tests/tests/queue-scheduled-messages/test00002.test.js +48 -0
- package/dist/esm/tests/tests/queue-scheduled-messages/test00003.test.js +37 -0
- package/dist/esm/tests/tests/queue-scheduled-messages/test00004.test.js +42 -0
- package/dist/esm/tests/tests/queue-scheduled-messages/test00005.test.js +56 -0
- package/dist/esm/tests/tests/queue-scheduled-messages/test00006.test.js +57 -0
- package/dist/esm/tests/tests/queue-scheduled-messages/test00007.test.js +36 -0
- package/dist/esm/tests/tests/queue-scheduled-messages/test00008.test.js +30 -0
- package/dist/esm/tests/tests/queue-scheduled-messages/test00010.test.js +46 -0
- package/dist/esm/tests/tests/requeuing-messages/test00001.test.js +28 -0
- package/dist/esm/tests/tests/requeuing-messages/test00002.test.js +28 -0
- package/dist/esm/tests/tests/requeuing-messages/test00003.test.js +52 -0
- package/dist/esm/tests/tests/workers/test00001.test.js +55 -0
- package/dist/esm/tests/tests/workers/test00002.test.js +44 -0
- package/dist/esm/tests/tests/workers/test00003.test.js +22 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/src/common/index.d.ts +2 -0
- package/dist/types/src/common/redis-client/errors/redis-client-instance-lock.error.d.ts +4 -0
- package/dist/types/src/common/redis-client/redis-client-factory.d.ts +4 -0
- package/dist/types/src/common/redis-client/redis-client-instance.d.ts +10 -0
- package/dist/types/src/common/redis-client/scripts/scripts.d.ts +16 -0
- package/dist/types/src/common/redis-keys/redis-keys.d.ts +38 -0
- package/dist/types/src/common/redis-keys/redis-keys.error.d.ts +4 -0
- package/dist/types/src/common/types/event.d.ts +50 -0
- package/dist/types/src/common/types/index.d.ts +2 -0
- package/dist/types/src/config/configuration.d.ts +11 -0
- package/dist/types/src/config/configuration.error.d.ts +4 -0
- package/dist/types/src/config/event-bus.d.ts +3 -0
- package/dist/types/src/config/index.d.ts +3 -0
- package/dist/types/src/config/logger.d.ts +3 -0
- package/dist/types/src/config/messages/messages.d.ts +3 -0
- package/dist/types/src/config/messages/store.d.ts +4 -0
- package/dist/types/src/config/namespace.d.ts +3 -0
- package/dist/types/src/config/redis.d.ts +3 -0
- package/dist/types/src/config/types/config.d.ts +16 -0
- package/dist/types/src/config/types/index.d.ts +2 -0
- package/dist/types/src/lib/consumer/consumer/consumer.d.ts +34 -0
- package/dist/types/src/lib/consumer/consumer/event-bus-publisher.d.ts +4 -0
- package/dist/types/src/lib/consumer/consumer-heartbeat/_/_cleanup-offline-consumer.d.ts +3 -0
- package/dist/types/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.d.ts +25 -0
- package/dist/types/src/lib/consumer/consumer-heartbeat/event-bus-publisher.d.ts +4 -0
- package/dist/types/src/lib/consumer/consumer-queues.d.ts +10 -0
- package/dist/types/src/lib/consumer/errors/consumer-group-delete.error.d.ts +4 -0
- package/dist/types/src/lib/consumer/errors/consumer-group-id-not-found.error.d.ts +5 -0
- package/dist/types/src/lib/consumer/errors/consumer-group-id-not-supported.error.d.ts +5 -0
- package/dist/types/src/lib/consumer/errors/consumer-group-id-required.error.d.ts +5 -0
- package/dist/types/src/lib/consumer/errors/consumer-invalid-group-id.error.d.ts +5 -0
- package/dist/types/src/lib/consumer/errors/consumer-message-handler-already-exists.error.d.ts +6 -0
- package/dist/types/src/lib/consumer/errors/consumer.error.d.ts +4 -0
- package/dist/types/src/lib/consumer/errors/index.d.ts +8 -0
- package/dist/types/src/lib/consumer/index.d.ts +4 -0
- package/dist/types/src/lib/consumer/message-handler/consume-message/consume-message.d.ts +31 -0
- package/dist/types/src/lib/consumer/message-handler/consume-message/event-bus-publisher.d.ts +4 -0
- package/dist/types/src/lib/consumer/message-handler/dequeue-message/dequeue-message.d.ts +43 -0
- package/dist/types/src/lib/consumer/message-handler/dequeue-message/event-bus-publisher.d.ts +4 -0
- package/dist/types/src/lib/consumer/message-handler/errors/consumer-message-handler-file.error.d.ts +5 -0
- package/dist/types/src/lib/consumer/message-handler/errors/consumer-message-handler-filename-extension.error.d.ts +5 -0
- package/dist/types/src/lib/consumer/message-handler/errors/consumer-message-handler.error.d.ts +5 -0
- package/dist/types/src/lib/consumer/message-handler/errors/index.d.ts +4 -0
- package/dist/types/src/lib/consumer/message-handler/message-handler/even-bus-publisher.d.ts +4 -0
- package/dist/types/src/lib/consumer/message-handler/message-handler/message-handler.d.ts +38 -0
- package/dist/types/src/lib/consumer/message-handler/multiplexed-message-handler.d.ts +12 -0
- package/dist/types/src/lib/consumer/message-handler/processing-queue.d.ts +12 -0
- package/dist/types/src/lib/consumer/message-handler/retry-message.d.ts +15 -0
- package/dist/types/src/lib/consumer/message-handler-runner/event-bus-publisher.d.ts +4 -0
- package/dist/types/src/lib/consumer/message-handler-runner/message-handler-runner.d.ts +28 -0
- package/dist/types/src/lib/consumer/message-handler-runner/multiplexed-message-handler-runner.d.ts +19 -0
- package/dist/types/src/lib/consumer/types/config.d.ts +4 -0
- package/dist/types/src/lib/consumer/types/consume-message.d.ts +14 -0
- package/dist/types/src/lib/consumer/types/consumer-heartbeat.d.ts +18 -0
- package/dist/types/src/lib/consumer/types/index.d.ts +5 -0
- package/dist/types/src/lib/consumer/types/message-handler.d.ts +12 -0
- package/dist/types/src/lib/consumer/workers/delay-unacknowledged.worker.d.ts +9 -0
- package/dist/types/src/lib/consumer/workers/publish-scheduled.worker.d.ts +13 -0
- package/dist/types/src/lib/consumer/workers/requeue-unacknowledged.worker.d.ts +11 -0
- package/dist/types/src/lib/consumer/workers/watch-consumers.worker.d.ts +9 -0
- package/dist/types/src/lib/consumer/workers/worker.d.ts +17 -0
- package/dist/types/src/lib/consumer-groups/_/_delete-consumer-group.d.ts +5 -0
- package/dist/types/src/lib/consumer-groups/_/_get-consumer-groups.d.ts +4 -0
- package/dist/types/src/lib/consumer-groups/_/_save-consumer-group.d.ts +5 -0
- package/dist/types/src/lib/consumer-groups/consumer-groups.d.ts +15 -0
- package/dist/types/src/lib/consumer-groups/index.d.ts +2 -0
- package/dist/types/src/lib/event-bus/errors/event-bus-lock.error.d.ts +4 -0
- package/dist/types/src/lib/event-bus/event-bus-redis-factory.d.ts +4 -0
- package/dist/types/src/lib/event-bus/event-bus-redis-instance.d.ts +11 -0
- package/dist/types/src/lib/event-bus/index.d.ts +3 -0
- package/dist/types/src/lib/event-bus/types/config.d.ts +4 -0
- package/dist/types/src/lib/event-bus/types/index.d.ts +2 -0
- package/dist/types/src/lib/exchange/_/_get-exchange-queues.d.ts +5 -0
- package/dist/types/src/lib/exchange/errors/exchange-fan-out.error.d.ts +4 -0
- package/dist/types/src/lib/exchange/errors/exchange-invalid-data.error.d.ts +4 -0
- package/dist/types/src/lib/exchange/errors/exchange.error.d.ts +4 -0
- package/dist/types/src/lib/exchange/errors/index.d.ts +4 -0
- package/dist/types/src/lib/exchange/exchange-abstract.d.ts +12 -0
- package/dist/types/src/lib/exchange/exchange-direct/_/_get-exchange-direct-transferable.d.ts +4 -0
- package/dist/types/src/lib/exchange/exchange-direct/_/_validate-exchange-direct-params.d.ts +3 -0
- package/dist/types/src/lib/exchange/exchange-direct/exchange-direct.d.ts +7 -0
- package/dist/types/src/lib/exchange/exchange-direct/index.d.ts +2 -0
- package/dist/types/src/lib/exchange/exchange-fan-out/_/_get-exchange-fanout-transferable.d.ts +3 -0
- package/dist/types/src/lib/exchange/exchange-fan-out/_/_get-fan-out-exchange-queues.d.ts +4 -0
- package/dist/types/src/lib/exchange/exchange-fan-out/_/_get-queue-fan-out-exchange.d.ts +4 -0
- package/dist/types/src/lib/exchange/exchange-fan-out/_/_validate-exchange-fan-out-params.d.ts +2 -0
- package/dist/types/src/lib/exchange/exchange-fan-out/exchange-fan-out.d.ts +13 -0
- package/dist/types/src/lib/exchange/exchange-fan-out/index.d.ts +2 -0
- package/dist/types/src/lib/exchange/exchange-topic/_/_get-exchange-topic-transferable.d.ts +3 -0
- package/dist/types/src/lib/exchange/exchange-topic/_/_get-topic-exchange-params.d.ts +4 -0
- package/dist/types/src/lib/exchange/exchange-topic/_/_get-topic-exchange-queues.d.ts +5 -0
- package/dist/types/src/lib/exchange/exchange-topic/_/_validate-exchange-topic-params.d.ts +3 -0
- package/dist/types/src/lib/exchange/exchange-topic/exchange-topic.d.ts +8 -0
- package/dist/types/src/lib/exchange/exchange-topic/index.d.ts +2 -0
- package/dist/types/src/lib/exchange/index.d.ts +6 -0
- package/dist/types/src/lib/exchange/types/exchange.d.ts +31 -0
- package/dist/types/src/lib/exchange/types/index.d.ts +2 -0
- package/dist/types/src/lib/index.d.ts +11 -0
- package/dist/types/src/lib/message/_/_delete-message.d.ts +3 -0
- package/dist/types/src/lib/message/_/_from-message.d.ts +5 -0
- package/dist/types/src/lib/message/_/_get-message-state.d.ts +4 -0
- package/dist/types/src/lib/message/_/_get-message-status.d.ts +4 -0
- package/dist/types/src/lib/message/_/_get-message.d.ts +5 -0
- package/dist/types/src/lib/message/errors/index.d.ts +7 -0
- package/dist/types/src/lib/message/errors/message-delete.error.d.ts +5 -0
- package/dist/types/src/lib/message/errors/message-destination-queue-already-set.error.d.ts +5 -0
- package/dist/types/src/lib/message/errors/message-destination-queue-required.error.d.ts +5 -0
- package/dist/types/src/lib/message/errors/message-exchange-required.error.d.ts +5 -0
- package/dist/types/src/lib/message/errors/message-not-found.error.d.ts +5 -0
- package/dist/types/src/lib/message/errors/message.error.d.ts +4 -0
- package/dist/types/src/lib/message/index.d.ts +5 -0
- package/dist/types/src/lib/message/message-envelope.d.ts +33 -0
- package/dist/types/src/lib/message/message-state.d.ts +44 -0
- package/dist/types/src/lib/message/message.d.ts +16 -0
- package/dist/types/src/lib/message/producible-message.d.ts +56 -0
- package/dist/types/src/lib/message/types/config.d.ts +19 -0
- package/dist/types/src/lib/message/types/index.d.ts +4 -0
- package/dist/types/src/lib/message/types/message-state.d.ts +15 -0
- package/dist/types/src/lib/message/types/message.d.ts +57 -0
- package/dist/types/src/lib/namespace/errors/index.d.ts +3 -0
- package/dist/types/src/lib/namespace/errors/namespace-not-found.error.d.ts +5 -0
- package/dist/types/src/lib/namespace/errors/namespace.error.d.ts +4 -0
- package/dist/types/src/lib/namespace/index.d.ts +3 -0
- package/dist/types/src/lib/namespace/namespace.d.ts +13 -0
- package/dist/types/src/lib/producer/_/_schedule-message.d.ts +4 -0
- package/dist/types/src/lib/producer/errors/index.d.ts +7 -0
- package/dist/types/src/lib/producer/errors/producer-instance-not-running.error.d.ts +5 -0
- package/dist/types/src/lib/producer/errors/producer-message-exchange-required.error.d.ts +4 -0
- package/dist/types/src/lib/producer/errors/producer-message-not-published.error.d.ts +4 -0
- package/dist/types/src/lib/producer/errors/producer-message-not-scheduled.error.d.ts +4 -0
- package/dist/types/src/lib/producer/errors/producer-queue-without-consumer-groups.error.d.ts +4 -0
- package/dist/types/src/lib/producer/errors/producer.error.d.ts +4 -0
- package/dist/types/src/lib/producer/event-bus-publisher.d.ts +4 -0
- package/dist/types/src/lib/producer/index.d.ts +3 -0
- package/dist/types/src/lib/producer/producer.d.ts +27 -0
- package/dist/types/src/lib/producer/queue-consumer-groups-cache.d.ts +26 -0
- package/dist/types/src/lib/queue/_/_delete-queue.d.ts +4 -0
- package/dist/types/src/lib/queue/_/_get-queue-properties.d.ts +4 -0
- package/dist/types/src/lib/queue/_/_get-queues.d.ts +4 -0
- package/dist/types/src/lib/queue/_/_parse-queue-extended-params.d.ts +4 -0
- package/dist/types/src/lib/queue/_/_parse-queue-params.d.ts +4 -0
- package/dist/types/src/lib/queue/errors/index.d.ts +6 -0
- package/dist/types/src/lib/queue/errors/queue-exists.error.d.ts +4 -0
- package/dist/types/src/lib/queue/errors/queue-has-running-consumers.error.d.ts +5 -0
- package/dist/types/src/lib/queue/errors/queue-not-empty.error.d.ts +4 -0
- package/dist/types/src/lib/queue/errors/queue-not-found.error.d.ts +4 -0
- package/dist/types/src/lib/queue/errors/queue.error.d.ts +4 -0
- package/dist/types/src/lib/queue/index.d.ts +4 -0
- package/dist/types/src/lib/queue/queue.d.ts +20 -0
- package/dist/types/src/lib/queue/types/index.d.ts +3 -0
- package/dist/types/src/lib/queue/types/queue-consumer.d.ts +7 -0
- package/dist/types/src/lib/queue/types/queue.d.ts +41 -0
- package/dist/types/src/lib/queue-messages/_/_requeue-message.d.ts +5 -0
- package/dist/types/src/lib/queue-messages/_/_validate-queue-extended-params.d.ts +4 -0
- package/dist/types/src/lib/queue-messages/errors/index.d.ts +3 -0
- package/dist/types/src/lib/queue-messages/errors/message-requeue.error.d.ts +5 -0
- package/dist/types/src/lib/queue-messages/errors/queue-message.error.d.ts +4 -0
- package/dist/types/src/lib/queue-messages/index.d.ts +8 -0
- package/dist/types/src/lib/queue-messages/queue-acknowledged-messages.d.ts +10 -0
- package/dist/types/src/lib/queue-messages/queue-dead-lettered-messages.d.ts +10 -0
- package/dist/types/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-abstract.d.ts +23 -0
- package/dist/types/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-list.d.ts +9 -0
- package/dist/types/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-set.d.ts +9 -0
- package/dist/types/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-sorted-set.d.ts +9 -0
- package/dist/types/src/lib/queue-messages/queue-messages.d.ts +22 -0
- package/dist/types/src/lib/queue-messages/queue-pending-messages/index.d.ts +2 -0
- package/dist/types/src/lib/queue-messages/queue-pending-messages/linear-queue-pending-messages.d.ts +7 -0
- package/dist/types/src/lib/queue-messages/queue-pending-messages/priority-queue-pending-messages.d.ts +7 -0
- package/dist/types/src/lib/queue-messages/queue-pending-messages/queue-pending-messages.d.ts +20 -0
- package/dist/types/src/lib/queue-messages/queue-scheduled-messages.d.ts +6 -0
- package/dist/types/src/lib/queue-messages/types/index.d.ts +42 -0
- package/dist/types/src/lib/queue-rate-limit/_/_has-rate-limit-exceeded.d.ts +4 -0
- package/dist/types/src/lib/queue-rate-limit/errors/index.d.ts +2 -0
- package/dist/types/src/lib/queue-rate-limit/errors/queue-rate-limit.error.d.ts +4 -0
- package/dist/types/src/lib/queue-rate-limit/index.d.ts +3 -0
- package/dist/types/src/lib/queue-rate-limit/queue-rate-limit.d.ts +15 -0
- package/jest.config.js +21 -0
- package/package.json +25 -8
- package/tsconfig.cjs.json +10 -0
- package/tsconfig.types.json +10 -0
- package/dist/index.cjs +0 -5882
- package/dist/index.d.cts +0 -1038
- package/dist/index.d.ts +0 -1038
- package/dist/index.js +0 -5874
- /package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/acknowledge-message.lua +0 -0
- /package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/create-queue.lua +0 -0
- /package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/delete-consumer-group.lua +0 -0
- /package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/fetch-message-for-processing.lua +0 -0
- /package/dist/{lua → cjs/src/common/redis-client/scripts/lua}/has-queue-rate-exceeded.lua +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [8.0.0-rc.18](https://github.com/weyoss/redis-smq/compare/v8.0.0-rc.17...v8.0.0-rc.18) (2024-03-24)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ⚠ BREAKING CHANGES
|
|
7
|
+
|
|
8
|
+
* rebase on redis-smq-common@3.0.0-rc.14
|
|
9
|
+
|
|
10
|
+
### Documentation
|
|
11
|
+
|
|
12
|
+
* update documentation and API reference ([3baaee6](https://github.com/weyoss/redis-smq/commit/3baaee6649c7bde47ce4c22c12ca4dc367ab301d))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Codebase Refactoring
|
|
16
|
+
|
|
17
|
+
* do not throw errors for async functions ([582f355](https://github.com/weyoss/redis-smq/commit/582f35539c01e9b98a05fbd65b2247cba623524c))
|
|
18
|
+
* rebase on redis-smq-common@3.0.0-rc.14 ([2c5edbd](https://github.com/weyoss/redis-smq/commit/2c5edbd8debdf4599ddbb7ad42a37bc94fea14d1))
|
|
19
|
+
|
|
20
|
+
## [8.0.0-rc.17](https://github.com/weyoss/redis-smq/compare/v8.0.0-rc.16...v8.0.0-rc.17) (2024-01-30)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Documentation
|
|
24
|
+
|
|
25
|
+
* add missing error classes ([753331e](https://github.com/weyoss/redis-smq/commit/753331e5ce4fb239cb29b3ae4c3246ba185b4d94))
|
|
26
|
+
* simplify and unify class/method naming and referencing ([0299b31](https://github.com/weyoss/redis-smq/commit/0299b314e843c28d52e2f767ace150e39652287c))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Codebase Refactoring
|
|
30
|
+
|
|
31
|
+
* improve MessageHandler error handling ([957d257](https://github.com/weyoss/redis-smq/commit/957d257e66cce6faaf9dad5bf949cdd1198cfae8))
|
|
32
|
+
|
|
3
33
|
## [8.0.0-rc.16](https://github.com/weyoss/redis-smq/compare/v8.0.0-rc.15...v8.0.0-rc.16) (2024-01-28)
|
|
4
34
|
|
|
5
35
|
|
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ RedisSMQ is a Node.js library for queuing messages (aka jobs) and processing the
|
|
|
23
23
|
|
|
24
24
|
* [High-performance message processing](docs/performance.md).
|
|
25
25
|
* Flexible Producer/Consumer model which offers [Multi-Queue Producers](docs/producing-messages.md) & [Multi-Queue Consumers](docs/consuming-messages.md).
|
|
26
|
-
* RedisSMQ offers different exchange types: [Direct
|
|
26
|
+
* RedisSMQ offers different exchange types: [Direct ExchangeAbstract](docs/message-exchanges.md#direct-exchange), [Topic ExchangeAbstract](docs/message-exchanges.md#topic-exchange), and [FanOut ExchangeAbstract](docs/message-exchanges.md#fanout-exchange) for publishing a message to one or multiple queues.
|
|
27
27
|
* Supports [Point-2-Point](docs/queue-delivery-models.md#point-2-point-delivery-model) and [Pub/Sub](docs/queue-delivery-models.md#pubsub-delivery-model) [delivery models](docs/queue-delivery-models.md).
|
|
28
28
|
* Both [delivery models](docs/queue-delivery-models.md) are reliable. For cases of failure, while delivering/consuming messages, [at-least-once](docs/api/classes/ProducibleMessage.md#setretrythreshold) and [at-most-once](docs/api/classes/ProducibleMessage.md#setretrythreshold) modes may be configured.
|
|
29
29
|
* [3 queuing strategies](docs/queues.md): [FIFO queues](docs/queues.md#fifo-first-in-first-out-queues), [LIFO queues](docs/queues.md#lifo-last-in-first-out-queues), and [Priority Queues](docs/queues.md#priority-queues).
|
|
@@ -68,9 +68,14 @@ A queue is responsible for holding messages which are produced by producers and
|
|
|
68
68
|
|
|
69
69
|
```javascript
|
|
70
70
|
const queue = new Queue();
|
|
71
|
-
queue.save(
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
queue.save(
|
|
72
|
+
'my_queue',
|
|
73
|
+
EQueueType.LIFO_QUEUE,
|
|
74
|
+
EQueueDeliveryModel.POINT_TO_POINT,
|
|
75
|
+
(err) => {
|
|
76
|
+
if (err) console.error(err);
|
|
77
|
+
},
|
|
78
|
+
);
|
|
74
79
|
```
|
|
75
80
|
|
|
76
81
|
In the example above we are defining a [LIFO queue](docs/queues.md#lifo-last-in-first-out-queues) with a [POINT-2-POINT delivery model](docs/queue-delivery-models.md#point-2-point-delivery-model).
|
|
@@ -81,10 +86,10 @@ See [Queues](docs/queues.md) for more details.
|
|
|
81
86
|
|
|
82
87
|
```javascript
|
|
83
88
|
const msg = new ProducibleMessage();
|
|
84
|
-
msg.setQueue('my_queue').setBody('Hello Word!')
|
|
89
|
+
msg.setQueue('my_queue').setBody('Hello Word!');
|
|
85
90
|
producer.produce(msg, (err, ids) => {
|
|
86
91
|
if (err) console.error(err);
|
|
87
|
-
else console.log(`Produced message IDs are: ${ids.join(', ')}`)
|
|
92
|
+
else console.log(`Produced message IDs are: ${ids.join(', ')}`);
|
|
88
93
|
});
|
|
89
94
|
```
|
|
90
95
|
|
|
@@ -97,7 +102,7 @@ const consumer = new Consumer();
|
|
|
97
102
|
const messageHandler = (msg, cb) => {
|
|
98
103
|
console.log(msg.body);
|
|
99
104
|
cb();
|
|
100
|
-
}
|
|
105
|
+
};
|
|
101
106
|
consumer.consume('my_queue', messageHandler, (err) => {
|
|
102
107
|
if (err) console.error(err);
|
|
103
108
|
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./src/common/index.js"), exports);
|
|
18
|
+
__exportStar(require("./src/config/index.js"), exports);
|
|
19
|
+
__exportStar(require("./src/lib/index.js"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types/index.js"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisClientInstanceLockError = void 0;
|
|
4
|
+
const redis_smq_common_1 = require("redis-smq-common");
|
|
5
|
+
class RedisClientInstanceLockError extends redis_smq_common_1.RedisSMQError {
|
|
6
|
+
}
|
|
7
|
+
exports.RedisClientInstanceLockError = RedisClientInstanceLockError;
|
|
8
|
+
//# sourceMappingURL=redis-client-instance-lock.error.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisClientFactory = void 0;
|
|
4
|
+
const redis_client_instance_js_1 = require("./redis-client-instance.js");
|
|
5
|
+
const instances = {};
|
|
6
|
+
function RedisClientFactory(id, onError) {
|
|
7
|
+
if (!instances[id]) {
|
|
8
|
+
const instance = new redis_client_instance_js_1.RedisClientInstance();
|
|
9
|
+
instance.on('error', onError);
|
|
10
|
+
instances[id] = instance;
|
|
11
|
+
}
|
|
12
|
+
return instances[id];
|
|
13
|
+
}
|
|
14
|
+
exports.RedisClientFactory = RedisClientFactory;
|
|
15
|
+
//# sourceMappingURL=redis-client-factory.js.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisClientInstance = void 0;
|
|
4
|
+
const redis_smq_common_1 = require("redis-smq-common");
|
|
5
|
+
const index_js_1 = require("../../config/index.js");
|
|
6
|
+
const redis_client_instance_lock_error_js_1 = require("./errors/redis-client-instance-lock.error.js");
|
|
7
|
+
class RedisClientInstance extends redis_smq_common_1.EventEmitter {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.instance = null;
|
|
11
|
+
this.locked = false;
|
|
12
|
+
this.init = (cb) => {
|
|
13
|
+
this.getSetInstance((err) => cb(err));
|
|
14
|
+
};
|
|
15
|
+
this.getSetInstance = (cb) => {
|
|
16
|
+
if (!this.locked) {
|
|
17
|
+
if (!this.instance) {
|
|
18
|
+
this.locked = true;
|
|
19
|
+
(0, redis_smq_common_1.createRedisClient)(index_js_1.Configuration.getSetConfig().redis, (err, client) => {
|
|
20
|
+
this.locked = false;
|
|
21
|
+
if (err)
|
|
22
|
+
cb(err);
|
|
23
|
+
else if (!client)
|
|
24
|
+
cb(new redis_smq_common_1.CallbackEmptyReplyError());
|
|
25
|
+
else {
|
|
26
|
+
this.instance = client;
|
|
27
|
+
this.instance.on('error', (err) => this.emit('error', err));
|
|
28
|
+
cb(null, this.instance);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
else
|
|
33
|
+
cb(null, this.instance);
|
|
34
|
+
}
|
|
35
|
+
else
|
|
36
|
+
cb(new redis_client_instance_lock_error_js_1.RedisClientInstanceLockError());
|
|
37
|
+
};
|
|
38
|
+
this.shutdown = (cb) => {
|
|
39
|
+
if (this.instance) {
|
|
40
|
+
this.instance.halt(() => {
|
|
41
|
+
this.instance = null;
|
|
42
|
+
cb();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else
|
|
46
|
+
cb();
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
getInstance() {
|
|
50
|
+
if (!this.instance)
|
|
51
|
+
return new redis_smq_common_1.PanicError(`Use first getSetInstance() to initialize the RedisClientInstance class`);
|
|
52
|
+
return this.instance;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.RedisClientInstance = RedisClientInstance;
|
|
56
|
+
//# sourceMappingURL=redis-client-instance.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
--- Generated by EmmyLua(https://github.com/EmmyLua)
|
|
3
|
+
--- Created by user.
|
|
4
|
+
--- DateTime: 2/20/24 1:12 PM
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
local keyHeartbeats = KEYS[1]
|
|
8
|
+
local keyHeartbeatsTimestamps = KEYS[2]
|
|
9
|
+
|
|
10
|
+
local keyConsumerQueues = ''
|
|
11
|
+
|
|
12
|
+
local consumerId = ''
|
|
13
|
+
|
|
14
|
+
local keyIndexOffset = 2
|
|
15
|
+
local argvIndexOffset = 0
|
|
16
|
+
|
|
17
|
+
local function clean()
|
|
18
|
+
redis.call("HDEL", keyHeartbeats, consumerId)
|
|
19
|
+
redis.call("ZREM", keyHeartbeatsTimestamps, consumerId)
|
|
20
|
+
redis.call("DEL", keyConsumerQueues)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
if #ARGV > argvIndexOffset then
|
|
24
|
+
for index in pairs(ARGV) do
|
|
25
|
+
consumerId = ARGV[index]
|
|
26
|
+
keyConsumerQueues = KEYS[keyIndexOffset + 1]
|
|
27
|
+
keyIndexOffset = keyIndexOffset + 1
|
|
28
|
+
clean()
|
|
29
|
+
end
|
|
30
|
+
return 'OK'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
return 'INVALID_PARAMETERS'
|
|
@@ -3,7 +3,7 @@ local keyQueueMessages = KEYS[1]
|
|
|
3
3
|
local keyMessagePart = ARGV[1]
|
|
4
4
|
local keySeparator = ARGV[2]
|
|
5
5
|
|
|
6
|
-
local cursor="0";
|
|
6
|
+
local cursor = "0";
|
|
7
7
|
local count = 0;
|
|
8
8
|
repeat
|
|
9
9
|
local result = redis.call("SSCAN", keyQueueMessages, cursor, "COUNT", 100);
|
|
@@ -11,10 +11,10 @@ repeat
|
|
|
11
11
|
for i = 1, #ids do
|
|
12
12
|
--- todo this will not work while using a redis cluster
|
|
13
13
|
--- keys must be passed
|
|
14
|
-
local key = table.concat({keyMessagePart, keySeparator, ids[i]});
|
|
14
|
+
local key = table.concat({ keyMessagePart, keySeparator, ids[i] });
|
|
15
15
|
redis.call("UNLINK", key);
|
|
16
|
-
count = count +1;
|
|
17
|
-
end;
|
|
16
|
+
count = count + 1;
|
|
17
|
+
end ;
|
|
18
18
|
cursor = result[1];
|
|
19
19
|
until cursor == "0";
|
|
20
20
|
redis.call("UNLINK", keyQueueMessages);
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
local keyProcessingQueues = KEYS[1]
|
|
2
|
-
local
|
|
3
|
-
local
|
|
4
|
-
local keyDelayedMessages = KEYS[4]
|
|
5
|
-
local keyRequeueMessages = KEYS[5]
|
|
2
|
+
local keyDelayedMessages = KEYS[2]
|
|
3
|
+
local keyRequeueMessages = KEYS[3]
|
|
6
4
|
|
|
7
5
|
---
|
|
8
6
|
|
|
@@ -18,7 +16,7 @@ local EMessageUnacknowledgedCauseOfflineHandler = ARGV[9]
|
|
|
18
16
|
|
|
19
17
|
---
|
|
20
18
|
|
|
21
|
-
local keyIndexOffset =
|
|
19
|
+
local keyIndexOffset = 3
|
|
22
20
|
local argvIndexOffset = 9
|
|
23
21
|
|
|
24
22
|
---
|
|
@@ -52,12 +50,6 @@ local function removeQueueConsumer()
|
|
|
52
50
|
end
|
|
53
51
|
end
|
|
54
52
|
|
|
55
|
-
local function deleteConsumer()
|
|
56
|
-
redis.call("HDEL", keyHeartbeats, consumerId)
|
|
57
|
-
redis.call("ZREM", keyHeartbeatsTimestamps, consumerId)
|
|
58
|
-
redis.call("DEL", keyConsumerQueues)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
53
|
local function retryMessage()
|
|
62
54
|
if messageId ~= '' then
|
|
63
55
|
if retryAction == ERetryActionRequeue then
|
|
@@ -126,9 +118,6 @@ if #ARGV > argvIndexOffset then
|
|
|
126
118
|
end
|
|
127
119
|
end
|
|
128
120
|
end
|
|
129
|
-
if messageUnacknowledgedCause == EMessageUnacknowledgedCauseOfflineConsumer then
|
|
130
|
-
deleteConsumer()
|
|
131
|
-
end
|
|
132
121
|
return 'OK'
|
|
133
122
|
end
|
|
134
123
|
|
|
@@ -13,7 +13,7 @@ local consumerProcessingQueue = ARGV[4]
|
|
|
13
13
|
|
|
14
14
|
if redis.call("SISMEMBER", keyQueues, queue) == 1 then
|
|
15
15
|
redis.call("SADD", keyConsumerQueues, queue)
|
|
16
|
-
redis.call("HSET",keyQueueConsumers, consumerId, consumerInfo)
|
|
16
|
+
redis.call("HSET", keyQueueConsumers, consumerId, consumerInfo)
|
|
17
17
|
redis.call("HSET", keyQueueProcessingQueues, consumerProcessingQueue, consumerId)
|
|
18
18
|
redis.call("SADD", keyProcessingQueues, consumerProcessingQueue)
|
|
19
19
|
return 1
|
|
@@ -44,15 +44,15 @@ if queueType == EQueuePropertyQueueTypePriorityQueue then
|
|
|
44
44
|
end
|
|
45
45
|
redis.call("ZADD", keyPriorityQueue, messagePriority, messageId)
|
|
46
46
|
else
|
|
47
|
-
if not(messagePriority == nil or messagePriority == '') then
|
|
48
|
-
|
|
47
|
+
if not (messagePriority == nil or messagePriority == '') then
|
|
48
|
+
return 'PRIORITY_QUEUING_NOT_ENABLED'
|
|
49
49
|
end
|
|
50
50
|
if queueType == EQueuePropertyQueueTypeLIFOQueue then
|
|
51
|
-
|
|
51
|
+
redis.call("RPUSH", keyQueuePending, messageId)
|
|
52
52
|
elseif queueType == EQueuePropertyQueueTypeFIFOQueue then
|
|
53
|
-
|
|
53
|
+
redis.call("LPUSH", keyQueuePending, messageId)
|
|
54
54
|
else
|
|
55
|
-
|
|
55
|
+
return 'UNKNOWN_QUEUE_TYPE'
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
|
|
@@ -70,14 +70,14 @@ local function removeFromScheduled()
|
|
|
70
70
|
redis.call("ZREM", keyQueueScheduled, scheduledMessageId)
|
|
71
71
|
end
|
|
72
72
|
|
|
73
|
-
local function updateScheduledMessageProperties(status
|
|
73
|
+
local function updateScheduledMessageProperties(status)
|
|
74
74
|
if status == '' then
|
|
75
75
|
redis.call("HSET", keyScheduledMessage, EMessagePropertyState, scheduledMessageState)
|
|
76
76
|
else
|
|
77
77
|
redis.call(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
"HMSET", keyScheduledMessage,
|
|
79
|
+
EMessagePropertyState, scheduledMessageState,
|
|
80
|
+
EMessagePropertyStatus, status
|
|
81
81
|
)
|
|
82
82
|
end
|
|
83
83
|
end
|
|
@@ -40,7 +40,7 @@ local function requeue()
|
|
|
40
40
|
local result = redis.call("LREM", keyFromQueue, 1, messageId)
|
|
41
41
|
if result then
|
|
42
42
|
local queueType = redis.call("HGET", keyQueueProperties, keyQueuePropertyQueueType)
|
|
43
|
-
if queueType == typePriorityQueue and not(messagePriority == nil or messagePriority == '') then
|
|
43
|
+
if queueType == typePriorityQueue and not (messagePriority == nil or messagePriority == '') then
|
|
44
44
|
redis.call("ZADD", keyQueuePriority, messagePriority, messageId)
|
|
45
45
|
return 'OK'
|
|
46
46
|
elseif (queueType == typeLIFOQueue or queueType == typeFIFOQueue) and (messagePriority == nil or messagePriority == '') then
|
|
@@ -31,7 +31,7 @@ local argvIndexOffset = 7
|
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
|
-
local queueProperties = {nil, nil}
|
|
34
|
+
local queueProperties = { nil, nil }
|
|
35
35
|
|
|
36
36
|
local function checkQueue()
|
|
37
37
|
queueProperties = redis.call("HMGET", keyQueueProperties, EQueuePropertyQueueType, EQueuePropertyMessagesCount)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.ELuaScriptName = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const path_1 = require("path");
|
|
29
|
+
const redis_smq_common_1 = require("redis-smq-common");
|
|
30
|
+
var ELuaScriptName;
|
|
31
|
+
(function (ELuaScriptName) {
|
|
32
|
+
ELuaScriptName["PUBLISH_SCHEDULED_MESSAGE"] = "PUBLISH_SCHEDULED_MESSAGE";
|
|
33
|
+
ELuaScriptName["PUBLISH_MESSAGE"] = "PUBLISH_MESSAGE";
|
|
34
|
+
ELuaScriptName["REQUEUE_MESSAGE"] = "REQUEUE_MESSAGE";
|
|
35
|
+
ELuaScriptName["SCHEDULE_MESSAGE"] = "SCHEDULE_MESSAGE";
|
|
36
|
+
ELuaScriptName["HAS_QUEUE_RATE_EXCEEDED"] = "HAS_QUEUE_RATE_EXCEEDED";
|
|
37
|
+
ELuaScriptName["CREATE_QUEUE"] = "CREATE_QUEUE";
|
|
38
|
+
ELuaScriptName["INIT_CONSUMER_QUEUE"] = "INIT_CONSUMER_QUEUE";
|
|
39
|
+
ELuaScriptName["HANDLE_PROCESSING_QUEUE"] = "HANDLE_PROCESSING_QUEUE";
|
|
40
|
+
ELuaScriptName["ACKNOWLEDGE_MESSAGE"] = "ACKNOWLEDGE_MESSAGE";
|
|
41
|
+
ELuaScriptName["DELETE_MESSAGE"] = "DELETE_MESSAGE";
|
|
42
|
+
ELuaScriptName["FETCH_MESSAGE_FOR_PROCESSING"] = "FETCH_MESSAGE_FOR_PROCESSING";
|
|
43
|
+
ELuaScriptName["DELETE_CONSUMER_GROUP"] = "DELETE_CONSUMER_GROUP";
|
|
44
|
+
ELuaScriptName["CLEANUP_OFFLINE_CONSUMER"] = "CLEANUP_OFFLINE_CONSUMER";
|
|
45
|
+
})(ELuaScriptName = exports.ELuaScriptName || (exports.ELuaScriptName = {}));
|
|
46
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.PUBLISH_SCHEDULED_MESSAGE, fs
|
|
47
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/publish-scheduled-message.lua'))
|
|
48
|
+
.toString());
|
|
49
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.PUBLISH_MESSAGE, fs
|
|
50
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/publish-message.lua'))
|
|
51
|
+
.toString());
|
|
52
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.REQUEUE_MESSAGE, fs
|
|
53
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/requeue-message.lua'))
|
|
54
|
+
.toString());
|
|
55
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.SCHEDULE_MESSAGE, fs
|
|
56
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/schedule-message.lua'))
|
|
57
|
+
.toString());
|
|
58
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.HAS_QUEUE_RATE_EXCEEDED, fs
|
|
59
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/has-queue-rate-exceeded.lua'))
|
|
60
|
+
.toString());
|
|
61
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.CREATE_QUEUE, fs.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/create-queue.lua')).toString());
|
|
62
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.INIT_CONSUMER_QUEUE, fs
|
|
63
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/init-consumer-queue.lua'))
|
|
64
|
+
.toString());
|
|
65
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.HANDLE_PROCESSING_QUEUE, fs
|
|
66
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/handle-processing-queue.lua'))
|
|
67
|
+
.toString());
|
|
68
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.ACKNOWLEDGE_MESSAGE, fs
|
|
69
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/acknowledge-message.lua'))
|
|
70
|
+
.toString());
|
|
71
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.DELETE_MESSAGE, fs.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/delete-message.lua')).toString());
|
|
72
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.FETCH_MESSAGE_FOR_PROCESSING, fs
|
|
73
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/fetch-message-for-processing.lua'))
|
|
74
|
+
.toString());
|
|
75
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.DELETE_CONSUMER_GROUP, fs
|
|
76
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/delete-consumer-group.lua'))
|
|
77
|
+
.toString());
|
|
78
|
+
redis_smq_common_1.RedisClientAbstract.addScript(ELuaScriptName.CLEANUP_OFFLINE_CONSUMER, fs
|
|
79
|
+
.readFileSync((0, path_1.resolve)((0, redis_smq_common_1.getDirname)(), './lua/cleanup-offline-consumer.lua'))
|
|
80
|
+
.toString());
|
|
81
|
+
//# sourceMappingURL=scripts.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisKeysError = void 0;
|
|
4
|
+
const redis_smq_common_1 = require("redis-smq-common");
|
|
5
|
+
class RedisKeysError extends redis_smq_common_1.RedisSMQError {
|
|
6
|
+
}
|
|
7
|
+
exports.RedisKeysError = RedisKeysError;
|
|
8
|
+
//# sourceMappingURL=redis-keys.error.js.map
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.redisKeys = void 0;
|
|
4
|
+
const redis_keys_error_js_1 = require("./redis-keys.error.js");
|
|
5
|
+
const keySegmentSeparator = ':';
|
|
6
|
+
const nsPrefix = 'redis-smq-rc815';
|
|
7
|
+
const globalNamespace = 'global';
|
|
8
|
+
var ERedisKey;
|
|
9
|
+
(function (ERedisKey) {
|
|
10
|
+
ERedisKey[ERedisKey["KEY_QUEUE_PENDING"] = 1] = "KEY_QUEUE_PENDING";
|
|
11
|
+
ERedisKey[ERedisKey["KEY_QUEUE_PRIORITY_PENDING"] = 2] = "KEY_QUEUE_PRIORITY_PENDING";
|
|
12
|
+
ERedisKey[ERedisKey["KEY_QUEUE_DL"] = 3] = "KEY_QUEUE_DL";
|
|
13
|
+
ERedisKey[ERedisKey["KEY_QUEUE_PROCESSING"] = 4] = "KEY_QUEUE_PROCESSING";
|
|
14
|
+
ERedisKey[ERedisKey["KEY_QUEUE_ACKNOWLEDGED"] = 5] = "KEY_QUEUE_ACKNOWLEDGED";
|
|
15
|
+
ERedisKey[ERedisKey["KEY_QUEUE_SCHEDULED"] = 6] = "KEY_QUEUE_SCHEDULED";
|
|
16
|
+
ERedisKey[ERedisKey["KEY_QUEUE_CONSUMERS"] = 7] = "KEY_QUEUE_CONSUMERS";
|
|
17
|
+
ERedisKey[ERedisKey["KEY_QUEUE_PROCESSING_QUEUES"] = 8] = "KEY_QUEUE_PROCESSING_QUEUES";
|
|
18
|
+
ERedisKey[ERedisKey["KEY_LOCK_CONSUMER_WORKERS_RUNNER"] = 9] = "KEY_LOCK_CONSUMER_WORKERS_RUNNER";
|
|
19
|
+
ERedisKey[ERedisKey["KEY_DELAYED_MESSAGES"] = 10] = "KEY_DELAYED_MESSAGES";
|
|
20
|
+
ERedisKey[ERedisKey["KEY_REQUEUE_MESSAGES"] = 11] = "KEY_REQUEUE_MESSAGES";
|
|
21
|
+
ERedisKey[ERedisKey["KEY_SCHEDULED_MESSAGES"] = 12] = "KEY_SCHEDULED_MESSAGES";
|
|
22
|
+
ERedisKey[ERedisKey["KEY_HEARTBEATS"] = 13] = "KEY_HEARTBEATS";
|
|
23
|
+
ERedisKey[ERedisKey["KEY_HEARTBEAT_CONSUMER_WEIGHT"] = 14] = "KEY_HEARTBEAT_CONSUMER_WEIGHT";
|
|
24
|
+
ERedisKey[ERedisKey["KEY_QUEUES"] = 15] = "KEY_QUEUES";
|
|
25
|
+
ERedisKey[ERedisKey["KEY_PROCESSING_QUEUES"] = 16] = "KEY_PROCESSING_QUEUES";
|
|
26
|
+
ERedisKey[ERedisKey["KEY_CONSUMER_QUEUES"] = 17] = "KEY_CONSUMER_QUEUES";
|
|
27
|
+
ERedisKey[ERedisKey["KEY_NS_QUEUES"] = 18] = "KEY_NS_QUEUES";
|
|
28
|
+
ERedisKey[ERedisKey["KEY_NAMESPACES"] = 19] = "KEY_NAMESPACES";
|
|
29
|
+
ERedisKey[ERedisKey["KEY_QUEUE_RATE_LIMIT_COUNTER"] = 20] = "KEY_QUEUE_RATE_LIMIT_COUNTER";
|
|
30
|
+
ERedisKey[ERedisKey["KEY_QUEUE_PROPERTIES"] = 21] = "KEY_QUEUE_PROPERTIES";
|
|
31
|
+
ERedisKey[ERedisKey["KEY_EXCHANGE_BINDINGS"] = 22] = "KEY_EXCHANGE_BINDINGS";
|
|
32
|
+
ERedisKey[ERedisKey["KEY_FANOUT_EXCHANGES"] = 23] = "KEY_FANOUT_EXCHANGES";
|
|
33
|
+
ERedisKey[ERedisKey["KEY_MESSAGE"] = 24] = "KEY_MESSAGE";
|
|
34
|
+
ERedisKey[ERedisKey["KEY_QUEUE_MESSAGES"] = 25] = "KEY_QUEUE_MESSAGES";
|
|
35
|
+
ERedisKey[ERedisKey["KEY_QUEUE_MESSAGE_IDS"] = 26] = "KEY_QUEUE_MESSAGE_IDS";
|
|
36
|
+
ERedisKey[ERedisKey["KEY_DELETED_QUEUES"] = 27] = "KEY_DELETED_QUEUES";
|
|
37
|
+
ERedisKey[ERedisKey["KEY_QUEUE_CONSUMER_GROUPS"] = 28] = "KEY_QUEUE_CONSUMER_GROUPS";
|
|
38
|
+
})(ERedisKey || (ERedisKey = {}));
|
|
39
|
+
function makeNamespacedKeys(keys, namespace, ...rest) {
|
|
40
|
+
const result = {};
|
|
41
|
+
for (const k in keys) {
|
|
42
|
+
result[k] = [nsPrefix, namespace, keys[k], ...rest].join(keySegmentSeparator);
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
exports.redisKeys = {
|
|
47
|
+
getNamespaceKeys(ns) {
|
|
48
|
+
const keys = {
|
|
49
|
+
keyNamespaceQueues: ERedisKey.KEY_NS_QUEUES,
|
|
50
|
+
};
|
|
51
|
+
return Object.assign({}, makeNamespacedKeys(keys, ns));
|
|
52
|
+
},
|
|
53
|
+
getQueueKeys(queueParams, consumerGroupId) {
|
|
54
|
+
const queueKeys = {
|
|
55
|
+
keyQueueDL: ERedisKey.KEY_QUEUE_DL,
|
|
56
|
+
keyQueueProcessingQueues: ERedisKey.KEY_QUEUE_PROCESSING_QUEUES,
|
|
57
|
+
keyQueueAcknowledged: ERedisKey.KEY_QUEUE_ACKNOWLEDGED,
|
|
58
|
+
keyQueueScheduled: ERedisKey.KEY_QUEUE_SCHEDULED,
|
|
59
|
+
keyQueueConsumers: ERedisKey.KEY_QUEUE_CONSUMERS,
|
|
60
|
+
keyQueueRateLimitCounter: ERedisKey.KEY_QUEUE_RATE_LIMIT_COUNTER,
|
|
61
|
+
keyQueueProperties: ERedisKey.KEY_QUEUE_PROPERTIES,
|
|
62
|
+
keyQueueMessages: ERedisKey.KEY_QUEUE_MESSAGES,
|
|
63
|
+
keyQueueMessageIds: ERedisKey.KEY_QUEUE_MESSAGE_IDS,
|
|
64
|
+
keyQueueConsumerGroups: ERedisKey.KEY_QUEUE_CONSUMER_GROUPS,
|
|
65
|
+
};
|
|
66
|
+
const pendingKeys = {
|
|
67
|
+
keyQueuePending: ERedisKey.KEY_QUEUE_PENDING,
|
|
68
|
+
keyQueuePriorityPending: ERedisKey.KEY_QUEUE_PRIORITY_PENDING,
|
|
69
|
+
};
|
|
70
|
+
const payload = [queueParams.name];
|
|
71
|
+
return Object.assign(Object.assign({}, makeNamespacedKeys(queueKeys, queueParams.ns, ...payload)), makeNamespacedKeys(pendingKeys, queueParams.ns, ...payload, ...(consumerGroupId ? [consumerGroupId] : [])));
|
|
72
|
+
},
|
|
73
|
+
getMessageKeys(messageId) {
|
|
74
|
+
const exchangeKeys = {
|
|
75
|
+
keyMessage: ERedisKey.KEY_MESSAGE,
|
|
76
|
+
};
|
|
77
|
+
return Object.assign({}, makeNamespacedKeys(exchangeKeys, globalNamespace, messageId));
|
|
78
|
+
},
|
|
79
|
+
getFanOutExchangeKeys(bindingKey) {
|
|
80
|
+
const exchangeKeys = {
|
|
81
|
+
keyExchangeBindings: ERedisKey.KEY_EXCHANGE_BINDINGS,
|
|
82
|
+
};
|
|
83
|
+
return Object.assign({}, makeNamespacedKeys(exchangeKeys, globalNamespace, bindingKey));
|
|
84
|
+
},
|
|
85
|
+
getConsumerKeys(instanceId) {
|
|
86
|
+
const consumerKeys = {
|
|
87
|
+
keyConsumerQueues: ERedisKey.KEY_CONSUMER_QUEUES,
|
|
88
|
+
};
|
|
89
|
+
return Object.assign({}, makeNamespacedKeys(consumerKeys, globalNamespace, instanceId));
|
|
90
|
+
},
|
|
91
|
+
getQueueConsumerKeys(queueParams, instanceId) {
|
|
92
|
+
const keys = {
|
|
93
|
+
keyQueueProcessing: ERedisKey.KEY_QUEUE_PROCESSING,
|
|
94
|
+
};
|
|
95
|
+
return Object.assign({}, makeNamespacedKeys(keys, queueParams.ns, queueParams.name, instanceId));
|
|
96
|
+
},
|
|
97
|
+
getMainKeys() {
|
|
98
|
+
const mainKeys = {
|
|
99
|
+
keyQueues: ERedisKey.KEY_QUEUES,
|
|
100
|
+
keyProcessingQueues: ERedisKey.KEY_PROCESSING_QUEUES,
|
|
101
|
+
keyHeartbeats: ERedisKey.KEY_HEARTBEATS,
|
|
102
|
+
keyHeartbeatTimestamps: ERedisKey.KEY_HEARTBEAT_CONSUMER_WEIGHT,
|
|
103
|
+
keyScheduledMessages: ERedisKey.KEY_SCHEDULED_MESSAGES,
|
|
104
|
+
keyLockConsumerWorkersRunner: ERedisKey.KEY_LOCK_CONSUMER_WORKERS_RUNNER,
|
|
105
|
+
keyDelayedMessages: ERedisKey.KEY_DELAYED_MESSAGES,
|
|
106
|
+
keyRequeueMessages: ERedisKey.KEY_REQUEUE_MESSAGES,
|
|
107
|
+
keyNamespaces: ERedisKey.KEY_NAMESPACES,
|
|
108
|
+
keyFanOutExchanges: ERedisKey.KEY_FANOUT_EXCHANGES,
|
|
109
|
+
keyDeletedQueues: ERedisKey.KEY_DELETED_QUEUES,
|
|
110
|
+
};
|
|
111
|
+
return makeNamespacedKeys(mainKeys, globalNamespace);
|
|
112
|
+
},
|
|
113
|
+
validateNamespace(ns) {
|
|
114
|
+
const validated = this.validateRedisKey(ns);
|
|
115
|
+
if (validated === globalNamespace) {
|
|
116
|
+
return new redis_keys_error_js_1.RedisKeysError(`Namespace [${validated}] is reserved. Use another one.`);
|
|
117
|
+
}
|
|
118
|
+
return validated;
|
|
119
|
+
},
|
|
120
|
+
validateRedisKey(key) {
|
|
121
|
+
if (!key || !key.length) {
|
|
122
|
+
return new redis_keys_error_js_1.RedisKeysError('Invalid Redis key. Expected be a non empty string.');
|
|
123
|
+
}
|
|
124
|
+
const lowerCase = key.toLowerCase();
|
|
125
|
+
const filtered = lowerCase.replace(/(?:[a-z][a-z0-9]?)+(?:[-_.]?[a-z0-9])*/, '');
|
|
126
|
+
if (filtered.length) {
|
|
127
|
+
return new redis_keys_error_js_1.RedisKeysError('Invalid Redis key. Valid characters are letters (a-z) and numbers (0-9). (-_) are allowed between alphanumerics. Use a dot (.) to denote hierarchies.');
|
|
128
|
+
}
|
|
129
|
+
return lowerCase;
|
|
130
|
+
},
|
|
131
|
+
getKeySegmentSeparator() {
|
|
132
|
+
return keySegmentSeparator;
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=redis-keys.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./event.js"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|