atomic-queues 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/decorators/decorators.d.ts +118 -0
  2. package/dist/decorators/decorators.d.ts.map +1 -1
  3. package/dist/decorators/decorators.js +162 -1
  4. package/dist/decorators/decorators.js.map +1 -1
  5. package/dist/module/atomic-queues.module.d.ts.map +1 -1
  6. package/dist/module/atomic-queues.module.js +2 -0
  7. package/dist/module/atomic-queues.module.js.map +1 -1
  8. package/dist/services/command-discovery/command-discovery.service.d.ts +88 -0
  9. package/dist/services/command-discovery/command-discovery.service.d.ts.map +1 -0
  10. package/dist/services/command-discovery/command-discovery.service.js +235 -0
  11. package/dist/services/command-discovery/command-discovery.service.js.map +1 -0
  12. package/dist/services/command-discovery/index.d.ts +2 -0
  13. package/dist/services/command-discovery/index.d.ts.map +1 -0
  14. package/dist/services/command-discovery/index.js +18 -0
  15. package/dist/services/command-discovery/index.js.map +1 -0
  16. package/dist/services/index.d.ts +2 -0
  17. package/dist/services/index.d.ts.map +1 -1
  18. package/dist/services/index.js +2 -0
  19. package/dist/services/index.js.map +1 -1
  20. package/dist/services/processor-discovery/processor-discovery.service.d.ts +30 -1
  21. package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +1 -1
  22. package/dist/services/processor-discovery/processor-discovery.service.js +78 -7
  23. package/dist/services/processor-discovery/processor-discovery.service.js.map +1 -1
  24. package/dist/services/queue-bus/index.d.ts +2 -0
  25. package/dist/services/queue-bus/index.d.ts.map +1 -0
  26. package/dist/services/queue-bus/index.js +18 -0
  27. package/dist/services/queue-bus/index.js.map +1 -0
  28. package/dist/services/queue-bus/queue-bus.service.d.ts +143 -0
  29. package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -0
  30. package/dist/services/queue-bus/queue-bus.service.js +214 -0
  31. package/dist/services/queue-bus/queue-bus.service.js.map +1 -0
  32. package/dist/services/queue-manager/queue-manager.service.d.ts +7 -1
  33. package/dist/services/queue-manager/queue-manager.service.d.ts.map +1 -1
  34. package/dist/services/queue-manager/queue-manager.service.js +26 -0
  35. package/dist/services/queue-manager/queue-manager.service.js.map +1 -1
  36. package/package.json +1 -1
@@ -13,6 +13,8 @@ export declare const GET_ACTIVE_ENTITIES_METADATA = "atomic:get-active-entities"
13
13
  export declare const GET_DESIRED_WORKER_COUNT_METADATA = "atomic:get-desired-worker-count";
14
14
  export declare const ON_SPAWN_WORKER_METADATA = "atomic:on-spawn-worker";
15
15
  export declare const ON_TERMINATE_WORKER_METADATA = "atomic:on-terminate-worker";
16
+ export declare const JOB_COMMAND_METADATA = "atomic:job-command";
17
+ export declare const JOB_QUERY_METADATA = "atomic:job-query";
16
18
  /**
17
19
  * Options for @WorkerProcessor decorator
18
20
  */
@@ -35,6 +37,48 @@ export interface EntityScalerOptions {
35
37
  /** Maximum workers per entity */
36
38
  maxWorkersPerEntity?: number;
37
39
  }
40
+ /**
41
+ * Options for @JobCommand decorator
42
+ */
43
+ export interface JobCommandOptions {
44
+ /** Job name (defaults to kebab-case of class name without 'Command' suffix) */
45
+ name?: string;
46
+ /** Entity type this command belongs to (optional, for scoped routing) */
47
+ entityType?: string;
48
+ /** Which constructor parameter is the entityId (default: 0 = first param) */
49
+ entityIdParam?: number | string;
50
+ }
51
+ /**
52
+ * Options for @JobQuery decorator
53
+ */
54
+ export interface JobQueryOptions {
55
+ /** Job name (defaults to kebab-case of class name without 'Query' suffix) */
56
+ name?: string;
57
+ /** Entity type this query belongs to (optional, for scoped routing) */
58
+ entityType?: string;
59
+ /** Which constructor parameter is the entityId (default: 0 = first param) */
60
+ entityIdParam?: number | string;
61
+ }
62
+ /**
63
+ * Stored job command metadata
64
+ */
65
+ export interface JobCommandMetadata {
66
+ jobName: string;
67
+ entityType?: string;
68
+ entityIdParam: number | string;
69
+ targetClass: Function;
70
+ paramNames: string[];
71
+ }
72
+ /**
73
+ * Stored job query metadata
74
+ */
75
+ export interface JobQueryMetadata {
76
+ jobName: string;
77
+ entityType?: string;
78
+ entityIdParam: number | string;
79
+ targetClass: Function;
80
+ paramNames: string[];
81
+ }
38
82
  /**
39
83
  * Stored job handler metadata
40
84
  */
@@ -229,6 +273,80 @@ export declare function OnSpawnWorker(): MethodDecorator;
229
273
  * Used within an @EntityScaler class.
230
274
  */
231
275
  export declare function OnTerminateWorker(): MethodDecorator;
276
+ /**
277
+ * @JobCommand class decorator
278
+ *
279
+ * Marks a command class for automatic job routing. When a job with the
280
+ * specified name arrives, the library will automatically instantiate
281
+ * the command with entityId + job.data and execute it via CommandBus.
282
+ *
283
+ * This eliminates the need for @JobHandler boilerplate in processors.
284
+ *
285
+ * @example
286
+ * ```typescript
287
+ * // Option 1: Explicit job name
288
+ * @JobCommand('make-bet')
289
+ * export class MakeBetCommand {
290
+ * constructor(
291
+ * public readonly tableId: string, // entityId (first param)
292
+ * public readonly playerId: string,
293
+ * public readonly amount: number,
294
+ * ) {}
295
+ * }
296
+ *
297
+ * // Option 2: Auto-derived job name (MakeBetCommand -> 'make-bet')
298
+ * @JobCommand()
299
+ * export class MakeBetCommand { ... }
300
+ *
301
+ * // Option 3: With options
302
+ * @JobCommand({
303
+ * name: 'place-bet',
304
+ * entityType: 'table',
305
+ * entityIdParam: 'tableId', // or 0 for first param
306
+ * })
307
+ * export class PlaceBetCommand { ... }
308
+ * ```
309
+ */
310
+ export declare function JobCommand(options?: string | JobCommandOptions): ClassDecorator;
311
+ /**
312
+ * @JobQuery class decorator
313
+ *
314
+ * Marks a query class for automatic job routing. When a job with the
315
+ * specified name arrives, the library will automatically instantiate
316
+ * the query with entityId + job.data and execute it via QueryBus.
317
+ *
318
+ * @example
319
+ * ```typescript
320
+ * @JobQuery('get-score')
321
+ * export class GetScoreQuery {
322
+ * constructor(
323
+ * public readonly tableId: string,
324
+ * public readonly seatIndex: number,
325
+ * ) {}
326
+ * }
327
+ *
328
+ * // Auto-derived: GetTableStateQuery -> 'get-table-state'
329
+ * @JobQuery()
330
+ * export class GetTableStateQuery { ... }
331
+ * ```
332
+ */
333
+ export declare function JobQuery(options?: string | JobQueryOptions): ClassDecorator;
334
+ /**
335
+ * Get JobCommand metadata from a class
336
+ */
337
+ export declare function getJobCommandMetadata(target: Function): JobCommandMetadata | undefined;
338
+ /**
339
+ * Get JobQuery metadata from a class
340
+ */
341
+ export declare function getJobQueryMetadata(target: Function): JobQueryMetadata | undefined;
342
+ /**
343
+ * Check if a class is a JobCommand
344
+ */
345
+ export declare function isJobCommand(target: Function): boolean;
346
+ /**
347
+ * Check if a class is a JobQuery
348
+ */
349
+ export declare function isJobQuery(target: Function): boolean;
232
350
  /**
233
351
  * Get WorkerProcessor metadata from a class
234
352
  */
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/decorators.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InjectAtomicQueue = exports.JobType = exports.EntityType = exports.AtomicProcessor = exports.ON_TERMINATE_WORKER_METADATA = exports.ON_SPAWN_WORKER_METADATA = exports.GET_DESIRED_WORKER_COUNT_METADATA = exports.GET_ACTIVE_ENTITIES_METADATA = exports.ENTITY_SCALER_METADATA = exports.JOB_HANDLER_METADATA = exports.WORKER_PROCESSOR_METADATA = exports.JOB_TYPE_METADATA = exports.ENTITY_TYPE_METADATA = exports.ATOMIC_PROCESSOR_METADATA = void 0;
3
+ exports.InjectAtomicQueue = exports.JobType = exports.EntityType = exports.AtomicProcessor = exports.JOB_QUERY_METADATA = exports.JOB_COMMAND_METADATA = exports.ON_TERMINATE_WORKER_METADATA = exports.ON_SPAWN_WORKER_METADATA = exports.GET_DESIRED_WORKER_COUNT_METADATA = exports.GET_ACTIVE_ENTITIES_METADATA = exports.ENTITY_SCALER_METADATA = exports.JOB_HANDLER_METADATA = exports.WORKER_PROCESSOR_METADATA = exports.JOB_TYPE_METADATA = exports.ENTITY_TYPE_METADATA = exports.ATOMIC_PROCESSOR_METADATA = void 0;
4
4
  exports.WorkerProcessor = WorkerProcessor;
5
5
  exports.JobHandler = JobHandler;
6
6
  exports.EntityScaler = EntityScaler;
@@ -8,6 +8,12 @@ exports.GetActiveEntities = GetActiveEntities;
8
8
  exports.GetDesiredWorkerCount = GetDesiredWorkerCount;
9
9
  exports.OnSpawnWorker = OnSpawnWorker;
10
10
  exports.OnTerminateWorker = OnTerminateWorker;
11
+ exports.JobCommand = JobCommand;
12
+ exports.JobQuery = JobQuery;
13
+ exports.getJobCommandMetadata = getJobCommandMetadata;
14
+ exports.getJobQueryMetadata = getJobQueryMetadata;
15
+ exports.isJobCommand = isJobCommand;
16
+ exports.isJobQuery = isJobQuery;
11
17
  exports.getWorkerProcessorMetadata = getWorkerProcessorMetadata;
12
18
  exports.getJobHandlerMetadata = getJobHandlerMetadata;
13
19
  exports.getEntityScalerMetadata = getEntityScalerMetadata;
@@ -30,6 +36,8 @@ exports.GET_ACTIVE_ENTITIES_METADATA = 'atomic:get-active-entities';
30
36
  exports.GET_DESIRED_WORKER_COUNT_METADATA = 'atomic:get-desired-worker-count';
31
37
  exports.ON_SPAWN_WORKER_METADATA = 'atomic:on-spawn-worker';
32
38
  exports.ON_TERMINATE_WORKER_METADATA = 'atomic:on-terminate-worker';
39
+ exports.JOB_COMMAND_METADATA = 'atomic:job-command';
40
+ exports.JOB_QUERY_METADATA = 'atomic:job-query';
33
41
  // =============================================================================
34
42
  // LEGACY DECORATORS (Preserved for backward compatibility)
35
43
  // =============================================================================
@@ -276,6 +284,159 @@ function OnTerminateWorker() {
276
284
  };
277
285
  }
278
286
  // =============================================================================
287
+ // JOB COMMAND/QUERY DECORATORS - Zero-Boilerplate CQRS Integration
288
+ // =============================================================================
289
+ /**
290
+ * Helper to convert class name to kebab-case job name
291
+ * MakeBetCommand -> make-bet
292
+ * ProcessPaymentCommand -> process-payment
293
+ */
294
+ function deriveJobName(className, suffix) {
295
+ return className
296
+ .replace(new RegExp(`${suffix}$`), '')
297
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
298
+ .toLowerCase();
299
+ }
300
+ /**
301
+ * Helper to extract constructor parameter names using reflection
302
+ */
303
+ function getConstructorParamNames(target) {
304
+ const paramTypes = Reflect.getMetadata('design:paramtypes', target) || [];
305
+ // Try to extract parameter names from the constructor string
306
+ const constructorStr = target.toString();
307
+ const match = constructorStr.match(/constructor\s*\(([^)]*)\)/);
308
+ if (match && match[1]) {
309
+ return match[1]
310
+ .split(',')
311
+ .map((param) => {
312
+ // Handle various patterns:
313
+ // "public readonly tableId: string" -> "tableId"
314
+ // "tableId" -> "tableId"
315
+ // "private tableId: string" -> "tableId"
316
+ const cleaned = param.trim();
317
+ const nameMatch = cleaned.match(/(?:public\s+)?(?:private\s+)?(?:protected\s+)?(?:readonly\s+)?(\w+)/);
318
+ return nameMatch ? nameMatch[1] : cleaned;
319
+ })
320
+ .filter((name) => name.length > 0);
321
+ }
322
+ // Fallback: generate param0, param1, etc.
323
+ return paramTypes.map((_, i) => `param${i}`);
324
+ }
325
+ /**
326
+ * @JobCommand class decorator
327
+ *
328
+ * Marks a command class for automatic job routing. When a job with the
329
+ * specified name arrives, the library will automatically instantiate
330
+ * the command with entityId + job.data and execute it via CommandBus.
331
+ *
332
+ * This eliminates the need for @JobHandler boilerplate in processors.
333
+ *
334
+ * @example
335
+ * ```typescript
336
+ * // Option 1: Explicit job name
337
+ * @JobCommand('make-bet')
338
+ * export class MakeBetCommand {
339
+ * constructor(
340
+ * public readonly tableId: string, // entityId (first param)
341
+ * public readonly playerId: string,
342
+ * public readonly amount: number,
343
+ * ) {}
344
+ * }
345
+ *
346
+ * // Option 2: Auto-derived job name (MakeBetCommand -> 'make-bet')
347
+ * @JobCommand()
348
+ * export class MakeBetCommand { ... }
349
+ *
350
+ * // Option 3: With options
351
+ * @JobCommand({
352
+ * name: 'place-bet',
353
+ * entityType: 'table',
354
+ * entityIdParam: 'tableId', // or 0 for first param
355
+ * })
356
+ * export class PlaceBetCommand { ... }
357
+ * ```
358
+ */
359
+ function JobCommand(options) {
360
+ return (target) => {
361
+ const opts = typeof options === 'string'
362
+ ? { name: options }
363
+ : (options || {});
364
+ const jobName = opts.name || deriveJobName(target.name, 'Command');
365
+ const paramNames = getConstructorParamNames(target);
366
+ const metadata = {
367
+ jobName,
368
+ entityType: opts.entityType,
369
+ entityIdParam: opts.entityIdParam ?? 0,
370
+ targetClass: target,
371
+ paramNames,
372
+ };
373
+ Reflect.defineMetadata(exports.JOB_COMMAND_METADATA, metadata, target);
374
+ };
375
+ }
376
+ /**
377
+ * @JobQuery class decorator
378
+ *
379
+ * Marks a query class for automatic job routing. When a job with the
380
+ * specified name arrives, the library will automatically instantiate
381
+ * the query with entityId + job.data and execute it via QueryBus.
382
+ *
383
+ * @example
384
+ * ```typescript
385
+ * @JobQuery('get-score')
386
+ * export class GetScoreQuery {
387
+ * constructor(
388
+ * public readonly tableId: string,
389
+ * public readonly seatIndex: number,
390
+ * ) {}
391
+ * }
392
+ *
393
+ * // Auto-derived: GetTableStateQuery -> 'get-table-state'
394
+ * @JobQuery()
395
+ * export class GetTableStateQuery { ... }
396
+ * ```
397
+ */
398
+ function JobQuery(options) {
399
+ return (target) => {
400
+ const opts = typeof options === 'string'
401
+ ? { name: options }
402
+ : (options || {});
403
+ const jobName = opts.name || deriveJobName(target.name, 'Query');
404
+ const paramNames = getConstructorParamNames(target);
405
+ const metadata = {
406
+ jobName,
407
+ entityType: opts.entityType,
408
+ entityIdParam: opts.entityIdParam ?? 0,
409
+ targetClass: target,
410
+ paramNames,
411
+ };
412
+ Reflect.defineMetadata(exports.JOB_QUERY_METADATA, metadata, target);
413
+ };
414
+ }
415
+ /**
416
+ * Get JobCommand metadata from a class
417
+ */
418
+ function getJobCommandMetadata(target) {
419
+ return Reflect.getMetadata(exports.JOB_COMMAND_METADATA, target);
420
+ }
421
+ /**
422
+ * Get JobQuery metadata from a class
423
+ */
424
+ function getJobQueryMetadata(target) {
425
+ return Reflect.getMetadata(exports.JOB_QUERY_METADATA, target);
426
+ }
427
+ /**
428
+ * Check if a class is a JobCommand
429
+ */
430
+ function isJobCommand(target) {
431
+ return Reflect.hasMetadata(exports.JOB_COMMAND_METADATA, target);
432
+ }
433
+ /**
434
+ * Check if a class is a JobQuery
435
+ */
436
+ function isJobQuery(target) {
437
+ return Reflect.hasMetadata(exports.JOB_QUERY_METADATA, target);
438
+ }
439
+ // =============================================================================
279
440
  // UTILITY FUNCTIONS
280
441
  // =============================================================================
281
442
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators/decorators.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"atomic-queues.module.d.ts","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAIb,IAAI,EACL,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,yBAAyB,EAAe,MAAM,WAAW,CAAC;AAkBnE;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,CACV,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,OAAO,CAAC,yBAAyB,CAAC,GAAG,yBAAyB,CAAC;IAEpE;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBAEa,kBAAkB;IAC7B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,GAAG,aAAa;IA0BhE;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,8BAA8B,GAAG,aAAa;IAyB3E;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7D,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GAAG,aAAa;IAgBjB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAuBlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAUxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAqBxC"}
1
+ {"version":3,"file":"atomic-queues.module.d.ts","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAIb,IAAI,EACL,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,yBAAyB,EAAe,MAAM,WAAW,CAAC;AAoBnE;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,CACV,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,OAAO,CAAC,yBAAyB,CAAC,GAAG,yBAAyB,CAAC;IAEpE;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBAEa,kBAAkB;IAC7B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,GAAG,aAAa;IA0BhE;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,8BAA8B,GAAG,aAAa;IAyB3E;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7D,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GAAG,aAAa;IAgBjB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAuBlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAUxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAqBxC"}
@@ -30,6 +30,8 @@ const CORE_SERVICES = [
30
30
  services_1.ServiceQueueManager,
31
31
  services_1.ShutdownStateService,
32
32
  services_1.ProcessorDiscoveryService,
33
+ services_1.CommandDiscoveryService,
34
+ services_1.QueueBus,
33
35
  ];
34
36
  /**
35
37
  * AtomicQueuesModule
@@ -1 +1 @@
1
- {"version":3,"file":"atomic-queues.module.js","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atomic-queues.module.js","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import { OnModuleInit, Type } from '@nestjs/common';
2
+ import { DiscoveryService, Reflector } from '@nestjs/core';
3
+ import { Job } from 'bullmq';
4
+ interface ICommandBus {
5
+ execute<T>(command: T): Promise<any>;
6
+ }
7
+ interface IQueryBus {
8
+ execute<T>(query: T): Promise<any>;
9
+ }
10
+ /**
11
+ * CommandDiscoveryService
12
+ *
13
+ * Discovers all classes decorated with @JobCommand and @JobQuery,
14
+ * builds a routing map, and provides auto-execution capabilities.
15
+ *
16
+ * This eliminates the need for @JobHandler boilerplate - commands
17
+ * decorated with @JobCommand are automatically routed and executed.
18
+ */
19
+ export declare class CommandDiscoveryService implements OnModuleInit {
20
+ private readonly discoveryService;
21
+ private readonly reflector;
22
+ private readonly logger;
23
+ /** Map of job name -> command metadata */
24
+ private readonly commandMap;
25
+ /** Map of job name -> query metadata */
26
+ private readonly queryMap;
27
+ /** Map of entityType:jobName -> command metadata (for scoped routing) */
28
+ private readonly scopedCommandMap;
29
+ /** Map of entityType:jobName -> query metadata (for scoped routing) */
30
+ private readonly scopedQueryMap;
31
+ private commandBus;
32
+ private queryBus;
33
+ constructor(discoveryService: DiscoveryService, reflector: Reflector);
34
+ /**
35
+ * Set the CommandBus for executing commands
36
+ * Called by the module setup if @nestjs/cqrs is available
37
+ */
38
+ setCommandBus(commandBus: ICommandBus): void;
39
+ /**
40
+ * Set the QueryBus for executing queries
41
+ * Called by the module setup if @nestjs/cqrs is available
42
+ */
43
+ setQueryBus(queryBus: IQueryBus): void;
44
+ onModuleInit(): Promise<void>;
45
+ /**
46
+ * Discover all @JobCommand decorated classes
47
+ */
48
+ private discoverCommands;
49
+ /**
50
+ * Discover all @JobQuery decorated classes
51
+ */
52
+ private discoverQueries;
53
+ /**
54
+ * Check if a job name has a registered command or query
55
+ */
56
+ hasHandler(jobName: string, entityType?: string): boolean;
57
+ /**
58
+ * Get command class for a job name
59
+ */
60
+ getCommandClass(jobName: string, entityType?: string): Type<any> | undefined;
61
+ /**
62
+ * Get query class for a job name
63
+ */
64
+ getQueryClass(jobName: string, entityType?: string): Type<any> | undefined;
65
+ /**
66
+ * Execute a job by routing to the appropriate command or query
67
+ *
68
+ * @param job The BullMQ job
69
+ * @param entityId The entity ID (injected by the worker processor)
70
+ * @param entityType Optional entity type for scoped routing
71
+ * @returns The result of the command/query execution
72
+ * @throws Error if no handler is found
73
+ */
74
+ executeJob(job: Job, entityId: string, entityType?: string): Promise<any>;
75
+ /**
76
+ * Instantiate a command/query class from job data
77
+ */
78
+ private instantiateFromMetadata;
79
+ /**
80
+ * Get all registered job names (for debugging/documentation)
81
+ */
82
+ getRegisteredJobNames(): {
83
+ commands: string[];
84
+ queries: string[];
85
+ };
86
+ }
87
+ export {};
88
+ //# sourceMappingURL=command-discovery.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-discovery.service.d.ts","sourceRoot":"","sources":["../../../src/services/command-discovery/command-discovery.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,IAAI,EAAY,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAS7B,UAAU,WAAW;IACnB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC;AAED,UAAU,SAAS;IACjB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,qBACa,uBAAwB,YAAW,YAAY;IAmB5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAnBxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IAEnE,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyC;IAEpE,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAEhE,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;IAE1E,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuC;IAEtE,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,QAAQ,CAA0B;gBAGX,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS;IAGnD;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAI5C;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAIhC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,eAAe;IA4BvB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAUzD;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS;IAS5E;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS;IAS1E;;;;;;;;OAQG;IACG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAmD/E;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA8B/B;;OAEG;IACH,qBAAqB,IAAI;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;CAMnE"}