@devrev/airsync-sdk 2.0.0-beta.2 → 2.0.0-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.
Files changed (206) hide show
  1. package/README.md +5 -11
  2. package/dist/attachments-streaming/attachments-streaming-pool.d.ts +1 -8
  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 +11 -39
  7. package/dist/common/constants.d.ts +1 -0
  8. package/dist/common/constants.d.ts.map +1 -1
  9. package/dist/common/constants.js +2 -1
  10. package/dist/common/helpers.d.ts +0 -14
  11. package/dist/common/helpers.d.ts.map +1 -1
  12. package/dist/common/helpers.js +0 -36
  13. package/dist/http/{axios-client-internal.d.ts → client.d.ts} +1 -1
  14. package/dist/http/client.d.ts.map +1 -0
  15. package/dist/index.d.ts +25 -13
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +51 -30
  18. package/dist/logger/logger.d.ts +14 -0
  19. package/dist/logger/logger.d.ts.map +1 -1
  20. package/dist/logger/logger.js +55 -8
  21. package/dist/mappers/mappers.d.ts +9 -10
  22. package/dist/mappers/mappers.d.ts.map +1 -1
  23. package/dist/mappers/{mappers.interface.d.ts → mappers.interfaces.d.ts} +5 -5
  24. package/dist/mappers/mappers.interfaces.d.ts.map +1 -0
  25. package/dist/mappers/{mappers.interface.js → mappers.interfaces.js} +3 -3
  26. package/dist/mappers/mappers.js +13 -9
  27. package/dist/multithreading/adapters/base-adapter.d.ts +71 -0
  28. package/dist/multithreading/adapters/base-adapter.d.ts.map +1 -0
  29. package/dist/multithreading/adapters/base-adapter.js +138 -0
  30. package/dist/multithreading/adapters/extraction-adapter.d.ts +57 -0
  31. package/dist/multithreading/adapters/extraction-adapter.d.ts.map +1 -0
  32. package/dist/multithreading/adapters/extraction-adapter.js +323 -0
  33. package/dist/multithreading/adapters/loading-adapter.d.ts +44 -0
  34. package/dist/multithreading/adapters/loading-adapter.d.ts.map +1 -0
  35. package/dist/multithreading/{worker-adapter/worker-adapter.helpers.d.ts → adapters/loading-adapter.helpers.d.ts} +1 -1
  36. package/dist/multithreading/adapters/loading-adapter.helpers.d.ts.map +1 -0
  37. package/dist/multithreading/adapters/loading-adapter.js +431 -0
  38. package/dist/{common/control-protocol.d.ts → multithreading/emit.d.ts} +1 -1
  39. package/dist/multithreading/emit.d.ts.map +1 -0
  40. package/dist/{common/control-protocol.js → multithreading/emit.js} +3 -3
  41. package/dist/multithreading/process-task.d.ts +16 -1
  42. package/dist/multithreading/process-task.d.ts.map +1 -1
  43. package/dist/multithreading/process-task.js +115 -50
  44. package/dist/multithreading/spawn/spawn.helpers.d.ts +23 -3
  45. package/dist/multithreading/spawn/spawn.helpers.d.ts.map +1 -1
  46. package/dist/multithreading/spawn/spawn.helpers.js +152 -2
  47. package/dist/multithreading/spawn/spawn.js +7 -7
  48. package/dist/multithreading/worker.js +1 -2
  49. package/dist/repo/repo.js +2 -2
  50. package/dist/state/base-state.d.ts +75 -0
  51. package/dist/state/base-state.d.ts.map +1 -0
  52. package/dist/state/base-state.js +261 -0
  53. package/dist/state/extraction-state.d.ts +29 -0
  54. package/dist/state/extraction-state.d.ts.map +1 -0
  55. package/dist/state/extraction-state.js +122 -0
  56. package/dist/state/install-initial-domain-mapping.d.ts.map +1 -0
  57. package/dist/{common → state}/install-initial-domain-mapping.js +4 -4
  58. package/dist/state/loading-state.d.ts +18 -0
  59. package/dist/state/loading-state.d.ts.map +1 -0
  60. package/dist/state/loading-state.js +39 -0
  61. package/dist/state/state.d.ts +3 -35
  62. package/dist/state/state.d.ts.map +1 -1
  63. package/dist/state/state.interfaces.d.ts +20 -3
  64. package/dist/state/state.interfaces.d.ts.map +1 -1
  65. package/dist/state/state.interfaces.js +19 -1
  66. package/dist/state/state.js +9 -263
  67. package/dist/{common → state}/time-value-resolver.d.ts +4 -5
  68. package/dist/state/time-value-resolver.d.ts.map +1 -0
  69. package/dist/{common → state}/time-value-resolver.js +9 -8
  70. package/dist/{common/test-utils.d.ts → testing/mock-event.d.ts} +1 -2
  71. package/dist/testing/mock-event.d.ts.map +1 -0
  72. package/dist/{common/test-utils.js → testing/mock-event.js} +14 -3
  73. package/dist/{mock-server → testing}/mock-server.d.ts +5 -0
  74. package/dist/testing/mock-server.d.ts.map +1 -0
  75. package/dist/testing/mock-server.interfaces.d.ts.map +1 -0
  76. package/dist/{mock-server → testing}/mock-server.js +6 -1
  77. package/dist/types/errors.d.ts +9 -0
  78. package/dist/types/errors.d.ts.map +1 -0
  79. package/dist/types/extraction.d.ts +73 -18
  80. package/dist/types/extraction.d.ts.map +1 -1
  81. package/dist/types/extraction.js +4 -6
  82. package/dist/types/loading.d.ts +1 -2
  83. package/dist/types/loading.d.ts.map +1 -1
  84. package/dist/types/loading.js +0 -1
  85. package/dist/types/workers.d.ts +64 -20
  86. package/dist/types/workers.d.ts.map +1 -1
  87. package/dist/uploader/uploader.d.ts +5 -4
  88. package/dist/uploader/uploader.d.ts.map +1 -1
  89. package/dist/uploader/uploader.interfaces.d.ts +1 -1
  90. package/dist/uploader/uploader.js +10 -10
  91. package/package.json +3 -3
  92. package/dist/airsync-sdk.d.ts +0 -1802
  93. package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts +0 -2
  94. package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts.map +0 -1
  95. package/dist/attachments-streaming/attachments-streaming-pool.test.js +0 -516
  96. package/dist/common/control-protocol.d.ts.map +0 -1
  97. package/dist/common/errors.d.ts +0 -6
  98. package/dist/common/errors.d.ts.map +0 -1
  99. package/dist/common/install-initial-domain-mapping.d.ts.map +0 -1
  100. package/dist/common/install-initial-domain-mapping.test.d.ts +0 -2
  101. package/dist/common/install-initial-domain-mapping.test.d.ts.map +0 -1
  102. package/dist/common/install-initial-domain-mapping.test.js +0 -211
  103. package/dist/common/test-utils.d.ts.map +0 -1
  104. package/dist/common/time-value-resolver.d.ts.map +0 -1
  105. package/dist/common/time-value-resolver.test.d.ts +0 -2
  106. package/dist/common/time-value-resolver.test.d.ts.map +0 -1
  107. package/dist/common/time-value-resolver.test.js +0 -268
  108. package/dist/http/axios-client-internal.d.ts.map +0 -1
  109. package/dist/http/axios-client-internal.test.d.ts +0 -2
  110. package/dist/http/axios-client-internal.test.d.ts.map +0 -1
  111. package/dist/http/axios-client-internal.test.js +0 -175
  112. package/dist/http/axios-client.d.ts +0 -27
  113. package/dist/http/axios-client.d.ts.map +0 -1
  114. package/dist/http/axios-client.js +0 -60
  115. package/dist/http/constants.d.ts +0 -4
  116. package/dist/http/constants.d.ts.map +0 -1
  117. package/dist/http/constants.js +0 -6
  118. package/dist/http/index.d.ts +0 -2
  119. package/dist/http/index.d.ts.map +0 -1
  120. package/dist/http/index.js +0 -17
  121. package/dist/logger/logger.constants.d.ts +0 -6
  122. package/dist/logger/logger.constants.d.ts.map +0 -1
  123. package/dist/logger/logger.constants.js +0 -13
  124. package/dist/logger/logger.context.d.ts +0 -58
  125. package/dist/logger/logger.context.d.ts.map +0 -1
  126. package/dist/logger/logger.context.js +0 -86
  127. package/dist/logger/logger.test.d.ts +0 -2
  128. package/dist/logger/logger.test.d.ts.map +0 -1
  129. package/dist/logger/logger.test.js +0 -537
  130. package/dist/mappers/mappers.interface.d.ts.map +0 -1
  131. package/dist/mappers/mappers.test.d.ts +0 -2
  132. package/dist/mappers/mappers.test.d.ts.map +0 -1
  133. package/dist/mappers/mappers.test.js +0 -105
  134. package/dist/mock-server/mock-server.d.ts.map +0 -1
  135. package/dist/mock-server/mock-server.interfaces.d.ts.map +0 -1
  136. package/dist/multithreading/create-worker.test.d.ts +0 -2
  137. package/dist/multithreading/create-worker.test.d.ts.map +0 -1
  138. package/dist/multithreading/create-worker.test.js +0 -108
  139. package/dist/multithreading/process-task.test.d.ts +0 -2
  140. package/dist/multithreading/process-task.test.d.ts.map +0 -1
  141. package/dist/multithreading/process-task.test.js +0 -146
  142. package/dist/multithreading/spawn/spawn.helpers.test.d.ts +0 -2
  143. package/dist/multithreading/spawn/spawn.helpers.test.d.ts.map +0 -1
  144. package/dist/multithreading/spawn/spawn.helpers.test.js +0 -293
  145. package/dist/multithreading/spawn/spawn.test.d.ts +0 -2
  146. package/dist/multithreading/spawn/spawn.test.d.ts.map +0 -1
  147. package/dist/multithreading/spawn/spawn.test.js +0 -232
  148. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts +0 -2
  149. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts.map +0 -1
  150. package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.js +0 -175
  151. package/dist/multithreading/worker-adapter/worker-adapter.d.ts +0 -97
  152. package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +0 -1
  153. package/dist/multithreading/worker-adapter/worker-adapter.emit.test.d.ts +0 -2
  154. package/dist/multithreading/worker-adapter/worker-adapter.emit.test.d.ts.map +0 -1
  155. package/dist/multithreading/worker-adapter/worker-adapter.emit.test.js +0 -390
  156. package/dist/multithreading/worker-adapter/worker-adapter.extraction.test.d.ts +0 -2
  157. package/dist/multithreading/worker-adapter/worker-adapter.extraction.test.d.ts.map +0 -1
  158. package/dist/multithreading/worker-adapter/worker-adapter.extraction.test.js +0 -799
  159. package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +0 -1
  160. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts +0 -2
  161. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts.map +0 -1
  162. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.js +0 -514
  163. package/dist/multithreading/worker-adapter/worker-adapter.js +0 -846
  164. package/dist/multithreading/worker-adapter/worker-adapter.loading.test.d.ts +0 -2
  165. package/dist/multithreading/worker-adapter/worker-adapter.loading.test.d.ts.map +0 -1
  166. package/dist/multithreading/worker-adapter/worker-adapter.loading.test.js +0 -596
  167. package/dist/multithreading/worker-adapter/worker-adapter.serialization.test.d.ts +0 -2
  168. package/dist/multithreading/worker-adapter/worker-adapter.serialization.test.d.ts.map +0 -1
  169. package/dist/multithreading/worker-adapter/worker-adapter.serialization.test.js +0 -71
  170. package/dist/repo/repo.test.d.ts +0 -2
  171. package/dist/repo/repo.test.d.ts.map +0 -1
  172. package/dist/repo/repo.test.js +0 -184
  173. package/dist/state/state.extract-window.test.d.ts +0 -2
  174. package/dist/state/state.extract-window.test.d.ts.map +0 -1
  175. package/dist/state/state.extract-window.test.js +0 -163
  176. package/dist/state/state.pending-boundaries.test.d.ts +0 -2
  177. package/dist/state/state.pending-boundaries.test.d.ts.map +0 -1
  178. package/dist/state/state.pending-boundaries.test.js +0 -189
  179. package/dist/state/state.post-state.test.d.ts +0 -2
  180. package/dist/state/state.post-state.test.d.ts.map +0 -1
  181. package/dist/state/state.post-state.test.js +0 -77
  182. package/dist/state/state.test.d.ts +0 -2
  183. package/dist/state/state.test.d.ts.map +0 -1
  184. package/dist/state/state.test.js +0 -268
  185. package/dist/state/state.time-value-resolution.test.d.ts +0 -2
  186. package/dist/state/state.time-value-resolution.test.d.ts.map +0 -1
  187. package/dist/state/state.time-value-resolution.test.js +0 -175
  188. package/dist/tsdoc-metadata.json +0 -11
  189. package/dist/types/extraction.test.d.ts +0 -2
  190. package/dist/types/extraction.test.d.ts.map +0 -1
  191. package/dist/types/extraction.test.js +0 -96
  192. package/dist/types/index.d.ts +0 -11
  193. package/dist/types/index.d.ts.map +0 -1
  194. package/dist/types/index.js +0 -21
  195. package/dist/uploader/uploader.helpers.test.d.ts +0 -2
  196. package/dist/uploader/uploader.helpers.test.d.ts.map +0 -1
  197. package/dist/uploader/uploader.helpers.test.js +0 -256
  198. package/dist/uploader/uploader.test.d.ts +0 -2
  199. package/dist/uploader/uploader.test.d.ts.map +0 -1
  200. package/dist/uploader/uploader.test.js +0 -601
  201. /package/dist/http/{axios-client-internal.js → client.js} +0 -0
  202. /package/dist/multithreading/{worker-adapter/worker-adapter.helpers.js → adapters/loading-adapter.helpers.js} +0 -0
  203. /package/dist/{common → state}/install-initial-domain-mapping.d.ts +0 -0
  204. /package/dist/{mock-server → testing}/mock-server.interfaces.d.ts +0 -0
  205. /package/dist/{mock-server → testing}/mock-server.interfaces.js +0 -0
  206. /package/dist/{common → types}/errors.js +0 -0
@@ -0,0 +1,29 @@
1
+ import { BaseState } from './base-state';
2
+ import { StateInterface } from './state.interfaces';
3
+ /**
4
+ * ExtractionState is the per-mode state for extraction workers. It seeds the
5
+ * extraction SDK state (extraction boundaries + attachments bookkeeping) on top
6
+ * of the shared lifecycle provided by `BaseState` and adds extraction-window
7
+ * resolution.
8
+ */
9
+ export declare class ExtractionState<ConnectorState> extends BaseState<ConnectorState> {
10
+ constructor(params: StateInterface<ConnectorState>);
11
+ /**
12
+ * Resolves the extraction window onto the event context.
13
+ *
14
+ * On StartExtractingMetadata: resolve fresh from the TimeValue objects in the
15
+ * event context and cache them as pending boundaries (always overwrite).
16
+ * On all other events: reuse the pending boundaries cached during
17
+ * StartExtractingMetadata. Finally, validate that extract_from < extract_to.
18
+ */
19
+ resolveExtractionWindow(): void;
20
+ }
21
+ /**
22
+ * Creates and initializes an `ExtractionState` for an extraction worker.
23
+ *
24
+ * For non-stateless events this fetches persisted state, installs the initial
25
+ * domain mapping if the snap-in version changed, then resolves the extraction
26
+ * window (time-value resolution + pending boundary reuse) and validates it.
27
+ */
28
+ export declare function createExtractionState<ConnectorState>({ event, initialState, initialDomainMapping, options, }: StateInterface<ConnectorState>): Promise<ExtractionState<ConnectorState>>;
29
+ //# sourceMappingURL=extraction-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraction-state.d.ts","sourceRoot":"","sources":["../../src/state/extraction-state.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAsB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAExE;;;;;GAKG;AACH,qBAAa,eAAe,CAAC,cAAc,CAAE,SAAQ,SAAS,CAAC,cAAc,CAAC;gBAChE,MAAM,EAAE,cAAc,CAAC,cAAc,CAAC;IAIlD;;;;;;;OAOG;IACH,uBAAuB,IAAI,IAAI;CA+EhC;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,cAAc,EAAE,EAC1D,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,OAAO,GACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAkB3E"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExtractionState = void 0;
4
+ exports.createExtractionState = createExtractionState;
5
+ const node_worker_threads_1 = require("node:worker_threads");
6
+ const constants_1 = require("../common/constants");
7
+ const time_value_resolver_1 = require("./time-value-resolver");
8
+ const logger_1 = require("../logger/logger");
9
+ const extraction_1 = require("../types/extraction");
10
+ const workers_1 = require("../types/workers");
11
+ const base_state_1 = require("./base-state");
12
+ const state_interfaces_1 = require("./state.interfaces");
13
+ /**
14
+ * ExtractionState is the per-mode state for extraction workers. It seeds the
15
+ * extraction SDK state (extraction boundaries + attachments bookkeeping) on top
16
+ * of the shared lifecycle provided by `BaseState` and adds extraction-window
17
+ * resolution.
18
+ */
19
+ class ExtractionState extends base_state_1.BaseState {
20
+ constructor(params) {
21
+ super(params, state_interfaces_1.extractionSdkState);
22
+ }
23
+ /**
24
+ * Resolves the extraction window onto the event context.
25
+ *
26
+ * On StartExtractingMetadata: resolve fresh from the TimeValue objects in the
27
+ * event context and cache them as pending boundaries (always overwrite).
28
+ * On all other events: reuse the pending boundaries cached during
29
+ * StartExtractingMetadata. Finally, validate that extract_from < extract_to.
30
+ */
31
+ resolveExtractionWindow() {
32
+ const sdkState = this.sdkState;
33
+ const eventContext = this.event.payload.event_context;
34
+ if (this.event.payload.event_type === extraction_1.EventType.StartExtractingMetadata) {
35
+ const timeFields = [
36
+ {
37
+ source: 'extraction_start_time',
38
+ target: 'extract_from',
39
+ pending: 'pendingWorkersOldest',
40
+ },
41
+ {
42
+ source: 'extraction_end_time',
43
+ target: 'extract_to',
44
+ pending: 'pendingWorkersNewest',
45
+ },
46
+ ];
47
+ for (const { source, target, pending } of timeFields) {
48
+ const timeValue = eventContext[source];
49
+ if (timeValue && timeValue.type) {
50
+ try {
51
+ const resolved = (0, time_value_resolver_1.resolveTimeValue)(timeValue, sdkState);
52
+ eventContext[target] = resolved;
53
+ sdkState[pending] = resolved;
54
+ console.log(`Resolved ${target} to ${resolved}. Stored in ${pending}.`);
55
+ }
56
+ catch (error) {
57
+ const errorMessage = `Failed to resolve ${source}: ${(0, logger_1.serializeError)(error)}`;
58
+ console.error(errorMessage);
59
+ node_worker_threads_1.parentPort === null || node_worker_threads_1.parentPort === void 0 ? void 0 : node_worker_threads_1.parentPort.postMessage({
60
+ subject: workers_1.WorkerMessageSubject.WorkerMessageFailed,
61
+ payload: { message: errorMessage },
62
+ });
63
+ process.exit(1);
64
+ }
65
+ }
66
+ }
67
+ }
68
+ else {
69
+ // Non-StartExtractingMetadata events: reuse pending values from state
70
+ if (sdkState.pendingWorkersOldest) {
71
+ eventContext.extract_from = sdkState.pendingWorkersOldest;
72
+ console.log(`Reusing pendingWorkersOldest as extract_from: ${sdkState.pendingWorkersOldest}.`);
73
+ }
74
+ else {
75
+ console.log('pendingWorkersOldest is not set in state. extract_from will not be populated for this invocation.');
76
+ }
77
+ if (sdkState.pendingWorkersNewest) {
78
+ eventContext.extract_to = sdkState.pendingWorkersNewest;
79
+ console.log(`Reusing pendingWorkersNewest as extract_to: ${sdkState.pendingWorkersNewest}.`);
80
+ }
81
+ else {
82
+ console.log('pendingWorkersNewest is not set in state. extract_to will not be populated for this invocation.');
83
+ }
84
+ }
85
+ // Validate that extract_from is before extract_to
86
+ if (eventContext.extract_from && eventContext.extract_to) {
87
+ if (eventContext.extract_from >= eventContext.extract_to) {
88
+ const errorMessage = `Invalid extraction window: extract_from (${eventContext.extract_from}) must be older than extract_to (${eventContext.extract_to}). This indicates an error in the platform.`;
89
+ console.error(errorMessage);
90
+ node_worker_threads_1.parentPort === null || node_worker_threads_1.parentPort === void 0 ? void 0 : node_worker_threads_1.parentPort.postMessage({
91
+ subject: workers_1.WorkerMessageSubject.WorkerMessageFailed,
92
+ payload: { message: errorMessage },
93
+ });
94
+ process.exit(1);
95
+ }
96
+ }
97
+ }
98
+ }
99
+ exports.ExtractionState = ExtractionState;
100
+ /**
101
+ * Creates and initializes an `ExtractionState` for an extraction worker.
102
+ *
103
+ * For non-stateless events this fetches persisted state, installs the initial
104
+ * domain mapping if the snap-in version changed, then resolves the extraction
105
+ * window (time-value resolution + pending boundary reuse) and validates it.
106
+ */
107
+ async function createExtractionState({ event, initialState, initialDomainMapping, options, }) {
108
+ // Deep clone the initial state to avoid mutating the original state
109
+ const deepCloneInitialState = structuredClone(initialState);
110
+ const state = new ExtractionState({
111
+ event,
112
+ initialState: deepCloneInitialState,
113
+ initialDomainMapping,
114
+ options,
115
+ });
116
+ if (!constants_1.STATELESS_EVENT_TYPES.includes(event.payload.event_type)) {
117
+ await state.init(deepCloneInitialState);
118
+ await state.installInitialDomainMappingIfNeeded(initialDomainMapping);
119
+ state.resolveExtractionWindow();
120
+ }
121
+ return state;
122
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-initial-domain-mapping.d.ts","sourceRoot":"","sources":["../../src/state/install-initial-domain-mapping.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,YAAY,EACnB,wBAAwB,EAAE,oBAAoB,GAC7C,OAAO,CAAC,IAAI,CAAC,CA0Ff"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.installInitialDomainMapping = installInitialDomainMapping;
4
- const axios_client_internal_1 = require("../http/axios-client-internal");
4
+ const client_1 = require("../http/client");
5
5
  const logger_1 = require("../logger/logger");
6
6
  async function installInitialDomainMapping(event, initialDomainMappingJson) {
7
7
  var _a, _b, _c, _d, _e, _f, _g;
@@ -13,7 +13,7 @@ async function installInitialDomainMapping(event, initialDomainMappingJson) {
13
13
  return;
14
14
  }
15
15
  // Get snap-in details
16
- const snapInResponse = await axios_client_internal_1.axiosClient.get(devrevEndpoint + '/internal/snap-ins.get', {
16
+ const snapInResponse = await client_1.axiosClient.get(devrevEndpoint + '/internal/snap-ins.get', {
17
17
  headers: {
18
18
  Authorization: devrevToken,
19
19
  },
@@ -33,7 +33,7 @@ async function installInitialDomainMapping(event, initialDomainMappingJson) {
33
33
  if (startingRecipeBlueprint &&
34
34
  Object.keys(startingRecipeBlueprint).length !== 0) {
35
35
  try {
36
- const recipeBlueprintResponse = await axios_client_internal_1.axiosClient.post(`${devrevEndpoint}/internal/airdrop.recipe.blueprints.create`, Object.assign({}, startingRecipeBlueprint), {
36
+ const recipeBlueprintResponse = await client_1.axiosClient.post(`${devrevEndpoint}/internal/airdrop.recipe.blueprints.create`, Object.assign({}, startingRecipeBlueprint), {
37
37
  headers: {
38
38
  Authorization: devrevToken,
39
39
  },
@@ -47,7 +47,7 @@ async function installInitialDomainMapping(event, initialDomainMappingJson) {
47
47
  }
48
48
  // Install the initial domain mappings
49
49
  const additionalMappings = initialDomainMappingJson.additional_mappings || {};
50
- const initialDomainMappingInstallResponse = await axios_client_internal_1.axiosClient.post(`${devrevEndpoint}/internal/airdrop.recipe.initial-domain-mappings.install`, Object.assign(Object.assign({ external_system_type: 'ADaaS', import_slug: importSlug, snap_in_slug: snapInSlug }, (recipeBlueprintId && {
50
+ const initialDomainMappingInstallResponse = await client_1.axiosClient.post(`${devrevEndpoint}/internal/airdrop.recipe.initial-domain-mappings.install`, Object.assign(Object.assign({ external_system_type: 'ADaaS', import_slug: importSlug, snap_in_slug: snapInSlug }, (recipeBlueprintId && {
51
51
  starting_recipe_blueprint: recipeBlueprintId,
52
52
  })), additionalMappings), {
53
53
  headers: {
@@ -0,0 +1,18 @@
1
+ import { BaseState } from './base-state';
2
+ import { StateInterface } from './state.interfaces';
3
+ /**
4
+ * LoadingState is the per-mode state for loading workers. It seeds the loading
5
+ * SDK state (files-to-load bookkeeping) on top of the shared lifecycle provided
6
+ * by `BaseState`. Loading has no extraction-window resolution.
7
+ */
8
+ export declare class LoadingState<ConnectorState> extends BaseState<ConnectorState> {
9
+ constructor(params: StateInterface<ConnectorState>);
10
+ }
11
+ /**
12
+ * Creates and initializes a `LoadingState` for a loading worker.
13
+ *
14
+ * For non-stateless events this fetches persisted state and installs the
15
+ * initial domain mapping if the snap-in version changed.
16
+ */
17
+ export declare function createLoadingState<ConnectorState>({ event, initialState, initialDomainMapping, options, }: StateInterface<ConnectorState>): Promise<LoadingState<ConnectorState>>;
18
+ //# sourceMappingURL=loading-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-state.d.ts","sourceRoot":"","sources":["../../src/state/loading-state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAmB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;GAIG;AACH,qBAAa,YAAY,CAAC,cAAc,CAAE,SAAQ,SAAS,CAAC,cAAc,CAAC;gBAC7D,MAAM,EAAE,cAAc,CAAC,cAAc,CAAC;CAGnD;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,EACvD,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,OAAO,GACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAiBxE"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoadingState = void 0;
4
+ exports.createLoadingState = createLoadingState;
5
+ const constants_1 = require("../common/constants");
6
+ const base_state_1 = require("./base-state");
7
+ const state_interfaces_1 = require("./state.interfaces");
8
+ /**
9
+ * LoadingState is the per-mode state for loading workers. It seeds the loading
10
+ * SDK state (files-to-load bookkeeping) on top of the shared lifecycle provided
11
+ * by `BaseState`. Loading has no extraction-window resolution.
12
+ */
13
+ class LoadingState extends base_state_1.BaseState {
14
+ constructor(params) {
15
+ super(params, state_interfaces_1.loadingSdkState);
16
+ }
17
+ }
18
+ exports.LoadingState = LoadingState;
19
+ /**
20
+ * Creates and initializes a `LoadingState` for a loading worker.
21
+ *
22
+ * For non-stateless events this fetches persisted state and installs the
23
+ * initial domain mapping if the snap-in version changed.
24
+ */
25
+ async function createLoadingState({ event, initialState, initialDomainMapping, options, }) {
26
+ // Deep clone the initial state to avoid mutating the original state
27
+ const deepCloneInitialState = structuredClone(initialState);
28
+ const state = new LoadingState({
29
+ event,
30
+ initialState: deepCloneInitialState,
31
+ initialDomainMapping,
32
+ options,
33
+ });
34
+ if (!constants_1.STATELESS_EVENT_TYPES.includes(event.payload.event_type)) {
35
+ await state.init(deepCloneInitialState);
36
+ await state.installInitialDomainMappingIfNeeded(initialDomainMapping);
37
+ }
38
+ return state;
39
+ }
@@ -1,36 +1,4 @@
1
- import { AdapterState, StateInterface } from './state.interfaces';
2
- import { ExtractionScope } from '../types/workers';
3
- export declare function createAdapterState<ConnectorState>({ event, initialState, initialDomainMapping, options, }: StateInterface<ConnectorState>): Promise<State<ConnectorState>>;
4
- export declare class State<ConnectorState> {
5
- private _state;
6
- private _extractionScope;
7
- private initialSdkState;
8
- private workerUrl;
9
- private devrevToken;
10
- private syncUnitId;
11
- private requestId;
12
- constructor({ event, initialState }: StateInterface<ConnectorState>);
13
- get state(): AdapterState<ConnectorState>;
14
- set state(value: AdapterState<ConnectorState>);
15
- get extractionScope(): ExtractionScope;
16
- /**
17
- * Initializes the state for this adapter instance by fetching from API
18
- * or creating an initial state if none exists (404).
19
- * @param initialState The initial connector state provided by the spawn function
20
- */
21
- init(initialState: ConnectorState): Promise<void>;
22
- /**
23
- * Updates the state of the adapter by posting to API.
24
- * @param {object} state - The state to be updated
25
- */
26
- postState(state?: AdapterState<ConnectorState>): Promise<void>;
27
- /**
28
- * Fetches the state of the adapter from API.
29
- * @return The raw state data from API
30
- */
31
- fetchState(): Promise<{
32
- state: string;
33
- objects?: string;
34
- }>;
35
- }
1
+ export { BaseState } from './base-state';
2
+ export { ExtractionState, createExtractionState } from './extraction-state';
3
+ export { LoadingState, createLoadingState } from './loading-state';
36
4
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"AAYA,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,CAoIjE;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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -18,10 +18,14 @@ export interface SdkState {
18
18
  snapInVersionId?: string;
19
19
  }
20
20
  /**
21
- * AdapterState is an interface that defines the structure of the adapter state that is used by the external extractor.
22
- * It extends the connector state with additional fields including snapInVersionId and attachmentsMetadata.
21
+ * AdapterStateEnvelope is the v2 on-disk state shape: connector state and SDK
22
+ * bookkeeping are stored as disjoint sub-objects so SDK internals stay
23
+ * encapsulated and never collide with connector keys.
23
24
  */
24
- export type AdapterState<ConnectorState> = ConnectorState & SdkState;
25
+ export interface AdapterStateEnvelope<ConnectorState> {
26
+ connectorState: ConnectorState;
27
+ sdkState: SdkState;
28
+ }
25
29
  export interface ToDevRev {
26
30
  attachmentsMetadata: {
27
31
  artifactIds: string[];
@@ -65,4 +69,17 @@ export declare const loadingSdkState: {
65
69
  filesToLoad: never[];
66
70
  };
67
71
  };
72
+ /**
73
+ * The set of top-level state keys owned by the SDK. Derived from the initial
74
+ * SDK state constants so it auto-updates whenever a new SDK field is added.
75
+ * Used by the migration shim to split a flat v1 state blob into the
76
+ * `{ connectorState, sdkState }` envelope: keys in this set go to `sdkState`,
77
+ * everything else is connector state.
78
+ *
79
+ * `lastSyncStarted` / `lastSuccessfulSyncStarted` are retained here even though
80
+ * they are no longer fields on `SdkState`: a flat v1 blob may still carry them,
81
+ * and they must be recognized as SDK-owned so they are stripped out rather than
82
+ * leaking into connector state during migration.
83
+ */
84
+ export declare const V1_SDK_STATE_KEYS: ReadonlySet<string>;
68
85
  //# sourceMappingURL=state.interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.interfaces.d.ts","sourceRoot":"","sources":["../../src/state/state.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB;gHAC4G;IAC5G,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;gHAC4G;IAC5G,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,cAAc,IAAI,cAAc,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,QAAQ;IACvB,mBAAmB,EAAE;QACnB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,+BAA+B,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACzD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc,CAAC,cAAc;IAC5C,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,cAAc,CAAC;IAC7B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;CAa9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC"}
1
+ {"version":3,"file":"state.interfaces.d.ts","sourceRoot":"","sources":["../../src/state/state.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB;gHAC4G;IAC5G,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;gHAC4G;IAC5G,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CAAC,cAAc;IAClD,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,mBAAmB,EAAE;QACnB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,+BAA+B,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACzD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc,CAAC,cAAc;IAC5C,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,cAAc,CAAC;IAC7B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;CAa9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAKhD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadingSdkState = exports.extractionSdkState = void 0;
3
+ exports.V1_SDK_STATE_KEYS = exports.loadingSdkState = exports.extractionSdkState = void 0;
4
4
  exports.extractionSdkState = {
5
5
  pendingWorkersOldest: '',
6
6
  pendingWorkersNewest: '',
@@ -21,3 +21,21 @@ exports.loadingSdkState = {
21
21
  filesToLoad: [],
22
22
  },
23
23
  };
24
+ /**
25
+ * The set of top-level state keys owned by the SDK. Derived from the initial
26
+ * SDK state constants so it auto-updates whenever a new SDK field is added.
27
+ * Used by the migration shim to split a flat v1 state blob into the
28
+ * `{ connectorState, sdkState }` envelope: keys in this set go to `sdkState`,
29
+ * everything else is connector state.
30
+ *
31
+ * `lastSyncStarted` / `lastSuccessfulSyncStarted` are retained here even though
32
+ * they are no longer fields on `SdkState`: a flat v1 blob may still carry them,
33
+ * and they must be recognized as SDK-owned so they are stripped out rather than
34
+ * leaking into connector state during migration.
35
+ */
36
+ exports.V1_SDK_STATE_KEYS = new Set([
37
+ ...Object.keys(exports.extractionSdkState),
38
+ ...Object.keys(exports.loadingSdkState),
39
+ 'lastSyncStarted',
40
+ 'lastSuccessfulSyncStarted',
41
+ ]);