@devrev/airsync-sdk 2.0.0-beta.3 → 2.0.0-beta.4

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 (198) hide show
  1. package/README.md +5 -11
  2. package/dist/attachments-streaming/attachments-streaming-pool.d.ts +2 -10
  3. package/dist/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
  4. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts +2 -7
  5. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts.map +1 -1
  6. package/dist/attachments-streaming/attachments-streaming-pool.js +15 -43
  7. package/dist/common/constants.d.ts +1 -0
  8. package/dist/common/constants.d.ts.map +1 -1
  9. package/dist/common/constants.js +2 -1
  10. package/dist/common/helpers.d.ts +0 -14
  11. package/dist/common/helpers.d.ts.map +1 -1
  12. package/dist/common/helpers.js +0 -36
  13. package/dist/http/{axios-client-internal.d.ts → client.d.ts} +1 -1
  14. package/dist/http/client.d.ts.map +1 -0
  15. package/dist/index.d.ts +22 -11
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +46 -28
  18. package/dist/logger/logger.d.ts +14 -0
  19. package/dist/logger/logger.d.ts.map +1 -1
  20. package/dist/logger/logger.js +55 -8
  21. package/dist/mappers/mappers.d.ts +9 -10
  22. package/dist/mappers/mappers.d.ts.map +1 -1
  23. package/dist/mappers/{mappers.interface.d.ts → mappers.interfaces.d.ts} +5 -5
  24. package/dist/mappers/mappers.interfaces.d.ts.map +1 -0
  25. package/dist/mappers/{mappers.interface.js → mappers.interfaces.js} +3 -3
  26. package/dist/mappers/mappers.js +13 -9
  27. package/dist/multithreading/adapters/base-adapter.d.ts +23 -8
  28. package/dist/multithreading/adapters/base-adapter.d.ts.map +1 -1
  29. package/dist/multithreading/adapters/base-adapter.js +41 -8
  30. package/dist/multithreading/adapters/extraction-adapter.d.ts +8 -9
  31. package/dist/multithreading/adapters/extraction-adapter.d.ts.map +1 -1
  32. package/dist/multithreading/adapters/extraction-adapter.js +24 -26
  33. package/dist/multithreading/adapters/loading-adapter.d.ts +7 -7
  34. package/dist/multithreading/adapters/loading-adapter.d.ts.map +1 -1
  35. package/dist/multithreading/adapters/loading-adapter.js +53 -83
  36. package/dist/{common/control-protocol.d.ts → multithreading/emit.d.ts} +1 -1
  37. package/dist/multithreading/emit.d.ts.map +1 -0
  38. package/dist/{common/control-protocol.js → multithreading/emit.js} +3 -3
  39. package/dist/multithreading/process-task.d.ts.map +1 -1
  40. package/dist/multithreading/process-task.js +26 -9
  41. package/dist/multithreading/spawn/spawn.helpers.d.ts +23 -3
  42. package/dist/multithreading/spawn/spawn.helpers.d.ts.map +1 -1
  43. package/dist/multithreading/spawn/spawn.helpers.js +152 -2
  44. package/dist/multithreading/spawn/spawn.js +7 -7
  45. package/dist/multithreading/worker.js +1 -2
  46. package/dist/repo/repo.js +2 -2
  47. package/dist/state/base-state.d.ts +5 -5
  48. package/dist/state/base-state.d.ts.map +1 -1
  49. package/dist/state/base-state.js +7 -7
  50. package/dist/state/extraction-state.d.ts +9 -9
  51. package/dist/state/extraction-state.d.ts.map +1 -1
  52. package/dist/state/extraction-state.js +10 -10
  53. package/dist/state/install-initial-domain-mapping.d.ts.map +1 -0
  54. package/dist/{common → state}/install-initial-domain-mapping.js +4 -4
  55. package/dist/state/loading-state.d.ts +7 -8
  56. package/dist/state/loading-state.d.ts.map +1 -1
  57. package/dist/state/loading-state.js +6 -7
  58. package/dist/state/state.d.ts +4 -0
  59. package/dist/state/state.d.ts.map +1 -0
  60. package/dist/state/state.interfaces.d.ts +28 -18
  61. package/dist/state/state.interfaces.d.ts.map +1 -1
  62. package/dist/state/state.interfaces.js +13 -6
  63. package/dist/state/state.js +11 -0
  64. package/dist/{common → state}/time-value-resolver.d.ts +6 -7
  65. package/dist/state/time-value-resolver.d.ts.map +1 -0
  66. package/dist/{common → state}/time-value-resolver.js +9 -8
  67. package/dist/{common/test-utils.d.ts → testing/mock-event.d.ts} +1 -2
  68. package/dist/testing/mock-event.d.ts.map +1 -0
  69. package/dist/{common/test-utils.js → testing/mock-event.js} +14 -3
  70. package/dist/{mock-server → testing}/mock-server.d.ts +5 -0
  71. package/dist/testing/mock-server.d.ts.map +1 -0
  72. package/dist/testing/mock-server.interfaces.d.ts.map +1 -0
  73. package/dist/{mock-server → testing}/mock-server.js +6 -1
  74. package/dist/types/errors.d.ts +9 -0
  75. package/dist/types/errors.d.ts.map +1 -0
  76. package/dist/types/extraction.d.ts +70 -15
  77. package/dist/types/extraction.d.ts.map +1 -1
  78. package/dist/types/extraction.js +4 -6
  79. package/dist/types/loading.d.ts +1 -2
  80. package/dist/types/loading.d.ts.map +1 -1
  81. package/dist/types/loading.js +0 -1
  82. package/dist/types/workers.d.ts +66 -23
  83. package/dist/types/workers.d.ts.map +1 -1
  84. package/dist/uploader/uploader.d.ts +5 -4
  85. package/dist/uploader/uploader.d.ts.map +1 -1
  86. package/dist/uploader/uploader.interfaces.d.ts +1 -1
  87. package/dist/uploader/uploader.js +10 -10
  88. package/package.json +3 -3
  89. package/dist/airsync-sdk.d.ts +0 -2059
  90. package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts +0 -2
  91. package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts.map +0 -1
  92. package/dist/attachments-streaming/attachments-streaming-pool.test.js +0 -540
  93. package/dist/common/control-protocol.d.ts.map +0 -1
  94. package/dist/common/errors.d.ts +0 -6
  95. package/dist/common/errors.d.ts.map +0 -1
  96. package/dist/common/install-initial-domain-mapping.d.ts.map +0 -1
  97. package/dist/common/install-initial-domain-mapping.test.d.ts +0 -2
  98. package/dist/common/install-initial-domain-mapping.test.d.ts.map +0 -1
  99. package/dist/common/install-initial-domain-mapping.test.js +0 -211
  100. package/dist/common/test-utils.d.ts.map +0 -1
  101. package/dist/common/time-value-resolver.d.ts.map +0 -1
  102. package/dist/common/time-value-resolver.test.d.ts +0 -2
  103. package/dist/common/time-value-resolver.test.d.ts.map +0 -1
  104. package/dist/common/time-value-resolver.test.js +0 -268
  105. package/dist/http/axios-client-internal.d.ts.map +0 -1
  106. package/dist/http/axios-client-internal.test.d.ts +0 -2
  107. package/dist/http/axios-client-internal.test.d.ts.map +0 -1
  108. package/dist/http/axios-client-internal.test.js +0 -175
  109. package/dist/http/axios-client.d.ts +0 -27
  110. package/dist/http/axios-client.d.ts.map +0 -1
  111. package/dist/http/axios-client.js +0 -60
  112. package/dist/http/constants.d.ts +0 -4
  113. package/dist/http/constants.d.ts.map +0 -1
  114. package/dist/http/constants.js +0 -6
  115. package/dist/http/index.d.ts +0 -2
  116. package/dist/http/index.d.ts.map +0 -1
  117. package/dist/http/index.js +0 -17
  118. package/dist/logger/logger.constants.d.ts +0 -6
  119. package/dist/logger/logger.constants.d.ts.map +0 -1
  120. package/dist/logger/logger.constants.js +0 -13
  121. package/dist/logger/logger.context.d.ts +0 -58
  122. package/dist/logger/logger.context.d.ts.map +0 -1
  123. package/dist/logger/logger.context.js +0 -86
  124. package/dist/logger/logger.test.d.ts +0 -2
  125. package/dist/logger/logger.test.d.ts.map +0 -1
  126. package/dist/logger/logger.test.js +0 -537
  127. package/dist/mappers/mappers.interface.d.ts.map +0 -1
  128. package/dist/mappers/mappers.test.d.ts +0 -2
  129. package/dist/mappers/mappers.test.d.ts.map +0 -1
  130. package/dist/mappers/mappers.test.js +0 -105
  131. package/dist/mock-server/mock-server.d.ts.map +0 -1
  132. package/dist/mock-server/mock-server.interfaces.d.ts.map +0 -1
  133. package/dist/multithreading/adapters/base-adapter.emit.test.d.ts +0 -2
  134. package/dist/multithreading/adapters/base-adapter.emit.test.d.ts.map +0 -1
  135. package/dist/multithreading/adapters/base-adapter.emit.test.js +0 -403
  136. package/dist/multithreading/adapters/extraction-adapter.artifacts.test.d.ts +0 -2
  137. package/dist/multithreading/adapters/extraction-adapter.artifacts.test.d.ts.map +0 -1
  138. package/dist/multithreading/adapters/extraction-adapter.artifacts.test.js +0 -175
  139. package/dist/multithreading/adapters/extraction-adapter.test.d.ts +0 -2
  140. package/dist/multithreading/adapters/extraction-adapter.test.d.ts.map +0 -1
  141. package/dist/multithreading/adapters/extraction-adapter.test.js +0 -789
  142. package/dist/multithreading/adapters/loading-adapter.helpers.test.d.ts +0 -2
  143. package/dist/multithreading/adapters/loading-adapter.helpers.test.d.ts.map +0 -1
  144. package/dist/multithreading/adapters/loading-adapter.helpers.test.js +0 -514
  145. package/dist/multithreading/adapters/loading-adapter.test.d.ts +0 -2
  146. package/dist/multithreading/adapters/loading-adapter.test.d.ts.map +0 -1
  147. package/dist/multithreading/adapters/loading-adapter.test.js +0 -589
  148. package/dist/multithreading/adapters/serialization.test.d.ts +0 -2
  149. package/dist/multithreading/adapters/serialization.test.d.ts.map +0 -1
  150. package/dist/multithreading/adapters/serialization.test.js +0 -71
  151. package/dist/multithreading/create-worker.test.d.ts +0 -2
  152. package/dist/multithreading/create-worker.test.d.ts.map +0 -1
  153. package/dist/multithreading/create-worker.test.js +0 -108
  154. package/dist/multithreading/process-task.test.d.ts +0 -2
  155. package/dist/multithreading/process-task.test.d.ts.map +0 -1
  156. package/dist/multithreading/process-task.test.js +0 -146
  157. package/dist/multithreading/spawn/spawn.helpers.test.d.ts +0 -2
  158. package/dist/multithreading/spawn/spawn.helpers.test.d.ts.map +0 -1
  159. package/dist/multithreading/spawn/spawn.helpers.test.js +0 -293
  160. package/dist/multithreading/spawn/spawn.test.d.ts +0 -2
  161. package/dist/multithreading/spawn/spawn.test.d.ts.map +0 -1
  162. package/dist/multithreading/spawn/spawn.test.js +0 -232
  163. package/dist/repo/repo.test.d.ts +0 -2
  164. package/dist/repo/repo.test.d.ts.map +0 -1
  165. package/dist/repo/repo.test.js +0 -184
  166. package/dist/state/state.extract-window.test.d.ts +0 -2
  167. package/dist/state/state.extract-window.test.d.ts.map +0 -1
  168. package/dist/state/state.extract-window.test.js +0 -163
  169. package/dist/state/state.pending-boundaries.test.d.ts +0 -2
  170. package/dist/state/state.pending-boundaries.test.d.ts.map +0 -1
  171. package/dist/state/state.pending-boundaries.test.js +0 -189
  172. package/dist/state/state.post-state.test.d.ts +0 -2
  173. package/dist/state/state.post-state.test.d.ts.map +0 -1
  174. package/dist/state/state.post-state.test.js +0 -78
  175. package/dist/state/state.test.d.ts +0 -2
  176. package/dist/state/state.test.d.ts.map +0 -1
  177. package/dist/state/state.test.js +0 -271
  178. package/dist/state/state.time-value-resolution.test.d.ts +0 -2
  179. package/dist/state/state.time-value-resolution.test.d.ts.map +0 -1
  180. package/dist/state/state.time-value-resolution.test.js +0 -175
  181. package/dist/tsdoc-metadata.json +0 -11
  182. package/dist/types/extraction.test.d.ts +0 -2
  183. package/dist/types/extraction.test.d.ts.map +0 -1
  184. package/dist/types/extraction.test.js +0 -96
  185. package/dist/types/index.d.ts +0 -10
  186. package/dist/types/index.d.ts.map +0 -1
  187. package/dist/types/index.js +0 -21
  188. package/dist/uploader/uploader.helpers.test.d.ts +0 -2
  189. package/dist/uploader/uploader.helpers.test.d.ts.map +0 -1
  190. package/dist/uploader/uploader.helpers.test.js +0 -256
  191. package/dist/uploader/uploader.test.d.ts +0 -2
  192. package/dist/uploader/uploader.test.d.ts.map +0 -1
  193. package/dist/uploader/uploader.test.js +0 -601
  194. /package/dist/http/{axios-client-internal.js → client.js} +0 -0
  195. /package/dist/{common → state}/install-initial-domain-mapping.d.ts +0 -0
  196. /package/dist/{mock-server → testing}/mock-server.interfaces.d.ts +0 -0
  197. /package/dist/{mock-server → testing}/mock-server.interfaces.js +0 -0
  198. /package/dist/{common → types}/errors.js +0 -0
@@ -6,9 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LoadingAdapter = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const logger_1 = require("../../logger/logger");
9
- const logger_context_1 = require("../../logger/logger.context");
10
9
  const mappers_1 = require("../../mappers/mappers");
11
- const mappers_interface_1 = require("../../mappers/mappers.interface");
10
+ const mappers_interfaces_1 = require("../../mappers/mappers.interfaces");
12
11
  const extraction_1 = require("../../types/extraction");
13
12
  const loading_1 = require("../../types/loading");
14
13
  const base_adapter_1 = require("./base-adapter");
@@ -54,45 +53,38 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
54
53
  // Loading keeps its accumulated reports/processed files across emits.
55
54
  }
56
55
  async loadItemTypes({ itemTypesToLoad, }) {
57
- return (0, logger_context_1.runWithSdkLogContext)(async () => {
56
+ return (0, logger_1.runWithSdkLogContext)(async () => {
58
57
  var _a;
59
58
  if (this.event.payload.event_type === extraction_1.EventType.StartLoadingData) {
60
59
  const itemTypes = itemTypesToLoad.map((itemTypeToLoad) => itemTypeToLoad.itemType);
61
60
  if (!itemTypes.length) {
62
61
  console.warn('No item types to load, returning.');
63
- return {
64
- reports: this.reports,
65
- processed_files: this.processedFiles,
66
- };
62
+ return { status: 'success' };
67
63
  }
68
64
  const filesToLoad = await this.getLoaderBatches({
69
65
  supportedItemTypes: itemTypes,
70
66
  });
71
- this.adapterState.sdkState.fromDevRev = {
67
+ this.sdkState.fromDevRev = {
72
68
  filesToLoad,
73
69
  };
74
70
  }
75
- if (!this.adapterState.sdkState.fromDevRev ||
76
- !this.adapterState.sdkState.fromDevRev.filesToLoad.length) {
71
+ if (!this.sdkState.fromDevRev ||
72
+ !this.sdkState.fromDevRev.filesToLoad.length) {
77
73
  console.warn('No files to load, returning.');
78
- return {
79
- reports: this.reports,
80
- processed_files: this.processedFiles,
81
- };
74
+ return { status: 'success' };
82
75
  }
83
- console.log('Files to load in state', (_a = this.adapterState.sdkState.fromDevRev) === null || _a === void 0 ? void 0 : _a.filesToLoad);
76
+ console.log('Files to load in state', (_a = this.sdkState.fromDevRev) === null || _a === void 0 ? void 0 : _a.filesToLoad);
84
77
  try {
85
- outerloop: for (const fileToLoad of this.adapterState.sdkState
86
- .fromDevRev.filesToLoad) {
78
+ for (const fileToLoad of this.sdkState.fromDevRev.filesToLoad) {
87
79
  const itemTypeToLoad = itemTypesToLoad.find((itemTypeToLoad) => itemTypeToLoad.itemType === fileToLoad.itemType);
88
80
  if (!itemTypeToLoad) {
89
81
  console.error(`Item type to load not found for item type: ${fileToLoad.itemType}.`);
90
- await this.emit(loading_1.LoaderEventType.DataLoadingError, {
82
+ return {
83
+ status: 'error',
91
84
  error: {
92
85
  message: `Item type to load not found for item type: ${fileToLoad.itemType}.`,
93
86
  },
94
- });
95
- break;
87
+ };
96
88
  }
97
89
  if (!fileToLoad.completed) {
98
90
  const { response, error: transformerFileError } = await this.uploader.getJsonObjectByArtifactId({
@@ -101,31 +93,25 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
101
93
  });
102
94
  if (transformerFileError) {
103
95
  console.error(`Transformer file not found for artifact ID: ${fileToLoad.id}.`);
104
- await this.emit(loading_1.LoaderEventType.DataLoadingError, {
96
+ return {
97
+ status: 'error',
105
98
  error: {
106
99
  message: `Transformer file not found for artifact ID: ${fileToLoad.id}.`,
107
100
  },
108
- });
109
- break outerloop;
101
+ };
110
102
  }
111
103
  const transformerFile = response;
112
104
  for (let i = fileToLoad.lineToProcess; i < fileToLoad.count; i++) {
113
105
  if (this.isTimeout) {
114
- console.log('Timeout detected during data loading. Emitting progress to allow continuation.');
115
- await this.emit(loading_1.LoaderEventType.DataLoadingProgress);
116
- process.exit(0);
106
+ console.log('Timeout detected during data loading. Returning progress to allow continuation.');
107
+ return { status: 'progress' };
117
108
  }
118
109
  const { report, rateLimit } = await this.loadItem({
119
110
  item: transformerFile[i],
120
111
  itemTypeToLoad,
121
112
  });
122
113
  if (rateLimit === null || rateLimit === void 0 ? void 0 : rateLimit.delay) {
123
- await this.emit(loading_1.LoaderEventType.DataLoadingDelayed, {
124
- delay: rateLimit.delay,
125
- reports: this.reports,
126
- processed_files: this.processedFiles,
127
- });
128
- break outerloop;
114
+ return { status: 'delay', delaySeconds: rateLimit.delay };
129
115
  }
130
116
  if (report) {
131
117
  (0, loading_adapter_helpers_1.addReportToLoaderReport)({
@@ -142,21 +128,18 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
142
128
  }
143
129
  catch (error) {
144
130
  console.error('Error during data loading.', (0, logger_1.serializeError)(error));
145
- await this.emit(loading_1.LoaderEventType.DataLoadingError, {
131
+ return {
132
+ status: 'error',
146
133
  error: {
147
134
  message: `Error during data loading. ${(0, logger_1.serializeError)(error)}`,
148
135
  },
149
- });
150
- process.exit(1);
136
+ };
151
137
  }
152
- return {
153
- reports: this.reports,
154
- processed_files: this.processedFiles,
155
- };
138
+ return { status: 'success' };
156
139
  });
157
140
  }
158
141
  async getLoaderBatches({ supportedItemTypes, }) {
159
- return (0, logger_context_1.runWithSdkLogContext)(async () => {
142
+ return (0, logger_1.runWithSdkLogContext)(async () => {
160
143
  var _a;
161
144
  const statsFileArtifactId = (_a = this.event.payload.event_data) === null || _a === void 0 ? void 0 : _a.stats_file;
162
145
  if (statsFileArtifactId) {
@@ -177,26 +160,23 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
177
160
  });
178
161
  }
179
162
  async loadAttachments({ create, }) {
180
- return (0, logger_context_1.runWithSdkLogContext)(async () => {
163
+ return (0, logger_1.runWithSdkLogContext)(async () => {
181
164
  var _a, _b;
182
165
  if (this.event.payload.event_type === extraction_1.EventType.StartLoadingAttachments) {
183
- this.adapterState.sdkState.fromDevRev = {
166
+ this.sdkState.fromDevRev = {
184
167
  filesToLoad: await this.getLoaderBatches({
185
168
  supportedItemTypes: ['attachment'],
186
169
  }),
187
170
  };
188
171
  }
189
- if (!this.adapterState.sdkState.fromDevRev ||
190
- ((_a = this.adapterState.sdkState.fromDevRev) === null || _a === void 0 ? void 0 : _a.filesToLoad.length) === 0) {
172
+ if (!this.sdkState.fromDevRev ||
173
+ ((_a = this.sdkState.fromDevRev) === null || _a === void 0 ? void 0 : _a.filesToLoad.length) === 0) {
191
174
  console.log('No files to load, returning.');
192
- return {
193
- reports: this.reports,
194
- processed_files: this.processedFiles,
195
- };
175
+ return { status: 'success' };
196
176
  }
197
- const filesToLoad = (_b = this.adapterState.sdkState.fromDevRev) === null || _b === void 0 ? void 0 : _b.filesToLoad;
177
+ const filesToLoad = (_b = this.sdkState.fromDevRev) === null || _b === void 0 ? void 0 : _b.filesToLoad;
198
178
  try {
199
- outerloop: for (const fileToLoad of filesToLoad) {
179
+ for (const fileToLoad of filesToLoad) {
200
180
  if (!fileToLoad.completed) {
201
181
  const { response, error: transformerFileError } = await this.uploader.getJsonObjectByArtifactId({
202
182
  artifactId: fileToLoad.id,
@@ -205,30 +185,24 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
205
185
  const transformerFile = response;
206
186
  if (transformerFileError) {
207
187
  console.error(`Transformer file not found for artifact ID: ${fileToLoad.id}.`);
208
- await this.emit(loading_1.LoaderEventType.AttachmentLoadingError, {
188
+ return {
189
+ status: 'error',
209
190
  error: {
210
191
  message: `Transformer file not found for artifact ID: ${fileToLoad.id}.`,
211
192
  },
212
- });
213
- break outerloop;
193
+ };
214
194
  }
215
195
  for (let i = fileToLoad.lineToProcess; i < fileToLoad.count; i++) {
216
196
  if (this.isTimeout) {
217
- console.log('Timeout detected during attachment loading. Emitting progress to allow continuation.');
218
- await this.emit(loading_1.LoaderEventType.AttachmentLoadingProgress);
219
- process.exit(0);
197
+ console.log('Timeout detected during attachment loading. Returning progress to allow continuation.');
198
+ return { status: 'progress' };
220
199
  }
221
200
  const { report, rateLimit } = await this.loadAttachment({
222
201
  item: transformerFile[i],
223
202
  create,
224
203
  });
225
204
  if (rateLimit === null || rateLimit === void 0 ? void 0 : rateLimit.delay) {
226
- await this.emit(loading_1.LoaderEventType.AttachmentLoadingDelayed, {
227
- delay: rateLimit.delay,
228
- reports: this.reports,
229
- processed_files: this.processedFiles,
230
- });
231
- break outerloop;
205
+ return { status: 'delay', delaySeconds: rateLimit.delay };
232
206
  }
233
207
  if (report) {
234
208
  (0, loading_adapter_helpers_1.addReportToLoaderReport)({
@@ -245,29 +219,25 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
245
219
  }
246
220
  catch (error) {
247
221
  console.error('Error during attachment loading.', (0, logger_1.serializeError)(error));
248
- await this.emit(loading_1.LoaderEventType.AttachmentLoadingError, {
222
+ return {
223
+ status: 'error',
249
224
  error: {
250
225
  message: `Error during attachment loading. ${(0, logger_1.serializeError)(error)}`,
251
226
  },
252
- });
253
- process.exit(1);
227
+ };
254
228
  }
255
- return {
256
- reports: this.reports,
257
- processed_files: this.processedFiles,
258
- };
229
+ return { status: 'success' };
259
230
  });
260
231
  }
261
232
  async loadItem({ item, itemTypeToLoad, }) {
262
- return (0, logger_context_1.runWithSdkLogContext)(async () => {
233
+ return (0, logger_1.runWithSdkLogContext)(async () => {
263
234
  var _a;
264
235
  const devrevId = item.id.devrev;
265
236
  try {
266
- const syncMapperRecordResponse = await this._mappers.getByTargetId({
237
+ const syncMapperRecord = await this._mappers.getByTargetId({
267
238
  sync_unit: this.event.payload.event_context.sync_unit,
268
239
  target: devrevId,
269
240
  });
270
- const syncMapperRecord = syncMapperRecordResponse.data;
271
241
  if (!syncMapperRecord) {
272
242
  console.warn('Failed to get sync mapper record from response.');
273
243
  return {
@@ -277,7 +247,7 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
277
247
  };
278
248
  }
279
249
  // Update item in external system
280
- const { id, modifiedDate, delay, error } = await (0, logger_context_1.runWithUserLogContext)(async () => {
250
+ const { id, modifiedDate, delay, error } = await (0, logger_1.runWithUserLogContext)(async () => {
281
251
  return await itemTypeToLoad.update({
282
252
  item,
283
253
  mappers: this._mappers,
@@ -286,7 +256,7 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
286
256
  });
287
257
  if (id) {
288
258
  try {
289
- const syncMapperRecordUpdateResponse = await this._mappers.update(Object.assign(Object.assign({ id: syncMapperRecord.sync_mapper_record.id, sync_unit: this.event.payload.event_context.sync_unit, status: mappers_interface_1.SyncMapperRecordStatus.OPERATIONAL }, (modifiedDate && {
259
+ const syncMapperRecordUpdate = await this._mappers.update(Object.assign(Object.assign({ id: syncMapperRecord.sync_mapper_record.id, sync_unit: this.event.payload.event_context.sync_unit, status: mappers_interfaces_1.SyncMapperRecordStatus.OPERATIONAL }, (modifiedDate && {
290
260
  external_versions: {
291
261
  add: [
292
262
  {
@@ -300,7 +270,7 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
300
270
  }, targets: {
301
271
  add: [devrevId],
302
272
  } }));
303
- console.log('Successfully updated sync mapper record.', syncMapperRecordUpdateResponse.data);
273
+ console.log('Successfully updated sync mapper record.', syncMapperRecordUpdate);
304
274
  }
305
275
  catch (error) {
306
276
  console.warn('Failed to update sync mapper record.', (0, logger_1.serializeError)(error));
@@ -340,7 +310,7 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
340
310
  if (axios_1.default.isAxiosError(error)) {
341
311
  if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
342
312
  // Create item in external system if mapper record not found
343
- const { id, modifiedDate, delay, error } = await (0, logger_context_1.runWithUserLogContext)(async () => {
313
+ const { id, modifiedDate, delay, error } = await (0, logger_1.runWithUserLogContext)(async () => {
344
314
  return await itemTypeToLoad.create({
345
315
  item,
346
316
  mappers: this._mappers,
@@ -350,7 +320,7 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
350
320
  if (id) {
351
321
  // Create mapper
352
322
  try {
353
- const syncMapperRecordCreateResponse = await this._mappers.create(Object.assign({ sync_unit: this.event.payload.event_context.sync_unit, status: mappers_interface_1.SyncMapperRecordStatus.OPERATIONAL, external_ids: [id], targets: [devrevId] }, (modifiedDate && {
323
+ const syncMapperRecordCreate = await this._mappers.create(Object.assign({ sync_unit: this.event.payload.event_context.sync_unit, status: mappers_interfaces_1.SyncMapperRecordStatus.OPERATIONAL, external_ids: [id], targets: [devrevId] }, (modifiedDate && {
354
324
  external_versions: [
355
325
  {
356
326
  modified_date: modifiedDate,
@@ -358,7 +328,7 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
358
328
  },
359
329
  ],
360
330
  })));
361
- console.log('Successfully created sync mapper record.', syncMapperRecordCreateResponse.data);
331
+ console.log('Successfully created sync mapper record.', syncMapperRecordCreate);
362
332
  return {
363
333
  report: {
364
334
  item_type: itemTypeToLoad.itemType,
@@ -412,9 +382,9 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
412
382
  });
413
383
  }
414
384
  async loadAttachment({ item, create, }) {
415
- return (0, logger_context_1.runWithSdkLogContext)(async () => {
385
+ return (0, logger_1.runWithSdkLogContext)(async () => {
416
386
  // Create item
417
- const { id, delay, error } = await (0, logger_context_1.runWithUserLogContext)(async () => create({
387
+ const { id, delay, error } = await (0, logger_1.runWithUserLogContext)(async () => create({
418
388
  item,
419
389
  mappers: this._mappers,
420
390
  event: this.event,
@@ -428,13 +398,13 @@ class LoadingAdapter extends base_adapter_1.BaseAdapter {
428
398
  }
429
399
  else if (id) {
430
400
  try {
431
- const syncMapperRecordCreateResponse = await this._mappers.create({
401
+ const syncMapperRecordCreate = await this._mappers.create({
432
402
  sync_unit: this.event.payload.event_context.sync_unit,
433
403
  external_ids: [id],
434
404
  targets: [item.reference_id],
435
- status: mappers_interface_1.SyncMapperRecordStatus.OPERATIONAL,
405
+ status: mappers_interfaces_1.SyncMapperRecordStatus.OPERATIONAL,
436
406
  });
437
- console.log('Successfully created sync mapper record.', syncMapperRecordCreateResponse.data);
407
+ console.log('Successfully created sync mapper record.', syncMapperRecordCreate);
438
408
  }
439
409
  catch (error) {
440
410
  console.warn('Failed to create sync mapper record.', (0, logger_1.serializeError)(error));
@@ -7,4 +7,4 @@ export interface EmitInterface {
7
7
  data?: EventData;
8
8
  }
9
9
  export declare const emit: ({ event, eventType, data, }: EmitInterface) => Promise<AxiosResponse>;
10
- //# sourceMappingURL=control-protocol.d.ts.map
10
+ //# sourceMappingURL=emit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/multithreading/emit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EACL,YAAY,EACZ,SAAS,EAET,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,kBAAkB,GAAG,eAAe,CAAC;IAChD,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,eAAO,MAAM,IAAI,GAAU,6BAIxB,aAAa,KAAG,OAAO,CAAC,aAAa,CA4BvC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.emit = void 0;
4
- const axios_client_internal_1 = require("../http/axios-client-internal");
5
- const constants_1 = require("./constants");
4
+ const client_1 = require("../http/client");
5
+ const constants_1 = require("../common/constants");
6
6
  const emit = async ({ event, eventType, data, }) => {
7
7
  const newEvent = {
8
8
  event_type: eventType,
@@ -13,7 +13,7 @@ const emit = async ({ event, eventType, data, }) => {
13
13
  },
14
14
  };
15
15
  console.info('Emitting event', newEvent);
16
- return axios_client_internal_1.axiosClient.post(event.payload.event_context.callback_url, Object.assign({}, newEvent), {
16
+ return client_1.axiosClient.post(event.payload.event_context.callback_url, Object.assign({}, newEvent), {
17
17
  headers: {
18
18
  Accept: 'application/json, text/plain, */*',
19
19
  Authorization: event.context.secrets.service_account_token,
@@ -1 +1 @@
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
+ {"version":3,"file":"process-task.d.ts","sourceRoot":"","sources":["../../src/multithreading/process-task.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,oBAAoB,EAIrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAoE5D;;;;;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"}
@@ -4,7 +4,6 @@ exports.processExtractionTask = processExtractionTask;
4
4
  exports.processLoadingTask = processLoadingTask;
5
5
  const node_worker_threads_1 = require("node:worker_threads");
6
6
  const logger_1 = require("../logger/logger");
7
- const logger_context_1 = require("../logger/logger.context");
8
7
  const extraction_state_1 = require("../state/extraction-state");
9
8
  const loading_state_1 = require("../state/loading-state");
10
9
  const workers_1 = require("../types/workers");
@@ -12,12 +11,24 @@ const extraction_adapter_1 = require("./adapters/extraction-adapter");
12
11
  const loading_adapter_1 = require("./adapters/loading-adapter");
13
12
  /**
14
13
  * 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.
14
+ * (on timeout) the onTimeout callback against the provided adapter, maps the
15
+ * returned {@link TaskResult} to a platform event and emits it exactly once,
16
+ * and wires the error/exit plumbing.
17
+ *
18
+ * The adapter is constructed by the caller so each entry point can build its
19
+ * own typed adapter.
20
+ *
21
+ * If `onTimeout` is omitted, the SDK emits a phase-appropriate default on
22
+ * timeout: `progress` (resumable phases) or `error` (non-resumable phases) is
23
+ * handled by the status->event mapping when we emit a `progress` result.
24
+ *
25
+ * On timeout the timeout outcome always wins: once the soft timeout has fired,
26
+ * the SDK emits the `onTimeout` result (or the default `progress`) and ignores
27
+ * whatever the task returned, because a phase that ran out of time must hand off
28
+ * for continuation rather than report itself complete.
18
29
  */
19
30
  async function runWorkerTask(buildAdapter, { task, onTimeout }) {
20
- await (0, logger_context_1.runWithSdkLogContext)(async () => {
31
+ await (0, logger_1.runWithSdkLogContext)(async () => {
21
32
  try {
22
33
  const adapter = await buildAdapter();
23
34
  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) => {
@@ -27,14 +38,20 @@ async function runWorkerTask(buildAdapter, { task, onTimeout }) {
27
38
  console.log('Timeout received. Waiting for the task to finish.');
28
39
  adapter.isTimeout = true;
29
40
  });
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 }));
41
+ let result = await (0, logger_1.runWithUserLogContext)(async () => task({ adapter }));
42
+ // If the soft timeout fired, the timeout outcome wins regardless of what
43
+ // the task returned: hand off via onTimeout (or the default progress
44
+ // result) so the phase continues in a fresh invocation.
45
+ if (adapter.isTimeout) {
46
+ result = onTimeout
47
+ ? await (0, logger_1.runWithUserLogContext)(async () => onTimeout({ adapter }))
48
+ : { status: 'progress' };
33
49
  }
50
+ await adapter.emitFromResult(result);
34
51
  process.exit(0);
35
52
  }
36
53
  catch (error) {
37
- (0, logger_context_1.runWithUserLogContext)(() => {
54
+ (0, logger_1.runWithUserLogContext)(() => {
38
55
  const errorMessage = `Error while processing task. ${(0, logger_1.serializeError)(error)}`;
39
56
  console.error(errorMessage);
40
57
  node_worker_threads_1.parentPort === null || node_worker_threads_1.parentPort === void 0 ? void 0 : node_worker_threads_1.parentPort.postMessage({
@@ -1,5 +1,27 @@
1
1
  import { EventType, ExtractorEventType } from '../../types/extraction';
2
2
  import { LoaderEventType } from '../../types/loading';
3
+ import { TaskStatus } from '../../types/workers';
4
+ /**
5
+ * Resolves the outgoing event type the SDK should emit for a given incoming
6
+ * event type and the {@link TaskResult} status a worker returned.
7
+ *
8
+ * The mapping follows the per-phase contract documented on `TaskResult`:
9
+ * resumable phases (data/attachment extraction, data/attachment loading) honor
10
+ * every status (success -> *_DONE, progress -> *_PROGRESS, delay -> *_DELAYED,
11
+ * error -> *_ERROR); non-resumable phases (external sync units, metadata, state
12
+ * deletion) only have a done and an error event, so a `progress`/`delay` status
13
+ * there is illegal and is mapped to the phase's error event.
14
+ *
15
+ * @param eventType - The incoming event type that started this worker.
16
+ * @param status - The status the worker's task/onTimeout returned.
17
+ * @returns The outgoing extractor/loader event type to emit, plus whether the
18
+ * status was illegal for the phase (so the caller can attach a descriptive
19
+ * error message).
20
+ */
21
+ export declare function getEventTypeForResult(eventType: EventType, status: TaskStatus): {
22
+ eventType: ExtractorEventType | LoaderEventType;
23
+ illegal: boolean;
24
+ };
3
25
  /**
4
26
  * Gets the event type for the timeout error.
5
27
  * @param {EventType} eventType - The event type to get the timeout error event type for
@@ -14,8 +36,6 @@ export declare function getTimeoutErrorEventType(eventType: EventType): {
14
36
  * @returns {ExtractorEventType | LoaderEventType} The event type for the no script error
15
37
  */
16
38
  export declare function getNoScriptEventType(eventType: EventType): {
17
- eventType: ExtractorEventType;
18
- } | {
19
- eventType: LoaderEventType;
39
+ eventType: ExtractorEventType | LoaderEventType;
20
40
  };
21
41
  //# sourceMappingURL=spawn.helpers.d.ts.map
@@ -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,CA2EA;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":"AACA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,UAAU,GACjB;IACD,SAAS,EAAE,kBAAkB,GAAG,eAAe,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;CAClB,CAiCA;AAoHD;;;;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;eAwBhB,kBAAkB,GAAG,eAAe;EAG5E"}
@@ -1,9 +1,159 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEventTypeForResult = getEventTypeForResult;
3
4
  exports.getTimeoutErrorEventType = getTimeoutErrorEventType;
4
5
  exports.getNoScriptEventType = getNoScriptEventType;
6
+ const constants_1 = require("../../common/constants");
5
7
  const extraction_1 = require("../../types/extraction");
6
8
  const loading_1 = require("../../types/loading");
9
+ /**
10
+ * Resolves the outgoing event type the SDK should emit for a given incoming
11
+ * event type and the {@link TaskResult} status a worker returned.
12
+ *
13
+ * The mapping follows the per-phase contract documented on `TaskResult`:
14
+ * resumable phases (data/attachment extraction, data/attachment loading) honor
15
+ * every status (success -> *_DONE, progress -> *_PROGRESS, delay -> *_DELAYED,
16
+ * error -> *_ERROR); non-resumable phases (external sync units, metadata, state
17
+ * deletion) only have a done and an error event, so a `progress`/`delay` status
18
+ * there is illegal and is mapped to the phase's error event.
19
+ *
20
+ * @param eventType - The incoming event type that started this worker.
21
+ * @param status - The status the worker's task/onTimeout returned.
22
+ * @returns The outgoing extractor/loader event type to emit, plus whether the
23
+ * status was illegal for the phase (so the caller can attach a descriptive
24
+ * error message).
25
+ */
26
+ function getEventTypeForResult(eventType, status) {
27
+ const phase = EVENT_PHASE_MAP[eventType];
28
+ if (!phase) {
29
+ console.error('Event type not recognized in getEventTypeForResult function: ' +
30
+ eventType);
31
+ return {
32
+ eventType: constants_1.UNKNOWN_EVENT_TYPE,
33
+ illegal: true,
34
+ };
35
+ }
36
+ // Non-resumable phases only define done/error events.
37
+ if (!phase.resumable) {
38
+ if (status === 'success') {
39
+ return { eventType: phase.done, illegal: false };
40
+ }
41
+ // progress/delay are illegal here; collapse them (and error) to the error event.
42
+ return { eventType: phase.error, illegal: status !== 'error' };
43
+ }
44
+ switch (status) {
45
+ case 'success':
46
+ return { eventType: phase.done, illegal: false };
47
+ case 'progress':
48
+ return { eventType: phase.progress, illegal: false };
49
+ case 'delay':
50
+ return { eventType: phase.delayed, illegal: false };
51
+ case 'error':
52
+ return { eventType: phase.error, illegal: false };
53
+ }
54
+ }
55
+ /**
56
+ * Per-phase outgoing event types, keyed by the incoming {@link EventType}.
57
+ * `resumable` phases define progress/delayed events; non-resumable ones do not.
58
+ */
59
+ const EVENT_PHASE_MAP = {
60
+ // External sync units (non-resumable)
61
+ [extraction_1.EventType.StartExtractingExternalSyncUnits]: {
62
+ resumable: false,
63
+ done: extraction_1.ExtractorEventType.ExternalSyncUnitExtractionDone,
64
+ error: extraction_1.ExtractorEventType.ExternalSyncUnitExtractionError,
65
+ },
66
+ // Metadata (non-resumable)
67
+ [extraction_1.EventType.StartExtractingMetadata]: {
68
+ resumable: false,
69
+ done: extraction_1.ExtractorEventType.MetadataExtractionDone,
70
+ error: extraction_1.ExtractorEventType.MetadataExtractionError,
71
+ },
72
+ // Data extraction (resumable)
73
+ [extraction_1.EventType.StartExtractingData]: {
74
+ resumable: true,
75
+ done: extraction_1.ExtractorEventType.DataExtractionDone,
76
+ error: extraction_1.ExtractorEventType.DataExtractionError,
77
+ progress: extraction_1.ExtractorEventType.DataExtractionProgress,
78
+ delayed: extraction_1.ExtractorEventType.DataExtractionDelayed,
79
+ },
80
+ [extraction_1.EventType.ContinueExtractingData]: {
81
+ resumable: true,
82
+ done: extraction_1.ExtractorEventType.DataExtractionDone,
83
+ error: extraction_1.ExtractorEventType.DataExtractionError,
84
+ progress: extraction_1.ExtractorEventType.DataExtractionProgress,
85
+ delayed: extraction_1.ExtractorEventType.DataExtractionDelayed,
86
+ },
87
+ // Extractor state deletion (non-resumable)
88
+ [extraction_1.EventType.StartDeletingExtractorState]: {
89
+ resumable: false,
90
+ done: extraction_1.ExtractorEventType.ExtractorStateDeletionDone,
91
+ error: extraction_1.ExtractorEventType.ExtractorStateDeletionError,
92
+ },
93
+ // Attachment extraction (resumable)
94
+ [extraction_1.EventType.StartExtractingAttachments]: {
95
+ resumable: true,
96
+ done: extraction_1.ExtractorEventType.AttachmentExtractionDone,
97
+ error: extraction_1.ExtractorEventType.AttachmentExtractionError,
98
+ progress: extraction_1.ExtractorEventType.AttachmentExtractionProgress,
99
+ delayed: extraction_1.ExtractorEventType.AttachmentExtractionDelayed,
100
+ },
101
+ [extraction_1.EventType.ContinueExtractingAttachments]: {
102
+ resumable: true,
103
+ done: extraction_1.ExtractorEventType.AttachmentExtractionDone,
104
+ error: extraction_1.ExtractorEventType.AttachmentExtractionError,
105
+ progress: extraction_1.ExtractorEventType.AttachmentExtractionProgress,
106
+ delayed: extraction_1.ExtractorEventType.AttachmentExtractionDelayed,
107
+ },
108
+ // Extractor attachments state deletion (non-resumable)
109
+ [extraction_1.EventType.StartDeletingExtractorAttachmentsState]: {
110
+ resumable: false,
111
+ done: extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionDone,
112
+ error: extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionError,
113
+ },
114
+ // Data loading (resumable)
115
+ [extraction_1.EventType.StartLoadingData]: {
116
+ resumable: true,
117
+ done: loading_1.LoaderEventType.DataLoadingDone,
118
+ error: loading_1.LoaderEventType.DataLoadingError,
119
+ progress: loading_1.LoaderEventType.DataLoadingProgress,
120
+ delayed: loading_1.LoaderEventType.DataLoadingDelayed,
121
+ },
122
+ [extraction_1.EventType.ContinueLoadingData]: {
123
+ resumable: true,
124
+ done: loading_1.LoaderEventType.DataLoadingDone,
125
+ error: loading_1.LoaderEventType.DataLoadingError,
126
+ progress: loading_1.LoaderEventType.DataLoadingProgress,
127
+ delayed: loading_1.LoaderEventType.DataLoadingDelayed,
128
+ },
129
+ // Attachment loading (resumable)
130
+ [extraction_1.EventType.StartLoadingAttachments]: {
131
+ resumable: true,
132
+ done: loading_1.LoaderEventType.AttachmentLoadingDone,
133
+ error: loading_1.LoaderEventType.AttachmentLoadingError,
134
+ progress: loading_1.LoaderEventType.AttachmentLoadingProgress,
135
+ delayed: loading_1.LoaderEventType.AttachmentLoadingDelayed,
136
+ },
137
+ [extraction_1.EventType.ContinueLoadingAttachments]: {
138
+ resumable: true,
139
+ done: loading_1.LoaderEventType.AttachmentLoadingDone,
140
+ error: loading_1.LoaderEventType.AttachmentLoadingError,
141
+ progress: loading_1.LoaderEventType.AttachmentLoadingProgress,
142
+ delayed: loading_1.LoaderEventType.AttachmentLoadingDelayed,
143
+ },
144
+ // Loader state deletion (non-resumable)
145
+ [extraction_1.EventType.StartDeletingLoaderState]: {
146
+ resumable: false,
147
+ done: loading_1.LoaderEventType.LoaderStateDeletionDone,
148
+ error: loading_1.LoaderEventType.LoaderStateDeletionError,
149
+ },
150
+ // Loader attachment state deletion (non-resumable)
151
+ [extraction_1.EventType.StartDeletingLoaderAttachmentState]: {
152
+ resumable: false,
153
+ done: loading_1.LoaderEventType.LoaderAttachmentStateDeletionDone,
154
+ error: loading_1.LoaderEventType.LoaderAttachmentStateDeletionError,
155
+ },
156
+ };
7
157
  /**
8
158
  * Gets the event type for the timeout error.
9
159
  * @param {EventType} eventType - The event type to get the timeout error event type for
@@ -69,7 +219,7 @@ function getTimeoutErrorEventType(eventType) {
69
219
  console.error('Event type not recognized in getTimeoutErrorEventType function: ' +
70
220
  eventType);
71
221
  return {
72
- eventType: loading_1.LoaderEventType.UnknownEventType,
222
+ eventType: constants_1.UNKNOWN_EVENT_TYPE,
73
223
  };
74
224
  }
75
225
  }
@@ -100,7 +250,7 @@ function getNoScriptEventType(eventType) {
100
250
  console.error('Event type not recognized in getNoScriptEventType function: ' +
101
251
  eventType);
102
252
  return {
103
- eventType: loading_1.LoaderEventType.UnknownEventType,
253
+ eventType: constants_1.UNKNOWN_EVENT_TYPE,
104
254
  };
105
255
  }
106
256
  }