nestjs-temporal-core 2.0.2 → 2.0.3

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 (32) hide show
  1. package/README.md +135 -21
  2. package/dist/client/temporal-client.module.js +41 -14
  3. package/dist/client/temporal-client.module.js.map +1 -1
  4. package/dist/client/temporal-client.service.d.ts +4 -7
  5. package/dist/client/temporal-client.service.js +14 -5
  6. package/dist/client/temporal-client.service.js.map +1 -1
  7. package/dist/constants.d.ts +34 -1
  8. package/dist/constants.js +35 -2
  9. package/dist/constants.js.map +1 -1
  10. package/dist/decorators/activity-method.decorator.d.ts +8 -1
  11. package/dist/decorators/activity-method.decorator.js +21 -3
  12. package/dist/decorators/activity-method.decorator.js.map +1 -1
  13. package/dist/decorators/activity.decorator.d.ts +5 -1
  14. package/dist/decorators/activity.decorator.js +3 -3
  15. package/dist/decorators/activity.decorator.js.map +1 -1
  16. package/dist/decorators/workflow.decorator.d.ts +16 -2
  17. package/dist/decorators/workflow.decorator.js +11 -4
  18. package/dist/decorators/workflow.decorator.js.map +1 -1
  19. package/dist/interfaces/base.interface.d.ts +4 -2
  20. package/dist/interfaces/client.interface.d.ts +27 -1
  21. package/dist/interfaces/worker.interface.d.ts +17 -2
  22. package/dist/tsconfig.tsbuildinfo +1 -1
  23. package/dist/worker/temporal-metadata.accessor.d.ts +11 -0
  24. package/dist/worker/temporal-metadata.accessor.js +78 -1
  25. package/dist/worker/temporal-metadata.accessor.js.map +1 -1
  26. package/dist/worker/temporal-worker.module.d.ts +2 -1
  27. package/dist/worker/temporal-worker.module.js +17 -10
  28. package/dist/worker/temporal-worker.module.js.map +1 -1
  29. package/dist/worker/worker-manager.service.d.ts +8 -7
  30. package/dist/worker/worker-manager.service.js +116 -54
  31. package/dist/worker/worker-manager.service.js.map +1 -1
  32. package/package.json +1 -1
@@ -1 +1,8 @@
1
- export declare const ActivityMethod: (name?: string) => MethodDecorator;
1
+ export interface ActivityMethodOptions {
2
+ name?: string;
3
+ timeout?: {
4
+ startToClose?: string | number;
5
+ scheduleToStart?: string | number;
6
+ };
7
+ }
8
+ export declare const ActivityMethod: (options?: string | ActivityMethodOptions) => MethodDecorator;
@@ -3,13 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ActivityMethod = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const constants_1 = require("../constants");
6
- const ActivityMethod = (name) => {
7
- return (target, propertyKey, descriptor) => {
8
- const methodName = name || propertyKey.toString();
6
+ const ActivityMethod = (options) => {
7
+ return (_target, propertyKey, descriptor) => {
8
+ let methodName;
9
+ let methodOptions = {};
10
+ if (typeof options === 'string') {
11
+ methodName = options;
12
+ methodOptions = { name: options };
13
+ }
14
+ else if (options && typeof options === 'object') {
15
+ methodName = options.name || propertyKey.toString();
16
+ methodOptions = options;
17
+ }
18
+ else {
19
+ methodName = propertyKey.toString();
20
+ }
9
21
  Reflect.defineMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD, true, descriptor.value);
10
22
  Reflect.defineMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD_NAME, methodName, descriptor.value);
23
+ if (Object.keys(methodOptions).length > 0) {
24
+ Reflect.defineMetadata('TEMPORAL_ACTIVITY_METHOD_OPTIONS', methodOptions, descriptor.value);
25
+ }
11
26
  (0, common_1.SetMetadata)(constants_1.TEMPORAL_ACTIVITY_METHOD, true)(descriptor.value);
12
27
  (0, common_1.SetMetadata)(constants_1.TEMPORAL_ACTIVITY_METHOD_NAME, methodName)(descriptor.value);
28
+ if (Object.keys(methodOptions).length > 0) {
29
+ (0, common_1.SetMetadata)('TEMPORAL_ACTIVITY_METHOD_OPTIONS', methodOptions)(descriptor.value);
30
+ }
13
31
  return descriptor;
14
32
  };
15
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"activity-method.decorator.js","sourceRoot":"","sources":["../../src/decorators/activity-method.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,4CAAuF;AAMhF,MAAM,cAAc,GAAG,CAAC,IAAa,EAAmB,EAAE;IAC/D,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACnF,MAAM,UAAU,GAAG,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QAElD,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO,CAAC,cAAc,CAAC,yCAA6B,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAEpF,IAAA,oBAAW,EAAC,oCAAwB,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAA,oBAAW,EAAC,yCAA6B,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzE,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,cAAc,kBAYzB"}
1
+ {"version":3,"file":"activity-method.decorator.js","sourceRoot":"","sources":["../../src/decorators/activity-method.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,4CAAuF;AAiEhF,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,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO,CAAC,cAAc,CAAC,yCAA6B,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAEpF,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,cAAc,CAClB,kCAAkC,EAClC,aAAa,EACb,UAAU,CAAC,KAAK,CACnB,CAAC;QACN,CAAC;QAGD,IAAA,oBAAW,EAAC,oCAAwB,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAA,oBAAW,EAAC,yCAA6B,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,IAAA,oBAAW,EAAC,kCAAkC,EAAE,aAAa,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC,CAAC;AAtCW,QAAA,cAAc,kBAsCzB"}
@@ -1 +1,5 @@
1
- export declare const Activity: () => ClassDecorator;
1
+ export interface ActivityOptions {
2
+ name?: string;
3
+ description?: string;
4
+ }
5
+ export declare const Activity: (options?: ActivityOptions) => ClassDecorator;
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Activity = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const constants_1 = require("../constants");
6
- const Activity = () => {
6
+ const Activity = (options = {}) => {
7
7
  return (target) => {
8
- Reflect.defineMetadata(constants_1.TEMPORAL_ACTIVITY, true, target);
9
- (0, common_1.SetMetadata)(constants_1.TEMPORAL_ACTIVITY, true)(target);
8
+ Reflect.defineMetadata(constants_1.TEMPORAL_ACTIVITY, { ...options }, target);
9
+ (0, common_1.SetMetadata)(constants_1.TEMPORAL_ACTIVITY, { ...options })(target);
10
10
  return target;
11
11
  };
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"activity.decorator.js","sourceRoot":"","sources":["../../src/decorators/activity.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,4CAAiD;AAK1C,MAAM,QAAQ,GAAG,GAAmB,EAAE;IAC3C,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,6BAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACxD,IAAA,oBAAW,EAAC,6BAAiB,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB"}
1
+ {"version":3,"file":"activity.decorator.js","sourceRoot":"","sources":["../../src/decorators/activity.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,4CAAiD;AAuC1C,MAAM,QAAQ,GAAG,CAAC,UAA2B,EAAE,EAAkB,EAAE;IACtE,OAAO,CAAC,MAAW,EAAE,EAAE;QACnB,OAAO,CAAC,cAAc,CAAC,6BAAiB,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;QAClE,IAAA,oBAAW,EAAC,6BAAiB,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB"}
@@ -1,2 +1,16 @@
1
- import { WorkflowOptions } from '@temporalio/client';
2
- export declare function Workflow(options?: WorkflowOptions): ClassDecorator;
1
+ export interface TemporalWorkflowDecoratorOptions {
2
+ name?: string;
3
+ description?: string;
4
+ taskQueue: string;
5
+ workflowId?: string;
6
+ workflowExecutionTimeout?: string;
7
+ workflowRunTimeout?: string;
8
+ workflowTaskTimeout?: string;
9
+ retry?: {
10
+ maximumAttempts?: number;
11
+ initialInterval?: number;
12
+ maximumInterval?: number;
13
+ backoffCoefficient?: number;
14
+ };
15
+ }
16
+ export declare function Workflow(options: TemporalWorkflowDecoratorOptions): ClassDecorator;
@@ -1,13 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Workflow = void 0;
3
+ exports.Workflow = Workflow;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const constants_1 = require("../constants");
6
- function Workflow(options = { workflowId: '', taskQueue: '' }) {
6
+ function Workflow(options) {
7
+ if (!options.taskQueue) {
8
+ throw new Error('taskQueue is required in Workflow decorator options');
9
+ }
7
10
  return (target) => {
8
- (0, common_1.SetMetadata)(constants_1.TEMPORAL_WORKFLOW, options)(target);
11
+ const workflowOptions = {
12
+ ...options,
13
+ name: options.name || target.name,
14
+ };
15
+ Reflect.defineMetadata(constants_1.TEMPORAL_WORKFLOW, workflowOptions, target);
16
+ (0, common_1.SetMetadata)(constants_1.TEMPORAL_WORKFLOW, workflowOptions)(target);
9
17
  return target;
10
18
  };
11
19
  }
12
- exports.Workflow = Workflow;
13
20
  //# sourceMappingURL=workflow.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.decorator.js","sourceRoot":"","sources":["../../src/decorators/workflow.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAE7C,4CAAiD;AAEjD,SAAgB,QAAQ,CACtB,UAA2B,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAE5D,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,IAAA,oBAAW,EAAC,6BAAiB,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAPD,4BAOC"}
1
+ {"version":3,"file":"workflow.decorator.js","sourceRoot":"","sources":["../../src/decorators/workflow.decorator.ts"],"names":[],"mappings":";;AA8FA,4BAqBC;AAnHD,2CAA6C;AAC7C,4CAAiD;AA6FjD,SAAgB,QAAQ,CAAC,OAAyC;IAE9D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,MAAW,EAAE,EAAE;QAEnB,MAAM,eAAe,GAAG;YACpB,GAAG,OAAO;YACV,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI;SACpC,CAAC;QAGF,OAAO,CAAC,cAAc,CAAC,6BAAiB,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAGnE,IAAA,oBAAW,EAAC,6BAAiB,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;QAExD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
@@ -1,13 +1,15 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  export interface ClientCertPair {
4
2
  crt: Buffer;
5
3
  key: Buffer;
4
+ ca?: Buffer;
6
5
  }
7
6
  export interface TlsOptions {
8
7
  clientCertPair: ClientCertPair;
8
+ serverName?: string;
9
+ verifyServer?: boolean;
9
10
  }
10
11
  export interface ConnectionOptions {
11
12
  address: string;
12
13
  tls?: TlsOptions;
14
+ connectionTimeout?: number;
13
15
  }
@@ -1,8 +1,18 @@
1
1
  import { ModuleMetadata, Type } from '@nestjs/common';
2
- import { ConnectionOptions } from '@temporalio/client';
2
+ import { ConnectionOptions } from './base.interface';
3
+ import { RetryPolicy } from '@temporalio/client';
4
+ import { Duration, SearchAttributes, WorkflowIdConflictPolicy, WorkflowIdReusePolicy } from '@temporalio/common';
3
5
  export interface TemporalClientOptions {
4
6
  connection: ConnectionOptions;
5
7
  namespace?: string;
8
+ allowConnectionFailure?: boolean;
9
+ reconnect?: {
10
+ enabled?: boolean;
11
+ maxAttempts?: number;
12
+ initialDelayMs?: number;
13
+ maxDelayMs?: number;
14
+ backoffCoefficient?: number;
15
+ };
6
16
  }
7
17
  export interface TemporalClientOptionsFactory {
8
18
  createClientOptions(): Promise<TemporalClientOptions> | TemporalClientOptions;
@@ -13,3 +23,19 @@ export interface TemporalClientAsyncOptions extends Pick<ModuleMetadata, 'import
13
23
  useFactory?: (...args: any[]) => Promise<TemporalClientOptions> | TemporalClientOptions;
14
24
  inject?: any[];
15
25
  }
26
+ export interface StartWorkflowOptions {
27
+ taskQueue: string;
28
+ workflowId?: string;
29
+ signal?: string;
30
+ cronSchedule?: string;
31
+ retry?: RetryPolicy;
32
+ startDelay?: Duration;
33
+ workflowExecutionTimeout?: Duration;
34
+ workflowTaskTimeout?: Duration;
35
+ workflowRunTimeout?: Duration;
36
+ workflowIdReusePolicy?: WorkflowIdReusePolicy;
37
+ workflowIdConflictPolicy?: WorkflowIdConflictPolicy;
38
+ searchAttributes?: SearchAttributes;
39
+ followRuns?: boolean;
40
+ memo?: Record<string, unknown>;
41
+ }
@@ -1,5 +1,5 @@
1
1
  import { ModuleMetadata, Type } from '@nestjs/common';
2
- import { NativeConnectionOptions, RuntimeOptions } from '@temporalio/worker';
2
+ import { NativeConnectionOptions, RuntimeOptions, WorkerOptions as TemporalSdkWorkerOptions } from '@temporalio/worker';
3
3
  export interface TemporalWorkerOptions {
4
4
  connection: NativeConnectionOptions;
5
5
  namespace: string;
@@ -7,7 +7,22 @@ export interface TemporalWorkerOptions {
7
7
  workflowsPath: string;
8
8
  activityClasses?: Array<new (...args: any[]) => any>;
9
9
  runtimeOptions?: RuntimeOptions;
10
- workerOptions?: WorkerOptions;
10
+ workerOptions?: TemporalSdkWorkerOptions;
11
+ autoStart?: {
12
+ enabled?: boolean;
13
+ delayMs?: number;
14
+ };
15
+ allowWorkerFailure?: boolean;
16
+ monitoring?: {
17
+ statsIntervalMs?: number;
18
+ metrics?: {
19
+ enabled?: boolean;
20
+ prometheus?: {
21
+ enabled?: boolean;
22
+ port?: number;
23
+ };
24
+ };
25
+ };
11
26
  }
12
27
  export interface TemporalWorkerOptionsFactory {
13
28
  createWorkerOptions(): Promise<TemporalWorkerOptions> | TemporalWorkerOptions;