atomic-queues 1.6.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +182 -411
- package/dist/cli/generators/json-schema.d.ts +3 -0
- package/dist/cli/generators/json-schema.d.ts.map +1 -0
- package/dist/cli/generators/json-schema.js +31 -0
- package/dist/cli/generators/json-schema.js.map +1 -0
- package/dist/cli/generators/typescript.d.ts +3 -0
- package/dist/cli/generators/typescript.d.ts.map +1 -0
- package/dist/cli/generators/typescript.js +62 -0
- package/dist/cli/generators/typescript.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +156 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/decorators/actor.decorators.d.ts +4 -0
- package/dist/decorators/actor.decorators.d.ts.map +1 -0
- package/dist/decorators/actor.decorators.js +32 -0
- package/dist/decorators/actor.decorators.js.map +1 -0
- package/dist/decorators/constants.d.ts +5 -12
- package/dist/decorators/constants.d.ts.map +1 -1
- package/dist/decorators/constants.js +10 -16
- package/dist/decorators/constants.js.map +1 -1
- package/dist/decorators/index.d.ts +4 -4
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +4 -4
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/interfaces.d.ts +18 -78
- package/dist/decorators/interfaces.d.ts.map +1 -1
- package/dist/decorators/metadata-readers.d.ts +5 -26
- package/dist/decorators/metadata-readers.d.ts.map +1 -1
- package/dist/decorators/metadata-readers.js +16 -33
- package/dist/decorators/metadata-readers.js.map +1 -1
- package/dist/decorators/schema.decorators.d.ts +2 -0
- package/dist/decorators/schema.decorators.d.ts.map +1 -0
- package/dist/decorators/schema.decorators.js +13 -0
- package/dist/decorators/schema.decorators.js.map +1 -0
- package/dist/domain/interfaces/config.interfaces.d.ts +52 -153
- package/dist/domain/interfaces/config.interfaces.d.ts.map +1 -1
- package/dist/domain/interfaces/index.d.ts +0 -7
- package/dist/domain/interfaces/index.d.ts.map +1 -1
- package/dist/domain/interfaces/index.js +0 -7
- package/dist/domain/interfaces/index.js.map +1 -1
- package/dist/domain/interfaces/job.interfaces.d.ts +32 -65
- package/dist/domain/interfaces/job.interfaces.d.ts.map +1 -1
- package/dist/index.d.ts +0 -34
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -39
- package/dist/index.js.map +1 -1
- package/dist/module/atomic-queues.module.d.ts +0 -83
- package/dist/module/atomic-queues.module.d.ts.map +1 -1
- package/dist/module/atomic-queues.module.js +35 -134
- package/dist/module/atomic-queues.module.js.map +1 -1
- package/dist/services/actor-registry/actor-registry.service.d.ts +30 -0
- package/dist/services/actor-registry/actor-registry.service.d.ts.map +1 -0
- package/dist/services/actor-registry/actor-registry.service.js +186 -0
- package/dist/services/actor-registry/actor-registry.service.js.map +1 -0
- package/dist/services/actor-registry/index.d.ts +2 -0
- package/dist/services/actor-registry/index.d.ts.map +1 -0
- package/dist/services/actor-registry/index.js +18 -0
- package/dist/services/actor-registry/index.js.map +1 -0
- package/dist/services/actor-system/actor-system.service.d.ts +19 -0
- package/dist/services/actor-system/actor-system.service.d.ts.map +1 -0
- package/dist/services/actor-system/actor-system.service.js +86 -0
- package/dist/services/actor-system/actor-system.service.js.map +1 -0
- package/dist/services/actor-system/index.d.ts +2 -0
- package/dist/services/actor-system/index.d.ts.map +1 -0
- package/dist/services/{cron-manager → actor-system}/index.js +1 -1
- package/dist/services/actor-system/index.js.map +1 -0
- package/dist/services/command-discovery/command-discovery.service.d.ts +6 -53
- package/dist/services/command-discovery/command-discovery.service.d.ts.map +1 -1
- package/dist/services/command-discovery/command-discovery.service.js +0 -59
- package/dist/services/command-discovery/command-discovery.service.js.map +1 -1
- package/dist/services/constants.d.ts +2 -9
- package/dist/services/constants.d.ts.map +1 -1
- package/dist/services/constants.js +3 -10
- package/dist/services/constants.js.map +1 -1
- package/dist/services/executor-pool/executor-pool.service.d.ts +31 -0
- package/dist/services/executor-pool/executor-pool.service.d.ts.map +1 -0
- package/dist/services/executor-pool/executor-pool.service.js +147 -0
- package/dist/services/executor-pool/executor-pool.service.js.map +1 -0
- package/dist/services/executor-pool/index.d.ts +2 -0
- package/dist/services/executor-pool/index.d.ts.map +1 -0
- package/dist/services/{queue-manager → executor-pool}/index.js +1 -1
- package/dist/services/executor-pool/index.js.map +1 -0
- package/dist/services/gate/gate.service.d.ts +17 -0
- package/dist/services/gate/gate.service.d.ts.map +1 -0
- package/dist/services/gate/gate.service.js +66 -0
- package/dist/services/gate/gate.service.js.map +1 -0
- package/dist/services/gate/index.d.ts +2 -0
- package/dist/services/gate/index.d.ts.map +1 -0
- package/dist/services/{spawn-queue → gate}/index.js +1 -1
- package/dist/services/gate/index.js.map +1 -0
- package/dist/services/handler-executor/handler-executor.service.d.ts +32 -0
- package/dist/services/handler-executor/handler-executor.service.d.ts.map +1 -0
- package/dist/services/handler-executor/handler-executor.service.js +186 -0
- package/dist/services/handler-executor/handler-executor.service.js.map +1 -0
- package/dist/services/handler-executor/index.d.ts +2 -0
- package/dist/services/handler-executor/index.d.ts.map +1 -0
- package/dist/services/handler-executor/index.js +18 -0
- package/dist/services/handler-executor/index.js.map +1 -0
- package/dist/services/index.d.ts +11 -12
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +11 -12
- package/dist/services/index.js.map +1 -1
- package/dist/services/log/index.d.ts +2 -0
- package/dist/services/log/index.d.ts.map +1 -0
- package/dist/services/{index-manager → log}/index.js +1 -1
- package/dist/services/log/index.js.map +1 -0
- package/dist/services/log/log.service.d.ts +21 -0
- package/dist/services/log/log.service.d.ts.map +1 -0
- package/dist/services/log/log.service.js +92 -0
- package/dist/services/log/log.service.js.map +1 -0
- package/dist/services/queue-bus/index.d.ts +0 -4
- package/dist/services/queue-bus/index.d.ts.map +1 -1
- package/dist/services/queue-bus/index.js +0 -4
- package/dist/services/queue-bus/index.js.map +1 -1
- package/dist/services/queue-bus/queue-bus.service.d.ts +44 -198
- package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -1
- package/dist/services/queue-bus/queue-bus.service.js +103 -259
- package/dist/services/queue-bus/queue-bus.service.js.map +1 -1
- package/dist/services/queue-bus/queue-bus.utils.d.ts +0 -28
- package/dist/services/queue-bus/queue-bus.utils.d.ts.map +1 -1
- package/dist/services/queue-bus/queue-bus.utils.js +1 -41
- package/dist/services/queue-bus/queue-bus.utils.js.map +1 -1
- package/dist/services/registry/index.d.ts +4 -0
- package/dist/services/registry/index.d.ts.map +1 -0
- package/dist/services/{queue-events-manager → registry}/index.js +3 -1
- package/dist/services/registry/index.js.map +1 -0
- package/dist/services/registry/registry.service.d.ts +43 -0
- package/dist/services/registry/registry.service.d.ts.map +1 -0
- package/dist/services/registry/registry.service.js +379 -0
- package/dist/services/registry/registry.service.js.map +1 -0
- package/dist/services/registry/registry.types.d.ts +24 -0
- package/dist/services/registry/registry.types.d.ts.map +1 -0
- package/dist/{domain/interfaces/lock.interfaces.js → services/registry/registry.types.js} +1 -1
- package/dist/services/registry/registry.types.js.map +1 -0
- package/dist/services/registry/schema-converter.d.ts +2 -0
- package/dist/services/registry/schema-converter.d.ts.map +1 -0
- package/dist/services/registry/schema-converter.js +27 -0
- package/dist/services/registry/schema-converter.js.map +1 -0
- package/dist/services/result-collector/index.d.ts +2 -0
- package/dist/services/result-collector/index.d.ts.map +1 -0
- package/dist/services/result-collector/index.js +18 -0
- package/dist/services/result-collector/index.js.map +1 -0
- package/dist/services/result-collector/result-collector.service.d.ts +17 -0
- package/dist/services/result-collector/result-collector.service.d.ts.map +1 -0
- package/dist/services/result-collector/result-collector.service.js +92 -0
- package/dist/services/result-collector/result-collector.service.js.map +1 -0
- package/dist/services/scheduler/index.d.ts +2 -0
- package/dist/services/scheduler/index.d.ts.map +1 -0
- package/dist/services/{job-processor → scheduler}/index.js +1 -1
- package/dist/services/scheduler/index.js.map +1 -0
- package/dist/services/scheduler/scheduler.service.d.ts +17 -0
- package/dist/services/scheduler/scheduler.service.d.ts.map +1 -0
- package/dist/services/scheduler/scheduler.service.js +116 -0
- package/dist/services/scheduler/scheduler.service.js.map +1 -0
- package/dist/services/shutdown/index.d.ts +2 -0
- package/dist/services/shutdown/index.d.ts.map +1 -0
- package/dist/services/shutdown/index.js +18 -0
- package/dist/services/shutdown/index.js.map +1 -0
- package/dist/services/shutdown/shutdown.service.d.ts +8 -0
- package/dist/services/shutdown/shutdown.service.d.ts.map +1 -0
- package/dist/services/shutdown/shutdown.service.js +29 -0
- package/dist/services/shutdown/shutdown.service.js.map +1 -0
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/naming.utils.d.ts +0 -16
- package/dist/utils/naming.utils.d.ts.map +1 -1
- package/dist/utils/naming.utils.js +0 -29
- package/dist/utils/naming.utils.js.map +1 -1
- package/package.json +19 -11
- package/dist/decorators/legacy.decorators.d.ts +0 -36
- package/dist/decorators/legacy.decorators.d.ts.map +0 -1
- package/dist/decorators/legacy.decorators.js +0 -61
- package/dist/decorators/legacy.decorators.js.map +0 -1
- package/dist/decorators/scaler.decorators.d.ts +0 -65
- package/dist/decorators/scaler.decorators.d.ts.map +0 -1
- package/dist/decorators/scaler.decorators.js +0 -103
- package/dist/decorators/scaler.decorators.js.map +0 -1
- package/dist/decorators/type-guards.d.ts +0 -18
- package/dist/decorators/type-guards.d.ts.map +0 -1
- package/dist/decorators/type-guards.js +0 -32
- package/dist/decorators/type-guards.js.map +0 -1
- package/dist/decorators/worker.decorators.d.ts +0 -58
- package/dist/decorators/worker.decorators.d.ts.map +0 -1
- package/dist/decorators/worker.decorators.js +0 -92
- package/dist/decorators/worker.decorators.js.map +0 -1
- package/dist/domain/interfaces/event.interfaces.d.ts +0 -71
- package/dist/domain/interfaces/event.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/event.interfaces.js +0 -3
- package/dist/domain/interfaces/event.interfaces.js.map +0 -1
- package/dist/domain/interfaces/index-tracking.interfaces.d.ts +0 -69
- package/dist/domain/interfaces/index-tracking.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/index-tracking.interfaces.js +0 -3
- package/dist/domain/interfaces/index-tracking.interfaces.js.map +0 -1
- package/dist/domain/interfaces/lock.interfaces.d.ts +0 -54
- package/dist/domain/interfaces/lock.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/lock.interfaces.js.map +0 -1
- package/dist/domain/interfaces/process.interfaces.d.ts +0 -44
- package/dist/domain/interfaces/process.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/process.interfaces.js +0 -3
- package/dist/domain/interfaces/process.interfaces.js.map +0 -1
- package/dist/domain/interfaces/queue.interfaces.d.ts +0 -46
- package/dist/domain/interfaces/queue.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/queue.interfaces.js +0 -3
- package/dist/domain/interfaces/queue.interfaces.js.map +0 -1
- package/dist/domain/interfaces/scaling.interfaces.d.ts +0 -62
- package/dist/domain/interfaces/scaling.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/scaling.interfaces.js +0 -3
- package/dist/domain/interfaces/scaling.interfaces.js.map +0 -1
- package/dist/domain/interfaces/worker.interfaces.d.ts +0 -120
- package/dist/domain/interfaces/worker.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/worker.interfaces.js +0 -3
- package/dist/domain/interfaces/worker.interfaces.js.map +0 -1
- package/dist/services/cron-manager/cron-manager.service.d.ts +0 -199
- package/dist/services/cron-manager/cron-manager.service.d.ts.map +0 -1
- package/dist/services/cron-manager/cron-manager.service.js +0 -583
- package/dist/services/cron-manager/cron-manager.service.js.map +0 -1
- package/dist/services/cron-manager/index.d.ts +0 -2
- package/dist/services/cron-manager/index.d.ts.map +0 -1
- package/dist/services/cron-manager/index.js.map +0 -1
- package/dist/services/index-manager/index-manager.service.d.ts +0 -142
- package/dist/services/index-manager/index-manager.service.d.ts.map +0 -1
- package/dist/services/index-manager/index-manager.service.js +0 -325
- package/dist/services/index-manager/index-manager.service.js.map +0 -1
- package/dist/services/index-manager/index.d.ts +0 -2
- package/dist/services/index-manager/index.d.ts.map +0 -1
- package/dist/services/index-manager/index.js.map +0 -1
- package/dist/services/job-processor/index.d.ts +0 -2
- package/dist/services/job-processor/index.d.ts.map +0 -1
- package/dist/services/job-processor/index.js.map +0 -1
- package/dist/services/job-processor/job-processor.service.d.ts +0 -156
- package/dist/services/job-processor/job-processor.service.d.ts.map +0 -1
- package/dist/services/job-processor/job-processor.service.js +0 -331
- package/dist/services/job-processor/job-processor.service.js.map +0 -1
- package/dist/services/processor-discovery/decorator-discovery.service.d.ts +0 -40
- package/dist/services/processor-discovery/decorator-discovery.service.d.ts.map +0 -1
- package/dist/services/processor-discovery/decorator-discovery.service.js +0 -191
- package/dist/services/processor-discovery/decorator-discovery.service.js.map +0 -1
- package/dist/services/processor-discovery/index.d.ts +0 -6
- package/dist/services/processor-discovery/index.d.ts.map +0 -1
- package/dist/services/processor-discovery/index.js +0 -22
- package/dist/services/processor-discovery/index.js.map +0 -1
- package/dist/services/processor-discovery/processor-discovery.service.d.ts +0 -98
- package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +0 -1
- package/dist/services/processor-discovery/processor-discovery.service.js +0 -258
- package/dist/services/processor-discovery/processor-discovery.service.js.map +0 -1
- package/dist/services/processor-discovery/processor-registry.d.ts +0 -58
- package/dist/services/processor-discovery/processor-registry.d.ts.map +0 -1
- package/dist/services/processor-discovery/processor-registry.js +0 -74
- package/dist/services/processor-discovery/processor-registry.js.map +0 -1
- package/dist/services/processor-discovery/scaling-registration.service.d.ts +0 -60
- package/dist/services/processor-discovery/scaling-registration.service.d.ts.map +0 -1
- package/dist/services/processor-discovery/scaling-registration.service.js +0 -261
- package/dist/services/processor-discovery/scaling-registration.service.js.map +0 -1
- package/dist/services/processor-discovery/worker-factory.service.d.ts +0 -54
- package/dist/services/processor-discovery/worker-factory.service.d.ts.map +0 -1
- package/dist/services/processor-discovery/worker-factory.service.js +0 -185
- package/dist/services/processor-discovery/worker-factory.service.js.map +0 -1
- package/dist/services/queue-bus/entity-target.d.ts +0 -58
- package/dist/services/queue-bus/entity-target.d.ts.map +0 -1
- package/dist/services/queue-bus/entity-target.js +0 -109
- package/dist/services/queue-bus/entity-target.js.map +0 -1
- package/dist/services/queue-bus/queue-bus.types.d.ts +0 -40
- package/dist/services/queue-bus/queue-bus.types.d.ts.map +0 -1
- package/dist/services/queue-bus/queue-bus.types.js +0 -3
- package/dist/services/queue-bus/queue-bus.types.js.map +0 -1
- package/dist/services/queue-bus/queue-target.d.ts +0 -61
- package/dist/services/queue-bus/queue-target.d.ts.map +0 -1
- package/dist/services/queue-bus/queue-target.js +0 -123
- package/dist/services/queue-bus/queue-target.js.map +0 -1
- package/dist/services/queue-events-manager/index.d.ts +0 -2
- package/dist/services/queue-events-manager/index.d.ts.map +0 -1
- package/dist/services/queue-events-manager/index.js.map +0 -1
- package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +0 -120
- package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +0 -1
- package/dist/services/queue-events-manager/queue-events-manager.service.js +0 -343
- package/dist/services/queue-events-manager/queue-events-manager.service.js.map +0 -1
- package/dist/services/queue-manager/index.d.ts +0 -2
- package/dist/services/queue-manager/index.d.ts.map +0 -1
- package/dist/services/queue-manager/index.js.map +0 -1
- package/dist/services/queue-manager/queue-manager.service.d.ts +0 -148
- package/dist/services/queue-manager/queue-manager.service.d.ts.map +0 -1
- package/dist/services/queue-manager/queue-manager.service.js +0 -348
- package/dist/services/queue-manager/queue-manager.service.js.map +0 -1
- package/dist/services/resource-lock/index.d.ts +0 -2
- package/dist/services/resource-lock/index.d.ts.map +0 -1
- package/dist/services/resource-lock/index.js +0 -18
- package/dist/services/resource-lock/index.js.map +0 -1
- package/dist/services/resource-lock/resource-lock.service.d.ts +0 -120
- package/dist/services/resource-lock/resource-lock.service.d.ts.map +0 -1
- package/dist/services/resource-lock/resource-lock.service.js +0 -367
- package/dist/services/resource-lock/resource-lock.service.js.map +0 -1
- package/dist/services/service-queue/index.d.ts +0 -3
- package/dist/services/service-queue/index.d.ts.map +0 -1
- package/dist/services/service-queue/index.js +0 -19
- package/dist/services/service-queue/index.js.map +0 -1
- package/dist/services/service-queue/service-queue.service.d.ts +0 -199
- package/dist/services/service-queue/service-queue.service.d.ts.map +0 -1
- package/dist/services/service-queue/service-queue.service.js +0 -617
- package/dist/services/service-queue/service-queue.service.js.map +0 -1
- package/dist/services/service-queue/service-queue.types.d.ts +0 -32
- package/dist/services/service-queue/service-queue.types.d.ts.map +0 -1
- package/dist/services/service-queue/service-queue.types.js +0 -27
- package/dist/services/service-queue/service-queue.types.js.map +0 -1
- package/dist/services/shutdown-state/index.d.ts +0 -2
- package/dist/services/shutdown-state/index.d.ts.map +0 -1
- package/dist/services/shutdown-state/index.js +0 -18
- package/dist/services/shutdown-state/index.js.map +0 -1
- package/dist/services/shutdown-state/shutdown-state.service.d.ts +0 -69
- package/dist/services/shutdown-state/shutdown-state.service.d.ts.map +0 -1
- package/dist/services/shutdown-state/shutdown-state.service.js +0 -127
- package/dist/services/shutdown-state/shutdown-state.service.js.map +0 -1
- package/dist/services/spawn-queue/index.d.ts +0 -2
- package/dist/services/spawn-queue/index.d.ts.map +0 -1
- package/dist/services/spawn-queue/index.js.map +0 -1
- package/dist/services/spawn-queue/spawn-queue.service.d.ts +0 -119
- package/dist/services/spawn-queue/spawn-queue.service.d.ts.map +0 -1
- package/dist/services/spawn-queue/spawn-queue.service.js +0 -273
- package/dist/services/spawn-queue/spawn-queue.service.js.map +0 -1
- package/dist/services/worker-manager/index.d.ts +0 -2
- package/dist/services/worker-manager/index.d.ts.map +0 -1
- package/dist/services/worker-manager/index.js +0 -18
- package/dist/services/worker-manager/index.js.map +0 -1
- package/dist/services/worker-manager/worker-manager.service.d.ts +0 -221
- package/dist/services/worker-manager/worker-manager.service.d.ts.map +0 -1
- package/dist/services/worker-manager/worker-manager.service.js +0 -591
- package/dist/services/worker-manager/worker-manager.service.js.map +0 -1
- package/dist/utils/helpers.d.ts +0 -5
- package/dist/utils/helpers.d.ts.map +0 -1
- package/dist/utils/helpers.js +0 -21
- package/dist/utils/helpers.js.map +0 -1
- package/dist/utils/job.utils.d.ts +0 -50
- package/dist/utils/job.utils.d.ts.map +0 -1
- package/dist/utils/job.utils.js +0 -89
- package/dist/utils/job.utils.js.map +0 -1
|
@@ -2,52 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getEntityType = getEntityType;
|
|
4
4
|
exports.getEntityIdProperty = getEntityIdProperty;
|
|
5
|
-
exports.getWorkerProcessorMetadata = getWorkerProcessorMetadata;
|
|
6
|
-
exports.getJobHandlerMetadata = getJobHandlerMetadata;
|
|
7
|
-
exports.getEntityScalerMetadata = getEntityScalerMetadata;
|
|
8
5
|
exports.getJobCommandMetadata = getJobCommandMetadata;
|
|
9
6
|
exports.getJobQueryMetadata = getJobQueryMetadata;
|
|
7
|
+
exports.getActorMetadata = getActorMetadata;
|
|
8
|
+
exports.getActorHandlers = getActorHandlers;
|
|
9
|
+
exports.getSchemaMetadata = getSchemaMetadata;
|
|
10
|
+
exports.getReplySchemaMetadata = getReplySchemaMetadata;
|
|
10
11
|
const constants_1 = require("./constants");
|
|
11
|
-
/**
|
|
12
|
-
* Get the entity type from a command/query class decorated with @EntityType or @QueueEntity
|
|
13
|
-
*/
|
|
14
12
|
function getEntityType(target) {
|
|
15
13
|
return Reflect.getMetadata(constants_1.ENTITY_TYPE_METADATA, target);
|
|
16
14
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Get the entity ID property name from a class decorated with @QueueEntityId or @QueueEntity
|
|
19
|
-
*/
|
|
20
15
|
function getEntityIdProperty(target) {
|
|
21
16
|
return Reflect.getMetadata(constants_1.ENTITY_ID_METADATA, target);
|
|
22
17
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Get WorkerProcessor metadata from a class
|
|
25
|
-
*/
|
|
26
|
-
function getWorkerProcessorMetadata(target) {
|
|
27
|
-
return Reflect.getMetadata(constants_1.WORKER_PROCESSOR_METADATA, target);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get all JobHandler metadata from a class
|
|
31
|
-
*/
|
|
32
|
-
function getJobHandlerMetadata(target) {
|
|
33
|
-
return Reflect.getMetadata(constants_1.JOB_HANDLER_METADATA, target) || [];
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Get EntityScaler metadata from a class
|
|
37
|
-
*/
|
|
38
|
-
function getEntityScalerMetadata(target) {
|
|
39
|
-
return Reflect.getMetadata(constants_1.ENTITY_SCALER_METADATA, target);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Get JobCommand metadata from a class
|
|
43
|
-
*/
|
|
44
18
|
function getJobCommandMetadata(target) {
|
|
45
19
|
return Reflect.getMetadata(constants_1.JOB_COMMAND_METADATA, target);
|
|
46
20
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Get JobQuery metadata from a class
|
|
49
|
-
*/
|
|
50
21
|
function getJobQueryMetadata(target) {
|
|
51
22
|
return Reflect.getMetadata(constants_1.JOB_QUERY_METADATA, target);
|
|
52
23
|
}
|
|
24
|
+
function getActorMetadata(target) {
|
|
25
|
+
return Reflect.getMetadata(constants_1.ACTOR_METADATA, target);
|
|
26
|
+
}
|
|
27
|
+
function getActorHandlers(target) {
|
|
28
|
+
return Reflect.getMetadata(constants_1.ACTOR_HANDLERS_METADATA, target) || [];
|
|
29
|
+
}
|
|
30
|
+
function getSchemaMetadata(target) {
|
|
31
|
+
return Reflect.getMetadata(constants_1.SCHEMA_METADATA, target);
|
|
32
|
+
}
|
|
33
|
+
function getReplySchemaMetadata(target) {
|
|
34
|
+
return Reflect.getMetadata(constants_1.REPLY_SCHEMA_METADATA, target);
|
|
35
|
+
}
|
|
53
36
|
//# sourceMappingURL=metadata-readers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-readers.js","sourceRoot":"","sources":["../../src/decorators/metadata-readers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"metadata-readers.js","sourceRoot":"","sources":["../../src/decorators/metadata-readers.ts"],"names":[],"mappings":";;AAiBA,sCAEC;AAED,kDAEC;AAED,sDAEC;AAED,kDAEC;AAED,4CAEC;AAED,4CAEC;AAED,8CAEC;AAED,wDAEC;AA/CD,2CASqB;AAQrB,SAAgB,aAAa,CAAC,MAAgB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAgB;IACpD,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAgB;IAC/C,OAAO,OAAO,CAAC,WAAW,CAAC,0BAAc,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAgB;IAC/C,OAAO,OAAO,CAAC,WAAW,CAAC,mCAAuB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAAgB;IAChD,OAAO,OAAO,CAAC,WAAW,CAAC,2BAAe,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAAgB;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,iCAAqB,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/schema.decorators.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,cAAc,CAOxE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Schema = Schema;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
function Schema(zodSchema, replySchema) {
|
|
6
|
+
return (target) => {
|
|
7
|
+
Reflect.defineMetadata(constants_1.SCHEMA_METADATA, zodSchema, target);
|
|
8
|
+
if (replySchema) {
|
|
9
|
+
Reflect.defineMetadata(constants_1.REPLY_SCHEMA_METADATA, replySchema, target);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=schema.decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.decorators.js","sourceRoot":"","sources":["../../src/decorators/schema.decorators.ts"],"names":[],"mappings":";;AAEA,wBAOC;AATD,2CAAqE;AAErE,SAAgB,MAAM,CAAC,SAAc,EAAE,WAAiB;IACtD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,2BAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -10,127 +10,58 @@ export interface IRedisConfig {
|
|
|
10
10
|
maxRetriesPerRequest?: number | null;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Retry policy configuration
|
|
14
14
|
*/
|
|
15
|
-
export interface
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
/** Maximum
|
|
23
|
-
|
|
24
|
-
/** Heartbeat TTL in seconds for worker liveness tracking */
|
|
25
|
-
heartbeatTTL?: number;
|
|
26
|
-
/** Interval in ms between heartbeat updates */
|
|
27
|
-
heartbeatInterval?: number;
|
|
15
|
+
export interface IRetryPolicy {
|
|
16
|
+
/** Maximum number of attempts (default: 3) */
|
|
17
|
+
maxAttempts?: number;
|
|
18
|
+
/** Backoff strategy */
|
|
19
|
+
backoff?: 'fixed' | 'exponential';
|
|
20
|
+
/** Base delay in ms (default: 1000) */
|
|
21
|
+
backoffDelay?: number;
|
|
22
|
+
/** Maximum delay in ms (default: 30000) */
|
|
23
|
+
maxDelay?: number;
|
|
28
24
|
}
|
|
29
25
|
/**
|
|
30
|
-
*
|
|
26
|
+
* Per-entity-type configuration
|
|
31
27
|
*/
|
|
32
|
-
export interface
|
|
33
|
-
/** Default
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
export interface IEntityConfig {
|
|
29
|
+
/** Default property name for entity ID extraction */
|
|
30
|
+
defaultEntityId?: string;
|
|
31
|
+
/** Gate TTL in seconds (default: 30) */
|
|
32
|
+
gateTTL?: number;
|
|
33
|
+
/** Retry policy for this entity type */
|
|
34
|
+
retry?: IRetryPolicy;
|
|
35
|
+
/** Idle timeout in ms before actor state is evicted from memory (default: 60000) */
|
|
36
|
+
actorIdleTimeout?: number;
|
|
37
|
+
/** Persist actor state to Redis on eviction (default: true) */
|
|
38
|
+
statePersistence?: boolean;
|
|
41
39
|
}
|
|
42
40
|
/**
|
|
43
|
-
*
|
|
41
|
+
* Executor pool configuration
|
|
44
42
|
*/
|
|
45
|
-
export interface
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
|
|
52
|
-
/** Backoff strategy for retries */
|
|
53
|
-
backoff?: {
|
|
54
|
-
type: 'fixed' | 'exponential';
|
|
55
|
-
delay: number;
|
|
56
|
-
};
|
|
57
|
-
/** Job priority (lower = higher priority) */
|
|
58
|
-
priority?: number;
|
|
59
|
-
/** Delay in ms before the job becomes available */
|
|
60
|
-
delay?: number;
|
|
43
|
+
export interface IExecutorConfig {
|
|
44
|
+
/** Number of concurrent executors (default: 1) */
|
|
45
|
+
poolSize?: number;
|
|
46
|
+
/** Default gate TTL in seconds (default: 30) */
|
|
47
|
+
gateTTL?: number;
|
|
48
|
+
/** Gate refresh interval in ms (default: gateTTL * 500) */
|
|
49
|
+
gateRefreshInterval?: number;
|
|
61
50
|
}
|
|
62
51
|
/**
|
|
63
|
-
*
|
|
52
|
+
* Distributed registry configuration (optional, for cross-service)
|
|
64
53
|
*/
|
|
65
|
-
export interface
|
|
66
|
-
/**
|
|
54
|
+
export interface IRegistryConfig {
|
|
55
|
+
/** Enable the distributed registry (default: false) */
|
|
67
56
|
enabled?: boolean;
|
|
68
|
-
/**
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
*
|
|
77
|
-
* When configured in the module, entities automatically get:
|
|
78
|
-
* - Worker spawning when jobs arrive (via QueueEvents)
|
|
79
|
-
* - Idle worker termination (via CronManager)
|
|
80
|
-
* - Job routing via CQRS CommandBus/QueryBus
|
|
81
|
-
*
|
|
82
|
-
* No @WorkerProcessor class needed!
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```typescript
|
|
86
|
-
* AtomicQueuesModule.forRoot({
|
|
87
|
-
* redis: { host: 'localhost', port: 6379 },
|
|
88
|
-
* enableCronManager: true,
|
|
89
|
-
* entities: {
|
|
90
|
-
* account: {
|
|
91
|
-
* queueName: (id) => `${id}-queue`,
|
|
92
|
-
* workerName: (id) => `${id}-worker`,
|
|
93
|
-
* maxWorkersPerEntity: 1,
|
|
94
|
-
* idleTimeoutSeconds: 15,
|
|
95
|
-
* },
|
|
96
|
-
* },
|
|
97
|
-
* })
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
100
|
-
export interface IEntityConfig {
|
|
101
|
-
/**
|
|
102
|
-
* Default property name to use for entity ID extraction.
|
|
103
|
-
* This is used when commands don't have an @QueueEntityId() decorator.
|
|
104
|
-
* Example: 'tableId', 'accountId', 'userId'
|
|
105
|
-
*/
|
|
106
|
-
defaultEntityId?: string;
|
|
107
|
-
/**
|
|
108
|
-
* Custom queue name generator for this entity type.
|
|
109
|
-
* If not provided, uses: {keyPrefix}:{entityType}:{entityId}:queue
|
|
110
|
-
*/
|
|
111
|
-
queueName?: (entityId: string) => string;
|
|
112
|
-
/**
|
|
113
|
-
* Custom worker name generator for this entity type.
|
|
114
|
-
* If not provided, uses: {keyPrefix}:{entityType}:{entityId}:worker
|
|
115
|
-
*/
|
|
116
|
-
workerName?: (entityId: string) => string;
|
|
117
|
-
/** Worker configuration overrides for this entity type */
|
|
118
|
-
workerConfig?: Partial<IWorkerConfig>;
|
|
119
|
-
/**
|
|
120
|
-
* Maximum workers per entity (default: 1).
|
|
121
|
-
* Determines how many concurrent workers can process jobs for a single entity.
|
|
122
|
-
*/
|
|
123
|
-
maxWorkersPerEntity?: number;
|
|
124
|
-
/**
|
|
125
|
-
* Idle timeout in seconds before a worker is terminated (default: 15).
|
|
126
|
-
* Workers are terminated when they have no jobs to process for this duration.
|
|
127
|
-
*/
|
|
128
|
-
idleTimeoutSeconds?: number;
|
|
129
|
-
/**
|
|
130
|
-
* If true, workers are automatically spawned when jobs arrive (default: true).
|
|
131
|
-
* When enabled, no @WorkerProcessor or @EntityScaler is required.
|
|
132
|
-
*/
|
|
133
|
-
autoSpawn?: boolean;
|
|
57
|
+
/** Service name for identification in the registry */
|
|
58
|
+
serviceName?: string;
|
|
59
|
+
/** Validate payload schemas on send (default: false) */
|
|
60
|
+
schemaValidation?: boolean;
|
|
61
|
+
/** Heartbeat interval in ms (default: 10000) */
|
|
62
|
+
heartbeatInterval?: number;
|
|
63
|
+
/** Registration TTL in seconds (default: 30) */
|
|
64
|
+
registrationTTL?: number;
|
|
134
65
|
}
|
|
135
66
|
/**
|
|
136
67
|
* Main module configuration
|
|
@@ -138,51 +69,19 @@ export interface IEntityConfig {
|
|
|
138
69
|
export interface IAtomicQueuesModuleConfig {
|
|
139
70
|
/** Redis connection configuration */
|
|
140
71
|
redis: IRedisConfig;
|
|
141
|
-
/**
|
|
142
|
-
|
|
143
|
-
/** Default
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
|
|
149
|
-
/** Prefix for all Redis keys */
|
|
72
|
+
/** Executor pool configuration */
|
|
73
|
+
executor?: IExecutorConfig;
|
|
74
|
+
/** Default retry policy */
|
|
75
|
+
retry?: IRetryPolicy;
|
|
76
|
+
/** Per-entity-type overrides */
|
|
77
|
+
entities?: Record<string, IEntityConfig>;
|
|
78
|
+
/** Distributed registry (cross-service communication) */
|
|
79
|
+
registry?: IRegistryConfig;
|
|
80
|
+
/** Prefix for all Redis keys (default: 'aq') */
|
|
150
81
|
keyPrefix?: string;
|
|
151
|
-
/**
|
|
152
|
-
serviceQueue?: IServiceQueueConfig;
|
|
153
|
-
/** Enable verbose logging (debug logs for service jobs, scaling cycles, etc.) */
|
|
82
|
+
/** Enable verbose logging */
|
|
154
83
|
verbose?: boolean;
|
|
155
|
-
/**
|
|
156
|
-
* Auto-register commands from @nestjs/cqrs handlers (default: true)
|
|
157
|
-
* When enabled, all @CommandHandler and @QueryHandler decorated classes
|
|
158
|
-
* are automatically discovered and registered with QueueBus.
|
|
159
|
-
*/
|
|
84
|
+
/** Auto-register commands from @nestjs/cqrs handlers (default: true) */
|
|
160
85
|
autoRegisterCommands?: boolean;
|
|
161
|
-
/**
|
|
162
|
-
* Per-entity type configuration.
|
|
163
|
-
* Allows setting defaults for specific entity types (e.g., 'table', 'account').
|
|
164
|
-
* These defaults are merged with processor-level and command-level settings.
|
|
165
|
-
*
|
|
166
|
-
* Priority chain (highest to lowest):
|
|
167
|
-
* 1. @QueueEntityId() decorator on command property
|
|
168
|
-
* 2. @WorkerProcessor({ defaultEntityId })
|
|
169
|
-
* 3. entities[entityType].defaultEntityId
|
|
170
|
-
* 4. Error (no fallback to magic extraction)
|
|
171
|
-
*
|
|
172
|
-
* @example
|
|
173
|
-
* ```typescript
|
|
174
|
-
* entities: {
|
|
175
|
-
* table: {
|
|
176
|
-
* defaultEntityId: 'tableId',
|
|
177
|
-
* workerConfig: { concurrency: 1 }
|
|
178
|
-
* },
|
|
179
|
-
* account: {
|
|
180
|
-
* defaultEntityId: 'accountId',
|
|
181
|
-
* queueName: (id) => `accounts-${id}-queue`
|
|
182
|
-
* }
|
|
183
|
-
* }
|
|
184
|
-
* ```
|
|
185
|
-
*/
|
|
186
|
-
entities?: Record<string, IEntityConfig>;
|
|
187
86
|
}
|
|
188
87
|
//# sourceMappingURL=config.interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/config.interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"config.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/config.interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,qCAAqC;IACrC,KAAK,EAAE,YAAY,CAAC;IAEpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEzC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC"}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
export * from './config.interfaces';
|
|
2
|
-
export * from './queue.interfaces';
|
|
3
|
-
export * from './worker.interfaces';
|
|
4
|
-
export * from './lock.interfaces';
|
|
5
2
|
export * from './job.interfaces';
|
|
6
|
-
export * from './scaling.interfaces';
|
|
7
|
-
export * from './index-tracking.interfaces';
|
|
8
|
-
export * from './event.interfaces';
|
|
9
|
-
export * from './process.interfaces';
|
|
10
3
|
export * from './cqrs.interfaces';
|
|
11
4
|
export * from './utility.types';
|
|
12
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
|
|
@@ -15,14 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./config.interfaces"), exports);
|
|
18
|
-
__exportStar(require("./queue.interfaces"), exports);
|
|
19
|
-
__exportStar(require("./worker.interfaces"), exports);
|
|
20
|
-
__exportStar(require("./lock.interfaces"), exports);
|
|
21
18
|
__exportStar(require("./job.interfaces"), exports);
|
|
22
|
-
__exportStar(require("./scaling.interfaces"), exports);
|
|
23
|
-
__exportStar(require("./index-tracking.interfaces"), exports);
|
|
24
|
-
__exportStar(require("./event.interfaces"), exports);
|
|
25
|
-
__exportStar(require("./process.interfaces"), exports);
|
|
26
19
|
__exportStar(require("./cqrs.interfaces"), exports);
|
|
27
20
|
__exportStar(require("./utility.types"), exports);
|
|
28
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,mDAAiC;AACjC,oDAAkC;AAClC,kDAAgC"}
|
|
@@ -1,76 +1,43 @@
|
|
|
1
|
-
import { Job } from 'bullmq';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* Serialized message stored in the entity log
|
|
4
3
|
*/
|
|
5
|
-
export interface
|
|
6
|
-
/** Unique
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
/**
|
|
4
|
+
export interface ISerializedMessage {
|
|
5
|
+
/** Unique message ID */
|
|
6
|
+
id: string;
|
|
7
|
+
/** Message class name (e.g., 'WithdrawCommand') */
|
|
8
|
+
name: string;
|
|
9
|
+
/** Serialized message data */
|
|
10
|
+
data: Record<string, any>;
|
|
11
|
+
/** Entity type */
|
|
11
12
|
entityType: string;
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export interface IJobResult<T = unknown> {
|
|
25
|
-
success: boolean;
|
|
26
|
-
result?: T;
|
|
27
|
-
error?: string;
|
|
28
|
-
processingTime: number;
|
|
13
|
+
/** Entity ID */
|
|
14
|
+
entityId: string;
|
|
15
|
+
/** Whether this is a query (expects a reply) */
|
|
16
|
+
isQuery?: boolean;
|
|
17
|
+
/** Correlation ID for reply delivery */
|
|
18
|
+
correlationId?: string;
|
|
19
|
+
/** Timestamp when enqueued */
|
|
20
|
+
enqueuedAt: number;
|
|
21
|
+
/** Number of attempts so far */
|
|
22
|
+
attempts: number;
|
|
23
|
+
/** Max attempts allowed */
|
|
24
|
+
maxAttempts: number;
|
|
29
25
|
}
|
|
30
26
|
/**
|
|
31
|
-
*
|
|
32
|
-
*/
|
|
33
|
-
export type JobProcessor<T = unknown, R = unknown> = (job: Job<IAtomicJobData<T>>) => Promise<R>;
|
|
34
|
-
/**
|
|
35
|
-
* Job processor registry interface
|
|
27
|
+
* Reference returned from enqueue operations
|
|
36
28
|
*/
|
|
37
|
-
export interface
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Get processor for a job type
|
|
44
|
-
*/
|
|
45
|
-
getProcessor<T, R>(jobType: string): JobProcessor<T, R> | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Check if processor exists
|
|
48
|
-
*/
|
|
49
|
-
hasProcessor(jobType: string): boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Get all registered job types
|
|
52
|
-
*/
|
|
53
|
-
getRegisteredTypes(): string[];
|
|
29
|
+
export interface IMessageRef {
|
|
30
|
+
/** Unique message ID */
|
|
31
|
+
id: string;
|
|
32
|
+
/** Entity key (entityType:entityId) */
|
|
33
|
+
entityKey: string;
|
|
54
34
|
}
|
|
55
35
|
/**
|
|
56
|
-
*
|
|
36
|
+
* Result of a dispatched message
|
|
57
37
|
*/
|
|
58
|
-
export interface
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
executeCommand<T>(commandName: string, payload: T): Promise<unknown>;
|
|
63
|
-
/**
|
|
64
|
-
* Execute a query by class name
|
|
65
|
-
*/
|
|
66
|
-
executeQuery<T>(queryName: string, payload: T): Promise<unknown>;
|
|
67
|
-
/**
|
|
68
|
-
* Register command module for dynamic loading
|
|
69
|
-
*/
|
|
70
|
-
registerCommandModule(modulePath: string): void;
|
|
71
|
-
/**
|
|
72
|
-
* Register query module for dynamic loading
|
|
73
|
-
*/
|
|
74
|
-
registerQueryModule(modulePath: string): void;
|
|
38
|
+
export interface IDispatchResult {
|
|
39
|
+
entityKey: string;
|
|
40
|
+
message: ISerializedMessage;
|
|
41
|
+
ownerToken: string;
|
|
75
42
|
}
|
|
76
43
|
//# sourceMappingURL=job.interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/job.interfaces.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"job.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/job.interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* =============================================================================
|
|
3
|
-
* ATOMIC QUEUES
|
|
4
|
-
* =============================================================================
|
|
5
|
-
*
|
|
6
|
-
* A plug-and-play NestJS library for atomic process handling per entity
|
|
7
|
-
* with BullMQ, Redis distributed locking, and dynamic worker management.
|
|
8
|
-
*
|
|
9
|
-
* Features:
|
|
10
|
-
* - Dynamic per-entity queue creation
|
|
11
|
-
* - Worker lifecycle management with heartbeat TTL
|
|
12
|
-
* - Distributed resource locking (Redis/Lua scripts)
|
|
13
|
-
* - Graceful shutdown coordination via pub/sub
|
|
14
|
-
* - Cron-based worker spawning/cleanup
|
|
15
|
-
* - CQRS command/query dynamic execution
|
|
16
|
-
* - Index tracking for jobs, workers, and queues
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* import { AtomicQueuesModule, QueueManagerService, WorkerManagerService } from 'atomic-queues';
|
|
21
|
-
*
|
|
22
|
-
* @Module({
|
|
23
|
-
* imports: [
|
|
24
|
-
* AtomicQueuesModule.forRoot({
|
|
25
|
-
* redis: { host: 'localhost', port: 6379 },
|
|
26
|
-
* enableCronManager: true,
|
|
27
|
-
* }),
|
|
28
|
-
* ],
|
|
29
|
-
* })
|
|
30
|
-
* export class AppModule {}
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* @packageDocumentation
|
|
34
|
-
*/
|
|
35
1
|
export * from './domain';
|
|
36
2
|
export * from './module';
|
|
37
3
|
export * from './services';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,38 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* =============================================================================
|
|
4
|
-
* ATOMIC QUEUES
|
|
5
|
-
* =============================================================================
|
|
6
|
-
*
|
|
7
|
-
* A plug-and-play NestJS library for atomic process handling per entity
|
|
8
|
-
* with BullMQ, Redis distributed locking, and dynamic worker management.
|
|
9
|
-
*
|
|
10
|
-
* Features:
|
|
11
|
-
* - Dynamic per-entity queue creation
|
|
12
|
-
* - Worker lifecycle management with heartbeat TTL
|
|
13
|
-
* - Distributed resource locking (Redis/Lua scripts)
|
|
14
|
-
* - Graceful shutdown coordination via pub/sub
|
|
15
|
-
* - Cron-based worker spawning/cleanup
|
|
16
|
-
* - CQRS command/query dynamic execution
|
|
17
|
-
* - Index tracking for jobs, workers, and queues
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* import { AtomicQueuesModule, QueueManagerService, WorkerManagerService } from 'atomic-queues';
|
|
22
|
-
*
|
|
23
|
-
* @Module({
|
|
24
|
-
* imports: [
|
|
25
|
-
* AtomicQueuesModule.forRoot({
|
|
26
|
-
* redis: { host: 'localhost', port: 6379 },
|
|
27
|
-
* enableCronManager: true,
|
|
28
|
-
* }),
|
|
29
|
-
* ],
|
|
30
|
-
* })
|
|
31
|
-
* export class AppModule {}
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
|
-
* @packageDocumentation
|
|
35
|
-
*/
|
|
36
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
37
3
|
if (k2 === undefined) k2 = k;
|
|
38
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -48,14 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
48
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
49
15
|
};
|
|
50
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
-
// Domain - Interfaces and Types
|
|
52
17
|
__exportStar(require("./domain"), exports);
|
|
53
|
-
// Module
|
|
54
18
|
__exportStar(require("./module"), exports);
|
|
55
|
-
// Services
|
|
56
19
|
__exportStar(require("./services"), exports);
|
|
57
|
-
// Decorators
|
|
58
20
|
__exportStar(require("./decorators"), exports);
|
|
59
|
-
// Utilities
|
|
60
21
|
__exportStar(require("./utils"), exports);
|
|
61
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,+CAA6B;AAC7B,0CAAwB"}
|