nestjs-temporal-core 3.0.1 → 3.0.4

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 (101) hide show
  1. package/README.md +274 -139
  2. package/dist/client/temporal-client.module.d.ts +9 -3
  3. package/dist/client/temporal-client.module.js +43 -13
  4. package/dist/client/temporal-client.module.js.map +1 -1
  5. package/dist/client/temporal-client.service.d.ts +10 -3
  6. package/dist/client/temporal-client.service.js +15 -6
  7. package/dist/client/temporal-client.service.js.map +1 -1
  8. package/dist/client/temporal-schedule.service.d.ts +21 -5
  9. package/dist/client/temporal-schedule.service.js +42 -10
  10. package/dist/client/temporal-schedule.service.js.map +1 -1
  11. package/dist/constants.d.ts +47 -70
  12. package/dist/constants.js +51 -74
  13. package/dist/constants.js.map +1 -1
  14. package/dist/decorators/activity.decorator.d.ts +3 -0
  15. package/dist/decorators/activity.decorator.js +39 -0
  16. package/dist/decorators/activity.decorator.js.map +1 -0
  17. package/dist/decorators/index.d.ts +4 -5
  18. package/dist/decorators/index.js +17 -19
  19. package/dist/decorators/index.js.map +1 -1
  20. package/dist/decorators/parameter.decorator.d.ts +7 -0
  21. package/dist/decorators/parameter.decorator.js +69 -0
  22. package/dist/decorators/parameter.decorator.js.map +1 -0
  23. package/dist/decorators/{scheduling.decorators.d.ts → scheduling.decorator.d.ts} +1 -1
  24. package/dist/decorators/{scheduling.decorators.js → scheduling.decorator.js} +24 -1
  25. package/dist/decorators/scheduling.decorator.js.map +1 -0
  26. package/dist/decorators/workflow.decorator.d.ts +3 -0
  27. package/dist/decorators/workflow.decorator.js +58 -0
  28. package/dist/decorators/workflow.decorator.js.map +1 -0
  29. package/dist/discovery/index.d.ts +2 -2
  30. package/dist/discovery/index.js +2 -2
  31. package/dist/discovery/index.js.map +1 -1
  32. package/dist/discovery/{workflow-discovery.service.d.ts → temporal-discovery.service.d.ts} +21 -18
  33. package/dist/discovery/temporal-discovery.service.js +190 -0
  34. package/dist/discovery/temporal-discovery.service.js.map +1 -0
  35. package/dist/discovery/{schedule-manager.service.d.ts → temporal-schedule-manager.service.d.ts} +20 -15
  36. package/dist/discovery/{schedule-manager.service.js → temporal-schedule-manager.service.js} +96 -76
  37. package/dist/discovery/temporal-schedule-manager.service.js.map +1 -0
  38. package/dist/index.d.ts +6 -11
  39. package/dist/index.js +16 -16
  40. package/dist/index.js.map +1 -1
  41. package/dist/interfaces.d.ts +193 -0
  42. package/dist/interfaces.js +9 -0
  43. package/dist/interfaces.js.map +1 -0
  44. package/dist/temporal.module.d.ts +2 -1
  45. package/dist/temporal.module.js +84 -49
  46. package/dist/temporal.module.js.map +1 -1
  47. package/dist/temporal.service.d.ts +34 -26
  48. package/dist/temporal.service.js +76 -47
  49. package/dist/temporal.service.js.map +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/dist/worker/index.d.ts +1 -1
  52. package/dist/worker/index.js +1 -1
  53. package/dist/worker/index.js.map +1 -1
  54. package/dist/worker/temporal-metadata.accessor.d.ts +13 -5
  55. package/dist/worker/temporal-metadata.accessor.js +38 -26
  56. package/dist/worker/temporal-metadata.accessor.js.map +1 -1
  57. package/dist/worker/{worker-manager.service.d.ts → temporal-worker-manager.service.d.ts} +13 -4
  58. package/dist/worker/{worker-manager.service.js → temporal-worker-manager.service.js} +58 -22
  59. package/dist/worker/temporal-worker-manager.service.js.map +1 -0
  60. package/dist/worker/temporal-worker.module.d.ts +14 -4
  61. package/dist/worker/temporal-worker.module.js +81 -15
  62. package/dist/worker/temporal-worker.module.js.map +1 -1
  63. package/package.json +12 -6
  64. package/dist/decorators/communication.decorators.d.ts +0 -5
  65. package/dist/decorators/communication.decorators.js +0 -66
  66. package/dist/decorators/communication.decorators.js.map +0 -1
  67. package/dist/decorators/core.decorators.d.ts +0 -6
  68. package/dist/decorators/core.decorators.js +0 -87
  69. package/dist/decorators/core.decorators.js.map +0 -1
  70. package/dist/decorators/parameter.decorators.d.ts +0 -2
  71. package/dist/decorators/parameter.decorators.js +0 -29
  72. package/dist/decorators/parameter.decorators.js.map +0 -1
  73. package/dist/decorators/scheduling.decorators.js.map +0 -1
  74. package/dist/decorators/workflow-starter.decorator.d.ts +0 -2
  75. package/dist/decorators/workflow-starter.decorator.js +0 -14
  76. package/dist/decorators/workflow-starter.decorator.js.map +0 -1
  77. package/dist/discovery/schedule-manager.service.js.map +0 -1
  78. package/dist/discovery/workflow-discovery.service.js +0 -216
  79. package/dist/discovery/workflow-discovery.service.js.map +0 -1
  80. package/dist/interfaces/activity.interface.d.ts +0 -8
  81. package/dist/interfaces/activity.interface.js +0 -3
  82. package/dist/interfaces/activity.interface.js.map +0 -1
  83. package/dist/interfaces/core.interface.d.ts +0 -112
  84. package/dist/interfaces/core.interface.js +0 -3
  85. package/dist/interfaces/core.interface.js.map +0 -1
  86. package/dist/interfaces/discovery.interface.d.ts +0 -61
  87. package/dist/interfaces/discovery.interface.js +0 -3
  88. package/dist/interfaces/discovery.interface.js.map +0 -1
  89. package/dist/interfaces/index.d.ts +0 -9
  90. package/dist/interfaces/index.js +0 -29
  91. package/dist/interfaces/index.js.map +0 -1
  92. package/dist/interfaces/scheduling.interface.d.ts +0 -17
  93. package/dist/interfaces/scheduling.interface.js +0 -3
  94. package/dist/interfaces/scheduling.interface.js.map +0 -1
  95. package/dist/interfaces/worker.interface.d.ts +0 -23
  96. package/dist/interfaces/worker.interface.js +0 -3
  97. package/dist/interfaces/worker.interface.js.map +0 -1
  98. package/dist/interfaces/workflow.interface.d.ts +0 -55
  99. package/dist/interfaces/workflow.interface.js +0 -3
  100. package/dist/interfaces/workflow.interface.js.map +0 -1
  101. package/dist/worker/worker-manager.service.js.map +0 -1
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActivityMethod = exports.Activity = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const constants_1 = require("../constants");
6
+ const Activity = (options = {}) => {
7
+ return (target) => {
8
+ Reflect.defineMetadata(constants_1.TEMPORAL_ACTIVITY, options, target);
9
+ (0, common_1.SetMetadata)(constants_1.TEMPORAL_ACTIVITY, options)(target);
10
+ return target;
11
+ };
12
+ };
13
+ exports.Activity = Activity;
14
+ const ActivityMethod = (options) => {
15
+ return (_target, propertyKey, descriptor) => {
16
+ let methodName;
17
+ let methodOptions = {};
18
+ if (typeof options === 'string') {
19
+ methodName = options;
20
+ methodOptions = { name: options };
21
+ }
22
+ else if (options && typeof options === 'object') {
23
+ methodName = options.name || propertyKey.toString();
24
+ methodOptions = options;
25
+ }
26
+ else {
27
+ methodName = propertyKey.toString();
28
+ }
29
+ const metadata = {
30
+ name: methodName,
31
+ ...methodOptions,
32
+ };
33
+ Reflect.defineMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD, metadata, descriptor.value);
34
+ (0, common_1.SetMetadata)(constants_1.TEMPORAL_ACTIVITY_METHOD, metadata)(descriptor.value);
35
+ return descriptor;
36
+ };
37
+ };
38
+ exports.ActivityMethod = ActivityMethod;
39
+ //# sourceMappingURL=activity.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.decorator.js","sourceRoot":"","sources":["../../src/decorators/activity.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,4CAA2E;AAwBpE,MAAM,QAAQ,GAAG,CAAC,UAA2B,EAAE,EAAkB,EAAE;IACtE,OAAO,CAAC,MAAW,EAAE,EAAE;QACnB,OAAO,CAAC,cAAc,CAAC,6BAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAA,oBAAW,EAAC,6BAAiB,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB;AAqCK,MAAM,cAAc,GAAG,CAAC,OAAwC,EAAmB,EAAE;IACxF,OAAO,CAAC,OAAgB,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QAEtF,IAAI,UAAkB,CAAC;QACvB,IAAI,aAAa,GAA0B,EAAE,CAAC;QAE9C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,UAAU,GAAG,OAAO,CAAC;YACrB,aAAa,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChD,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YACpD,aAAa,GAAG,OAAO,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACxC,CAAC;QAGD,MAAM,QAAQ,GAAG;YACb,IAAI,EAAE,UAAU;YAChB,GAAG,aAAa;SACnB,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7E,IAAA,oBAAW,EAAC,oCAAwB,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAElE,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC,CAAC;AA3BW,QAAA,cAAc,kBA2BzB"}
@@ -1,5 +1,4 @@
1
- export * from './core.decorators';
2
- export * from './communication.decorators';
3
- export * from './scheduling.decorators';
4
- export * from './parameter.decorators';
5
- export * from './workflow-starter.decorator';
1
+ export { Activity, ActivityMethod } from './activity.decorator';
2
+ export { Signal, Query } from './workflow.decorator';
3
+ export { Scheduled, Cron, Interval } from './scheduling.decorator';
4
+ export { WorkflowParam, WorkflowContext, WorkflowId, RunId, TaskQueue, } from './parameter.decorator';
@@ -1,22 +1,20 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./core.decorators"), exports);
18
- __exportStar(require("./communication.decorators"), exports);
19
- __exportStar(require("./scheduling.decorators"), exports);
20
- __exportStar(require("./parameter.decorators"), exports);
21
- __exportStar(require("./workflow-starter.decorator"), exports);
3
+ exports.TaskQueue = exports.RunId = exports.WorkflowId = exports.WorkflowContext = exports.WorkflowParam = exports.Interval = exports.Cron = exports.Scheduled = exports.Query = exports.Signal = exports.ActivityMethod = exports.Activity = void 0;
4
+ var activity_decorator_1 = require("./activity.decorator");
5
+ Object.defineProperty(exports, "Activity", { enumerable: true, get: function () { return activity_decorator_1.Activity; } });
6
+ Object.defineProperty(exports, "ActivityMethod", { enumerable: true, get: function () { return activity_decorator_1.ActivityMethod; } });
7
+ var workflow_decorator_1 = require("./workflow.decorator");
8
+ Object.defineProperty(exports, "Signal", { enumerable: true, get: function () { return workflow_decorator_1.Signal; } });
9
+ Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return workflow_decorator_1.Query; } });
10
+ var scheduling_decorator_1 = require("./scheduling.decorator");
11
+ Object.defineProperty(exports, "Scheduled", { enumerable: true, get: function () { return scheduling_decorator_1.Scheduled; } });
12
+ Object.defineProperty(exports, "Cron", { enumerable: true, get: function () { return scheduling_decorator_1.Cron; } });
13
+ Object.defineProperty(exports, "Interval", { enumerable: true, get: function () { return scheduling_decorator_1.Interval; } });
14
+ var parameter_decorator_1 = require("./parameter.decorator");
15
+ Object.defineProperty(exports, "WorkflowParam", { enumerable: true, get: function () { return parameter_decorator_1.WorkflowParam; } });
16
+ Object.defineProperty(exports, "WorkflowContext", { enumerable: true, get: function () { return parameter_decorator_1.WorkflowContext; } });
17
+ Object.defineProperty(exports, "WorkflowId", { enumerable: true, get: function () { return parameter_decorator_1.WorkflowId; } });
18
+ Object.defineProperty(exports, "RunId", { enumerable: true, get: function () { return parameter_decorator_1.RunId; } });
19
+ Object.defineProperty(exports, "TaskQueue", { enumerable: true, get: function () { return parameter_decorator_1.TaskQueue; } });
22
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,oDAAkC;AAGlC,6DAA2C;AAG3C,0DAAwC;AAGxC,yDAAuC;AAGvC,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;AAaA,2DAAgE;AAAvD,8GAAA,QAAQ,OAAA;AAAE,oHAAA,cAAc,OAAA;AAKjC,2DAAqD;AAA5C,4GAAA,MAAM,OAAA;AAAE,2GAAA,KAAK,OAAA;AAKtB,+DAAmE;AAA1D,iHAAA,SAAS,OAAA;AAAE,4GAAA,IAAI,OAAA;AAAE,gHAAA,QAAQ,OAAA;AAKlC,6DAM+B;AAL3B,oHAAA,aAAa,OAAA;AACb,sHAAA,eAAe,OAAA;AACf,iHAAA,UAAU,OAAA;AACV,4GAAA,KAAK,OAAA;AACL,gHAAA,SAAS,OAAA"}
@@ -0,0 +1,7 @@
1
+ import { WorkflowParameterMetadata } from '../interfaces';
2
+ export declare const WorkflowParam: (...dataOrPipes: (number | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>> | undefined)[]) => ParameterDecorator;
3
+ export declare const WorkflowContext: () => ParameterDecorator;
4
+ export declare const WorkflowId: () => ParameterDecorator;
5
+ export declare const RunId: () => ParameterDecorator;
6
+ export declare const TaskQueue: () => ParameterDecorator;
7
+ export declare function getParameterMetadata(target: any, propertyKey: string | symbol): WorkflowParameterMetadata[];
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskQueue = exports.RunId = exports.WorkflowId = exports.WorkflowContext = exports.WorkflowParam = void 0;
4
+ exports.getParameterMetadata = getParameterMetadata;
5
+ const common_1 = require("@nestjs/common");
6
+ const constants_1 = require("../constants");
7
+ exports.WorkflowParam = (0, common_1.createParamDecorator)((index, ctx) => {
8
+ return (target, propertyKey, parameterIndex) => {
9
+ const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
10
+ existingParams[parameterIndex] = {
11
+ type: 'param',
12
+ index: index !== undefined ? index : parameterIndex,
13
+ extractAll: index === undefined,
14
+ };
15
+ Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
16
+ };
17
+ });
18
+ const WorkflowContext = () => {
19
+ return (target, propertyKey, parameterIndex) => {
20
+ if (!propertyKey)
21
+ return;
22
+ const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
23
+ existingParams[parameterIndex] = {
24
+ type: 'context',
25
+ };
26
+ Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
27
+ };
28
+ };
29
+ exports.WorkflowContext = WorkflowContext;
30
+ const WorkflowId = () => {
31
+ return (target, propertyKey, parameterIndex) => {
32
+ if (!propertyKey)
33
+ return;
34
+ const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
35
+ existingParams[parameterIndex] = {
36
+ type: 'workflowId',
37
+ };
38
+ Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
39
+ };
40
+ };
41
+ exports.WorkflowId = WorkflowId;
42
+ const RunId = () => {
43
+ return (target, propertyKey, parameterIndex) => {
44
+ if (!propertyKey)
45
+ return;
46
+ const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
47
+ existingParams[parameterIndex] = {
48
+ type: 'runId',
49
+ };
50
+ Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
51
+ };
52
+ };
53
+ exports.RunId = RunId;
54
+ const TaskQueue = () => {
55
+ return (target, propertyKey, parameterIndex) => {
56
+ if (!propertyKey)
57
+ return;
58
+ const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
59
+ existingParams[parameterIndex] = {
60
+ type: 'taskQueue',
61
+ };
62
+ Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
63
+ };
64
+ };
65
+ exports.TaskQueue = TaskQueue;
66
+ function getParameterMetadata(target, propertyKey) {
67
+ return Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
68
+ }
69
+ //# sourceMappingURL=parameter.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameter.decorator.js","sourceRoot":"","sources":["../../src/decorators/parameter.decorator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ScheduledOptions, CronOptions, IntervalOptions } from '../interfaces';
1
+ import { CronOptions, IntervalOptions, ScheduledOptions } from '../interfaces';
2
2
  export declare const Scheduled: (options: ScheduledOptions) => MethodDecorator;
3
3
  export declare const Cron: (cronExpression: string, options: CronOptions) => MethodDecorator;
4
4
  export declare const Interval: (interval: string, options: IntervalOptions) => MethodDecorator;
@@ -14,6 +14,12 @@ const Scheduled = (options) => {
14
14
  if (options.cron && options.interval) {
15
15
  throw new Error('@Scheduled cannot have both cron and interval');
16
16
  }
17
+ if (options.cron && !isValidCronExpression(options.cron)) {
18
+ throw new Error(`Invalid cron expression: ${options.cron}`);
19
+ }
20
+ if (options.interval && !isValidIntervalExpression(options.interval)) {
21
+ throw new Error(`Invalid interval expression: ${options.interval}`);
22
+ }
17
23
  Reflect.defineMetadata(constants_1.TEMPORAL_SCHEDULED_WORKFLOW, options, descriptor.value);
18
24
  (0, common_1.SetMetadata)(constants_1.TEMPORAL_SCHEDULED_WORKFLOW, options)(descriptor.value);
19
25
  return descriptor;
@@ -34,4 +40,21 @@ const Interval = (interval, options) => {
34
40
  });
35
41
  };
36
42
  exports.Interval = Interval;
37
- //# sourceMappingURL=scheduling.decorators.js.map
43
+ function isValidCronExpression(cron) {
44
+ if (!cron || typeof cron !== 'string') {
45
+ return false;
46
+ }
47
+ const parts = cron.trim().split(/\s+/);
48
+ if (parts.length !== 5 && parts.length !== 6) {
49
+ return false;
50
+ }
51
+ return parts.every((part) => part.length > 0 && part !== '');
52
+ }
53
+ function isValidIntervalExpression(interval) {
54
+ if (!interval || typeof interval !== 'string') {
55
+ return false;
56
+ }
57
+ const intervalPattern = /^\d+[smhd]$/;
58
+ return intervalPattern.test(interval.trim());
59
+ }
60
+ //# sourceMappingURL=scheduling.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduling.decorator.js","sourceRoot":"","sources":["../../src/decorators/scheduling.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,4CAA2D;AAkCpD,MAAM,SAAS,GAAG,CAAC,OAAyB,EAAmB,EAAE;IACpE,OAAO,CAAC,OAAgB,EAAE,YAA6B,EAAE,UAA8B,EAAE,EAAE;QAEvF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QAGD,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAGD,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,uCAA2B,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAA,oBAAW,EAAC,uCAA2B,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC,CAAC;AA7BW,QAAA,SAAS,aA6BpB;AAgCK,MAAM,IAAI,GAAG,CAAC,cAAsB,EAAE,OAAoB,EAAmB,EAAE;IAClF,OAAO,IAAA,iBAAS,EAAC;QACb,GAAG,OAAO;QACV,IAAI,EAAE,cAAc;KACvB,CAAC,CAAC;AACP,CAAC,CAAC;AALW,QAAA,IAAI,QAKf;AAgCK,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,OAAwB,EAAmB,EAAE;IACpF,OAAO,IAAA,iBAAS,EAAC;QACb,GAAG,OAAO;QACV,QAAQ;KACX,CAAC,CAAC;AACP,CAAC,CAAC;AALW,QAAA,QAAQ,YAKnB;AAUF,SAAS,qBAAqB,CAAC,IAAY;IACvC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAGvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;AACjE,CAAC;AAMD,SAAS,yBAAyB,CAAC,QAAgB;IAC/C,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,MAAM,eAAe,GAAG,aAAa,CAAC;IACtC,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { QueryOptions, SignalOptions } from '../interfaces';
2
+ export declare const Signal: (nameOrOptions?: string | SignalOptions) => MethodDecorator;
3
+ export declare const Query: (nameOrOptions?: string | QueryOptions) => MethodDecorator;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Query = exports.Signal = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const constants_1 = require("../constants");
6
+ const Signal = (nameOrOptions) => {
7
+ return (_target, propertyKey, descriptor) => {
8
+ let signalName;
9
+ let signalOptions = {};
10
+ if (typeof nameOrOptions === 'string') {
11
+ signalName = nameOrOptions;
12
+ signalOptions = { name: nameOrOptions };
13
+ }
14
+ else if (nameOrOptions?.name) {
15
+ signalName = nameOrOptions.name;
16
+ signalOptions = nameOrOptions;
17
+ }
18
+ else {
19
+ signalName = propertyKey.toString();
20
+ signalOptions = { name: signalName };
21
+ }
22
+ const metadata = {
23
+ name: signalName,
24
+ ...signalOptions,
25
+ };
26
+ Reflect.defineMetadata(constants_1.TEMPORAL_SIGNAL_METHOD, metadata, descriptor.value);
27
+ (0, common_1.SetMetadata)(constants_1.TEMPORAL_SIGNAL_METHOD, metadata)(descriptor.value);
28
+ return descriptor;
29
+ };
30
+ };
31
+ exports.Signal = Signal;
32
+ const Query = (nameOrOptions) => {
33
+ return (_target, propertyKey, descriptor) => {
34
+ let queryName;
35
+ let queryOptions = {};
36
+ if (typeof nameOrOptions === 'string') {
37
+ queryName = nameOrOptions;
38
+ queryOptions = { name: nameOrOptions };
39
+ }
40
+ else if (nameOrOptions?.name) {
41
+ queryName = nameOrOptions.name;
42
+ queryOptions = nameOrOptions;
43
+ }
44
+ else {
45
+ queryName = propertyKey.toString();
46
+ queryOptions = { name: queryName };
47
+ }
48
+ const metadata = {
49
+ name: queryName,
50
+ ...queryOptions,
51
+ };
52
+ Reflect.defineMetadata(constants_1.TEMPORAL_QUERY_METHOD, metadata, descriptor.value);
53
+ (0, common_1.SetMetadata)(constants_1.TEMPORAL_QUERY_METHOD, metadata)(descriptor.value);
54
+ return descriptor;
55
+ };
56
+ };
57
+ exports.Query = Query;
58
+ //# sourceMappingURL=workflow.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.decorator.js","sourceRoot":"","sources":["../../src/decorators/workflow.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,4CAA6E;AAsBtE,MAAM,MAAM,GAAG,CAAC,aAAsC,EAAmB,EAAE;IAC9E,OAAO,CAAC,OAAgB,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACtF,IAAI,UAAkB,CAAC;QACvB,IAAI,aAAa,GAAkB,EAAE,CAAC;QAEtC,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACpC,UAAU,GAAG,aAAa,CAAC;YAC3B,aAAa,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAC5C,CAAC;aAAM,IAAI,aAAa,EAAE,IAAI,EAAE,CAAC;YAC7B,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC;YAChC,aAAa,GAAG,aAAa,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACpC,aAAa,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,QAAQ,GAAG;YACb,IAAI,EAAE,UAAU;YAChB,GAAG,aAAa;SACnB,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,kCAAsB,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAA,oBAAW,EAAC,kCAAsB,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC,CAAC;AAzBW,QAAA,MAAM,UAyBjB;AAqBK,MAAM,KAAK,GAAG,CAAC,aAAqC,EAAmB,EAAE;IAC5E,OAAO,CAAC,OAAgB,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACtF,IAAI,SAAiB,CAAC;QACtB,IAAI,YAAY,GAAiB,EAAE,CAAC;QAEpC,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACpC,SAAS,GAAG,aAAa,CAAC;YAC1B,YAAY,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAC3C,CAAC;aAAM,IAAI,aAAa,EAAE,IAAI,EAAE,CAAC;YAC7B,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC;YAC/B,YAAY,GAAG,aAAa,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACnC,YAAY,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG;YACb,IAAI,EAAE,SAAS;YACf,GAAG,YAAY;SAClB,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAA,oBAAW,EAAC,iCAAqB,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/D,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC,CAAC;AAzBW,QAAA,KAAK,SAyBhB"}
@@ -1,2 +1,2 @@
1
- export * from './workflow-discovery.service';
2
- export * from './schedule-manager.service';
1
+ export * from './temporal-discovery.service';
2
+ export * from './temporal-schedule-manager.service';
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./workflow-discovery.service"), exports);
18
- __exportStar(require("./schedule-manager.service"), exports);
17
+ __exportStar(require("./temporal-discovery.service"), exports);
18
+ __exportStar(require("./temporal-schedule-manager.service"), exports);
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,+DAA6C;AAC7C,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,+DAA6C;AAC7C,sEAAoD"}
@@ -1,36 +1,39 @@
1
1
  import { OnModuleInit } from '@nestjs/common';
2
2
  import { DiscoveryService, MetadataScanner } from '@nestjs/core';
3
- import { WorkflowControllerInfo, WorkflowMethodInfo, ScheduledMethodInfo, DiscoveryStats } from '../interfaces';
4
- export declare class WorkflowDiscoveryService implements OnModuleInit {
3
+ import { DiscoveryStats, QueryMethodInfo, ScheduledMethodInfo, SignalMethodInfo } from '../interfaces';
4
+ export declare class TemporalDiscoveryService implements OnModuleInit {
5
5
  private readonly discoveryService;
6
6
  private readonly metadataScanner;
7
7
  private readonly logger;
8
- private readonly workflowControllers;
9
8
  private readonly scheduledWorkflows;
10
- private readonly workflowMethods;
9
+ private readonly signals;
10
+ private readonly queries;
11
11
  constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner);
12
12
  onModuleInit(): Promise<void>;
13
- private discoverWorkflowControllers;
13
+ private discoverComponents;
14
14
  private processWrapper;
15
- private discoverControllerMethods;
16
- private processMethod;
17
- private createWorkflowMethodInfo;
15
+ private discoverMethods;
16
+ private categorizeMethod;
18
17
  private createScheduledMethodInfo;
19
18
  private createSignalMethodInfo;
20
19
  private createQueryMethodInfo;
21
- private indexWorkflowMethods;
22
- private indexScheduledWorkflows;
23
- private logDiscoveryResults;
24
- private logControllerDetails;
25
- private getDiscoveryStats;
26
- getWorkflowControllers(): WorkflowControllerInfo[];
27
20
  getScheduledWorkflows(): ScheduledMethodInfo[];
28
- getWorkflowController(name: string): WorkflowControllerInfo | undefined;
29
- getWorkflowMethod(workflowName: string): WorkflowMethodInfo | undefined;
30
21
  getScheduledWorkflow(scheduleId: string): ScheduledMethodInfo | undefined;
31
- getWorkflowNames(): string[];
32
22
  getScheduleIds(): string[];
33
- hasWorkflow(workflowName: string): boolean;
34
23
  hasSchedule(scheduleId: string): boolean;
24
+ getSignals(): SignalMethodInfo[];
25
+ getSignal(signalName: string): SignalMethodInfo | undefined;
26
+ getQueries(): QueryMethodInfo[];
27
+ getQuery(queryName: string): QueryMethodInfo | undefined;
35
28
  getStats(): DiscoveryStats;
29
+ getHealthStatus(): {
30
+ status: 'healthy' | 'degraded';
31
+ discoveredItems: DiscoveryStats;
32
+ lastDiscovery: Date | null;
33
+ };
34
+ getWorkflowControllers(): any[];
35
+ getWorkflowMethod(workflowName: string): any;
36
+ getWorkflowNames(): string[];
37
+ hasWorkflow(workflowName: string): boolean;
38
+ private logDiscoveryResults;
36
39
  }
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var TemporalDiscoveryService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.TemporalDiscoveryService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const core_1 = require("@nestjs/core");
16
+ const constants_1 = require("../constants");
17
+ let TemporalDiscoveryService = TemporalDiscoveryService_1 = class TemporalDiscoveryService {
18
+ constructor(discoveryService, metadataScanner) {
19
+ this.discoveryService = discoveryService;
20
+ this.metadataScanner = metadataScanner;
21
+ this.logger = new common_1.Logger(TemporalDiscoveryService_1.name);
22
+ this.scheduledWorkflows = new Map();
23
+ this.signals = new Map();
24
+ this.queries = new Map();
25
+ }
26
+ async onModuleInit() {
27
+ await this.discoverComponents();
28
+ }
29
+ async discoverComponents() {
30
+ const allWrappers = [
31
+ ...this.discoveryService.getProviders(),
32
+ ...this.discoveryService.getControllers(),
33
+ ];
34
+ for (const wrapper of allWrappers) {
35
+ await this.processWrapper(wrapper);
36
+ }
37
+ this.logDiscoveryResults();
38
+ }
39
+ async processWrapper(wrapper) {
40
+ const { instance, metatype } = wrapper;
41
+ if (!instance || !metatype) {
42
+ return;
43
+ }
44
+ this.logger.debug(`Processing wrapper: ${metatype.name}`);
45
+ await this.discoverMethods(instance);
46
+ }
47
+ async discoverMethods(instance) {
48
+ const prototype = Object.getPrototypeOf(instance);
49
+ const methodNames = this.metadataScanner
50
+ .scanFromPrototype(instance, prototype, (methodName) => methodName !== 'constructor' ? methodName : null)
51
+ .filter((methodName) => Boolean(methodName));
52
+ for (const methodName of methodNames) {
53
+ const method = prototype[methodName];
54
+ if (!method || typeof method !== 'function') {
55
+ continue;
56
+ }
57
+ this.categorizeMethod(instance, methodName, method);
58
+ }
59
+ }
60
+ categorizeMethod(instance, methodName, method) {
61
+ const boundMethod = method.bind(instance);
62
+ const scheduleMetadata = Reflect.getMetadata(constants_1.TEMPORAL_SCHEDULED_WORKFLOW, method);
63
+ if (scheduleMetadata) {
64
+ const scheduledInfo = this.createScheduledMethodInfo(methodName, scheduleMetadata, boundMethod, instance);
65
+ this.scheduledWorkflows.set(scheduleMetadata.scheduleId, scheduledInfo);
66
+ }
67
+ const signalMetadata = Reflect.getMetadata(constants_1.TEMPORAL_SIGNAL_METHOD, method);
68
+ if (signalMetadata) {
69
+ const signalInfo = this.createSignalMethodInfo(methodName, signalMetadata, boundMethod);
70
+ this.signals.set(signalMetadata.name || methodName, signalInfo);
71
+ }
72
+ const queryMetadata = Reflect.getMetadata(constants_1.TEMPORAL_QUERY_METHOD, method);
73
+ if (queryMetadata) {
74
+ const queryInfo = this.createQueryMethodInfo(methodName, queryMetadata, boundMethod);
75
+ this.queries.set(queryMetadata.name || methodName, queryInfo);
76
+ }
77
+ }
78
+ createScheduledMethodInfo(methodName, scheduleMetadata, boundMethod, instance) {
79
+ return {
80
+ methodName,
81
+ workflowName: scheduleMetadata.workflowName || methodName,
82
+ scheduleOptions: scheduleMetadata,
83
+ workflowOptions: {},
84
+ handler: boundMethod,
85
+ controllerInfo: {
86
+ instance,
87
+ metatype: instance.constructor,
88
+ taskQueue: undefined,
89
+ methods: [],
90
+ signals: [],
91
+ queries: [],
92
+ scheduledMethods: [],
93
+ },
94
+ };
95
+ }
96
+ createSignalMethodInfo(methodName, metadata, boundMethod) {
97
+ return {
98
+ methodName,
99
+ signalName: metadata.name || methodName,
100
+ options: metadata,
101
+ handler: boundMethod,
102
+ };
103
+ }
104
+ createQueryMethodInfo(methodName, metadata, boundMethod) {
105
+ return {
106
+ methodName,
107
+ queryName: metadata.name || methodName,
108
+ options: metadata,
109
+ handler: boundMethod,
110
+ };
111
+ }
112
+ getScheduledWorkflows() {
113
+ return Array.from(this.scheduledWorkflows.values());
114
+ }
115
+ getScheduledWorkflow(scheduleId) {
116
+ return this.scheduledWorkflows.get(scheduleId);
117
+ }
118
+ getScheduleIds() {
119
+ return Array.from(this.scheduledWorkflows.keys());
120
+ }
121
+ hasSchedule(scheduleId) {
122
+ return this.scheduledWorkflows.has(scheduleId);
123
+ }
124
+ getSignals() {
125
+ return Array.from(this.signals.values());
126
+ }
127
+ getSignal(signalName) {
128
+ return this.signals.get(signalName);
129
+ }
130
+ getQueries() {
131
+ return Array.from(this.queries.values());
132
+ }
133
+ getQuery(queryName) {
134
+ return this.queries.get(queryName);
135
+ }
136
+ getStats() {
137
+ return {
138
+ controllers: 0,
139
+ methods: 0,
140
+ scheduled: this.scheduledWorkflows.size,
141
+ signals: this.signals.size,
142
+ queries: this.queries.size,
143
+ };
144
+ }
145
+ getHealthStatus() {
146
+ const stats = this.getStats();
147
+ const status = stats.scheduled > 0 || stats.signals > 0 || stats.queries > 0 ? 'healthy' : 'degraded';
148
+ return {
149
+ status,
150
+ discoveredItems: stats,
151
+ lastDiscovery: new Date(),
152
+ };
153
+ }
154
+ getWorkflowControllers() {
155
+ this.logger.warn('getWorkflowControllers() is deprecated - workflow controllers are no longer supported');
156
+ return [];
157
+ }
158
+ getWorkflowMethod(workflowName) {
159
+ this.logger.warn('getWorkflowMethod() is deprecated - workflow methods are no longer supported');
160
+ return undefined;
161
+ }
162
+ getWorkflowNames() {
163
+ this.logger.warn('getWorkflowNames() is deprecated - workflow names are no longer supported');
164
+ return [];
165
+ }
166
+ hasWorkflow(workflowName) {
167
+ this.logger.warn('hasWorkflow() is deprecated - workflow existence check is no longer supported');
168
+ return false;
169
+ }
170
+ logDiscoveryResults() {
171
+ const stats = this.getStats();
172
+ this.logger.log(`Discovery completed: ${stats.scheduled} scheduled workflows, ${stats.signals} signals, ${stats.queries} queries`);
173
+ if (stats.scheduled > 0) {
174
+ this.logger.debug(`Discovered scheduled workflows: ${Array.from(this.scheduledWorkflows.keys()).join(', ')}`);
175
+ }
176
+ if (stats.signals > 0) {
177
+ this.logger.debug(`Discovered signals: ${Array.from(this.signals.keys()).join(', ')}`);
178
+ }
179
+ if (stats.queries > 0) {
180
+ this.logger.debug(`Discovered queries: ${Array.from(this.queries.keys()).join(', ')}`);
181
+ }
182
+ }
183
+ };
184
+ exports.TemporalDiscoveryService = TemporalDiscoveryService;
185
+ exports.TemporalDiscoveryService = TemporalDiscoveryService = TemporalDiscoveryService_1 = __decorate([
186
+ (0, common_1.Injectable)(),
187
+ __metadata("design:paramtypes", [core_1.DiscoveryService,
188
+ core_1.MetadataScanner])
189
+ ], TemporalDiscoveryService);
190
+ //# sourceMappingURL=temporal-discovery.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporal-discovery.service.js","sourceRoot":"","sources":["../../src/discovery/temporal-discovery.service.ts"],"names":[],"mappings":"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"}