@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.
Files changed (42) hide show
  1. package/dist/common/control-protocol.d.ts +3 -2
  2. package/dist/common/control-protocol.d.ts.map +1 -1
  3. package/dist/common/control-protocol.js +2 -4
  4. package/dist/common/control-protocol.test.d.ts +2 -0
  5. package/dist/common/control-protocol.test.d.ts.map +1 -0
  6. package/dist/common/control-protocol.test.js +126 -0
  7. package/dist/multithreading/worker-adapter/worker-adapter.d.ts +1 -0
  8. package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +1 -1
  9. package/dist/multithreading/worker-adapter/worker-adapter.emit.test.js +94 -0
  10. package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts +1 -0
  11. package/dist/multithreading/worker-adapter/worker-adapter.helpers.d.ts.map +1 -1
  12. package/dist/multithreading/worker-adapter/worker-adapter.helpers.js +7 -0
  13. package/dist/multithreading/worker-adapter/worker-adapter.helpers.test.js +28 -0
  14. package/dist/multithreading/worker-adapter/worker-adapter.interfaces.d.ts +14 -0
  15. package/dist/multithreading/worker-adapter/worker-adapter.interfaces.d.ts.map +1 -0
  16. package/dist/multithreading/worker-adapter/worker-adapter.interfaces.js +2 -0
  17. package/dist/multithreading/worker-adapter/worker-adapter.js +19 -0
  18. package/dist/repo/repo.d.ts +10 -0
  19. package/dist/repo/repo.d.ts.map +1 -1
  20. package/dist/repo/repo.helpers.d.ts +6 -0
  21. package/dist/repo/repo.helpers.d.ts.map +1 -0
  22. package/dist/repo/repo.helpers.js +16 -0
  23. package/dist/repo/repo.helpers.test.d.ts +2 -0
  24. package/dist/repo/repo.helpers.test.d.ts.map +1 -0
  25. package/dist/repo/repo.helpers.test.js +71 -0
  26. package/dist/repo/repo.interfaces.d.ts +2 -0
  27. package/dist/repo/repo.interfaces.d.ts.map +1 -1
  28. package/dist/repo/repo.js +21 -0
  29. package/dist/repo/repo.test.js +162 -0
  30. package/dist/types/extraction.d.ts +8 -1
  31. package/dist/types/extraction.d.ts.map +1 -1
  32. package/dist/uploader/uploader.d.ts.map +1 -1
  33. package/dist/uploader/uploader.helpers.d.ts +6 -1
  34. package/dist/uploader/uploader.helpers.d.ts.map +1 -1
  35. package/dist/uploader/uploader.helpers.js +65 -0
  36. package/dist/uploader/uploader.helpers.test.js +148 -7
  37. package/dist/uploader/uploader.interfaces.d.ts +11 -0
  38. package/dist/uploader/uploader.interfaces.d.ts.map +1 -1
  39. package/dist/uploader/uploader.interfaces.js +11 -0
  40. package/dist/uploader/uploader.js +7 -11
  41. package/dist/uploader/uploader.test.js +78 -3
  42. 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 test_utils_1 = require("../common/test-utils");
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.10",
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.76",
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.2"
55
+ "yargs": "^17.7.3"
56
56
  },
57
57
  "files": [
58
58
  "dist/**/*",