@devrev/ts-adaas 1.15.3-beta.4 → 1.15.3-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
- package/dist/attachments-streaming/attachments-streaming-pool.js +7 -2
- package/dist/attachments-streaming/attachments-streaming-pool.test.js +42 -1
- package/dist/common/constants.d.ts +2 -0
- package/dist/common/constants.d.ts.map +1 -1
- package/dist/common/constants.js +5 -1
- package/dist/common/helpers.d.ts +8 -0
- package/dist/common/helpers.d.ts.map +1 -1
- package/dist/common/helpers.js +15 -0
- package/dist/logger/logger.d.ts +1 -9
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +35 -16
- package/dist/logger/logger.test.js +62 -0
- package/dist/multithreading/process-task.d.ts.map +1 -1
- package/dist/multithreading/process-task.js +6 -43
- package/dist/multithreading/spawn/spawn.js +3 -1
- package/dist/multithreading/worker-adapter/worker-adapter.artifacts.test.js +1 -1
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts +2 -2
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +1 -1
- package/dist/multithreading/worker-adapter/worker-adapter.js +39 -18
- package/dist/types/external-domain-metadata.d.ts.map +1 -1
- package/dist/types/extraction.d.ts +1 -0
- package/dist/types/extraction.d.ts.map +1 -1
- package/dist/uploader/uploader.d.ts.map +1 -1
- package/dist/uploader/uploader.js +42 -15
- package/dist/uploader/uploader.test.js +28 -9
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments-streaming-pool.d.ts","sourceRoot":"","sources":["../../src/attachments-streaming/attachments-streaming-pool.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAGzF,qBAAa,wBAAwB,CAAC,cAAc;IAClD,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAA4C;IAE1D,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAM;gBAEnC,EACV,OAAO,EACP,WAAW,EACX,SAAc,EACd,MAAM,GACP,EAAE,8BAA8B,CAAC,cAAc,CAAC;YAQnC,cAAc;IAS5B;;;;;OAKG;IAEH,OAAO,CAAC,2BAA2B;IAsB7B,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC;IA8CjD,kBAAkB;
|
|
1
|
+
{"version":3,"file":"attachments-streaming-pool.d.ts","sourceRoot":"","sources":["../../src/attachments-streaming/attachments-streaming-pool.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAGzF,qBAAa,wBAAwB,CAAC,cAAc;IAClD,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAA4C;IAE1D,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAM;gBAEnC,EACV,OAAO,EACP,WAAW,EACX,SAAc,EACd,MAAM,GACP,EAAE,8BAA8B,CAAC,cAAc,CAAC;YAQnC,cAAc;IAS5B;;;;;OAKG;IAEH,OAAO,CAAC,2BAA2B;IAsB7B,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC;IA8CjD,kBAAkB;CAkFzB"}
|
|
@@ -106,7 +106,11 @@ class AttachmentsStreamingPool {
|
|
|
106
106
|
return;
|
|
107
107
|
}
|
|
108
108
|
if (response === null || response === void 0 ? void 0 : response.error) {
|
|
109
|
-
|
|
109
|
+
const fileExtension = attachment.file_name.split('.').pop() || '';
|
|
110
|
+
const fileSizeInfo = response.error.fileSize
|
|
111
|
+
? `and size ${response.error.fileSize} bytes `
|
|
112
|
+
: '';
|
|
113
|
+
console.warn(`Skipping attachment with ID ${attachment.id} with extension ${fileExtension} ${fileSizeInfo}due to error returned by the stream function`, response.error.message);
|
|
110
114
|
await this.updateProgress();
|
|
111
115
|
continue;
|
|
112
116
|
}
|
|
@@ -117,7 +121,8 @@ class AttachmentsStreamingPool {
|
|
|
117
121
|
await this.updateProgress();
|
|
118
122
|
}
|
|
119
123
|
catch (error) {
|
|
120
|
-
|
|
124
|
+
const fileExtension = attachment.file_name.split('.').pop() || '';
|
|
125
|
+
console.warn(`Skipping attachment with ID ${attachment.id} with extension ${fileExtension} due to error in processAttachment function`, error);
|
|
121
126
|
await this.updateProgress();
|
|
122
127
|
}
|
|
123
128
|
}
|
|
@@ -156,6 +156,47 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
|
|
|
156
156
|
]);
|
|
157
157
|
expect(result).toEqual({});
|
|
158
158
|
});
|
|
159
|
+
it('should handle all attachments failing with different file types and sizes', async () => {
|
|
160
|
+
const largeAttachments = [
|
|
161
|
+
{
|
|
162
|
+
id: 'attachment-image',
|
|
163
|
+
url: 'https://example.com/photo.jpg',
|
|
164
|
+
file_name: 'photo.jpg',
|
|
165
|
+
parent_id: 'parent-1',
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
id: 'attachment-pdf',
|
|
169
|
+
url: 'https://example.com/document.pdf',
|
|
170
|
+
file_name: 'document.pdf',
|
|
171
|
+
parent_id: 'parent-2',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
id: 'attachment-video',
|
|
175
|
+
url: 'https://example.com/video.mp4',
|
|
176
|
+
file_name: 'video.mp4',
|
|
177
|
+
parent_id: 'parent-3',
|
|
178
|
+
},
|
|
179
|
+
];
|
|
180
|
+
const imageError = new Error('Image upload failed: File too large');
|
|
181
|
+
const pdfError = new Error('PDF upload failed: Unsupported format');
|
|
182
|
+
const videoError = new Error('Video upload failed: Network error');
|
|
183
|
+
mockAdapter.processAttachment
|
|
184
|
+
.mockRejectedValueOnce(imageError)
|
|
185
|
+
.mockRejectedValueOnce(pdfError)
|
|
186
|
+
.mockRejectedValueOnce(videoError);
|
|
187
|
+
const warnSpy = jest.spyOn(console, 'warn');
|
|
188
|
+
const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
|
|
189
|
+
adapter: mockAdapter,
|
|
190
|
+
attachments: largeAttachments,
|
|
191
|
+
stream: mockStream,
|
|
192
|
+
});
|
|
193
|
+
await pool.streamAll();
|
|
194
|
+
expect(mockAdapter.processAttachment).toHaveBeenCalledTimes(3);
|
|
195
|
+
// Since there are 3 parallel workers (one per attachment), each logs its own failed attachment
|
|
196
|
+
expect(warnSpy).toHaveBeenCalledTimes(3);
|
|
197
|
+
expect(mockAdapter.state.toDevRev.attachmentsMetadata
|
|
198
|
+
.lastProcessedAttachmentsIdsList).toEqual([]);
|
|
199
|
+
});
|
|
159
200
|
});
|
|
160
201
|
describe(attachments_streaming_pool_1.AttachmentsStreamingPool.prototype.startPoolStreaming.name, () => {
|
|
161
202
|
it('should skip already processed attachments', async () => {
|
|
@@ -197,7 +238,7 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
|
|
|
197
238
|
stream: mockStream,
|
|
198
239
|
});
|
|
199
240
|
await pool.streamAll();
|
|
200
|
-
expect(console.warn).toHaveBeenCalledWith('Skipping attachment with ID attachment-2 due to error in processAttachment function', error);
|
|
241
|
+
expect(console.warn).toHaveBeenCalledWith('Skipping attachment with ID attachment-2 with extension jpg due to error in processAttachment function', error);
|
|
201
242
|
expect(mockAdapter.state.toDevRev.attachmentsMetadata
|
|
202
243
|
.lastProcessedAttachmentsIdsList).toEqual([
|
|
203
244
|
{
|
|
@@ -12,6 +12,8 @@ export declare const ARTIFACT_BATCH_SIZE = 2000;
|
|
|
12
12
|
export declare const MAX_DEVREV_ARTIFACT_SIZE: number;
|
|
13
13
|
export declare const MAX_DEVREV_FILENAME_LENGTH = 256;
|
|
14
14
|
export declare const MAX_DEVREV_FILENAME_EXTENSION_LENGTH = 20;
|
|
15
|
+
export declare const MAX_EVENT_SIZE_BYTES = 200000;
|
|
16
|
+
export declare const EVENT_SIZE_THRESHOLD_BYTES: number;
|
|
15
17
|
export declare const AIRDROP_DEFAULT_ITEM_TYPES: {
|
|
16
18
|
EXTERNAL_DOMAIN_METADATA: string;
|
|
17
19
|
ATTACHMENTS: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,eAAO,MAAM,8BAA8B,aAS1C,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAKvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAG/B,CAAC;AAEF,eAAO,MAAM,gCAAgC,aAI5C,CAAC;AAEF,eAAO,MAAM,6BAA6B,aAGzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAGjC,CAAC;AAEF,eAAO,MAAM,+BAA+B,aAGzC,CAAC;AAEJ,eAAO,MAAM,4BAA4B,aAExC,CAAC;AAEF,eAAO,MAAM,oBAAoB,aAGhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,wBAAwB,QAAyB,CAAC;AAC/D,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,oCAAoC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,eAAO,MAAM,8BAA8B,aAS1C,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAKvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAG/B,CAAC;AAEF,eAAO,MAAM,gCAAgC,aAI5C,CAAC;AAEF,eAAO,MAAM,6BAA6B,aAGzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAGjC,CAAC;AAEF,eAAO,MAAM,+BAA+B,aAGzC,CAAC;AAEJ,eAAO,MAAM,4BAA4B,aAExC,CAAC;AAEF,eAAO,MAAM,oBAAoB,aAGhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,wBAAwB,QAAyB,CAAC;AAC/D,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAGvD,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAE5C,eAAO,MAAM,0BAA0B,QAEtC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;CAItC,CAAC;AAEF,eAAO,MAAM,eAAe,KAAsB,CAAC;AAEnD,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AACrD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAE7C,eAAO,MAAM,sBAAsB,QAAgB,CAAC"}
|
package/dist/common/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_SLEEP_DELAY_MS = exports.MEMORY_LOG_INTERVAL = exports.HARD_TIMEOUT_MULTIPLIER = exports.DEFAULT_LAMBDA_TIMEOUT = exports.LIBRARY_VERSION = exports.AIRDROP_DEFAULT_ITEM_TYPES = exports.MAX_DEVREV_FILENAME_EXTENSION_LENGTH = exports.MAX_DEVREV_FILENAME_LENGTH = exports.MAX_DEVREV_ARTIFACT_SIZE = exports.ARTIFACT_BATCH_SIZE = exports.STATEFUL_EVENT_TYPES = exports.STATEFUL_LOADING_EVENT_TYPES = exports.STATEFUL_EXTRACTION_EVENT_TYPES = exports.STATELESS_EVENT_TYPES = exports.STATELESS_LOADING_EVENT_TYPES = exports.STATELESS_EXTRACTION_EVENT_TYPES = exports.ALLOWED_EVENT_TYPES = exports.ALLOWED_LOADING_EVENT_TYPES = exports.ALLOWED_EXTRACTION_EVENT_TYPES = void 0;
|
|
3
|
+
exports.DEFAULT_SLEEP_DELAY_MS = exports.MEMORY_LOG_INTERVAL = exports.HARD_TIMEOUT_MULTIPLIER = exports.DEFAULT_LAMBDA_TIMEOUT = exports.LIBRARY_VERSION = exports.AIRDROP_DEFAULT_ITEM_TYPES = exports.EVENT_SIZE_THRESHOLD_BYTES = exports.MAX_EVENT_SIZE_BYTES = exports.MAX_DEVREV_FILENAME_EXTENSION_LENGTH = exports.MAX_DEVREV_FILENAME_LENGTH = exports.MAX_DEVREV_ARTIFACT_SIZE = exports.ARTIFACT_BATCH_SIZE = exports.STATEFUL_EVENT_TYPES = exports.STATEFUL_LOADING_EVENT_TYPES = exports.STATEFUL_EXTRACTION_EVENT_TYPES = exports.STATELESS_EVENT_TYPES = exports.STATELESS_LOADING_EVENT_TYPES = exports.STATELESS_EXTRACTION_EVENT_TYPES = exports.ALLOWED_EVENT_TYPES = exports.ALLOWED_LOADING_EVENT_TYPES = exports.ALLOWED_EXTRACTION_EVENT_TYPES = void 0;
|
|
4
4
|
const extraction_1 = require("../types/extraction");
|
|
5
5
|
const helpers_1 = require("./helpers");
|
|
6
6
|
exports.ALLOWED_EXTRACTION_EVENT_TYPES = [
|
|
@@ -46,6 +46,10 @@ exports.ARTIFACT_BATCH_SIZE = 2000;
|
|
|
46
46
|
exports.MAX_DEVREV_ARTIFACT_SIZE = 2 * 1024 * 1024 * 1024; // 2GB
|
|
47
47
|
exports.MAX_DEVREV_FILENAME_LENGTH = 256;
|
|
48
48
|
exports.MAX_DEVREV_FILENAME_EXTENSION_LENGTH = 20; // 20 characters for the file extension
|
|
49
|
+
// Max SQS message size is 250KB, we want to leave some room for the other data in the message
|
|
50
|
+
exports.MAX_EVENT_SIZE_BYTES = 200000;
|
|
51
|
+
// We want to leave some room for the other data in the message and process the rest of queued messages
|
|
52
|
+
exports.EVENT_SIZE_THRESHOLD_BYTES = Math.floor(exports.MAX_EVENT_SIZE_BYTES * 0.8);
|
|
49
53
|
exports.AIRDROP_DEFAULT_ITEM_TYPES = {
|
|
50
54
|
EXTERNAL_DOMAIN_METADATA: 'external_domain_metadata',
|
|
51
55
|
ATTACHMENTS: 'attachments',
|
package/dist/common/helpers.d.ts
CHANGED
|
@@ -38,4 +38,12 @@ export interface MemoryInfo {
|
|
|
38
38
|
* @returns {MemoryInfo} The memory usage information
|
|
39
39
|
*/
|
|
40
40
|
export declare function getMemoryUsage(): MemoryInfo;
|
|
41
|
+
/**
|
|
42
|
+
* Truncates a message if it exceeds the maximum allowed length.
|
|
43
|
+
* Adds a suffix indicating how many characters were omitted.
|
|
44
|
+
*
|
|
45
|
+
* @param message - The message to truncate
|
|
46
|
+
* @returns Truncated message or original if within limits
|
|
47
|
+
*/
|
|
48
|
+
export declare function truncateMessage(message: string): string;
|
|
41
49
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/common/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/common/helpers.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,wBAAgB,iBAAiB,QAiBhC;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAGrC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmBzD;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAmD3C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOvD"}
|
package/dist/common/helpers.js
CHANGED
|
@@ -37,10 +37,12 @@ exports.getLibraryVersion = getLibraryVersion;
|
|
|
37
37
|
exports.sleep = sleep;
|
|
38
38
|
exports.truncateFilename = truncateFilename;
|
|
39
39
|
exports.getMemoryUsage = getMemoryUsage;
|
|
40
|
+
exports.truncateMessage = truncateMessage;
|
|
40
41
|
const fs_1 = require("fs");
|
|
41
42
|
const path = __importStar(require("path"));
|
|
42
43
|
const v8 = __importStar(require("v8"));
|
|
43
44
|
const constants_1 = require("./constants");
|
|
45
|
+
const logger_constants_1 = require("../logger/logger.constants");
|
|
44
46
|
/**
|
|
45
47
|
* Gets the library version from the package.json file.
|
|
46
48
|
* @returns {string} The library version
|
|
@@ -122,3 +124,16 @@ function getMemoryUsage() {
|
|
|
122
124
|
throw err;
|
|
123
125
|
}
|
|
124
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Truncates a message if it exceeds the maximum allowed length.
|
|
129
|
+
* Adds a suffix indicating how many characters were omitted.
|
|
130
|
+
*
|
|
131
|
+
* @param message - The message to truncate
|
|
132
|
+
* @returns Truncated message or original if within limits
|
|
133
|
+
*/
|
|
134
|
+
function truncateMessage(message) {
|
|
135
|
+
if (message.length > logger_constants_1.MAX_LOG_STRING_LENGTH) {
|
|
136
|
+
return `${message.substring(0, logger_constants_1.MAX_LOG_STRING_LENGTH)}... ${message.length - logger_constants_1.MAX_LOG_STRING_LENGTH} more characters`;
|
|
137
|
+
}
|
|
138
|
+
return message;
|
|
139
|
+
}
|
package/dist/logger/logger.d.ts
CHANGED
|
@@ -17,14 +17,6 @@ export declare class Logger extends Console {
|
|
|
17
17
|
* @returns String representation of the value
|
|
18
18
|
*/
|
|
19
19
|
private valueToString;
|
|
20
|
-
/**
|
|
21
|
-
* Truncates a message if it exceeds the maximum allowed length.
|
|
22
|
-
* Adds a suffix indicating how many characters were omitted.
|
|
23
|
-
*
|
|
24
|
-
* @param message - The message to truncate
|
|
25
|
-
* @returns Truncated message or original if within limits
|
|
26
|
-
*/
|
|
27
|
-
private truncateMessage;
|
|
28
20
|
/**
|
|
29
21
|
* Logs a pre-formatted message string to the console.
|
|
30
22
|
* In production mode, wraps the message with JSON formatting and event context tags.
|
|
@@ -68,7 +60,7 @@ export declare function getPrintableState(state: Record<string, any>): Printable
|
|
|
68
60
|
* @param error - Error to serialize
|
|
69
61
|
* @returns Serialized error or original if not an Axios error
|
|
70
62
|
*/
|
|
71
|
-
export declare function serializeError(error: unknown):
|
|
63
|
+
export declare function serializeError(error: unknown): string;
|
|
72
64
|
/**
|
|
73
65
|
* Serializes an Axios error into a structured format with HTTP request/response details.
|
|
74
66
|
* Extracts method, URL, parameters, status code, headers, and data.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyC,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AASvC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAEtB,QAAQ,EAER,cAAc,EACf,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyC,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AASvC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAEtB,QAAQ,EAER,cAAc,EACf,MAAM,qBAAqB,CAAC;AAG7B;;;GAGG;AACH,qBAAa,MAAO,SAAQ,OAAO;IACjC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,OAAO,CAAC,CAAuB;IACvC,OAAO,CAAC,IAAI,CAAa;gBAEb,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,sBAAsB;IAWtD;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;;;;;;OASG;IACH,KAAK,CACH,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EACf,QAAQ,GAAE,OAAqC,GAC9C,IAAI;IAcP;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAgBd,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI7B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAGzC;AACD;;;;;;;GAOG;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,cAAc,CAqB5E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAoCrD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,CAwBzE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE1D"}
|
package/dist/logger/logger.js
CHANGED
|
@@ -14,6 +14,7 @@ const workers_1 = require("../types/workers");
|
|
|
14
14
|
const logger_constants_1 = require("./logger.constants");
|
|
15
15
|
const logger_context_1 = require("./logger.context");
|
|
16
16
|
const logger_interfaces_1 = require("./logger.interfaces");
|
|
17
|
+
const helpers_1 = require("../common/helpers");
|
|
17
18
|
/**
|
|
18
19
|
* Custom logger that extends Node.js Console with context-aware logging.
|
|
19
20
|
* Handles local development, main thread, and worker thread logging differently.
|
|
@@ -37,19 +38,6 @@ class Logger extends node_console_1.Console {
|
|
|
37
38
|
}
|
|
38
39
|
return (0, node_util_1.inspect)(value, logger_constants_1.INSPECT_OPTIONS);
|
|
39
40
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Truncates a message if it exceeds the maximum allowed length.
|
|
42
|
-
* Adds a suffix indicating how many characters were omitted.
|
|
43
|
-
*
|
|
44
|
-
* @param message - The message to truncate
|
|
45
|
-
* @returns Truncated message or original if within limits
|
|
46
|
-
*/
|
|
47
|
-
truncateMessage(message) {
|
|
48
|
-
if (message.length > logger_constants_1.MAX_LOG_STRING_LENGTH) {
|
|
49
|
-
return `${message.substring(0, logger_constants_1.MAX_LOG_STRING_LENGTH)}... ${message.length - logger_constants_1.MAX_LOG_STRING_LENGTH} more characters`;
|
|
50
|
-
}
|
|
51
|
-
return message;
|
|
52
|
-
}
|
|
53
41
|
/**
|
|
54
42
|
* Logs a pre-formatted message string to the console.
|
|
55
43
|
* In production mode, wraps the message with JSON formatting and event context tags.
|
|
@@ -80,7 +68,7 @@ class Logger extends node_console_1.Console {
|
|
|
80
68
|
*/
|
|
81
69
|
stringifyAndLog(args, level) {
|
|
82
70
|
let stringifiedArgs = args.map((arg) => this.valueToString(arg)).join(' ');
|
|
83
|
-
stringifiedArgs =
|
|
71
|
+
stringifiedArgs = (0, helpers_1.truncateMessage)(stringifiedArgs);
|
|
84
72
|
const isSdkLog = (0, logger_context_1.getSdkLogContextValue)(true);
|
|
85
73
|
if (node_worker_threads_1.isMainThread) {
|
|
86
74
|
this.logFn(stringifiedArgs, level, isSdkLog);
|
|
@@ -147,9 +135,40 @@ function getPrintableState(state) {
|
|
|
147
135
|
*/
|
|
148
136
|
function serializeError(error) {
|
|
149
137
|
if ((0, axios_1.isAxiosError)(error)) {
|
|
150
|
-
return serializeAxiosError(error);
|
|
138
|
+
return JSON.stringify(serializeAxiosError(error));
|
|
139
|
+
}
|
|
140
|
+
if (error instanceof Error) {
|
|
141
|
+
// Include error name (e.g. TypeError, RangeError) alongside message
|
|
142
|
+
// for easier debugging
|
|
143
|
+
return error.name !== 'Error'
|
|
144
|
+
? `${error.name}: ${error.message}`
|
|
145
|
+
: error.message;
|
|
146
|
+
}
|
|
147
|
+
if (typeof error === 'string') {
|
|
148
|
+
return error;
|
|
149
|
+
}
|
|
150
|
+
// JSON.stringify returns '{}' for objects with only non-enumerable properties
|
|
151
|
+
// Fall back to extracting own property names or String() coercion.
|
|
152
|
+
const stringified = JSON.stringify(error);
|
|
153
|
+
if (!stringified || stringified === '{}') {
|
|
154
|
+
if (error !== null && typeof error === 'object') {
|
|
155
|
+
const props = {};
|
|
156
|
+
for (const key of Object.getOwnPropertyNames(error)) {
|
|
157
|
+
props[key] = error[key];
|
|
158
|
+
}
|
|
159
|
+
const extracted = JSON.stringify(props);
|
|
160
|
+
if (extracted && extracted !== '{}') {
|
|
161
|
+
return extracted;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
return String(error);
|
|
166
|
+
}
|
|
167
|
+
catch (_a) {
|
|
168
|
+
return '[Unserializable error]';
|
|
169
|
+
}
|
|
151
170
|
}
|
|
152
|
-
return
|
|
171
|
+
return stringified;
|
|
153
172
|
}
|
|
154
173
|
/**
|
|
155
174
|
* Serializes an Axios error into a structured format with HTTP request/response details.
|
|
@@ -378,6 +378,68 @@ describe(logger_1.getPrintableState.name, () => {
|
|
|
378
378
|
});
|
|
379
379
|
});
|
|
380
380
|
});
|
|
381
|
+
describe(logger_1.serializeError.name, () => {
|
|
382
|
+
it('should return the error message string for a standard Error', () => {
|
|
383
|
+
const error = new Error('something went wrong');
|
|
384
|
+
expect((0, logger_1.serializeError)(error)).toBe('something went wrong');
|
|
385
|
+
});
|
|
386
|
+
it('should include error name for named error types', () => {
|
|
387
|
+
const typeError = new TypeError('invalid type');
|
|
388
|
+
expect((0, logger_1.serializeError)(typeError)).toBe('TypeError: invalid type');
|
|
389
|
+
const rangeError = new RangeError('out of range');
|
|
390
|
+
expect((0, logger_1.serializeError)(rangeError)).toBe('RangeError: out of range');
|
|
391
|
+
});
|
|
392
|
+
it('should return a JSON string for an Axios error', () => {
|
|
393
|
+
const axiosError = {
|
|
394
|
+
isAxiosError: true,
|
|
395
|
+
response: {
|
|
396
|
+
status: 500,
|
|
397
|
+
statusText: 'Internal Server Error',
|
|
398
|
+
data: 'fail',
|
|
399
|
+
headers: {},
|
|
400
|
+
},
|
|
401
|
+
config: { method: 'GET', url: '/api/test', params: undefined },
|
|
402
|
+
};
|
|
403
|
+
const result = (0, logger_1.serializeError)(axiosError);
|
|
404
|
+
expect(typeof result).toBe('string');
|
|
405
|
+
const parsed = JSON.parse(result);
|
|
406
|
+
expect(parsed.isAxiosError).toBe(true);
|
|
407
|
+
expect(parsed.response.status).toBe(500);
|
|
408
|
+
});
|
|
409
|
+
it('should return a JSON string for a plain object', () => {
|
|
410
|
+
const obj = { code: 42, detail: 'bad input' };
|
|
411
|
+
const result = (0, logger_1.serializeError)(obj);
|
|
412
|
+
expect(typeof result).toBe('string');
|
|
413
|
+
expect(JSON.parse(result)).toEqual(obj);
|
|
414
|
+
});
|
|
415
|
+
it('should return a JSON string for a string value', () => {
|
|
416
|
+
expect((0, logger_1.serializeError)('raw string error')).toBe('raw string error');
|
|
417
|
+
});
|
|
418
|
+
it('[edge] should handle null without throwing', () => {
|
|
419
|
+
const result = (0, logger_1.serializeError)(null);
|
|
420
|
+
expect(typeof result).toBe('string');
|
|
421
|
+
expect(result).toBe('null');
|
|
422
|
+
});
|
|
423
|
+
it('[edge] should handle undefined without throwing', () => {
|
|
424
|
+
const result = (0, logger_1.serializeError)(undefined);
|
|
425
|
+
expect(typeof result).toBe('string');
|
|
426
|
+
});
|
|
427
|
+
it('[edge] should fall back to extracting own properties for objects that stringify to empty object', () => {
|
|
428
|
+
// Simulate an error-like object with non-enumerable properties
|
|
429
|
+
// (e.g. cross-realm Error that fails instanceof check)
|
|
430
|
+
const errorLike = Object.create(null);
|
|
431
|
+
Object.defineProperty(errorLike, 'message', {
|
|
432
|
+
value: 'cross-realm error',
|
|
433
|
+
enumerable: false,
|
|
434
|
+
});
|
|
435
|
+
const result = (0, logger_1.serializeError)(errorLike);
|
|
436
|
+
expect(typeof result).toBe('string');
|
|
437
|
+
// Should not be '{}' — that's the whole point of the fix
|
|
438
|
+
expect(result).not.toBe('{}');
|
|
439
|
+
// Should have extracted the non-enumerable 'message' property
|
|
440
|
+
expect(result).toContain('cross-realm error');
|
|
441
|
+
});
|
|
442
|
+
});
|
|
381
443
|
describe(logger_1.serializeAxiosError.name, () => {
|
|
382
444
|
it('should serialize Axios error with response data', () => {
|
|
383
445
|
// Arrange
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-task.d.ts","sourceRoot":"","sources":["../../src/multithreading/process-task.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EAGrB,MAAM,kBAAkB,CAAC;AAG1B,wBAAgB,WAAW,CAAC,cAAc,EAAE,EAC1C,IAAI,EACJ,SAAS,GACV,EAAE,oBAAoB,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"process-task.d.ts","sourceRoot":"","sources":["../../src/multithreading/process-task.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EAGrB,MAAM,kBAAkB,CAAC;AAG1B,wBAAgB,WAAW,CAAC,cAAc,EAAE,EAC1C,IAAI,EACJ,SAAS,GACV,EAAE,oBAAoB,CAAC,cAAc,CAAC,QAqDtC"}
|
|
@@ -34,55 +34,18 @@ function processTask({ task, onTimeout, }) {
|
|
|
34
34
|
adapterState,
|
|
35
35
|
options,
|
|
36
36
|
});
|
|
37
|
-
// Timeout handling flow:
|
|
38
|
-
// The task() runs in the main flow below. Meanwhile, the parent thread may send
|
|
39
|
-
// a timeout message at any point. When that happens, the message handler signals
|
|
40
|
-
// the adapter to stop (handleTimeout), waits for task() to finish, then runs onTimeout().
|
|
41
|
-
// If task() completes before any timeout message arrives, the worker exits normally.
|
|
42
|
-
// isTimeoutReceived prevents both flows from calling process.exit.
|
|
43
|
-
let isTimeoutReceived = false;
|
|
44
|
-
let taskExecution;
|
|
45
37
|
node_worker_threads_1.parentPort === null || node_worker_threads_1.parentPort === void 0 ? void 0 : node_worker_threads_1.parentPort.on(workers_1.WorkerEvent.WorkerMessage, (message) => {
|
|
46
38
|
if (message.subject !== workers_1.WorkerMessageSubject.WorkerMessageExit) {
|
|
47
39
|
return;
|
|
48
40
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
try {
|
|
52
|
-
console.log('Timeout received. Waiting for the task to finish.');
|
|
53
|
-
adapter.handleTimeout();
|
|
54
|
-
try {
|
|
55
|
-
await taskExecution;
|
|
56
|
-
}
|
|
57
|
-
catch (taskError) {
|
|
58
|
-
console.warn('Task error during timeout:', (0, logger_1.serializeError)(taskError));
|
|
59
|
-
}
|
|
60
|
-
console.log('Task finished. Running onTimeout handler.');
|
|
61
|
-
await (0, logger_context_1.runWithUserLogContext)(async () => onTimeout({ adapter }));
|
|
62
|
-
console.log('onTimeout handler complete. Exiting worker.');
|
|
63
|
-
process.exit(0);
|
|
64
|
-
}
|
|
65
|
-
catch (onTimeoutError) {
|
|
66
|
-
console.error('Error in onTimeout handler:', (0, logger_1.serializeError)(onTimeoutError));
|
|
67
|
-
process.exit(1);
|
|
68
|
-
}
|
|
69
|
-
});
|
|
41
|
+
console.log('Timeout received. Waiting for the task to finish.');
|
|
42
|
+
adapter.isTimeout = true;
|
|
70
43
|
});
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
await
|
|
74
|
-
}
|
|
75
|
-
catch (taskError) {
|
|
76
|
-
if (isTimeoutReceived) {
|
|
77
|
-
console.log('Task threw during timeout. Letting timeout handler finish.');
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
throw taskError;
|
|
81
|
-
}
|
|
82
|
-
if (!isTimeoutReceived) {
|
|
83
|
-
console.log('Task completed. Exiting worker.');
|
|
84
|
-
process.exit(0);
|
|
44
|
+
await (0, logger_context_1.runWithUserLogContext)(async () => task({ adapter }));
|
|
45
|
+
if (adapter.isTimeout && !adapter.hasWorkerEmitted) {
|
|
46
|
+
await (0, logger_context_1.runWithUserLogContext)(async () => onTimeout({ adapter }));
|
|
85
47
|
}
|
|
48
|
+
process.exit(0);
|
|
86
49
|
}
|
|
87
50
|
catch (error) {
|
|
88
51
|
console.error('Error while processing task.', (0, logger_1.serializeError)(error));
|
|
@@ -254,11 +254,13 @@ class Spawn {
|
|
|
254
254
|
},
|
|
255
255
|
},
|
|
256
256
|
});
|
|
257
|
-
this.resolve();
|
|
258
257
|
}
|
|
259
258
|
catch (error) {
|
|
260
259
|
console.error('Error while emitting event.', (0, logger_1.serializeError)(error));
|
|
261
260
|
}
|
|
261
|
+
finally {
|
|
262
|
+
this.resolve();
|
|
263
|
+
}
|
|
262
264
|
}
|
|
263
265
|
}
|
|
264
266
|
exports.Spawn = Spawn;
|
|
@@ -49,7 +49,7 @@ describe('Artifact ordering when artifacts overflow batch sizes in repositories'
|
|
|
49
49
|
let testAdapter;
|
|
50
50
|
beforeEach(() => {
|
|
51
51
|
// Create a fresh adapter instance for this test to avoid mocking conflicts
|
|
52
|
-
const mockEvent = (0, test_helpers_1.createEvent)({ eventType: types_1.EventType.
|
|
52
|
+
const mockEvent = (0, test_helpers_1.createEvent)({ eventType: types_1.EventType.StartExtractingData });
|
|
53
53
|
const mockAdapterState = new state_1.State({
|
|
54
54
|
event: mockEvent,
|
|
55
55
|
initialState: { attachments: { completed: false } },
|
|
@@ -26,10 +26,11 @@ export declare class WorkerAdapter<ConnectorState> {
|
|
|
26
26
|
readonly event: AirdropEvent;
|
|
27
27
|
readonly options?: WorkerAdapterOptions;
|
|
28
28
|
isTimeout: boolean;
|
|
29
|
+
hasWorkerEmitted: boolean;
|
|
29
30
|
private adapterState;
|
|
30
31
|
private _artifacts;
|
|
31
|
-
private hasWorkerEmitted;
|
|
32
32
|
private repos;
|
|
33
|
+
private currentEventDataLength;
|
|
33
34
|
private loaderReports;
|
|
34
35
|
private _processedFiles;
|
|
35
36
|
private _mappers;
|
|
@@ -53,7 +54,6 @@ export declare class WorkerAdapter<ConnectorState> {
|
|
|
53
54
|
*/
|
|
54
55
|
emit(newEventType: ExtractorEventType | LoaderEventType, data?: EventData): Promise<void>;
|
|
55
56
|
uploadAllRepos(): Promise<void>;
|
|
56
|
-
handleTimeout(): void;
|
|
57
57
|
loadItemTypes({ itemTypesToLoad, }: ItemTypesToLoadParams): Promise<LoadItemTypesResponse>;
|
|
58
58
|
getLoaderBatches({ supportedItemTypes, }: {
|
|
59
59
|
supportedItemTypes: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../../src/multithreading/worker-adapter/worker-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../../src/multithreading/worker-adapter/worker-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ const loading_1 = require("../../types/loading");
|
|
|
21
21
|
const workers_1 = require("../../types/workers");
|
|
22
22
|
const uploader_1 = require("../../uploader/uploader");
|
|
23
23
|
const event_type_translation_1 = require("../../common/event-type-translation");
|
|
24
|
+
const helpers_1 = require("../../common/helpers");
|
|
24
25
|
function createWorkerAdapter({ event, adapterState, options, }) {
|
|
25
26
|
return new WorkerAdapter({
|
|
26
27
|
event,
|
|
@@ -46,6 +47,7 @@ function createWorkerAdapter({ event, adapterState, options, }) {
|
|
|
46
47
|
class WorkerAdapter {
|
|
47
48
|
constructor({ event, adapterState, options, }) {
|
|
48
49
|
this.repos = [];
|
|
50
|
+
this.currentEventDataLength = 0;
|
|
49
51
|
this.event = event;
|
|
50
52
|
this.options = options;
|
|
51
53
|
this.adapterState = adapterState;
|
|
@@ -89,6 +91,12 @@ class WorkerAdapter {
|
|
|
89
91
|
if (repo.itemType === constants_1.AIRDROP_DEFAULT_ITEM_TYPES.ATTACHMENTS) {
|
|
90
92
|
(_a = this.state.toDevRev) === null || _a === void 0 ? void 0 : _a.attachmentsMetadata.artifactIds.push(artifact.id);
|
|
91
93
|
}
|
|
94
|
+
// Calculate size of the entire artifact object that goes in the SQS message
|
|
95
|
+
this.currentEventDataLength += Buffer.byteLength(JSON.stringify(artifact), 'utf8');
|
|
96
|
+
if (this.currentEventDataLength > constants_1.EVENT_SIZE_THRESHOLD_BYTES &&
|
|
97
|
+
!this.isTimeout) {
|
|
98
|
+
this.isTimeout = true;
|
|
99
|
+
}
|
|
92
100
|
}, options: this.options }));
|
|
93
101
|
});
|
|
94
102
|
}
|
|
@@ -123,6 +131,7 @@ class WorkerAdapter {
|
|
|
123
131
|
*/
|
|
124
132
|
async emit(newEventType, data) {
|
|
125
133
|
return (0, logger_context_1.runWithSdkLogContext)(async () => {
|
|
134
|
+
var _a;
|
|
126
135
|
newEventType = (0, event_type_translation_1.translateOutgoingEventType)(newEventType);
|
|
127
136
|
if (this.hasWorkerEmitted) {
|
|
128
137
|
console.warn(`Trying to emit event with event type: ${newEventType}. Ignoring emit request because it has already been emitted.`);
|
|
@@ -161,6 +170,10 @@ class WorkerAdapter {
|
|
|
161
170
|
}
|
|
162
171
|
}
|
|
163
172
|
try {
|
|
173
|
+
// Always prune error messages to make them shorter before emit
|
|
174
|
+
if ((_a = data === null || data === void 0 ? void 0 : data.error) === null || _a === void 0 ? void 0 : _a.message) {
|
|
175
|
+
data.error.message = (0, helpers_1.truncateMessage)(data.error.message);
|
|
176
|
+
}
|
|
164
177
|
await (0, control_protocol_1.emit)({
|
|
165
178
|
eventType: newEventType,
|
|
166
179
|
event: this.event,
|
|
@@ -192,9 +205,6 @@ class WorkerAdapter {
|
|
|
192
205
|
}
|
|
193
206
|
}
|
|
194
207
|
}
|
|
195
|
-
handleTimeout() {
|
|
196
|
-
this.isTimeout = true;
|
|
197
|
-
}
|
|
198
208
|
async loadItemTypes({ itemTypesToLoad, }) {
|
|
199
209
|
return (0, logger_context_1.runWithSdkLogContext)(async () => {
|
|
200
210
|
var _a;
|
|
@@ -532,30 +542,36 @@ class WorkerAdapter {
|
|
|
532
542
|
// Get upload URL
|
|
533
543
|
const { error: artifactUrlError, response: artifactUrlResponse } = await this.uploader.getArtifactUploadUrl(attachment.file_name, fileType, fileSize);
|
|
534
544
|
if (artifactUrlError) {
|
|
535
|
-
console.warn(`Error while preparing artifact for attachment ID ${attachment.id}. Skipping attachment. ` +
|
|
536
|
-
(0, logger_1.serializeError)(artifactUrlError));
|
|
537
|
-
this.destroyHttpStream(httpStream);
|
|
538
|
-
return;
|
|
539
|
-
}
|
|
540
|
-
if (this.isTimeout) {
|
|
541
545
|
this.destroyHttpStream(httpStream);
|
|
542
|
-
return
|
|
546
|
+
return {
|
|
547
|
+
error: {
|
|
548
|
+
message: `Error while preparing artifact for attachment ID ${attachment.id}. Skipping attachment. ${(0, logger_1.serializeError)(artifactUrlError)}`,
|
|
549
|
+
fileSize: fileSize,
|
|
550
|
+
},
|
|
551
|
+
};
|
|
543
552
|
}
|
|
544
553
|
// Stream attachment
|
|
545
554
|
const { error: uploadedArtifactError } = await this.uploader.streamArtifact(artifactUrlResponse, httpStream);
|
|
546
555
|
if (uploadedArtifactError) {
|
|
547
|
-
console.warn(`Error while streaming to artifact for attachment ID ${attachment.id}. Skipping attachment. ` +
|
|
548
|
-
(0, logger_1.serializeError)(uploadedArtifactError));
|
|
549
556
|
this.destroyHttpStream(httpStream);
|
|
550
|
-
return
|
|
557
|
+
return {
|
|
558
|
+
error: {
|
|
559
|
+
message: `Error while streaming to artifact for attachment ID ${attachment.id}. Skipping attachment. ` +
|
|
560
|
+
(0, logger_1.serializeError)(uploadedArtifactError),
|
|
561
|
+
fileSize: fileSize,
|
|
562
|
+
},
|
|
563
|
+
};
|
|
551
564
|
}
|
|
552
565
|
// Confirm attachment upload
|
|
553
566
|
const { error: confirmArtifactUploadError } = await this.uploader.confirmArtifactUpload(artifactUrlResponse.artifact_id);
|
|
554
567
|
if (confirmArtifactUploadError) {
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
568
|
+
return {
|
|
569
|
+
error: {
|
|
570
|
+
message: `Error while confirming upload for attachment ID ${attachment.id}. ` +
|
|
571
|
+
(0, logger_1.serializeError)(confirmArtifactUploadError),
|
|
572
|
+
fileSize: fileSize,
|
|
573
|
+
},
|
|
574
|
+
};
|
|
559
575
|
}
|
|
560
576
|
const ssorAttachment = {
|
|
561
577
|
id: {
|
|
@@ -580,8 +596,13 @@ class WorkerAdapter {
|
|
|
580
596
|
ssorAttachment.inline = false;
|
|
581
597
|
}
|
|
582
598
|
await ((_a = this.getRepo('ssor_attachment')) === null || _a === void 0 ? void 0 : _a.push([ssorAttachment]));
|
|
599
|
+
return;
|
|
583
600
|
}
|
|
584
|
-
return
|
|
601
|
+
return {
|
|
602
|
+
error: {
|
|
603
|
+
message: `Error while opening attachment stream. Skipping attachment.`,
|
|
604
|
+
},
|
|
605
|
+
};
|
|
585
606
|
});
|
|
586
607
|
}
|
|
587
608
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-domain-metadata.d.ts","sourceRoot":"","sources":["../../src/types/external-domain-metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;AAErC,kGAAkG;AAClG,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,uFAAuF;AACvF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,+DAA+D;AAC/D,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,+DAA+D;AAC/D,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,KAAK,GACL,OAAO,GACP,MAAM,GACN,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,MAAM,GACN,MAAM,GACN,WAAW,GACX,QAAQ,GACR,YAAY,GACZ,uBAAuB,GACvB,iBAAiB,GACjB,uBAAuB,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"external-domain-metadata.d.ts","sourceRoot":"","sources":["../../src/types/external-domain-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/types/extraction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/types/extraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../src/uploader/uploader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAU/D,OAAO,EAEL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,qBAAa,QAAQ;IACnB,OAAO,CAAC,kBAAkB,CAAC,CAAU;IACrC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAyB;gBAEnC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,wBAAwB;IAUxD;;;;;OAKG;IACG,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,GAChC,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../src/uploader/uploader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAU/D,OAAO,EAEL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,qBAAa,QAAQ;IACnB,OAAO,CAAC,kBAAkB,CAAC,CAAU;IACrC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAyB;gBAEnC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,wBAAwB;IAUxD;;;;;OAKG;IACG,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,GAChC,OAAO,CAAC,cAAc,CAAC;IAwE1B;;;;;;OAMG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IA2B5C;;;;;OAKG;IACG,cAAc,CAClB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAmBzC;;;;;OAKG;IACG,cAAc,CAClB,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,aAAa,GACxB,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IA8BzC;;;;OAIG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAiCF;;;OAGG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;OAKG;IACG,4BAA4B,CAAC,EACjC,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QACV,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACrC,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7B,CAAC;IA2DF;;;;OAIG;YACW,sBAAsB;IAsBpC;;;;OAIG;YACW,gBAAgB;IAc9B;;;;;;OAMG;IACG,yBAAyB,CAAC,EAC9B,UAAU,EACV,SAAiB,GAClB,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;CA6B/C"}
|
|
@@ -34,7 +34,10 @@ class Uploader {
|
|
|
34
34
|
const { response: file, error: fileError } = (0, uploader_helpers_1.compressGzip)(js_jsonl_1.jsonl.stringify(fetchedObjects));
|
|
35
35
|
if (fileError) {
|
|
36
36
|
return {
|
|
37
|
-
error:
|
|
37
|
+
error: {
|
|
38
|
+
message: 'Error while compressing jsonl object. ' +
|
|
39
|
+
(0, logger_1.serializeError)(fileError),
|
|
40
|
+
},
|
|
38
41
|
};
|
|
39
42
|
}
|
|
40
43
|
const filename = itemType + '.jsonl.gz';
|
|
@@ -43,22 +46,30 @@ class Uploader {
|
|
|
43
46
|
const { error: preparedArtifactError, response: preparedArtifact } = await this.getArtifactUploadUrl(filename, fileType);
|
|
44
47
|
if (preparedArtifactError) {
|
|
45
48
|
return {
|
|
46
|
-
error:
|
|
49
|
+
error: {
|
|
50
|
+
message: 'Error while getting artifact upload URL: ' +
|
|
51
|
+
(0, logger_1.serializeError)(preparedArtifactError),
|
|
52
|
+
},
|
|
47
53
|
};
|
|
48
54
|
}
|
|
49
55
|
// Upload prepared artifact to the given url
|
|
50
56
|
const { error: uploadItemError } = await this.uploadArtifact(preparedArtifact, file);
|
|
51
57
|
if (uploadItemError) {
|
|
52
58
|
return {
|
|
53
|
-
error:
|
|
59
|
+
error: {
|
|
60
|
+
message: 'Error while uploading artifact: ' +
|
|
61
|
+
(0, logger_1.serializeError)(uploadItemError),
|
|
62
|
+
},
|
|
54
63
|
};
|
|
55
64
|
}
|
|
56
65
|
// Confirm upload
|
|
57
66
|
const { error: confirmArtifactUploadError } = await this.confirmArtifactUpload(preparedArtifact.artifact_id);
|
|
58
67
|
if (confirmArtifactUploadError) {
|
|
59
68
|
return {
|
|
60
|
-
error:
|
|
61
|
-
|
|
69
|
+
error: {
|
|
70
|
+
message: 'Error while confirming artifact upload. ' +
|
|
71
|
+
(0, logger_1.serializeError)(confirmArtifactUploadError),
|
|
72
|
+
},
|
|
62
73
|
};
|
|
63
74
|
}
|
|
64
75
|
// Return the artifact information to the platform
|
|
@@ -78,6 +89,11 @@ class Uploader {
|
|
|
78
89
|
*/
|
|
79
90
|
async getArtifactUploadUrl(filename, fileType, fileSize) {
|
|
80
91
|
const url = `${this.devrevApiEndpoint}/internal/airdrop.artifacts.upload-url`;
|
|
92
|
+
if (fileSize !== undefined && fileSize <= 0) {
|
|
93
|
+
return {
|
|
94
|
+
error: { message: 'File size is 0 or less.' },
|
|
95
|
+
};
|
|
96
|
+
}
|
|
81
97
|
try {
|
|
82
98
|
const response = await axios_client_internal_1.axiosClient.get(url, {
|
|
83
99
|
headers: Object.assign({}, this.defaultHeaders),
|
|
@@ -168,13 +184,15 @@ class Uploader {
|
|
|
168
184
|
}
|
|
169
185
|
else {
|
|
170
186
|
return {
|
|
171
|
-
error:
|
|
172
|
-
|
|
187
|
+
error: {
|
|
188
|
+
message: 'Error while confirming artifact upload. ' +
|
|
189
|
+
(0, logger_1.serializeError)(response),
|
|
190
|
+
},
|
|
173
191
|
};
|
|
174
192
|
}
|
|
175
193
|
}
|
|
176
194
|
catch (error) {
|
|
177
|
-
return { error: (0, logger_1.serializeError)(error) };
|
|
195
|
+
return { error: { message: (0, logger_1.serializeError)(error) } };
|
|
178
196
|
}
|
|
179
197
|
}
|
|
180
198
|
/**
|
|
@@ -208,31 +226,40 @@ class Uploader {
|
|
|
208
226
|
const { response: artifactUrl, error: artifactUrlError } = await this.getArtifactDownloadUrl(artifact);
|
|
209
227
|
if (artifactUrlError) {
|
|
210
228
|
return {
|
|
211
|
-
error:
|
|
212
|
-
|
|
229
|
+
error: {
|
|
230
|
+
message: 'Error while getting artifact download URL. ' +
|
|
231
|
+
(0, logger_1.serializeError)(artifactUrlError),
|
|
232
|
+
},
|
|
213
233
|
};
|
|
214
234
|
}
|
|
215
235
|
// Download artifact from the URL
|
|
216
236
|
const { response: gzippedJsonlObject, error: gzippedJsonlObjectError } = await this.downloadArtifact(artifactUrl);
|
|
217
237
|
if (gzippedJsonlObjectError) {
|
|
218
238
|
return {
|
|
219
|
-
error:
|
|
220
|
-
|
|
239
|
+
error: {
|
|
240
|
+
message: 'Error while downloading gzipped jsonl object. ' +
|
|
241
|
+
(0, logger_1.serializeError)(gzippedJsonlObjectError),
|
|
242
|
+
},
|
|
221
243
|
};
|
|
222
244
|
}
|
|
223
245
|
// Decompress the gzipped jsonl object
|
|
224
246
|
const { response: jsonlObject, error: jsonlObjectError } = (0, uploader_helpers_1.decompressGzip)(gzippedJsonlObject);
|
|
225
247
|
if (jsonlObjectError) {
|
|
226
248
|
return {
|
|
227
|
-
error:
|
|
228
|
-
|
|
249
|
+
error: {
|
|
250
|
+
message: 'Error while decompressing gzipped jsonl object. ' +
|
|
251
|
+
(0, logger_1.serializeError)(jsonlObjectError),
|
|
252
|
+
},
|
|
229
253
|
};
|
|
230
254
|
}
|
|
231
255
|
// Parse the jsonl object to get the attachment metadata
|
|
232
256
|
const { response: jsonObject, error: jsonObjectError } = (0, uploader_helpers_1.parseJsonl)(jsonlObject);
|
|
233
257
|
if (jsonObjectError) {
|
|
234
258
|
return {
|
|
235
|
-
error:
|
|
259
|
+
error: {
|
|
260
|
+
message: 'Error while parsing jsonl object. ' +
|
|
261
|
+
(0, logger_1.serializeError)(jsonObjectError),
|
|
262
|
+
},
|
|
236
263
|
};
|
|
237
264
|
}
|
|
238
265
|
return { attachments: jsonObject };
|
|
@@ -85,7 +85,8 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
85
85
|
// Act
|
|
86
86
|
const result = await uploader.upload(itemType, fetchedObjects);
|
|
87
87
|
// Assert
|
|
88
|
-
expect(result.error).
|
|
88
|
+
expect(result.error).toBeDefined();
|
|
89
|
+
expect(result.error).toHaveProperty('message');
|
|
89
90
|
expect(result.artifact).toBeUndefined();
|
|
90
91
|
});
|
|
91
92
|
it('should return error when uploadArtifact fails', async () => {
|
|
@@ -97,7 +98,8 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
97
98
|
// Act
|
|
98
99
|
const result = await uploader.upload(itemType, fetchedObjects);
|
|
99
100
|
// Assert
|
|
100
|
-
expect(result.error).
|
|
101
|
+
expect(result.error).toBeDefined();
|
|
102
|
+
expect(result.error).toHaveProperty('message');
|
|
101
103
|
expect(result.artifact).toBeUndefined();
|
|
102
104
|
});
|
|
103
105
|
it('should return error when confirmArtifactUpload fails', async () => {
|
|
@@ -111,7 +113,8 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
111
113
|
// Act
|
|
112
114
|
const result = await uploader.upload(itemType, fetchedObjects);
|
|
113
115
|
// Assert
|
|
114
|
-
expect(result.error).
|
|
116
|
+
expect(result.error).toBeDefined();
|
|
117
|
+
expect(result.error).toHaveProperty('message');
|
|
115
118
|
expect(result.artifact).toBeUndefined();
|
|
116
119
|
});
|
|
117
120
|
it('should return error when compression fails', async () => {
|
|
@@ -122,7 +125,8 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
122
125
|
// Act
|
|
123
126
|
const result = await uploader.upload(itemType, fetchedObjects);
|
|
124
127
|
// Assert
|
|
125
|
-
expect(result.error).
|
|
128
|
+
expect(result.error).toBeDefined();
|
|
129
|
+
expect(result.error).toHaveProperty('message');
|
|
126
130
|
expect(result.artifact).toBeUndefined();
|
|
127
131
|
});
|
|
128
132
|
});
|
|
@@ -160,6 +164,16 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
160
164
|
expect(result.error).toBeInstanceOf(Error);
|
|
161
165
|
expect(mockedAxiosClient.get).toHaveBeenCalled();
|
|
162
166
|
});
|
|
167
|
+
it('should return error during upload, as it has size of zero', async () => {
|
|
168
|
+
// Arrange
|
|
169
|
+
const filename = 'test-file.jsonl.gz';
|
|
170
|
+
const fileType = 'application/x-gzip';
|
|
171
|
+
const fileSize = 0;
|
|
172
|
+
// Act
|
|
173
|
+
const result = await uploader.getArtifactUploadUrl(filename, fileType, fileSize);
|
|
174
|
+
// Assert
|
|
175
|
+
expect(result.error).toBeDefined();
|
|
176
|
+
});
|
|
163
177
|
});
|
|
164
178
|
describe(uploader_1.Uploader.prototype.uploadArtifact.name, () => {
|
|
165
179
|
it('should return response when posting file as multipart form data', async () => {
|
|
@@ -230,7 +244,8 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
230
244
|
const result = await uploader.confirmArtifactUpload(artifactId);
|
|
231
245
|
// Assert
|
|
232
246
|
expect(result.response).toBeUndefined();
|
|
233
|
-
expect(result.error).
|
|
247
|
+
expect(result.error).toBeDefined();
|
|
248
|
+
expect(result.error).toHaveProperty('message');
|
|
234
249
|
});
|
|
235
250
|
});
|
|
236
251
|
describe(uploader_1.Uploader.prototype.streamArtifact.name, () => {
|
|
@@ -459,7 +474,8 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
459
474
|
artifact: artifactId,
|
|
460
475
|
});
|
|
461
476
|
// Assert
|
|
462
|
-
expect(result.error).
|
|
477
|
+
expect(result.error).toBeDefined();
|
|
478
|
+
expect(result.error).toHaveProperty('message');
|
|
463
479
|
expect(result.attachments).toBeUndefined();
|
|
464
480
|
});
|
|
465
481
|
it('should return error when downloadArtifact fails', async () => {
|
|
@@ -472,7 +488,8 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
472
488
|
artifact: artifactId,
|
|
473
489
|
});
|
|
474
490
|
// Assert
|
|
475
|
-
expect(result.error).
|
|
491
|
+
expect(result.error).toBeDefined();
|
|
492
|
+
expect(result.error).toHaveProperty('message');
|
|
476
493
|
expect(result.attachments).toBeUndefined();
|
|
477
494
|
});
|
|
478
495
|
it('should return error when decompression fails', async () => {
|
|
@@ -487,7 +504,8 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
487
504
|
artifact: artifactId,
|
|
488
505
|
});
|
|
489
506
|
// Assert
|
|
490
|
-
expect(result.error).
|
|
507
|
+
expect(result.error).toBeDefined();
|
|
508
|
+
expect(result.error).toHaveProperty('message');
|
|
491
509
|
expect(result.attachments).toBeUndefined();
|
|
492
510
|
});
|
|
493
511
|
it('should return error when JSONL parsing fails', async () => {
|
|
@@ -503,7 +521,8 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
503
521
|
artifact: artifactId,
|
|
504
522
|
});
|
|
505
523
|
// Assert
|
|
506
|
-
expect(result.error).
|
|
524
|
+
expect(result.error).toBeDefined();
|
|
525
|
+
expect(result.error).toHaveProperty('message');
|
|
507
526
|
expect(result.attachments).toBeUndefined();
|
|
508
527
|
});
|
|
509
528
|
});
|
package/package.json
CHANGED