@devrev/airsync-sdk 2.0.0-beta.2 → 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 (89) hide show
  1. package/dist/airsync-sdk.d.ts +414 -157
  2. package/dist/attachments-streaming/attachments-streaming-pool.d.ts +2 -1
  3. package/dist/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
  4. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts +8 -2
  5. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts.map +1 -1
  6. package/dist/attachments-streaming/attachments-streaming-pool.js +14 -14
  7. package/dist/attachments-streaming/attachments-streaming-pool.test.js +47 -23
  8. package/dist/common/time-value-resolver.d.ts +2 -2
  9. package/dist/common/time-value-resolver.d.ts.map +1 -1
  10. package/dist/index.d.ts +3 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +7 -4
  13. package/dist/multithreading/adapters/base-adapter.d.ts +56 -0
  14. package/dist/multithreading/adapters/base-adapter.d.ts.map +1 -0
  15. package/dist/multithreading/adapters/base-adapter.emit.test.d.ts +2 -0
  16. package/dist/multithreading/adapters/base-adapter.emit.test.d.ts.map +1 -0
  17. package/dist/multithreading/{worker-adapter/worker-adapter.emit.test.js → adapters/base-adapter.emit.test.js} +66 -53
  18. package/dist/multithreading/adapters/base-adapter.js +105 -0
  19. package/dist/multithreading/adapters/extraction-adapter.artifacts.test.d.ts +2 -0
  20. package/dist/multithreading/adapters/extraction-adapter.artifacts.test.d.ts.map +1 -0
  21. package/dist/multithreading/{worker-adapter/worker-adapter.artifacts.test.js → adapters/extraction-adapter.artifacts.test.js} +6 -6
  22. package/dist/multithreading/adapters/extraction-adapter.d.ts +58 -0
  23. package/dist/multithreading/adapters/extraction-adapter.d.ts.map +1 -0
  24. package/dist/multithreading/adapters/extraction-adapter.js +325 -0
  25. package/dist/multithreading/adapters/extraction-adapter.test.d.ts +2 -0
  26. package/dist/multithreading/adapters/extraction-adapter.test.d.ts.map +1 -0
  27. package/dist/multithreading/{worker-adapter/worker-adapter.extraction.test.js → adapters/extraction-adapter.test.js} +41 -51
  28. package/dist/multithreading/adapters/loading-adapter.d.ts +44 -0
  29. package/dist/multithreading/adapters/loading-adapter.d.ts.map +1 -0
  30. package/dist/multithreading/{worker-adapter/worker-adapter.helpers.d.ts → adapters/loading-adapter.helpers.d.ts} +1 -1
  31. package/dist/multithreading/adapters/loading-adapter.helpers.d.ts.map +1 -0
  32. package/dist/multithreading/adapters/loading-adapter.helpers.test.d.ts +2 -0
  33. package/dist/multithreading/adapters/loading-adapter.helpers.test.d.ts.map +1 -0
  34. package/dist/multithreading/{worker-adapter/worker-adapter.helpers.test.js → adapters/loading-adapter.helpers.test.js} +26 -26
  35. package/dist/multithreading/adapters/loading-adapter.js +461 -0
  36. package/dist/multithreading/adapters/loading-adapter.test.d.ts +2 -0
  37. package/dist/multithreading/adapters/loading-adapter.test.d.ts.map +1 -0
  38. package/dist/multithreading/{worker-adapter/worker-adapter.loading.test.js → adapters/loading-adapter.test.js} +19 -26
  39. package/dist/multithreading/adapters/serialization.test.d.ts +2 -0
  40. package/dist/multithreading/adapters/serialization.test.d.ts.map +1 -0
  41. package/dist/multithreading/process-task.d.ts +16 -1
  42. package/dist/multithreading/process-task.d.ts.map +1 -1
  43. package/dist/multithreading/process-task.js +97 -49
  44. package/dist/multithreading/process-task.test.js +15 -15
  45. package/dist/state/base-state.d.ts +75 -0
  46. package/dist/state/base-state.d.ts.map +1 -0
  47. package/dist/state/base-state.js +261 -0
  48. package/dist/state/extraction-state.d.ts +29 -0
  49. package/dist/state/extraction-state.d.ts.map +1 -0
  50. package/dist/state/extraction-state.js +122 -0
  51. package/dist/state/loading-state.d.ts +19 -0
  52. package/dist/state/loading-state.d.ts.map +1 -0
  53. package/dist/state/loading-state.js +40 -0
  54. package/dist/state/state.extract-window.test.js +7 -7
  55. package/dist/state/state.interfaces.d.ts +32 -25
  56. package/dist/state/state.interfaces.d.ts.map +1 -1
  57. package/dist/state/state.interfaces.js +15 -4
  58. package/dist/state/state.pending-boundaries.test.js +15 -15
  59. package/dist/state/state.post-state.test.js +9 -8
  60. package/dist/state/state.test.js +22 -19
  61. package/dist/state/state.time-value-resolution.test.js +8 -8
  62. package/dist/types/extraction.d.ts +3 -3
  63. package/dist/types/extraction.d.ts.map +1 -1
  64. package/dist/types/index.d.ts +0 -1
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/dist/types/workers.d.ts +16 -15
  67. package/dist/types/workers.d.ts.map +1 -1
  68. package/package.json +1 -1
  69. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts +0 -2
  70. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts.map +0 -1
  71. package/dist/multithreading/worker-adapter/worker-adapter.d.ts +0 -97
  72. package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +0 -1
  73. package/dist/multithreading/worker-adapter/worker-adapter.emit.test.d.ts +0 -2
  74. package/dist/multithreading/worker-adapter/worker-adapter.emit.test.d.ts.map +0 -1
  75. package/dist/multithreading/worker-adapter/worker-adapter.extraction.test.d.ts +0 -2
  76. package/dist/multithreading/worker-adapter/worker-adapter.extraction.test.d.ts.map +0 -1
  77. package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +0 -1
  78. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts +0 -2
  79. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts.map +0 -1
  80. package/dist/multithreading/worker-adapter/worker-adapter.js +0 -846
  81. package/dist/multithreading/worker-adapter/worker-adapter.loading.test.d.ts +0 -2
  82. package/dist/multithreading/worker-adapter/worker-adapter.loading.test.d.ts.map +0 -1
  83. package/dist/multithreading/worker-adapter/worker-adapter.serialization.test.d.ts +0 -2
  84. package/dist/multithreading/worker-adapter/worker-adapter.serialization.test.d.ts.map +0 -1
  85. package/dist/state/state.d.ts +0 -36
  86. package/dist/state/state.d.ts.map +0 -1
  87. package/dist/state/state.js +0 -265
  88. /package/dist/multithreading/{worker-adapter/worker-adapter.helpers.js → adapters/loading-adapter.helpers.js} +0 -0
  89. /package/dist/multithreading/{worker-adapter/worker-adapter.serialization.test.js → adapters/serialization.test.js} +0 -0
@@ -3,12 +3,13 @@ import { AttachmentsStreamingPoolParams } from './attachments-streaming-pool.int
3
3
  export declare class AttachmentsStreamingPool<ConnectorState> {
4
4
  private adapter;
5
5
  private attachments;
6
+ private attachmentsMetadata;
6
7
  private batchSize;
7
8
  private delay;
8
9
  private stream;
9
10
  private totalProcessedCount;
10
11
  private readonly PROGRESS_REPORT_INTERVAL;
11
- constructor({ adapter, attachments, batchSize, stream, }: AttachmentsStreamingPoolParams<ConnectorState>);
12
+ constructor({ adapter, attachments, attachmentsMetadata, batchSize, stream, }: AttachmentsStreamingPoolParams<ConnectorState>);
12
13
  private updateProgress;
13
14
  /**
14
15
  * Migrates processed attachments from the legacy string[] format to the new ProcessedAttachment[] format.
@@ -1 +1 @@
1
- {"version":3,"file":"attachments-streaming-pool.d.ts","sourceRoot":"","sources":["../../src/attachments-streaming/attachments-streaming-pool.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,qBAAa,wBAAwB,CAAC,cAAc;IAClD,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAA4C;IAE1D,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAM;gBAEnC,EACV,OAAO,EACP,WAAW,EACX,SAAc,EACd,MAAM,GACP,EAAE,8BAA8B,CAAC,cAAc,CAAC;YAQnC,cAAc;IAS5B;;;;;OAKG;IAEH,OAAO,CAAC,2BAA2B;IAsB7B,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC;IA8CjD,kBAAkB;CA0FzB"}
1
+ {"version":3,"file":"attachments-streaming-pool.d.ts","sourceRoot":"","sources":["../../src/attachments-streaming/attachments-streaming-pool.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,qBAAa,wBAAwB,CAAC,cAAc;IAClD,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,mBAAmB,CAA8C;IACzE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAA4C;IAE1D,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAM;gBAEnC,EACV,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,SAAc,EACd,MAAM,GACP,EAAE,8BAA8B,CAAC,cAAc,CAAC;YASnC,cAAc;IAS5B;;;;;OAKG;IAEH,OAAO,CAAC,2BAA2B;IAsB7B,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAyCjD,kBAAkB;CAuFzB"}
@@ -1,8 +1,14 @@
1
1
  import { ExternalSystemAttachmentStreamingFunction, NormalizedAttachment } from '../types';
2
- import { WorkerAdapter } from '../multithreading/worker-adapter/worker-adapter';
2
+ import { ExtractionAdapter } from '../multithreading/adapters/extraction-adapter';
3
+ import { ToDevRev } from '../state/state.interfaces';
3
4
  export interface AttachmentsStreamingPoolParams<ConnectorState> {
4
- adapter: WorkerAdapter<ConnectorState>;
5
+ adapter: ExtractionAdapter<ConnectorState>;
5
6
  attachments: NormalizedAttachment[];
7
+ /**
8
+ * SDK-owned attachments bookkeeping. Passed in directly so the pool does not
9
+ * reach into the (now-encapsulated) adapter state.
10
+ */
11
+ attachmentsMetadata: ToDevRev['attachmentsMetadata'] | undefined;
6
12
  batchSize?: number;
7
13
  stream: ExternalSystemAttachmentStreamingFunction;
8
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attachments-streaming-pool.interfaces.d.ts","sourceRoot":"","sources":["../../src/attachments-streaming/attachments-streaming-pool.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yCAAyC,EACzC,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF,MAAM,WAAW,8BAA8B,CAAC,cAAc;IAC5D,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,yCAAyC,CAAC;CACnD"}
1
+ {"version":3,"file":"attachments-streaming-pool.interfaces.d.ts","sourceRoot":"","sources":["../../src/attachments-streaming/attachments-streaming-pool.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yCAAyC,EACzC,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,WAAW,8BAA8B,CAAC,cAAc;IAC5D,OAAO,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC3C,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC;;;OAGG;IACH,mBAAmB,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,yCAAyC,CAAC;CACnD"}
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AttachmentsStreamingPool = void 0;
4
4
  const helpers_1 = require("../common/helpers");
5
5
  class AttachmentsStreamingPool {
6
- constructor({ adapter, attachments, batchSize = 10, stream, }) {
6
+ constructor({ adapter, attachments, attachmentsMetadata, batchSize = 10, stream, }) {
7
7
  this.totalProcessedCount = 0;
8
8
  this.PROGRESS_REPORT_INTERVAL = 50;
9
9
  this.adapter = adapter;
10
10
  this.attachments = [...attachments]; // Create a copy we can mutate
11
+ this.attachmentsMetadata = attachmentsMetadata;
11
12
  this.batchSize = batchSize;
12
13
  this.delay = undefined;
13
14
  this.stream = stream;
@@ -47,22 +48,19 @@ class AttachmentsStreamingPool {
47
48
  }
48
49
  async streamAll() {
49
50
  console.log(`Starting download of ${this.attachments.length} attachments, streaming ${this.batchSize} at once.`);
50
- if (!this.adapter.state.toDevRev) {
51
+ if (!this.attachmentsMetadata) {
51
52
  const error = new Error('toDevRev state is not initialized');
52
53
  console.error(error);
53
54
  return { error };
54
55
  }
55
56
  // Get the list of successfully processed attachments in previous (possibly incomplete) batch extraction.
56
57
  // If no such list exists, create an empty one.
57
- if (!this.adapter.state.toDevRev.attachmentsMetadata
58
- .lastProcessedAttachmentsIdsList) {
59
- this.adapter.state.toDevRev.attachmentsMetadata.lastProcessedAttachmentsIdsList =
60
- [];
58
+ if (!this.attachmentsMetadata.lastProcessedAttachmentsIdsList) {
59
+ this.attachmentsMetadata.lastProcessedAttachmentsIdsList = [];
61
60
  }
62
61
  // Migrate old processed attachments to the new format.
63
- this.adapter.state.toDevRev.attachmentsMetadata.lastProcessedAttachmentsIdsList =
64
- this.migrateProcessedAttachments(this.adapter.state.toDevRev.attachmentsMetadata
65
- .lastProcessedAttachmentsIdsList);
62
+ this.attachmentsMetadata.lastProcessedAttachmentsIdsList =
63
+ this.migrateProcessedAttachments(this.attachmentsMetadata.lastProcessedAttachmentsIdsList);
66
64
  // Start initial batch of promises up to batchSize limit
67
65
  const initialBatchSize = Math.min(this.batchSize, this.attachments.length);
68
66
  const initialPromises = [];
@@ -77,7 +75,7 @@ class AttachmentsStreamingPool {
77
75
  return {};
78
76
  }
79
77
  async startPoolStreaming() {
80
- var _a, _b, _c, _d;
78
+ var _a, _b, _c;
81
79
  // Process attachments until the attachments array is empty
82
80
  while (this.attachments.length > 0) {
83
81
  // If delay is set, stop streaming
@@ -94,8 +92,7 @@ class AttachmentsStreamingPool {
94
92
  if (!attachment) {
95
93
  break; // Exit if no more attachments
96
94
  }
97
- if (this.adapter.state.toDevRev &&
98
- ((_a = this.adapter.state.toDevRev.attachmentsMetadata.lastProcessedAttachmentsIdsList) === null || _a === void 0 ? void 0 : _a.some((it) => it.id == attachment.id && it.parent_id == attachment.parent_id))) {
95
+ if ((_b = (_a = this.attachmentsMetadata) === null || _a === void 0 ? void 0 : _a.lastProcessedAttachmentsIdsList) === null || _b === void 0 ? void 0 : _b.some((it) => it.id == attachment.id && it.parent_id == attachment.parent_id)) {
99
96
  continue; // Skip if the attachment ID is already processed
100
97
  }
101
98
  try {
@@ -118,8 +115,11 @@ class AttachmentsStreamingPool {
118
115
  continue;
119
116
  }
120
117
  // No rate limiting, process normally
121
- if ((_c = (_b = this.adapter.state.toDevRev) === null || _b === void 0 ? void 0 : _b.attachmentsMetadata) === null || _c === void 0 ? void 0 : _c.lastProcessedAttachmentsIdsList) {
122
- (_d = this.adapter.state.toDevRev) === null || _d === void 0 ? void 0 : _d.attachmentsMetadata.lastProcessedAttachmentsIdsList.push({ id: attachment.id, parent_id: attachment.parent_id });
118
+ if ((_c = this.attachmentsMetadata) === null || _c === void 0 ? void 0 : _c.lastProcessedAttachmentsIdsList) {
119
+ this.attachmentsMetadata.lastProcessedAttachmentsIdsList.push({
120
+ id: attachment.id,
121
+ parent_id: attachment.parent_id,
122
+ });
123
123
  }
124
124
  await this.updateProgress();
125
125
  }
@@ -6,16 +6,18 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
6
6
  let mockAdapter;
7
7
  let mockStream;
8
8
  let mockAttachments;
9
+ let attachmentsMetadata;
9
10
  beforeEach(() => {
11
+ // SDK-owned attachments bookkeeping, passed into the pool directly.
12
+ attachmentsMetadata = {
13
+ artifactIds: [],
14
+ lastProcessed: 0,
15
+ lastProcessedAttachmentsIdsList: [],
16
+ };
10
17
  // Create mock adapter
11
18
  mockAdapter = {
12
19
  state: {
13
20
  attachments: { completed: false },
14
- toDevRev: {
15
- attachmentsMetadata: {
16
- lastProcessedAttachmentsIdsList: [],
17
- },
18
- },
19
21
  },
20
22
  processAttachment: jest
21
23
  .fn()
@@ -53,6 +55,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
53
55
  it('should initialize with default values', () => {
54
56
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
55
57
  adapter: mockAdapter,
58
+ attachmentsMetadata,
56
59
  attachments: mockAttachments,
57
60
  stream: mockStream,
58
61
  });
@@ -64,6 +67,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
64
67
  it('should initialize with custom batch size', () => {
65
68
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
66
69
  adapter: mockAdapter,
70
+ attachmentsMetadata,
67
71
  attachments: mockAttachments,
68
72
  batchSize: 5,
69
73
  stream: mockStream,
@@ -73,6 +77,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
73
77
  it('should create a copy of attachments array', () => {
74
78
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
75
79
  adapter: mockAdapter,
80
+ attachmentsMetadata,
76
81
  attachments: mockAttachments,
77
82
  stream: mockStream,
78
83
  });
@@ -82,11 +87,11 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
82
87
  });
83
88
  describe(attachments_streaming_pool_1.AttachmentsStreamingPool.prototype.streamAll.name, () => {
84
89
  it('should initialize lastProcessedAttachmentsIdsList if it does not exist', async () => {
85
- mockAdapter.state.toDevRev.attachmentsMetadata.lastProcessedAttachmentsIdsList =
86
- undefined;
90
+ attachmentsMetadata.lastProcessedAttachmentsIdsList = undefined;
87
91
  mockAdapter.processAttachment.mockResolvedValue({});
88
92
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
89
93
  adapter: mockAdapter,
94
+ attachmentsMetadata,
90
95
  attachments: mockAttachments,
91
96
  stream: mockStream,
92
97
  });
@@ -95,13 +100,13 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
95
100
  .spyOn(pool, 'startPoolStreaming')
96
101
  .mockResolvedValue(undefined);
97
102
  await pool.streamAll();
98
- expect(mockAdapter.state.toDevRev.attachmentsMetadata
99
- .lastProcessedAttachmentsIdsList).toEqual([]);
103
+ expect(attachmentsMetadata.lastProcessedAttachmentsIdsList).toEqual([]);
100
104
  });
101
105
  it('should process all attachments successfully', async () => {
102
106
  mockAdapter.processAttachment.mockResolvedValue({});
103
107
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
104
108
  adapter: mockAdapter,
109
+ attachmentsMetadata,
105
110
  attachments: mockAttachments,
106
111
  stream: mockStream,
107
112
  });
@@ -112,6 +117,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
112
117
  it('should handle empty attachments array', async () => {
113
118
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
114
119
  adapter: mockAdapter,
120
+ attachmentsMetadata,
115
121
  attachments: [],
116
122
  stream: mockStream,
117
123
  });
@@ -124,6 +130,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
124
130
  mockAdapter.processAttachment.mockResolvedValue(delayResponse);
125
131
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
126
132
  adapter: mockAdapter,
133
+ attachmentsMetadata,
127
134
  attachments: mockAttachments,
128
135
  stream: mockStream,
129
136
  });
@@ -131,18 +138,20 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
131
138
  expect(result).toEqual({ delay: 5000 });
132
139
  });
133
140
  it('should resume attachment extraction if it encounters old ids', async () => {
134
- var _a;
135
141
  // Test migration from old string[] format to new ProcessedAttachment[] format
136
142
  // Using 'as any' because we're intentionally testing legacy data format
137
- mockAdapter.state.toDevRev.attachmentsMetadata.lastProcessedAttachmentsIdsList =
138
- ['attachment-1', 'attachment-2'];
143
+ attachmentsMetadata.lastProcessedAttachmentsIdsList = [
144
+ 'attachment-1',
145
+ 'attachment-2',
146
+ ];
139
147
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
140
148
  adapter: mockAdapter,
149
+ attachmentsMetadata,
141
150
  attachments: mockAttachments,
142
151
  stream: mockStream,
143
152
  });
144
153
  const result = await pool.streamAll();
145
- expect((_a = mockAdapter.state.toDevRev) === null || _a === void 0 ? void 0 : _a.attachmentsMetadata.lastProcessedAttachmentsIdsList).toEqual([
154
+ expect(attachmentsMetadata.lastProcessedAttachmentsIdsList).toEqual([
146
155
  { id: 'attachment-1', parent_id: '' },
147
156
  { id: 'attachment-2', parent_id: '' },
148
157
  { id: 'attachment-1', parent_id: 'parent-1' },
@@ -182,6 +191,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
182
191
  const warnSpy = jest.spyOn(console, 'warn');
183
192
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
184
193
  adapter: mockAdapter,
194
+ attachmentsMetadata,
185
195
  attachments: largeAttachments,
186
196
  stream: mockStream,
187
197
  });
@@ -189,17 +199,18 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
189
199
  expect(mockAdapter.processAttachment).toHaveBeenCalledTimes(3);
190
200
  // Since there are 3 parallel workers (one per attachment), each logs its own failed attachment
191
201
  expect(warnSpy).toHaveBeenCalledTimes(3);
192
- expect(mockAdapter.state.toDevRev.attachmentsMetadata
193
- .lastProcessedAttachmentsIdsList).toEqual([]);
202
+ expect(attachmentsMetadata.lastProcessedAttachmentsIdsList).toEqual([]);
194
203
  });
195
204
  });
196
205
  describe(attachments_streaming_pool_1.AttachmentsStreamingPool.prototype.startPoolStreaming.name, () => {
197
206
  it('should skip already processed attachments', async () => {
198
- mockAdapter.state.toDevRev.attachmentsMetadata.lastProcessedAttachmentsIdsList =
199
- [{ id: 'attachment-1', parent_id: 'parent-1' }];
207
+ attachmentsMetadata.lastProcessedAttachmentsIdsList = [
208
+ { id: 'attachment-1', parent_id: 'parent-1' },
209
+ ];
200
210
  mockAdapter.processAttachment.mockResolvedValue({});
201
211
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
202
212
  adapter: mockAdapter,
213
+ attachmentsMetadata,
203
214
  attachments: mockAttachments,
204
215
  stream: mockStream,
205
216
  });
@@ -210,12 +221,12 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
210
221
  mockAdapter.processAttachment.mockResolvedValue({});
211
222
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
212
223
  adapter: mockAdapter,
224
+ attachmentsMetadata,
213
225
  attachments: mockAttachments,
214
226
  stream: mockStream,
215
227
  });
216
228
  await pool.streamAll();
217
- expect(mockAdapter.state.toDevRev.attachmentsMetadata
218
- .lastProcessedAttachmentsIdsList).toEqual([
229
+ expect(attachmentsMetadata.lastProcessedAttachmentsIdsList).toEqual([
219
230
  { id: 'attachment-1', parent_id: 'parent-1' },
220
231
  { id: 'attachment-2', parent_id: 'parent-2' },
221
232
  { id: 'attachment-3', parent_id: 'parent-3' },
@@ -230,13 +241,13 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
230
241
  .mockResolvedValueOnce({}); // Third attachment succeeds
231
242
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
232
243
  adapter: mockAdapter,
244
+ attachmentsMetadata,
233
245
  attachments: mockAttachments,
234
246
  stream: mockStream,
235
247
  });
236
248
  await pool.streamAll();
237
249
  expect(warnSpy).toHaveBeenCalledWith('Skipping attachment with ID attachment-2 with extension jpg due to error in processAttachment function', error);
238
- expect(mockAdapter.state.toDevRev.attachmentsMetadata
239
- .lastProcessedAttachmentsIdsList).toEqual([
250
+ expect(attachmentsMetadata.lastProcessedAttachmentsIdsList).toEqual([
240
251
  {
241
252
  id: 'attachment-1',
242
253
  parent_id: 'parent-1',
@@ -254,13 +265,13 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
254
265
  .mockResolvedValueOnce({}); // Third attachment succeeds
255
266
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
256
267
  adapter: mockAdapter,
268
+ attachmentsMetadata,
257
269
  attachments: mockAttachments,
258
270
  stream: mockStream,
259
271
  });
260
272
  await pool.streamAll();
261
273
  expect(mockAdapter.processAttachment).toHaveBeenCalledTimes(3);
262
- expect(mockAdapter.state.toDevRev.attachmentsMetadata
263
- .lastProcessedAttachmentsIdsList).toEqual([
274
+ expect(attachmentsMetadata.lastProcessedAttachmentsIdsList).toEqual([
264
275
  { id: 'attachment-1', parent_id: 'parent-1' },
265
276
  { id: 'attachment-3', parent_id: 'parent-3' },
266
277
  ]);
@@ -269,6 +280,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
269
280
  mockAdapter.processAttachment.mockResolvedValue({});
270
281
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
271
282
  adapter: mockAdapter,
283
+ attachmentsMetadata,
272
284
  attachments: [mockAttachments[0]],
273
285
  stream: mockStream,
274
286
  });
@@ -280,6 +292,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
280
292
  mockAdapter.processAttachment.mockResolvedValue({});
281
293
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
282
294
  adapter: mockAdapter,
295
+ attachmentsMetadata,
283
296
  attachments: [mockAttachments[0]],
284
297
  stream: mockStream,
285
298
  });
@@ -291,6 +304,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
291
304
  mockAdapter.processAttachment.mockResolvedValue({});
292
305
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
293
306
  adapter: mockAdapter,
307
+ attachmentsMetadata,
294
308
  attachments: mockAttachments,
295
309
  batchSize: 100,
296
310
  stream: mockStream,
@@ -308,6 +322,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
308
322
  });
309
323
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
310
324
  adapter: mockAdapter,
325
+ attachmentsMetadata,
311
326
  attachments: mockAttachments,
312
327
  batchSize: 1,
313
328
  stream: mockStream,
@@ -319,6 +334,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
319
334
  mockAdapter.processAttachment.mockResolvedValue({});
320
335
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
321
336
  adapter: mockAdapter,
337
+ attachmentsMetadata,
322
338
  attachments: mockAttachments,
323
339
  batchSize: 1,
324
340
  stream: mockStream,
@@ -338,6 +354,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
338
354
  };
339
355
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
340
356
  adapter: mockAdapter,
357
+ attachmentsMetadata,
341
358
  attachments: [attachmentWithContentType],
342
359
  stream: mockStream,
343
360
  });
@@ -371,6 +388,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
371
388
  ];
372
389
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
373
390
  adapter: mockAdapter,
391
+ attachmentsMetadata,
374
392
  attachments: mixedAttachments,
375
393
  batchSize: 1,
376
394
  stream: mockStream,
@@ -395,6 +413,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
395
413
  };
396
414
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
397
415
  adapter: mockAdapter,
416
+ attachmentsMetadata,
398
417
  attachments: [attachmentWithContentType],
399
418
  batchSize: 1,
400
419
  stream: mockStream,
@@ -415,6 +434,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
415
434
  };
416
435
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
417
436
  adapter: mockAdapter,
437
+ attachmentsMetadata,
418
438
  attachments: [attachmentWithContentType],
419
439
  batchSize: 1,
420
440
  stream: mockStream,
@@ -429,6 +449,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
429
449
  const warnSpy = jest.spyOn(console, 'warn');
430
450
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
431
451
  adapter: mockAdapter,
452
+ attachmentsMetadata,
432
453
  attachments: [mockAttachments[0]],
433
454
  batchSize: 1,
434
455
  stream: mockStream,
@@ -453,6 +474,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
453
474
  });
454
475
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
455
476
  adapter: mockAdapter,
477
+ attachmentsMetadata,
456
478
  attachments: mockAttachments,
457
479
  batchSize: 2,
458
480
  stream: mockStream,
@@ -472,6 +494,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
472
494
  mockAdapter.processAttachment.mockResolvedValue({});
473
495
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
474
496
  adapter: mockAdapter,
497
+ attachmentsMetadata,
475
498
  attachments: mockAttachments.slice(0, 1),
476
499
  stream: mockStream,
477
500
  });
@@ -504,6 +527,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
504
527
  });
505
528
  const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
506
529
  adapter: mockAdapter,
530
+ attachmentsMetadata,
507
531
  attachments: mockAttachments.slice(0, 1),
508
532
  stream: mockStreamFn,
509
533
  });
@@ -1,5 +1,5 @@
1
1
  import { TimeUnit, TimeValue } from '../types/extraction';
2
- import { SdkState } from '../state/state.interfaces';
2
+ import { ExtractionSdkState } from '../state/state.interfaces';
3
3
  /**
4
4
  * Parses a shorthand duration string into its numeric value and unit.
5
5
  * Supported units:
@@ -43,5 +43,5 @@ export declare function applyDuration(baseTimestamp: string, duration: string, o
43
43
  * @throws Error if required TimeValue.value is missing for ABSOLUTE or *_WINDOW types
44
44
  * @throws Error if workersOldest/workersNewest is not set in state for WORKERS_* types
45
45
  */
46
- export declare function resolveTimeValue(timeValue: TimeValue, state: SdkState): string;
46
+ export declare function resolveTimeValue(timeValue: TimeValue, state: ExtractionSdkState): string;
47
47
  //# sourceMappingURL=time-value-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"time-value-resolver.d.ts","sourceRoot":"","sources":["../../src/common/time-value-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;CAChB,CAcA;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,KAAK,GAAG,UAAU,GAC5B,MAAM,CA6BR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,QAAQ,GACd,MAAM,CA2ER"}
1
+ {"version":3,"file":"time-value-resolver.d.ts","sourceRoot":"","sources":["../../src/common/time-value-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;CAChB,CAcA;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,KAAK,GAAG,UAAU,GAC5B,MAAM,CA6BR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,kBAAkB,GACxB,MAAM,CA2ER"}
package/dist/index.d.ts CHANGED
@@ -5,9 +5,10 @@ export * from './http';
5
5
  export { serializeAxiosError } from './logger/logger';
6
6
  export { MockServer } from './mock-server/mock-server';
7
7
  export type { RequestInfo, RetryConfig, RouteConfig, } from './mock-server/mock-server.interfaces';
8
- export { processTask } from './multithreading/process-task';
8
+ export { processExtractionTask, processLoadingTask, } from './multithreading/process-task';
9
9
  export { spawn } from './multithreading/spawn/spawn';
10
- export { WorkerAdapter } from './multithreading/worker-adapter/worker-adapter';
10
+ export { ExtractionAdapter } from './multithreading/adapters/extraction-adapter';
11
+ export { LoadingAdapter } from './multithreading/adapters/loading-adapter';
11
12
  export { createMockEvent, MOCK_SERVER_DEFAULT_URL } from './common/test-utils';
12
13
  export type { DeepPartial } from './common/test-utils';
13
14
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.MOCK_SERVER_DEFAULT_URL = exports.createMockEvent = exports.WorkerAdapter = exports.spawn = exports.processTask = exports.MockServer = exports.serializeAxiosError = exports.AirSyncDefaultItemTypes = void 0;
17
+ exports.MOCK_SERVER_DEFAULT_URL = exports.createMockEvent = exports.LoadingAdapter = exports.ExtractionAdapter = exports.spawn = exports.processLoadingTask = exports.processExtractionTask = exports.MockServer = exports.serializeAxiosError = exports.AirSyncDefaultItemTypes = void 0;
18
18
  var constants_1 = require("./common/constants");
19
19
  Object.defineProperty(exports, "AirSyncDefaultItemTypes", { enumerable: true, get: function () { return constants_1.AirSyncDefaultItemTypes; } });
20
20
  __exportStar(require("./common/install-initial-domain-mapping"), exports);
@@ -24,11 +24,14 @@ Object.defineProperty(exports, "serializeAxiosError", { enumerable: true, get: f
24
24
  var mock_server_1 = require("./mock-server/mock-server");
25
25
  Object.defineProperty(exports, "MockServer", { enumerable: true, get: function () { return mock_server_1.MockServer; } });
26
26
  var process_task_1 = require("./multithreading/process-task");
27
- Object.defineProperty(exports, "processTask", { enumerable: true, get: function () { return process_task_1.processTask; } });
27
+ Object.defineProperty(exports, "processExtractionTask", { enumerable: true, get: function () { return process_task_1.processExtractionTask; } });
28
+ Object.defineProperty(exports, "processLoadingTask", { enumerable: true, get: function () { return process_task_1.processLoadingTask; } });
28
29
  var spawn_1 = require("./multithreading/spawn/spawn");
29
30
  Object.defineProperty(exports, "spawn", { enumerable: true, get: function () { return spawn_1.spawn; } });
30
- var worker_adapter_1 = require("./multithreading/worker-adapter/worker-adapter");
31
- Object.defineProperty(exports, "WorkerAdapter", { enumerable: true, get: function () { return worker_adapter_1.WorkerAdapter; } });
31
+ var extraction_adapter_1 = require("./multithreading/adapters/extraction-adapter");
32
+ Object.defineProperty(exports, "ExtractionAdapter", { enumerable: true, get: function () { return extraction_adapter_1.ExtractionAdapter; } });
33
+ var loading_adapter_1 = require("./multithreading/adapters/loading-adapter");
34
+ Object.defineProperty(exports, "LoadingAdapter", { enumerable: true, get: function () { return loading_adapter_1.LoadingAdapter; } });
32
35
  var test_utils_1 = require("./common/test-utils");
33
36
  Object.defineProperty(exports, "createMockEvent", { enumerable: true, get: function () { return test_utils_1.createMockEvent; } });
34
37
  Object.defineProperty(exports, "MOCK_SERVER_DEFAULT_URL", { enumerable: true, get: function () { return test_utils_1.MOCK_SERVER_DEFAULT_URL; } });
@@ -0,0 +1,56 @@
1
+ import { BaseState } from '../../state/base-state';
2
+ import { BaseSdkState } from '../../state/state.interfaces';
3
+ import { AirSyncEvent, EventData, ExtractorEventType } from '../../types/extraction';
4
+ import { LoaderEventType } from '../../types/loading';
5
+ import { WorkerAdapterOptions } from '../../types/workers';
6
+ import { Uploader } from '../../uploader/uploader';
7
+ /**
8
+ * BaseAdapter holds the state and behavior shared by both sync modes and owns
9
+ * the `emit` control-protocol flow as a template method. Mode-specific adapters
10
+ * (`ExtractionAdapter`, `LoadingAdapter`) implement the abstract hooks to inject
11
+ * their own pre-emit work and event payload shaping.
12
+ *
13
+ * @typeParam ConnectorState - the connector-owned state shape
14
+ * @typeParam StateClass - the mode's `BaseState` subclass
15
+ */
16
+ export declare abstract class BaseAdapter<ConnectorState, StateClass extends BaseState<ConnectorState, BaseSdkState>> {
17
+ readonly event: AirSyncEvent;
18
+ readonly options?: WorkerAdapterOptions;
19
+ isTimeout: boolean;
20
+ hasWorkerEmitted: boolean;
21
+ protected adapterState: StateClass;
22
+ protected uploader: Uploader;
23
+ constructor({ event, adapterState, options, }: {
24
+ event: AirSyncEvent;
25
+ adapterState: StateClass;
26
+ options?: WorkerAdapterOptions;
27
+ });
28
+ get state(): ConnectorState;
29
+ set state(value: ConnectorState);
30
+ postState(): Promise<void>;
31
+ /**
32
+ * Pre-emit hook run before any state is persisted or the event is sent.
33
+ * Extraction uploads pending repos and updates extraction boundaries here;
34
+ * loading has nothing to do. Throwing aborts the emit (the caller signals
35
+ * worker exit).
36
+ */
37
+ protected abstract beforeEmit(newEventType: ExtractorEventType | LoaderEventType): Promise<void>;
38
+ /**
39
+ * Builds the mode-specific extras merged into the emitted event payload
40
+ * (extraction: artifacts; loading: reports + processed files).
41
+ */
42
+ protected abstract buildEmitPayload(newEventType: ExtractorEventType | LoaderEventType): EventData;
43
+ /**
44
+ * Post-emit hook run after the event has been sent successfully. Extraction
45
+ * clears its accumulated artifacts here; loading has nothing to do.
46
+ */
47
+ protected abstract afterEmit(newEventType: ExtractorEventType | LoaderEventType): void;
48
+ /**
49
+ * Emits an event to the platform.
50
+ *
51
+ * @param newEventType - The event type to be emitted
52
+ * @param data - The data to be sent with the event
53
+ */
54
+ emit(newEventType: ExtractorEventType | LoaderEventType, data?: EventData): Promise<void>;
55
+ }
56
+ //# sourceMappingURL=base-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../../src/multithreading/adapters/base-adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,SAAS,EACT,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,oBAAoB,EAGrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;;;;;GAQG;AACH,8BAAsB,WAAW,CAC/B,cAAc,EACd,UAAU,SAAS,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC;IAE1D,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAE1B,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC;IACnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAEjB,EACV,KAAK,EACL,YAAY,EACZ,OAAO,GACR,EAAE;QACD,KAAK,EAAE,YAAY,CAAC;QACpB,YAAY,EAAE,UAAU,CAAC;QACzB,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAChC;IAYD,IAAI,KAAK,IAAI,cAAc,CAE1B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,cAAc,EAE9B;IAEK,SAAS;IAMf;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAC3B,YAAY,EAAE,kBAAkB,GAAG,eAAe,GACjD,OAAO,CAAC,IAAI,CAAC;IAEhB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CACjC,YAAY,EAAE,kBAAkB,GAAG,eAAe,GACjD,SAAS;IAEZ;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAC1B,YAAY,EAAE,kBAAkB,GAAG,eAAe,GACjD,IAAI;IAEP;;;;;OAKG;IACG,IAAI,CACR,YAAY,EAAE,kBAAkB,GAAG,eAAe,EAClD,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC;CAkEjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base-adapter.emit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-adapter.emit.test.d.ts","sourceRoot":"","sources":["../../../src/multithreading/adapters/base-adapter.emit.test.ts"],"names":[],"mappings":""}