@devrev/ts-adaas 1.17.0 → 1.17.1-beta.1

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.
package/dist/index.d.ts CHANGED
@@ -12,4 +12,5 @@ export { spawn } from './multithreading/spawn/spawn';
12
12
  export { WorkerAdapter } from './multithreading/worker-adapter/worker-adapter';
13
13
  export * from './types/workers';
14
14
  export { formatAxiosError, serializeAxiosError } from './logger/logger';
15
+ export { MockServer } from './tests/mock-server/mock-server';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,cAAc,yCAAyC,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAE/E,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,cAAc,yCAAyC,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAE/E,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,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.serializeAxiosError = exports.formatAxiosError = exports.WorkerAdapter = exports.spawn = exports.processTask = exports.AirSyncDefaultItemTypes = void 0;
17
+ exports.MockServer = exports.serializeAxiosError = exports.formatAxiosError = exports.WorkerAdapter = exports.spawn = exports.processTask = exports.AirSyncDefaultItemTypes = void 0;
18
18
  __exportStar(require("./deprecated/adapter"), exports);
19
19
  __exportStar(require("./deprecated/demo-extractor"), exports);
20
20
  __exportStar(require("./deprecated/http/client"), exports);
@@ -34,3 +34,5 @@ __exportStar(require("./types/workers"), exports);
34
34
  var logger_1 = require("./logger/logger");
35
35
  Object.defineProperty(exports, "formatAxiosError", { enumerable: true, get: function () { return logger_1.formatAxiosError; } });
36
36
  Object.defineProperty(exports, "serializeAxiosError", { enumerable: true, get: function () { return logger_1.serializeAxiosError; } });
37
+ var mock_server_1 = require("./tests/mock-server/mock-server");
38
+ Object.defineProperty(exports, "MockServer", { enumerable: true, get: function () { return mock_server_1.MockServer; } });
@@ -41,6 +41,12 @@ export declare class WorkerAdapter<ConnectorState> {
41
41
  get reports(): LoaderReport[];
42
42
  get processedFiles(): string[];
43
43
  get mappers(): Mappers;
44
+ get extractionScope(): import("../../types/workers").ExtractionScope;
45
+ /**
46
+ * Returns whether the given item type should be extracted.
47
+ * Defaults to true if the scope is empty or the item type is not listed.
48
+ */
49
+ shouldExtract(itemType: string): boolean;
44
50
  initializeRepos(repos: RepoInterface[]): void;
45
51
  getRepo(itemType: string): Repo | undefined;
46
52
  postState(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../../src/multithreading/worker-adapter/worker-adapter.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,SAAS,EAET,kCAAkC,EAClC,yCAAyC,EACzC,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,wBAAwB,EACxB,kBAAkB,EAClB,6BAA6B,EAC7B,UAAU,EACV,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EAGrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAkB,MAAM,oCAAoC,CAAC;AAI9E,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;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAE1B,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,sBAAsB,CAAa;IAG3C,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,EAE5C;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;IAuCtC,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;IAqHV,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAU/B,aAAa,CAAC,EAClB,eAAe,GAChB,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAqHnD,gBAAgB,CAAC,EACrB,kBAAkB,GACnB,EAAE;QACD,kBAAkB,EAAE,MAAM,EAAE,CAAC;KAC9B;IA4BK,eAAe,CAAC,EACpB,MAAM,GACP,EAAE;QACD,MAAM,EAAE,6BAA6B,CAAC,wBAAwB,CAAC,CAAC;KACjE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6E5B,QAAQ,CAAC,EACb,IAAI,EACJ,cAAc,GACf,EAAE;QACD,IAAI,EAAE,kBAAkB,CAAC;QACzB,cAAc,EAAE,cAAc,CAAC;KAChC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkMvB,iBAAiB,CACrB,UAAU,EAAE,oBAAoB,EAChC,MAAM,EAAE,yCAAyC,GAChD,OAAO,CAAC,2BAA2B,CAAC;IA6GvC;;;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"}
1
+ {"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../../src/multithreading/worker-adapter/worker-adapter.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,21 @@ class WorkerAdapter {
81
81
  get mappers() {
82
82
  return this._mappers;
83
83
  }
84
+ get extractionScope() {
85
+ return this.adapterState.extractionScope;
86
+ }
87
+ /**
88
+ * Returns whether the given item type should be extracted.
89
+ * Defaults to true if the scope is empty or the item type is not listed.
90
+ */
91
+ shouldExtract(itemType) {
92
+ const scope = this.extractionScope;
93
+ if (Object.keys(scope).length === 0)
94
+ return true;
95
+ if (!(itemType in scope))
96
+ return true;
97
+ return scope[itemType].extract;
98
+ }
84
99
  initializeRepos(repos) {
85
100
  this.repos = repos.map((repo) => {
86
101
  const shouldNormalize = repo.itemType !== constants_1.AirSyncDefaultItemTypes.EXTERNAL_DOMAIN_METADATA &&
@@ -191,11 +206,13 @@ class WorkerAdapter {
191
206
  if ((_b = data === null || data === void 0 ? void 0 : data.error) === null || _b === void 0 ? void 0 : _b.message) {
192
207
  data.error.message = (0, helpers_1.truncateMessage)(data.error.message);
193
208
  }
209
+ const isExtractionEvent = Object.values(extraction_1.ExtractorEventType).includes(newEventType);
210
+ const isLoaderEvent = Object.values(loading_1.LoaderEventType).includes(newEventType);
194
211
  await (0, control_protocol_1.emit)({
195
212
  eventType: newEventType,
196
213
  event: this.event,
197
- data: Object.assign(Object.assign({}, data), (constants_1.ALLOWED_EXTRACTION_EVENT_TYPES.includes(this.event.payload.event_type)
198
- ? { artifacts: this.artifacts }
214
+ data: Object.assign(Object.assign(Object.assign({}, data), (isExtractionEvent ? { artifacts: this.artifacts } : {})), (isLoaderEvent
215
+ ? { reports: this.reports, processed_files: this.processedFiles }
199
216
  : {})),
200
217
  });
201
218
  const message = {
@@ -771,6 +788,13 @@ class WorkerAdapter {
771
788
  if ((response === null || response === void 0 ? void 0 : response.delay) || (response === null || response === void 0 ? void 0 : response.error)) {
772
789
  return response;
773
790
  }
791
+ // On timeout, emit progress and exit to allow resumption.
792
+ if (this.isTimeout) {
793
+ console.log(`Timeout detected after processing attachments for artifact ID: ${attachmentsMetadataArtifactId}. Emitting progress to allow resumption.`);
794
+ await this.emit(extraction_1.ExtractorEventType.AttachmentExtractionProgress);
795
+ process.exit(0);
796
+ return;
797
+ }
774
798
  console.log(`Finished processing all attachments for artifact ID: ${attachmentsMetadataArtifactId}.`);
775
799
  attachmentsMetadata.artifactIds.shift();
776
800
  attachmentsMetadata.lastProcessed = 0;
@@ -353,6 +353,62 @@ describe(worker_adapter_1.WorkerAdapter.name, () => {
353
353
  'artifact1',
354
354
  ]);
355
355
  });
356
+ it('should emit progress event and exit process on timeout, preserving state for resumption', async () => {
357
+ const mockStream = jest.fn();
358
+ // Mock process.exit to prevent it from killing the test runner
359
+ const exitSpy = jest
360
+ .spyOn(process, 'exit')
361
+ .mockImplementation(() => undefined);
362
+ // Set up adapter state with multiple artifact IDs
363
+ adapter.state.toDevRev = {
364
+ attachmentsMetadata: {
365
+ artifactIds: ['artifact1', 'artifact2', 'artifact3'],
366
+ lastProcessed: 0,
367
+ lastProcessedAttachmentsIdsList: [],
368
+ },
369
+ };
370
+ // Mock getting attachments for each artifact
371
+ adapter['uploader'].getAttachmentsFromArtifactId = jest
372
+ .fn()
373
+ .mockResolvedValue({
374
+ attachments: [
375
+ {
376
+ url: 'http://example.com/file1.pdf',
377
+ id: 'attachment1',
378
+ file_name: 'file1.pdf',
379
+ parent_id: 'parent1',
380
+ },
381
+ ],
382
+ });
383
+ // Mock the pool to simulate timeout happening during the first artifact
384
+ attachments_streaming_pool_1.AttachmentsStreamingPool.mockImplementationOnce(() => {
385
+ return {
386
+ streamAll: jest.fn().mockImplementation(async () => {
387
+ adapter.isTimeout = true;
388
+ return {};
389
+ }),
390
+ };
391
+ });
392
+ adapter.initializeRepos = jest.fn();
393
+ // Mock emit to verify it's called with progress event
394
+ const emitSpy = jest.spyOn(adapter, 'emit').mockResolvedValue();
395
+ await adapter.streamAttachments({
396
+ stream: mockStream,
397
+ });
398
+ // Should have emitted progress event
399
+ expect(emitSpy).toHaveBeenCalledWith(types_1.ExtractorEventType.AttachmentExtractionProgress);
400
+ // Should have called process.exit(0)
401
+ expect(exitSpy).toHaveBeenCalledWith(0);
402
+ // The current artifact should NOT be removed from the list
403
+ expect(adapter.state.toDevRev.attachmentsMetadata.artifactIds).toEqual([
404
+ 'artifact1',
405
+ 'artifact2',
406
+ 'artifact3',
407
+ ]);
408
+ // Only the first artifact should have been fetched
409
+ expect(adapter['uploader'].getAttachmentsFromArtifactId).toHaveBeenCalledTimes(1);
410
+ exitSpy.mockRestore();
411
+ });
356
412
  it('should reset lastProcessed and attachment IDs list after processing all artifacts', async () => {
357
413
  const mockStream = jest.fn();
358
414
  adapter.state.toDevRev = {
@@ -411,10 +467,12 @@ describe(worker_adapter_1.WorkerAdapter.name, () => {
411
467
  'content-length': '100',
412
468
  }),
413
469
  });
414
- adapter['uploader'].getArtifactUploadUrl = jest
415
- .fn()
416
- .mockResolvedValue({
417
- response: { artifact_id: 'art_1', upload_url: 'https://upload', form_data: [] },
470
+ adapter['uploader'].getArtifactUploadUrl = jest.fn().mockResolvedValue({
471
+ response: {
472
+ artifact_id: 'art_1',
473
+ upload_url: 'https://upload',
474
+ form_data: [],
475
+ },
418
476
  });
419
477
  adapter['uploader'].streamArtifact = jest
420
478
  .fn()
@@ -439,10 +497,12 @@ describe(worker_adapter_1.WorkerAdapter.name, () => {
439
497
  'content-length': '200',
440
498
  }),
441
499
  });
442
- adapter['uploader'].getArtifactUploadUrl = jest
443
- .fn()
444
- .mockResolvedValue({
445
- response: { artifact_id: 'art_2', upload_url: 'https://upload', form_data: [] },
500
+ adapter['uploader'].getArtifactUploadUrl = jest.fn().mockResolvedValue({
501
+ response: {
502
+ artifact_id: 'art_2',
503
+ upload_url: 'https://upload',
504
+ form_data: [],
505
+ },
446
506
  });
447
507
  adapter['uploader'].streamArtifact = jest
448
508
  .fn()
@@ -463,10 +523,12 @@ describe(worker_adapter_1.WorkerAdapter.name, () => {
463
523
  const mockStream = jest.fn().mockResolvedValue({
464
524
  httpStream: createMockHttpStream({}),
465
525
  });
466
- adapter['uploader'].getArtifactUploadUrl = jest
467
- .fn()
468
- .mockResolvedValue({
469
- response: { artifact_id: 'art_3', upload_url: 'https://upload', form_data: [] },
526
+ adapter['uploader'].getArtifactUploadUrl = jest.fn().mockResolvedValue({
527
+ response: {
528
+ artifact_id: 'art_3',
529
+ upload_url: 'https://upload',
530
+ form_data: [],
531
+ },
470
532
  });
471
533
  adapter['uploader'].streamArtifact = jest
472
534
  .fn()
@@ -569,5 +631,159 @@ describe(worker_adapter_1.WorkerAdapter.name, () => {
569
631
  });
570
632
  expect(counter.counter).toBe(1);
571
633
  });
634
+ it('should include artifacts in data for extraction events', async () => {
635
+ const { emit: mockEmit } = require('../../common/control-protocol');
636
+ adapter['adapterState'].postState = jest
637
+ .fn()
638
+ .mockResolvedValue(undefined);
639
+ adapter.uploadAllRepos = jest.fn().mockResolvedValue(undefined);
640
+ adapter['_artifacts'] = [
641
+ { id: 'art-1', item_count: 10, item_type: 'issues' },
642
+ ];
643
+ await adapter.emit(types_1.ExtractorEventType.DataExtractionDone);
644
+ expect(mockEmit).toHaveBeenCalledWith(expect.objectContaining({
645
+ data: expect.objectContaining({
646
+ artifacts: expect.arrayContaining([
647
+ expect.objectContaining({ id: 'art-1' }),
648
+ ]),
649
+ }),
650
+ }));
651
+ // Should not include loader-specific fields
652
+ const callData = mockEmit.mock.calls[0][0].data;
653
+ expect(callData).not.toHaveProperty('reports');
654
+ expect(callData).not.toHaveProperty('processed_files');
655
+ });
656
+ it('should include reports and processed_files in data for loader events', async () => {
657
+ const { emit: mockEmit } = require('../../common/control-protocol');
658
+ adapter['adapterState'].postState = jest
659
+ .fn()
660
+ .mockResolvedValue(undefined);
661
+ adapter.uploadAllRepos = jest.fn().mockResolvedValue(undefined);
662
+ adapter['loaderReports'] = [
663
+ { item_type: 'tasks', created: 5 },
664
+ ];
665
+ adapter['_processedFiles'] = ['file-1', 'file-2'];
666
+ await adapter.emit(types_1.LoaderEventType.DataLoadingDone);
667
+ expect(mockEmit).toHaveBeenCalledWith(expect.objectContaining({
668
+ data: expect.objectContaining({
669
+ reports: expect.arrayContaining([
670
+ expect.objectContaining({ item_type: 'tasks' }),
671
+ ]),
672
+ processed_files: ['file-1', 'file-2'],
673
+ }),
674
+ }));
675
+ // Should not include extraction-specific fields
676
+ const callData = mockEmit.mock.calls[0][0].data;
677
+ expect(callData).not.toHaveProperty('artifacts');
678
+ });
679
+ it('should not include artifacts, reports, or processed_files for unknown event types', async () => {
680
+ const { emit: mockEmit } = require('../../common/control-protocol');
681
+ adapter['adapterState'].postState = jest
682
+ .fn()
683
+ .mockResolvedValue(undefined);
684
+ adapter.uploadAllRepos = jest.fn().mockResolvedValue(undefined);
685
+ adapter['_artifacts'] = [
686
+ { id: 'art-1', item_count: 10, item_type: 'issues' },
687
+ ];
688
+ adapter['loaderReports'] = [
689
+ { item_type: 'tasks', created: 5 },
690
+ ];
691
+ adapter['_processedFiles'] = ['file-1'];
692
+ await adapter.emit('SOME_UNKNOWN_EVENT');
693
+ const callData = mockEmit.mock.calls[0][0].data;
694
+ expect(callData).not.toHaveProperty('artifacts');
695
+ expect(callData).not.toHaveProperty('reports');
696
+ expect(callData).not.toHaveProperty('processed_files');
697
+ });
698
+ it('should include artifacts for all ExtractorEventType values', async () => {
699
+ var _a, _b;
700
+ const { emit: mockEmit } = require('../../common/control-protocol');
701
+ const extractorEvents = [
702
+ types_1.ExtractorEventType.DataExtractionDone,
703
+ types_1.ExtractorEventType.DataExtractionProgress,
704
+ types_1.ExtractorEventType.DataExtractionError,
705
+ types_1.ExtractorEventType.AttachmentExtractionDone,
706
+ types_1.ExtractorEventType.AttachmentExtractionProgress,
707
+ ];
708
+ for (const eventType of extractorEvents) {
709
+ jest.clearAllMocks();
710
+ adapter.hasWorkerEmitted = false;
711
+ adapter['adapterState'].postState = jest
712
+ .fn()
713
+ .mockResolvedValue(undefined);
714
+ adapter.uploadAllRepos = jest.fn().mockResolvedValue(undefined);
715
+ await adapter.emit(eventType);
716
+ const callData = (_b = (_a = mockEmit.mock.calls[0]) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.data;
717
+ expect(callData).toHaveProperty('artifacts');
718
+ expect(callData).not.toHaveProperty('reports');
719
+ }
720
+ });
721
+ it('should include reports and processed_files for all LoaderEventType values', async () => {
722
+ var _a, _b;
723
+ const { emit: mockEmit } = require('../../common/control-protocol');
724
+ const loaderEvents = [
725
+ types_1.LoaderEventType.DataLoadingDone,
726
+ types_1.LoaderEventType.DataLoadingProgress,
727
+ types_1.LoaderEventType.DataLoadingError,
728
+ types_1.LoaderEventType.AttachmentLoadingDone,
729
+ types_1.LoaderEventType.AttachmentLoadingProgress,
730
+ ];
731
+ for (const eventType of loaderEvents) {
732
+ jest.clearAllMocks();
733
+ adapter.hasWorkerEmitted = false;
734
+ adapter['adapterState'].postState = jest
735
+ .fn()
736
+ .mockResolvedValue(undefined);
737
+ adapter.uploadAllRepos = jest.fn().mockResolvedValue(undefined);
738
+ await adapter.emit(eventType);
739
+ const callData = (_b = (_a = mockEmit.mock.calls[0]) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.data;
740
+ expect(callData).toHaveProperty('reports');
741
+ expect(callData).toHaveProperty('processed_files');
742
+ expect(callData).not.toHaveProperty('artifacts');
743
+ }
744
+ });
745
+ });
746
+ describe('extractionScope', () => {
747
+ it('should return empty object by default', () => {
748
+ expect(adapter.extractionScope).toEqual({});
749
+ });
750
+ it('should return extraction scope from adapter state', () => {
751
+ const extractionScope = {
752
+ tasks: { extract: true },
753
+ users: { extract: false },
754
+ };
755
+ // Simulate what State.init() does when parsing objects from API
756
+ mockAdapterState._extractionScope = extractionScope;
757
+ expect(adapter.extractionScope).toEqual({
758
+ tasks: { extract: true },
759
+ users: { extract: false },
760
+ });
761
+ });
762
+ });
763
+ describe('shouldExtract', () => {
764
+ it('should return true when extraction scope is empty', () => {
765
+ expect(adapter.shouldExtract('tasks')).toBe(true);
766
+ expect(adapter.shouldExtract('users')).toBe(true);
767
+ });
768
+ it('should return true when item type is not in scope', () => {
769
+ mockAdapterState._extractionScope = {
770
+ tasks: { extract: true },
771
+ };
772
+ expect(adapter.shouldExtract('users')).toBe(true);
773
+ });
774
+ it('should return true when item type has extract: true', () => {
775
+ mockAdapterState._extractionScope = {
776
+ tasks: { extract: true },
777
+ };
778
+ expect(adapter.shouldExtract('tasks')).toBe(true);
779
+ });
780
+ it('should return false when item type has extract: false', () => {
781
+ mockAdapterState._extractionScope = {
782
+ tasks: { extract: false },
783
+ users: { extract: true },
784
+ };
785
+ expect(adapter.shouldExtract('tasks')).toBe(false);
786
+ expect(adapter.shouldExtract('users')).toBe(true);
787
+ });
572
788
  });
573
789
  });
@@ -1,7 +1,9 @@
1
1
  import { AdapterState, StateInterface } from './state.interfaces';
2
+ import { ExtractionScope } from '../types/workers';
2
3
  export declare function createAdapterState<ConnectorState>({ event, initialState, initialDomainMapping, options, }: StateInterface<ConnectorState>): Promise<State<ConnectorState>>;
3
4
  export declare class State<ConnectorState> {
4
5
  private _state;
6
+ private _extractionScope;
5
7
  private initialSdkState;
6
8
  private workerUrl;
7
9
  private devrevToken;
@@ -10,6 +12,7 @@ export declare class State<ConnectorState> {
10
12
  constructor({ event, initialState }: StateInterface<ConnectorState>);
11
13
  get state(): AdapterState<ConnectorState>;
12
14
  set state(value: AdapterState<ConnectorState>);
15
+ get extractionScope(): ExtractionScope;
13
16
  /**
14
17
  * Initializes the state for this adapter instance by fetching from API
15
18
  * or creating an initial state if none exists (404).
@@ -25,6 +28,9 @@ export declare class State<ConnectorState> {
25
28
  * Fetches the state of the adapter from API.
26
29
  * @return The raw state data from API
27
30
  */
28
- fetchState(): Promise<string>;
31
+ fetchState(): Promise<{
32
+ state: string;
33
+ objects?: string;
34
+ }>;
29
35
  }
30
36
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,YAAY,EAIZ,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,EACvD,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,OAAO,GACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CA8DjE;AAED,qBAAa,KAAK,CAAC,cAAc;IAC/B,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC;IAenE,IAAI,KAAK,IAAI,YAAY,CAAC,cAAc,CAAC,CAExC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,EAE5C;IAED;;;;OAIG;IACG,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCvD;;;OAGG;IACG,SAAS,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC;IAqDpD;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAkBpC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,YAAY,EAIZ,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,EACvD,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,OAAO,GACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CA8DjE;AAED,qBAAa,KAAK,CAAC,cAAc;IAC/B,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC;IAenE,IAAI,KAAK,IAAI,YAAY,CAAC,cAAc,CAAC,CAExC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,EAE5C;IAED,IAAI,eAAe,IAAI,eAAe,CAErC;IAED;;;;OAIG;IACG,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDvD;;;OAGG;IACG,SAAS,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC;IAqDpD;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAqBjE"}
@@ -65,6 +65,7 @@ async function createAdapterState({ event, initialState, initialDomainMapping, o
65
65
  }
66
66
  class State {
67
67
  constructor({ event, initialState }) {
68
+ this._extractionScope = {};
68
69
  this.initialSdkState =
69
70
  event.payload.event_context.mode === common_1.SyncMode.LOADING
70
71
  ? state_interfaces_1.loadingSdkState
@@ -81,6 +82,9 @@ class State {
81
82
  set state(value) {
82
83
  this._state = value;
83
84
  }
85
+ get extractionScope() {
86
+ return this._extractionScope;
87
+ }
84
88
  /**
85
89
  * Initializes the state for this adapter instance by fetching from API
86
90
  * or creating an initial state if none exists (404).
@@ -89,7 +93,7 @@ class State {
89
93
  async init(initialState) {
90
94
  var _a;
91
95
  try {
92
- const stringifiedState = await this.fetchState();
96
+ const { state: stringifiedState, objects } = await this.fetchState();
93
97
  if (!stringifiedState) {
94
98
  throw new Error('No state found in response.');
95
99
  }
@@ -102,6 +106,14 @@ class State {
102
106
  }
103
107
  this.state = parsedState;
104
108
  console.log('State fetched successfully. Current state', (0, logger_1.getPrintableState)(this.state));
109
+ if (objects) {
110
+ try {
111
+ this._extractionScope = JSON.parse(objects);
112
+ }
113
+ catch (error) {
114
+ console.warn(`Failed to parse extractionScope. ${error}`);
115
+ }
116
+ }
105
117
  }
106
118
  catch (error) {
107
119
  if (axios_1.default.isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
@@ -170,7 +182,7 @@ class State {
170
182
  * @return The raw state data from API
171
183
  */
172
184
  async fetchState() {
173
- var _a;
185
+ var _a, _b;
174
186
  console.log(`Fetching state with sync unit id ${this.syncUnitId} and request id ${this.requestId}.`);
175
187
  const url = this.workerUrl + '.get';
176
188
  const response = await axios_client_internal_1.axiosClient.get(url, {
@@ -182,7 +194,10 @@ class State {
182
194
  request_id: this.requestId,
183
195
  },
184
196
  });
185
- return (_a = response.data) === null || _a === void 0 ? void 0 : _a.state;
197
+ return {
198
+ state: (_a = response.data) === null || _a === void 0 ? void 0 : _a.state,
199
+ objects: (_b = response.data) === null || _b === void 0 ? void 0 : _b.objects,
200
+ };
186
201
  }
187
202
  }
188
203
  exports.State = State;
@@ -63,7 +63,7 @@ describe(state_1.State.name, () => {
63
63
  const event = (0, test_helpers_1.createEvent)({
64
64
  eventType: eventType,
65
65
  });
66
- fetchStateSpy.mockResolvedValue('invalid-json');
66
+ fetchStateSpy.mockResolvedValue({ state: 'invalid-json' });
67
67
  jest.spyOn(console, 'error').mockImplementation(() => { });
68
68
  // Act & Assert
69
69
  await expect((0, state_1.createAdapterState)({
@@ -78,7 +78,7 @@ describe(state_1.State.name, () => {
78
78
  const event = (0, test_helpers_1.createEvent)({
79
79
  eventType: eventType,
80
80
  });
81
- fetchStateSpy.mockResolvedValue(null);
81
+ fetchStateSpy.mockResolvedValue({ state: null });
82
82
  jest.spyOn(console, 'error').mockImplementation(() => { });
83
83
  // Act & Assert
84
84
  await expect((0, state_1.createAdapterState)({
@@ -159,9 +159,11 @@ describe(state_1.State.name, () => {
159
159
  const event = (0, test_helpers_1.createEvent)({
160
160
  eventType: eventType,
161
161
  });
162
- fetchStateSpy.mockResolvedValue(JSON.stringify({
163
- test: 'test',
164
- }));
162
+ fetchStateSpy.mockResolvedValue({
163
+ state: JSON.stringify({
164
+ test: 'test',
165
+ }),
166
+ });
165
167
  jest.spyOn(console, 'log').mockImplementation(() => { });
166
168
  jest.spyOn(console, 'error').mockImplementation(() => { });
167
169
  // Act & Assert
@@ -184,7 +186,7 @@ describe(state_1.State.name, () => {
184
186
  test: 'test',
185
187
  snapInVersionId: '1.0.0',
186
188
  });
187
- fetchStateSpy.mockResolvedValue(stringifiedState);
189
+ fetchStateSpy.mockResolvedValue({ state: stringifiedState });
188
190
  jest.spyOn(console, 'log').mockImplementation(() => { });
189
191
  // Act & Assert
190
192
  await (0, state_1.createAdapterState)({
@@ -207,7 +209,7 @@ describe(state_1.State.name, () => {
207
209
  test: 'test',
208
210
  snapInVersionId: '1.0.0',
209
211
  });
210
- fetchStateSpy.mockResolvedValue(stringifiedState);
212
+ fetchStateSpy.mockResolvedValue({ state: stringifiedState });
211
213
  installInitialDomainMappingSpy.mockResolvedValue({
212
214
  success: true,
213
215
  });
@@ -221,4 +223,70 @@ describe(state_1.State.name, () => {
221
223
  // Assert
222
224
  expect(installInitialDomainMappingSpy).toHaveBeenCalled();
223
225
  });
226
+ it('should populate extractionScope from API response', async () => {
227
+ // Arrange
228
+ const event = (0, test_helpers_1.createEvent)({
229
+ eventType: extraction_1.EventType.StartExtractingData,
230
+ contextOverrides: {
231
+ snap_in_version_id: '1.0.0',
232
+ },
233
+ });
234
+ fetchStateSpy.mockResolvedValue({
235
+ state: JSON.stringify({ snapInVersionId: '1.0.0' }),
236
+ objects: JSON.stringify({
237
+ tasks: { extract: true },
238
+ users: { extract: true },
239
+ }),
240
+ });
241
+ jest.spyOn(console, 'log').mockImplementation(() => { });
242
+ // Act
243
+ const result = await (0, state_1.createAdapterState)({
244
+ event,
245
+ initialState: {},
246
+ initialDomainMapping: {},
247
+ });
248
+ // Assert
249
+ expect(result.extractionScope).toEqual({
250
+ tasks: { extract: true },
251
+ users: { extract: true },
252
+ });
253
+ });
254
+ it('should have empty extractionScope on 404', async () => {
255
+ // Arrange
256
+ const event = (0, test_helpers_1.createEvent)({
257
+ eventType: extraction_1.EventType.StartExtractingMetadata,
258
+ contextOverrides: {
259
+ snap_in_version_id: '',
260
+ },
261
+ });
262
+ fetchStateSpy.mockRejectedValue({
263
+ isAxiosError: true,
264
+ response: { status: 404 },
265
+ });
266
+ installInitialDomainMappingSpy.mockResolvedValue({ success: true });
267
+ postStateSpy.mockResolvedValue({ success: true });
268
+ jest.spyOn(console, 'log').mockImplementation(() => { });
269
+ // Act
270
+ const result = await (0, state_1.createAdapterState)({
271
+ event,
272
+ initialState: {},
273
+ initialDomainMapping: {},
274
+ });
275
+ // Assert
276
+ expect(result.extractionScope).toEqual({});
277
+ });
278
+ it('should have empty extractionScope for stateless events', async () => {
279
+ // Arrange
280
+ const event = (0, test_helpers_1.createEvent)({
281
+ eventType: extraction_1.EventType.StartExtractingExternalSyncUnits,
282
+ });
283
+ // Act
284
+ const result = await (0, state_1.createAdapterState)({
285
+ event,
286
+ initialState: {},
287
+ initialDomainMapping: {},
288
+ });
289
+ // Assert
290
+ expect(result.extractionScope).toEqual({});
291
+ });
224
292
  });
@@ -1,5 +1,5 @@
1
1
  export { AdapterUpdateParams, ErrorLevel, ErrorRecord, InitialDomainMapping, LogRecord, SyncMode, } from './common';
2
- export { AirdropEvent, AirdropMessage, ConnectionData, DomainObjectState, EventContextIn, EventContextOut, EventData, EventType, ExternalProcessAttachmentFunction, ExternalSyncUnit, ExternalSystemAttachmentIteratorFunction, ExternalSystemAttachmentReducerFunction, ExternalSystemAttachmentStreamingFunction, ExternalSystemAttachmentStreamingParams, ExternalSystemAttachmentStreamingResponse, ExtractionMode, ExtractorEvent, ExtractorEventType, ProcessAttachmentReturnType, } from './extraction';
2
+ export { AirdropEvent, AirdropMessage, ConnectionData, DomainObjectState, EventContextIn, EventContextOut, EventContext, EventData, EventType, ExternalProcessAttachmentFunction, ExternalSyncUnit, ExternalSystemAttachmentIteratorFunction, ExternalSystemAttachmentReducerFunction, ExternalSystemAttachmentStreamingFunction, ExternalSystemAttachmentStreamingParams, ExternalSystemAttachmentStreamingResponse, ExtractionMode, ExtractorEvent, ExtractorEventType, ProcessAttachmentReturnType, } from './extraction';
3
3
  export { ExternalSystemAttachment, ExternalSystemItem, ExternalSystemItemLoadingParams, ExternalSystemItemLoadingResponse, LoaderEventType, } from './loading';
4
4
  export { NormalizedAttachment, NormalizedItem, RepoInterface, } from '../repo/repo.interfaces';
5
5
  export { AdapterState } from '../state/state.interfaces';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,QAAQ,GACT,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,SAAS,EACT,SAAS,EACT,iCAAiC,EACjC,gBAAgB,EAChB,wCAAwC,EACxC,uCAAuC,EACvC,yCAAyC,EACzC,uCAAuC,EACvC,yCAAyC,EACzC,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,+BAA+B,EAC/B,iCAAiC,EACjC,eAAe,GAChB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,aAAa,GACd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,cAAc,GACf,MAAM,iCAAiC,CAAC;AAGzC,YAAY,EACV,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,sBAAsB,EACtB,KAAK,EACL,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,OAAO,EACP,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,GACnB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,QAAQ,GACT,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,SAAS,EACT,SAAS,EACT,iCAAiC,EACjC,gBAAgB,EAChB,wCAAwC,EACxC,uCAAuC,EACvC,yCAAyC,EACzC,uCAAuC,EACvC,yCAAyC,EACzC,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,+BAA+B,EAC/B,iCAAiC,EACjC,eAAe,GAChB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,aAAa,GACd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,cAAc,GACf,MAAM,iCAAiC,CAAC;AAGzC,YAAY,EACV,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,sBAAsB,EACtB,KAAK,EACL,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,OAAO,EACP,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,GACnB,MAAM,4BAA4B,CAAC"}
@@ -18,6 +18,13 @@ export interface WorkerAdapterInterface<ConnectorState> {
18
18
  adapterState: State<ConnectorState>;
19
19
  options?: WorkerAdapterOptions;
20
20
  }
21
+ /**
22
+ * ExtractionScope represents the parsed extraction scope from the platform.
23
+ * Each key is an item type name, and the value indicates whether it should be extracted.
24
+ */
25
+ export type ExtractionScope = Record<string, {
26
+ extract: boolean;
27
+ }>;
21
28
  /**
22
29
  * WorkerAdapterOptions represents the options for WorkerAdapter class.
23
30
  * @interface WorkerAdapterOptions
@@ -1 +1 @@
1
- {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/types/workers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/types/workers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB,CAAC,cAAc;IACpD,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,qBAAqB,CAAC,cAAc;IACnD,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,cAAc,CAAC;IAE7B,wGAAwG;IACxG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB,CAAC,cAAc;IAClD,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACxC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB,CAAC,cAAc;IAClD,IAAI,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,SAAS,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,aAAa,YAAY;IACzB,YAAY,WAAW;IACvB,WAAW,UAAU;IACrB,UAAU,SAAS;CACpB;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,oBAAoB,SAAS;IAC7B,iBAAiB,SAAS;IAC1B,gBAAgB,QAAQ;IACxB,mBAAmB,WAAW;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,oBAAoB,CAAC,oBAAoB,CAAC;IACnD,OAAO,EAAE;QACP,SAAS,EAAE,kBAAkB,GAAG,eAAe,CAAC;KACjD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,oBAAoB,CAAC,iBAAiB,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IAC/C,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,QAAQ,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,CAAC,mBAAmB,CAAC;IAClD,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,mBAAmB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,cAAc;IACxC,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,cAAc,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,YAAY,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrev/ts-adaas",
3
- "version": "1.17.0",
3
+ "version": "1.17.1-beta.1",
4
4
  "description": "Typescript library containing the ADaaS(AirDrop as a Service) control protocol.",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",