@devrev/airsync-sdk 2.0.0-beta.1 → 2.0.0-beta.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 (191) hide show
  1. package/README.md +0 -4
  2. package/dist/airsync-sdk.d.ts +2059 -0
  3. package/dist/attachments-streaming/attachments-streaming-pool.d.ts +2 -1
  4. package/dist/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
  5. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts +8 -2
  6. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts.map +1 -1
  7. package/dist/attachments-streaming/attachments-streaming-pool.js +27 -16
  8. package/dist/attachments-streaming/attachments-streaming-pool.test.js +246 -27
  9. package/dist/common/constants.d.ts +16 -5
  10. package/dist/common/constants.d.ts.map +1 -1
  11. package/dist/common/constants.js +20 -6
  12. package/dist/common/control-protocol.d.ts +2 -2
  13. package/dist/common/control-protocol.d.ts.map +1 -1
  14. package/dist/common/control-protocol.js +1 -5
  15. package/dist/common/helpers.d.ts +8 -0
  16. package/dist/common/helpers.d.ts.map +1 -1
  17. package/dist/common/helpers.js +15 -0
  18. package/dist/common/install-initial-domain-mapping.d.ts +2 -2
  19. package/dist/common/install-initial-domain-mapping.test.js +5 -2
  20. package/dist/common/test-utils.d.ts +19 -0
  21. package/dist/common/test-utils.d.ts.map +1 -0
  22. package/dist/common/test-utils.js +101 -0
  23. package/dist/common/time-value-resolver.d.ts +47 -0
  24. package/dist/common/time-value-resolver.d.ts.map +1 -0
  25. package/dist/common/time-value-resolver.js +141 -0
  26. package/dist/common/time-value-resolver.test.d.ts +2 -0
  27. package/dist/common/time-value-resolver.test.d.ts.map +1 -0
  28. package/dist/common/time-value-resolver.test.js +268 -0
  29. package/dist/http/axios-client-internal.d.ts.map +1 -1
  30. package/dist/http/axios-client-internal.js +7 -0
  31. package/dist/http/axios-client-internal.test.js +21 -0
  32. package/dist/http/axios-client.d.ts.map +1 -1
  33. package/dist/http/axios-client.js +6 -3
  34. package/dist/http/index.d.ts +0 -1
  35. package/dist/http/index.d.ts.map +1 -1
  36. package/dist/http/index.js +0 -1
  37. package/dist/index.d.ts +12 -10
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +18 -13
  40. package/dist/logger/logger.d.ts +1 -17
  41. package/dist/logger/logger.d.ts.map +1 -1
  42. package/dist/logger/logger.interfaces.d.ts +2 -2
  43. package/dist/logger/logger.js +35 -27
  44. package/dist/logger/logger.test.js +66 -19
  45. package/dist/mappers/mappers.interface.d.ts +5 -5
  46. package/dist/mappers/mappers.interface.js +3 -3
  47. package/dist/mappers/mappers.test.js +8 -10
  48. package/dist/mock-server/mock-server.d.ts +47 -0
  49. package/dist/mock-server/mock-server.d.ts.map +1 -0
  50. package/dist/mock-server/mock-server.interfaces.d.ts +73 -0
  51. package/dist/mock-server/mock-server.interfaces.d.ts.map +1 -0
  52. package/dist/mock-server/mock-server.interfaces.js +4 -0
  53. package/dist/mock-server/mock-server.js +278 -0
  54. package/dist/multithreading/adapters/base-adapter.d.ts +56 -0
  55. package/dist/multithreading/adapters/base-adapter.d.ts.map +1 -0
  56. package/dist/multithreading/adapters/base-adapter.emit.test.d.ts +2 -0
  57. package/dist/multithreading/adapters/base-adapter.emit.test.d.ts.map +1 -0
  58. package/dist/multithreading/adapters/base-adapter.emit.test.js +403 -0
  59. package/dist/multithreading/adapters/base-adapter.js +105 -0
  60. package/dist/multithreading/adapters/extraction-adapter.artifacts.test.d.ts +2 -0
  61. package/dist/multithreading/adapters/extraction-adapter.artifacts.test.d.ts.map +1 -0
  62. package/dist/multithreading/{worker-adapter/worker-adapter.artifacts.test.js → adapters/extraction-adapter.artifacts.test.js} +53 -5
  63. package/dist/multithreading/adapters/extraction-adapter.d.ts +58 -0
  64. package/dist/multithreading/adapters/extraction-adapter.d.ts.map +1 -0
  65. package/dist/multithreading/adapters/extraction-adapter.js +325 -0
  66. package/dist/multithreading/adapters/extraction-adapter.test.d.ts +2 -0
  67. package/dist/multithreading/adapters/extraction-adapter.test.d.ts.map +1 -0
  68. package/dist/multithreading/adapters/extraction-adapter.test.js +789 -0
  69. package/dist/multithreading/adapters/loading-adapter.d.ts +44 -0
  70. package/dist/multithreading/adapters/loading-adapter.d.ts.map +1 -0
  71. package/dist/multithreading/{worker-adapter/worker-adapter.helpers.d.ts → adapters/loading-adapter.helpers.d.ts} +1 -1
  72. package/dist/multithreading/adapters/loading-adapter.helpers.d.ts.map +1 -0
  73. package/dist/multithreading/adapters/loading-adapter.helpers.test.d.ts +2 -0
  74. package/dist/multithreading/adapters/loading-adapter.helpers.test.d.ts.map +1 -0
  75. package/dist/multithreading/{worker-adapter/worker-adapter.helpers.test.js → adapters/loading-adapter.helpers.test.js} +26 -26
  76. package/dist/multithreading/adapters/loading-adapter.js +461 -0
  77. package/dist/multithreading/adapters/loading-adapter.test.d.ts +2 -0
  78. package/dist/multithreading/adapters/loading-adapter.test.d.ts.map +1 -0
  79. package/dist/multithreading/adapters/loading-adapter.test.js +589 -0
  80. package/dist/multithreading/adapters/serialization.test.d.ts +2 -0
  81. package/dist/multithreading/adapters/serialization.test.d.ts.map +1 -0
  82. package/dist/multithreading/adapters/serialization.test.js +71 -0
  83. package/dist/multithreading/create-worker.test.js +36 -17
  84. package/dist/multithreading/process-task.d.ts +16 -1
  85. package/dist/multithreading/process-task.d.ts.map +1 -1
  86. package/dist/multithreading/process-task.js +97 -82
  87. package/dist/multithreading/process-task.test.d.ts +2 -0
  88. package/dist/multithreading/process-task.test.d.ts.map +1 -0
  89. package/dist/multithreading/process-task.test.js +146 -0
  90. package/dist/multithreading/spawn/spawn.d.ts +3 -3
  91. package/dist/multithreading/spawn/spawn.d.ts.map +1 -1
  92. package/dist/multithreading/spawn/spawn.helpers.d.ts.map +1 -1
  93. package/dist/multithreading/spawn/spawn.helpers.js +6 -14
  94. package/dist/multithreading/spawn/spawn.helpers.test.js +8 -8
  95. package/dist/multithreading/spawn/spawn.js +20 -25
  96. package/dist/multithreading/spawn/spawn.test.d.ts +2 -0
  97. package/dist/multithreading/spawn/spawn.test.d.ts.map +1 -0
  98. package/dist/multithreading/spawn/spawn.test.js +232 -0
  99. package/dist/repo/repo.d.ts.map +1 -1
  100. package/dist/repo/repo.interfaces.d.ts +4 -2
  101. package/dist/repo/repo.interfaces.d.ts.map +1 -1
  102. package/dist/repo/repo.js +4 -3
  103. package/dist/repo/repo.test.js +60 -7
  104. package/dist/state/base-state.d.ts +75 -0
  105. package/dist/state/base-state.d.ts.map +1 -0
  106. package/dist/state/base-state.js +261 -0
  107. package/dist/state/extraction-state.d.ts +29 -0
  108. package/dist/state/extraction-state.d.ts.map +1 -0
  109. package/dist/state/extraction-state.js +122 -0
  110. package/dist/state/loading-state.d.ts +19 -0
  111. package/dist/state/loading-state.d.ts.map +1 -0
  112. package/dist/state/loading-state.js +40 -0
  113. package/dist/state/state.extract-window.test.d.ts +2 -0
  114. package/dist/state/state.extract-window.test.d.ts.map +1 -0
  115. package/dist/state/state.extract-window.test.js +163 -0
  116. package/dist/state/state.interfaces.d.ts +44 -27
  117. package/dist/state/state.interfaces.d.ts.map +1 -1
  118. package/dist/state/state.interfaces.js +18 -5
  119. package/dist/state/state.pending-boundaries.test.d.ts +2 -0
  120. package/dist/state/state.pending-boundaries.test.d.ts.map +1 -0
  121. package/dist/state/state.pending-boundaries.test.js +189 -0
  122. package/dist/state/state.post-state.test.d.ts +2 -0
  123. package/dist/state/state.post-state.test.d.ts.map +1 -0
  124. package/dist/state/state.post-state.test.js +78 -0
  125. package/dist/state/state.test.js +135 -88
  126. package/dist/state/state.time-value-resolution.test.d.ts +2 -0
  127. package/dist/state/state.time-value-resolution.test.d.ts.map +1 -0
  128. package/dist/state/state.time-value-resolution.test.js +175 -0
  129. package/dist/tsdoc-metadata.json +11 -0
  130. package/dist/types/common.d.ts +0 -25
  131. package/dist/types/common.d.ts.map +1 -1
  132. package/dist/types/common.js +1 -11
  133. package/dist/types/external-domain-metadata.d.ts +20 -1
  134. package/dist/types/external-domain-metadata.d.ts.map +1 -1
  135. package/dist/types/extraction.d.ts +92 -221
  136. package/dist/types/extraction.d.ts.map +1 -1
  137. package/dist/types/extraction.js +56 -124
  138. package/dist/types/extraction.test.js +69 -43
  139. package/dist/types/index.d.ts +3 -3
  140. package/dist/types/index.d.ts.map +1 -1
  141. package/dist/types/index.js +6 -3
  142. package/dist/types/loading.d.ts +4 -24
  143. package/dist/types/loading.d.ts.map +1 -1
  144. package/dist/types/loading.js +1 -22
  145. package/dist/types/workers.d.ts +47 -29
  146. package/dist/types/workers.d.ts.map +1 -1
  147. package/dist/types/workers.js +1 -0
  148. package/dist/uploader/uploader.d.ts +1 -0
  149. package/dist/uploader/uploader.d.ts.map +1 -1
  150. package/dist/uploader/uploader.helpers.test.js +0 -11
  151. package/dist/uploader/uploader.interfaces.d.ts +3 -3
  152. package/dist/uploader/uploader.js +53 -20
  153. package/dist/uploader/uploader.test.js +22 -10
  154. package/package.json +10 -13
  155. package/dist/common/event-type-translation.d.ts +0 -24
  156. package/dist/common/event-type-translation.d.ts.map +0 -1
  157. package/dist/common/event-type-translation.js +0 -117
  158. package/dist/deprecated/adapter/index.d.ts +0 -62
  159. package/dist/deprecated/adapter/index.d.ts.map +0 -1
  160. package/dist/deprecated/adapter/index.js +0 -151
  161. package/dist/deprecated/common/helpers.d.ts +0 -7
  162. package/dist/deprecated/common/helpers.d.ts.map +0 -1
  163. package/dist/deprecated/common/helpers.js +0 -47
  164. package/dist/deprecated/demo-extractor/external_domain_metadata.json +0 -38
  165. package/dist/deprecated/demo-extractor/index.d.ts +0 -18
  166. package/dist/deprecated/demo-extractor/index.d.ts.map +0 -1
  167. package/dist/deprecated/demo-extractor/index.js +0 -161
  168. package/dist/deprecated/http/client.d.ts +0 -22
  169. package/dist/deprecated/http/client.d.ts.map +0 -1
  170. package/dist/deprecated/http/client.js +0 -161
  171. package/dist/deprecated/uploader/index.d.ts +0 -35
  172. package/dist/deprecated/uploader/index.d.ts.map +0 -1
  173. package/dist/deprecated/uploader/index.js +0 -161
  174. package/dist/http/types.d.ts +0 -17
  175. package/dist/http/types.d.ts.map +0 -1
  176. package/dist/http/types.js +0 -2
  177. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts +0 -2
  178. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts.map +0 -1
  179. package/dist/multithreading/worker-adapter/worker-adapter.d.ts +0 -91
  180. package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +0 -1
  181. package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +0 -1
  182. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts +0 -2
  183. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts.map +0 -1
  184. package/dist/multithreading/worker-adapter/worker-adapter.js +0 -745
  185. package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts +0 -2
  186. package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts.map +0 -1
  187. package/dist/multithreading/worker-adapter/worker-adapter.test.js +0 -483
  188. package/dist/state/state.d.ts +0 -30
  189. package/dist/state/state.d.ts.map +0 -1
  190. package/dist/state/state.js +0 -166
  191. /package/dist/multithreading/{worker-adapter/worker-adapter.helpers.js → adapters/loading-adapter.helpers.js} +0 -0
@@ -1,21 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const worker_threads_1 = require("worker_threads");
4
- const test_helpers_1 = require("../tests/test-helpers");
4
+ const jest_setup_1 = require("../tests/jest.setup");
5
+ const test_utils_1 = require("../common/test-utils");
5
6
  const extraction_1 = require("../types/extraction");
6
7
  const create_worker_1 = require("./create-worker");
7
8
  describe(create_worker_1.createWorker.name, () => {
8
9
  it('should create a Worker instance when valid parameters are provided', async () => {
10
+ // Arrange
9
11
  const workerPath = __dirname + '../tests/dummy-worker.ts';
12
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
13
+ payload: { event_type: extraction_1.EventType.StartExtractingExternalSyncUnits },
14
+ });
15
+ // Act
10
16
  const worker = worker_threads_1.isMainThread
11
17
  ? await (0, create_worker_1.createWorker)({
12
- event: (0, test_helpers_1.createEvent)({
13
- eventType: extraction_1.EventType.ExtractionExternalSyncUnitsStart,
14
- }),
18
+ event,
15
19
  initialState: {},
16
20
  workerPath,
17
21
  })
18
22
  : null;
23
+ // Assert
19
24
  expect(worker).not.toBeNull();
20
25
  expect(worker).toBeInstanceOf(worker_threads_1.Worker);
21
26
  if (worker) {
@@ -23,36 +28,43 @@ describe(create_worker_1.createWorker.name, () => {
23
28
  }
24
29
  });
25
30
  it('should throw error when not in main thread', async () => {
31
+ // Arrange
26
32
  const originalIsMainThread = worker_threads_1.isMainThread;
27
33
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
34
  worker_threads_1.isMainThread = false;
29
35
  const workerPath = __dirname + '../tests/dummy-worker.ts';
36
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
37
+ payload: { event_type: extraction_1.EventType.StartExtractingExternalSyncUnits },
38
+ });
39
+ // Act & Assert
30
40
  await expect((0, create_worker_1.createWorker)({
31
- event: (0, test_helpers_1.createEvent)({
32
- eventType: extraction_1.EventType.ExtractionExternalSyncUnitsStart,
33
- }),
41
+ event,
34
42
  initialState: {},
35
43
  workerPath,
36
44
  })).rejects.toThrow('Worker threads can not start more worker threads.');
37
- // Restore original value
38
45
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
46
  worker_threads_1.isMainThread = originalIsMainThread;
40
47
  });
41
48
  it('[edge] should handle worker creation with minimal valid data', async () => {
49
+ // Arrange
42
50
  const workerPath = __dirname + '../tests/dummy-worker.ts';
51
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
52
+ payload: { event_type: extraction_1.EventType.StartExtractingExternalSyncUnits },
53
+ });
43
54
  if (worker_threads_1.isMainThread) {
55
+ // Act
44
56
  const worker = await (0, create_worker_1.createWorker)({
45
- event: (0, test_helpers_1.createEvent)({
46
- eventType: extraction_1.EventType.ExtractionExternalSyncUnitsStart,
47
- }),
57
+ event,
48
58
  initialState: {},
49
59
  workerPath,
50
60
  });
61
+ // Assert
51
62
  expect(worker).toBeInstanceOf(worker_threads_1.Worker);
52
63
  await worker.terminate();
53
64
  }
54
65
  });
55
66
  it('[edge] should handle worker creation with complex initial state', async () => {
67
+ // Arrange
56
68
  const workerPath = __dirname + '../tests/dummy-worker.ts';
57
69
  const complexState = {
58
70
  nested: {
@@ -60,28 +72,35 @@ describe(create_worker_1.createWorker.name, () => {
60
72
  config: { enabled: true },
61
73
  },
62
74
  };
75
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
76
+ payload: { event_type: extraction_1.EventType.StartExtractingData },
77
+ });
63
78
  if (worker_threads_1.isMainThread) {
79
+ // Act
64
80
  const worker = await (0, create_worker_1.createWorker)({
65
- event: (0, test_helpers_1.createEvent)({
66
- eventType: extraction_1.EventType.ExtractionDataStart,
67
- }),
81
+ event,
68
82
  initialState: complexState,
69
83
  workerPath,
70
84
  });
85
+ // Assert
71
86
  expect(worker).toBeInstanceOf(worker_threads_1.Worker);
72
87
  await worker.terminate();
73
88
  }
74
89
  });
75
90
  it('[edge] should handle different event types', async () => {
91
+ // Arrange
76
92
  const workerPath = __dirname + '../tests/dummy-worker.ts';
93
+ const event = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl, {
94
+ payload: { event_type: extraction_1.EventType.StartExtractingMetadata },
95
+ });
77
96
  if (worker_threads_1.isMainThread) {
97
+ // Act
78
98
  const worker = await (0, create_worker_1.createWorker)({
79
- event: (0, test_helpers_1.createEvent)({
80
- eventType: extraction_1.EventType.ExtractionMetadataStart,
81
- }),
99
+ event,
82
100
  initialState: {},
83
101
  workerPath,
84
102
  });
103
+ // Assert
85
104
  expect(worker).toBeInstanceOf(worker_threads_1.Worker);
86
105
  await worker.terminate();
87
106
  }
@@ -1,3 +1,18 @@
1
1
  import { ProcessTaskInterface } from '../types/workers';
2
- export declare function processTask<ConnectorState>({ task, onTimeout, }: ProcessTaskInterface<ConnectorState>): void;
2
+ import { ExtractionAdapter } from './adapters/extraction-adapter';
3
+ import { LoadingAdapter } from './adapters/loading-adapter';
4
+ /**
5
+ * Entry point for an extraction worker. Builds an {@link ExtractionAdapter} and
6
+ * runs the provided task against it.
7
+ *
8
+ * @public
9
+ */
10
+ export declare function processExtractionTask<ConnectorState>({ task, onTimeout, }: ProcessTaskInterface<ExtractionAdapter<ConnectorState>>): void;
11
+ /**
12
+ * Entry point for a loading worker. Builds a {@link LoadingAdapter} and runs the
13
+ * provided task against it.
14
+ *
15
+ * @public
16
+ */
17
+ export declare function processLoadingTask<ConnectorState>({ task, onTimeout, }: ProcessTaskInterface<LoadingAdapter<ConnectorState>>): void;
3
18
  //# sourceMappingURL=process-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-task.d.ts","sourceRoot":"","sources":["../../src/multithreading/process-task.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EAGrB,MAAM,kBAAkB,CAAC;AAG1B,wBAAgB,WAAW,CAAC,cAAc,EAAE,EAC1C,IAAI,EACJ,SAAS,GACV,EAAE,oBAAoB,CAAC,cAAc,CAAC,QAqGtC"}
1
+ {"version":3,"file":"process-task.d.ts","sourceRoot":"","sources":["../../src/multithreading/process-task.ts"],"names":[],"mappings":"AASA,OAAO,EACL,oBAAoB,EAGrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAgD5D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,EACpD,IAAI,EACJ,SAAS,GACV,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,QA6BzD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,EACjD,IAAI,EACJ,SAAS,GACV,EAAE,oBAAoB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,QA6BtD"}
@@ -1,93 +1,108 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processTask = processTask;
3
+ exports.processExtractionTask = processExtractionTask;
4
+ exports.processLoadingTask = processLoadingTask;
4
5
  const node_worker_threads_1 = require("node:worker_threads");
5
- const event_type_translation_1 = require("../common/event-type-translation");
6
6
  const logger_1 = require("../logger/logger");
7
7
  const logger_context_1 = require("../logger/logger.context");
8
- const state_1 = require("../state/state");
8
+ const extraction_state_1 = require("../state/extraction-state");
9
+ const loading_state_1 = require("../state/loading-state");
9
10
  const workers_1 = require("../types/workers");
10
- const worker_adapter_1 = require("./worker-adapter/worker-adapter");
11
- function processTask({ task, onTimeout, }) {
12
- if (node_worker_threads_1.isMainThread) {
13
- return;
14
- }
15
- void (async () => {
16
- await (0, logger_context_1.runWithSdkLogContext)(async () => {
17
- try {
18
- const event = node_worker_threads_1.workerData.event;
19
- // TODO: Remove when the old types are completely phased out
20
- event.payload.event_type = (0, event_type_translation_1.translateIncomingEventType)(event.payload.event_type);
21
- const initialState = node_worker_threads_1.workerData.initialState;
22
- const initialDomainMapping = node_worker_threads_1.workerData.initialDomainMapping;
23
- const options = node_worker_threads_1.workerData.options;
24
- // eslint-disable-next-line no-global-assign
25
- console = new logger_1.Logger({ event, options });
26
- const adapterState = await (0, state_1.createAdapterState)({
27
- event,
28
- initialState,
29
- initialDomainMapping,
30
- options,
31
- });
32
- const adapter = new worker_adapter_1.WorkerAdapter({
33
- event,
34
- adapterState,
35
- options,
36
- });
37
- // Timeout handling flow:
38
- // The task() runs in the main flow below. Meanwhile, the parent thread may send
39
- // a timeout message at any point. When that happens, the message handler signals
40
- // the adapter to stop (handleTimeout), waits for task() to finish, then runs onTimeout().
41
- // If task() completes before any timeout message arrives, the worker exits normally.
42
- // isTimeoutReceived prevents both flows from calling process.exit.
43
- let isTimeoutReceived = false;
44
- let taskExecution;
45
- node_worker_threads_1.parentPort === null || node_worker_threads_1.parentPort === void 0 ? void 0 : node_worker_threads_1.parentPort.on(workers_1.WorkerEvent.WorkerMessage, (message) => {
46
- if (message.subject !== workers_1.WorkerMessageSubject.WorkerMessageExit) {
47
- return;
48
- }
49
- isTimeoutReceived = true;
50
- void (0, logger_context_1.runWithSdkLogContext)(async () => {
51
- try {
52
- console.log('Timeout received. Waiting for the task to finish.');
53
- adapter.handleTimeout();
54
- try {
55
- await taskExecution;
56
- }
57
- catch (taskError) {
58
- console.warn('Task error during timeout:', (0, logger_1.serializeError)(taskError));
59
- }
60
- console.log('Task finished. Running onTimeout handler.');
61
- await (0, logger_context_1.runWithUserLogContext)(async () => onTimeout({ adapter }));
62
- console.log('onTimeout handler complete. Exiting worker.');
63
- process.exit(0);
64
- }
65
- catch (onTimeoutError) {
66
- console.error('Error in onTimeout handler:', (0, logger_1.serializeError)(onTimeoutError));
67
- process.exit(1);
68
- }
69
- });
70
- });
71
- taskExecution = (0, logger_context_1.runWithUserLogContext)(async () => task({ adapter }));
72
- try {
73
- await taskExecution;
74
- }
75
- catch (taskError) {
76
- if (isTimeoutReceived) {
77
- console.log('Task threw during timeout. Letting timeout handler finish.');
78
- return;
79
- }
80
- throw taskError;
81
- }
82
- if (!isTimeoutReceived) {
83
- console.log('Task completed. Exiting worker.');
84
- process.exit(0);
11
+ const extraction_adapter_1 = require("./adapters/extraction-adapter");
12
+ const loading_adapter_1 = require("./adapters/loading-adapter");
13
+ /**
14
+ * Shared worker-thread driver. Builds the logger context, runs the task and
15
+ * (on timeout) the onTimeout callback against the provided adapter, and wires
16
+ * the error/exit plumbing. The adapter is constructed by the caller so each
17
+ * entry point can build its own typed adapter.
18
+ */
19
+ async function runWorkerTask(buildAdapter, { task, onTimeout }) {
20
+ await (0, logger_context_1.runWithSdkLogContext)(async () => {
21
+ try {
22
+ const adapter = await buildAdapter();
23
+ node_worker_threads_1.parentPort === null || node_worker_threads_1.parentPort === void 0 ? void 0 : node_worker_threads_1.parentPort.on(workers_1.WorkerEvent.WorkerMessage, (message) => {
24
+ if (message.subject !== workers_1.WorkerMessageSubject.WorkerMessageExit) {
25
+ return;
85
26
  }
27
+ console.log('Timeout received. Waiting for the task to finish.');
28
+ adapter.isTimeout = true;
29
+ });
30
+ await (0, logger_context_1.runWithUserLogContext)(async () => task({ adapter }));
31
+ if (adapter.isTimeout && !adapter.hasWorkerEmitted) {
32
+ await (0, logger_context_1.runWithUserLogContext)(async () => onTimeout({ adapter }));
86
33
  }
87
- catch (error) {
88
- console.error('Error while processing task.', (0, logger_1.serializeError)(error));
34
+ process.exit(0);
35
+ }
36
+ catch (error) {
37
+ (0, logger_context_1.runWithUserLogContext)(() => {
38
+ const errorMessage = `Error while processing task. ${(0, logger_1.serializeError)(error)}`;
39
+ console.error(errorMessage);
40
+ node_worker_threads_1.parentPort === null || node_worker_threads_1.parentPort === void 0 ? void 0 : node_worker_threads_1.parentPort.postMessage({
41
+ subject: workers_1.WorkerMessageSubject.WorkerMessageFailed,
42
+ payload: { message: errorMessage },
43
+ });
89
44
  process.exit(1);
90
- }
45
+ });
46
+ }
47
+ });
48
+ }
49
+ /**
50
+ * Entry point for an extraction worker. Builds an {@link ExtractionAdapter} and
51
+ * runs the provided task against it.
52
+ *
53
+ * @public
54
+ */
55
+ function processExtractionTask({ task, onTimeout, }) {
56
+ if (node_worker_threads_1.isMainThread) {
57
+ return;
58
+ }
59
+ void runWorkerTask(async () => {
60
+ const event = node_worker_threads_1.workerData.event;
61
+ const initialState = node_worker_threads_1.workerData.initialState;
62
+ const initialDomainMapping = node_worker_threads_1.workerData.initialDomainMapping;
63
+ const options = node_worker_threads_1.workerData.options;
64
+ // eslint-disable-next-line no-global-assign
65
+ console = new logger_1.Logger({ event, options });
66
+ const adapterState = await (0, extraction_state_1.createExtractionState)({
67
+ event,
68
+ initialState,
69
+ initialDomainMapping,
70
+ options,
71
+ });
72
+ return new extraction_adapter_1.ExtractionAdapter({
73
+ event,
74
+ adapterState,
75
+ options,
76
+ });
77
+ }, { task, onTimeout });
78
+ }
79
+ /**
80
+ * Entry point for a loading worker. Builds a {@link LoadingAdapter} and runs the
81
+ * provided task against it.
82
+ *
83
+ * @public
84
+ */
85
+ function processLoadingTask({ task, onTimeout, }) {
86
+ if (node_worker_threads_1.isMainThread) {
87
+ return;
88
+ }
89
+ void runWorkerTask(async () => {
90
+ const event = node_worker_threads_1.workerData.event;
91
+ const initialState = node_worker_threads_1.workerData.initialState;
92
+ const initialDomainMapping = node_worker_threads_1.workerData.initialDomainMapping;
93
+ const options = node_worker_threads_1.workerData.options;
94
+ // eslint-disable-next-line no-global-assign
95
+ console = new logger_1.Logger({ event, options });
96
+ const adapterState = await (0, loading_state_1.createLoadingState)({
97
+ event,
98
+ initialState,
99
+ initialDomainMapping,
100
+ options,
101
+ });
102
+ return new loading_adapter_1.LoadingAdapter({
103
+ event,
104
+ adapterState,
105
+ options,
91
106
  });
92
- })();
107
+ }, { task, onTimeout });
93
108
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=process-task.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-task.test.d.ts","sourceRoot":"","sources":["../../src/multithreading/process-task.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const extraction_1 = require("../types/extraction");
4
+ const workers_1 = require("../types/workers");
5
+ // These tests cover logic that is NOT exercised by the end-to-end integration
6
+ // tests under src/tests/timeout-handling/:
7
+ // - translation of legacy wire event types into the new enum (mutates event in place)
8
+ // - the hasWorkerEmitted guard that prevents onTimeout from firing after a
9
+ // successful emit (integration tests only exercise the positive case)
10
+ // - the error branch that posts WorkerMessageFailed and exits(1)
11
+ // - the WorkerMessage handler's guard that only flips isTimeout on
12
+ // WorkerMessageExit (integration tests can't cleanly target non-Exit messages)
13
+ //
14
+ // Tests for the happy path, timeout-signal-reaches-worker behavior, and main-thread
15
+ // early return were removed — they either duplicate what the integration suite
16
+ // already exercises or assert mocked behavior with little signal.
17
+ const mockParentPortPostMessage = jest.fn();
18
+ const mockParentPortOn = jest.fn();
19
+ let mockIsMainThread = false;
20
+ jest.mock('node:worker_threads', () => ({
21
+ get isMainThread() {
22
+ return mockIsMainThread;
23
+ },
24
+ get parentPort() {
25
+ return {
26
+ postMessage: mockParentPortPostMessage,
27
+ on: mockParentPortOn,
28
+ };
29
+ },
30
+ get workerData() {
31
+ var _a;
32
+ return (_a = global.__workerData__) !== null && _a !== void 0 ? _a : {};
33
+ },
34
+ }));
35
+ jest.mock('../logger/logger', () => ({
36
+ Logger: jest.fn().mockImplementation(() => ({
37
+ log: jest.fn(),
38
+ warn: jest.fn(),
39
+ error: jest.fn(),
40
+ info: jest.fn(),
41
+ logFn: jest.fn(),
42
+ })),
43
+ serializeError: jest.fn((e) => String(e)),
44
+ }));
45
+ jest.mock('../logger/logger.context', () => ({
46
+ runWithSdkLogContext: jest.fn((fn) => fn()),
47
+ runWithUserLogContext: jest.fn((fn) => fn()),
48
+ }));
49
+ jest.mock('../state/extraction-state', () => ({
50
+ createExtractionState: jest.fn(),
51
+ }));
52
+ jest.mock('./adapters/extraction-adapter', () => ({
53
+ ExtractionAdapter: jest.fn().mockImplementation(() => ({
54
+ isTimeout: false,
55
+ hasWorkerEmitted: false,
56
+ })),
57
+ }));
58
+ const process_task_1 = require("./process-task");
59
+ const extraction_state_1 = require("../state/extraction-state");
60
+ const extraction_adapter_1 = require("./adapters/extraction-adapter");
61
+ const test_utils_1 = require("../common/test-utils");
62
+ function setWorkerData(data) {
63
+ global.__workerData__ = data;
64
+ }
65
+ function makeEvent(eventType = extraction_1.EventType.StartExtractingData) {
66
+ return (0, test_utils_1.createMockEvent)('http://localhost:0', {
67
+ payload: { event_type: eventType },
68
+ });
69
+ }
70
+ // Flush the microtask queue enough to let the async IIFE inside processExtractionTask run.
71
+ const flush = async () => new Promise((r) => setTimeout(r, 0));
72
+ describe(process_task_1.processExtractionTask.name, () => {
73
+ let processExitSpy;
74
+ beforeEach(() => {
75
+ jest.clearAllMocks();
76
+ mockIsMainThread = false;
77
+ processExitSpy = jest
78
+ .spyOn(process, 'exit')
79
+ .mockImplementation((() => { }));
80
+ extraction_state_1.createExtractionState.mockResolvedValue({});
81
+ });
82
+ afterEach(() => {
83
+ processExitSpy.mockRestore();
84
+ });
85
+ it('should NOT call onTimeout when the worker already emitted before timeout check', async () => {
86
+ // Arrange
87
+ const event = makeEvent();
88
+ setWorkerData({ event, initialState: {}, options: {} });
89
+ // Both flags true: a timeout arrived but the worker had already emitted —
90
+ // onTimeout must be skipped. This is the guard the integration suite cannot
91
+ // target cleanly because it requires a precise race between emit and timeout.
92
+ const mockAdapter = { isTimeout: true, hasWorkerEmitted: true };
93
+ extraction_adapter_1.ExtractionAdapter.mockImplementation(() => mockAdapter);
94
+ const task = jest.fn().mockResolvedValue(undefined);
95
+ const onTimeout = jest.fn().mockResolvedValue(undefined);
96
+ // Act
97
+ (0, process_task_1.processExtractionTask)({ task, onTimeout });
98
+ await flush();
99
+ // Assert
100
+ expect(onTimeout).not.toHaveBeenCalled();
101
+ expect(processExitSpy).toHaveBeenCalledWith(0);
102
+ });
103
+ it('should NOT flip adapter.isTimeout when a non-Exit WorkerMessage arrives', async () => {
104
+ // Arrange
105
+ const event = makeEvent();
106
+ setWorkerData({ event, initialState: {}, options: {} });
107
+ const mockAdapter = { isTimeout: false, hasWorkerEmitted: false };
108
+ extraction_adapter_1.ExtractionAdapter.mockImplementation(() => mockAdapter);
109
+ const task = jest.fn().mockResolvedValue(undefined);
110
+ const onTimeout = jest.fn().mockResolvedValue(undefined);
111
+ // Act
112
+ (0, process_task_1.processExtractionTask)({ task, onTimeout });
113
+ await flush();
114
+ // Grab the handler registered for WorkerMessage events and invoke it with
115
+ // subjects that must NOT flip isTimeout (log messages, unknown subjects).
116
+ const messageHandlerCall = mockParentPortOn.mock.calls.find(([eventName]) => eventName === workers_1.WorkerEvent.WorkerMessage);
117
+ expect(messageHandlerCall).toBeDefined();
118
+ const handler = messageHandlerCall[1];
119
+ handler({ subject: workers_1.WorkerMessageSubject.WorkerMessageLog });
120
+ handler({ subject: 'NONSENSE_SUBJECT' });
121
+ // Assert
122
+ expect(mockAdapter.isTimeout).toBe(false);
123
+ });
124
+ it('should post WorkerMessageFailed with the error message and exit(1) when task throws', async () => {
125
+ // Arrange
126
+ const event = makeEvent();
127
+ setWorkerData({ event, initialState: {}, options: {} });
128
+ const mockAdapter = { isTimeout: false, hasWorkerEmitted: false };
129
+ extraction_adapter_1.ExtractionAdapter.mockImplementation(() => mockAdapter);
130
+ const taskError = new Error('task boom');
131
+ const task = jest.fn().mockRejectedValue(taskError);
132
+ const onTimeout = jest.fn().mockResolvedValue(undefined);
133
+ // Act
134
+ (0, process_task_1.processExtractionTask)({ task, onTimeout });
135
+ await flush();
136
+ // Assert
137
+ expect(mockParentPortPostMessage).toHaveBeenCalledWith(expect.objectContaining({
138
+ subject: workers_1.WorkerMessageSubject.WorkerMessageFailed,
139
+ payload: expect.objectContaining({
140
+ message: expect.stringContaining('task boom'),
141
+ }),
142
+ }));
143
+ expect(processExitSpy).toHaveBeenCalledWith(1);
144
+ expect(onTimeout).not.toHaveBeenCalled();
145
+ });
146
+ });
@@ -5,13 +5,12 @@ import { SpawnFactoryInterface, SpawnInterface } from '../../types/workers';
5
5
  * The class provides utilities to emit control events to the platform and exit the worker gracefully.
6
6
  * In case of lambda timeout, the class emits a lambda timeout event to the platform.
7
7
  * @param {SpawnFactoryInterface} options - The options to create a new instance of Spawn class
8
- * @param {AirdropEvent} options.event - The event object received from the platform
8
+ * @param {AirSyncEvent} options.event - The event object received from the platform
9
9
  * @param {object} options.initialState - The initial state of the adapter
10
- * @param {string} [options.workerPath] Remove getWorkerPath function and use baseWorkerPath: __dirname instead of workerPath
11
10
  * @param {string} [options.baseWorkerPath] - The base path for the worker files, usually `__dirname`
12
11
  * @returns {Promise<Spawn>} - A new instance of Spawn class
13
12
  */
14
- export declare function spawn<ConnectorState>({ event, initialState, workerPath, initialDomainMapping, options, baseWorkerPath, }: SpawnFactoryInterface<ConnectorState>): Promise<void>;
13
+ export declare function spawn<ConnectorState>({ event, initialState, initialDomainMapping, options, baseWorkerPath, }: SpawnFactoryInterface<ConnectorState>): Promise<void>;
15
14
  export declare class Spawn {
16
15
  private event;
17
16
  private alreadyEmitted;
@@ -24,6 +23,7 @@ export declare class Spawn {
24
23
  private resolve;
25
24
  private originalConsole;
26
25
  private logger;
26
+ private workerFailedMessage;
27
27
  constructor({ event, worker, options, resolve, originalConsole, }: SpawnInterface);
28
28
  private clearTimeouts;
29
29
  private exitFromMainThread;
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/multithreading/spawn/spawn.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,qBAAqB,EACrB,cAAc,EAGf,MAAM,qBAAqB,CAAC;AA+C7B;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,cAAc,EAAE,EAC1C,KAAK,EACL,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,cAAc,GACf,EAAE,qBAAqB,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwFvD;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,wBAAwB,CAA6C;IAC7E,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,MAAM,CAAS;gBACX,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,eAAe,GAChB,EAAE,cAAc;IA4GjB,OAAO,CAAC,aAAa;YAYP,kBAAkB;CAiCjC"}
1
+ {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/multithreading/spawn/spawn.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,qBAAqB,EACrB,cAAc,EAGf,MAAM,qBAAqB,CAAC;AA+C7B;;;;;;;;;;GAUG;AACH,wBAAsB,KAAK,CAAC,cAAc,EAAE,EAC1C,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,OAAO,EACP,cAAc,GACf,EAAE,qBAAqB,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAyEvD;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,wBAAwB,CAA6C;IAC7E,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,mBAAmB,CAAqB;gBACpC,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,eAAe,GAChB,EAAE,cAAc;IAiHjB,OAAO,CAAC,aAAa;YAYP,kBAAkB;CAoCjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.helpers.d.ts","sourceRoot":"","sources":["../../../src/multithreading/spawn/spawn.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG;IAC9D,SAAS,EAAE,kBAAkB,GAAG,eAAe,CAAC;CACjD,CAmFA;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS;;;;EA2BxD"}
1
+ {"version":3,"file":"spawn.helpers.d.ts","sourceRoot":"","sources":["../../../src/multithreading/spawn/spawn.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG;IAC9D,SAAS,EAAE,kBAAkB,GAAG,eAAe,CAAC;CACjD,CA2EA;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS;;;;EA2BxD"}
@@ -11,43 +11,35 @@ const loading_1 = require("../../types/loading");
11
11
  */
12
12
  function getTimeoutErrorEventType(eventType) {
13
13
  switch (eventType) {
14
- // Metadata extraction (handles both old and new enum members)
14
+ // Metadata extraction
15
15
  case extraction_1.EventType.StartExtractingMetadata:
16
- case extraction_1.EventType.ExtractionMetadataStart:
17
16
  return {
18
17
  eventType: extraction_1.ExtractorEventType.MetadataExtractionError,
19
18
  };
20
- // Data extraction (handles both old and new enum members)
19
+ // Data extraction
21
20
  case extraction_1.EventType.StartExtractingData:
22
21
  case extraction_1.EventType.ContinueExtractingData:
23
- case extraction_1.EventType.ExtractionDataStart:
24
- case extraction_1.EventType.ExtractionDataContinue:
25
22
  return {
26
23
  eventType: extraction_1.ExtractorEventType.DataExtractionError,
27
24
  };
28
- // Data deletion (handles both old and new enum members)
25
+ // Data deletion
29
26
  case extraction_1.EventType.StartDeletingExtractorState:
30
- case extraction_1.EventType.ExtractionDataDelete:
31
27
  return {
32
28
  eventType: extraction_1.ExtractorEventType.ExtractorStateDeletionError,
33
29
  };
34
- // Attachments extraction (handles both old and new enum members)
30
+ // Attachments extraction
35
31
  case extraction_1.EventType.StartExtractingAttachments:
36
32
  case extraction_1.EventType.ContinueExtractingAttachments:
37
- case extraction_1.EventType.ExtractionAttachmentsStart:
38
- case extraction_1.EventType.ExtractionAttachmentsContinue:
39
33
  return {
40
34
  eventType: extraction_1.ExtractorEventType.AttachmentExtractionError,
41
35
  };
42
- // Attachments deletion (handles both old and new enum members)
36
+ // Attachments deletion
43
37
  case extraction_1.EventType.StartDeletingExtractorAttachmentsState:
44
- case extraction_1.EventType.ExtractionAttachmentsDelete:
45
38
  return {
46
39
  eventType: extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionError,
47
40
  };
48
- // External sync units (handles both old and new enum members)
41
+ // External sync units
49
42
  case extraction_1.EventType.StartExtractingExternalSyncUnits:
50
- case extraction_1.EventType.ExtractionExternalSyncUnitsStart:
51
43
  return {
52
44
  eventType: extraction_1.ExtractorEventType.ExternalSyncUnitExtractionError,
53
45
  };
@@ -15,7 +15,7 @@ describe(spawn_helpers_1.getTimeoutErrorEventType.name, () => {
15
15
  });
16
16
  it('should return MetadataExtractionError for deprecated ExtractionMetadataStart', () => {
17
17
  // Arrange
18
- const eventType = extraction_1.EventType.ExtractionMetadataStart;
18
+ const eventType = extraction_1.EventType.StartExtractingMetadata;
19
19
  // Act
20
20
  const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
21
21
  // Assert
@@ -41,7 +41,7 @@ describe(spawn_helpers_1.getTimeoutErrorEventType.name, () => {
41
41
  });
42
42
  it('should return DataExtractionError for deprecated ExtractionDataStart', () => {
43
43
  // Arrange
44
- const eventType = extraction_1.EventType.ExtractionDataStart;
44
+ const eventType = extraction_1.EventType.StartExtractingData;
45
45
  // Act
46
46
  const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
47
47
  // Assert
@@ -49,7 +49,7 @@ describe(spawn_helpers_1.getTimeoutErrorEventType.name, () => {
49
49
  });
50
50
  it('should return DataExtractionError for deprecated ExtractionDataContinue', () => {
51
51
  // Arrange
52
- const eventType = extraction_1.EventType.ExtractionDataContinue;
52
+ const eventType = extraction_1.EventType.ContinueExtractingData;
53
53
  // Act
54
54
  const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
55
55
  // Assert
@@ -67,7 +67,7 @@ describe(spawn_helpers_1.getTimeoutErrorEventType.name, () => {
67
67
  });
68
68
  it('should return ExtractorStateDeletionError for deprecated ExtractionDataDelete', () => {
69
69
  // Arrange
70
- const eventType = extraction_1.EventType.ExtractionDataDelete;
70
+ const eventType = extraction_1.EventType.StartDeletingExtractorState;
71
71
  // Act
72
72
  const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
73
73
  // Assert
@@ -93,7 +93,7 @@ describe(spawn_helpers_1.getTimeoutErrorEventType.name, () => {
93
93
  });
94
94
  it('should return AttachmentExtractionError for deprecated ExtractionAttachmentsStart', () => {
95
95
  // Arrange
96
- const eventType = extraction_1.EventType.ExtractionAttachmentsStart;
96
+ const eventType = extraction_1.EventType.StartExtractingAttachments;
97
97
  // Act
98
98
  const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
99
99
  // Assert
@@ -101,7 +101,7 @@ describe(spawn_helpers_1.getTimeoutErrorEventType.name, () => {
101
101
  });
102
102
  it('should return AttachmentExtractionError for deprecated ExtractionAttachmentsContinue', () => {
103
103
  // Arrange
104
- const eventType = extraction_1.EventType.ExtractionAttachmentsContinue;
104
+ const eventType = extraction_1.EventType.ContinueExtractingAttachments;
105
105
  // Act
106
106
  const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
107
107
  // Assert
@@ -119,7 +119,7 @@ describe(spawn_helpers_1.getTimeoutErrorEventType.name, () => {
119
119
  });
120
120
  it('should return ExtractorAttachmentsStateDeletionError for deprecated ExtractionAttachmentsDelete', () => {
121
121
  // Arrange
122
- const eventType = extraction_1.EventType.ExtractionAttachmentsDelete;
122
+ const eventType = extraction_1.EventType.StartDeletingExtractorAttachmentsState;
123
123
  // Act
124
124
  const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
125
125
  // Assert
@@ -137,7 +137,7 @@ describe(spawn_helpers_1.getTimeoutErrorEventType.name, () => {
137
137
  });
138
138
  it('should return ExternalSyncUnitExtractionError for deprecated ExtractionExternalSyncUnitsStart', () => {
139
139
  // Arrange
140
- const eventType = extraction_1.EventType.ExtractionExternalSyncUnitsStart;
140
+ const eventType = extraction_1.EventType.StartExtractingExternalSyncUnits;
141
141
  // Act
142
142
  const result = (0, spawn_helpers_1.getTimeoutErrorEventType)(eventType);
143
143
  // Assert