@diia-inhouse/workflow 1.17.11 → 2.5.0

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 (144) hide show
  1. package/dist/activities/index.d.ts +1 -0
  2. package/dist/activities/index.js +2 -18
  3. package/dist/activities/proxy.d.ts +34 -0
  4. package/dist/activities/proxy.js +16 -24
  5. package/dist/activity.d.ts +2 -0
  6. package/dist/activity.js +2 -15
  7. package/dist/cli/checkWorkflowDeterminism.js +249 -275
  8. package/dist/cli/determinism/errorClassifier.js +56 -60
  9. package/dist/cli/determinism/historyFiles.js +68 -97
  10. package/dist/cli/determinism/index.js +7 -19
  11. package/dist/cli/determinism/replayExecutor.js +114 -133
  12. package/dist/cli/determinism/replayOptions.js +13 -22
  13. package/dist/cli/determinism/report.js +55 -45
  14. package/dist/cli/determinism/reportPrinter.js +101 -138
  15. package/dist/cli/index.d.ts +1 -0
  16. package/dist/cli/index.js +79 -119
  17. package/dist/cli/syncTemporalSchedules.js +74 -91
  18. package/dist/cli/updateTemporalSchedule.js +43 -53
  19. package/dist/client.d.ts +3 -0
  20. package/dist/client.js +3 -19
  21. package/dist/common.d.ts +2 -0
  22. package/dist/common.js +2 -13
  23. package/dist/encryption/crypto.d.ts +7 -0
  24. package/dist/encryption/crypto.js +20 -22
  25. package/dist/encryption/dataConverter.d.ts +7 -0
  26. package/dist/encryption/dataConverter.js +15 -22
  27. package/dist/encryption/encryptionCodec.d.ts +31 -0
  28. package/dist/encryption/encryptionCodec.js +108 -124
  29. package/dist/encryption/index.d.ts +3 -0
  30. package/dist/encryption/index.js +4 -20
  31. package/dist/index.d.ts +7 -0
  32. package/dist/index.js +6 -42
  33. package/dist/instrumentation.js +6 -10
  34. package/dist/interceptors/asyncLocalStorageBridge.js +29 -66
  35. package/dist/interceptors/traceLogAttributes.d.ts +6 -0
  36. package/dist/interceptors/traceLogAttributes.js +16 -54
  37. package/dist/interceptors.d.ts +6 -0
  38. package/dist/interceptors.js +6 -8
  39. package/dist/interfaces/config.d.ts +58 -0
  40. package/dist/interfaces/index.d.ts +1 -0
  41. package/dist/interfaces/services/schedulesExporter.d.ts +96 -0
  42. package/dist/interfaces/services/worker.d.ts +60 -0
  43. package/dist/operations.d.ts +9 -0
  44. package/dist/operations.js +11 -75
  45. package/dist/services/client.d.ts +24 -0
  46. package/dist/services/client.js +89 -96
  47. package/dist/services/schedulesExporter.d.ts +101 -0
  48. package/dist/services/schedulesExporter.js +456 -0
  49. package/dist/services/worker/identity.d.ts +4 -0
  50. package/dist/services/worker/identity.js +6 -9
  51. package/dist/services/worker.d.ts +124 -0
  52. package/dist/services/worker.js +324 -304
  53. package/dist/services/workerHealth.d.ts +15 -0
  54. package/dist/services/workerHealth.js +26 -35
  55. package/dist/testing.d.ts +42 -0
  56. package/dist/testing.js +43 -54
  57. package/dist/worker.d.ts +9 -0
  58. package/dist/worker.js +7 -25
  59. package/package.json +40 -37
  60. package/dist/activities/index.js.map +0 -1
  61. package/dist/activities/proxy.js.map +0 -1
  62. package/dist/activity.js.map +0 -1
  63. package/dist/cli/checkWorkflowDeterminism.js.map +0 -1
  64. package/dist/cli/determinism/errorClassifier.js.map +0 -1
  65. package/dist/cli/determinism/historyFiles.js.map +0 -1
  66. package/dist/cli/determinism/index.js.map +0 -1
  67. package/dist/cli/determinism/replayExecutor.js.map +0 -1
  68. package/dist/cli/determinism/replayOptions.js.map +0 -1
  69. package/dist/cli/determinism/report.js.map +0 -1
  70. package/dist/cli/determinism/reportPrinter.js.map +0 -1
  71. package/dist/cli/determinism/types.js +0 -3
  72. package/dist/cli/determinism/types.js.map +0 -1
  73. package/dist/cli/index.js.map +0 -1
  74. package/dist/cli/syncTemporalSchedules.js.map +0 -1
  75. package/dist/cli/updateTemporalSchedule.js.map +0 -1
  76. package/dist/client.js.map +0 -1
  77. package/dist/common.js.map +0 -1
  78. package/dist/encryption/crypto.js.map +0 -1
  79. package/dist/encryption/dataConverter.js.map +0 -1
  80. package/dist/encryption/encryptionCodec.js.map +0 -1
  81. package/dist/encryption/index.js.map +0 -1
  82. package/dist/index.js.map +0 -1
  83. package/dist/instrumentation.js.map +0 -1
  84. package/dist/interceptors/asyncLocalStorageBridge.js.map +0 -1
  85. package/dist/interceptors/index.js +0 -8
  86. package/dist/interceptors/index.js.map +0 -1
  87. package/dist/interceptors/traceLogAttributes.js.map +0 -1
  88. package/dist/interceptors.js.map +0 -1
  89. package/dist/interfaces/config.js +0 -3
  90. package/dist/interfaces/config.js.map +0 -1
  91. package/dist/interfaces/index.js +0 -18
  92. package/dist/interfaces/index.js.map +0 -1
  93. package/dist/interfaces/services/worker.js +0 -3
  94. package/dist/interfaces/services/worker.js.map +0 -1
  95. package/dist/operations.js.map +0 -1
  96. package/dist/services/client.js.map +0 -1
  97. package/dist/services/index.js +0 -19
  98. package/dist/services/index.js.map +0 -1
  99. package/dist/services/worker/identity.js.map +0 -1
  100. package/dist/services/worker/index.js +0 -18
  101. package/dist/services/worker/index.js.map +0 -1
  102. package/dist/services/worker.js.map +0 -1
  103. package/dist/services/workerHealth.js.map +0 -1
  104. package/dist/testing.js.map +0 -1
  105. package/dist/types/activities/index.d.ts +0 -1
  106. package/dist/types/activities/proxy.d.ts +0 -35
  107. package/dist/types/activity.d.ts +0 -1
  108. package/dist/types/cli/checkWorkflowDeterminism.d.ts +0 -19
  109. package/dist/types/cli/determinism/errorClassifier.d.ts +0 -15
  110. package/dist/types/cli/determinism/historyFiles.d.ts +0 -18
  111. package/dist/types/cli/determinism/index.d.ts +0 -10
  112. package/dist/types/cli/determinism/replayExecutor.d.ts +0 -9
  113. package/dist/types/cli/determinism/replayOptions.d.ts +0 -7
  114. package/dist/types/cli/determinism/report.d.ts +0 -16
  115. package/dist/types/cli/determinism/reportPrinter.d.ts +0 -5
  116. package/dist/types/cli/determinism/types.d.ts +0 -44
  117. package/dist/types/cli/index.d.ts +0 -2
  118. package/dist/types/cli/syncTemporalSchedules.d.ts +0 -12
  119. package/dist/types/cli/updateTemporalSchedule.d.ts +0 -9
  120. package/dist/types/client.d.ts +0 -2
  121. package/dist/types/common.d.ts +0 -1
  122. package/dist/types/encryption/crypto.d.ts +0 -3
  123. package/dist/types/encryption/dataConverter.d.ts +0 -3
  124. package/dist/types/encryption/encryptionCodec.d.ts +0 -27
  125. package/dist/types/encryption/index.d.ts +0 -3
  126. package/dist/types/index.d.ts +0 -3
  127. package/dist/types/instrumentation.d.ts +0 -2
  128. package/dist/types/interceptors/asyncLocalStorageBridge.d.ts +0 -21
  129. package/dist/types/interceptors/index.d.ts +0 -2
  130. package/dist/types/interceptors/traceLogAttributes.d.ts +0 -2
  131. package/dist/types/interceptors.d.ts +0 -2
  132. package/dist/types/interfaces/config.d.ts +0 -38
  133. package/dist/types/interfaces/index.d.ts +0 -1
  134. package/dist/types/interfaces/services/worker.d.ts +0 -37
  135. package/dist/types/operations.d.ts +0 -5
  136. package/dist/types/services/client.d.ts +0 -20
  137. package/dist/types/services/index.d.ts +0 -2
  138. package/dist/types/services/worker/identity.d.ts +0 -1
  139. package/dist/types/services/worker/index.d.ts +0 -1
  140. package/dist/types/services/worker.d.ts +0 -113
  141. package/dist/types/services/workerHealth.d.ts +0 -11
  142. package/dist/types/testing.d.ts +0 -42
  143. package/dist/types/worker.d.ts +0 -3
  144. package/dist/worker.js.map +0 -1
@@ -1,113 +0,0 @@
1
- import { AsyncLocalStorage } from 'node:async_hooks';
2
- import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
3
- import { Worker, WorkerOptions } from '@temporalio/worker';
4
- import { EnvService } from '@diia-inhouse/env';
5
- import { AlsData, Logger } from '@diia-inhouse/types';
6
- import { AppConfig } from '../interfaces/config';
7
- import type { ActivityClass, App, WorkerBootstrapOptions } from '../interfaces/services/worker';
8
- export type { ActivityClass, App, State, WorkerBootstrapOptions } from '../interfaces/services/worker';
9
- export type { WorkerHealthDetails } from './workerHealth';
10
- export { buildWorkerIdentity } from './worker/identity';
11
- export { WorkerHealthService } from './workerHealth';
12
- /**
13
- * Applies service process configuration overrides when the worker runs separately.
14
- *
15
- * When `temporal.workerInProcess` is `false`, disables `temporal` and `temporal-worker` scrapers
16
- * so the main service does not scrape metrics that the worker process handles.
17
- *
18
- * Mutates the config object in place. Safe to call when scrapers are absent.
19
- */
20
- export declare function applyServiceProcessConfig(config: AppConfig): void;
21
- /**
22
- * Applies worker process configuration overrides.
23
- *
24
- * - Disables queue consumers on all rabbit connections (unless `temporal.disableQueueConsumers` is `false`)
25
- * - Overrides `metrics.custom.port` with the `'temporal-worker'` scraper port and disables that scraper to prevent self-scraping
26
- *
27
- * Mutates the config object in place. Safe to call when queue config is absent.
28
- */
29
- export declare function applyWorkerProcessConfig(config: AppConfig): void;
30
- export declare function instantiateActivities(app: App, workerActivities: Record<string, ActivityClass>): Record<string, (...args: unknown[]) => Promise<unknown>>;
31
- /**
32
- * Initializes and starts Temporal worker with full dependency injection support.
33
- *
34
- * This is the recommended way to initialize Temporal workers. It handles:
35
- * - Automatic dependency injection for activities
36
- * - AsyncLocalStorage setup for distributed tracing
37
- * - OpenTelemetry integration
38
- * - Activity instantiation and binding
39
- *
40
- * @param app - App instance for DI container and config access
41
- * @param options - Worker configuration options
42
- * @param options.nodeTracerProvider - OpenTelemetry tracer provider
43
- * @param options.workflowsPath - Path to workflows module
44
- * @param options.activities - Activity classes to instantiate
45
- *
46
- * @example
47
- * ```typescript
48
- * // Define your activities
49
- * const workerActivities = {
50
- * userActivity: UserActivity,
51
- * notificationActivity: NotificationActivity,
52
- * }
53
- *
54
- * // Initialize and start the worker
55
- * await initTemporalWorker(app, {
56
- * nodeTracerProvider,
57
- * workflowsPath: require.resolve('./worker/workflows'),
58
- * activities: workerActivities,
59
- * })
60
- * ```
61
- */
62
- export declare function initTemporalWorker(app: App, options: {
63
- nodeTracerProvider: NodeTracerProvider;
64
- workflowsPath: string;
65
- activities: Record<string, ActivityClass>;
66
- } & Omit<WorkerOptions, 'taskQueue' | 'activities' | 'workflowsPath'>): Promise<void>;
67
- /**
68
- * Bootstraps and runs Temporal worker with graceful shutdown.
69
- *
70
- * Handles both in-process and separate-process worker topologies:
71
- *
72
- * - **In-process** (`workerInProcess` is `true` or unset): initializes and runs the worker.
73
- * - **Separate process** (called from a dedicated worker entry with `configFactory`/`deps`):
74
- * manages the full application lifecycle: setConfig → apply worker overrides → setDeps →
75
- * initialize → start → run worker.
76
- * - **Service-only** (`workerInProcess` is `false`, no `configFactory`): disables temporal
77
- * scrapers on the main service (worker handles them separately) and returns immediately.
78
- *
79
- * Automatically integrates worker health with the app's centralized health check
80
- * system via `HealthCheck.addHealthCheckable()`.
81
- *
82
- * @param app - App instance for DI container and config access
83
- * @param options - Worker bootstrap options
84
- *
85
- * @example
86
- * ```typescript
87
- * // Separate worker process with full lifecycle management
88
- * const app = new Application(serviceName, nodeTracerProvider, loggerConfig)
89
- *
90
- * await bootstrapWorker(app, {
91
- * configFactory,
92
- * deps,
93
- * workflowsPath: require.resolve('./worker/workflows'),
94
- * activities: workerActivities,
95
- * nodeTracerProvider,
96
- * })
97
- * ```
98
- */
99
- export declare function bootstrapWorker(app: App, options: WorkerBootstrapOptions): Promise<void>;
100
- /**
101
- * Initializes Temporal worker.
102
- *
103
- * @param config - Application configuration
104
- * @param options - Worker options including workflows path
105
- * @param envService - Environment service instance
106
- * @param logger - Logger instance (optional)
107
- * @param nodeTracerProvider - OpenTelemetry tracer provider (optional)
108
- * @param asyncLocalStorage - AsyncLocalStorage instance for tracing context (optional)
109
- * @returns Configured Temporal worker
110
- */
111
- export declare function initWorker({ temporal: temporalConfig, metrics: { custom: metricsConfig } }: AppConfig, options: Omit<WorkerOptions, 'taskQueue'> & {
112
- taskQueue?: string;
113
- }, envService: EnvService, logger?: Logger, nodeTracerProvider?: NodeTracerProvider, asyncLocalStorage?: AsyncLocalStorage<AlsData>): Promise<Worker>;
@@ -1,11 +0,0 @@
1
- import { WorkerStatus } from '@temporalio/worker';
2
- import { HealthCheckResult, OnHealthCheck } from '@diia-inhouse/types';
3
- import { WorkerStatusProvider } from '../interfaces/services/worker';
4
- export interface WorkerHealthDetails {
5
- worker: WorkerStatus | 'NOT_INITIALIZED';
6
- }
7
- export declare class WorkerHealthService implements OnHealthCheck {
8
- private statusProvider?;
9
- setStatusProvider(provider: WorkerStatusProvider): void;
10
- onHealthCheck(): Promise<HealthCheckResult<WorkerHealthDetails>>;
11
- }
@@ -1,42 +0,0 @@
1
- export { defaultActivityInfo, MockActivityEnvironment, TestWorkflowEnvironment, TimeSkippingWorkflowClient, workflowInterceptorModules, } from '@temporalio/testing';
2
- type ActivityMethods<T> = T extends {
3
- prototype: infer P;
4
- } ? {
5
- [K in keyof P]?: P[K] extends (...args: any[]) => any ? (...args: Parameters<P[K]>) => ReturnType<P[K]> : never;
6
- } : never;
7
- /**
8
- * Redefines instantiated activities for use in test environments.
9
- *
10
- * This function allows to override specific activity methods with mock implementations
11
- * while preserving the overall activity structure.
12
- *
13
- * @example
14
- * // Original activities object
15
- * const activities = instantiateActivities(app, workerActivities)
16
- *
17
- * // Mock specific methods for testing
18
- * const mockedActivities = {
19
- * ...activities,
20
- * ...mockActivities<typeof workerActivities>({
21
- * user: {
22
- * getProfile: async (userId) => ({ id: userId, name: 'Test User' }),
23
- * },
24
- * payment: {
25
- * process: async () => ({ success: true, transactionId: 'mock-123' })
26
- * }
27
- * })
28
- * }
29
- *
30
- * @example
31
- * // Using with test runner
32
- * await runWorkflow({
33
- * workflow: myWorkflow,
34
- * args: [workflowInput],
35
- * activities: mockedActivities
36
- * })
37
- */
38
- export declare function mockActivities<TActivities extends Record<string, {
39
- prototype: unknown;
40
- }>>(activities: {
41
- [K in keyof TActivities]?: ActivityMethods<TActivities[K]>;
42
- }): Record<string, (...args: unknown[]) => unknown>;
@@ -1,3 +0,0 @@
1
- export { type WorkerOptions, type WorkerStatus, type WorkerInterceptors, NativeConnection, Runtime, type State, bundleWorkflowCode, Worker, } from '@temporalio/worker';
2
- export * from './interceptors';
3
- export * from './services/worker';
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAS2B;AALvB,0GAAA,gBAAgB,OAAA;AAChB,iGAAA,OAAO,OAAA;AAEP,4GAAA,kBAAkB,OAAA;AAClB,gGAAA,MAAM,OAAA;AAGV,iDAA8B;AAE9B,oDAAiC"}