@devrev/ts-adaas 1.12.3-beta.1 → 1.12.3-beta.2

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 (85) hide show
  1. package/dist/common/constants.js +11 -11
  2. package/dist/common/control-protocol.d.ts.map +1 -1
  3. package/dist/common/control-protocol.js +1 -5
  4. package/dist/common/helpers.d.ts.map +1 -1
  5. package/dist/common/helpers.js +7 -25
  6. package/dist/deprecated/adapter/index.d.ts.map +1 -1
  7. package/dist/deprecated/adapter/index.js +0 -2
  8. package/dist/logger/logger.context.d.ts +6 -0
  9. package/dist/logger/logger.context.d.ts.map +1 -0
  10. package/dist/logger/logger.context.js +31 -0
  11. package/dist/logger/logger.d.ts +16 -1
  12. package/dist/logger/logger.d.ts.map +1 -1
  13. package/dist/logger/logger.interfaces.d.ts +4 -3
  14. package/dist/logger/logger.interfaces.d.ts.map +1 -1
  15. package/dist/logger/logger.js +33 -6
  16. package/dist/logger/logger.test.js +71 -10
  17. package/dist/logger/logger.worker-fixture.d.ts +2 -0
  18. package/dist/logger/logger.worker-fixture.d.ts.map +1 -0
  19. package/dist/logger/logger.worker-fixture.js +10 -0
  20. package/dist/state/state.js +2 -2
  21. package/dist/state/state.test.js +3 -3
  22. package/dist/tests/backwards-compatibility/backwards-compatibility.test.js +17 -2
  23. package/dist/tests/timeout-handling/timeout-1.js +2 -2
  24. package/dist/tests/timeout-handling/timeout-1.test.js +1 -1
  25. package/dist/tests/timeout-handling/timeout-2.js +3 -3
  26. package/dist/tests/timeout-handling/timeout-2.test.js +1 -1
  27. package/dist/tests/timeout-handling/timeout-3a.js +2 -2
  28. package/dist/tests/timeout-handling/timeout-3a.test.js +1 -1
  29. package/dist/tests/timeout-handling/timeout-3b.js +2 -2
  30. package/dist/tests/timeout-handling/timeout-3b.test.js +1 -1
  31. package/dist/types/extraction.d.ts +2 -99
  32. package/dist/types/extraction.d.ts.map +1 -1
  33. package/dist/types/extraction.js +2 -102
  34. package/dist/types/loading.d.ts +1 -21
  35. package/dist/types/loading.d.ts.map +1 -1
  36. package/dist/types/loading.js +0 -23
  37. package/dist/types/workers.d.ts +14 -5
  38. package/dist/types/workers.d.ts.map +1 -1
  39. package/dist/workers/default-workers/attachments-deletion.d.ts +2 -0
  40. package/dist/workers/default-workers/attachments-deletion.d.ts.map +1 -0
  41. package/dist/workers/default-workers/attachments-deletion.js +13 -0
  42. package/dist/workers/default-workers/attachments-extraction.d.ts +2 -0
  43. package/dist/workers/default-workers/attachments-extraction.d.ts.map +1 -0
  44. package/dist/workers/default-workers/attachments-extraction.js +95 -0
  45. package/dist/workers/default-workers/data-deletion.d.ts +2 -0
  46. package/dist/workers/default-workers/data-deletion.d.ts.map +1 -0
  47. package/dist/workers/default-workers/data-deletion.js +15 -0
  48. package/dist/workers/default-workers/data-extraction.d.ts +2 -0
  49. package/dist/workers/default-workers/data-extraction.d.ts.map +1 -0
  50. package/dist/workers/default-workers/data-extraction.js +100 -0
  51. package/dist/workers/default-workers/delete-loader-attachment-state.d.ts +2 -0
  52. package/dist/workers/default-workers/delete-loader-attachment-state.d.ts.map +1 -0
  53. package/dist/workers/default-workers/delete-loader-attachment-state.js +15 -0
  54. package/dist/workers/default-workers/delete-loader-state.d.ts +2 -0
  55. package/dist/workers/default-workers/delete-loader-state.d.ts.map +1 -0
  56. package/dist/workers/default-workers/delete-loader-state.js +15 -0
  57. package/dist/workers/default-workers/external-sync-units-extraction.d.ts +2 -0
  58. package/dist/workers/default-workers/external-sync-units-extraction.d.ts.map +1 -0
  59. package/dist/workers/default-workers/external-sync-units-extraction.js +27 -0
  60. package/dist/workers/default-workers/load-attachments.d.ts +2 -0
  61. package/dist/workers/default-workers/load-attachments.d.ts.map +1 -0
  62. package/dist/workers/default-workers/load-attachments.js +19 -0
  63. package/dist/workers/default-workers/load-data.d.ts +2 -0
  64. package/dist/workers/default-workers/load-data.d.ts.map +1 -0
  65. package/dist/workers/default-workers/load-data.js +18 -0
  66. package/dist/workers/default-workers/metadata-extraction.d.ts +2 -0
  67. package/dist/workers/default-workers/metadata-extraction.d.ts.map +1 -0
  68. package/dist/workers/default-workers/metadata-extraction.js +26 -0
  69. package/dist/workers/dummy-extractor/data-normalization.d.ts +5 -0
  70. package/dist/workers/dummy-extractor/data-normalization.d.ts.map +1 -0
  71. package/dist/workers/dummy-extractor/data-normalization.js +41 -0
  72. package/dist/workers/dummy-extractor/external_domain_metadata.json +58 -0
  73. package/dist/workers/process-task.d.ts.map +1 -1
  74. package/dist/workers/process-task.js +37 -35
  75. package/dist/workers/spawn.d.ts +3 -3
  76. package/dist/workers/spawn.d.ts.map +1 -1
  77. package/dist/workers/spawn.js +47 -65
  78. package/dist/workers/worker-adapter.d.ts.map +1 -1
  79. package/dist/workers/worker-adapter.js +496 -475
  80. package/dist/workers/worker-adapter.test.js +7 -0
  81. package/dist/workers/worker.js +4 -1
  82. package/package.json +1 -1
  83. package/dist/common/event-type-translation.d.ts +0 -24
  84. package/dist/common/event-type-translation.d.ts.map +0 -1
  85. package/dist/common/event-type-translation.js +0 -117
@@ -8,58 +8,57 @@ exports.spawn = spawn;
8
8
  const yargs_1 = __importDefault(require("yargs"));
9
9
  const helpers_1 = require("yargs/helpers");
10
10
  const control_protocol_1 = require("../common/control-protocol");
11
- const event_type_translation_1 = require("../common/event-type-translation");
12
11
  const helpers_2 = require("../common/helpers");
13
12
  const logger_1 = require("../logger/logger");
14
13
  const extraction_1 = require("../types/extraction");
15
14
  const workers_1 = require("../types/workers");
16
15
  const constants_1 = require("../common/constants");
17
16
  const create_worker_1 = require("./create-worker");
18
- const path_1 = __importDefault(require("path"));
19
- function getWorkerPath({ event, connectorWorkerPath, callerDir }) {
17
+ function getWorkerPath({ event, connectorWorkerPath, }) {
20
18
  if (connectorWorkerPath)
21
19
  return connectorWorkerPath;
22
20
  let path = null;
23
21
  switch (event.payload.event_type) {
24
- case extraction_1.EventType.StartExtractingExternalSyncUnits:
25
- path = '/workers/external-sync-units-extraction';
22
+ // Extraction
23
+ case extraction_1.EventType.ExtractionExternalSyncUnitsStart:
24
+ path = __dirname + '/default-workers/external-sync-units-extraction';
26
25
  break;
27
- case extraction_1.EventType.StartExtractingMetadata:
28
- path = '/workers/metadata-extraction';
26
+ case extraction_1.EventType.ExtractionMetadataStart:
27
+ path = __dirname + '/default-workers/metadata-extraction';
29
28
  break;
30
- case extraction_1.EventType.StartExtractingData:
31
- case extraction_1.EventType.ContinueExtractingData:
32
- path = '/workers/data-extraction';
29
+ case extraction_1.EventType.ExtractionDataStart:
30
+ case extraction_1.EventType.ExtractionDataContinue:
31
+ path = __dirname + '/default-workers/data-extraction';
33
32
  break;
34
- case extraction_1.EventType.StartExtractingAttachments:
35
- case extraction_1.EventType.ContinueExtractingAttachments:
36
- path = '/workers/attachments-extraction';
33
+ case extraction_1.EventType.ExtractionAttachmentsStart:
34
+ case extraction_1.EventType.ExtractionAttachmentsContinue:
35
+ path = __dirname + '/default-workers/attachments-extraction';
37
36
  break;
37
+ case extraction_1.EventType.ExtractionDataDelete:
38
+ path = __dirname + '/default-workers/data-deletion';
39
+ break;
40
+ case extraction_1.EventType.ExtractionAttachmentsDelete:
41
+ path = __dirname + '/default-workers/attachments-deletion';
42
+ break;
43
+ // Loading
44
+ case extraction_1.EventType.StartLoadingData:
45
+ case extraction_1.EventType.ContinueLoadingData:
46
+ path = __dirname + '/default-workers/load-data';
47
+ break;
48
+ case extraction_1.EventType.StartLoadingAttachments:
49
+ case extraction_1.EventType.ContinueLoadingAttachments:
50
+ path = __dirname + '/default-workers/load-attachments';
51
+ break;
52
+ case extraction_1.EventType.StartDeletingLoaderState:
53
+ path = __dirname + '/default-workers/delete-loader-state';
54
+ break;
55
+ case extraction_1.EventType.StartDeletingLoaderAttachmentState:
56
+ path = __dirname + '/default-workers/delete-loader-attachment-state';
57
+ break;
58
+ default:
59
+ path = null;
38
60
  }
39
- return path ? callerDir + path : null;
40
- }
41
- /**
42
- * Gets the directory of the file that called into the SDK (the snap-in's file)
43
- * by inspecting the call stack and finding the first file outside the SDK.
44
- */
45
- function getCallerDirectory() {
46
- const originalPrepareStackTrace = Error.prepareStackTrace;
47
- Error.prepareStackTrace = (_, stack) => stack;
48
- const err = new Error();
49
- Error.captureStackTrace(err);
50
- const stack = err.stack;
51
- Error.prepareStackTrace = originalPrepareStackTrace;
52
- // Iterate through the stack to find the first file that's not part of the SDK
53
- for (const callSite of stack) {
54
- const filename = callSite.getFileName();
55
- if (filename &&
56
- !filename.includes('@devrev/ts-adaas') &&
57
- !filename.includes('adaas-sdk')) {
58
- return path_1.default.dirname(filename);
59
- }
60
- }
61
- // Fallback to __dirname if we can't determine the caller
62
- return __dirname;
61
+ return path;
63
62
  }
64
63
  /**
65
64
  * Creates a new instance of Spawn class.
@@ -67,23 +66,12 @@ function getCallerDirectory() {
67
66
  * The class provides utilities to emit control events to the platform and exit the worker gracefully.
68
67
  * In case of lambda timeout, the class emits a lambda timeout event to the platform.
69
68
  * @param {SpawnFactoryInterface} options - The options to create a new instance of Spawn class
70
- * @param {AirdropEvent} options.event - The event object received from the platform
71
- * @param {object} options.initialState - The initial state of the adapter
72
- * @param {string} options.workerPath - The path to the worker file
69
+ * @param {AirdropEvent} event - The event object received from the platform
70
+ * @param {object} initialState - The initial state of the adapter
71
+ * @param {string} workerPath - The path to the worker file
73
72
  * @returns {Promise<Spawn>} - A new instance of Spawn class
74
73
  */
75
74
  async function spawn({ event, initialState, workerPath, initialDomainMapping, options, }) {
76
- // Get the directory of the snap-in file that called spawn
77
- const callerDir = getCallerDirectory();
78
- // Normalize incoming event type for backwards compatibility
79
- // This allows the SDK to accept both old and new event type formats
80
- const originalEventType = event.payload.event_type;
81
- const translatedEventType = (0, event_type_translation_1.translateIncomingEventType)(event.payload.event_type);
82
- // Update the event with the normalized event type
83
- event.payload.event_type = translatedEventType;
84
- if (translatedEventType !== originalEventType) {
85
- console.log(`Event type translated from ${originalEventType} to ${translatedEventType}.`);
86
- }
87
75
  if (options === null || options === void 0 ? void 0 : options.isLocalDevelopment) {
88
76
  console.log('Snap-in is running in local development mode.');
89
77
  }
@@ -95,18 +83,10 @@ async function spawn({ event, initialState, workerPath, initialDomainMapping, op
95
83
  const originalConsole = console;
96
84
  // eslint-disable-next-line no-global-assign
97
85
  console = new logger_1.Logger({ event, options });
98
- let script = null;
99
- if ((options === null || options === void 0 ? void 0 : options.workerPathOverrides) != null &&
100
- options.workerPathOverrides[translatedEventType] != null) {
101
- script = callerDir + options.workerPathOverrides[translatedEventType];
102
- }
103
- else {
104
- script = getWorkerPath({
105
- event,
106
- connectorWorkerPath: workerPath,
107
- callerDir: callerDir
108
- });
109
- }
86
+ const script = getWorkerPath({
87
+ event,
88
+ connectorWorkerPath: workerPath,
89
+ });
110
90
  if (script) {
111
91
  try {
112
92
  const worker = await (0, create_worker_1.createWorker)({
@@ -201,14 +181,16 @@ class Spawn {
201
181
  await this.exitFromMainThread();
202
182
  })());
203
183
  worker.on(workers_1.WorkerEvent.WorkerMessage, (message) => {
204
- var _a, _b;
184
+ var _a, _b, _c, _d;
205
185
  // Since logs from the worker thread are handled differently in snap-in
206
186
  // platform, we need to catch the log messages from worker thread and log
207
187
  // them in main thread.
208
188
  if ((message === null || message === void 0 ? void 0 : message.subject) === workers_1.WorkerMessageSubject.WorkerMessageLog) {
209
189
  const stringifiedArgs = (_a = message.payload) === null || _a === void 0 ? void 0 : _a.stringifiedArgs;
210
190
  const level = (_b = message.payload) === null || _b === void 0 ? void 0 : _b.level;
211
- this.logger.logFn(stringifiedArgs, level);
191
+ const sdkLog = (_d = (_c = message.payload) === null || _c === void 0 ? void 0 : _c.sdk_log) !== null && _d !== void 0 ? _d : false;
192
+ // Args are already sanitized in the worker thread, skip double sanitization
193
+ this.logger.logFn(stringifiedArgs, level, sdkLog);
212
194
  }
213
195
  // If worker sends a message that it has emitted an event, then set alreadyEmitted to true.
214
196
  if ((message === null || message === void 0 ? void 0 : message.subject) === workers_1.WorkerMessageSubject.WorkerMessageEmitted) {
@@ -1 +1 @@
1
- {"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../src/workers/worker-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../src/workers/worker-adapter.ts"],"names":[],"mappings":"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"}