@devrev/airsync-sdk 2.0.0-beta.1 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -21
- package/dist/attachments-streaming/attachments-streaming-pool.d.ts +6 -7
- package/dist/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
- package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts +4 -3
- package/dist/attachments-streaming/attachments-streaming-pool.interfaces.d.ts.map +1 -1
- package/dist/attachments-streaming/attachments-streaming-pool.js +69 -61
- package/dist/common/constants.d.ts +15 -12
- package/dist/common/constants.d.ts.map +1 -1
- package/dist/common/constants.js +20 -34
- package/dist/common/helpers.d.ts +3 -27
- package/dist/common/helpers.d.ts.map +1 -1
- package/dist/common/helpers.js +6 -36
- package/dist/http/{axios-client-internal.d.ts → client.d.ts} +1 -1
- package/dist/http/client.d.ts.map +1 -0
- package/dist/http/{axios-client-internal.js → client.js} +7 -4
- package/dist/http/errors.d.ts +8 -0
- package/dist/http/errors.d.ts.map +1 -0
- package/dist/http/errors.js +31 -0
- package/dist/index.d.ts +30 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -28
- package/dist/logger/logger.d.ts +13 -70
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.interfaces.d.ts +4 -7
- package/dist/logger/logger.interfaces.d.ts.map +1 -1
- package/dist/logger/logger.js +67 -92
- package/dist/mappers/mappers.d.ts +10 -43
- package/dist/mappers/mappers.d.ts.map +1 -1
- package/dist/mappers/mappers.interfaces.d.ts +173 -0
- package/dist/mappers/mappers.interfaces.d.ts.map +1 -0
- package/dist/mappers/{mappers.interface.js → mappers.interfaces.js} +1 -10
- package/dist/mappers/mappers.js +32 -46
- package/dist/multithreading/adapters/base-adapter.d.ts +39 -0
- package/dist/multithreading/adapters/base-adapter.d.ts.map +1 -0
- package/dist/multithreading/adapters/base-adapter.js +212 -0
- package/dist/multithreading/adapters/extraction-adapter.d.ts +49 -0
- package/dist/multithreading/adapters/extraction-adapter.d.ts.map +1 -0
- package/dist/multithreading/adapters/extraction-adapter.js +375 -0
- package/dist/multithreading/adapters/loading-adapter.d.ts +26 -0
- package/dist/multithreading/adapters/loading-adapter.d.ts.map +1 -0
- package/dist/multithreading/adapters/loading-adapter.helpers.d.ts +12 -0
- package/dist/multithreading/adapters/loading-adapter.helpers.d.ts.map +1 -0
- package/dist/multithreading/{worker-adapter/worker-adapter.helpers.js → adapters/loading-adapter.helpers.js} +2 -12
- package/dist/multithreading/adapters/loading-adapter.js +279 -0
- package/dist/multithreading/emit.d.ts +11 -0
- package/dist/multithreading/emit.d.ts.map +1 -0
- package/dist/multithreading/emit.js +25 -0
- package/dist/multithreading/process-task.d.ts +6 -1
- package/dist/multithreading/process-task.d.ts.map +1 -1
- package/dist/multithreading/process-task.js +120 -82
- package/dist/multithreading/spawn/spawn.d.ts +10 -11
- package/dist/multithreading/spawn/spawn.d.ts.map +1 -1
- package/dist/multithreading/spawn/spawn.helpers.d.ts +12 -11
- package/dist/multithreading/spawn/spawn.helpers.d.ts.map +1 -1
- package/dist/multithreading/spawn/spawn.helpers.js +142 -77
- package/dist/multithreading/spawn/spawn.js +59 -75
- package/dist/multithreading/worker.js +16 -5
- package/dist/repo/repo.d.ts +14 -5
- package/dist/repo/repo.d.ts.map +1 -1
- package/dist/repo/repo.helpers.d.ts +6 -0
- package/dist/repo/repo.helpers.d.ts.map +1 -0
- package/dist/repo/repo.helpers.js +16 -0
- package/dist/repo/repo.interfaces.d.ts +11 -20
- package/dist/repo/repo.interfaces.d.ts.map +1 -1
- package/dist/repo/repo.js +36 -22
- package/dist/state/base-state.d.ts +58 -0
- package/dist/state/base-state.d.ts.map +1 -0
- package/dist/state/base-state.js +242 -0
- package/dist/state/extraction-state.d.ts +14 -0
- package/dist/state/extraction-state.d.ts.map +1 -0
- package/dist/state/extraction-state.js +140 -0
- package/dist/state/install-initial-domain-mapping.d.ts +4 -0
- package/dist/state/install-initial-domain-mapping.d.ts.map +1 -0
- package/dist/{common → state}/install-initial-domain-mapping.js +5 -7
- package/dist/state/loading-state.d.ts +8 -0
- package/dist/state/loading-state.d.ts.map +1 -0
- package/dist/state/loading-state.js +29 -0
- package/dist/state/state.d.ts +3 -29
- package/dist/state/state.d.ts.map +1 -1
- package/dist/state/state.interfaces.d.ts +31 -12
- package/dist/state/state.interfaces.d.ts.map +1 -1
- package/dist/state/state.interfaces.js +17 -1
- package/dist/state/state.js +9 -164
- package/dist/state/time-value-resolver.d.ts +17 -0
- package/dist/state/time-value-resolver.d.ts.map +1 -0
- package/dist/state/time-value-resolver.js +110 -0
- package/dist/testing/mock-event.d.ts +10 -0
- package/dist/testing/mock-event.d.ts.map +1 -0
- package/dist/testing/mock-event.js +96 -0
- package/dist/testing/mock-server.d.ts +31 -0
- package/dist/testing/mock-server.d.ts.map +1 -0
- package/dist/testing/mock-server.interfaces.d.ts +54 -0
- package/dist/testing/mock-server.interfaces.d.ts.map +1 -0
- package/dist/testing/mock-server.interfaces.js +4 -0
- package/dist/testing/mock-server.js +297 -0
- package/dist/testing/test-adapters.d.ts +22 -0
- package/dist/testing/test-adapters.d.ts.map +1 -0
- package/dist/testing/test-adapters.js +32 -0
- package/dist/types/common.d.ts +4 -37
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +2 -17
- package/dist/types/errors.d.ts +15 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +28 -0
- package/dist/types/external-domain-metadata.d.ts +40 -162
- package/dist/types/external-domain-metadata.d.ts.map +1 -1
- package/dist/types/extraction.d.ts +135 -278
- package/dist/types/extraction.d.ts.map +1 -1
- package/dist/types/extraction.js +46 -133
- package/dist/types/loading.d.ts +15 -55
- package/dist/types/loading.d.ts.map +1 -1
- package/dist/types/loading.js +1 -23
- package/dist/types/workers.d.ts +70 -103
- package/dist/types/workers.d.ts.map +1 -1
- package/dist/types/workers.js +1 -6
- package/dist/uploader/uploader.d.ts +10 -61
- package/dist/uploader/uploader.d.ts.map +1 -1
- package/dist/uploader/uploader.helpers.d.ts +7 -27
- package/dist/uploader/uploader.helpers.d.ts.map +1 -1
- package/dist/uploader/uploader.helpers.js +80 -30
- package/dist/uploader/uploader.interfaces.d.ts +19 -54
- package/dist/uploader/uploader.interfaces.d.ts.map +1 -1
- package/dist/uploader/uploader.interfaces.js +8 -0
- package/dist/uploader/uploader.js +72 -124
- package/docs/MIGRATION.md +696 -0
- package/package.json +35 -22
- package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts +0 -2
- package/dist/attachments-streaming/attachments-streaming-pool.test.d.ts.map +0 -1
- package/dist/attachments-streaming/attachments-streaming-pool.test.js +0 -321
- package/dist/common/control-protocol.d.ts +0 -10
- package/dist/common/control-protocol.d.ts.map +0 -1
- package/dist/common/control-protocol.js +0 -31
- package/dist/common/errors.d.ts +0 -6
- package/dist/common/errors.d.ts.map +0 -1
- package/dist/common/errors.js +0 -4
- package/dist/common/event-type-translation.d.ts +0 -24
- package/dist/common/event-type-translation.d.ts.map +0 -1
- package/dist/common/event-type-translation.js +0 -117
- package/dist/common/install-initial-domain-mapping.d.ts +0 -4
- package/dist/common/install-initial-domain-mapping.d.ts.map +0 -1
- package/dist/common/install-initial-domain-mapping.test.d.ts +0 -2
- package/dist/common/install-initial-domain-mapping.test.d.ts.map +0 -1
- package/dist/common/install-initial-domain-mapping.test.js +0 -208
- package/dist/deprecated/adapter/index.d.ts +0 -62
- package/dist/deprecated/adapter/index.d.ts.map +0 -1
- package/dist/deprecated/adapter/index.js +0 -151
- package/dist/deprecated/common/helpers.d.ts +0 -7
- package/dist/deprecated/common/helpers.d.ts.map +0 -1
- package/dist/deprecated/common/helpers.js +0 -47
- package/dist/deprecated/demo-extractor/external_domain_metadata.json +0 -38
- package/dist/deprecated/demo-extractor/index.d.ts +0 -18
- package/dist/deprecated/demo-extractor/index.d.ts.map +0 -1
- package/dist/deprecated/demo-extractor/index.js +0 -161
- package/dist/deprecated/http/client.d.ts +0 -22
- package/dist/deprecated/http/client.d.ts.map +0 -1
- package/dist/deprecated/http/client.js +0 -161
- package/dist/deprecated/uploader/index.d.ts +0 -35
- package/dist/deprecated/uploader/index.d.ts.map +0 -1
- package/dist/deprecated/uploader/index.js +0 -161
- package/dist/http/axios-client-internal.d.ts.map +0 -1
- package/dist/http/axios-client-internal.test.d.ts +0 -2
- package/dist/http/axios-client-internal.test.d.ts.map +0 -1
- package/dist/http/axios-client-internal.test.js +0 -154
- package/dist/http/axios-client.d.ts +0 -27
- package/dist/http/axios-client.d.ts.map +0 -1
- package/dist/http/axios-client.js +0 -57
- package/dist/http/constants.d.ts +0 -4
- package/dist/http/constants.d.ts.map +0 -1
- package/dist/http/constants.js +0 -6
- package/dist/http/index.d.ts +0 -3
- package/dist/http/index.d.ts.map +0 -1
- package/dist/http/index.js +0 -18
- package/dist/http/types.d.ts +0 -17
- package/dist/http/types.d.ts.map +0 -1
- package/dist/http/types.js +0 -2
- package/dist/logger/logger.constants.d.ts +0 -6
- package/dist/logger/logger.constants.d.ts.map +0 -1
- package/dist/logger/logger.constants.js +0 -13
- package/dist/logger/logger.context.d.ts +0 -58
- package/dist/logger/logger.context.d.ts.map +0 -1
- package/dist/logger/logger.context.js +0 -86
- package/dist/logger/logger.test.d.ts +0 -2
- package/dist/logger/logger.test.d.ts.map +0 -1
- package/dist/logger/logger.test.js +0 -490
- package/dist/mappers/mappers.interface.d.ts +0 -294
- package/dist/mappers/mappers.interface.d.ts.map +0 -1
- package/dist/mappers/mappers.test.d.ts +0 -2
- package/dist/mappers/mappers.test.d.ts.map +0 -1
- package/dist/mappers/mappers.test.js +0 -107
- package/dist/multithreading/create-worker.test.d.ts +0 -2
- package/dist/multithreading/create-worker.test.d.ts.map +0 -1
- package/dist/multithreading/create-worker.test.js +0 -89
- package/dist/multithreading/spawn/spawn.helpers.test.d.ts +0 -2
- package/dist/multithreading/spawn/spawn.helpers.test.d.ts.map +0 -1
- package/dist/multithreading/spawn/spawn.helpers.test.js +0 -293
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.js +0 -127
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts +0 -91
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts +0 -22
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.js +0 -514
- package/dist/multithreading/worker-adapter/worker-adapter.js +0 -745
- package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts +0 -2
- package/dist/multithreading/worker-adapter/worker-adapter.test.d.ts.map +0 -1
- package/dist/multithreading/worker-adapter/worker-adapter.test.js +0 -483
- package/dist/repo/repo.test.d.ts +0 -2
- package/dist/repo/repo.test.d.ts.map +0 -1
- package/dist/repo/repo.test.js +0 -131
- package/dist/state/state.test.d.ts +0 -2
- package/dist/state/state.test.d.ts.map +0 -1
- package/dist/state/state.test.js +0 -224
- package/dist/types/extraction.test.d.ts +0 -2
- package/dist/types/extraction.test.d.ts.map +0 -1
- package/dist/types/extraction.test.js +0 -70
- package/dist/types/index.d.ts +0 -10
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -18
- package/dist/uploader/uploader.helpers.test.d.ts +0 -2
- package/dist/uploader/uploader.helpers.test.d.ts.map +0 -1
- package/dist/uploader/uploader.helpers.test.js +0 -267
- package/dist/uploader/uploader.test.d.ts +0 -2
- package/dist/uploader/uploader.test.d.ts.map +0 -1
- package/dist/uploader/uploader.test.js +0 -589
|
@@ -1,93 +1,158 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEventTypeForResult = getEventTypeForResult;
|
|
3
4
|
exports.getTimeoutErrorEventType = getTimeoutErrorEventType;
|
|
4
5
|
exports.getNoScriptEventType = getNoScriptEventType;
|
|
6
|
+
const constants_1 = require("../../common/constants");
|
|
5
7
|
const extraction_1 = require("../../types/extraction");
|
|
6
8
|
const loading_1 = require("../../types/loading");
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
9
|
-
* @
|
|
10
|
-
*
|
|
10
|
+
* Resolves the outgoing event type to emit for an incoming event type and a
|
|
11
|
+
* {@link TaskResult} status. Resumable phases honor every status
|
|
12
|
+
* (success/progress/delay/error -> *_DONE/*_PROGRESS/*_DELAYED/*_ERROR);
|
|
13
|
+
* non-resumable phases only have done/error, so `progress`/`delay` there is
|
|
14
|
+
* illegal and maps to the phase's error event.
|
|
11
15
|
*/
|
|
16
|
+
function getEventTypeForResult(eventType, status) {
|
|
17
|
+
const phase = EVENT_PHASE_MAP[eventType];
|
|
18
|
+
if (!phase) {
|
|
19
|
+
console.error('Event type not recognized in getEventTypeForResult function: ' +
|
|
20
|
+
eventType);
|
|
21
|
+
return {
|
|
22
|
+
eventType: constants_1.UNKNOWN_EVENT_TYPE,
|
|
23
|
+
illegal: true,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
// Non-resumable phases only define done/error events.
|
|
27
|
+
if (!phase.resumable) {
|
|
28
|
+
if (status === 'success') {
|
|
29
|
+
return { eventType: phase.done, illegal: false };
|
|
30
|
+
}
|
|
31
|
+
// progress/delay are illegal here; collapse them (and error) to the error event.
|
|
32
|
+
return { eventType: phase.error, illegal: status !== 'error' };
|
|
33
|
+
}
|
|
34
|
+
switch (status) {
|
|
35
|
+
case 'success':
|
|
36
|
+
return { eventType: phase.done, illegal: false };
|
|
37
|
+
case 'progress':
|
|
38
|
+
return { eventType: phase.progress, illegal: false };
|
|
39
|
+
case 'delay':
|
|
40
|
+
return { eventType: phase.delayed, illegal: false };
|
|
41
|
+
case 'error':
|
|
42
|
+
return { eventType: phase.error, illegal: false };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Per-phase outgoing event types, keyed by the incoming {@link EventType}. */
|
|
46
|
+
const EVENT_PHASE_MAP = {
|
|
47
|
+
[extraction_1.EventType.StartExtractingExternalSyncUnits]: {
|
|
48
|
+
resumable: false,
|
|
49
|
+
done: extraction_1.ExtractorEventType.ExternalSyncUnitExtractionDone,
|
|
50
|
+
error: extraction_1.ExtractorEventType.ExternalSyncUnitExtractionError,
|
|
51
|
+
},
|
|
52
|
+
[extraction_1.EventType.StartExtractingMetadata]: {
|
|
53
|
+
resumable: true,
|
|
54
|
+
done: extraction_1.ExtractorEventType.MetadataExtractionDone,
|
|
55
|
+
error: extraction_1.ExtractorEventType.MetadataExtractionError,
|
|
56
|
+
progress: extraction_1.ExtractorEventType.MetadataExtractionProgress,
|
|
57
|
+
delayed: extraction_1.ExtractorEventType.MetadataExtractionDelayed,
|
|
58
|
+
},
|
|
59
|
+
[extraction_1.EventType.ContinueExtractingMetadata]: {
|
|
60
|
+
resumable: true,
|
|
61
|
+
done: extraction_1.ExtractorEventType.MetadataExtractionDone,
|
|
62
|
+
error: extraction_1.ExtractorEventType.MetadataExtractionError,
|
|
63
|
+
progress: extraction_1.ExtractorEventType.MetadataExtractionProgress,
|
|
64
|
+
delayed: extraction_1.ExtractorEventType.MetadataExtractionDelayed,
|
|
65
|
+
},
|
|
66
|
+
[extraction_1.EventType.StartExtractingData]: {
|
|
67
|
+
resumable: true,
|
|
68
|
+
done: extraction_1.ExtractorEventType.DataExtractionDone,
|
|
69
|
+
error: extraction_1.ExtractorEventType.DataExtractionError,
|
|
70
|
+
progress: extraction_1.ExtractorEventType.DataExtractionProgress,
|
|
71
|
+
delayed: extraction_1.ExtractorEventType.DataExtractionDelayed,
|
|
72
|
+
},
|
|
73
|
+
[extraction_1.EventType.ContinueExtractingData]: {
|
|
74
|
+
resumable: true,
|
|
75
|
+
done: extraction_1.ExtractorEventType.DataExtractionDone,
|
|
76
|
+
error: extraction_1.ExtractorEventType.DataExtractionError,
|
|
77
|
+
progress: extraction_1.ExtractorEventType.DataExtractionProgress,
|
|
78
|
+
delayed: extraction_1.ExtractorEventType.DataExtractionDelayed,
|
|
79
|
+
},
|
|
80
|
+
[extraction_1.EventType.StartDeletingExtractorState]: {
|
|
81
|
+
resumable: false,
|
|
82
|
+
done: extraction_1.ExtractorEventType.ExtractorStateDeletionDone,
|
|
83
|
+
error: extraction_1.ExtractorEventType.ExtractorStateDeletionError,
|
|
84
|
+
},
|
|
85
|
+
[extraction_1.EventType.StartExtractingAttachments]: {
|
|
86
|
+
resumable: true,
|
|
87
|
+
done: extraction_1.ExtractorEventType.AttachmentExtractionDone,
|
|
88
|
+
error: extraction_1.ExtractorEventType.AttachmentExtractionError,
|
|
89
|
+
progress: extraction_1.ExtractorEventType.AttachmentExtractionProgress,
|
|
90
|
+
delayed: extraction_1.ExtractorEventType.AttachmentExtractionDelayed,
|
|
91
|
+
},
|
|
92
|
+
[extraction_1.EventType.ContinueExtractingAttachments]: {
|
|
93
|
+
resumable: true,
|
|
94
|
+
done: extraction_1.ExtractorEventType.AttachmentExtractionDone,
|
|
95
|
+
error: extraction_1.ExtractorEventType.AttachmentExtractionError,
|
|
96
|
+
progress: extraction_1.ExtractorEventType.AttachmentExtractionProgress,
|
|
97
|
+
delayed: extraction_1.ExtractorEventType.AttachmentExtractionDelayed,
|
|
98
|
+
},
|
|
99
|
+
[extraction_1.EventType.StartDeletingExtractorAttachmentsState]: {
|
|
100
|
+
resumable: false,
|
|
101
|
+
done: extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionDone,
|
|
102
|
+
error: extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionError,
|
|
103
|
+
},
|
|
104
|
+
[extraction_1.EventType.StartLoadingData]: {
|
|
105
|
+
resumable: true,
|
|
106
|
+
done: loading_1.LoaderEventType.DataLoadingDone,
|
|
107
|
+
error: loading_1.LoaderEventType.DataLoadingError,
|
|
108
|
+
progress: loading_1.LoaderEventType.DataLoadingProgress,
|
|
109
|
+
delayed: loading_1.LoaderEventType.DataLoadingDelayed,
|
|
110
|
+
},
|
|
111
|
+
[extraction_1.EventType.ContinueLoadingData]: {
|
|
112
|
+
resumable: true,
|
|
113
|
+
done: loading_1.LoaderEventType.DataLoadingDone,
|
|
114
|
+
error: loading_1.LoaderEventType.DataLoadingError,
|
|
115
|
+
progress: loading_1.LoaderEventType.DataLoadingProgress,
|
|
116
|
+
delayed: loading_1.LoaderEventType.DataLoadingDelayed,
|
|
117
|
+
},
|
|
118
|
+
[extraction_1.EventType.StartLoadingAttachments]: {
|
|
119
|
+
resumable: true,
|
|
120
|
+
done: loading_1.LoaderEventType.AttachmentLoadingDone,
|
|
121
|
+
error: loading_1.LoaderEventType.AttachmentLoadingError,
|
|
122
|
+
progress: loading_1.LoaderEventType.AttachmentLoadingProgress,
|
|
123
|
+
delayed: loading_1.LoaderEventType.AttachmentLoadingDelayed,
|
|
124
|
+
},
|
|
125
|
+
[extraction_1.EventType.ContinueLoadingAttachments]: {
|
|
126
|
+
resumable: true,
|
|
127
|
+
done: loading_1.LoaderEventType.AttachmentLoadingDone,
|
|
128
|
+
error: loading_1.LoaderEventType.AttachmentLoadingError,
|
|
129
|
+
progress: loading_1.LoaderEventType.AttachmentLoadingProgress,
|
|
130
|
+
delayed: loading_1.LoaderEventType.AttachmentLoadingDelayed,
|
|
131
|
+
},
|
|
132
|
+
[extraction_1.EventType.StartDeletingLoaderState]: {
|
|
133
|
+
resumable: false,
|
|
134
|
+
done: loading_1.LoaderEventType.LoaderStateDeletionDone,
|
|
135
|
+
error: loading_1.LoaderEventType.LoaderStateDeletionError,
|
|
136
|
+
},
|
|
137
|
+
[extraction_1.EventType.StartDeletingLoaderAttachmentState]: {
|
|
138
|
+
resumable: false,
|
|
139
|
+
done: loading_1.LoaderEventType.LoaderAttachmentStateDeletionDone,
|
|
140
|
+
error: loading_1.LoaderEventType.LoaderAttachmentStateDeletionError,
|
|
141
|
+
},
|
|
142
|
+
};
|
|
12
143
|
function getTimeoutErrorEventType(eventType) {
|
|
144
|
+
return { eventType: getEventTypeForResult(eventType, 'error').eventType };
|
|
145
|
+
}
|
|
146
|
+
/** Event type to emit when no worker script exists for the incoming event. */
|
|
147
|
+
function getNoScriptEventType(eventType) {
|
|
13
148
|
switch (eventType) {
|
|
14
|
-
//
|
|
149
|
+
// A missing metadata worker is a misconfigured connector, so report it as a
|
|
150
|
+
// phase error rather than an unknown event type.
|
|
15
151
|
case extraction_1.EventType.StartExtractingMetadata:
|
|
16
|
-
case extraction_1.EventType.
|
|
152
|
+
case extraction_1.EventType.ContinueExtractingMetadata:
|
|
17
153
|
return {
|
|
18
154
|
eventType: extraction_1.ExtractorEventType.MetadataExtractionError,
|
|
19
155
|
};
|
|
20
|
-
// Data extraction (handles both old and new enum members)
|
|
21
|
-
case extraction_1.EventType.StartExtractingData:
|
|
22
|
-
case extraction_1.EventType.ContinueExtractingData:
|
|
23
|
-
case extraction_1.EventType.ExtractionDataStart:
|
|
24
|
-
case extraction_1.EventType.ExtractionDataContinue:
|
|
25
|
-
return {
|
|
26
|
-
eventType: extraction_1.ExtractorEventType.DataExtractionError,
|
|
27
|
-
};
|
|
28
|
-
// Data deletion (handles both old and new enum members)
|
|
29
|
-
case extraction_1.EventType.StartDeletingExtractorState:
|
|
30
|
-
case extraction_1.EventType.ExtractionDataDelete:
|
|
31
|
-
return {
|
|
32
|
-
eventType: extraction_1.ExtractorEventType.ExtractorStateDeletionError,
|
|
33
|
-
};
|
|
34
|
-
// Attachments extraction (handles both old and new enum members)
|
|
35
|
-
case extraction_1.EventType.StartExtractingAttachments:
|
|
36
|
-
case extraction_1.EventType.ContinueExtractingAttachments:
|
|
37
|
-
case extraction_1.EventType.ExtractionAttachmentsStart:
|
|
38
|
-
case extraction_1.EventType.ExtractionAttachmentsContinue:
|
|
39
|
-
return {
|
|
40
|
-
eventType: extraction_1.ExtractorEventType.AttachmentExtractionError,
|
|
41
|
-
};
|
|
42
|
-
// Attachments deletion (handles both old and new enum members)
|
|
43
|
-
case extraction_1.EventType.StartDeletingExtractorAttachmentsState:
|
|
44
|
-
case extraction_1.EventType.ExtractionAttachmentsDelete:
|
|
45
|
-
return {
|
|
46
|
-
eventType: extraction_1.ExtractorEventType.ExtractorAttachmentsStateDeletionError,
|
|
47
|
-
};
|
|
48
|
-
// External sync units (handles both old and new enum members)
|
|
49
|
-
case extraction_1.EventType.StartExtractingExternalSyncUnits:
|
|
50
|
-
case extraction_1.EventType.ExtractionExternalSyncUnitsStart:
|
|
51
|
-
return {
|
|
52
|
-
eventType: extraction_1.ExtractorEventType.ExternalSyncUnitExtractionError,
|
|
53
|
-
};
|
|
54
|
-
// Loading data
|
|
55
|
-
case extraction_1.EventType.StartLoadingData:
|
|
56
|
-
case extraction_1.EventType.ContinueLoadingData:
|
|
57
|
-
return {
|
|
58
|
-
eventType: loading_1.LoaderEventType.DataLoadingError,
|
|
59
|
-
};
|
|
60
|
-
// Deleting loader state
|
|
61
|
-
case extraction_1.EventType.StartDeletingLoaderState:
|
|
62
|
-
return {
|
|
63
|
-
eventType: loading_1.LoaderEventType.LoaderStateDeletionError,
|
|
64
|
-
};
|
|
65
|
-
// Loading attachments
|
|
66
|
-
case extraction_1.EventType.StartLoadingAttachments:
|
|
67
|
-
case extraction_1.EventType.ContinueLoadingAttachments:
|
|
68
|
-
return {
|
|
69
|
-
eventType: loading_1.LoaderEventType.AttachmentLoadingError,
|
|
70
|
-
};
|
|
71
|
-
// Deleting loader attachment state
|
|
72
|
-
case extraction_1.EventType.StartDeletingLoaderAttachmentState:
|
|
73
|
-
return {
|
|
74
|
-
eventType: loading_1.LoaderEventType.LoaderAttachmentStateDeletionError,
|
|
75
|
-
};
|
|
76
|
-
default:
|
|
77
|
-
console.error('Event type not recognized in getTimeoutErrorEventType function: ' +
|
|
78
|
-
eventType);
|
|
79
|
-
return {
|
|
80
|
-
eventType: loading_1.LoaderEventType.UnknownEventType,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Gets the event type for the no script error.
|
|
86
|
-
* @param {EventType} eventType - The event type to get the no script error event type for
|
|
87
|
-
* @returns {ExtractorEventType | LoaderEventType} The event type for the no script error
|
|
88
|
-
*/
|
|
89
|
-
function getNoScriptEventType(eventType) {
|
|
90
|
-
switch (eventType) {
|
|
91
156
|
case extraction_1.EventType.StartDeletingExtractorState:
|
|
92
157
|
return {
|
|
93
158
|
eventType: extraction_1.ExtractorEventType.ExtractorStateDeletionDone,
|
|
@@ -108,7 +173,7 @@ function getNoScriptEventType(eventType) {
|
|
|
108
173
|
console.error('Event type not recognized in getNoScriptEventType function: ' +
|
|
109
174
|
eventType);
|
|
110
175
|
return {
|
|
111
|
-
eventType:
|
|
176
|
+
eventType: constants_1.UNKNOWN_EVENT_TYPE,
|
|
112
177
|
};
|
|
113
178
|
}
|
|
114
179
|
}
|
|
@@ -1,21 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.Spawn = void 0;
|
|
4
|
+
exports.isLocalDevelopment = isLocalDevelopment;
|
|
7
5
|
exports.spawn = spawn;
|
|
8
|
-
const
|
|
9
|
-
const helpers_1 = require("
|
|
10
|
-
const control_protocol_1 = require("../../common/control-protocol");
|
|
11
|
-
const event_type_translation_1 = require("../../common/event-type-translation");
|
|
12
|
-
const helpers_2 = require("../../common/helpers");
|
|
6
|
+
const constants_1 = require("../../common/constants");
|
|
7
|
+
const helpers_1 = require("../../common/helpers");
|
|
13
8
|
const logger_1 = require("../../logger/logger");
|
|
14
9
|
const extraction_1 = require("../../types/extraction");
|
|
15
10
|
const workers_1 = require("../../types/workers");
|
|
16
|
-
const constants_1 = require("../../common/constants");
|
|
17
11
|
const create_worker_1 = require("../create-worker");
|
|
12
|
+
const emit_1 = require("../emit");
|
|
18
13
|
const spawn_helpers_1 = require("./spawn.helpers");
|
|
14
|
+
const LAMBDA_ENV_MARKERS = [
|
|
15
|
+
'AWS_LAMBDA_FUNCTION_NAME',
|
|
16
|
+
'AWS_EXECUTION_ENV',
|
|
17
|
+
'LAMBDA_TASK_ROOT',
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* Local mode is opt-in through AIRSYNC_LOCAL_DEVELOPMENT only, and refused on
|
|
21
|
+
* Lambda so a stray flag can never change production behavior.
|
|
22
|
+
*/
|
|
23
|
+
function isLocalDevelopment(env = process.env) {
|
|
24
|
+
if (env.AIRSYNC_LOCAL_DEVELOPMENT !== '1') {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const marker = LAMBDA_ENV_MARKERS.find((name) => env[name]);
|
|
28
|
+
if (marker) {
|
|
29
|
+
console.warn(`Ignoring AIRSYNC_LOCAL_DEVELOPMENT because ${marker} is set (running on Lambda).`);
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
19
34
|
function getWorkerPath({ event, workerBasePath, }) {
|
|
20
35
|
let path = null;
|
|
21
36
|
switch (event.payload.event_type) {
|
|
@@ -23,6 +38,7 @@ function getWorkerPath({ event, workerBasePath, }) {
|
|
|
23
38
|
path = '/workers/external-sync-units-extraction';
|
|
24
39
|
break;
|
|
25
40
|
case extraction_1.EventType.StartExtractingMetadata:
|
|
41
|
+
case extraction_1.EventType.ContinueExtractingMetadata:
|
|
26
42
|
path = '/workers/metadata-extraction';
|
|
27
43
|
break;
|
|
28
44
|
case extraction_1.EventType.StartExtractingData:
|
|
@@ -45,55 +61,22 @@ function getWorkerPath({ event, workerBasePath, }) {
|
|
|
45
61
|
return path ? workerBasePath + path : null;
|
|
46
62
|
}
|
|
47
63
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* In case of lambda timeout, the class emits a lambda timeout event to the platform.
|
|
52
|
-
* @param {SpawnFactoryInterface} options - The options to create a new instance of Spawn class
|
|
53
|
-
* @param {AirdropEvent} options.event - The event object received from the platform
|
|
54
|
-
* @param {object} options.initialState - The initial state of the adapter
|
|
55
|
-
* @param {string} [options.workerPath] Remove getWorkerPath function and use baseWorkerPath: __dirname instead of workerPath
|
|
56
|
-
* @param {string} [options.baseWorkerPath] - The base path for the worker files, usually `__dirname`
|
|
57
|
-
* @returns {Promise<Spawn>} - A new instance of Spawn class
|
|
64
|
+
* Spawns a worker thread for the event and manages its lifecycle (control
|
|
65
|
+
* events, graceful exit, lambda timeout handling). Resolves when the worker
|
|
66
|
+
* run is fully finished.
|
|
58
67
|
*/
|
|
59
|
-
async function spawn({ event, initialState,
|
|
60
|
-
|
|
61
|
-
// SDK to accept both old and new event type formats. Then update the event with the translated event type.
|
|
62
|
-
const originalEventType = event.payload.event_type;
|
|
63
|
-
const translatedEventType = (0, event_type_translation_1.translateIncomingEventType)(event.payload.event_type);
|
|
64
|
-
event.payload.event_type = translatedEventType;
|
|
65
|
-
// Read the command line arguments to check if the local flag is passed.
|
|
66
|
-
const argv = await (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv)).argv;
|
|
67
|
-
if (argv._.includes('local')) {
|
|
68
|
-
options = Object.assign(Object.assign({}, (options || {})), { isLocalDevelopment: true });
|
|
69
|
-
}
|
|
68
|
+
async function spawn({ event, initialState, initialDomainMapping, options: spawnOptions, baseWorkerPath, workerPathOverrides, }) {
|
|
69
|
+
const options = Object.assign(Object.assign({}, spawnOptions), { isLocalDevelopment: isLocalDevelopment() });
|
|
70
70
|
const originalConsole = console;
|
|
71
71
|
// eslint-disable-next-line no-global-assign
|
|
72
72
|
console = new logger_1.Logger({ event, options });
|
|
73
|
-
if (translatedEventType !== originalEventType) {
|
|
74
|
-
console.log(`Event type translated from ${originalEventType} to ${translatedEventType}.`);
|
|
75
|
-
}
|
|
76
73
|
if (options === null || options === void 0 ? void 0 : options.isLocalDevelopment) {
|
|
77
74
|
console.log('Snap-in is running in local development mode.');
|
|
78
75
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
else if (baseWorkerPath != null &&
|
|
84
|
-
(options === null || options === void 0 ? void 0 : options.workerPathOverrides) != null &&
|
|
85
|
-
options.workerPathOverrides[translatedEventType] != null) {
|
|
86
|
-
script =
|
|
87
|
-
baseWorkerPath +
|
|
88
|
-
options.workerPathOverrides[translatedEventType];
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
script = getWorkerPath({
|
|
92
|
-
event,
|
|
93
|
-
workerBasePath: baseWorkerPath !== null && baseWorkerPath !== void 0 ? baseWorkerPath : __dirname,
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
// If a script is found for the event type, spawn a new worker.
|
|
76
|
+
const override = workerPathOverrides === null || workerPathOverrides === void 0 ? void 0 : workerPathOverrides[event.payload.event_type];
|
|
77
|
+
const script = override != null
|
|
78
|
+
? baseWorkerPath + override
|
|
79
|
+
: getWorkerPath({ event, workerBasePath: baseWorkerPath });
|
|
97
80
|
if (script) {
|
|
98
81
|
try {
|
|
99
82
|
const worker = await (0, create_worker_1.createWorker)({
|
|
@@ -122,7 +105,7 @@ async function spawn({ event, initialState, workerPath, initialDomainMapping, op
|
|
|
122
105
|
}
|
|
123
106
|
else {
|
|
124
107
|
const { eventType } = (0, spawn_helpers_1.getNoScriptEventType)(event.payload.event_type);
|
|
125
|
-
await (0,
|
|
108
|
+
await (0, emit_1.emit)({
|
|
126
109
|
event,
|
|
127
110
|
eventType,
|
|
128
111
|
});
|
|
@@ -143,7 +126,7 @@ class Spawn {
|
|
|
143
126
|
? Math.min(options.timeout, this.defaultLambdaTimeout)
|
|
144
127
|
: this.defaultLambdaTimeout;
|
|
145
128
|
this.resolve = resolve;
|
|
146
|
-
//
|
|
129
|
+
// Soft timeout: ask the worker to gracefully exit.
|
|
147
130
|
this.softTimeoutTimer = setTimeout(() => void (async () => {
|
|
148
131
|
console.log('SOFT TIMEOUT: Sending a message to the worker to gracefully exit.');
|
|
149
132
|
this.softTimeoutSent = true;
|
|
@@ -157,7 +140,7 @@ class Spawn {
|
|
|
157
140
|
await this.exitFromMainThread();
|
|
158
141
|
}
|
|
159
142
|
})(), this.lambdaTimeout);
|
|
160
|
-
//
|
|
143
|
+
// Hard timeout: the worker did not exit in time, terminate it.
|
|
161
144
|
this.hardTimeoutTimer = setTimeout(() => void (async () => {
|
|
162
145
|
console.error('HARD TIMEOUT: Worker did not exit in time. Terminating the worker.');
|
|
163
146
|
if (worker) {
|
|
@@ -168,13 +151,10 @@ class Spawn {
|
|
|
168
151
|
await this.exitFromMainThread();
|
|
169
152
|
}
|
|
170
153
|
})(), this.lambdaTimeout * constants_1.HARD_TIMEOUT_MULTIPLIER);
|
|
171
|
-
//
|
|
172
|
-
//
|
|
173
|
-
//
|
|
174
|
-
//
|
|
175
|
-
// handled first, preventing a race condition where exitFromMainThread sees
|
|
176
|
-
// alreadyEmitted=false and emits an error even though the worker
|
|
177
|
-
// successfully emitted an event.
|
|
154
|
+
// After a soft timeout, defer exit handling via setImmediate so pending
|
|
155
|
+
// WorkerMessage events (e.g. WorkerMessageEmitted from onTimeout) are
|
|
156
|
+
// handled first; otherwise exitFromMainThread could see
|
|
157
|
+
// alreadyEmitted=false and emit a spurious error.
|
|
178
158
|
worker.on(workers_1.WorkerEvent.WorkerExit, (code) => {
|
|
179
159
|
const handler = async () => {
|
|
180
160
|
console.info('Worker exited with exit code: ' + code + '.');
|
|
@@ -189,32 +169,32 @@ class Spawn {
|
|
|
189
169
|
}
|
|
190
170
|
});
|
|
191
171
|
worker.on(workers_1.WorkerEvent.WorkerMessage, (message) => {
|
|
192
|
-
var _a, _b, _c
|
|
193
|
-
//
|
|
194
|
-
//
|
|
195
|
-
// them in main thread.
|
|
172
|
+
var _a, _b, _c;
|
|
173
|
+
// The snap-in platform handles worker-thread logs differently, so worker
|
|
174
|
+
// log messages are re-logged in the main thread.
|
|
196
175
|
if ((message === null || message === void 0 ? void 0 : message.subject) === workers_1.WorkerMessageSubject.WorkerMessageLog) {
|
|
197
176
|
const stringifiedArgs = (_a = message.payload) === null || _a === void 0 ? void 0 : _a.stringifiedArgs;
|
|
198
177
|
const level = (_b = message.payload) === null || _b === void 0 ? void 0 : _b.level;
|
|
199
|
-
|
|
200
|
-
this.logger.logFn(stringifiedArgs, level, isSdkLog);
|
|
178
|
+
this.logger.logFn(stringifiedArgs, level);
|
|
201
179
|
}
|
|
202
|
-
// If worker sends a message that it has emitted an event, then set alreadyEmitted to true.
|
|
203
180
|
if ((message === null || message === void 0 ? void 0 : message.subject) === workers_1.WorkerMessageSubject.WorkerMessageEmitted) {
|
|
204
|
-
console.info('Worker has emitted message to
|
|
181
|
+
console.info('Worker has emitted message to AirSync.');
|
|
205
182
|
this.alreadyEmitted = true;
|
|
206
183
|
}
|
|
184
|
+
// Capture the worker's failure reason for use in the error event.
|
|
185
|
+
if ((message === null || message === void 0 ? void 0 : message.subject) === workers_1.WorkerMessageSubject.WorkerMessageFailed) {
|
|
186
|
+
this.workerFailedMessage = (_c = message.payload) === null || _c === void 0 ? void 0 : _c.message;
|
|
187
|
+
}
|
|
207
188
|
});
|
|
208
|
-
// Log memory usage every 30 seconds
|
|
209
189
|
this.memoryMonitoringInterval = setInterval(() => {
|
|
210
190
|
try {
|
|
211
|
-
const memoryInfo = (0,
|
|
191
|
+
const memoryInfo = (0, helpers_1.getMemoryUsage)();
|
|
212
192
|
if (memoryInfo) {
|
|
213
193
|
console.info(memoryInfo.formattedMessage);
|
|
214
194
|
}
|
|
215
195
|
}
|
|
216
196
|
catch (error) {
|
|
217
|
-
//
|
|
197
|
+
// Stop monitoring on failure to prevent repeated crashes
|
|
218
198
|
console.warn('Memory monitoring failed, stopping logging of memory usage interval', error);
|
|
219
199
|
if (this.memoryMonitoringInterval) {
|
|
220
200
|
clearInterval(this.memoryMonitoringInterval);
|
|
@@ -245,20 +225,24 @@ class Spawn {
|
|
|
245
225
|
this.alreadyEmitted = true;
|
|
246
226
|
const { eventType } = (0, spawn_helpers_1.getTimeoutErrorEventType)(this.event.payload.event_type);
|
|
247
227
|
try {
|
|
248
|
-
await (0,
|
|
228
|
+
await (0, emit_1.emit)({
|
|
249
229
|
eventType,
|
|
250
230
|
event: this.event,
|
|
251
231
|
data: {
|
|
252
232
|
error: {
|
|
253
|
-
message:
|
|
233
|
+
message: `Worker exited without emitting event. ${this.workerFailedMessage
|
|
234
|
+
? `Error: ${this.workerFailedMessage}`
|
|
235
|
+
: 'Check the logs for more information.'}`,
|
|
254
236
|
},
|
|
255
237
|
},
|
|
256
238
|
});
|
|
257
|
-
this.resolve();
|
|
258
239
|
}
|
|
259
240
|
catch (error) {
|
|
260
241
|
console.error('Error while emitting event.', (0, logger_1.serializeError)(error));
|
|
261
242
|
}
|
|
243
|
+
finally {
|
|
244
|
+
this.resolve();
|
|
245
|
+
}
|
|
262
246
|
}
|
|
263
247
|
}
|
|
264
248
|
exports.Spawn = Spawn;
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const { workerData } = require('node:worker_threads');
|
|
3
|
-
|
|
3
|
+
let resolvedWorkerPath;
|
|
4
|
+
try {
|
|
5
|
+
resolvedWorkerPath = require.resolve(workerData.workerPath);
|
|
6
|
+
}
|
|
7
|
+
catch (_a) {
|
|
8
|
+
// Unresolvable without a TypeScript loader, so the worker is a .ts file.
|
|
9
|
+
}
|
|
10
|
+
if (!resolvedWorkerPath || resolvedWorkerPath.endsWith('.ts')) {
|
|
11
|
+
try {
|
|
12
|
+
require('ts-node').register();
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
throw new Error(`Worker ${workerData.workerPath} needs ts-node to run TypeScript. Install ts-node or point the worker at compiled JavaScript. ${error.message}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
4
18
|
const { Logger } = require('../logger/logger');
|
|
5
|
-
const { runWithUserLogContext } = require('../logger/logger.context');
|
|
6
19
|
console = new Logger({ event: workerData.event, options: workerData.options });
|
|
7
|
-
|
|
8
|
-
require(workerData.workerPath);
|
|
9
|
-
});
|
|
20
|
+
require(workerData.workerPath);
|
package/dist/repo/repo.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Item } from '../repo/repo.interfaces';
|
|
2
|
-
import { ErrorRecord } from '../types/common';
|
|
3
2
|
import { Artifact } from '../uploader/uploader.interfaces';
|
|
4
|
-
import { NormalizedAttachment, NormalizedItem
|
|
3
|
+
import { NormalizedAttachment, NormalizedItem } from './repo.interfaces';
|
|
5
4
|
export declare class Repo {
|
|
6
5
|
readonly itemType: string;
|
|
7
6
|
private items;
|
|
@@ -10,9 +9,19 @@ export declare class Repo {
|
|
|
10
9
|
private onUpload;
|
|
11
10
|
private options?;
|
|
12
11
|
uploadedArtifacts: Artifact[];
|
|
13
|
-
|
|
12
|
+
dateRanges: {
|
|
13
|
+
creationDate: {
|
|
14
|
+
oldest?: number;
|
|
15
|
+
newest?: number;
|
|
16
|
+
};
|
|
17
|
+
modifiedDate: {
|
|
18
|
+
oldest?: number;
|
|
19
|
+
newest?: number;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
14
22
|
getItems(): (NormalizedItem | NormalizedAttachment | Item)[];
|
|
15
|
-
upload(batch?: (NormalizedItem | NormalizedAttachment | Item)[]): Promise<void
|
|
16
|
-
|
|
23
|
+
upload(batch?: (NormalizedItem | NormalizedAttachment | Item)[]): Promise<void>;
|
|
24
|
+
/** Buffers items and uploads every full batch. Throws if an upload fails. */
|
|
25
|
+
push(items: Item[]): Promise<void>;
|
|
17
26
|
}
|
|
18
27
|
//# sourceMappingURL=repo.d.ts.map
|
package/dist/repo/repo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/repo/repo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/repo/repo.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG3D,OAAO,EACL,oBAAoB,EACpB,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,IAAI;IACf,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAmD;IAChE,OAAO,CAAC,SAAS,CAAC,CAAwD;IAC1E,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,OAAO,CAAC,CAAiB;IAC1B,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,UAAU,EAAE;QACjB,YAAY,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACnD,YAAY,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACpD,CAGC;IAoBF,QAAQ,IAAI,CAAC,cAAc,GAAG,oBAAoB,GAAG,IAAI,CAAC,EAAE;IAItD,MAAM,CACV,KAAK,CAAC,EAAE,CAAC,cAAc,GAAG,oBAAoB,GAAG,IAAI,CAAC,EAAE,GACvD,OAAO,CAAC,IAAI,CAAC;IA2DhB,6EAA6E;IACvE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA6BzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo.helpers.d.ts","sourceRoot":"","sources":["../../src/repo/repo.helpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CACzB,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,EAAE,EAAE,MAAM,GACT,IAAI,CAON;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGlE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateRange = updateRange;
|
|
4
|
+
exports.toValidTimestamp = toValidTimestamp;
|
|
5
|
+
function updateRange(range, ms) {
|
|
6
|
+
if (range.oldest === undefined || ms < range.oldest) {
|
|
7
|
+
range.oldest = ms;
|
|
8
|
+
}
|
|
9
|
+
if (range.newest === undefined || ms > range.newest) {
|
|
10
|
+
range.newest = ms;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function toValidTimestamp(value) {
|
|
14
|
+
const ms = new Date(value).getTime();
|
|
15
|
+
return Number.isFinite(ms) ? ms : undefined;
|
|
16
|
+
}
|
|
@@ -1,35 +1,26 @@
|
|
|
1
|
+
import { AirSyncEvent } from '../types/extraction';
|
|
2
|
+
import { RepoOptions, RuntimeOptions } from '../types/workers';
|
|
1
3
|
import { Artifact } from '../uploader/uploader.interfaces';
|
|
2
|
-
|
|
3
|
-
import { WorkerAdapterOptions } from '../types/workers';
|
|
4
|
-
/**
|
|
5
|
-
* RepoInterface is an interface that defines the structure of a repo which is used to store and upload extracted data.
|
|
6
|
-
*/
|
|
4
|
+
/** Stores and uploads extracted data. */
|
|
7
5
|
export interface RepoInterface {
|
|
8
6
|
itemType: string;
|
|
9
7
|
normalize?: (record: object) => NormalizedItem | NormalizedAttachment;
|
|
8
|
+
overriddenOptions?: RepoOptions;
|
|
10
9
|
}
|
|
11
|
-
/**
|
|
12
|
-
* RepoFactoryInterface is an interface that defines the structure of a repo factory which is used to create a repo.
|
|
13
|
-
*/
|
|
14
10
|
export interface RepoFactoryInterface {
|
|
15
|
-
event:
|
|
11
|
+
event: AirSyncEvent;
|
|
16
12
|
itemType: string;
|
|
17
13
|
normalize?: (record: object) => NormalizedItem | NormalizedAttachment;
|
|
18
14
|
onUpload: (artifact: Artifact) => void;
|
|
19
|
-
options?:
|
|
15
|
+
options?: RuntimeOptions;
|
|
16
|
+
skipConfirmation?: boolean;
|
|
20
17
|
}
|
|
21
|
-
/**
|
|
22
|
-
* NormalizedItem is an interface of item after normalization.
|
|
23
|
-
*/
|
|
24
18
|
export interface NormalizedItem {
|
|
25
19
|
id: string;
|
|
26
20
|
created_date: string;
|
|
27
21
|
modified_date: string;
|
|
28
22
|
data: object;
|
|
29
23
|
}
|
|
30
|
-
/**
|
|
31
|
-
* NormalizedAttachment is an interface of attachment after normalization.
|
|
32
|
-
*/
|
|
33
24
|
export interface NormalizedAttachment {
|
|
34
25
|
url: string;
|
|
35
26
|
id: string;
|
|
@@ -37,10 +28,10 @@ export interface NormalizedAttachment {
|
|
|
37
28
|
parent_id: string;
|
|
38
29
|
author_id?: string;
|
|
39
30
|
inline?: boolean;
|
|
40
|
-
|
|
31
|
+
content_type?: string;
|
|
32
|
+
created_date?: string;
|
|
33
|
+
modified_date?: string;
|
|
34
|
+
grand_parent_id?: string;
|
|
41
35
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Item is an interface that defines the structure of an item.
|
|
44
|
-
*/
|
|
45
36
|
export type Item = Record<string, any>;
|
|
46
37
|
//# sourceMappingURL=repo.interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo.interfaces.d.ts","sourceRoot":"","sources":["../../src/repo/repo.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"repo.interfaces.d.ts","sourceRoot":"","sources":["../../src/repo/repo.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,GAAG,oBAAoB,CAAC;IACtE,iBAAiB,CAAC,EAAE,WAAW,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,GAAG,oBAAoB,CAAC;IACtE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC"}
|