nestjs-temporal-core 3.0.10 → 3.0.12

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 (123) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/README.md +1755 -693
  3. package/dist/constants.d.ts +49 -151
  4. package/dist/constants.js +38 -141
  5. package/dist/constants.js.map +1 -1
  6. package/dist/decorators/activity.decorator.js +75 -15
  7. package/dist/decorators/activity.decorator.js.map +1 -1
  8. package/dist/decorators/index.d.ts +1 -3
  9. package/dist/decorators/index.js +4 -13
  10. package/dist/decorators/index.js.map +1 -1
  11. package/dist/decorators/workflow.decorator.d.ts +7 -3
  12. package/dist/decorators/workflow.decorator.js +161 -48
  13. package/dist/decorators/workflow.decorator.js.map +1 -1
  14. package/dist/health/temporal-health.controller.d.ts +7 -0
  15. package/dist/health/temporal-health.controller.js +77 -0
  16. package/dist/health/temporal-health.controller.js.map +1 -0
  17. package/dist/health/temporal-health.module.d.ts +2 -0
  18. package/dist/health/temporal-health.module.js +20 -0
  19. package/dist/health/temporal-health.module.js.map +1 -0
  20. package/dist/index.d.ts +10 -20
  21. package/dist/index.js +15 -30
  22. package/dist/index.js.map +1 -1
  23. package/dist/interfaces.d.ts +773 -160
  24. package/dist/interfaces.js +1 -2
  25. package/dist/interfaces.js.map +1 -1
  26. package/dist/providers/temporal-connection.factory.d.ts +28 -0
  27. package/dist/providers/temporal-connection.factory.js +194 -0
  28. package/dist/providers/temporal-connection.factory.js.map +1 -0
  29. package/dist/services/temporal-client.service.d.ts +33 -0
  30. package/dist/services/temporal-client.service.js +285 -0
  31. package/dist/services/temporal-client.service.js.map +1 -0
  32. package/dist/services/temporal-discovery.service.d.ts +34 -0
  33. package/dist/services/temporal-discovery.service.js +348 -0
  34. package/dist/services/temporal-discovery.service.js.map +1 -0
  35. package/dist/services/temporal-metadata.service.d.ts +37 -0
  36. package/dist/services/temporal-metadata.service.js +512 -0
  37. package/dist/services/temporal-metadata.service.js.map +1 -0
  38. package/dist/services/temporal-schedule.service.d.ts +35 -0
  39. package/dist/services/temporal-schedule.service.js +380 -0
  40. package/dist/services/temporal-schedule.service.js.map +1 -0
  41. package/dist/services/temporal-worker.service.d.ts +67 -0
  42. package/dist/services/temporal-worker.service.js +845 -0
  43. package/dist/services/temporal-worker.service.js.map +1 -0
  44. package/dist/services/temporal.service.d.ts +92 -0
  45. package/dist/services/temporal.service.js +621 -0
  46. package/dist/services/temporal.service.js.map +1 -0
  47. package/dist/temporal.module.d.ts +6 -9
  48. package/dist/temporal.module.js +160 -109
  49. package/dist/temporal.module.js.map +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/dist/utils/index.d.ts +2 -2
  52. package/dist/utils/index.js +5 -8
  53. package/dist/utils/index.js.map +1 -1
  54. package/dist/utils/logger.d.ts +10 -4
  55. package/dist/utils/logger.js +77 -106
  56. package/dist/utils/logger.js.map +1 -1
  57. package/dist/utils/metadata.d.ts +1 -3
  58. package/dist/utils/metadata.js +8 -18
  59. package/dist/utils/metadata.js.map +1 -1
  60. package/dist/utils/validation.d.ts +16 -2
  61. package/dist/utils/validation.js +103 -9
  62. package/dist/utils/validation.js.map +1 -1
  63. package/package.json +37 -26
  64. package/dist/activity/index.d.ts +0 -2
  65. package/dist/activity/index.js +0 -19
  66. package/dist/activity/index.js.map +0 -1
  67. package/dist/activity/temporal-activity.module.d.ts +0 -11
  68. package/dist/activity/temporal-activity.module.js +0 -52
  69. package/dist/activity/temporal-activity.module.js.map +0 -1
  70. package/dist/activity/temporal-activity.service.d.ts +0 -46
  71. package/dist/activity/temporal-activity.service.js +0 -192
  72. package/dist/activity/temporal-activity.service.js.map +0 -1
  73. package/dist/client/index.d.ts +0 -3
  74. package/dist/client/index.js +0 -20
  75. package/dist/client/index.js.map +0 -1
  76. package/dist/client/temporal-client.module.d.ts +0 -18
  77. package/dist/client/temporal-client.module.js +0 -198
  78. package/dist/client/temporal-client.module.js.map +0 -1
  79. package/dist/client/temporal-client.service.d.ts +0 -35
  80. package/dist/client/temporal-client.service.js +0 -187
  81. package/dist/client/temporal-client.service.js.map +0 -1
  82. package/dist/client/temporal-schedule.service.d.ts +0 -41
  83. package/dist/client/temporal-schedule.service.js +0 -204
  84. package/dist/client/temporal-schedule.service.js.map +0 -1
  85. package/dist/decorators/parameter.decorator.d.ts +0 -5
  86. package/dist/decorators/parameter.decorator.js +0 -57
  87. package/dist/decorators/parameter.decorator.js.map +0 -1
  88. package/dist/decorators/scheduling.decorator.d.ts +0 -4
  89. package/dist/decorators/scheduling.decorator.js +0 -44
  90. package/dist/decorators/scheduling.decorator.js.map +0 -1
  91. package/dist/discovery/index.d.ts +0 -2
  92. package/dist/discovery/index.js +0 -19
  93. package/dist/discovery/index.js.map +0 -1
  94. package/dist/discovery/temporal-discovery.service.d.ts +0 -39
  95. package/dist/discovery/temporal-discovery.service.js +0 -191
  96. package/dist/discovery/temporal-discovery.service.js.map +0 -1
  97. package/dist/discovery/temporal-schedule-manager.service.d.ts +0 -41
  98. package/dist/discovery/temporal-schedule-manager.service.js +0 -238
  99. package/dist/discovery/temporal-schedule-manager.service.js.map +0 -1
  100. package/dist/schedules/index.d.ts +0 -2
  101. package/dist/schedules/index.js +0 -19
  102. package/dist/schedules/index.js.map +0 -1
  103. package/dist/schedules/temporal-schedules.module.d.ts +0 -11
  104. package/dist/schedules/temporal-schedules.module.js +0 -55
  105. package/dist/schedules/temporal-schedules.module.js.map +0 -1
  106. package/dist/schedules/temporal-schedules.service.d.ts +0 -52
  107. package/dist/schedules/temporal-schedules.service.js +0 -221
  108. package/dist/schedules/temporal-schedules.service.js.map +0 -1
  109. package/dist/temporal.service.d.ts +0 -77
  110. package/dist/temporal.service.js +0 -243
  111. package/dist/temporal.service.js.map +0 -1
  112. package/dist/worker/index.d.ts +0 -3
  113. package/dist/worker/index.js +0 -20
  114. package/dist/worker/index.js.map +0 -1
  115. package/dist/worker/temporal-metadata.accessor.d.ts +0 -32
  116. package/dist/worker/temporal-metadata.accessor.js +0 -208
  117. package/dist/worker/temporal-metadata.accessor.js.map +0 -1
  118. package/dist/worker/temporal-worker-manager.service.d.ts +0 -49
  119. package/dist/worker/temporal-worker-manager.service.js +0 -389
  120. package/dist/worker/temporal-worker-manager.service.js.map +0 -1
  121. package/dist/worker/temporal-worker.module.d.ts +0 -18
  122. package/dist/worker/temporal-worker.module.js +0 -156
  123. package/dist/worker/temporal-worker.module.js.map +0 -1
@@ -1,204 +0,0 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var TemporalScheduleService_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.TemporalScheduleService = void 0;
17
- const common_1 = require("@nestjs/common");
18
- const constants_1 = require("../constants");
19
- const logger_1 = require("../utils/logger");
20
- let TemporalScheduleService = TemporalScheduleService_1 = class TemporalScheduleService {
21
- constructor(client, options) {
22
- this.client = client;
23
- this.options = options;
24
- this.scheduleClient = null;
25
- this.logger = (0, logger_1.createLogger)(TemporalScheduleService_1.name);
26
- }
27
- async onModuleInit() {
28
- if (!this.client) {
29
- this.logger.warn('Temporal client not initialized - schedule features will be unavailable');
30
- return;
31
- }
32
- try {
33
- if (typeof this.client.schedule === 'undefined') {
34
- this.logger.warn('Schedule client not available in this Temporal SDK version');
35
- return;
36
- }
37
- this.scheduleClient = this.client.schedule;
38
- this.logger.log('Temporal schedule client initialized');
39
- }
40
- catch (error) {
41
- this.logger.error('Failed to initialize schedule client', error);
42
- }
43
- }
44
- async createCronSchedule(scheduleId, workflowType, cronExpression, taskQueue, args = [], options) {
45
- this.ensureClientInitialized();
46
- try {
47
- const scheduleSpec = {
48
- cronExpressions: [cronExpression],
49
- ...(options?.timezone && { timeZone: options.timezone }),
50
- };
51
- const handle = await this.scheduleClient.create({
52
- scheduleId,
53
- spec: scheduleSpec,
54
- action: {
55
- type: 'startWorkflow',
56
- workflowType,
57
- taskQueue,
58
- args,
59
- workflowId: this.generateScheduledWorkflowId(scheduleId),
60
- },
61
- ...(options?.description && { memo: { description: options.description } }),
62
- policies: {
63
- ...(options?.overlapPolicy && { overlap: options.overlapPolicy }),
64
- },
65
- state: {
66
- paused: options?.startPaused || false,
67
- },
68
- });
69
- this.logger.log(`Created cron schedule: ${scheduleId} -> ${workflowType} (${cronExpression})${options?.timezone ? ` in ${options.timezone}` : ''}`);
70
- return handle;
71
- }
72
- catch (error) {
73
- const errorMsg = `Failed to create cron schedule '${scheduleId}': ${error.message}`;
74
- this.logger.error(errorMsg);
75
- throw new Error(errorMsg);
76
- }
77
- }
78
- async createIntervalSchedule(scheduleId, workflowType, interval, taskQueue, args = [], options) {
79
- this.ensureClientInitialized();
80
- try {
81
- const handle = await this.scheduleClient.create({
82
- scheduleId,
83
- spec: {
84
- intervals: [{ every: interval }],
85
- },
86
- action: {
87
- type: 'startWorkflow',
88
- workflowType,
89
- taskQueue,
90
- args,
91
- workflowId: this.generateScheduledWorkflowId(scheduleId),
92
- },
93
- ...(options?.description && { memo: { description: options.description } }),
94
- policies: {
95
- ...(options?.overlapPolicy && { overlap: options.overlapPolicy }),
96
- },
97
- state: {
98
- paused: options?.startPaused || false,
99
- },
100
- });
101
- this.logger.log(`Created interval schedule: ${scheduleId} -> ${workflowType} (${interval})`);
102
- return handle;
103
- }
104
- catch (error) {
105
- const errorMsg = `Failed to create interval schedule '${scheduleId}': ${error.message}`;
106
- this.logger.error(errorMsg);
107
- throw new Error(errorMsg);
108
- }
109
- }
110
- async pauseSchedule(scheduleId, note) {
111
- await this.executeScheduleOperation(scheduleId, 'pause', (handle) => handle.pause(note || 'Paused via NestJS Temporal integration'));
112
- }
113
- async resumeSchedule(scheduleId, note) {
114
- await this.executeScheduleOperation(scheduleId, 'resume', (handle) => handle.unpause(note || 'Resumed via NestJS Temporal integration'));
115
- }
116
- async deleteSchedule(scheduleId) {
117
- await this.executeScheduleOperation(scheduleId, 'delete', (handle) => handle.delete());
118
- }
119
- async triggerSchedule(scheduleId, overlapPolicy = 'ALLOW_ALL') {
120
- await this.executeScheduleOperation(scheduleId, 'trigger', (handle) => handle.trigger(overlapPolicy));
121
- }
122
- async updateSchedule(scheduleId, updateFn) {
123
- await this.executeScheduleOperation(scheduleId, 'update', (handle) => handle.update(updateFn));
124
- }
125
- async listSchedules(pageSize = 100) {
126
- this.ensureClientInitialized();
127
- try {
128
- const schedules = [];
129
- for await (const schedule of this.scheduleClient.list({ pageSize })) {
130
- schedules.push(schedule);
131
- }
132
- return schedules;
133
- }
134
- catch (error) {
135
- const errorMsg = `Failed to list schedules: ${error.message}`;
136
- this.logger.error(errorMsg);
137
- throw new Error(errorMsg);
138
- }
139
- }
140
- async describeSchedule(scheduleId) {
141
- this.ensureClientInitialized();
142
- try {
143
- const handle = await this.scheduleClient.getHandle(scheduleId);
144
- return await handle.describe();
145
- }
146
- catch (error) {
147
- const errorMsg = `Failed to describe schedule '${scheduleId}': ${error.message}`;
148
- this.logger.error(errorMsg);
149
- throw new Error(errorMsg);
150
- }
151
- }
152
- async scheduleExists(scheduleId) {
153
- try {
154
- const schedules = await this.listSchedules();
155
- return schedules.some((s) => s.scheduleId === scheduleId);
156
- }
157
- catch (error) {
158
- this.logger.warn(`Failed to check if schedule exists: ${error.message}`);
159
- return false;
160
- }
161
- }
162
- getScheduleClient() {
163
- return this.scheduleClient;
164
- }
165
- isHealthy() {
166
- return Boolean(this.scheduleClient);
167
- }
168
- getStatus() {
169
- return {
170
- available: Boolean(this.client),
171
- healthy: this.isHealthy(),
172
- schedulesSupported: Boolean(this.scheduleClient),
173
- };
174
- }
175
- async executeScheduleOperation(scheduleId, operation, action) {
176
- this.ensureClientInitialized();
177
- try {
178
- const handle = await this.scheduleClient.getHandle(scheduleId);
179
- await action(handle);
180
- this.logger.log(`Successfully ${operation}d schedule: ${scheduleId}`);
181
- }
182
- catch (error) {
183
- const errorMsg = `Failed to ${operation} schedule '${scheduleId}': ${error.message}`;
184
- this.logger.error(errorMsg);
185
- throw new Error(errorMsg);
186
- }
187
- }
188
- ensureClientInitialized() {
189
- if (!this.scheduleClient) {
190
- throw new Error(constants_1.ERRORS.SCHEDULE_CLIENT_NOT_INITIALIZED);
191
- }
192
- }
193
- generateScheduledWorkflowId(scheduleId) {
194
- return `${scheduleId}-${Date.now()}`;
195
- }
196
- };
197
- exports.TemporalScheduleService = TemporalScheduleService;
198
- exports.TemporalScheduleService = TemporalScheduleService = TemporalScheduleService_1 = __decorate([
199
- (0, common_1.Injectable)(),
200
- __param(0, (0, common_1.Inject)(constants_1.TEMPORAL_CLIENT)),
201
- __param(1, (0, common_1.Inject)(constants_1.TEMPORAL_MODULE_OPTIONS)),
202
- __metadata("design:paramtypes", [Object, Object])
203
- ], TemporalScheduleService);
204
- //# sourceMappingURL=temporal-schedule.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"temporal-schedule.service.js","sourceRoot":"","sources":["../../src/client/temporal-schedule.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export declare const WorkflowParam: (...dataOrPipes: (number | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>> | undefined)[]) => ParameterDecorator;
2
- export declare const WorkflowContext: () => ParameterDecorator;
3
- export declare const WorkflowId: () => ParameterDecorator;
4
- export declare const RunId: () => ParameterDecorator;
5
- export declare const TaskQueue: () => ParameterDecorator;
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TaskQueue = exports.RunId = exports.WorkflowId = exports.WorkflowContext = exports.WorkflowParam = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const constants_1 = require("../constants");
6
- exports.WorkflowParam = (0, common_1.createParamDecorator)((_index, _ctx) => {
7
- return undefined;
8
- });
9
- const WorkflowContext = () => {
10
- return (target, propertyKey, parameterIndex) => {
11
- if (!propertyKey)
12
- return;
13
- const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
14
- existingParams[parameterIndex] = {
15
- type: 'context',
16
- };
17
- Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
18
- };
19
- };
20
- exports.WorkflowContext = WorkflowContext;
21
- const WorkflowId = () => {
22
- return (target, propertyKey, parameterIndex) => {
23
- if (!propertyKey)
24
- return;
25
- const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
26
- existingParams[parameterIndex] = {
27
- type: 'workflowId',
28
- };
29
- Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
30
- };
31
- };
32
- exports.WorkflowId = WorkflowId;
33
- const RunId = () => {
34
- return (target, propertyKey, parameterIndex) => {
35
- if (!propertyKey)
36
- return;
37
- const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
38
- existingParams[parameterIndex] = {
39
- type: 'runId',
40
- };
41
- Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
42
- };
43
- };
44
- exports.RunId = RunId;
45
- const TaskQueue = () => {
46
- return (target, propertyKey, parameterIndex) => {
47
- if (!propertyKey)
48
- return;
49
- const existingParams = Reflect.getMetadata(constants_1.WORKFLOW_PARAMS_METADATA, target, propertyKey) || [];
50
- existingParams[parameterIndex] = {
51
- type: 'taskQueue',
52
- };
53
- Reflect.defineMetadata(constants_1.WORKFLOW_PARAMS_METADATA, existingParams, target, propertyKey);
54
- };
55
- };
56
- exports.TaskQueue = TaskQueue;
57
- //# sourceMappingURL=parameter.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parameter.decorator.js","sourceRoot":"","sources":["../../src/decorators/parameter.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AACxE,4CAAwD;AAgC3C,QAAA,aAAa,GAAG,IAAA,6BAAoB,EAC7C,CAAC,MAA0B,EAAE,IAAsB,EAAE,EAAE;IAGnD,OAAO,SAAS,CAAC;AACrB,CAAC,CACJ,CAAC;AA+BK,MAAM,eAAe,GAAG,GAAuB,EAAE;IACpD,OAAO,CAAC,MAAc,EAAE,WAAwC,EAAE,cAAsB,EAAE,EAAE;QACxF,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,cAAc,GAChB,OAAO,CAAC,WAAW,CAAC,oCAAwB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7E,cAAc,CAAC,cAAc,CAAC,GAAG;YAC7B,IAAI,EAAE,SAAS;SAClB,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC,CAAC;AACN,CAAC,CAAC;AAXW,QAAA,eAAe,mBAW1B;AAmBK,MAAM,UAAU,GAAG,GAAuB,EAAE;IAC/C,OAAO,CAAC,MAAc,EAAE,WAAwC,EAAE,cAAsB,EAAE,EAAE;QACxF,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,cAAc,GAChB,OAAO,CAAC,WAAW,CAAC,oCAAwB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7E,cAAc,CAAC,cAAc,CAAC,GAAG;YAC7B,IAAI,EAAE,YAAY;SACrB,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC,CAAC;AACN,CAAC,CAAC;AAXW,QAAA,UAAU,cAWrB;AAmBK,MAAM,KAAK,GAAG,GAAuB,EAAE;IAC1C,OAAO,CAAC,MAAc,EAAE,WAAwC,EAAE,cAAsB,EAAE,EAAE;QACxF,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,cAAc,GAChB,OAAO,CAAC,WAAW,CAAC,oCAAwB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7E,cAAc,CAAC,cAAc,CAAC,GAAG;YAC7B,IAAI,EAAE,OAAO;SAChB,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC,CAAC;AACN,CAAC,CAAC;AAXW,QAAA,KAAK,SAWhB;AAmBK,MAAM,SAAS,GAAG,GAAuB,EAAE;IAC9C,OAAO,CAAC,MAAc,EAAE,WAAwC,EAAE,cAAsB,EAAE,EAAE;QACxF,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,cAAc,GAChB,OAAO,CAAC,WAAW,CAAC,oCAAwB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7E,cAAc,CAAC,cAAc,CAAC,GAAG;YAC7B,IAAI,EAAE,WAAW;SACpB,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC,CAAC;AACN,CAAC,CAAC;AAXW,QAAA,SAAS,aAWpB"}
@@ -1,4 +0,0 @@
1
- import { CronOptions, IntervalOptions, ScheduledOptions } from '../interfaces';
2
- export declare const Scheduled: (options: ScheduledOptions) => MethodDecorator;
3
- export declare const Cron: (cronExpression: string, options: CronOptions) => MethodDecorator;
4
- export declare const Interval: (interval: string, options: IntervalOptions) => MethodDecorator;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Interval = exports.Cron = exports.Scheduled = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const constants_1 = require("../constants");
6
- const utils_1 = require("../utils");
7
- const Scheduled = (options) => {
8
- return (_target, _propertyKey, descriptor) => {
9
- if (!options.scheduleId) {
10
- throw new Error('@Scheduled requires scheduleId');
11
- }
12
- if (!options.cron && !options.interval) {
13
- throw new Error('@Scheduled requires either cron or interval');
14
- }
15
- if (options.cron && options.interval) {
16
- throw new Error('@Scheduled cannot have both cron and interval');
17
- }
18
- if (options.cron && !(0, utils_1.isValidCronExpression)(options.cron)) {
19
- throw new Error(`Invalid cron expression: ${options.cron}`);
20
- }
21
- if (options.interval && !(0, utils_1.isValidIntervalExpression)(options.interval)) {
22
- throw new Error(`Invalid interval expression: ${options.interval}`);
23
- }
24
- Reflect.defineMetadata(constants_1.TEMPORAL_SCHEDULED_WORKFLOW, options, descriptor.value);
25
- (0, common_1.SetMetadata)(constants_1.TEMPORAL_SCHEDULED_WORKFLOW, options)(descriptor.value);
26
- return descriptor;
27
- };
28
- };
29
- exports.Scheduled = Scheduled;
30
- const Cron = (cronExpression, options) => {
31
- return (0, exports.Scheduled)({
32
- ...options,
33
- cron: cronExpression,
34
- });
35
- };
36
- exports.Cron = Cron;
37
- const Interval = (interval, options) => {
38
- return (0, exports.Scheduled)({
39
- ...options,
40
- interval,
41
- });
42
- };
43
- exports.Interval = Interval;
44
- //# sourceMappingURL=scheduling.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheduling.decorator.js","sourceRoot":"","sources":["../../src/decorators/scheduling.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,4CAA2D;AAE3D,oCAA4E;AAiCrE,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,IAAA,6BAAqB,EAAC,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,IAAA,iCAAyB,EAAC,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"}
@@ -1,2 +0,0 @@
1
- export * from './temporal-discovery.service';
2
- export * from './temporal-schedule-manager.service';
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./temporal-discovery.service"), exports);
18
- __exportStar(require("./temporal-schedule-manager.service"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,+DAA6C;AAC7C,sEAAoD"}
@@ -1,39 +0,0 @@
1
- import { OnModuleInit } from '@nestjs/common';
2
- import { DiscoveryService, MetadataScanner } from '@nestjs/core';
3
- import { DiscoveryStats, QueryMethodInfo, ScheduledMethodInfo, SignalMethodInfo } from '../interfaces';
4
- export declare class TemporalDiscoveryService implements OnModuleInit {
5
- private readonly discoveryService;
6
- private readonly metadataScanner;
7
- private readonly logger;
8
- private readonly scheduledWorkflows;
9
- private readonly signals;
10
- private readonly queries;
11
- constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner);
12
- onModuleInit(): Promise<void>;
13
- private discoverComponents;
14
- private processWrapper;
15
- private discoverMethods;
16
- private categorizeMethod;
17
- private createScheduledMethodInfo;
18
- private createSignalMethodInfo;
19
- private createQueryMethodInfo;
20
- getScheduledWorkflows(): ScheduledMethodInfo[];
21
- getScheduledWorkflow(scheduleId: string): ScheduledMethodInfo | undefined;
22
- getScheduleIds(): string[];
23
- hasSchedule(scheduleId: string): boolean;
24
- getSignals(): SignalMethodInfo[];
25
- getSignal(signalName: string): SignalMethodInfo | undefined;
26
- getQueries(): QueryMethodInfo[];
27
- getQuery(queryName: string): QueryMethodInfo | undefined;
28
- getStats(): DiscoveryStats;
29
- getHealthStatus(): {
30
- status: 'healthy' | 'degraded';
31
- discoveredItems: DiscoveryStats;
32
- lastDiscovery: Date | null;
33
- };
34
- getWorkflowControllers(): object[];
35
- getWorkflowMethod(_workflowName: string): unknown;
36
- getWorkflowNames(): string[];
37
- hasWorkflow(_workflowName: string): boolean;
38
- private logDiscoveryResults;
39
- }
@@ -1,191 +0,0 @@
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
- const logger_1 = require("../utils/logger");
18
- let TemporalDiscoveryService = TemporalDiscoveryService_1 = class TemporalDiscoveryService {
19
- constructor(discoveryService, metadataScanner) {
20
- this.discoveryService = discoveryService;
21
- this.metadataScanner = metadataScanner;
22
- this.logger = (0, logger_1.createLogger)(TemporalDiscoveryService_1.name);
23
- this.scheduledWorkflows = new Map();
24
- this.signals = new Map();
25
- this.queries = new Map();
26
- }
27
- async onModuleInit() {
28
- await this.discoverComponents();
29
- }
30
- async discoverComponents() {
31
- const allWrappers = [
32
- ...this.discoveryService.getProviders(),
33
- ...this.discoveryService.getControllers(),
34
- ];
35
- for (const wrapper of allWrappers) {
36
- await this.processWrapper(wrapper);
37
- }
38
- this.logDiscoveryResults();
39
- }
40
- async processWrapper(wrapper) {
41
- const { instance, metatype } = wrapper;
42
- if (!instance || !metatype) {
43
- return;
44
- }
45
- this.logger.debug(`Processing wrapper: ${metatype.name}`);
46
- await this.discoverMethods(instance);
47
- }
48
- async discoverMethods(instance) {
49
- const prototype = Object.getPrototypeOf(instance);
50
- const methodNames = this.metadataScanner
51
- .scanFromPrototype(instance, prototype, (methodName) => methodName !== 'constructor' ? methodName : null)
52
- .filter((methodName) => Boolean(methodName));
53
- for (const methodName of methodNames) {
54
- const method = prototype[methodName];
55
- if (!method || typeof method !== 'function') {
56
- continue;
57
- }
58
- this.categorizeMethod(instance, methodName, method);
59
- }
60
- }
61
- categorizeMethod(instance, methodName, method) {
62
- const boundMethod = method.bind(instance);
63
- const scheduleMetadata = Reflect.getMetadata(constants_1.TEMPORAL_SCHEDULED_WORKFLOW, method);
64
- if (scheduleMetadata) {
65
- const scheduledInfo = this.createScheduledMethodInfo(methodName, scheduleMetadata, boundMethod, instance);
66
- this.scheduledWorkflows.set(scheduleMetadata.scheduleId, scheduledInfo);
67
- }
68
- const signalMetadata = Reflect.getMetadata(constants_1.TEMPORAL_SIGNAL_METHOD, method);
69
- if (signalMetadata) {
70
- const signalInfo = this.createSignalMethodInfo(methodName, signalMetadata, boundMethod);
71
- this.signals.set(signalMetadata.name || methodName, signalInfo);
72
- }
73
- const queryMetadata = Reflect.getMetadata(constants_1.TEMPORAL_QUERY_METHOD, method);
74
- if (queryMetadata) {
75
- const queryInfo = this.createQueryMethodInfo(methodName, queryMetadata, boundMethod);
76
- this.queries.set(queryMetadata.name || methodName, queryInfo);
77
- }
78
- }
79
- createScheduledMethodInfo(methodName, scheduleMetadata, boundMethod, instance) {
80
- const metadata = scheduleMetadata;
81
- return {
82
- methodName,
83
- workflowName: metadata.workflowName || methodName,
84
- scheduleOptions: metadata,
85
- workflowOptions: {
86
- taskQueue: metadata.taskQueue || 'default',
87
- },
88
- handler: boundMethod,
89
- controllerInfo: {
90
- name: instance.constructor.name,
91
- instance,
92
- },
93
- };
94
- }
95
- createSignalMethodInfo(methodName, metadata, boundMethod) {
96
- const signalMetadata = metadata;
97
- return {
98
- methodName,
99
- signalName: signalMetadata.name || methodName,
100
- options: signalMetadata,
101
- handler: boundMethod,
102
- };
103
- }
104
- createQueryMethodInfo(methodName, metadata, boundMethod) {
105
- const queryMetadata = metadata;
106
- return {
107
- methodName,
108
- queryName: queryMetadata.name || methodName,
109
- options: queryMetadata,
110
- handler: boundMethod,
111
- };
112
- }
113
- getScheduledWorkflows() {
114
- return Array.from(this.scheduledWorkflows.values());
115
- }
116
- getScheduledWorkflow(scheduleId) {
117
- return this.scheduledWorkflows.get(scheduleId);
118
- }
119
- getScheduleIds() {
120
- return Array.from(this.scheduledWorkflows.keys());
121
- }
122
- hasSchedule(scheduleId) {
123
- return this.scheduledWorkflows.has(scheduleId);
124
- }
125
- getSignals() {
126
- return Array.from(this.signals.values());
127
- }
128
- getSignal(signalName) {
129
- return this.signals.get(signalName);
130
- }
131
- getQueries() {
132
- return Array.from(this.queries.values());
133
- }
134
- getQuery(queryName) {
135
- return this.queries.get(queryName);
136
- }
137
- getStats() {
138
- return {
139
- controllers: 0,
140
- methods: 0,
141
- scheduled: this.scheduledWorkflows.size,
142
- signals: this.signals.size,
143
- queries: this.queries.size,
144
- };
145
- }
146
- getHealthStatus() {
147
- const stats = this.getStats();
148
- const status = stats.scheduled > 0 || stats.signals > 0 || stats.queries > 0 ? 'healthy' : 'degraded';
149
- return {
150
- status,
151
- discoveredItems: stats,
152
- lastDiscovery: new Date(),
153
- };
154
- }
155
- getWorkflowControllers() {
156
- this.logger.warn('getWorkflowControllers() is deprecated - workflow controllers are no longer supported');
157
- return [];
158
- }
159
- getWorkflowMethod(_workflowName) {
160
- this.logger.warn('getWorkflowMethod() is deprecated - workflow methods are no longer supported');
161
- return undefined;
162
- }
163
- getWorkflowNames() {
164
- this.logger.warn('getWorkflowNames() is deprecated - workflow names are no longer supported');
165
- return [];
166
- }
167
- hasWorkflow(_workflowName) {
168
- this.logger.warn('hasWorkflow() is deprecated - workflow existence check is no longer supported');
169
- return false;
170
- }
171
- logDiscoveryResults() {
172
- const stats = this.getStats();
173
- this.logger.log(`Discovery completed: ${stats.scheduled} scheduled workflows, ${stats.signals} signals, ${stats.queries} queries`);
174
- if (stats.scheduled > 0) {
175
- this.logger.debug(`Discovered scheduled workflows: ${Array.from(this.scheduledWorkflows.keys()).join(', ')}`);
176
- }
177
- if (stats.signals > 0) {
178
- this.logger.debug(`Discovered signals: ${Array.from(this.signals.keys()).join(', ')}`);
179
- }
180
- if (stats.queries > 0) {
181
- this.logger.debug(`Discovered queries: ${Array.from(this.queries.keys()).join(', ')}`);
182
- }
183
- }
184
- };
185
- exports.TemporalDiscoveryService = TemporalDiscoveryService;
186
- exports.TemporalDiscoveryService = TemporalDiscoveryService = TemporalDiscoveryService_1 = __decorate([
187
- (0, common_1.Injectable)(),
188
- __metadata("design:paramtypes", [core_1.DiscoveryService,
189
- core_1.MetadataScanner])
190
- ], TemporalDiscoveryService);
191
- //# sourceMappingURL=temporal-discovery.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"temporal-discovery.service.js","sourceRoot":"","sources":["../../src/discovery/temporal-discovery.service.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import { OnApplicationBootstrap, OnModuleDestroy } from '@nestjs/common';
2
- import { ScheduleStats, ScheduleStatus } from '../interfaces';
3
- import { TemporalDiscoveryService } from './temporal-discovery.service';
4
- import { TemporalScheduleService } from '../client';
5
- export declare class TemporalScheduleManagerService implements OnApplicationBootstrap, OnModuleDestroy {
6
- private readonly discoveryService;
7
- private readonly scheduleService;
8
- private readonly logger;
9
- private readonly managedSchedules;
10
- private readonly setupPromises;
11
- constructor(discoveryService: TemporalDiscoveryService, scheduleService: TemporalScheduleService);
12
- onApplicationBootstrap(): Promise<void>;
13
- onModuleDestroy(): Promise<void>;
14
- private setupDiscoveredSchedules;
15
- private setupSingleSchedule;
16
- private performScheduleSetup;
17
- private createCronSchedule;
18
- private createIntervalSchedule;
19
- triggerSchedule(scheduleId: string): Promise<void>;
20
- pauseSchedule(scheduleId: string, note?: string): Promise<void>;
21
- resumeSchedule(scheduleId: string, note?: string): Promise<void>;
22
- deleteSchedule(scheduleId: string, force?: boolean): Promise<void>;
23
- retryFailedSetups(): Promise<void>;
24
- getManagedSchedules(): string[];
25
- getManagedScheduleStatuses(): ScheduleStatus[];
26
- getScheduleStatus(scheduleId: string): ScheduleStatus | undefined;
27
- isScheduleManaged(scheduleId: string): boolean;
28
- isScheduleActive(scheduleId: string): boolean;
29
- getScheduleStats(): ScheduleStats;
30
- getHealthStatus(): {
31
- status: 'healthy' | 'degraded' | 'unhealthy';
32
- managedSchedules: number;
33
- activeSchedules: number;
34
- errorCount: number;
35
- };
36
- private resolveTaskQueue;
37
- private updateScheduleStatus;
38
- private logSetupResults;
39
- private ensureScheduleManaged;
40
- private getScheduleWorkflowName;
41
- }