@devrev/ts-adaas 1.12.3-beta.0 → 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 -66
  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,59 +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('node_modules') &&
57
- !filename.includes('@devrev/ts-adaas') &&
58
- !filename.includes('adaas-sdk')) {
59
- return path_1.default.dirname(filename);
60
- }
61
- }
62
- // Fallback to __dirname if we can't determine the caller
63
- return __dirname;
61
+ return path;
64
62
  }
65
63
  /**
66
64
  * Creates a new instance of Spawn class.
@@ -68,23 +66,12 @@ function getCallerDirectory() {
68
66
  * The class provides utilities to emit control events to the platform and exit the worker gracefully.
69
67
  * In case of lambda timeout, the class emits a lambda timeout event to the platform.
70
68
  * @param {SpawnFactoryInterface} options - The options to create a new instance of Spawn class
71
- * @param {AirdropEvent} options.event - The event object received from the platform
72
- * @param {object} options.initialState - The initial state of the adapter
73
- * @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
74
72
  * @returns {Promise<Spawn>} - A new instance of Spawn class
75
73
  */
76
74
  async function spawn({ event, initialState, workerPath, initialDomainMapping, options, }) {
77
- // Get the directory of the snap-in file that called spawn
78
- const callerDir = getCallerDirectory();
79
- // Normalize incoming event type for backwards compatibility
80
- // This allows the SDK to accept both old and new event type formats
81
- const originalEventType = event.payload.event_type;
82
- const translatedEventType = (0, event_type_translation_1.translateIncomingEventType)(event.payload.event_type);
83
- // Update the event with the normalized event type
84
- event.payload.event_type = translatedEventType;
85
- if (translatedEventType !== originalEventType) {
86
- console.log(`Event type translated from ${originalEventType} to ${translatedEventType}.`);
87
- }
88
75
  if (options === null || options === void 0 ? void 0 : options.isLocalDevelopment) {
89
76
  console.log('Snap-in is running in local development mode.');
90
77
  }
@@ -96,18 +83,10 @@ async function spawn({ event, initialState, workerPath, initialDomainMapping, op
96
83
  const originalConsole = console;
97
84
  // eslint-disable-next-line no-global-assign
98
85
  console = new logger_1.Logger({ event, options });
99
- let script = null;
100
- if ((options === null || options === void 0 ? void 0 : options.workerPathOverrides) != null &&
101
- options.workerPathOverrides[translatedEventType] != null) {
102
- script = callerDir + options.workerPathOverrides[translatedEventType];
103
- }
104
- else {
105
- script = getWorkerPath({
106
- event,
107
- connectorWorkerPath: workerPath,
108
- callerDir: callerDir
109
- });
110
- }
86
+ const script = getWorkerPath({
87
+ event,
88
+ connectorWorkerPath: workerPath,
89
+ });
111
90
  if (script) {
112
91
  try {
113
92
  const worker = await (0, create_worker_1.createWorker)({
@@ -202,14 +181,16 @@ class Spawn {
202
181
  await this.exitFromMainThread();
203
182
  })());
204
183
  worker.on(workers_1.WorkerEvent.WorkerMessage, (message) => {
205
- var _a, _b;
184
+ var _a, _b, _c, _d;
206
185
  // Since logs from the worker thread are handled differently in snap-in
207
186
  // platform, we need to catch the log messages from worker thread and log
208
187
  // them in main thread.
209
188
  if ((message === null || message === void 0 ? void 0 : message.subject) === workers_1.WorkerMessageSubject.WorkerMessageLog) {
210
189
  const stringifiedArgs = (_a = message.payload) === null || _a === void 0 ? void 0 : _a.stringifiedArgs;
211
190
  const level = (_b = message.payload) === null || _b === void 0 ? void 0 : _b.level;
212
- 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);
213
194
  }
214
195
  // If worker sends a message that it has emitted an event, then set alreadyEmitted to true.
215
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":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,SAAS,EAET,kCAAkC,EAClC,yCAAyC,EACzC,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,wBAAwB,EACxB,kBAAkB,EAClB,6BAA6B,EAC7B,UAAU,EACV,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EAEtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EAGrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAkB,MAAM,iCAAiC,CAAC;AAE3E,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAClD,KAAK,EACL,YAAY,EACZ,OAAO,GACR,EAAE,sBAAsB,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAMxE;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa,CAAC,cAAc;IACvC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IAEnB,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,KAAK,CAAc;IAG3B,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,QAAQ,CAAW;gBAEf,EACV,KAAK,EACL,YAAY,EACZ,OAAO,GACR,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAqBzC,IAAI,KAAK,IAAI,YAAY,CAAC,cAAc,CAAC,CAExC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,EAI5C;IAED,IAAI,OAAO,IAAI,YAAY,EAAE,CAE5B;IAED,IAAI,cAAc,IAAI,MAAM,EAAE,CAE7B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE;IAuBtC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAarC,SAAS;IAMf,IAAI,SAAS,IAAI,QAAQ,EAAE,CAE1B;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,EAIlC;IAED;;;;;OAKG;IACG,IAAI,CACR,YAAY,EAAE,kBAAkB,GAAG,eAAe,EAClD,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC;IAmFV,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC,aAAa;IAIP,aAAa,CAAC,EAClB,eAAe,GAChB,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkHnD,gBAAgB,CAAC,EACrB,kBAAkB,GACnB,EAAE;QACD,kBAAkB,EAAE,MAAM,EAAE,CAAC;KAC9B;IAyBK,eAAe,CAAC,EACpB,MAAM,GACP,EAAE;QACD,MAAM,EAAE,6BAA6B,CAAC,wBAAwB,CAAC,CAAC;KACjE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA2E5B,QAAQ,CAAC,EACb,IAAI,EACJ,cAAc,GACf,EAAE;QACD,IAAI,EAAE,kBAAkB,CAAC;QACzB,cAAc,EAAE,cAAc,CAAC;KAChC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+LvB,iBAAiB,CACrB,UAAU,EAAE,oBAAoB,EAChC,MAAM,EAAE,yCAAyC,GAChD,OAAO,CAAC,2BAA2B,CAAC;IA4FvC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAcnB,cAAc,CAAC,EACnB,IAAI,EACJ,MAAM,GACP,EAAE;QACD,IAAI,EAAE,wBAAwB,CAAC;QAC/B,MAAM,EAAE,6BAA6B,CAAC,wBAAwB,CAAC,CAAC;KACjE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqD7B;;;;;;OAMG;IACG,iBAAiB,CAAC,QAAQ,EAAE,EAChC,MAAM,EACN,UAAU,EACV,SAAa,GACd,EAAE;QACD,MAAM,EAAE,yCAAyC,CAAC;QAClD,UAAU,CAAC,EAAE,kCAAkC,CAC7C,cAAc,EACd,oBAAoB,EAAE,EACtB,QAAQ,CACT,CAAC;QACF,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAyHzC"}