@diia-inhouse/workflow 1.15.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 (93) hide show
  1. package/LICENCE.md +287 -0
  2. package/README.md +93 -0
  3. package/dist/activities/index.js +18 -0
  4. package/dist/activities/index.js.map +1 -0
  5. package/dist/activities/proxy.js +26 -0
  6. package/dist/activities/proxy.js.map +1 -0
  7. package/dist/activity.js +15 -0
  8. package/dist/activity.js.map +1 -0
  9. package/dist/cli/checkWorkflowDeterminism.js +443 -0
  10. package/dist/cli/checkWorkflowDeterminism.js.map +1 -0
  11. package/dist/cli/index.js +111 -0
  12. package/dist/cli/index.js.map +1 -0
  13. package/dist/cli/syncTemporalSchedules.js +92 -0
  14. package/dist/cli/syncTemporalSchedules.js.map +1 -0
  15. package/dist/cli/updateTemporalSchedule.js +53 -0
  16. package/dist/cli/updateTemporalSchedule.js.map +1 -0
  17. package/dist/client.js +19 -0
  18. package/dist/client.js.map +1 -0
  19. package/dist/common.js +13 -0
  20. package/dist/common.js.map +1 -0
  21. package/dist/encryption/crypto.js +28 -0
  22. package/dist/encryption/crypto.js.map +1 -0
  23. package/dist/encryption/dataConverter.js +27 -0
  24. package/dist/encryption/dataConverter.js.map +1 -0
  25. package/dist/encryption/encryptionCodec.js +125 -0
  26. package/dist/encryption/encryptionCodec.js.map +1 -0
  27. package/dist/encryption/index.js +20 -0
  28. package/dist/encryption/index.js.map +1 -0
  29. package/dist/index.js +42 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/instrumentation.js +10 -0
  32. package/dist/instrumentation.js.map +1 -0
  33. package/dist/interceptors/asyncLocalStorageBridge.js +67 -0
  34. package/dist/interceptors/asyncLocalStorageBridge.js.map +1 -0
  35. package/dist/interceptors/index.js +6 -0
  36. package/dist/interceptors/index.js.map +1 -0
  37. package/dist/interceptors.js +10 -0
  38. package/dist/interceptors.js.map +1 -0
  39. package/dist/interfaces/config.js +3 -0
  40. package/dist/interfaces/config.js.map +1 -0
  41. package/dist/interfaces/index.js +18 -0
  42. package/dist/interfaces/index.js.map +1 -0
  43. package/dist/interfaces/services/worker.js +3 -0
  44. package/dist/interfaces/services/worker.js.map +1 -0
  45. package/dist/operations.js +77 -0
  46. package/dist/operations.js.map +1 -0
  47. package/dist/services/client.js +96 -0
  48. package/dist/services/client.js.map +1 -0
  49. package/dist/services/index.js +19 -0
  50. package/dist/services/index.js.map +1 -0
  51. package/dist/services/worker/identity.js +11 -0
  52. package/dist/services/worker/identity.js.map +1 -0
  53. package/dist/services/worker/index.js +18 -0
  54. package/dist/services/worker/index.js.map +1 -0
  55. package/dist/services/worker.js +324 -0
  56. package/dist/services/worker.js.map +1 -0
  57. package/dist/services/workerHealth.js +39 -0
  58. package/dist/services/workerHealth.js.map +1 -0
  59. package/dist/testing.js +57 -0
  60. package/dist/testing.js.map +1 -0
  61. package/dist/types/activities/index.d.ts +1 -0
  62. package/dist/types/activities/proxy.d.ts +35 -0
  63. package/dist/types/activity.d.ts +1 -0
  64. package/dist/types/cli/checkWorkflowDeterminism.d.ts +22 -0
  65. package/dist/types/cli/index.d.ts +2 -0
  66. package/dist/types/cli/syncTemporalSchedules.d.ts +12 -0
  67. package/dist/types/cli/updateTemporalSchedule.d.ts +9 -0
  68. package/dist/types/client.d.ts +2 -0
  69. package/dist/types/common.d.ts +1 -0
  70. package/dist/types/encryption/crypto.d.ts +3 -0
  71. package/dist/types/encryption/dataConverter.d.ts +3 -0
  72. package/dist/types/encryption/encryptionCodec.d.ts +27 -0
  73. package/dist/types/encryption/index.d.ts +3 -0
  74. package/dist/types/index.d.ts +3 -0
  75. package/dist/types/instrumentation.d.ts +2 -0
  76. package/dist/types/interceptors/asyncLocalStorageBridge.d.ts +21 -0
  77. package/dist/types/interceptors/index.d.ts +1 -0
  78. package/dist/types/interceptors.d.ts +2 -0
  79. package/dist/types/interfaces/config.d.ts +38 -0
  80. package/dist/types/interfaces/index.d.ts +1 -0
  81. package/dist/types/interfaces/services/worker.d.ts +37 -0
  82. package/dist/types/operations.d.ts +5 -0
  83. package/dist/types/services/client.d.ts +20 -0
  84. package/dist/types/services/index.d.ts +2 -0
  85. package/dist/types/services/worker/identity.d.ts +1 -0
  86. package/dist/types/services/worker/index.d.ts +1 -0
  87. package/dist/types/services/worker.d.ts +113 -0
  88. package/dist/types/services/workerHealth.d.ts +11 -0
  89. package/dist/types/testing.d.ts +42 -0
  90. package/dist/types/worker.d.ts +3 -0
  91. package/dist/worker.js +25 -0
  92. package/dist/worker.js.map +1 -0
  93. package/package.json +139 -0
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SyncTemporalSchedulesCommand = void 0;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const client_1 = require("@temporalio/client");
10
+ const ts_node_1 = require("ts-node");
11
+ const env_1 = require("@diia-inhouse/env");
12
+ const utils_1 = require("@diia-inhouse/utils");
13
+ const client_2 = require("../services/client");
14
+ (0, ts_node_1.register)();
15
+ class SyncTemporalSchedulesCommand {
16
+ logger;
17
+ envService;
18
+ constructor(logger, envService) {
19
+ this.logger = logger;
20
+ this.envService = envService;
21
+ }
22
+ async run(schedulesPath = 'worker/schedules', taskQueueParam) {
23
+ const startTime = Date.now();
24
+ this.logger.info('Starting sync temporal schedules', { schedulesPath, taskQueue: taskQueueParam });
25
+ const schedules = await this.loadSchedules(schedulesPath);
26
+ if (!schedules) {
27
+ this.logger.info('Temporal schedules not found under provided path', { schedulesPath });
28
+ return;
29
+ }
30
+ const taskQueue = taskQueueParam || this.getTaskQueue();
31
+ if (!taskQueue) {
32
+ throw new Error('Task queue is not provided');
33
+ }
34
+ const temporalConfig = {
35
+ address: env_1.EnvService.getVar('TEMPORAL_ADDRESS'),
36
+ namespace: env_1.EnvService.getVar('TEMPORAL_NAMESPACE', 'string', 'default'),
37
+ taskQueue,
38
+ encryptionEnabled: env_1.EnvService.getVar('TEMPORAL_ENCRYPTION_ENABLED', 'boolean', false),
39
+ encryptionKeyId: env_1.EnvService.getVar('TEMPORAL_ENCRYPTION_KEY_ID', 'string', ''),
40
+ };
41
+ const client = new client_2.TemporalClient(temporalConfig, this.envService, this.logger);
42
+ await client.onInit();
43
+ await this.syncSchedules(client, schedules);
44
+ this.logger.info(`Sync temporal schedules finished! It took ${((Date.now() - startTime) / 1000).toFixed(1)} seconds`);
45
+ await client.nativeClient.connection.close();
46
+ // eslint-disable-next-line unicorn/no-process-exit
47
+ process.exit(0);
48
+ }
49
+ async loadSchedules(schedulesPath) {
50
+ const fullSchedulesPath = this.resolveSchedulesPath(schedulesPath);
51
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
52
+ const schedulesExist = (0, node_fs_1.existsSync)(fullSchedulesPath); // nosemgrep: eslint.detect-non-literal-fs-filename
53
+ if (!schedulesExist) {
54
+ return;
55
+ }
56
+ const module = await import(fullSchedulesPath);
57
+ return module.default;
58
+ }
59
+ resolveSchedulesPath(schedulesPath) {
60
+ const baseDir = node_path_1.default.resolve('./dist');
61
+ const fullPath = node_path_1.default.resolve(baseDir, schedulesPath, 'index.js');
62
+ if (!fullPath.startsWith(baseDir + node_path_1.default.sep)) {
63
+ throw new Error(`Invalid schedules path: path traversal detected in '${schedulesPath}'`);
64
+ }
65
+ return fullPath;
66
+ }
67
+ async syncSchedules(client, schedules) {
68
+ try {
69
+ const scheduleNames = Object.keys(schedules);
70
+ this.logger.info(`Found ${scheduleNames.length} schedules to sync: ${scheduleNames.join(', ')}`);
71
+ await client.syncSchedules(schedules);
72
+ this.logger.info('Successfully synced temporal schedules');
73
+ }
74
+ catch (err) {
75
+ if (err instanceof client_1.ScheduleAlreadyRunning) {
76
+ this.logger.info('Schedule already running, skipping creation');
77
+ return;
78
+ }
79
+ this.logger.error('Failed to sync temporal schedules', { err });
80
+ throw err;
81
+ }
82
+ }
83
+ getTaskQueue() {
84
+ const taskQueue = env_1.EnvService.getVar('TEMPORAL_TASK_QUEUE', 'string', '');
85
+ if (!taskQueue) {
86
+ return utils_1.utils.getServiceName();
87
+ }
88
+ return taskQueue;
89
+ }
90
+ }
91
+ exports.SyncTemporalSchedulesCommand = SyncTemporalSchedulesCommand;
92
+ //# sourceMappingURL=syncTemporalSchedules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncTemporalSchedules.js","sourceRoot":"","sources":["../../src/cli/syncTemporalSchedules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateTemporalScheduleCommand = void 0;
4
+ const env_1 = require("@diia-inhouse/env");
5
+ const utils_1 = require("@diia-inhouse/utils");
6
+ const client_1 = require("../services/client");
7
+ class UpdateTemporalScheduleCommand {
8
+ logger;
9
+ envService;
10
+ constructor(logger, envService) {
11
+ this.logger = logger;
12
+ this.envService = envService;
13
+ }
14
+ async run(scheduleId, updateData) {
15
+ const startTime = Date.now();
16
+ this.logger.info('Starting update temporal schedule', { scheduleId });
17
+ const taskQueue = this.getTaskQueue();
18
+ if (!taskQueue) {
19
+ throw new Error('Task queue is not provided');
20
+ }
21
+ const temporalConfig = {
22
+ address: env_1.EnvService.getVar('TEMPORAL_ADDRESS'),
23
+ namespace: env_1.EnvService.getVar('TEMPORAL_NAMESPACE', 'string', 'default'),
24
+ taskQueue,
25
+ encryptionEnabled: env_1.EnvService.getVar('TEMPORAL_ENCRYPTION_ENABLED', 'boolean', false),
26
+ encryptionKeyId: env_1.EnvService.getVar('TEMPORAL_ENCRYPTION_KEY_ID', 'string', ''),
27
+ };
28
+ const client = new client_1.TemporalClient(temporalConfig, this.envService, this.logger);
29
+ await client.onInit();
30
+ try {
31
+ await client.updateSchedule(scheduleId, updateData);
32
+ }
33
+ catch (err) {
34
+ this.logger.error('Failed to update temporal schedule', { err });
35
+ throw err;
36
+ }
37
+ finally {
38
+ await client.nativeClient.connection.close();
39
+ }
40
+ this.logger.info(`Update temporal schedule finished! It took ${((Date.now() - startTime) / 1000).toFixed(1)} seconds`);
41
+ // eslint-disable-next-line unicorn/no-process-exit
42
+ process.exit(0);
43
+ }
44
+ getTaskQueue() {
45
+ const taskQueue = env_1.EnvService.getVar('TEMPORAL_TASK_QUEUE', 'string', '');
46
+ if (!taskQueue) {
47
+ return utils_1.utils.getServiceName();
48
+ }
49
+ return taskQueue;
50
+ }
51
+ }
52
+ exports.UpdateTemporalScheduleCommand = UpdateTemporalScheduleCommand;
53
+ //# sourceMappingURL=updateTemporalSchedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateTemporalSchedule.js","sourceRoot":"","sources":["../../src/cli/updateTemporalSchedule.ts"],"names":[],"mappings":";;;AAEA,2CAA8C;AAE9C,+CAA2C;AAG3C,+CAAmD;AAEnD,MAAa,6BAA6B;IAEjB;IACA;IAFrB,YACqB,MAAc,EACd,UAAsB;QADtB,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAY;IACxC,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,UAAkB,EAAE,UAAmC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACrC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QACjD,CAAC;QAED,MAAM,cAAc,GAAmB;YACnC,OAAO,EAAE,gBAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC9C,SAAS,EAAE,gBAAU,CAAC,MAAM,CAAC,oBAAoB,EAAE,QAAQ,EAAE,SAAS,CAAC;YACvE,SAAS;YACT,iBAAiB,EAAE,gBAAU,CAAC,MAAM,CAAC,6BAA6B,EAAE,SAAS,EAAE,KAAK,CAAC;YACrF,eAAe,EAAE,gBAAU,CAAC,MAAM,CAAC,4BAA4B,EAAE,QAAQ,EAAE,EAAE,CAAC;SACjF,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,uBAAc,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE/E,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;QAErB,IAAI,CAAC;YACD,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAmC,CAAC,CAAA;QAChF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAChE,MAAM,GAAG,CAAA;QACb,CAAC;gBAAS,CAAC;YACP,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QAChD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAEtH,mDAAmD;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAEO,YAAY;QAChB,MAAM,SAAS,GAAG,gBAAU,CAAC,MAAM,CAAC,qBAAqB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QAExE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,aAAK,CAAC,cAAc,EAAE,CAAA;QACjC,CAAC;QAED,OAAO,SAAS,CAAA;IACpB,CAAC;CACJ;AApDD,sEAoDC"}
package/dist/client.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemporalClient = exports.ChildWorkflowFailure = exports.ApplicationFailure = exports.TerminatedFailure = exports.CancelledFailure = exports.TemporalFailure = exports.TimeoutFailure = exports.ServerFailure = exports.ActivityFailure = exports.WorkflowClient = exports.MONTHS = exports.DAYS_OF_WEEK = exports.Client = void 0;
4
+ var client_1 = require("@temporalio/client");
5
+ Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return client_1.Client; } });
6
+ Object.defineProperty(exports, "DAYS_OF_WEEK", { enumerable: true, get: function () { return client_1.DAYS_OF_WEEK; } });
7
+ Object.defineProperty(exports, "MONTHS", { enumerable: true, get: function () { return client_1.MONTHS; } });
8
+ Object.defineProperty(exports, "WorkflowClient", { enumerable: true, get: function () { return client_1.WorkflowClient; } });
9
+ Object.defineProperty(exports, "ActivityFailure", { enumerable: true, get: function () { return client_1.ActivityFailure; } });
10
+ Object.defineProperty(exports, "ServerFailure", { enumerable: true, get: function () { return client_1.ServerFailure; } });
11
+ Object.defineProperty(exports, "TimeoutFailure", { enumerable: true, get: function () { return client_1.TimeoutFailure; } });
12
+ Object.defineProperty(exports, "TemporalFailure", { enumerable: true, get: function () { return client_1.TemporalFailure; } });
13
+ Object.defineProperty(exports, "CancelledFailure", { enumerable: true, get: function () { return client_1.CancelledFailure; } });
14
+ Object.defineProperty(exports, "TerminatedFailure", { enumerable: true, get: function () { return client_1.TerminatedFailure; } });
15
+ Object.defineProperty(exports, "ApplicationFailure", { enumerable: true, get: function () { return client_1.ApplicationFailure; } });
16
+ Object.defineProperty(exports, "ChildWorkflowFailure", { enumerable: true, get: function () { return client_1.ChildWorkflowFailure; } });
17
+ var client_2 = require("./services/client");
18
+ Object.defineProperty(exports, "TemporalClient", { enumerable: true, get: function () { return client_2.TemporalClient; } });
19
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,6CAkB2B;AAjBvB,gGAAA,MAAM,OAAA;AAEN,sGAAA,YAAY,OAAA;AAEZ,gGAAA,MAAM,OAAA;AAEN,wGAAA,cAAc,OAAA;AACd,yGAAA,eAAe,OAAA;AAEf,uGAAA,aAAa,OAAA;AACb,wGAAA,cAAc,OAAA;AACd,yGAAA,eAAe,OAAA;AACf,0GAAA,gBAAgB,OAAA;AAChB,2GAAA,iBAAiB,OAAA;AACjB,4GAAA,kBAAkB,OAAA;AAClB,8GAAA,oBAAoB,OAAA;AAIxB,4CAAkD;AAAzC,wGAAA,cAAc,OAAA"}
package/dist/common.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowExecutionAlreadyStartedError = exports.rootCause = exports.defaultFailureConverter = exports.extractWorkflowType = exports.ensureTemporalFailure = exports.ensureApplicationFailure = exports.cutoffStackTrace = exports.arrayFromPayloads = void 0;
4
+ var common_1 = require("@temporalio/common");
5
+ Object.defineProperty(exports, "arrayFromPayloads", { enumerable: true, get: function () { return common_1.arrayFromPayloads; } });
6
+ Object.defineProperty(exports, "cutoffStackTrace", { enumerable: true, get: function () { return common_1.cutoffStackTrace; } });
7
+ Object.defineProperty(exports, "ensureApplicationFailure", { enumerable: true, get: function () { return common_1.ensureApplicationFailure; } });
8
+ Object.defineProperty(exports, "ensureTemporalFailure", { enumerable: true, get: function () { return common_1.ensureTemporalFailure; } });
9
+ Object.defineProperty(exports, "extractWorkflowType", { enumerable: true, get: function () { return common_1.extractWorkflowType; } });
10
+ Object.defineProperty(exports, "defaultFailureConverter", { enumerable: true, get: function () { return common_1.defaultFailureConverter; } });
11
+ Object.defineProperty(exports, "rootCause", { enumerable: true, get: function () { return common_1.rootCause; } });
12
+ Object.defineProperty(exports, "WorkflowExecutionAlreadyStartedError", { enumerable: true, get: function () { return common_1.WorkflowExecutionAlreadyStartedError; } });
13
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;AAAA,6CAU2B;AARvB,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAChB,kHAAA,wBAAwB,OAAA;AACxB,+GAAA,qBAAqB,OAAA;AACrB,6GAAA,mBAAmB,OAAA;AACnB,iHAAA,uBAAuB,OAAA;AACvB,mGAAA,SAAS,OAAA;AACT,8HAAA,oCAAoC,OAAA"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encrypt = encrypt;
4
+ exports.decrypt = decrypt;
5
+ const crypto_1 = require("crypto");
6
+ const CIPHER = 'AES-GCM';
7
+ const IV_LENGTH_BYTES = 12;
8
+ const TAG_LENGTH_BYTES = 16;
9
+ async function encrypt(data, key) {
10
+ const iv = crypto_1.webcrypto.getRandomValues(new Uint8Array(IV_LENGTH_BYTES));
11
+ const encrypted = await crypto_1.webcrypto.subtle.encrypt({
12
+ name: CIPHER,
13
+ iv,
14
+ tagLength: TAG_LENGTH_BYTES * 8,
15
+ }, key, data);
16
+ return Buffer.concat([iv, new Uint8Array(encrypted)]);
17
+ }
18
+ async function decrypt(encryptedData, key) {
19
+ const iv = encryptedData.subarray(0, IV_LENGTH_BYTES);
20
+ const ciphertext = encryptedData.subarray(IV_LENGTH_BYTES);
21
+ const decrypted = await crypto_1.webcrypto.subtle.decrypt({
22
+ name: CIPHER,
23
+ iv,
24
+ tagLength: TAG_LENGTH_BYTES * 8,
25
+ }, key, ciphertext);
26
+ return new Uint8Array(decrypted);
27
+ }
28
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/encryption/crypto.ts"],"names":[],"mappings":";;AAMA,0BAaC;AAED,0BAcC;AAnCD,mCAA4C;AAE5C,MAAM,MAAM,GAAG,SAAS,CAAA;AACxB,MAAM,eAAe,GAAG,EAAE,CAAA;AAC1B,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAEpB,KAAK,UAAU,OAAO,CAAC,IAAgB,EAAE,GAAqB;IACjE,MAAM,EAAE,GAAG,kBAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,MAAM,kBAAM,CAAC,MAAM,CAAC,OAAO,CACzC;QACI,IAAI,EAAE,MAAM;QACZ,EAAE;QACF,SAAS,EAAE,gBAAgB,GAAG,CAAC;KAClC,EACD,GAAG,EACH,IAAI,CACP,CAAA;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AACzD,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,aAAyB,EAAE,GAAqB;IAC1E,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;IACrD,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,MAAM,kBAAM,CAAC,MAAM,CAAC,OAAO,CACzC;QACI,IAAI,EAAE,MAAM;QACZ,EAAE;QACF,SAAS,EAAE,gBAAgB,GAAG,CAAC;KAClC,EACD,GAAG,EACH,UAAU,CACb,CAAA;IAED,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,CAAA;AACpC,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDataConverter = getDataConverter;
4
+ const env_1 = require("@diia-inhouse/env");
5
+ const types_1 = require("@diia-inhouse/types");
6
+ const encryptionCodec_1 = require("./encryptionCodec");
7
+ let dataConverterPromise;
8
+ const defaultRefreshInterval = types_1.DurationMs.Day;
9
+ async function getDataConverter(keyId, envService, refreshInterval) {
10
+ if (!dataConverterPromise) {
11
+ dataConverterPromise = createDataConverter(keyId, envService, refreshInterval);
12
+ }
13
+ return await dataConverterPromise;
14
+ }
15
+ async function createDataConverter(keyId, envService, refreshInterval = defaultRefreshInterval) {
16
+ const vaultEnabled = env_1.EnvService.getVar('VAULT_ENABLED', 'boolean', false);
17
+ const codec = await encryptionCodec_1.EncryptionCodec.create(keyId, envService, { vaultEnabled });
18
+ if (vaultEnabled && refreshInterval > 0) {
19
+ setInterval(async () => {
20
+ await codec?.refreshDefaultKey();
21
+ }, refreshInterval);
22
+ }
23
+ return {
24
+ payloadCodecs: [codec],
25
+ };
26
+ }
27
+ //# sourceMappingURL=dataConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataConverter.js","sourceRoot":"","sources":["../../src/encryption/dataConverter.ts"],"names":[],"mappings":";;AAUA,4CAMC;AAdD,2CAA8C;AAC9C,+CAAgD;AAEhD,uDAAmD;AAEnD,IAAI,oBAA4C,CAAA;AAChD,MAAM,sBAAsB,GAAG,kBAAU,CAAC,GAAG,CAAA;AAEtC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,UAAsB,EAAE,eAAwB;IAClG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACxB,oBAAoB,GAAG,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;IAClF,CAAC;IAED,OAAO,MAAM,oBAAoB,CAAA;AACrC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAC9B,KAAa,EACb,UAAsB,EACtB,eAAe,GAAG,sBAAsB;IAExC,MAAM,YAAY,GAAG,gBAAU,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IACzE,MAAM,KAAK,GAAG,MAAM,iCAAe,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;IAE/E,IAAI,YAAY,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACtC,WAAW,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,KAAK,EAAE,iBAAiB,EAAE,CAAA;QACpC,CAAC,EAAE,eAAe,CAAC,CAAA;IACvB,CAAC;IAED,OAAO;QACH,aAAa,EAAE,CAAC,KAAK,CAAC;KACzB,CAAA;AACL,CAAC"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EncryptionCodec = void 0;
7
+ const node_crypto_1 = require("node:crypto");
8
+ const common_1 = require("@temporalio/common");
9
+ const encoding_1 = require("@temporalio/common/lib/encoding");
10
+ const proto_1 = require("@temporalio/proto");
11
+ const diia_logger_1 = __importDefault(require("@diia-inhouse/diia-logger"));
12
+ const crypto_1 = require("./crypto");
13
+ class EncryptionCodec {
14
+ keys;
15
+ defaultKeyId;
16
+ envService;
17
+ logger;
18
+ batchSize;
19
+ encoding = 'binary/encrypted';
20
+ metadataEncryptionKeyId = 'encryption-key-id';
21
+ constructor(keys, defaultKeyId, envService, logger, options = {}) {
22
+ this.keys = keys;
23
+ this.defaultKeyId = defaultKeyId;
24
+ this.envService = envService;
25
+ this.logger = logger;
26
+ this.batchSize = options.batchSize ?? 50;
27
+ this.defaultKeyId = defaultKeyId;
28
+ }
29
+ static async create(keyId, envService, options, logger = new diia_logger_1.default()) {
30
+ const storedKeys = new Map();
31
+ const { vaultEnabled } = options;
32
+ if (!vaultEnabled) {
33
+ logger.info('Vault is disabled, extracting static keys from env for Temporal encryption');
34
+ const keys = JSON.parse(keyId);
35
+ for (const [fullKeyName, key] of Object.entries(keys)) {
36
+ storedKeys.set(fullKeyName, await EncryptionCodec.createCryptoKey(key));
37
+ }
38
+ const defaultKey = Object.keys(keys).toSorted((a, b) => {
39
+ const versionA = Number.parseInt(a.split('/').at(-1) || '0');
40
+ const versionB = Number.parseInt(b.split('/').at(-1) || '0');
41
+ return versionB - versionA;
42
+ })[0];
43
+ return new this(storedKeys, defaultKey, envService, logger, options);
44
+ }
45
+ const { fullKeyName, key } = await envService.getTransitKey(keyId, { keyVersion: 'latest' });
46
+ storedKeys.set(fullKeyName, await EncryptionCodec.createCryptoKey(key));
47
+ return new this(storedKeys, fullKeyName, envService, logger, options);
48
+ }
49
+ static async createCryptoKey(key) {
50
+ try {
51
+ const keyBuffer = Buffer.from(key, 'base64');
52
+ const cryptoKey = await node_crypto_1.webcrypto.subtle.importKey('raw', keyBuffer, {
53
+ name: 'AES-GCM',
54
+ length: 256,
55
+ }, true, ['encrypt', 'decrypt']);
56
+ return cryptoKey;
57
+ }
58
+ catch (err) {
59
+ throw new Error(`Failed to create crypto key: ${err.message}`);
60
+ }
61
+ }
62
+ async refreshDefaultKey() {
63
+ const { name: keyId } = this.splitKeyId(this.defaultKeyId);
64
+ const { fullKeyName, key } = await this.envService.getTransitKey(keyId, { keyVersion: 'latest' });
65
+ if (!this.keys.has(fullKeyName)) {
66
+ const newKey = await EncryptionCodec.createCryptoKey(key);
67
+ this.keys.set(fullKeyName, newKey);
68
+ this.defaultKeyId = fullKeyName;
69
+ }
70
+ }
71
+ async encode(payloads) {
72
+ return await this.processBatch(payloads, async (payload) => ({
73
+ metadata: {
74
+ [common_1.METADATA_ENCODING_KEY]: (0, encoding_1.encode)(this.encoding),
75
+ [this.metadataEncryptionKeyId]: (0, encoding_1.encode)(this.defaultKeyId),
76
+ },
77
+ data: await (0, crypto_1.encrypt)(proto_1.temporal.api.common.v1.Payload.encode(payload).finish(), this.keys.get(this.defaultKeyId)),
78
+ }));
79
+ }
80
+ async decode(payloads) {
81
+ return await this.processBatch(payloads, async (payload) => {
82
+ if (!payload.metadata || (0, encoding_1.decode)(payload.metadata[common_1.METADATA_ENCODING_KEY]) !== this.encoding) {
83
+ return payload;
84
+ }
85
+ if (!payload.data) {
86
+ throw new common_1.ValueError('Payload data is missing');
87
+ }
88
+ const keyIdBytes = payload.metadata[this.metadataEncryptionKeyId];
89
+ if (!keyIdBytes) {
90
+ throw new common_1.ValueError('Unable to decrypt Payload without encryption key id');
91
+ }
92
+ const keyId = (0, encoding_1.decode)(keyIdBytes);
93
+ let key = this.keys.get(keyId);
94
+ if (!key) {
95
+ const { name, version } = this.splitKeyId(keyId);
96
+ const { key: rawKey } = await this.envService.getTransitKey(name, { keyVersion: version });
97
+ this.logger.info(`Decryption key ${keyId} not found in cache, fetched from vault`);
98
+ key = await EncryptionCodec.createCryptoKey(rawKey);
99
+ this.keys.set(keyId, key);
100
+ }
101
+ const decryptedPayloadBytes = await (0, crypto_1.decrypt)(payload.data, key);
102
+ return proto_1.temporal.api.common.v1.Payload.decode(decryptedPayloadBytes);
103
+ });
104
+ }
105
+ async processBatch(items, processor) {
106
+ const results = [];
107
+ for (let i = 0; i < items.length; i += this.batchSize) {
108
+ const batch = items.slice(i, i + this.batchSize);
109
+ const batchPromises = batch.map(processor);
110
+ const batchResults = await Promise.all(batchPromises);
111
+ results.push(...batchResults);
112
+ }
113
+ return results;
114
+ }
115
+ splitKeyId(fullKeyId) {
116
+ const name = fullKeyId.split('/').slice(0, -1).join('/');
117
+ const version = fullKeyId.split('/').at(-1);
118
+ if (!version || Number.isNaN(Number(version))) {
119
+ throw new Error(`Invalid key ID: ${fullKeyId}. Failed to get version`);
120
+ }
121
+ return { name, version };
122
+ }
123
+ }
124
+ exports.EncryptionCodec = EncryptionCodec;
125
+ //# sourceMappingURL=encryptionCodec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryptionCodec.js","sourceRoot":"","sources":["../../src/encryption/encryptionCodec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
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("./dataConverter"), exports);
18
+ __exportStar(require("./encryptionCodec"), exports);
19
+ __exportStar(require("./crypto"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/encryption/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAE/B,oDAAiC;AAEjC,2CAAwB"}
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.proto = void 0;
40
+ exports.proto = __importStar(require("@temporalio/proto"));
41
+ __exportStar(require("./encryption"), exports);
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA0C;AAI1C,+CAA4B"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.traceExporter = void 0;
4
+ const exporter_trace_otlp_grpc_1 = require("@opentelemetry/exporter-trace-otlp-grpc");
5
+ const env_1 = require("@diia-inhouse/env");
6
+ exports.traceExporter = new exporter_trace_otlp_grpc_1.OTLPTraceExporter({
7
+ url: env_1.EnvService.getVar('TRACING_EXPORTER_URL', 'string', 'http://localhost:4317') ||
8
+ 'http://opentelemetry-collector.tracing.svc.cluster.local:4317',
9
+ });
10
+ //# sourceMappingURL=instrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":";;;AAAA,sFAAoG;AAEpG,2CAA8C;AAEjC,QAAA,aAAa,GAAG,IAAI,4CAAqB,CAAC;IACnD,GAAG,EACC,gBAAU,CAAC,MAAM,CAAC,sBAAsB,EAAE,QAAQ,EAAE,uBAAuB,CAAC;QAC5E,+DAA+D;CACtE,CAAC,CAAA"}
@@ -0,0 +1,67 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AsyncLocalStorageBridgeInterceptor = void 0;
37
+ const otel = __importStar(require("@opentelemetry/api"));
38
+ /**
39
+ * Bridges OpenTelemetry trace context to AsyncLocalStorage for Temporal activities.
40
+ *
41
+ * Extracts trace_id from OpenTelemetry span and injects it into AsyncLocalStorage,
42
+ * making it available to services.
43
+ *
44
+ * @example
45
+ * // In a service called from an activity:
46
+ * const traceId = this.asyncLocalStorage.getStore()?.logData?.traceId
47
+ */
48
+ class AsyncLocalStorageBridgeInterceptor {
49
+ ctx;
50
+ asyncLocalStorage;
51
+ logger;
52
+ constructor(ctx, asyncLocalStorage, logger) {
53
+ this.ctx = ctx;
54
+ this.asyncLocalStorage = asyncLocalStorage;
55
+ this.logger = logger;
56
+ }
57
+ async execute(input, next) {
58
+ const span = otel.trace.getSpan(otel.context.active());
59
+ const spanContext = span?.spanContext();
60
+ const traceId = spanContext && otel.isSpanContextValid(spanContext) ? spanContext.traceId : undefined;
61
+ const logData = this.logger.prepareContext({ traceId });
62
+ const alsData = { logData };
63
+ return await this.asyncLocalStorage.run(alsData, async () => await next(input));
64
+ }
65
+ }
66
+ exports.AsyncLocalStorageBridgeInterceptor = AsyncLocalStorageBridgeInterceptor;
67
+ //# sourceMappingURL=asyncLocalStorageBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncLocalStorageBridge.js","sourceRoot":"","sources":["../../src/interceptors/asyncLocalStorageBridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yDAA0C;AAM1C;;;;;;;;;GASG;AACH,MAAa,kCAAkC;IAEpB;IACF;IACA;IAHrB,YACuB,GAAoB,EACtB,iBAA6C,EAC7C,MAAc;QAFZ,QAAG,GAAH,GAAG,CAAiB;QACtB,sBAAiB,GAAjB,iBAAiB,CAA4B;QAC7C,WAAM,GAAN,MAAM,CAAQ;IAChC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,KAA2B,EAAE,IAAsD;QAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACtD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,EAAE,CAAA;QACvC,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;QAErG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QACvD,MAAM,OAAO,GAAY,EAAE,OAAO,EAAE,CAAA;QAEpC,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACnF,CAAC;CACJ;AAjBD,gFAiBC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AsyncLocalStorageBridgeInterceptor = void 0;
4
+ var asyncLocalStorageBridge_1 = require("./asyncLocalStorageBridge");
5
+ Object.defineProperty(exports, "AsyncLocalStorageBridgeInterceptor", { enumerable: true, get: function () { return asyncLocalStorageBridge_1.AsyncLocalStorageBridgeInterceptor; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interceptors/index.ts"],"names":[],"mappings":";;;AAAA,qEAA8E;AAArE,6IAAA,kCAAkC,OAAA"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workflowInterceptors = void 0;
4
+ const interceptors_opentelemetry_1 = require("@temporalio/interceptors-opentelemetry");
5
+ const workflowInterceptors = () => ({
6
+ inbound: [new interceptors_opentelemetry_1.OpenTelemetryInboundInterceptor()],
7
+ outbound: [new interceptors_opentelemetry_1.OpenTelemetryOutboundInterceptor()],
8
+ });
9
+ exports.workflowInterceptors = workflowInterceptors;
10
+ //# sourceMappingURL=interceptors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptors.js","sourceRoot":"","sources":["../src/interceptors.ts"],"names":[],"mappings":";;;AAAA,uFAA0H;AAGnH,MAAM,oBAAoB,GAAgC,GAAG,EAAE,CAAC,CAAC;IACpE,OAAO,EAAE,CAAC,IAAI,4DAA+B,EAAE,CAAC;IAChD,QAAQ,EAAE,CAAC,IAAI,6DAAgC,EAAE,CAAC;CACrD,CAAC,CAAA;AAHW,QAAA,oBAAoB,wBAG/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/interfaces/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
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("./config"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=worker.js.map