@devrev/airsync-sdk 2.0.0-beta.1 → 2.0.0-beta.11

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 (229) hide show
  1. package/README.md +7 -21
  2. package/dist/attachments-streaming/attachments-streaming-pool.d.ts +6 -7
  3. package/dist/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
  4. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts +4 -3
  5. package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts.map +1 -1
  6. package/dist/attachments-streaming/attachments-streaming-pool.js +69 -61
  7. package/dist/common/constants.d.ts +15 -12
  8. package/dist/common/constants.d.ts.map +1 -1
  9. package/dist/common/constants.js +20 -34
  10. package/dist/common/helpers.d.ts +3 -27
  11. package/dist/common/helpers.d.ts.map +1 -1
  12. package/dist/common/helpers.js +6 -36
  13. package/dist/http/client.d.ts +4 -0
  14. package/dist/http/client.d.ts.map +1 -0
  15. package/dist/http/client.js +80 -0
  16. package/dist/http/errors.d.ts +8 -0
  17. package/dist/http/errors.d.ts.map +1 -0
  18. package/dist/http/errors.js +31 -0
  19. package/dist/index.d.ts +30 -12
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +47 -28
  22. package/dist/logger/logger.d.ts +13 -70
  23. package/dist/logger/logger.d.ts.map +1 -1
  24. package/dist/logger/logger.interfaces.d.ts +4 -7
  25. package/dist/logger/logger.interfaces.d.ts.map +1 -1
  26. package/dist/logger/logger.js +67 -92
  27. package/dist/mappers/mappers.d.ts +10 -43
  28. package/dist/mappers/mappers.d.ts.map +1 -1
  29. package/dist/mappers/mappers.interfaces.d.ts +173 -0
  30. package/dist/mappers/mappers.interfaces.d.ts.map +1 -0
  31. package/dist/mappers/{mappers.interface.js → mappers.interfaces.js} +1 -10
  32. package/dist/mappers/mappers.js +32 -46
  33. package/dist/multithreading/adapters/base-adapter.d.ts +39 -0
  34. package/dist/multithreading/adapters/base-adapter.d.ts.map +1 -0
  35. package/dist/multithreading/adapters/base-adapter.js +212 -0
  36. package/dist/multithreading/adapters/extraction-adapter.d.ts +49 -0
  37. package/dist/multithreading/adapters/extraction-adapter.d.ts.map +1 -0
  38. package/dist/multithreading/adapters/extraction-adapter.js +375 -0
  39. package/dist/multithreading/adapters/loading-adapter.d.ts +26 -0
  40. package/dist/multithreading/adapters/loading-adapter.d.ts.map +1 -0
  41. package/dist/multithreading/adapters/loading-adapter.helpers.d.ts +12 -0
  42. package/dist/multithreading/adapters/loading-adapter.helpers.d.ts.map +1 -0
  43. package/dist/multithreading/{worker-adapter/worker-adapter.helpers.js → adapters/loading-adapter.helpers.js} +2 -12
  44. package/dist/multithreading/adapters/loading-adapter.js +279 -0
  45. package/dist/multithreading/emit.d.ts +11 -0
  46. package/dist/multithreading/emit.d.ts.map +1 -0
  47. package/dist/multithreading/emit.js +25 -0
  48. package/dist/multithreading/process-task.d.ts +6 -1
  49. package/dist/multithreading/process-task.d.ts.map +1 -1
  50. package/dist/multithreading/process-task.js +120 -82
  51. package/dist/multithreading/spawn/spawn.d.ts +10 -11
  52. package/dist/multithreading/spawn/spawn.d.ts.map +1 -1
  53. package/dist/multithreading/spawn/spawn.helpers.d.ts +12 -11
  54. package/dist/multithreading/spawn/spawn.helpers.d.ts.map +1 -1
  55. package/dist/multithreading/spawn/spawn.helpers.js +142 -77
  56. package/dist/multithreading/spawn/spawn.js +59 -75
  57. package/dist/multithreading/worker.js +16 -5
  58. package/dist/repo/repo.d.ts +14 -5
  59. package/dist/repo/repo.d.ts.map +1 -1
  60. package/dist/repo/repo.helpers.d.ts +6 -0
  61. package/dist/repo/repo.helpers.d.ts.map +1 -0
  62. package/dist/repo/repo.helpers.js +16 -0
  63. package/dist/repo/repo.interfaces.d.ts +11 -20
  64. package/dist/repo/repo.interfaces.d.ts.map +1 -1
  65. package/dist/repo/repo.js +36 -22
  66. package/dist/state/base-state.d.ts +58 -0
  67. package/dist/state/base-state.d.ts.map +1 -0
  68. package/dist/state/base-state.js +242 -0
  69. package/dist/state/extraction-state.d.ts +14 -0
  70. package/dist/state/extraction-state.d.ts.map +1 -0
  71. package/dist/state/extraction-state.js +146 -0
  72. package/dist/state/install-initial-domain-mapping.d.ts +4 -0
  73. package/dist/state/install-initial-domain-mapping.d.ts.map +1 -0
  74. package/dist/{common → state}/install-initial-domain-mapping.js +5 -7
  75. package/dist/state/loading-state.d.ts +8 -0
  76. package/dist/state/loading-state.d.ts.map +1 -0
  77. package/dist/state/loading-state.js +29 -0
  78. package/dist/state/state.d.ts +3 -29
  79. package/dist/state/state.d.ts.map +1 -1
  80. package/dist/state/state.interfaces.d.ts +31 -12
  81. package/dist/state/state.interfaces.d.ts.map +1 -1
  82. package/dist/state/state.interfaces.js +17 -1
  83. package/dist/state/state.js +9 -164
  84. package/dist/state/time-value-resolver.d.ts +17 -0
  85. package/dist/state/time-value-resolver.d.ts.map +1 -0
  86. package/dist/state/time-value-resolver.js +110 -0
  87. package/dist/testing/mock-event.d.ts +10 -0
  88. package/dist/testing/mock-event.d.ts.map +1 -0
  89. package/dist/testing/mock-event.js +96 -0
  90. package/dist/testing/mock-server.d.ts +31 -0
  91. package/dist/testing/mock-server.d.ts.map +1 -0
  92. package/dist/testing/mock-server.interfaces.d.ts +54 -0
  93. package/dist/testing/mock-server.interfaces.d.ts.map +1 -0
  94. package/dist/testing/mock-server.interfaces.js +4 -0
  95. package/dist/testing/mock-server.js +297 -0
  96. package/dist/testing/test-adapters.d.ts +22 -0
  97. package/dist/testing/test-adapters.d.ts.map +1 -0
  98. package/dist/testing/test-adapters.js +32 -0
  99. package/dist/types/common.d.ts +4 -37
  100. package/dist/types/common.d.ts.map +1 -1
  101. package/dist/types/common.js +2 -17
  102. package/dist/types/errors.d.ts +15 -0
  103. package/dist/types/errors.d.ts.map +1 -0
  104. package/dist/types/errors.js +28 -0
  105. package/dist/types/external-domain-metadata.d.ts +40 -162
  106. package/dist/types/external-domain-metadata.d.ts.map +1 -1
  107. package/dist/types/extraction.d.ts +135 -278
  108. package/dist/types/extraction.d.ts.map +1 -1
  109. package/dist/types/extraction.js +46 -133
  110. package/dist/types/loading.d.ts +15 -55
  111. package/dist/types/loading.d.ts.map +1 -1
  112. package/dist/types/loading.js +1 -23
  113. package/dist/types/workers.d.ts +70 -103
  114. package/dist/types/workers.d.ts.map +1 -1
  115. package/dist/types/workers.js +1 -6
  116. package/dist/uploader/uploader.d.ts +10 -61
  117. package/dist/uploader/uploader.d.ts.map +1 -1
  118. package/dist/uploader/uploader.helpers.d.ts +7 -27
  119. package/dist/uploader/uploader.helpers.d.ts.map +1 -1
  120. package/dist/uploader/uploader.helpers.js +80 -30
  121. package/dist/uploader/uploader.interfaces.d.ts +19 -54
  122. package/dist/uploader/uploader.interfaces.d.ts.map +1 -1
  123. package/dist/uploader/uploader.interfaces.js +8 -0
  124. package/dist/uploader/uploader.js +72 -124
  125. package/docs/MIGRATION.md +751 -0
  126. package/package.json +35 -22
  127. package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts +0 -2
  128. package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts.map +0 -1
  129. package/dist/attachments-streaming/attachments-streaming-pool.test.js +0 -321
  130. package/dist/common/control-protocol.d.ts +0 -10
  131. package/dist/common/control-protocol.d.ts.map +0 -1
  132. package/dist/common/control-protocol.js +0 -31
  133. package/dist/common/errors.d.ts +0 -6
  134. package/dist/common/errors.d.ts.map +0 -1
  135. package/dist/common/errors.js +0 -4
  136. package/dist/common/event-type-translation.d.ts +0 -24
  137. package/dist/common/event-type-translation.d.ts.map +0 -1
  138. package/dist/common/event-type-translation.js +0 -117
  139. package/dist/common/install-initial-domain-mapping.d.ts +0 -4
  140. package/dist/common/install-initial-domain-mapping.d.ts.map +0 -1
  141. package/dist/common/install-initial-domain-mapping.test.d.ts +0 -2
  142. package/dist/common/install-initial-domain-mapping.test.d.ts.map +0 -1
  143. package/dist/common/install-initial-domain-mapping.test.js +0 -208
  144. package/dist/deprecated/adapter/index.d.ts +0 -62
  145. package/dist/deprecated/adapter/index.d.ts.map +0 -1
  146. package/dist/deprecated/adapter/index.js +0 -151
  147. package/dist/deprecated/common/helpers.d.ts +0 -7
  148. package/dist/deprecated/common/helpers.d.ts.map +0 -1
  149. package/dist/deprecated/common/helpers.js +0 -47
  150. package/dist/deprecated/demo-extractor/external_domain_metadata.json +0 -38
  151. package/dist/deprecated/demo-extractor/index.d.ts +0 -18
  152. package/dist/deprecated/demo-extractor/index.d.ts.map +0 -1
  153. package/dist/deprecated/demo-extractor/index.js +0 -161
  154. package/dist/deprecated/http/client.d.ts +0 -22
  155. package/dist/deprecated/http/client.d.ts.map +0 -1
  156. package/dist/deprecated/http/client.js +0 -161
  157. package/dist/deprecated/uploader/index.d.ts +0 -35
  158. package/dist/deprecated/uploader/index.d.ts.map +0 -1
  159. package/dist/deprecated/uploader/index.js +0 -161
  160. package/dist/http/axios-client-internal.d.ts +0 -3
  161. package/dist/http/axios-client-internal.d.ts.map +0 -1
  162. package/dist/http/axios-client-internal.js +0 -66
  163. package/dist/http/axios-client-internal.test.d.ts +0 -2
  164. package/dist/http/axios-client-internal.test.d.ts.map +0 -1
  165. package/dist/http/axios-client-internal.test.js +0 -154
  166. package/dist/http/axios-client.d.ts +0 -27
  167. package/dist/http/axios-client.d.ts.map +0 -1
  168. package/dist/http/axios-client.js +0 -57
  169. package/dist/http/constants.d.ts +0 -4
  170. package/dist/http/constants.d.ts.map +0 -1
  171. package/dist/http/constants.js +0 -6
  172. package/dist/http/index.d.ts +0 -3
  173. package/dist/http/index.d.ts.map +0 -1
  174. package/dist/http/index.js +0 -18
  175. package/dist/http/types.d.ts +0 -17
  176. package/dist/http/types.d.ts.map +0 -1
  177. package/dist/http/types.js +0 -2
  178. package/dist/logger/logger.constants.d.ts +0 -6
  179. package/dist/logger/logger.constants.d.ts.map +0 -1
  180. package/dist/logger/logger.constants.js +0 -13
  181. package/dist/logger/logger.context.d.ts +0 -58
  182. package/dist/logger/logger.context.d.ts.map +0 -1
  183. package/dist/logger/logger.context.js +0 -86
  184. package/dist/logger/logger.test.d.ts +0 -2
  185. package/dist/logger/logger.test.d.ts.map +0 -1
  186. package/dist/logger/logger.test.js +0 -490
  187. package/dist/mappers/mappers.interface.d.ts +0 -294
  188. package/dist/mappers/mappers.interface.d.ts.map +0 -1
  189. package/dist/mappers/mappers.test.d.ts +0 -2
  190. package/dist/mappers/mappers.test.d.ts.map +0 -1
  191. package/dist/mappers/mappers.test.js +0 -107
  192. package/dist/multithreading/create-worker.test.d.ts +0 -2
  193. package/dist/multithreading/create-worker.test.d.ts.map +0 -1
  194. package/dist/multithreading/create-worker.test.js +0 -89
  195. package/dist/multithreading/spawn/spawn.helpers.test.d.ts +0 -2
  196. package/dist/multithreading/spawn/spawn.helpers.test.d.ts.map +0 -1
  197. package/dist/multithreading/spawn/spawn.helpers.test.js +0 -293
  198. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts +0 -2
  199. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts.map +0 -1
  200. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.js +0 -127
  201. package/dist/multithreading/worker-adapter/worker-adapter.d.ts +0 -91
  202. package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +0 -1
  203. package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts +0 -22
  204. package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +0 -1
  205. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts +0 -2
  206. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts.map +0 -1
  207. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.js +0 -514
  208. package/dist/multithreading/worker-adapter/worker-adapter.js +0 -745
  209. package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts +0 -2
  210. package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts.map +0 -1
  211. package/dist/multithreading/worker-adapter/worker-adapter.test.js +0 -483
  212. package/dist/repo/repo.test.d.ts +0 -2
  213. package/dist/repo/repo.test.d.ts.map +0 -1
  214. package/dist/repo/repo.test.js +0 -131
  215. package/dist/state/state.test.d.ts +0 -2
  216. package/dist/state/state.test.d.ts.map +0 -1
  217. package/dist/state/state.test.js +0 -224
  218. package/dist/types/extraction.test.d.ts +0 -2
  219. package/dist/types/extraction.test.d.ts.map +0 -1
  220. package/dist/types/extraction.test.js +0 -70
  221. package/dist/types/index.d.ts +0 -10
  222. package/dist/types/index.d.ts.map +0 -1
  223. package/dist/types/index.js +0 -18
  224. package/dist/uploader/uploader.helpers.test.d.ts +0 -2
  225. package/dist/uploader/uploader.helpers.test.d.ts.map +0 -1
  226. package/dist/uploader/uploader.helpers.test.js +0 -267
  227. package/dist/uploader/uploader.test.d.ts +0 -2
  228. package/dist/uploader/uploader.test.d.ts.map +0 -1
  229. package/dist/uploader/uploader.test.js +0 -589
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMockEvent = createMockEvent;
4
+ const extraction_1 = require("../types/extraction");
5
+ const mock_server_1 = require("./mock-server");
6
+ /** Arrays and primitives from source replace target's; plain objects merge recursively. */
7
+ function deepMerge(target, source) {
8
+ const result = Object.assign({}, target);
9
+ for (const key of Object.keys(source)) {
10
+ const sourceVal = source[key];
11
+ const targetVal = target[key];
12
+ if (sourceVal !== null &&
13
+ typeof sourceVal === 'object' &&
14
+ !Array.isArray(sourceVal) &&
15
+ targetVal !== null &&
16
+ typeof targetVal === 'object' &&
17
+ !Array.isArray(targetVal)) {
18
+ result[key] = deepMerge(targetVal, sourceVal);
19
+ }
20
+ else {
21
+ result[key] = sourceVal;
22
+ }
23
+ }
24
+ return result;
25
+ }
26
+ /**
27
+ * Creates a mock AirSyncEvent for testing. `callback_url`, `worker_data_url`,
28
+ * and `devrev_endpoint` derive from `mockServerUrl` unless explicitly overridden.
29
+ */
30
+ function createMockEvent(mockServerUrl = mock_server_1.MOCK_SERVER_DEFAULT_URL, overrides = {}) {
31
+ var _a, _b, _c, _d;
32
+ const base = {
33
+ context: {
34
+ secrets: {
35
+ service_account_token: 'test_token',
36
+ },
37
+ snap_in_version_id: 'test_snap_in_version_id',
38
+ snap_in_id: 'test_snap_in_id',
39
+ user_id: 'test_user_id',
40
+ dev_oid: 'test_dev_oid',
41
+ source_id: 'test_source_id',
42
+ service_account_id: 'test_service_account_id',
43
+ },
44
+ payload: {
45
+ connection_data: {
46
+ org_id: 'test_org_id',
47
+ org_name: 'test_org_name',
48
+ key: 'test_key',
49
+ key_type: 'test_key_type',
50
+ },
51
+ event_context: {
52
+ callback_url: `${mockServerUrl}/callback_url`,
53
+ dev_oid: 'test_dev_oid',
54
+ dev_org_id: 'test_dev_org_id',
55
+ dev_uid: 'test_dev_uid',
56
+ event_type_adaas: 'test_event_type_adaas',
57
+ external_sync_unit_id: 'test_external_sync_unit_id',
58
+ external_sync_unit_name: 'test_external_sync_unit_name',
59
+ external_system_id: 'test_external_system_id',
60
+ external_system_name: 'test_external_system_name',
61
+ external_system_type: 'test_external_system_type',
62
+ import_slug: 'test_import_slug',
63
+ mode: 'INITIAL',
64
+ request_id: 'test_request_id',
65
+ request_id_adaas: 'test_request_id_adaas',
66
+ run_id: 'test_run_id',
67
+ sequence_version: 'test_sequence_version',
68
+ snap_in_slug: 'test_snap_in_slug',
69
+ snap_in_version_id: 'test_snap_in_version_id',
70
+ sync_tier: 'test_sync_tier',
71
+ sync_unit: 'test_sync_unit',
72
+ sync_unit_id: 'test_sync_unit_id',
73
+ worker_data_url: `${mockServerUrl}/worker_data_url`,
74
+ },
75
+ event_type: extraction_1.EventType.StartExtractingData,
76
+ event_data: {},
77
+ },
78
+ execution_metadata: {
79
+ devrev_endpoint: mockServerUrl,
80
+ },
81
+ input_data: {
82
+ global_values: {},
83
+ event_sources: {},
84
+ },
85
+ };
86
+ const merged = deepMerge(base, overrides);
87
+ // Ensure mock server URLs always win over overrides, unless the caller
88
+ // explicitly provided them.
89
+ if (!((_b = (_a = overrides.payload) === null || _a === void 0 ? void 0 : _a.event_context) === null || _b === void 0 ? void 0 : _b.callback_url)) {
90
+ merged.payload.event_context.callback_url = `${mockServerUrl}/callback_url`;
91
+ }
92
+ if (!((_d = (_c = overrides.payload) === null || _c === void 0 ? void 0 : _c.event_context) === null || _d === void 0 ? void 0 : _d.worker_data_url)) {
93
+ merged.payload.event_context.worker_data_url = `${mockServerUrl}/worker_data_url`;
94
+ }
95
+ return merged;
96
+ }
@@ -0,0 +1,31 @@
1
+ import { RequestInfo, RouteConfig } from './mock-server.interfaces';
2
+ export declare const MOCK_SERVER_DEFAULT_URL = "http://localhost:0";
3
+ /**
4
+ * Mocks internal AirSync endpoints in tests, with per-test route
5
+ * configuration to simulate different response scenarios.
6
+ */
7
+ export declare class MockServer {
8
+ private server;
9
+ private internalPort;
10
+ port: number;
11
+ baseUrl: string;
12
+ private routeHandlers;
13
+ private requests;
14
+ private requestCounts;
15
+ constructor(port?: number);
16
+ start(): Promise<void>;
17
+ stop(): Promise<void>;
18
+ private handleRequest;
19
+ /** Falls back to { success: true } for routes not explicitly set. */
20
+ private defaultRouteHandler;
21
+ private getRouteKey;
22
+ setRoute(config: RouteConfig): void;
23
+ /** Restores default handlers and clears request tracking data. */
24
+ resetRoutes(): void;
25
+ getLastRequest(): RequestInfo | undefined;
26
+ /** POST requests to the platform callback URL, i.e. emitted events. */
27
+ getCallbackRequests(): RequestInfo[];
28
+ getRequestCount(method: string, path: string): number;
29
+ getRequests(method: string, path: string): RequestInfo[];
30
+ }
31
+ //# sourceMappingURL=mock-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-server.d.ts","sourceRoot":"","sources":["../../src/testing/mock-server.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,WAAW,EACX,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAIlC,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAsE5D;;;GAGG;AACH,qBAAa,UAAU;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;IAMtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAkBpB,aAAa;IA+B3B,qEAAqE;IACrE,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,WAAW;IAIZ,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IA+G1C,kEAAkE;IAC3D,WAAW,IAAI,IAAI;IAMnB,cAAc,IAAI,WAAW,GAAG,SAAS;IAOhD,uEAAuE;IAChE,mBAAmB,IAAI,WAAW,EAAE;IAOpC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;CAQhE"}
@@ -0,0 +1,54 @@
1
+ import { IncomingMessage, ServerResponse } from 'http';
2
+ export declare const DEFAULT_MOCK_SERVER_PORT = 3001;
3
+ export interface ParsedRequest extends IncomingMessage {
4
+ /** URL path without query string */
5
+ path: string;
6
+ /** Parsed JSON body (if any) */
7
+ body?: unknown;
8
+ }
9
+ export interface MockResponse extends ServerResponse {
10
+ set(headers: Record<string, string>): MockResponse;
11
+ status(code: number): MockResponse;
12
+ json(data: unknown): void;
13
+ buffer(data: Buffer): void;
14
+ send(): void;
15
+ }
16
+ /** Simulates failures before succeeding. */
17
+ export interface RetryConfig {
18
+ /** Failures before success (default: 4) */
19
+ failureCount?: number;
20
+ /** Status code during failures (default: 500) */
21
+ errorStatus?: number;
22
+ errorBody?: unknown;
23
+ headers?: Record<string, string>;
24
+ /** Delay in ms before each failure response */
25
+ delay?: number;
26
+ }
27
+ export interface RouteConfig {
28
+ path: string;
29
+ method: string;
30
+ status: number;
31
+ body?: unknown;
32
+ /** Raw binary body, e.g. gzipped JSONL (takes precedence over `body`) */
33
+ bodyBuffer?: Buffer;
34
+ headers?: Record<string, string>;
35
+ retry?: RetryConfig;
36
+ /** Succeed for the first `successCount` requests, then fail (partial-upload scenarios). */
37
+ succeedThenFail?: {
38
+ successCount: number;
39
+ errorStatus?: number;
40
+ errorBody?: unknown;
41
+ };
42
+ /** Delay in ms before sending the response */
43
+ delay?: number;
44
+ }
45
+ export type RouteHandler = (req: ParsedRequest, res: MockResponse) => unknown;
46
+ export interface RequestInfo {
47
+ method: string;
48
+ url: string;
49
+ body?: unknown;
50
+ }
51
+ export type RouteHandlers = Map<string, RouteHandler>;
52
+ /** Request counts per route. */
53
+ export type RequestCounts = Map<string, number>;
54
+ //# sourceMappingURL=mock-server.interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-server.interfaces.d.ts","sourceRoot":"","sources":["../../src/testing/mock-server.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEvD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC;IACnD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,IAAI,IAAI,CAAC;CACd;AAED,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,2FAA2F;IAC3F,eAAe,CAAC,EAAE;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEtD,gCAAgC;AAChC,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
@@ -0,0 +1,4 @@
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;
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockServer = exports.MOCK_SERVER_DEFAULT_URL = void 0;
4
+ const http_1 = require("http");
5
+ const mock_server_interfaces_1 = require("./mock-server.interfaces");
6
+ // Port 0 lets the OS assign a free port at listen time; tests read the
7
+ // resolved URL from `mockServer.baseUrl`.
8
+ exports.MOCK_SERVER_DEFAULT_URL = 'http://localhost:0';
9
+ const MAX_BODY_SIZE = 10 * 1024 * 1024; // 10mb
10
+ async function parseJsonBody(req) {
11
+ return new Promise((resolve, reject) => {
12
+ const chunks = [];
13
+ let size = 0;
14
+ req.on('data', (chunk) => {
15
+ size += chunk.length;
16
+ if (size > MAX_BODY_SIZE) {
17
+ reject(new Error('Request body too large'));
18
+ req.destroy();
19
+ return;
20
+ }
21
+ chunks.push(chunk);
22
+ });
23
+ req.on('end', () => {
24
+ if (chunks.length === 0) {
25
+ resolve(undefined);
26
+ return;
27
+ }
28
+ try {
29
+ const raw = Buffer.concat(chunks).toString('utf-8');
30
+ resolve(JSON.parse(raw));
31
+ }
32
+ catch (_a) {
33
+ resolve(undefined);
34
+ }
35
+ });
36
+ req.on('error', reject);
37
+ });
38
+ }
39
+ function wrapResponse(res) {
40
+ const mock = res;
41
+ let statusCode = 200;
42
+ mock.set = (headers) => {
43
+ for (const [key, value] of Object.entries(headers)) {
44
+ res.setHeader(key, value);
45
+ }
46
+ return mock;
47
+ };
48
+ mock.status = (code) => {
49
+ statusCode = code;
50
+ return mock;
51
+ };
52
+ mock.json = (data) => {
53
+ res.writeHead(statusCode, { 'Content-Type': 'application/json' });
54
+ res.end(JSON.stringify(data));
55
+ };
56
+ mock.buffer = (data) => {
57
+ res.writeHead(statusCode, { 'Content-Type': 'application/octet-stream' });
58
+ res.end(data);
59
+ };
60
+ mock.send = () => {
61
+ res.writeHead(statusCode);
62
+ res.end();
63
+ };
64
+ return mock;
65
+ }
66
+ /**
67
+ * Mocks internal AirSync endpoints in tests, with per-test route
68
+ * configuration to simulate different response scenarios.
69
+ */
70
+ class MockServer {
71
+ constructor(port = mock_server_interfaces_1.DEFAULT_MOCK_SERVER_PORT) {
72
+ this.server = null;
73
+ this.routeHandlers = new Map();
74
+ this.requests = [];
75
+ this.requestCounts = new Map();
76
+ this.internalPort = port;
77
+ this.port = port;
78
+ this.baseUrl = `http://localhost:${this.port}`;
79
+ }
80
+ async start() {
81
+ return new Promise((resolve) => {
82
+ this.server = (0, http_1.createServer)((req, res) => {
83
+ this.handleRequest(req, res).catch(() => {
84
+ res.writeHead(500);
85
+ res.end();
86
+ });
87
+ });
88
+ this.server.listen(this.internalPort, () => {
89
+ var _a, _b;
90
+ const actualPort = (_b = (_a = this.server) === null || _a === void 0 ? void 0 : _a.address()) === null || _b === void 0 ? void 0 : _b.port;
91
+ if (actualPort) {
92
+ this.port = actualPort;
93
+ this.baseUrl = `http://localhost:${this.port}`;
94
+ }
95
+ console.log(`Mock server running on http://localhost:${this.port}.`);
96
+ resolve();
97
+ });
98
+ });
99
+ }
100
+ async stop() {
101
+ if (!this.server) {
102
+ return Promise.resolve();
103
+ }
104
+ return new Promise((resolve, reject) => {
105
+ this.server.close((err) => {
106
+ if (err) {
107
+ reject(err);
108
+ }
109
+ else {
110
+ console.log('Mock server stopped.');
111
+ this.server = null;
112
+ resolve();
113
+ }
114
+ });
115
+ });
116
+ }
117
+ async handleRequest(raw, rawRes) {
118
+ const req = raw;
119
+ const res = wrapResponse(rawRes);
120
+ const urlPath = (req.url || '/').split('?')[0];
121
+ req.path = urlPath;
122
+ req.body = await parseJsonBody(req);
123
+ const requestInfo = Object.assign({ method: req.method || 'GET', url: req.url || urlPath }, (req.body !== undefined && req.body !== null
124
+ ? { body: req.body }
125
+ : {}));
126
+ this.requests.push(requestInfo);
127
+ const method = (req.method || 'GET').toUpperCase();
128
+ const key = `${method}:${urlPath}`;
129
+ const customHandler = this.routeHandlers.get(key);
130
+ if (customHandler) {
131
+ customHandler(req, res);
132
+ }
133
+ else {
134
+ this.defaultRouteHandler(req, res);
135
+ }
136
+ }
137
+ /** Falls back to { success: true } for routes not explicitly set. */
138
+ defaultRouteHandler(req, res) {
139
+ if (req.method === 'GET' && req.path === '/worker_data_url.get') {
140
+ res.status(200).json({
141
+ state: JSON.stringify({}),
142
+ });
143
+ }
144
+ else if (req.method === 'GET' && req.path === '/internal/snap-ins.get') {
145
+ res.status(200).json({
146
+ snap_in: {
147
+ imports: [{ name: 'test_import_slug' }],
148
+ snap_in_version: { slug: 'test_snap_in_slug' },
149
+ },
150
+ });
151
+ }
152
+ else if (req.method === 'GET' &&
153
+ req.path === '/internal/airdrop.artifacts.upload-url') {
154
+ const artifactId = `artifact-${Date.now()}-${Math.random()
155
+ .toString(36)
156
+ .substr(2, 9)}`;
157
+ res.status(200).json({
158
+ upload_url: `${this.baseUrl}/file-upload-url`,
159
+ artifact_id: artifactId,
160
+ form_data: [],
161
+ });
162
+ }
163
+ else {
164
+ res.status(200).json({ success: true });
165
+ }
166
+ }
167
+ getRouteKey(method, path) {
168
+ return `${method.toUpperCase()}:${path}`;
169
+ }
170
+ setRoute(config) {
171
+ const { path, method, status, body, bodyBuffer, retry, succeedThenFail, headers, delay, } = config;
172
+ const key = this.getRouteKey(method, path);
173
+ if (retry || succeedThenFail) {
174
+ this.requestCounts.set(key, 0);
175
+ }
176
+ this.routeHandlers.set(key, (req, res) => {
177
+ const sendResponse = (responseDelay) => {
178
+ const send = () => {
179
+ var _a, _b, _c;
180
+ if (succeedThenFail) {
181
+ const currentCount = this.requestCounts.get(key) || 0;
182
+ this.requestCounts.set(key, currentCount + 1);
183
+ if (currentCount < succeedThenFail.successCount) {
184
+ if (headers) {
185
+ res.set(headers);
186
+ }
187
+ if (bodyBuffer !== undefined) {
188
+ res.status(status).buffer(bodyBuffer);
189
+ }
190
+ else if (body !== undefined) {
191
+ res.status(status).json(body);
192
+ }
193
+ else {
194
+ this.defaultRouteHandler(req, res);
195
+ }
196
+ }
197
+ else {
198
+ const errorStatus = (_a = succeedThenFail.errorStatus) !== null && _a !== void 0 ? _a : 400;
199
+ if (succeedThenFail.errorBody !== undefined) {
200
+ res.status(errorStatus).json(succeedThenFail.errorBody);
201
+ }
202
+ else {
203
+ res.status(errorStatus).send();
204
+ }
205
+ }
206
+ }
207
+ else if (retry) {
208
+ const currentCount = this.requestCounts.get(key) || 0;
209
+ const failureCount = (_b = retry.failureCount) !== null && _b !== void 0 ? _b : 4;
210
+ const errorStatus = (_c = retry.errorStatus) !== null && _c !== void 0 ? _c : 500;
211
+ if (currentCount < failureCount) {
212
+ this.requestCounts.set(key, currentCount + 1);
213
+ const sendFailure = () => {
214
+ if (retry.headers) {
215
+ res.set(retry.headers);
216
+ }
217
+ if (retry.errorBody !== undefined) {
218
+ res.status(errorStatus).json(retry.errorBody);
219
+ }
220
+ else {
221
+ res.status(errorStatus).send();
222
+ }
223
+ };
224
+ if (retry.delay) {
225
+ setTimeout(sendFailure, retry.delay);
226
+ }
227
+ else {
228
+ sendFailure();
229
+ }
230
+ }
231
+ else {
232
+ this.requestCounts.set(key, currentCount + 1);
233
+ if (headers) {
234
+ res.set(headers);
235
+ }
236
+ if (bodyBuffer !== undefined) {
237
+ res.status(status).buffer(bodyBuffer);
238
+ }
239
+ else if (body !== undefined) {
240
+ res.status(status).json(body);
241
+ }
242
+ else {
243
+ this.defaultRouteHandler(req, res);
244
+ }
245
+ }
246
+ }
247
+ else {
248
+ if (headers) {
249
+ res.set(headers);
250
+ }
251
+ if (bodyBuffer !== undefined) {
252
+ res.status(status).buffer(bodyBuffer);
253
+ }
254
+ else if (body !== undefined) {
255
+ res.status(status).json(body);
256
+ }
257
+ else {
258
+ res.status(status).send();
259
+ }
260
+ }
261
+ };
262
+ if (responseDelay) {
263
+ setTimeout(send, responseDelay);
264
+ }
265
+ else {
266
+ send();
267
+ }
268
+ };
269
+ sendResponse(delay);
270
+ });
271
+ }
272
+ /** Restores default handlers and clears request tracking data. */
273
+ resetRoutes() {
274
+ this.routeHandlers.clear();
275
+ this.requestCounts.clear();
276
+ this.requests = [];
277
+ }
278
+ getLastRequest() {
279
+ if (this.requests.length === 0) {
280
+ return undefined;
281
+ }
282
+ return this.requests[this.requests.length - 1];
283
+ }
284
+ /** POST requests to the platform callback URL, i.e. emitted events. */
285
+ getCallbackRequests() {
286
+ return this.requests.filter((req) => req.method.toUpperCase() === 'POST' && req.url.includes('callback_url'));
287
+ }
288
+ getRequestCount(method, path) {
289
+ return this.getRequests(method, path).length;
290
+ }
291
+ getRequests(method, path) {
292
+ const pathWithoutQuery = path.split('?')[0];
293
+ return this.requests.filter((req) => req.method.toUpperCase() === method.toUpperCase() &&
294
+ req.url.split('?')[0] === pathWithoutQuery);
295
+ }
296
+ }
297
+ exports.MockServer = MockServer;
@@ -0,0 +1,22 @@
1
+ import { ExtractionAdapter } from '../multithreading/adapters/extraction-adapter';
2
+ import { LoadingAdapter } from '../multithreading/adapters/loading-adapter';
3
+ import { AirSyncEvent } from '../types/extraction';
4
+ import { FileToLoad } from '../types/loading';
5
+ import { SpawnOptions } from '../types/workers';
6
+ export interface TestAdapterParams<ConnectorState> {
7
+ event: AirSyncEvent;
8
+ initialState: ConnectorState;
9
+ options?: SpawnOptions;
10
+ }
11
+ export interface TestLoadingAdapterParams<ConnectorState> extends TestAdapterParams<ConnectorState> {
12
+ /** Transformer files to resume from, as if a START_* event had set them. */
13
+ filesToLoad?: FileToLoad[];
14
+ }
15
+ /**
16
+ * Builds an extraction adapter for connector tests without fetching state.
17
+ * Platform calls still go to the event's URLs; point them at a MockServer.
18
+ */
19
+ export declare function createTestExtractionAdapter<ConnectorState>({ event, initialState, options, }: TestAdapterParams<ConnectorState>): ExtractionAdapter<ConnectorState>;
20
+ /** Loading counterpart of {@link createTestExtractionAdapter}. */
21
+ export declare function createTestLoadingAdapter<ConnectorState>({ event, initialState, filesToLoad, options, }: TestLoadingAdapterParams<ConnectorState>): LoadingAdapter<ConnectorState>;
22
+ //# sourceMappingURL=test-adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-adapters.d.ts","sourceRoot":"","sources":["../../src/testing/test-adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,iBAAiB,CAAC,cAAc;IAC/C,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,cAAc,CAAC;IAC7B,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB,CAAC,cAAc,CACtD,SAAQ,iBAAiB,CAAC,cAAc,CAAC;IACzC,4EAA4E;IAC5E,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,EAC1D,KAAK,EACL,YAAY,EACZ,OAAO,GACR,EAAE,iBAAiB,CAAC,cAAc,CAAC,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAOvE;AAED,kEAAkE;AAClE,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,EACvD,KAAK,EACL,YAAY,EACZ,WAAW,EACX,OAAO,GACR,EAAE,wBAAwB,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,CAU3E"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTestExtractionAdapter = createTestExtractionAdapter;
4
+ exports.createTestLoadingAdapter = createTestLoadingAdapter;
5
+ const extraction_adapter_1 = require("../multithreading/adapters/extraction-adapter");
6
+ const loading_adapter_1 = require("../multithreading/adapters/loading-adapter");
7
+ const extraction_state_1 = require("../state/extraction-state");
8
+ const loading_state_1 = require("../state/loading-state");
9
+ /**
10
+ * Builds an extraction adapter for connector tests without fetching state.
11
+ * Platform calls still go to the event's URLs; point them at a MockServer.
12
+ */
13
+ function createTestExtractionAdapter({ event, initialState, options, }) {
14
+ const adapterState = new extraction_state_1.ExtractionState({
15
+ event,
16
+ initialState,
17
+ options,
18
+ });
19
+ return new extraction_adapter_1.ExtractionAdapter({ event, adapterState, options });
20
+ }
21
+ /** Loading counterpart of {@link createTestExtractionAdapter}. */
22
+ function createTestLoadingAdapter({ event, initialState, filesToLoad, options, }) {
23
+ const adapterState = new loading_state_1.LoadingState({
24
+ event,
25
+ initialState,
26
+ options,
27
+ });
28
+ if (filesToLoad) {
29
+ adapterState.sdkState.fromDevRev = { filesToLoad };
30
+ }
31
+ return new loading_adapter_1.LoadingAdapter({ event, adapterState, options });
32
+ }
@@ -1,47 +1,14 @@
1
- import { Artifact } from '../uploader/uploader.interfaces';
2
- /**
3
- * ErrorLevel is an enum that represents the level of an error.
4
- * @deprecated
5
- */
6
- export declare enum ErrorLevel {
7
- Warning = "WARNING",
8
- Error = "ERROR",
9
- Info = "INFO"
10
- }
11
- /**
12
- * ErrorRecord is an interface that defines the structure of an error record.
13
- */
1
+ import { AirSyncErrorCode } from './errors';
14
2
  export interface ErrorRecord {
15
3
  message: string;
4
+ /** Platform-recognized condition; when set, it replaces the wire message. */
5
+ code?: AirSyncErrorCode;
16
6
  }
17
- /**
18
- * LogRecord is an interface that defines the structure of a log record.
19
- * @deprecated
20
- */
21
- export interface LogRecord {
22
- level: ErrorLevel;
23
- message: string;
24
- }
25
- /**
26
- * AdapterUpdateParams is an interface that defines the structure of the parameters that can be passed to the update adapter.
27
- * @deprecated
28
- */
29
- export interface AdapterUpdateParams {
30
- artifact?: Artifact;
31
- }
32
- /**
33
- * InitialDomainMapping is an interface that defines the structure of the initial domain mapping.
34
- */
35
7
  export interface InitialDomainMapping {
36
8
  starting_recipe_blueprint?: object;
37
9
  additional_mappings?: object;
38
10
  }
39
- /**
40
- * SyncMode is an enum that defines the different modes of sync that can be used by the external extractor.
41
- * It can be either INITIAL, INCREMENTAL or LOADING. INITIAL mode is used for
42
- * the first/initial import, while INCREMENTAL mode is used for doing syncs. LOADING mode is used for
43
- * loading data from DevRev to the external system.
44
- */
11
+ /** INITIAL = first import, INCREMENTAL = subsequent syncs, LOADING = DevRev to external system. */
45
12
  export declare enum SyncMode {
46
13
  INITIAL = "INITIAL",
47
14
  INCREMENTAL = "INCREMENTAL",
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D;;;GAGG;AACH,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;CACpB"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,mGAAmG;AACnG,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;CACpB"}
@@ -1,22 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SyncMode = exports.ErrorLevel = void 0;
4
- /**
5
- * ErrorLevel is an enum that represents the level of an error.
6
- * @deprecated
7
- */
8
- var ErrorLevel;
9
- (function (ErrorLevel) {
10
- ErrorLevel["Warning"] = "WARNING";
11
- ErrorLevel["Error"] = "ERROR";
12
- ErrorLevel["Info"] = "INFO";
13
- })(ErrorLevel || (exports.ErrorLevel = ErrorLevel = {}));
14
- /**
15
- * SyncMode is an enum that defines the different modes of sync that can be used by the external extractor.
16
- * It can be either INITIAL, INCREMENTAL or LOADING. INITIAL mode is used for
17
- * the first/initial import, while INCREMENTAL mode is used for doing syncs. LOADING mode is used for
18
- * loading data from DevRev to the external system.
19
- */
3
+ exports.SyncMode = void 0;
4
+ /** INITIAL = first import, INCREMENTAL = subsequent syncs, LOADING = DevRev to external system. */
20
5
  var SyncMode;
21
6
  (function (SyncMode) {
22
7
  SyncMode["INITIAL"] = "INITIAL";
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Error codes the platform reacts to (e.g. stopping periodic syncs). Set them
3
+ * on `ErrorRecord.code`; the platform matches the code exactly, so the SDK
4
+ * sends it as the whole wire message.
5
+ */
6
+ export declare enum AirSyncErrorCode {
7
+ EXTERNAL_SYNC_UNIT_DELETED = "EXTERNAL_SYNC_UNIT_DELETED",
8
+ EXTERNAL_SYNC_UNIT_DEACTIVATED = "EXTERNAL_SYNC_UNIT_DEACTIVATED",
9
+ USER_DELETED = "USER_DELETED",
10
+ EXTERNAL_SYSTEM_NO_ACCESS = "EXTERNAL_SYSTEM_NO_ACCESS",
11
+ EXTERNAL_SYSTEM_NO_PERMISSION = "EXTERNAL_SYSTEM_NO_PERMISSION",
12
+ HISTORICAL_DATA_EXTRACTION_DONE = "HISTORICAL_DATA_EXTRACTION_DONE"
13
+ }
14
+ export declare function formatErrorCode(code: AirSyncErrorCode): string;
15
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,oBAAY,gBAAgB;IAG1B,0BAA0B,+BAA+B;IACzD,8BAA8B,mCAAmC;IACjE,YAAY,iBAAiB;IAG7B,yBAAyB,8BAA8B;IAEvD,6BAA6B,kCAAkC;IAE/D,+BAA+B,oCAAoC;CACpE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAE9D"}