@devrev/airsync-sdk 2.0.0-beta.1 → 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 (191) hide show
  1. package/README.md +0 -4
  2. package/dist/airsync-sdk.d.ts +2059 -0
  3. package/dist/attachments-streaming/attachments-streaming-pool.d.ts +2 -1
  4. package/dist/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
  5. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts +8 -2
  6. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts.map +1 -1
  7. package/dist/attachments-streaming/attachments-streaming-pool.js +27 -16
  8. package/dist/attachments-streaming/attachments-streaming-pool.test.js +246 -27
  9. package/dist/common/constants.d.ts +16 -5
  10. package/dist/common/constants.d.ts.map +1 -1
  11. package/dist/common/constants.js +20 -6
  12. package/dist/common/control-protocol.d.ts +2 -2
  13. package/dist/common/control-protocol.d.ts.map +1 -1
  14. package/dist/common/control-protocol.js +1 -5
  15. package/dist/common/helpers.d.ts +8 -0
  16. package/dist/common/helpers.d.ts.map +1 -1
  17. package/dist/common/helpers.js +15 -0
  18. package/dist/common/install-initial-domain-mapping.d.ts +2 -2
  19. package/dist/common/install-initial-domain-mapping.test.js +5 -2
  20. package/dist/common/test-utils.d.ts +19 -0
  21. package/dist/common/test-utils.d.ts.map +1 -0
  22. package/dist/common/test-utils.js +101 -0
  23. package/dist/common/time-value-resolver.d.ts +47 -0
  24. package/dist/common/time-value-resolver.d.ts.map +1 -0
  25. package/dist/common/time-value-resolver.js +141 -0
  26. package/dist/common/time-value-resolver.test.d.ts +2 -0
  27. package/dist/common/time-value-resolver.test.d.ts.map +1 -0
  28. package/dist/common/time-value-resolver.test.js +268 -0
  29. package/dist/http/axios-client-internal.d.ts.map +1 -1
  30. package/dist/http/axios-client-internal.js +7 -0
  31. package/dist/http/axios-client-internal.test.js +21 -0
  32. package/dist/http/axios-client.d.ts.map +1 -1
  33. package/dist/http/axios-client.js +6 -3
  34. package/dist/http/index.d.ts +0 -1
  35. package/dist/http/index.d.ts.map +1 -1
  36. package/dist/http/index.js +0 -1
  37. package/dist/index.d.ts +12 -10
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +18 -13
  40. package/dist/logger/logger.d.ts +1 -17
  41. package/dist/logger/logger.d.ts.map +1 -1
  42. package/dist/logger/logger.interfaces.d.ts +2 -2
  43. package/dist/logger/logger.js +35 -27
  44. package/dist/logger/logger.test.js +66 -19
  45. package/dist/mappers/mappers.interface.d.ts +5 -5
  46. package/dist/mappers/mappers.interface.js +3 -3
  47. package/dist/mappers/mappers.test.js +8 -10
  48. package/dist/mock-server/mock-server.d.ts +47 -0
  49. package/dist/mock-server/mock-server.d.ts.map +1 -0
  50. package/dist/mock-server/mock-server.interfaces.d.ts +73 -0
  51. package/dist/mock-server/mock-server.interfaces.d.ts.map +1 -0
  52. package/dist/mock-server/mock-server.interfaces.js +4 -0
  53. package/dist/mock-server/mock-server.js +278 -0
  54. package/dist/multithreading/adapters/base-adapter.d.ts +56 -0
  55. package/dist/multithreading/adapters/base-adapter.d.ts.map +1 -0
  56. package/dist/multithreading/adapters/base-adapter.emit.test.d.ts +2 -0
  57. package/dist/multithreading/adapters/base-adapter.emit.test.d.ts.map +1 -0
  58. package/dist/multithreading/adapters/base-adapter.emit.test.js +403 -0
  59. package/dist/multithreading/adapters/base-adapter.js +105 -0
  60. package/dist/multithreading/adapters/extraction-adapter.artifacts.test.d.ts +2 -0
  61. package/dist/multithreading/adapters/extraction-adapter.artifacts.test.d.ts.map +1 -0
  62. package/dist/multithreading/{worker-adapter/worker-adapter.artifacts.test.js → adapters/extraction-adapter.artifacts.test.js} +53 -5
  63. package/dist/multithreading/adapters/extraction-adapter.d.ts +58 -0
  64. package/dist/multithreading/adapters/extraction-adapter.d.ts.map +1 -0
  65. package/dist/multithreading/adapters/extraction-adapter.js +325 -0
  66. package/dist/multithreading/adapters/extraction-adapter.test.d.ts +2 -0
  67. package/dist/multithreading/adapters/extraction-adapter.test.d.ts.map +1 -0
  68. package/dist/multithreading/adapters/extraction-adapter.test.js +789 -0
  69. package/dist/multithreading/adapters/loading-adapter.d.ts +44 -0
  70. package/dist/multithreading/adapters/loading-adapter.d.ts.map +1 -0
  71. package/dist/multithreading/{worker-adapter/worker-adapter.helpers.d.ts → adapters/loading-adapter.helpers.d.ts} +1 -1
  72. package/dist/multithreading/adapters/loading-adapter.helpers.d.ts.map +1 -0
  73. package/dist/multithreading/adapters/loading-adapter.helpers.test.d.ts +2 -0
  74. package/dist/multithreading/adapters/loading-adapter.helpers.test.d.ts.map +1 -0
  75. package/dist/multithreading/{worker-adapter/worker-adapter.helpers.test.js → adapters/loading-adapter.helpers.test.js} +26 -26
  76. package/dist/multithreading/adapters/loading-adapter.js +461 -0
  77. package/dist/multithreading/adapters/loading-adapter.test.d.ts +2 -0
  78. package/dist/multithreading/adapters/loading-adapter.test.d.ts.map +1 -0
  79. package/dist/multithreading/adapters/loading-adapter.test.js +589 -0
  80. package/dist/multithreading/adapters/serialization.test.d.ts +2 -0
  81. package/dist/multithreading/adapters/serialization.test.d.ts.map +1 -0
  82. package/dist/multithreading/adapters/serialization.test.js +71 -0
  83. package/dist/multithreading/create-worker.test.js +36 -17
  84. package/dist/multithreading/process-task.d.ts +16 -1
  85. package/dist/multithreading/process-task.d.ts.map +1 -1
  86. package/dist/multithreading/process-task.js +97 -82
  87. package/dist/multithreading/process-task.test.d.ts +2 -0
  88. package/dist/multithreading/process-task.test.d.ts.map +1 -0
  89. package/dist/multithreading/process-task.test.js +146 -0
  90. package/dist/multithreading/spawn/spawn.d.ts +3 -3
  91. package/dist/multithreading/spawn/spawn.d.ts.map +1 -1
  92. package/dist/multithreading/spawn/spawn.helpers.d.ts.map +1 -1
  93. package/dist/multithreading/spawn/spawn.helpers.js +6 -14
  94. package/dist/multithreading/spawn/spawn.helpers.test.js +8 -8
  95. package/dist/multithreading/spawn/spawn.js +20 -25
  96. package/dist/multithreading/spawn/spawn.test.d.ts +2 -0
  97. package/dist/multithreading/spawn/spawn.test.d.ts.map +1 -0
  98. package/dist/multithreading/spawn/spawn.test.js +232 -0
  99. package/dist/repo/repo.d.ts.map +1 -1
  100. package/dist/repo/repo.interfaces.d.ts +4 -2
  101. package/dist/repo/repo.interfaces.d.ts.map +1 -1
  102. package/dist/repo/repo.js +4 -3
  103. package/dist/repo/repo.test.js +60 -7
  104. package/dist/state/base-state.d.ts +75 -0
  105. package/dist/state/base-state.d.ts.map +1 -0
  106. package/dist/state/base-state.js +261 -0
  107. package/dist/state/extraction-state.d.ts +29 -0
  108. package/dist/state/extraction-state.d.ts.map +1 -0
  109. package/dist/state/extraction-state.js +122 -0
  110. package/dist/state/loading-state.d.ts +19 -0
  111. package/dist/state/loading-state.d.ts.map +1 -0
  112. package/dist/state/loading-state.js +40 -0
  113. package/dist/state/state.extract-window.test.d.ts +2 -0
  114. package/dist/state/state.extract-window.test.d.ts.map +1 -0
  115. package/dist/state/state.extract-window.test.js +163 -0
  116. package/dist/state/state.interfaces.d.ts +44 -27
  117. package/dist/state/state.interfaces.d.ts.map +1 -1
  118. package/dist/state/state.interfaces.js +18 -5
  119. package/dist/state/state.pending-boundaries.test.d.ts +2 -0
  120. package/dist/state/state.pending-boundaries.test.d.ts.map +1 -0
  121. package/dist/state/state.pending-boundaries.test.js +189 -0
  122. package/dist/state/state.post-state.test.d.ts +2 -0
  123. package/dist/state/state.post-state.test.d.ts.map +1 -0
  124. package/dist/state/state.post-state.test.js +78 -0
  125. package/dist/state/state.test.js +135 -88
  126. package/dist/state/state.time-value-resolution.test.d.ts +2 -0
  127. package/dist/state/state.time-value-resolution.test.d.ts.map +1 -0
  128. package/dist/state/state.time-value-resolution.test.js +175 -0
  129. package/dist/tsdoc-metadata.json +11 -0
  130. package/dist/types/common.d.ts +0 -25
  131. package/dist/types/common.d.ts.map +1 -1
  132. package/dist/types/common.js +1 -11
  133. package/dist/types/external-domain-metadata.d.ts +20 -1
  134. package/dist/types/external-domain-metadata.d.ts.map +1 -1
  135. package/dist/types/extraction.d.ts +92 -221
  136. package/dist/types/extraction.d.ts.map +1 -1
  137. package/dist/types/extraction.js +56 -124
  138. package/dist/types/extraction.test.js +69 -43
  139. package/dist/types/index.d.ts +3 -3
  140. package/dist/types/index.d.ts.map +1 -1
  141. package/dist/types/index.js +6 -3
  142. package/dist/types/loading.d.ts +4 -24
  143. package/dist/types/loading.d.ts.map +1 -1
  144. package/dist/types/loading.js +1 -22
  145. package/dist/types/workers.d.ts +47 -29
  146. package/dist/types/workers.d.ts.map +1 -1
  147. package/dist/types/workers.js +1 -0
  148. package/dist/uploader/uploader.d.ts +1 -0
  149. package/dist/uploader/uploader.d.ts.map +1 -1
  150. package/dist/uploader/uploader.helpers.test.js +0 -11
  151. package/dist/uploader/uploader.interfaces.d.ts +3 -3
  152. package/dist/uploader/uploader.js +53 -20
  153. package/dist/uploader/uploader.test.js +22 -10
  154. package/package.json +10 -13
  155. package/dist/common/event-type-translation.d.ts +0 -24
  156. package/dist/common/event-type-translation.d.ts.map +0 -1
  157. package/dist/common/event-type-translation.js +0 -117
  158. package/dist/deprecated/adapter/index.d.ts +0 -62
  159. package/dist/deprecated/adapter/index.d.ts.map +0 -1
  160. package/dist/deprecated/adapter/index.js +0 -151
  161. package/dist/deprecated/common/helpers.d.ts +0 -7
  162. package/dist/deprecated/common/helpers.d.ts.map +0 -1
  163. package/dist/deprecated/common/helpers.js +0 -47
  164. package/dist/deprecated/demo-extractor/external_domain_metadata.json +0 -38
  165. package/dist/deprecated/demo-extractor/index.d.ts +0 -18
  166. package/dist/deprecated/demo-extractor/index.d.ts.map +0 -1
  167. package/dist/deprecated/demo-extractor/index.js +0 -161
  168. package/dist/deprecated/http/client.d.ts +0 -22
  169. package/dist/deprecated/http/client.d.ts.map +0 -1
  170. package/dist/deprecated/http/client.js +0 -161
  171. package/dist/deprecated/uploader/index.d.ts +0 -35
  172. package/dist/deprecated/uploader/index.d.ts.map +0 -1
  173. package/dist/deprecated/uploader/index.js +0 -161
  174. package/dist/http/types.d.ts +0 -17
  175. package/dist/http/types.d.ts.map +0 -1
  176. package/dist/http/types.js +0 -2
  177. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts +0 -2
  178. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts.map +0 -1
  179. package/dist/multithreading/worker-adapter/worker-adapter.d.ts +0 -91
  180. package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +0 -1
  181. package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +0 -1
  182. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts +0 -2
  183. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts.map +0 -1
  184. package/dist/multithreading/worker-adapter/worker-adapter.js +0 -745
  185. package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts +0 -2
  186. package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts.map +0 -1
  187. package/dist/multithreading/worker-adapter/worker-adapter.test.js +0 -483
  188. package/dist/state/state.d.ts +0 -30
  189. package/dist/state/state.d.ts.map +0 -1
  190. package/dist/state/state.js +0 -166
  191. /package/dist/multithreading/{worker-adapter/worker-adapter.helpers.js → adapters/loading-adapter.helpers.js} +0 -0
@@ -1,23 +1,31 @@
1
1
  import { Worker } from 'worker_threads';
2
2
  import type { LogLevel } from '../logger/logger.interfaces';
3
- import { State } from '../state/state';
4
- import { WorkerAdapter } from '../multithreading/worker-adapter/worker-adapter';
5
- import { AirdropEvent, EventType, ExtractorEventType } from './extraction';
3
+ import { BaseState } from '../state/base-state';
4
+ import { BaseSdkState } from '../state/state.interfaces';
5
+ import { BaseAdapter } from '../multithreading/adapters/base-adapter';
6
+ import { AirSyncEvent, EventType, ExtractorEventType } from './extraction';
6
7
  import { LoaderEventType } from './loading';
7
8
  import { InitialDomainMapping } from './common';
8
9
  /**
9
- * WorkerAdapterInterface is an interface for WorkerAdapter class.
10
+ * WorkerAdapterInterface is the constructor parameter shape for an adapter.
10
11
  * @interface WorkerAdapterInterface
11
12
  * @constructor
12
- * @param {AirdropEvent} event - The event object received from the platform
13
- * @param {object=} initialState - The initial state of the adapter
14
- * @param {WorkerAdapterInterface} options - The options to create a new instance of WorkerAdapter class
13
+ * @param {AirSyncEvent} event - The event object received from the platform
14
+ * @param {BaseState} adapterState - The state instance for the adapter
15
+ * @param {WorkerAdapterOptions} options - The options to create a new adapter
15
16
  */
16
- export interface WorkerAdapterInterface<ConnectorState> {
17
- event: AirdropEvent;
18
- adapterState: State<ConnectorState>;
17
+ export interface WorkerAdapterInterface<ConnectorState, StateClass extends BaseState<ConnectorState, BaseSdkState>> {
18
+ event: AirSyncEvent;
19
+ adapterState: StateClass;
19
20
  options?: WorkerAdapterOptions;
20
21
  }
22
+ /**
23
+ * ExtractionScope represents the parsed extraction scope from the platform.
24
+ * Each key is an item type name, and the value indicates whether it should be extracted.
25
+ */
26
+ export type ExtractionScope = Record<string, {
27
+ extract: boolean;
28
+ }>;
21
29
  /**
22
30
  * WorkerAdapterOptions represents the options for WorkerAdapter class.
23
31
  * @interface WorkerAdapterOptions
@@ -32,16 +40,17 @@ export interface WorkerAdapterOptions {
32
40
  timeout?: number;
33
41
  batchSize?: number;
34
42
  workerPathOverrides?: WorkerPathOverrides;
43
+ skipConfirmation?: boolean;
35
44
  }
36
45
  /**
37
46
  * SpawnInterface is an interface for Spawn class.
38
47
  * @interface SpawnInterface
39
48
  * @constructor
40
- * @param {AirdropEvent} event - The event object received from the platform
49
+ * @param {AirSyncEvent} event - The event object received from the platform
41
50
  * @param {Worker} worker - The worker thread
42
51
  */
43
52
  export interface SpawnInterface {
44
- event: AirdropEvent;
53
+ event: AirSyncEvent;
45
54
  worker: Worker;
46
55
  options?: WorkerAdapterOptions;
47
56
  resolve: (value: void | PromiseLike<void>) => void;
@@ -54,41 +63,38 @@ export interface SpawnInterface {
54
63
  * In case of lambda timeout, the class emits a lambda timeout event to the platform.
55
64
  * @interface SpawnFactoryInterface
56
65
  * @constructor
57
- * @param {AirdropEvent} event - The event object received from the platform
66
+ * @param {AirSyncEvent} event - The event object received from the platform
58
67
  * @param {object=} initialState - The initial state of the adapter
59
- * @param {string} workerPath - The path to the worker file
60
68
  * @param {string} initialDomainMapping - The initial domain mapping
61
69
  * @param {WorkerAdapterOptions} options - The options to create a new instance of Spawn class
62
70
  * @param {string=} baseWorkerPath - The base path for the worker files, usually `__dirname`
63
71
  */
64
72
  export interface SpawnFactoryInterface<ConnectorState> {
65
- event: AirdropEvent;
73
+ event: AirSyncEvent;
66
74
  initialState: ConnectorState;
67
- /** @deprecated Remove getWorkerPath function and use baseWorkerPath: __dirname instead of workerPath */
68
- workerPath?: string;
69
75
  options?: WorkerAdapterOptions;
70
76
  initialDomainMapping?: InitialDomainMapping;
71
77
  baseWorkerPath?: string;
72
78
  }
73
79
  /**
74
- * TaskAdapterInterface is an interface for TaskAdapter class.
80
+ * TaskAdapterInterface is the parameter shape passed to a task callback.
75
81
  * @interface TaskAdapterInterface
76
82
  * @constructor
77
- * @param {WorkerAdapter} adapter - The adapter object
83
+ * @param {BaseAdapter} adapter - The adapter object
78
84
  */
79
- export interface TaskAdapterInterface<ConnectorState> {
80
- adapter: WorkerAdapter<ConnectorState>;
85
+ export interface TaskAdapterInterface<Adapter extends BaseAdapter<unknown, BaseState<unknown, BaseSdkState>>> {
86
+ adapter: Adapter;
81
87
  }
82
88
  /**
83
- * ProcessTaskInterface is an interface for ProcessTask class.
89
+ * ProcessTaskInterface is the parameter shape for the process-task entry points.
84
90
  * @interface ProcessTaskInterface
85
91
  * @constructor
86
92
  * @param {function} task - The task to be executed, returns exit code
87
93
  * @param {function} onTimeout - The task to be executed on timeout, returns exit code
88
94
  */
89
- export interface ProcessTaskInterface<ConnectorState> {
90
- task: (params: TaskAdapterInterface<ConnectorState>) => Promise<void>;
91
- onTimeout: (params: TaskAdapterInterface<ConnectorState>) => Promise<void>;
95
+ export interface ProcessTaskInterface<Adapter extends BaseAdapter<unknown, BaseState<unknown, BaseSdkState>>> {
96
+ task: (params: TaskAdapterInterface<Adapter>) => Promise<void>;
97
+ onTimeout: (params: TaskAdapterInterface<Adapter>) => Promise<void>;
92
98
  }
93
99
  /**
94
100
  * WorkerEvent represents the standard worker events.
@@ -105,7 +111,8 @@ export declare enum WorkerEvent {
105
111
  export declare enum WorkerMessageSubject {
106
112
  WorkerMessageEmitted = "emit",
107
113
  WorkerMessageExit = "exit",
108
- WorkerMessageLog = "log"
114
+ WorkerMessageLog = "log",
115
+ WorkerMessageFailed = "failed"
109
116
  }
110
117
  /**
111
118
  * WorkerMessageEmitted interface represents the structure of the emitted worker message.
@@ -133,15 +140,26 @@ export interface WorkerMessageLog {
133
140
  isSdkLog?: boolean;
134
141
  };
135
142
  }
143
+ /**
144
+ * WorkerMessageFailed interface represents the structure of the worker failed message.
145
+ * Sent from the worker thread before calling process.exit(1) to convey the specific
146
+ * error reason to the main thread.
147
+ */
148
+ export interface WorkerMessageFailed {
149
+ subject: WorkerMessageSubject.WorkerMessageFailed;
150
+ payload: {
151
+ message: string;
152
+ };
153
+ }
136
154
  /**
137
155
  * WorkerMessage represents the structure of the worker message.
138
156
  */
139
- export type WorkerMessage = WorkerMessageEmitted | WorkerMessageExit | WorkerMessageLog;
157
+ export type WorkerMessage = WorkerMessageEmitted | WorkerMessageExit | WorkerMessageLog | WorkerMessageFailed;
140
158
  /**
141
159
  * WorkerData represents the structure of the worker data object.
142
160
  */
143
161
  export interface WorkerData<ConnectorState> {
144
- event: AirdropEvent;
162
+ event: AirSyncEvent;
145
163
  initialState: ConnectorState;
146
164
  workerPath: string;
147
165
  initialDomainMapping?: InitialDomainMapping;
@@ -151,7 +169,7 @@ export interface WorkerData<ConnectorState> {
151
169
  * GetWorkerPathInterface is an interface for getting the worker path.
152
170
  */
153
171
  export interface GetWorkerPathInterface {
154
- event: AirdropEvent;
172
+ event: AirSyncEvent;
155
173
  workerBasePath?: string | null;
156
174
  }
157
175
  /**
@@ -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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"}
@@ -19,4 +19,5 @@ var WorkerMessageSubject;
19
19
  WorkerMessageSubject["WorkerMessageEmitted"] = "emit";
20
20
  WorkerMessageSubject["WorkerMessageExit"] = "exit";
21
21
  WorkerMessageSubject["WorkerMessageLog"] = "log";
22
+ WorkerMessageSubject["WorkerMessageFailed"] = "failed";
22
23
  })(WorkerMessageSubject || (exports.WorkerMessageSubject = WorkerMessageSubject = {}));
@@ -7,6 +7,7 @@ export declare class Uploader {
7
7
  private devrevApiToken;
8
8
  private requestId;
9
9
  private defaultHeaders;
10
+ private skipConfirmation;
10
11
  constructor({ event, options }: UploaderFactoryInterface);
11
12
  /**
12
13
  * Uploads the fetched objects to the DevRev platform. Fetched objects are compressed to a gzipped jsonl object and uploaded to the platform.
@@ -1 +1 @@
1
- {"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../src/uploader/uploader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAU/D,OAAO,EAEL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,qBAAa,QAAQ;IACnB,OAAO,CAAC,kBAAkB,CAAC,CAAU;IACrC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAyB;gBAEnC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,wBAAwB;IAUxD;;;;;OAKG;IACG,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,GAChC,OAAO,CAAC,cAAc,CAAC;IA6D1B;;;;;;OAMG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAqB5C;;;;;OAKG;IACG,cAAc,CAClB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAmBzC;;;;;OAKG;IACG,cAAc,CAClB,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,aAAa,GACxB,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IA8BzC;;;;OAIG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAgCF;;;OAGG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;OAKG;IACG,4BAA4B,CAAC,EACjC,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QACV,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACrC,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7B,CAAC;IAsDF;;;;OAIG;YACW,sBAAsB;IAsBpC;;;;OAIG;YACW,gBAAgB;IAc9B;;;;;;OAMG;IACG,yBAAyB,CAAC,EAC9B,UAAU,EACV,SAAiB,GAClB,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;CA6B/C"}
1
+ {"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../src/uploader/uploader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAU/D,OAAO,EAEL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,qBAAa,QAAQ;IACnB,OAAO,CAAC,kBAAkB,CAAC,CAAU;IACrC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,gBAAgB,CAAU;gBAEtB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,wBAAwB;IAWxD;;;;;OAKG;IACG,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,GAChC,OAAO,CAAC,cAAc,CAAC;IA4E1B;;;;;;OAMG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IA2B5C;;;;;OAKG;IACG,cAAc,CAClB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAmBzC;;;;;OAKG;IACG,cAAc,CAClB,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,aAAa,GACxB,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IA8BzC;;;;OAIG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAiCF;;;OAGG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;OAKG;IACG,4BAA4B,CAAC,EACjC,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QACV,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACrC,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7B,CAAC;IA2DF;;;;OAIG;YACW,sBAAsB;IAsBpC;;;;OAIG;YACW,gBAAgB;IAc9B;;;;;;OAMG;IACG,yBAAyB,CAAC,EAC9B,UAAU,EACV,SAAiB,GAClB,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;CA6B/C"}
@@ -10,19 +10,8 @@ const zlib_1 = __importDefault(require("zlib"));
10
10
  const constants_1 = require("../common/constants");
11
11
  const uploader_helpers_1 = require("./uploader.helpers");
12
12
  describe('uploader.helpers', () => {
13
- let consoleErrorSpy;
14
- let consoleLogSpy;
15
- let consoleWarnSpy;
16
- beforeEach(() => {
17
- consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation();
18
- consoleLogSpy = jest.spyOn(console, 'log').mockImplementation();
19
- consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation();
20
- });
21
13
  afterEach(() => {
22
14
  jest.clearAllMocks();
23
- consoleErrorSpy.mockRestore();
24
- consoleLogSpy.mockRestore();
25
- consoleWarnSpy.mockRestore();
26
15
  });
27
16
  describe(uploader_helpers_1.compressGzip.name, () => {
28
17
  it('should compress a string to gzip buffer', () => {
@@ -1,9 +1,9 @@
1
1
  import { ErrorRecord } from '../types/common';
2
- import { AirdropEvent } from '../types/extraction';
2
+ import { AirSyncEvent } from '../types/extraction';
3
3
  import { ExternalSystemItem, StatsFileObject } from '../types/loading';
4
4
  import { WorkerAdapterOptions } from '../types/workers';
5
5
  export interface UploaderFactoryInterface {
6
- event: AirdropEvent;
6
+ event: AirSyncEvent;
7
7
  options?: WorkerAdapterOptions;
8
8
  }
9
9
  /**
@@ -18,7 +18,7 @@ export type UploaderResult<T> = {
18
18
  error: unknown;
19
19
  };
20
20
  /**
21
- * Artifact is an interface that defines the structure of an artifact. Artifact is a file that is generated by the extractor and uploaded to ADaaS.
21
+ * Artifact is an interface that defines the structure of an artifact. Artifact is a file that is generated by the extractor and uploaded to the AirSync platform.
22
22
  */
23
23
  export interface Artifact {
24
24
  id: string;
@@ -12,10 +12,12 @@ const logger_1 = require("../logger/logger");
12
12
  const uploader_helpers_1 = require("./uploader.helpers");
13
13
  class Uploader {
14
14
  constructor({ event, options }) {
15
+ var _a;
15
16
  this.devrevApiEndpoint = event.execution_metadata.devrev_endpoint;
16
17
  this.devrevApiToken = event.context.secrets.service_account_token;
17
18
  this.requestId = event.payload.event_context.request_id;
18
19
  this.isLocalDevelopment = options === null || options === void 0 ? void 0 : options.isLocalDevelopment;
20
+ this.skipConfirmation = (_a = options === null || options === void 0 ? void 0 : options.skipConfirmation) !== null && _a !== void 0 ? _a : false;
19
21
  this.defaultHeaders = {
20
22
  Authorization: `Bearer ${this.devrevApiToken}`,
21
23
  };
@@ -34,7 +36,10 @@ class Uploader {
34
36
  const { response: file, error: fileError } = (0, uploader_helpers_1.compressGzip)(js_jsonl_1.jsonl.stringify(fetchedObjects));
35
37
  if (fileError) {
36
38
  return {
37
- error: new Error('Error while compressing jsonl object. ' + (0, logger_1.serializeError)(fileError)),
39
+ error: {
40
+ message: 'Error while compressing jsonl object. ' +
41
+ (0, logger_1.serializeError)(fileError),
42
+ },
38
43
  };
39
44
  }
40
45
  const filename = itemType + '.jsonl.gz';
@@ -43,23 +48,35 @@ class Uploader {
43
48
  const { error: preparedArtifactError, response: preparedArtifact } = await this.getArtifactUploadUrl(filename, fileType);
44
49
  if (preparedArtifactError) {
45
50
  return {
46
- error: new Error('Error while getting artifact upload URL.'),
51
+ error: {
52
+ message: 'Error while getting artifact upload URL: ' +
53
+ (0, logger_1.serializeError)(preparedArtifactError),
54
+ },
47
55
  };
48
56
  }
49
57
  // Upload prepared artifact to the given url
50
58
  const { error: uploadItemError } = await this.uploadArtifact(preparedArtifact, file);
51
59
  if (uploadItemError) {
52
60
  return {
53
- error: new Error('Error while uploading artifact.'),
61
+ error: {
62
+ message: 'Error while uploading artifact: ' +
63
+ (0, logger_1.serializeError)(uploadItemError),
64
+ },
54
65
  };
55
66
  }
56
- // Confirm upload
57
- const { error: confirmArtifactUploadError } = await this.confirmArtifactUpload(preparedArtifact.artifact_id);
58
- if (confirmArtifactUploadError) {
59
- return {
60
- error: new Error('Error while confirming artifact upload. ' +
61
- JSON.stringify(confirmArtifactUploadError)),
62
- };
67
+ // Skip confirmation for External Sync Units, as this confirmation attachments
68
+ // uploads to the sync, which we haven't created yet when extracting External Sync Units.
69
+ if (!this.skipConfirmation) {
70
+ // Confirm upload
71
+ const { error: confirmArtifactUploadError } = await this.confirmArtifactUpload(preparedArtifact.artifact_id);
72
+ if (confirmArtifactUploadError) {
73
+ return {
74
+ error: {
75
+ message: 'Error while confirming artifact upload. ' +
76
+ JSON.stringify(confirmArtifactUploadError),
77
+ },
78
+ };
79
+ }
63
80
  }
64
81
  // Return the artifact information to the platform
65
82
  const artifact = {
@@ -78,6 +95,11 @@ class Uploader {
78
95
  */
79
96
  async getArtifactUploadUrl(filename, fileType, fileSize) {
80
97
  const url = `${this.devrevApiEndpoint}/internal/airdrop.artifacts.upload-url`;
98
+ if (fileSize !== undefined && fileSize <= 0) {
99
+ return {
100
+ error: { message: 'File size is 0 or less.' },
101
+ };
102
+ }
81
103
  try {
82
104
  const response = await axios_client_internal_1.axiosClient.get(url, {
83
105
  headers: Object.assign({}, this.defaultHeaders),
@@ -168,13 +190,15 @@ class Uploader {
168
190
  }
169
191
  else {
170
192
  return {
171
- error: new Error('Error while confirming artifact upload. ' +
172
- JSON.stringify(response)),
193
+ error: {
194
+ message: 'Error while confirming artifact upload. ' +
195
+ (0, logger_1.serializeError)(response),
196
+ },
173
197
  };
174
198
  }
175
199
  }
176
200
  catch (error) {
177
- return { error: (0, logger_1.serializeError)(error) };
201
+ return { error: { message: (0, logger_1.serializeError)(error) } };
178
202
  }
179
203
  }
180
204
  /**
@@ -208,31 +232,40 @@ class Uploader {
208
232
  const { response: artifactUrl, error: artifactUrlError } = await this.getArtifactDownloadUrl(artifact);
209
233
  if (artifactUrlError) {
210
234
  return {
211
- error: new Error('Error while getting artifact download URL. ' +
212
- (0, logger_1.serializeError)(artifactUrlError)),
235
+ error: {
236
+ message: 'Error while getting artifact download URL. ' +
237
+ (0, logger_1.serializeError)(artifactUrlError),
238
+ },
213
239
  };
214
240
  }
215
241
  // Download artifact from the URL
216
242
  const { response: gzippedJsonlObject, error: gzippedJsonlObjectError } = await this.downloadArtifact(artifactUrl);
217
243
  if (gzippedJsonlObjectError) {
218
244
  return {
219
- error: new Error('Error while downloading gzipped jsonl object.' +
220
- (0, logger_1.serializeError)(gzippedJsonlObjectError)),
245
+ error: {
246
+ message: 'Error while downloading gzipped jsonl object. ' +
247
+ (0, logger_1.serializeError)(gzippedJsonlObjectError),
248
+ },
221
249
  };
222
250
  }
223
251
  // Decompress the gzipped jsonl object
224
252
  const { response: jsonlObject, error: jsonlObjectError } = (0, uploader_helpers_1.decompressGzip)(gzippedJsonlObject);
225
253
  if (jsonlObjectError) {
226
254
  return {
227
- error: new Error('Error while decompressing gzipped jsonl object.' +
228
- (0, logger_1.serializeError)(jsonlObjectError)),
255
+ error: {
256
+ message: 'Error while decompressing gzipped jsonl object. ' +
257
+ (0, logger_1.serializeError)(jsonlObjectError),
258
+ },
229
259
  };
230
260
  }
231
261
  // Parse the jsonl object to get the attachment metadata
232
262
  const { response: jsonObject, error: jsonObjectError } = (0, uploader_helpers_1.parseJsonl)(jsonlObject);
233
263
  if (jsonObjectError) {
234
264
  return {
235
- error: new Error('Error while parsing jsonl object.' + (0, logger_1.serializeError)(jsonObjectError)),
265
+ error: {
266
+ message: 'Error while parsing jsonl object. ' +
267
+ (0, logger_1.serializeError)(jsonObjectError),
268
+ },
236
269
  };
237
270
  }
238
271
  return { attachments: jsonObject };
@@ -8,6 +8,8 @@ const js_jsonl_1 = require("js-jsonl");
8
8
  const zlib_1 = __importDefault(require("zlib"));
9
9
  const axios_client_internal_1 = require("../http/axios-client-internal");
10
10
  const test_helpers_1 = require("../tests/test-helpers");
11
+ const jest_setup_1 = require("../tests/jest.setup");
12
+ const test_utils_1 = require("../common/test-utils");
11
13
  const uploader_helpers_1 = require("./uploader.helpers");
12
14
  const uploader_1 = require("./uploader");
13
15
  jest.mock('../http/axios-client-internal');
@@ -16,7 +18,7 @@ const mockedAxiosClient = jest.mocked(axios_client_internal_1.axiosClient);
16
18
  const mockedDownloadToLocal = jest.mocked(uploader_helpers_1.downloadToLocal);
17
19
  const mockedCompressGzip = jest.mocked(uploader_helpers_1.compressGzip);
18
20
  describe(uploader_1.Uploader.name, () => {
19
- const mockEvent = (0, test_helpers_1.createEvent)();
21
+ const mockEvent = (0, test_utils_1.createMockEvent)(jest_setup_1.mockServer.baseUrl);
20
22
  let uploader;
21
23
  beforeEach(() => {
22
24
  uploader = new uploader_1.Uploader({ event: mockEvent });
@@ -85,7 +87,7 @@ describe(uploader_1.Uploader.name, () => {
85
87
  // Act
86
88
  const result = await uploader.upload(itemType, fetchedObjects);
87
89
  // Assert
88
- expect(result.error).toBeInstanceOf(Error);
90
+ expect(result.error).toHaveProperty('message');
89
91
  expect(result.artifact).toBeUndefined();
90
92
  });
91
93
  it('should return error when uploadArtifact fails', async () => {
@@ -97,7 +99,7 @@ describe(uploader_1.Uploader.name, () => {
97
99
  // Act
98
100
  const result = await uploader.upload(itemType, fetchedObjects);
99
101
  // Assert
100
- expect(result.error).toBeInstanceOf(Error);
102
+ expect(result.error).toHaveProperty('message');
101
103
  expect(result.artifact).toBeUndefined();
102
104
  });
103
105
  it('should return error when confirmArtifactUpload fails', async () => {
@@ -111,7 +113,7 @@ describe(uploader_1.Uploader.name, () => {
111
113
  // Act
112
114
  const result = await uploader.upload(itemType, fetchedObjects);
113
115
  // Assert
114
- expect(result.error).toBeInstanceOf(Error);
116
+ expect(result.error).toHaveProperty('message');
115
117
  expect(result.artifact).toBeUndefined();
116
118
  });
117
119
  it('should return error when compression fails', async () => {
@@ -122,7 +124,7 @@ describe(uploader_1.Uploader.name, () => {
122
124
  // Act
123
125
  const result = await uploader.upload(itemType, fetchedObjects);
124
126
  // Assert
125
- expect(result.error).toBeInstanceOf(Error);
127
+ expect(result.error).toHaveProperty('message');
126
128
  expect(result.artifact).toBeUndefined();
127
129
  });
128
130
  });
@@ -160,6 +162,16 @@ describe(uploader_1.Uploader.name, () => {
160
162
  expect(result.error).toBeInstanceOf(Error);
161
163
  expect(mockedAxiosClient.get).toHaveBeenCalled();
162
164
  });
165
+ it('should return error during upload, as it has size of zero', async () => {
166
+ // Arrange
167
+ const filename = 'test-file.jsonl.gz';
168
+ const fileType = 'application/x-gzip';
169
+ const fileSize = 0;
170
+ // Act
171
+ const result = await uploader.getArtifactUploadUrl(filename, fileType, fileSize);
172
+ // Assert
173
+ expect(result.error).toBeDefined();
174
+ });
163
175
  });
164
176
  describe(uploader_1.Uploader.prototype.uploadArtifact.name, () => {
165
177
  it('should return response when posting file as multipart form data', async () => {
@@ -230,7 +242,7 @@ describe(uploader_1.Uploader.name, () => {
230
242
  const result = await uploader.confirmArtifactUpload(artifactId);
231
243
  // Assert
232
244
  expect(result.response).toBeUndefined();
233
- expect(result.error).toBeInstanceOf(Error);
245
+ expect(result.error).toHaveProperty('message');
234
246
  });
235
247
  });
236
248
  describe(uploader_1.Uploader.prototype.streamArtifact.name, () => {
@@ -459,7 +471,7 @@ describe(uploader_1.Uploader.name, () => {
459
471
  artifact: artifactId,
460
472
  });
461
473
  // Assert
462
- expect(result.error).toBeInstanceOf(Error);
474
+ expect(result.error).toHaveProperty('message');
463
475
  expect(result.attachments).toBeUndefined();
464
476
  });
465
477
  it('should return error when downloadArtifact fails', async () => {
@@ -472,7 +484,7 @@ describe(uploader_1.Uploader.name, () => {
472
484
  artifact: artifactId,
473
485
  });
474
486
  // Assert
475
- expect(result.error).toBeInstanceOf(Error);
487
+ expect(result.error).toHaveProperty('message');
476
488
  expect(result.attachments).toBeUndefined();
477
489
  });
478
490
  it('should return error when decompression fails', async () => {
@@ -487,7 +499,7 @@ describe(uploader_1.Uploader.name, () => {
487
499
  artifact: artifactId,
488
500
  });
489
501
  // Assert
490
- expect(result.error).toBeInstanceOf(Error);
502
+ expect(result.error).toHaveProperty('message');
491
503
  expect(result.attachments).toBeUndefined();
492
504
  });
493
505
  it('should return error when JSONL parsing fails', async () => {
@@ -503,7 +515,7 @@ describe(uploader_1.Uploader.name, () => {
503
515
  artifact: artifactId,
504
516
  });
505
517
  // Assert
506
- expect(result.error).toBeInstanceOf(Error);
518
+ expect(result.error).toHaveProperty('message');
507
519
  expect(result.attachments).toBeUndefined();
508
520
  });
509
521
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrev/airsync-sdk",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-beta.3",
4
4
  "description": "TypeScript SDK for building AirSync snap-ins on the DevRev platform.",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",
@@ -11,11 +11,12 @@
11
11
  "start": "ts-node src/index.ts",
12
12
  "lint": "eslint .",
13
13
  "lint:fix": "eslint . --fix",
14
- "test": "jest --forceExit --maxWorkers=50% --selectProjects default --",
15
- "test:backwards-compatibility": "jest --forceExit --selectProjects backwards-compatibility --",
16
- "test:timeout-handling": "jest --forceExit --selectProjects timeout-handling --",
17
- "test:slow": "jest --forceExit --selectProjects slow --",
18
- "test:coverage": "jest --forceExit --coverage --runInBand --"
14
+ "test": "jest --silent --forceExit --maxWorkers=50% --selectProjects default --",
15
+ "test:backwards-compatibility": "jest --silent --forceExit --selectProjects backwards-compatibility --",
16
+ "test:timeout-handling": "jest --silent --forceExit --selectProjects timeout-handling --",
17
+ "test:slow": "jest --silent --forceExit --selectProjects slow --",
18
+ "test:coverage": "jest --silent --forceExit --coverage --runInBand --",
19
+ "test:debug": "jest --forceExit --selectProjects default --"
19
20
  },
20
21
  "repository": {
21
22
  "type": "git",
@@ -28,14 +29,11 @@
28
29
  "author": "devrev",
29
30
  "license": "ISC",
30
31
  "devDependencies": {
31
- "@microsoft/api-extractor": "^7.52.11",
32
+ "@microsoft/api-extractor": "^7.57.6",
32
33
  "@microsoft/api-extractor-model": "^7.30.7",
33
- "@types/express": "^5.0.3",
34
34
  "@types/jest": "^29.5.14",
35
35
  "@types/node": "^22.18.0",
36
36
  "@types/yargs": "^17.0.33",
37
- "@typescript-eslint/eslint-plugin": "^8.46.0",
38
- "@typescript-eslint/parser": "^8.46.0",
39
37
  "ajv": "^8.18.0",
40
38
  "eslint": "9.32.0",
41
39
  "eslint-config-prettier": "^9.1.2",
@@ -48,10 +46,9 @@
48
46
  "typescript-eslint": "^8.46.1"
49
47
  },
50
48
  "dependencies": {
51
- "@devrev/typescript-sdk": "^1.1.59",
52
- "axios": "^1.13.5",
49
+ "@devrev/typescript-sdk": "^1.1.74",
50
+ "axios": "^1.15.2",
53
51
  "axios-retry": "^4.5.0",
54
- "express": "^5.2.1",
55
52
  "form-data": "^4.0.4",
56
53
  "js-jsonl": "^1.1.1",
57
54
  "ts-node": "^10.9.2",
@@ -1,24 +0,0 @@
1
- import { EventType, ExtractorEventType } from '../types/extraction';
2
- import { LoaderEventType } from '../types/loading';
3
- /**
4
- * Maps old incoming event type strings to new EventType enum values.
5
- * This ensures backwards compatibility when the platform sends old event types.
6
- * @param eventTypeString The raw event type string from the platform
7
- * @returns The translated EventType enum value
8
- */
9
- export declare function translateIncomingEventType(eventTypeString: string): EventType;
10
- /**
11
- * Translates ExtractorEventType enum values by converting old enum members to new ones.
12
- * Old enum members are deprecated and should be replaced with new ones.
13
- */
14
- export declare function translateExtractorEventType(eventType: ExtractorEventType): ExtractorEventType;
15
- /**
16
- * Translates LoaderEventType enum values by converting old enum members to new ones.
17
- * Old enum members are deprecated and should be replaced with new ones.
18
- */
19
- export declare function translateLoaderEventType(eventType: LoaderEventType): LoaderEventType;
20
- /**
21
- * Translates any outgoing event type (Extractor or Loader) to ensure new event types are used.
22
- */
23
- export declare function translateOutgoingEventType(eventType: ExtractorEventType | LoaderEventType): ExtractorEventType | LoaderEventType;
24
- //# sourceMappingURL=event-type-translation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-type-translation.d.ts","sourceRoot":"","sources":["../../src/common/event-type-translation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAwD7E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,kBAAkB,GAC5B,kBAAkB,CA0CpB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,eAAe,GACzB,eAAe,CAmBjB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,kBAAkB,GAAG,eAAe,GAC9C,kBAAkB,GAAG,eAAe,CAatC"}