@devrev/ts-adaas 1.19.10 → 1.19.11-beta.0
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/common/control-protocol.d.ts +3 -2
- package/dist/common/control-protocol.d.ts.map +1 -1
- package/dist/common/control-protocol.js +2 -4
- package/dist/common/control-protocol.test.d.ts +2 -0
- package/dist/common/control-protocol.test.d.ts.map +1 -0
- package/dist/common/control-protocol.test.js +126 -0
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts +1 -0
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +1 -1
- package/dist/multithreading/worker-adapter/worker-adapter.emit.test.js +94 -0
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts +1 -0
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +1 -1
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.js +7 -0
- package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.js +28 -0
- package/dist/multithreading/worker-adapter/worker-adapter.interfaces.d.ts +14 -0
- package/dist/multithreading/worker-adapter/worker-adapter.interfaces.d.ts.map +1 -0
- package/dist/multithreading/worker-adapter/worker-adapter.interfaces.js +2 -0
- package/dist/multithreading/worker-adapter/worker-adapter.js +19 -0
- package/dist/repo/repo.d.ts +10 -0
- 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.helpers.test.d.ts +2 -0
- package/dist/repo/repo.helpers.test.d.ts.map +1 -0
- package/dist/repo/repo.helpers.test.js +71 -0
- package/dist/repo/repo.interfaces.d.ts +2 -0
- package/dist/repo/repo.interfaces.d.ts.map +1 -1
- package/dist/repo/repo.js +21 -0
- package/dist/repo/repo.test.js +162 -0
- package/dist/types/extraction.d.ts +8 -1
- package/dist/types/extraction.d.ts.map +1 -1
- package/dist/uploader/uploader.d.ts.map +1 -1
- package/dist/uploader/uploader.helpers.d.ts +6 -1
- package/dist/uploader/uploader.helpers.d.ts.map +1 -1
- package/dist/uploader/uploader.helpers.js +65 -0
- package/dist/uploader/uploader.helpers.test.js +148 -7
- package/dist/uploader/uploader.interfaces.d.ts +11 -0
- package/dist/uploader/uploader.interfaces.d.ts.map +1 -1
- package/dist/uploader/uploader.interfaces.js +11 -0
- package/dist/uploader/uploader.js +7 -11
- package/dist/uploader/uploader.test.js +78 -3
- package/package.json +3 -3
|
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const form_data_1 = __importDefault(require("form-data"));
|
|
7
7
|
const js_jsonl_1 = require("js-jsonl");
|
|
8
8
|
const zlib_1 = __importDefault(require("zlib"));
|
|
9
|
+
const test_utils_1 = require("../common/test-utils");
|
|
9
10
|
const axios_client_internal_1 = require("../http/axios-client-internal");
|
|
10
|
-
const test_helpers_1 = require("../tests/test-helpers");
|
|
11
11
|
const jest_setup_1 = require("../tests/jest.setup");
|
|
12
|
-
const
|
|
13
|
-
const uploader_helpers_1 = require("./uploader.helpers");
|
|
12
|
+
const test_helpers_1 = require("../tests/test-helpers");
|
|
14
13
|
const uploader_1 = require("./uploader");
|
|
14
|
+
const uploader_helpers_1 = require("./uploader.helpers");
|
|
15
15
|
jest.mock('../http/axios-client-internal');
|
|
16
16
|
jest.mock('./uploader.helpers', () => (Object.assign(Object.assign({}, jest.requireActual('./uploader.helpers')), { downloadToLocal: jest.fn(), compressGzip: jest.fn(jest.requireActual('./uploader.helpers').compressGzip) })));
|
|
17
17
|
const mockedAxiosClient = jest.mocked(axios_client_internal_1.axiosClient);
|
|
@@ -51,6 +51,57 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
51
51
|
});
|
|
52
52
|
expect(result.error).toBeUndefined();
|
|
53
53
|
});
|
|
54
|
+
it('should compute oldest/newest created and modified dates from normalized items', async () => {
|
|
55
|
+
var _a, _b, _c, _d;
|
|
56
|
+
// Arrange
|
|
57
|
+
const itemType = 'tasks';
|
|
58
|
+
const fetchedObjects = [
|
|
59
|
+
{
|
|
60
|
+
id: '1',
|
|
61
|
+
created_date: '2020-06-15T10:00:00.000Z',
|
|
62
|
+
modified_date: '2021-01-20T10:00:00.000Z',
|
|
63
|
+
data: { name: 'Task 1' },
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: '2',
|
|
67
|
+
created_date: '2019-03-01T08:00:00.000Z',
|
|
68
|
+
modified_date: '2022-11-30T18:00:00.000Z',
|
|
69
|
+
data: { name: 'Task 2' },
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
mockedAxiosClient.get.mockResolvedValueOnce(mockArtifactUploadUrlResponse);
|
|
73
|
+
mockedAxiosClient.post.mockResolvedValue((0, test_helpers_1.createAxiosResponse)());
|
|
74
|
+
// Act
|
|
75
|
+
const result = await uploader.upload(itemType, fetchedObjects);
|
|
76
|
+
// Assert
|
|
77
|
+
expect((_a = result.artifact) === null || _a === void 0 ? void 0 : _a.oldest_created_date).toBe('2019-03-01T08:00:00.000Z');
|
|
78
|
+
expect((_b = result.artifact) === null || _b === void 0 ? void 0 : _b.newest_created_date).toBe('2020-06-15T10:00:00.000Z');
|
|
79
|
+
expect((_c = result.artifact) === null || _c === void 0 ? void 0 : _c.oldest_modified_date).toBe('2021-01-20T10:00:00.000Z');
|
|
80
|
+
expect((_d = result.artifact) === null || _d === void 0 ? void 0 : _d.newest_modified_date).toBe('2022-11-30T18:00:00.000Z');
|
|
81
|
+
expect(result.error).toBeUndefined();
|
|
82
|
+
});
|
|
83
|
+
it('should compute date ranges for single object upload', async () => {
|
|
84
|
+
var _a, _b, _c, _d;
|
|
85
|
+
// Arrange
|
|
86
|
+
const itemType = 'metadata';
|
|
87
|
+
const fetchedObject = {
|
|
88
|
+
id: '1',
|
|
89
|
+
created_date: '2018-12-25T00:00:00.000Z',
|
|
90
|
+
modified_date: '2018-12-26T00:00:00.000Z',
|
|
91
|
+
data: { key: 'value' },
|
|
92
|
+
};
|
|
93
|
+
mockedAxiosClient.get.mockResolvedValueOnce(mockArtifactUploadUrlResponse);
|
|
94
|
+
mockedAxiosClient.post.mockResolvedValue((0, test_helpers_1.createAxiosResponse)());
|
|
95
|
+
// Act
|
|
96
|
+
const result = await uploader.upload(itemType, fetchedObject);
|
|
97
|
+
// Assert
|
|
98
|
+
const createdTs = '2018-12-25T00:00:00.000Z';
|
|
99
|
+
const modifiedTs = '2018-12-26T00:00:00.000Z';
|
|
100
|
+
expect((_a = result.artifact) === null || _a === void 0 ? void 0 : _a.oldest_created_date).toBe(createdTs);
|
|
101
|
+
expect((_b = result.artifact) === null || _b === void 0 ? void 0 : _b.newest_created_date).toBe(createdTs);
|
|
102
|
+
expect((_c = result.artifact) === null || _c === void 0 ? void 0 : _c.oldest_modified_date).toBe(modifiedTs);
|
|
103
|
+
expect((_d = result.artifact) === null || _d === void 0 ? void 0 : _d.newest_modified_date).toBe(modifiedTs);
|
|
104
|
+
});
|
|
54
105
|
it('should report item_count as 1 when uploading single object', async () => {
|
|
55
106
|
var _a;
|
|
56
107
|
// Arrange
|
|
@@ -321,6 +372,30 @@ describe(uploader_1.Uploader.name, () => {
|
|
|
321
372
|
}),
|
|
322
373
|
}));
|
|
323
374
|
});
|
|
375
|
+
it('should disable axios-retry when falling back to a guessed Content-Length', async () => {
|
|
376
|
+
// Arrange
|
|
377
|
+
const artifact = (0, test_helpers_1.createArtifact)();
|
|
378
|
+
const fileStream = (0, test_helpers_1.createFileStream)({ includeContentLength: false });
|
|
379
|
+
mockedAxiosClient.post.mockResolvedValueOnce((0, test_helpers_1.createAxiosResponse)());
|
|
380
|
+
// Act
|
|
381
|
+
await uploader.streamArtifact(artifact, fileStream);
|
|
382
|
+
// Assert
|
|
383
|
+
expect(mockedAxiosClient.post).toHaveBeenCalledWith(artifact.upload_url, expect.any(form_data_1.default), expect.objectContaining({
|
|
384
|
+
'axios-retry': { retries: 0 },
|
|
385
|
+
}));
|
|
386
|
+
});
|
|
387
|
+
it('should not override axios-retry when the real Content-Length is known', async () => {
|
|
388
|
+
// Arrange
|
|
389
|
+
const artifact = (0, test_helpers_1.createArtifact)();
|
|
390
|
+
const fileStream = (0, test_helpers_1.createFileStream)({ contentLength: 1024 });
|
|
391
|
+
mockedAxiosClient.post.mockResolvedValueOnce((0, test_helpers_1.createAxiosResponse)());
|
|
392
|
+
// Act
|
|
393
|
+
await uploader.streamArtifact(artifact, fileStream);
|
|
394
|
+
// Assert
|
|
395
|
+
const callArgs = mockedAxiosClient.post.mock.calls[0];
|
|
396
|
+
const config = callArgs[2];
|
|
397
|
+
expect(config).not.toHaveProperty('axios-retry');
|
|
398
|
+
});
|
|
324
399
|
it('should destroy stream and return undefined when streaming fails', async () => {
|
|
325
400
|
// Arrange
|
|
326
401
|
const artifact = (0, test_helpers_1.createArtifact)();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devrev/ts-adaas",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.11-beta.0",
|
|
4
4
|
"description": "Typescript library containing the ADaaS(AirDrop as a Service) control protocol.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
"typescript-eslint": "^8.46.1"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@devrev/typescript-sdk": "^1.1.
|
|
49
|
+
"@devrev/typescript-sdk": "^1.1.78",
|
|
50
50
|
"axios": "^1.17.0",
|
|
51
51
|
"axios-retry": "^4.5.0",
|
|
52
52
|
"form-data": "^4.0.4",
|
|
53
53
|
"js-jsonl": "^1.1.1",
|
|
54
54
|
"ts-node": "^10.9.2",
|
|
55
|
-
"yargs": "^17.7.
|
|
55
|
+
"yargs": "^17.7.3"
|
|
56
56
|
},
|
|
57
57
|
"files": [
|
|
58
58
|
"dist/**/*",
|