nestjs-temporal-core 3.0.10 → 3.0.11

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 (122) hide show
  1. package/README.md +1451 -721
  2. package/dist/constants.d.ts +49 -151
  3. package/dist/constants.js +38 -141
  4. package/dist/constants.js.map +1 -1
  5. package/dist/decorators/activity.decorator.js +75 -15
  6. package/dist/decorators/activity.decorator.js.map +1 -1
  7. package/dist/decorators/index.d.ts +1 -3
  8. package/dist/decorators/index.js +4 -13
  9. package/dist/decorators/index.js.map +1 -1
  10. package/dist/decorators/workflow.decorator.d.ts +7 -3
  11. package/dist/decorators/workflow.decorator.js +161 -48
  12. package/dist/decorators/workflow.decorator.js.map +1 -1
  13. package/dist/health/temporal-health.controller.d.ts +7 -0
  14. package/dist/health/temporal-health.controller.js +77 -0
  15. package/dist/health/temporal-health.controller.js.map +1 -0
  16. package/dist/health/temporal-health.module.d.ts +2 -0
  17. package/dist/health/temporal-health.module.js +20 -0
  18. package/dist/health/temporal-health.module.js.map +1 -0
  19. package/dist/index.d.ts +10 -20
  20. package/dist/index.js +15 -30
  21. package/dist/index.js.map +1 -1
  22. package/dist/interfaces.d.ts +740 -160
  23. package/dist/interfaces.js +1 -2
  24. package/dist/interfaces.js.map +1 -1
  25. package/dist/providers/temporal-connection.factory.d.ts +28 -0
  26. package/dist/providers/temporal-connection.factory.js +194 -0
  27. package/dist/providers/temporal-connection.factory.js.map +1 -0
  28. package/dist/services/temporal-client.service.d.ts +33 -0
  29. package/dist/services/temporal-client.service.js +285 -0
  30. package/dist/services/temporal-client.service.js.map +1 -0
  31. package/dist/services/temporal-discovery.service.d.ts +34 -0
  32. package/dist/services/temporal-discovery.service.js +348 -0
  33. package/dist/services/temporal-discovery.service.js.map +1 -0
  34. package/dist/services/temporal-metadata.service.d.ts +37 -0
  35. package/dist/services/temporal-metadata.service.js +512 -0
  36. package/dist/services/temporal-metadata.service.js.map +1 -0
  37. package/dist/services/temporal-schedule.service.d.ts +35 -0
  38. package/dist/services/temporal-schedule.service.js +380 -0
  39. package/dist/services/temporal-schedule.service.js.map +1 -0
  40. package/dist/services/temporal-worker.service.d.ts +54 -0
  41. package/dist/services/temporal-worker.service.js +605 -0
  42. package/dist/services/temporal-worker.service.js.map +1 -0
  43. package/dist/services/temporal.service.d.ts +85 -0
  44. package/dist/services/temporal.service.js +572 -0
  45. package/dist/services/temporal.service.js.map +1 -0
  46. package/dist/temporal.module.d.ts +6 -9
  47. package/dist/temporal.module.js +160 -109
  48. package/dist/temporal.module.js.map +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/dist/utils/index.d.ts +2 -2
  51. package/dist/utils/index.js +5 -8
  52. package/dist/utils/index.js.map +1 -1
  53. package/dist/utils/logger.d.ts +10 -4
  54. package/dist/utils/logger.js +77 -106
  55. package/dist/utils/logger.js.map +1 -1
  56. package/dist/utils/metadata.d.ts +1 -3
  57. package/dist/utils/metadata.js +8 -18
  58. package/dist/utils/metadata.js.map +1 -1
  59. package/dist/utils/validation.d.ts +16 -2
  60. package/dist/utils/validation.js +103 -9
  61. package/dist/utils/validation.js.map +1 -1
  62. package/package.json +37 -26
  63. package/dist/activity/index.d.ts +0 -2
  64. package/dist/activity/index.js +0 -19
  65. package/dist/activity/index.js.map +0 -1
  66. package/dist/activity/temporal-activity.module.d.ts +0 -11
  67. package/dist/activity/temporal-activity.module.js +0 -52
  68. package/dist/activity/temporal-activity.module.js.map +0 -1
  69. package/dist/activity/temporal-activity.service.d.ts +0 -46
  70. package/dist/activity/temporal-activity.service.js +0 -192
  71. package/dist/activity/temporal-activity.service.js.map +0 -1
  72. package/dist/client/index.d.ts +0 -3
  73. package/dist/client/index.js +0 -20
  74. package/dist/client/index.js.map +0 -1
  75. package/dist/client/temporal-client.module.d.ts +0 -18
  76. package/dist/client/temporal-client.module.js +0 -198
  77. package/dist/client/temporal-client.module.js.map +0 -1
  78. package/dist/client/temporal-client.service.d.ts +0 -35
  79. package/dist/client/temporal-client.service.js +0 -187
  80. package/dist/client/temporal-client.service.js.map +0 -1
  81. package/dist/client/temporal-schedule.service.d.ts +0 -41
  82. package/dist/client/temporal-schedule.service.js +0 -204
  83. package/dist/client/temporal-schedule.service.js.map +0 -1
  84. package/dist/decorators/parameter.decorator.d.ts +0 -5
  85. package/dist/decorators/parameter.decorator.js +0 -57
  86. package/dist/decorators/parameter.decorator.js.map +0 -1
  87. package/dist/decorators/scheduling.decorator.d.ts +0 -4
  88. package/dist/decorators/scheduling.decorator.js +0 -44
  89. package/dist/decorators/scheduling.decorator.js.map +0 -1
  90. package/dist/discovery/index.d.ts +0 -2
  91. package/dist/discovery/index.js +0 -19
  92. package/dist/discovery/index.js.map +0 -1
  93. package/dist/discovery/temporal-discovery.service.d.ts +0 -39
  94. package/dist/discovery/temporal-discovery.service.js +0 -191
  95. package/dist/discovery/temporal-discovery.service.js.map +0 -1
  96. package/dist/discovery/temporal-schedule-manager.service.d.ts +0 -41
  97. package/dist/discovery/temporal-schedule-manager.service.js +0 -238
  98. package/dist/discovery/temporal-schedule-manager.service.js.map +0 -1
  99. package/dist/schedules/index.d.ts +0 -2
  100. package/dist/schedules/index.js +0 -19
  101. package/dist/schedules/index.js.map +0 -1
  102. package/dist/schedules/temporal-schedules.module.d.ts +0 -11
  103. package/dist/schedules/temporal-schedules.module.js +0 -55
  104. package/dist/schedules/temporal-schedules.module.js.map +0 -1
  105. package/dist/schedules/temporal-schedules.service.d.ts +0 -52
  106. package/dist/schedules/temporal-schedules.service.js +0 -221
  107. package/dist/schedules/temporal-schedules.service.js.map +0 -1
  108. package/dist/temporal.service.d.ts +0 -77
  109. package/dist/temporal.service.js +0 -243
  110. package/dist/temporal.service.js.map +0 -1
  111. package/dist/worker/index.d.ts +0 -3
  112. package/dist/worker/index.js +0 -20
  113. package/dist/worker/index.js.map +0 -1
  114. package/dist/worker/temporal-metadata.accessor.d.ts +0 -32
  115. package/dist/worker/temporal-metadata.accessor.js +0 -208
  116. package/dist/worker/temporal-metadata.accessor.js.map +0 -1
  117. package/dist/worker/temporal-worker-manager.service.d.ts +0 -49
  118. package/dist/worker/temporal-worker-manager.service.js +0 -389
  119. package/dist/worker/temporal-worker-manager.service.js.map +0 -1
  120. package/dist/worker/temporal-worker.module.d.ts +0 -18
  121. package/dist/worker/temporal-worker.module.js +0 -156
  122. package/dist/worker/temporal-worker.module.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nestjs-temporal-core",
3
- "version": "3.0.10",
3
+ "version": "3.0.11",
4
4
  "description": "Complete NestJS integration for Temporal.io with auto-discovery, declarative scheduling, enhanced monitoring, and enterprise-ready features",
5
5
  "author": "Harsh M",
6
6
  "license": "MIT",
@@ -18,32 +18,34 @@
18
18
  "dist/**/*",
19
19
  "LICENSE",
20
20
  "README.md",
21
- "CHANGELOG.md"
21
+ "CHANGELOG.md",
22
+ "docs/README.md",
23
+ "jsdoc.json"
22
24
  ],
23
25
  "scripts": {
24
26
  "build": "rimraf dist && tsc -p tsconfig.json",
25
- "build:watch": "tsc -p tsconfig.json --watch",
26
27
  "format": "prettier --write \"src/**/*.{ts,js,json,md}\"",
27
- "format:check": "prettier --check \"src/**/*.{ts,js,json,md}\"",
28
28
  "lint": "eslint \"src/**/*.ts\" --fix",
29
- "lint:check": "eslint \"src/**/*.ts\"",
30
- "lint:fix": "eslint \"src/**/*.ts\" --fix",
31
29
  "type-check": "tsc --noEmit",
32
- "check-all": "npm run type-check && npm run lint:check && npm run format:check",
33
- "fix-all": "npm run format && npm run lint:fix",
30
+ "fix-all": "npm run format && npm run lint",
34
31
  "update:packages": "npx npm-check-updates -u",
35
32
  "prepare": "husky",
36
33
  "version": "npm run fix-all && git add -A src",
37
34
  "postversion": "git push && git push --tags",
38
35
  "clean": "rimraf dist",
39
- "prebuild": "npm run clean && npm run check-all",
36
+ "prebuild": "npm run clean && npm run fix-all",
40
37
  "publish:major": "npm version major && npm publish",
41
38
  "publish:minor": "npm version minor && npm publish",
42
39
  "publish:patch": "npm version patch && npm publish",
43
- "publish:beta": "npm version prerelease --preid=beta --no-git-tag-version && npm publish --tag beta",
44
- "publish:alpha": "npm version prerelease --preid=alpha --no-git-tag-version && npm publish --tag alpha",
45
40
  "release": "npm run build && npm publish",
46
- "release:dry": "npm run build && npm publish --dry-run"
41
+ "release:dry": "npm run build && npm publish --dry-run",
42
+ "test": "jest --coverage --passWithNoTests --forceExit",
43
+ "test:unit": "jest --testPathPatterns=test/unit --testPathIgnorePatterns=test/performance --coverage --passWithNoTests --forceExit",
44
+ "test:ci": "npm run test:unit && npm run test:integration",
45
+ "make-badges": "istanbul-badges-readme",
46
+ "docs:generate": "typedoc src --out docs --excludePrivate --excludeProtected",
47
+ "docs:serve": "npx http-server docs -p 3001 -o",
48
+ "docs:clean": "rimraf docs"
47
49
  },
48
50
  "keywords": [
49
51
  "nestjs",
@@ -85,29 +87,38 @@
85
87
  }
86
88
  },
87
89
  "devDependencies": {
88
- "@eslint/js": "^9.30.1",
89
- "@nestjs/common": "^11.1.3",
90
- "@nestjs/core": "^11.1.3",
91
- "@nestjs/testing": "^11.1.3",
92
- "@temporalio/client": "^1.12.0",
93
- "@temporalio/common": "^1.12.0",
94
- "@temporalio/worker": "^1.12.0",
95
- "@temporalio/workflow": "^1.12.0",
90
+ "@eslint/js": "^9.31.0",
91
+ "@nestjs/common": "^11.1.5",
92
+ "@nestjs/core": "^11.1.5",
93
+ "@nestjs/testing": "^11.1.5",
94
+ "@swc/core": "^1.13.5",
95
+ "@swc/jest": "^0.2.39",
96
+ "@temporalio/client": "^1.12.1",
97
+ "@temporalio/common": "^1.12.1",
98
+ "@temporalio/worker": "^1.12.1",
99
+ "@temporalio/workflow": "^1.12.1",
96
100
  "@types/jest": "^30.0.0",
97
101
  "@types/ms": "^2.1.0",
98
- "@types/node": "^24.0.10",
102
+ "@types/node": "^24.0.15",
99
103
  "@types/reflect-metadata": "^0.1.0",
100
- "@typescript-eslint/eslint-plugin": "^8.35.1",
101
- "@typescript-eslint/parser": "^8.35.1",
102
- "eslint": "^9.30.1",
103
- "eslint-config-prettier": "^10.1.5",
104
- "eslint-plugin-prettier": "^5.5.1",
104
+ "@typescript-eslint/eslint-plugin": "^8.37.0",
105
+ "@typescript-eslint/parser": "^8.37.0",
106
+ "benchmark": "^2.1.4",
107
+ "eslint": "^9.31.0",
108
+ "eslint-config-prettier": "^10.1.8",
109
+ "eslint-plugin-prettier": "^5.5.3",
105
110
  "globals": "^16.3.0",
106
111
  "husky": "^9.1.7",
112
+ "istanbul-badges-readme": "^1.9.0",
107
113
  "jest": "^30.0.4",
114
+ "jsdoc": "^4.0.4",
115
+ "jsdoc-to-markdown": "^9.0.1",
116
+ "jsdoc-tsimport-plugin": "^1.0.5",
117
+ "nodemon": "^3.1.7",
108
118
  "prettier": "^3.6.2",
109
119
  "rimraf": "^6.0.1",
110
120
  "ts-jest": "^29.4.0",
121
+ "typedoc": "^0.28.7",
111
122
  "typescript": "^5.8.3"
112
123
  },
113
124
  "engines": {
@@ -1,2 +0,0 @@
1
- export * from './temporal-activity.module';
2
- export * from './temporal-activity.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-activity.module"), exports);
18
- __exportStar(require("./temporal-activity.service"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/activity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,8DAA4C"}
@@ -1,11 +0,0 @@
1
- import { DynamicModule, Type } from '@nestjs/common';
2
- import { ActivityModuleOptions } from '../interfaces';
3
- export declare class TemporalActivityModule {
4
- static forRoot(options?: ActivityModuleOptions): DynamicModule;
5
- static forRootAsync(options: {
6
- imports?: (Type<unknown> | DynamicModule)[];
7
- useFactory: (...args: unknown[]) => Promise<ActivityModuleOptions> | ActivityModuleOptions;
8
- inject?: string[];
9
- global?: boolean;
10
- }): DynamicModule;
11
- }
@@ -1,52 +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 TemporalActivityModule_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.TemporalActivityModule = void 0;
11
- const common_1 = require("@nestjs/common");
12
- const core_1 = require("@nestjs/core");
13
- const temporal_activity_service_1 = require("./temporal-activity.service");
14
- const constants_1 = require("../constants");
15
- let TemporalActivityModule = TemporalActivityModule_1 = class TemporalActivityModule {
16
- static forRoot(options = {}) {
17
- return {
18
- module: TemporalActivityModule_1,
19
- imports: [core_1.DiscoveryModule],
20
- providers: [
21
- {
22
- provide: constants_1.ACTIVITY_MODULE_OPTIONS,
23
- useValue: options,
24
- },
25
- temporal_activity_service_1.TemporalActivityService,
26
- ],
27
- exports: [temporal_activity_service_1.TemporalActivityService],
28
- global: options.global !== false,
29
- };
30
- }
31
- static forRootAsync(options) {
32
- return {
33
- module: TemporalActivityModule_1,
34
- imports: [core_1.DiscoveryModule, ...(options.imports || [])],
35
- providers: [
36
- {
37
- provide: constants_1.ACTIVITY_MODULE_OPTIONS,
38
- useFactory: options.useFactory,
39
- inject: options.inject || [],
40
- },
41
- temporal_activity_service_1.TemporalActivityService,
42
- ],
43
- exports: [temporal_activity_service_1.TemporalActivityService],
44
- global: options.global !== false,
45
- };
46
- }
47
- };
48
- exports.TemporalActivityModule = TemporalActivityModule;
49
- exports.TemporalActivityModule = TemporalActivityModule = TemporalActivityModule_1 = __decorate([
50
- (0, common_1.Module)({})
51
- ], TemporalActivityModule);
52
- //# sourceMappingURL=temporal-activity.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"temporal-activity.module.js","sourceRoot":"","sources":["../../src/activity/temporal-activity.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA6D;AAC7D,uCAA+C;AAC/C,2EAAsE;AAEtE,4CAAuD;AAmChD,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAI/B,MAAM,CAAC,OAAO,CAAC,UAAiC,EAAE;QAC9C,OAAO;YACH,MAAM,EAAE,wBAAsB;YAC9B,OAAO,EAAE,CAAC,sBAAe,CAAC;YAC1B,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,mCAAuB;oBAChC,QAAQ,EAAE,OAAO;iBACpB;gBACD,mDAAuB;aAC1B;YACD,OAAO,EAAE,CAAC,mDAAuB,CAAC;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;SACnC,CAAC;IACN,CAAC;IAKD,MAAM,CAAC,YAAY,CAAC,OAKnB;QACG,OAAO;YACH,MAAM,EAAE,wBAAsB;YAC9B,OAAO,EAAE,CAAC,sBAAe,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACtD,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,mCAAuB;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC/B;gBACD,mDAAuB;aAC1B;YACD,OAAO,EAAE,CAAC,mDAAuB,CAAC;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;SACnC,CAAC;IACN,CAAC;CACJ,CAAA;AA5CY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,sBAAsB,CA4ClC"}
@@ -1,46 +0,0 @@
1
- import { OnModuleInit } from '@nestjs/common';
2
- import { DiscoveryService } from '@nestjs/core';
3
- import { TemporalMetadataAccessor } from '../worker/temporal-metadata.accessor';
4
- import { ActivityModuleOptions, ActivityInfo, ActivityMethodHandler } from '../interfaces';
5
- export declare class TemporalActivityService implements OnModuleInit {
6
- private readonly options;
7
- private readonly discoveryService;
8
- private readonly metadataAccessor;
9
- private readonly logger;
10
- private readonly discoveredActivities;
11
- private readonly activityHandlers;
12
- constructor(options: ActivityModuleOptions, discoveryService: DiscoveryService, metadataAccessor: TemporalMetadataAccessor);
13
- onModuleInit(): Promise<void>;
14
- private discoverActivities;
15
- private processActivityClass;
16
- getDiscoveredActivities(): ActivityInfo[];
17
- getActivityByClassName(className: string): ActivityInfo | undefined;
18
- getActivityHandlers(): Record<string, ActivityMethodHandler>;
19
- getActivityHandler(activityName: string): ActivityMethodHandler | undefined;
20
- getActivityNames(): string[];
21
- hasActivity(activityName: string): boolean;
22
- getActivityStats(): {
23
- totalClasses: number;
24
- totalMethods: number;
25
- classNames: string[];
26
- methodNames: string[];
27
- };
28
- validateConfiguration(): {
29
- isValid: boolean;
30
- issues: string[];
31
- warnings: string[];
32
- };
33
- getHealthStatus(): {
34
- status: 'healthy' | 'degraded' | 'unhealthy';
35
- activities: {
36
- total: number;
37
- registered: number;
38
- };
39
- validation: {
40
- isValid: boolean;
41
- issues: string[];
42
- warnings: string[];
43
- };
44
- };
45
- private logActivitySummary;
46
- }
@@ -1,192 +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 TemporalActivityService_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.TemporalActivityService = void 0;
17
- const common_1 = require("@nestjs/common");
18
- const core_1 = require("@nestjs/core");
19
- const temporal_metadata_accessor_1 = require("../worker/temporal-metadata.accessor");
20
- const constants_1 = require("../constants");
21
- const logger_1 = require("../utils/logger");
22
- let TemporalActivityService = TemporalActivityService_1 = class TemporalActivityService {
23
- constructor(options, discoveryService, metadataAccessor) {
24
- this.options = options;
25
- this.discoveryService = discoveryService;
26
- this.metadataAccessor = metadataAccessor;
27
- this.discoveredActivities = new Map();
28
- this.activityHandlers = new Map();
29
- this.logger = (0, logger_1.createLogger)(TemporalActivityService_1.name);
30
- }
31
- async onModuleInit() {
32
- await this.discoverActivities();
33
- this.logActivitySummary();
34
- }
35
- async discoverActivities() {
36
- const providers = this.discoveryService.getProviders();
37
- let discoveredCount = 0;
38
- for (const wrapper of providers) {
39
- const { instance, metatype } = wrapper;
40
- const targetClass = instance?.constructor || metatype;
41
- if (!targetClass || !instance)
42
- continue;
43
- if (!this.metadataAccessor.isActivity(targetClass))
44
- continue;
45
- if (this.options.activityClasses?.length) {
46
- if (!this.options.activityClasses.includes(targetClass))
47
- continue;
48
- }
49
- try {
50
- const activityInfo = await this.processActivityClass(instance, targetClass);
51
- if (activityInfo) {
52
- this.discoveredActivities.set(targetClass.name, activityInfo);
53
- discoveredCount++;
54
- }
55
- }
56
- catch (error) {
57
- this.logger.error(`Failed to process activity class ${targetClass.name}:`, error.stack);
58
- }
59
- }
60
- this.logger.log(`Discovered ${discoveredCount} activity classes`);
61
- }
62
- async processActivityClass(instance, targetClass) {
63
- const className = targetClass.name;
64
- this.logger.debug(`Processing activity class: ${className}`);
65
- const validation = this.metadataAccessor.validateActivityClass(targetClass);
66
- if (!validation.isValid) {
67
- this.logger.warn(`Activity class ${className} has validation issues: ${validation.issues.join(', ')}`);
68
- return null;
69
- }
70
- const activityMethods = this.metadataAccessor.extractActivityMethods(instance);
71
- const methodInfos = [];
72
- for (const [activityName, handler] of activityMethods.entries()) {
73
- this.activityHandlers.set(activityName, handler);
74
- const methodName = Object.getOwnPropertyNames(Object.getPrototypeOf(instance)).find((name) => instance[name] === handler);
75
- if (methodName) {
76
- const method = Object.getPrototypeOf(instance)[methodName];
77
- methodInfos.push({
78
- name: activityName,
79
- methodName,
80
- options: this.metadataAccessor.getActivityMethodOptions(method),
81
- });
82
- }
83
- this.logger.debug(`Registered activity: ${className}.${activityName}`);
84
- }
85
- return {
86
- className,
87
- instance,
88
- targetClass: targetClass,
89
- methods: methodInfos,
90
- totalMethods: methodInfos.length,
91
- };
92
- }
93
- getDiscoveredActivities() {
94
- return Array.from(this.discoveredActivities.values());
95
- }
96
- getActivityByClassName(className) {
97
- return this.discoveredActivities.get(className);
98
- }
99
- getActivityHandlers() {
100
- return Object.fromEntries(this.activityHandlers.entries());
101
- }
102
- getActivityHandler(activityName) {
103
- return this.activityHandlers.get(activityName);
104
- }
105
- getActivityNames() {
106
- return Array.from(this.activityHandlers.keys());
107
- }
108
- hasActivity(activityName) {
109
- return this.activityHandlers.has(activityName);
110
- }
111
- getActivityStats() {
112
- const activities = this.getDiscoveredActivities();
113
- const totalMethods = activities.reduce((sum, activity) => sum + activity.totalMethods, 0);
114
- return {
115
- totalClasses: activities.length,
116
- totalMethods,
117
- classNames: activities.map((a) => a.className),
118
- methodNames: this.getActivityNames(),
119
- };
120
- }
121
- validateConfiguration() {
122
- const issues = [];
123
- const warnings = [];
124
- if (this.discoveredActivities.size === 0) {
125
- warnings.push('No activities were discovered. Make sure classes are decorated with @Activity()');
126
- }
127
- const methodNames = this.getActivityNames();
128
- const duplicates = methodNames.filter((name, index) => methodNames.indexOf(name) !== index);
129
- if (duplicates.length > 0) {
130
- issues.push(`Duplicate activity names found: ${duplicates.join(', ')}`);
131
- }
132
- if (this.options.activityClasses?.length) {
133
- const foundClasses = this.getDiscoveredActivities().map((a) => a.targetClass);
134
- const missingClasses = this.options.activityClasses.filter((cls) => !foundClasses.includes(cls));
135
- if (missingClasses.length > 0) {
136
- warnings.push(`Some specified activity classes were not found: ${missingClasses.map((c) => c.name).join(', ')}`);
137
- }
138
- }
139
- return {
140
- isValid: issues.length === 0,
141
- issues,
142
- warnings,
143
- };
144
- }
145
- getHealthStatus() {
146
- const stats = this.getActivityStats();
147
- const validation = this.validateConfiguration();
148
- let status;
149
- if (!validation.isValid) {
150
- status = 'unhealthy';
151
- }
152
- else if (validation.warnings.length > 0 || stats.totalMethods === 0) {
153
- status = 'degraded';
154
- }
155
- else {
156
- status = 'healthy';
157
- }
158
- return {
159
- status,
160
- activities: {
161
- total: stats.totalClasses,
162
- registered: stats.totalMethods,
163
- },
164
- validation,
165
- };
166
- }
167
- logActivitySummary() {
168
- const stats = this.getActivityStats();
169
- const validation = this.validateConfiguration();
170
- this.logger.log(`Activity discovery completed: ${stats.totalClasses} classes, ${stats.totalMethods} methods`);
171
- if (stats.totalClasses > 0) {
172
- this.logger.debug(`Activity classes: ${stats.classNames.join(', ')}`);
173
- }
174
- if (stats.totalMethods > 0) {
175
- this.logger.debug(`Activity methods: ${stats.methodNames.join(', ')}`);
176
- }
177
- if (validation.warnings.length > 0) {
178
- validation.warnings.forEach((warning) => this.logger.warn(warning));
179
- }
180
- if (validation.issues.length > 0) {
181
- validation.issues.forEach((issue) => this.logger.error(issue));
182
- }
183
- }
184
- };
185
- exports.TemporalActivityService = TemporalActivityService;
186
- exports.TemporalActivityService = TemporalActivityService = TemporalActivityService_1 = __decorate([
187
- (0, common_1.Injectable)(),
188
- __param(0, (0, common_1.Inject)(constants_1.ACTIVITY_MODULE_OPTIONS)),
189
- __metadata("design:paramtypes", [Object, core_1.DiscoveryService,
190
- temporal_metadata_accessor_1.TemporalMetadataAccessor])
191
- ], TemporalActivityService);
192
- //# sourceMappingURL=temporal-activity.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"temporal-activity.service.js","sourceRoot":"","sources":["../../src/activity/temporal-activity.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from './temporal-client.module';
2
- export * from './temporal-client.service';
3
- export * from './temporal-schedule.service';
@@ -1,20 +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-client.module"), exports);
18
- __exportStar(require("./temporal-client.service"), exports);
19
- __exportStar(require("./temporal-schedule.service"), exports);
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,2DAAyC;AACzC,4DAA0C;AAC1C,8DAA4C"}
@@ -1,18 +0,0 @@
1
- import { DynamicModule } from '@nestjs/common';
2
- import { TemporalAsyncOptions, TemporalOptions } from '../interfaces';
3
- export declare class TemporalClientModule {
4
- private static createModuleLogger;
5
- static register(options: TemporalOptions): DynamicModule;
6
- static registerAsync(options: TemporalAsyncOptions): DynamicModule;
7
- static forClient(options: {
8
- connection: TemporalOptions['connection'];
9
- isGlobal?: boolean;
10
- }): DynamicModule;
11
- private static createClientProvider;
12
- private static createAsyncClientProvider;
13
- private static createAsyncProviders;
14
- private static createClientInstance;
15
- private static enhanceClientWithShutdown;
16
- private static extractClientOptions;
17
- private static validateOptions;
18
- }