@devrev/ts-adaas 1.17.1-beta.2 → 1.17.1-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -12,5 +12,4 @@ 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 './mock-server/mock-server';
16
15
  //# 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;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,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"}
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.MockServer = exports.serializeAxiosError = exports.formatAxiosError = exports.WorkerAdapter = exports.spawn = exports.processTask = exports.AirSyncDefaultItemTypes = void 0;
17
+ 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,5 +34,3 @@ __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("./mock-server/mock-server");
38
- Object.defineProperty(exports, "MockServer", { enumerable: true, get: function () { return mock_server_1.MockServer; } });
@@ -41,12 +41,6 @@ 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;
50
44
  initializeRepos(repos: RepoInterface[]): void;
51
45
  getRepo(itemType: string): Repo | undefined;
52
46
  postState(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../../src/multithreading/worker-adapter/worker-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../../src/multithreading/worker-adapter/worker-adapter.ts"],"names":[],"mappings":"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"}
@@ -81,21 +81,6 @@ 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
- }
99
84
  initializeRepos(repos) {
100
85
  this.repos = repos.map((repo) => {
101
86
  const shouldNormalize = repo.itemType !== constants_1.AirSyncDefaultItemTypes.EXTERNAL_DOMAIN_METADATA &&
@@ -206,13 +191,11 @@ class WorkerAdapter {
206
191
  if ((_b = data === null || data === void 0 ? void 0 : data.error) === null || _b === void 0 ? void 0 : _b.message) {
207
192
  data.error.message = (0, helpers_1.truncateMessage)(data.error.message);
208
193
  }
209
- const isExtractionEvent = Object.values(extraction_1.ExtractorEventType).includes(newEventType);
210
- const isLoaderEvent = Object.values(loading_1.LoaderEventType).includes(newEventType);
211
194
  await (0, control_protocol_1.emit)({
212
195
  eventType: newEventType,
213
196
  event: this.event,
214
- data: Object.assign(Object.assign(Object.assign({}, data), (isExtractionEvent ? { artifacts: this.artifacts } : {})), (isLoaderEvent
215
- ? { reports: this.reports, processed_files: this.processedFiles }
197
+ data: Object.assign(Object.assign({}, data), (constants_1.ALLOWED_EXTRACTION_EVENT_TYPES.includes(this.event.payload.event_type)
198
+ ? { artifacts: this.artifacts }
216
199
  : {})),
217
200
  });
218
201
  const message = {
@@ -467,12 +467,10 @@ describe(worker_adapter_1.WorkerAdapter.name, () => {
467
467
  'content-length': '100',
468
468
  }),
469
469
  });
470
- adapter['uploader'].getArtifactUploadUrl = jest.fn().mockResolvedValue({
471
- response: {
472
- artifact_id: 'art_1',
473
- upload_url: 'https://upload',
474
- form_data: [],
475
- },
470
+ adapter['uploader'].getArtifactUploadUrl = jest
471
+ .fn()
472
+ .mockResolvedValue({
473
+ response: { artifact_id: 'art_1', upload_url: 'https://upload', form_data: [] },
476
474
  });
477
475
  adapter['uploader'].streamArtifact = jest
478
476
  .fn()
@@ -497,12 +495,10 @@ describe(worker_adapter_1.WorkerAdapter.name, () => {
497
495
  'content-length': '200',
498
496
  }),
499
497
  });
500
- adapter['uploader'].getArtifactUploadUrl = jest.fn().mockResolvedValue({
501
- response: {
502
- artifact_id: 'art_2',
503
- upload_url: 'https://upload',
504
- form_data: [],
505
- },
498
+ adapter['uploader'].getArtifactUploadUrl = jest
499
+ .fn()
500
+ .mockResolvedValue({
501
+ response: { artifact_id: 'art_2', upload_url: 'https://upload', form_data: [] },
506
502
  });
507
503
  adapter['uploader'].streamArtifact = jest
508
504
  .fn()
@@ -523,12 +519,10 @@ describe(worker_adapter_1.WorkerAdapter.name, () => {
523
519
  const mockStream = jest.fn().mockResolvedValue({
524
520
  httpStream: createMockHttpStream({}),
525
521
  });
526
- adapter['uploader'].getArtifactUploadUrl = jest.fn().mockResolvedValue({
527
- response: {
528
- artifact_id: 'art_3',
529
- upload_url: 'https://upload',
530
- form_data: [],
531
- },
522
+ adapter['uploader'].getArtifactUploadUrl = jest
523
+ .fn()
524
+ .mockResolvedValue({
525
+ response: { artifact_id: 'art_3', upload_url: 'https://upload', form_data: [] },
532
526
  });
533
527
  adapter['uploader'].streamArtifact = jest
534
528
  .fn()
@@ -631,159 +625,5 @@ describe(worker_adapter_1.WorkerAdapter.name, () => {
631
625
  });
632
626
  expect(counter.counter).toBe(1);
633
627
  });
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
- });
788
628
  });
789
629
  });
@@ -1,9 +1,7 @@
1
1
  import { AdapterState, StateInterface } from './state.interfaces';
2
- import { ExtractionScope } from '../types/workers';
3
2
  export declare function createAdapterState<ConnectorState>({ event, initialState, initialDomainMapping, options, }: StateInterface<ConnectorState>): Promise<State<ConnectorState>>;
4
3
  export declare class State<ConnectorState> {
5
4
  private _state;
6
- private _extractionScope;
7
5
  private initialSdkState;
8
6
  private workerUrl;
9
7
  private devrevToken;
@@ -12,7 +10,6 @@ export declare class State<ConnectorState> {
12
10
  constructor({ event, initialState }: StateInterface<ConnectorState>);
13
11
  get state(): AdapterState<ConnectorState>;
14
12
  set state(value: AdapterState<ConnectorState>);
15
- get extractionScope(): ExtractionScope;
16
13
  /**
17
14
  * Initializes the state for this adapter instance by fetching from API
18
15
  * or creating an initial state if none exists (404).
@@ -28,9 +25,6 @@ export declare class State<ConnectorState> {
28
25
  * Fetches the state of the adapter from API.
29
26
  * @return The raw state data from API
30
27
  */
31
- fetchState(): Promise<{
32
- state: string;
33
- objects?: string;
34
- }>;
28
+ fetchState(): Promise<string>;
35
29
  }
36
30
  //# 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;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"}
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"}
@@ -65,7 +65,6 @@ async function createAdapterState({ event, initialState, initialDomainMapping, o
65
65
  }
66
66
  class State {
67
67
  constructor({ event, initialState }) {
68
- this._extractionScope = {};
69
68
  this.initialSdkState =
70
69
  event.payload.event_context.mode === common_1.SyncMode.LOADING
71
70
  ? state_interfaces_1.loadingSdkState
@@ -82,9 +81,6 @@ class State {
82
81
  set state(value) {
83
82
  this._state = value;
84
83
  }
85
- get extractionScope() {
86
- return this._extractionScope;
87
- }
88
84
  /**
89
85
  * Initializes the state for this adapter instance by fetching from API
90
86
  * or creating an initial state if none exists (404).
@@ -93,7 +89,7 @@ class State {
93
89
  async init(initialState) {
94
90
  var _a;
95
91
  try {
96
- const { state: stringifiedState, objects } = await this.fetchState();
92
+ const stringifiedState = await this.fetchState();
97
93
  if (!stringifiedState) {
98
94
  throw new Error('No state found in response.');
99
95
  }
@@ -106,14 +102,6 @@ class State {
106
102
  }
107
103
  this.state = parsedState;
108
104
  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
- }
117
105
  }
118
106
  catch (error) {
119
107
  if (axios_1.default.isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
@@ -182,7 +170,7 @@ class State {
182
170
  * @return The raw state data from API
183
171
  */
184
172
  async fetchState() {
185
- var _a, _b;
173
+ var _a;
186
174
  console.log(`Fetching state with sync unit id ${this.syncUnitId} and request id ${this.requestId}.`);
187
175
  const url = this.workerUrl + '.get';
188
176
  const response = await axios_client_internal_1.axiosClient.get(url, {
@@ -194,10 +182,7 @@ class State {
194
182
  request_id: this.requestId,
195
183
  },
196
184
  });
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
- };
185
+ return (_a = response.data) === null || _a === void 0 ? void 0 : _a.state;
201
186
  }
202
187
  }
203
188
  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({ state: 'invalid-json' });
66
+ fetchStateSpy.mockResolvedValue('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({ state: null });
81
+ fetchStateSpy.mockResolvedValue(null);
82
82
  jest.spyOn(console, 'error').mockImplementation(() => { });
83
83
  // Act & Assert
84
84
  await expect((0, state_1.createAdapterState)({
@@ -159,11 +159,9 @@ describe(state_1.State.name, () => {
159
159
  const event = (0, test_helpers_1.createEvent)({
160
160
  eventType: eventType,
161
161
  });
162
- fetchStateSpy.mockResolvedValue({
163
- state: JSON.stringify({
164
- test: 'test',
165
- }),
166
- });
162
+ fetchStateSpy.mockResolvedValue(JSON.stringify({
163
+ test: 'test',
164
+ }));
167
165
  jest.spyOn(console, 'log').mockImplementation(() => { });
168
166
  jest.spyOn(console, 'error').mockImplementation(() => { });
169
167
  // Act & Assert
@@ -186,7 +184,7 @@ describe(state_1.State.name, () => {
186
184
  test: 'test',
187
185
  snapInVersionId: '1.0.0',
188
186
  });
189
- fetchStateSpy.mockResolvedValue({ state: stringifiedState });
187
+ fetchStateSpy.mockResolvedValue(stringifiedState);
190
188
  jest.spyOn(console, 'log').mockImplementation(() => { });
191
189
  // Act & Assert
192
190
  await (0, state_1.createAdapterState)({
@@ -209,7 +207,7 @@ describe(state_1.State.name, () => {
209
207
  test: 'test',
210
208
  snapInVersionId: '1.0.0',
211
209
  });
212
- fetchStateSpy.mockResolvedValue({ state: stringifiedState });
210
+ fetchStateSpy.mockResolvedValue(stringifiedState);
213
211
  installInitialDomainMappingSpy.mockResolvedValue({
214
212
  success: true,
215
213
  });
@@ -223,70 +221,4 @@ describe(state_1.State.name, () => {
223
221
  // Assert
224
222
  expect(installInitialDomainMappingSpy).toHaveBeenCalled();
225
223
  });
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
- });
292
224
  });
@@ -1,5 +1,5 @@
1
1
  export { AdapterUpdateParams, ErrorLevel, ErrorRecord, InitialDomainMapping, LogRecord, SyncMode, } from './common';
2
- export { AirdropEvent, AirdropMessage, ConnectionData, DomainObjectState, EventContextIn, EventContextOut, EventContext, EventData, EventType, ExternalProcessAttachmentFunction, ExternalSyncUnit, ExternalSystemAttachmentIteratorFunction, ExternalSystemAttachmentReducerFunction, ExternalSystemAttachmentStreamingFunction, ExternalSystemAttachmentStreamingParams, ExternalSystemAttachmentStreamingResponse, ExtractionMode, ExtractorEvent, ExtractorEventType, ProcessAttachmentReturnType, } from './extraction';
2
+ export { AirdropEvent, AirdropMessage, ConnectionData, DomainObjectState, EventContextIn, EventContextOut, 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,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"}
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"}
@@ -18,13 +18,6 @@ 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
- }>;
28
21
  /**
29
22
  * WorkerAdapterOptions represents the options for WorkerAdapter class.
30
23
  * @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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrev/ts-adaas",
3
- "version": "1.17.1-beta.2",
3
+ "version": "1.17.1-beta.4",
4
4
  "description": "Typescript library containing the ADaaS(AirDrop as a Service) control protocol.",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",
@@ -38,6 +38,7 @@
38
38
  "eslint": "9.32.0",
39
39
  "eslint-config-prettier": "^9.1.2",
40
40
  "eslint-plugin-prettier": "4.0.0",
41
+ "express": "^5.2.1",
41
42
  "jest": "^29.7.0",
42
43
  "jiti": "^2.6.1",
43
44
  "prettier": "^2.8.3",
@@ -54,9 +55,6 @@
54
55
  "ts-node": "^10.9.2",
55
56
  "yargs": "^17.7.2"
56
57
  },
57
- "peerDependencies": {
58
- "express": "^5.0.0"
59
- },
60
58
  "files": [
61
59
  "dist/**/*",
62
60
  "!dist/tests/**/*"
@@ -1,80 +0,0 @@
1
- import { RequestInfo, RouteConfig } from './mock-server.interfaces';
2
- /**
3
- * MockServer used in tests to mock internal AirSync endpoints.
4
- * This is a simple mock server that listens on a port and responds to requests.
5
- * Supports per-test route configuration to simulate different response scenarios.
6
- */
7
- export declare class MockServer {
8
- private app;
9
- private server;
10
- private internalPort;
11
- port: number;
12
- baseUrl: string;
13
- private routeHandlers;
14
- private requests;
15
- private requestCounts;
16
- constructor(port?: number);
17
- start(): Promise<void>;
18
- stop(): Promise<void>;
19
- /**
20
- * Sets up routes for the mock server.
21
- */
22
- private setupRoutes;
23
- /**
24
- * Creates a route handler that checks for custom handlers before using the default.
25
- * @param method - The HTTP method
26
- * @param path - The route path
27
- * @returns A route handler function
28
- */
29
- private routeHandler;
30
- /**
31
- * Default route handler for the mock server. Returns { success: true } for
32
- * routes that are not explicitly set.
33
- * @param req - The request object
34
- * @param res - The response object
35
- * @returns void
36
- */
37
- private defaultRouteHandler;
38
- /**
39
- * Gets the route key for a given method and path.
40
- * @param method - The HTTP method
41
- * @param path - The route path
42
- * @returns The route key in the format 'METHOD:path'
43
- */
44
- private getRouteKey;
45
- /**
46
- * Configures a route to return a specific status code and optional response body.
47
- * @param config - The route configuration object
48
- * @param config.path - The path of the route (e.g., '/callback_url')
49
- * @param config.method - The HTTP method (e.g., 'GET', 'POST')
50
- * @param config.status - The HTTP status code to return (e.g., 200, 401, 500)
51
- * @param config.body - Optional response body to send as JSON
52
- * @param config.retry - Optional retry configuration for simulating failures before success
53
- */
54
- setRoute(config: RouteConfig): void;
55
- /**
56
- * Resets all custom route handlers, restoring all default handlers.
57
- * Also clears request tracking data.
58
- */
59
- resetRoutes(): void;
60
- /**
61
- * Returns the most recent request or undefined if no requests exist.
62
- * @returns The last RequestInfo object or undefined
63
- */
64
- getLastRequest(): RequestInfo | undefined;
65
- /**
66
- * Gets the number of requests made to a specific endpoint.
67
- * @param method - The HTTP method (e.g., 'GET', 'POST')
68
- * @param path - The route path (e.g., '/test-endpoint', '/callback_url')
69
- * @returns The number of requests made to the endpoint
70
- */
71
- getRequestCount(method: string, path: string): number;
72
- /**
73
- * Gets all requests made to a specific endpoint.
74
- * @param method - The HTTP method (e.g., 'GET', 'POST')
75
- * @param path - The route path (e.g., '/test-endpoint', '/callback_url')
76
- * @returns An array of RequestInfo objects for the endpoint
77
- */
78
- getRequests(method: string, path: string): RequestInfo[];
79
- }
80
- //# sourceMappingURL=mock-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-server.d.ts","sourceRoot":"","sources":["../../src/mock-server/mock-server.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,WAAW,EACX,WAAW,EAGZ,MAAM,0BAA0B,CAAC;AAElC;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAA4B;gBAErC,IAAI,GAAE,MAAiC;IAetC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBlC;;OAEG;IACH,OAAO,CAAC,WAAW;IAsDnB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;;;;OAQG;IACI,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IA2E1C;;;OAGG;IACI,WAAW,IAAI,IAAI;IAM1B;;;OAGG;IACI,cAAc,IAAI,WAAW,GAAG,SAAS;IAOhD;;;;;OAKG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI5D;;;;;OAKG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;CAShE"}
@@ -1,57 +0,0 @@
1
- import type { Request, Response } from 'express';
2
- export declare const DEFAULT_MOCK_SERVER_PORT = 3001;
3
- /**
4
- * Configuration for retry simulation behavior.
5
- */
6
- export interface RetryConfig {
7
- /** Number of times to return error before succeeding (default: 4) */
8
- failureCount?: number;
9
- /** 5xx status code to return during failures (default: 500) */
10
- errorStatus?: number;
11
- /** Optional error response body to send as JSON during failures */
12
- errorBody?: unknown;
13
- /** Optional headers to send with the error response */
14
- headers?: Record<string, string>;
15
- /** Optional delay in milliseconds before sending each failure response */
16
- delay?: number;
17
- }
18
- /**
19
- * Configuration object for setting up a route response.
20
- */
21
- export interface RouteConfig {
22
- /** The path of the route (e.g., '/callback_url', '/worker_data_url.get') */
23
- path: string;
24
- /** The HTTP method (e.g., 'GET', 'POST', 'PUT', 'DELETE') */
25
- method: string;
26
- /** The HTTP status code to return (e.g., 200, 401, 500) */
27
- status: number;
28
- /** Optional response body to send as JSON */
29
- body?: unknown;
30
- /** Optional headers to send with the response */
31
- headers?: Record<string, string>;
32
- /** Optional retry configuration for simulating failures before success */
33
- retry?: RetryConfig;
34
- /** Optional delay in milliseconds before sending the response */
35
- delay?: number;
36
- }
37
- /**
38
- * Type for custom route handler functions.
39
- */
40
- export type RouteHandler = (req: Request, res: Response) => unknown;
41
- /**
42
- * Information about a request received by the mock server.
43
- */
44
- export interface RequestInfo {
45
- /** The HTTP method (e.g., 'GET', 'POST') */
46
- method: string;
47
- /** The full URL path of the request */
48
- url: string;
49
- /** Optional request body (for POST/PUT requests) */
50
- body?: unknown;
51
- }
52
- export type RouteHandlers = Map<string, RouteHandler>;
53
- /**
54
- * Type for tracking request counts per route.
55
- */
56
- export type RequestCounts = Map<string, number>;
57
- //# sourceMappingURL=mock-server.interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-server.interfaces.d.ts","sourceRoot":"","sources":["../../src/mock-server/mock-server.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_MOCK_SERVER_PORT = void 0;
4
- exports.DEFAULT_MOCK_SERVER_PORT = 3001;
@@ -1,271 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MockServer = void 0;
4
- const mock_server_interfaces_1 = require("./mock-server.interfaces");
5
- /**
6
- * MockServer used in tests to mock internal AirSync endpoints.
7
- * This is a simple mock server that listens on a port and responds to requests.
8
- * Supports per-test route configuration to simulate different response scenarios.
9
- */
10
- class MockServer {
11
- constructor(port = mock_server_interfaces_1.DEFAULT_MOCK_SERVER_PORT) {
12
- this.server = null;
13
- this.routeHandlers = new Map();
14
- this.requests = [];
15
- this.requestCounts = new Map();
16
- // Lazy-load express so that importing MockServer doesn't require express at module load time.
17
- // This allows the SDK to be used in production (Lambda) without express installed.
18
- // eslint-disable-next-line @typescript-eslint/no-var-requires
19
- const express = require('express');
20
- this.internalPort = port;
21
- this.port = port;
22
- this.baseUrl = `http://localhost:${this.port}`;
23
- this.app = express();
24
- // Increase limit to handle size limit tests that send large artifact arrays
25
- this.app.use(express.json({ limit: '10mb' }));
26
- this.setupRoutes();
27
- }
28
- async start() {
29
- return new Promise((resolve) => {
30
- this.server = this.app.listen(this.internalPort, () => {
31
- var _a, _b;
32
- // Get the actual port assigned by the OS (important for port 0 = dynamic allocation)
33
- const actualPort = (_b = (_a = this.server) === null || _a === void 0 ? void 0 : _a.address()) === null || _b === void 0 ? void 0 : _b.port;
34
- if (actualPort) {
35
- this.port = actualPort;
36
- this.baseUrl = `http://localhost:${this.port}`;
37
- }
38
- console.log(`Mock server running on http://localhost:${this.port}.`);
39
- resolve();
40
- });
41
- });
42
- }
43
- async stop() {
44
- if (!this.server) {
45
- return Promise.resolve();
46
- }
47
- return new Promise((resolve, reject) => {
48
- this.server.close((err) => {
49
- if (err) {
50
- reject(err);
51
- }
52
- else {
53
- console.log('Mock server stopped.');
54
- this.server = null;
55
- resolve();
56
- }
57
- });
58
- });
59
- }
60
- /**
61
- * Sets up routes for the mock server.
62
- */
63
- setupRoutes() {
64
- // TEST ENDPOINT
65
- this.app.get('/test-endpoint', this.routeHandler('GET', '/test-endpoint'));
66
- // CALLBACK URL
67
- this.app.post('/callback_url', this.routeHandler('POST', '/callback_url'));
68
- // WORKER DATA URL
69
- this.app.post('/worker_data_url', this.routeHandler('POST', '/worker_data_url'));
70
- this.app.get('/worker_data_url.get', this.routeHandler('GET', '/worker_data_url.get'));
71
- this.app.post('/worker_data_url.update', this.routeHandler('POST', '/worker_data_url.update'));
72
- // SNAP-INS URL
73
- this.app.get('/internal/snap-ins.get', this.routeHandler('GET', '/internal/snap-ins.get'));
74
- // AIRDROP RECIPE INITIAL DOMAIN MAPPINGS INSTALL URL
75
- this.app.post('/internal/airdrop.recipe.initial-domain-mappings.install', this.routeHandler('POST', '/internal/airdrop.recipe.initial-domain-mappings.install'));
76
- // ARTIFACTS URL
77
- this.app.get('/internal/airdrop.artifacts.upload-url', this.routeHandler('GET', '/internal/airdrop.artifacts.upload-url'));
78
- this.app.post('/internal/airdrop.artifacts.confirm-upload', this.routeHandler('POST', '/internal/airdrop.artifacts.confirm-upload'));
79
- // FILE UPLOAD URL
80
- this.app.post('/file-upload-url', this.routeHandler('POST', '/file-upload-url'));
81
- }
82
- /**
83
- * Creates a route handler that checks for custom handlers before using the default.
84
- * @param method - The HTTP method
85
- * @param path - The route path
86
- * @returns A route handler function
87
- */
88
- routeHandler(method, path) {
89
- return (req, res) => {
90
- const requestInfo = Object.assign({ method: req.method, url: req.url || req.path }, (req.body !== undefined && req.body !== null
91
- ? { body: req.body }
92
- : {}));
93
- this.requests.push(requestInfo);
94
- const key = `${method}:${path}`;
95
- const customHandler = this.routeHandlers.get(key);
96
- if (customHandler) {
97
- customHandler(req, res);
98
- }
99
- else {
100
- this.defaultRouteHandler(req, res);
101
- }
102
- };
103
- }
104
- /**
105
- * Default route handler for the mock server. Returns { success: true } for
106
- * routes that are not explicitly set.
107
- * @param req - The request object
108
- * @param res - The response object
109
- * @returns void
110
- */
111
- defaultRouteHandler(req, res) {
112
- if (req.method === 'GET' && req.path === '/worker_data_url.get') {
113
- res.status(200).json({
114
- state: JSON.stringify({}),
115
- });
116
- }
117
- else if (req.method === 'GET' && req.path === '/internal/snap-ins.get') {
118
- res.status(200).json({
119
- snap_in: {
120
- imports: [{ name: 'test_import_slug' }],
121
- snap_in_version: { slug: 'test_snap_in_slug' },
122
- },
123
- });
124
- }
125
- else if (req.method === 'GET' &&
126
- req.path === '/internal/airdrop.artifacts.upload-url') {
127
- // Generate a unique artifact ID for each request
128
- const artifactId = `artifact-${Date.now()}-${Math.random()
129
- .toString(36)
130
- .substr(2, 9)}`;
131
- res.status(200).json({
132
- upload_url: `${this.baseUrl}/file-upload-url`,
133
- artifact_id: artifactId,
134
- form_data: [], // Empty form_data for local development
135
- });
136
- }
137
- else {
138
- res.status(200).json({ success: true });
139
- }
140
- }
141
- /**
142
- * Gets the route key for a given method and path.
143
- * @param method - The HTTP method
144
- * @param path - The route path
145
- * @returns The route key in the format 'METHOD:path'
146
- */
147
- getRouteKey(method, path) {
148
- return `${method.toUpperCase()}:${path}`;
149
- }
150
- /**
151
- * Configures a route to return a specific status code and optional response body.
152
- * @param config - The route configuration object
153
- * @param config.path - The path of the route (e.g., '/callback_url')
154
- * @param config.method - The HTTP method (e.g., 'GET', 'POST')
155
- * @param config.status - The HTTP status code to return (e.g., 200, 401, 500)
156
- * @param config.body - Optional response body to send as JSON
157
- * @param config.retry - Optional retry configuration for simulating failures before success
158
- */
159
- setRoute(config) {
160
- const { path, method, status, body, retry, headers, delay } = config;
161
- const key = this.getRouteKey(method, path);
162
- // Reset request count for this route if retry is configured
163
- // This ensures a clean state each time setRoute is called
164
- if (retry) {
165
- this.requestCounts.set(key, 0);
166
- }
167
- this.routeHandlers.set(key, (req, res) => {
168
- const sendResponse = (responseDelay) => {
169
- const send = () => {
170
- var _a, _b;
171
- if (retry) {
172
- const currentCount = this.requestCounts.get(key) || 0;
173
- const failureCount = (_a = retry.failureCount) !== null && _a !== void 0 ? _a : 4;
174
- const errorStatus = (_b = retry.errorStatus) !== null && _b !== void 0 ? _b : 500;
175
- if (currentCount < failureCount) {
176
- this.requestCounts.set(key, currentCount + 1);
177
- const sendFailure = () => {
178
- if (retry.headers) {
179
- res.set(retry.headers);
180
- }
181
- if (retry.errorBody !== undefined) {
182
- res.status(errorStatus).json(retry.errorBody);
183
- }
184
- else {
185
- res.status(errorStatus).send();
186
- }
187
- };
188
- if (retry.delay) {
189
- setTimeout(sendFailure, retry.delay);
190
- }
191
- else {
192
- sendFailure();
193
- }
194
- }
195
- else {
196
- this.requestCounts.set(key, currentCount + 1);
197
- if (headers) {
198
- res.set(headers);
199
- }
200
- if (body !== undefined) {
201
- res.status(status).json(body);
202
- }
203
- else {
204
- this.defaultRouteHandler(req, res);
205
- }
206
- }
207
- }
208
- else {
209
- if (headers) {
210
- res.set(headers);
211
- }
212
- if (body !== undefined) {
213
- res.status(status).json(body);
214
- }
215
- else {
216
- res.status(status).send();
217
- }
218
- }
219
- };
220
- if (responseDelay) {
221
- setTimeout(send, responseDelay);
222
- }
223
- else {
224
- send();
225
- }
226
- };
227
- sendResponse(delay);
228
- });
229
- }
230
- /**
231
- * Resets all custom route handlers, restoring all default handlers.
232
- * Also clears request tracking data.
233
- */
234
- resetRoutes() {
235
- this.routeHandlers.clear();
236
- this.requestCounts.clear();
237
- this.requests = [];
238
- }
239
- /**
240
- * Returns the most recent request or undefined if no requests exist.
241
- * @returns The last RequestInfo object or undefined
242
- */
243
- getLastRequest() {
244
- if (this.requests.length === 0) {
245
- return undefined;
246
- }
247
- return this.requests[this.requests.length - 1];
248
- }
249
- /**
250
- * Gets the number of requests made to a specific endpoint.
251
- * @param method - The HTTP method (e.g., 'GET', 'POST')
252
- * @param path - The route path (e.g., '/test-endpoint', '/callback_url')
253
- * @returns The number of requests made to the endpoint
254
- */
255
- getRequestCount(method, path) {
256
- return this.getRequests(method, path).length;
257
- }
258
- /**
259
- * Gets all requests made to a specific endpoint.
260
- * @param method - The HTTP method (e.g., 'GET', 'POST')
261
- * @param path - The route path (e.g., '/test-endpoint', '/callback_url')
262
- * @returns An array of RequestInfo objects for the endpoint
263
- */
264
- getRequests(method, path) {
265
- // Remove query parameters for comparison
266
- const pathWithoutQuery = path.split('?')[0];
267
- return this.requests.filter((req) => req.method.toUpperCase() === method.toUpperCase() &&
268
- req.url.split('?')[0] === pathWithoutQuery);
269
- }
270
- }
271
- exports.MockServer = MockServer;