@alwaysmeticulous/downloading-helpers 2.248.3 → 2.248.9
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/file-downloads/__tests__/download-file.spec.js +8 -7
- package/dist/file-downloads/__tests__/download-file.spec.js.map +1 -1
- package/dist/file-downloads/download-file.d.ts +8 -6
- package/dist/file-downloads/download-file.js +44 -2
- package/dist/file-downloads/download-file.js.map +1 -1
- package/dist/file-downloads/test-runs.d.ts +1 -1
- package/dist/file-downloads/test-runs.js +2 -0
- package/dist/file-downloads/test-runs.js.map +1 -1
- package/package.json +10 -10
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
7
|
const promises_1 = require("fs/promises");
|
|
8
8
|
const http_1 = __importDefault(require("http"));
|
|
9
|
+
const vitest_1 = require("vitest");
|
|
9
10
|
const download_file_1 = require("../download-file");
|
|
10
|
-
describe("downloadFile", () => {
|
|
11
|
-
it("downloads a file from a URL", async () => {
|
|
11
|
+
(0, vitest_1.describe)("downloadFile", () => {
|
|
12
|
+
(0, vitest_1.it)("downloads a file from a URL", async () => {
|
|
12
13
|
const server = http_1.default.createServer((req, res) => {
|
|
13
14
|
res.end("Hello World");
|
|
14
15
|
});
|
|
@@ -20,7 +21,7 @@ describe("downloadFile", () => {
|
|
|
20
21
|
});
|
|
21
22
|
// Read file contents
|
|
22
23
|
const fileContents = await (0, promises_1.readFile)("file.txt", "utf8");
|
|
23
|
-
expect(fileContents).toBe("Hello World");
|
|
24
|
+
(0, vitest_1.expect)(fileContents).toBe("Hello World");
|
|
24
25
|
}
|
|
25
26
|
finally {
|
|
26
27
|
server.close();
|
|
@@ -29,7 +30,7 @@ describe("downloadFile", () => {
|
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
});
|
|
32
|
-
it("times out on a too slow file download", async () => {
|
|
33
|
+
(0, vitest_1.it)("times out on a too slow file download", async () => {
|
|
33
34
|
const server = http_1.default.createServer((req, res) => {
|
|
34
35
|
res.write("Helloooooo");
|
|
35
36
|
setTimeout(() => {
|
|
@@ -47,7 +48,7 @@ describe("downloadFile", () => {
|
|
|
47
48
|
throw new Error("Expected download to time out");
|
|
48
49
|
}
|
|
49
50
|
catch (e) {
|
|
50
|
-
expect(e.message).toEqual("Download timed out after 1ms");
|
|
51
|
+
(0, vitest_1.expect)(e.message).toEqual("Download timed out after 1ms");
|
|
51
52
|
}
|
|
52
53
|
finally {
|
|
53
54
|
server.close();
|
|
@@ -58,7 +59,7 @@ describe("downloadFile", () => {
|
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
});
|
|
61
|
-
it("retries downloading content on file", async () => {
|
|
62
|
+
(0, vitest_1.it)("retries downloading content on file", async () => {
|
|
62
63
|
let attempt = 0;
|
|
63
64
|
const server = http_1.default.createServer((req, res) => {
|
|
64
65
|
res.write("Hello");
|
|
@@ -80,7 +81,7 @@ describe("downloadFile", () => {
|
|
|
80
81
|
});
|
|
81
82
|
// Read file contents
|
|
82
83
|
const fileContents = await (0, promises_1.readFile)("file.txt", "utf8");
|
|
83
|
-
expect(fileContents).toBe("Hello World");
|
|
84
|
+
(0, vitest_1.expect)(fileContents).toBe("Hello World");
|
|
84
85
|
}
|
|
85
86
|
finally {
|
|
86
87
|
server.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-file.spec.js","sourceRoot":"","sources":["../../../src/file-downloads/__tests__/download-file.spec.ts"],"names":[],"mappings":";;;;;AAAA,2BAAgC;AAChC,0CAA2C;AAC3C,gDAAwB;AACxB,oDAAgD;AAEhD,
|
|
1
|
+
{"version":3,"file":"download-file.spec.js","sourceRoot":"","sources":["../../../src/file-downloads/__tests__/download-file.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
interface DownloadFileOptions {
|
|
2
|
+
firstDataTimeoutInMs?: number;
|
|
3
|
+
downloadCompleteTimeoutInMs?: number;
|
|
4
|
+
maxDownloadContentRetries?: number;
|
|
5
|
+
downloadContentRetryDelay?: number;
|
|
6
|
+
}
|
|
1
7
|
/**
|
|
2
8
|
* Warning: this function is not thread safe. Do not try downloading a file to a path that may already be in use by another process.
|
|
3
9
|
*
|
|
4
10
|
* (for example most downloads are generally done at the test run level rather than the replay level)
|
|
5
11
|
*/
|
|
6
|
-
export declare const downloadFile: (fileUrl: string, path: string, opts?:
|
|
7
|
-
firstDataTimeoutInMs?: number;
|
|
8
|
-
downloadCompleteTimeoutInMs?: number;
|
|
9
|
-
maxDownloadContentRetries?: number;
|
|
10
|
-
downloadContentRetryDelay?: number;
|
|
11
|
-
}) => Promise<void>;
|
|
12
|
+
export declare const downloadFile: (fileUrl: string, path: string, opts?: DownloadFileOptions) => Promise<void>;
|
|
12
13
|
/**
|
|
13
14
|
* Download a file from a URL and extract it to a directory.
|
|
14
15
|
* The zip file will be deleted after extraction, keeping only the extracted files.
|
|
@@ -24,3 +25,4 @@ export declare const downloadFile: (fileUrl: string, path: string, opts?: {
|
|
|
24
25
|
* @returns The list of the extracted files.
|
|
25
26
|
*/
|
|
26
27
|
export declare const downloadAndExtractFile: (fileUrl: string, tmpZipFilePath: string, extractPath: string, extractTimeoutInMs?: number) => Promise<string[]>;
|
|
28
|
+
export {};
|
|
@@ -10,15 +10,28 @@ const stream_1 = require("stream");
|
|
|
10
10
|
const util_1 = require("util");
|
|
11
11
|
const axios_1 = __importDefault(require("axios"));
|
|
12
12
|
const axios_retry_1 = __importDefault(require("axios-retry"));
|
|
13
|
+
const cli_progress_1 = __importDefault(require("cli-progress"));
|
|
13
14
|
const extract_zip_1 = __importDefault(require("extract-zip"));
|
|
14
15
|
const promisifiedFinished = (0, util_1.promisify)(stream_1.finished);
|
|
16
|
+
const shouldShowProgressBar = () => {
|
|
17
|
+
return process.env.METICULOUS_IS_CLOUD_REPLAY !== "true";
|
|
18
|
+
};
|
|
19
|
+
const formatBytes = (bytes) => {
|
|
20
|
+
if (bytes === 0) {
|
|
21
|
+
return "0 B";
|
|
22
|
+
}
|
|
23
|
+
const k = 1024;
|
|
24
|
+
const sizes = ["B", "KB", "MB", "GB"];
|
|
25
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
26
|
+
return `${(bytes / Math.pow(k, i)).toFixed(1)} ${sizes[i]}`;
|
|
27
|
+
};
|
|
15
28
|
/**
|
|
16
29
|
* Warning: this function is not thread safe. Do not try downloading a file to a path that may already be in use by another process.
|
|
17
30
|
*
|
|
18
31
|
* (for example most downloads are generally done at the test run level rather than the replay level)
|
|
19
32
|
*/
|
|
20
33
|
const downloadFile = async (fileUrl, path, opts = {}) => {
|
|
21
|
-
var _a, _b, _c, _d;
|
|
34
|
+
var _a, _b, _c, _d, _e;
|
|
22
35
|
// Using the same timeout as the standard client in meticulous-sdk/packages/client/src/client.ts
|
|
23
36
|
const firstDataTimeoutInMs = (_a = opts.firstDataTimeoutInMs) !== null && _a !== void 0 ? _a : 60000;
|
|
24
37
|
const downloadCompleteTimeoutInMs = (_b = opts.downloadCompleteTimeoutInMs) !== null && _b !== void 0 ? _b : 120000;
|
|
@@ -33,8 +46,35 @@ const downloadFile = async (fileUrl, path, opts = {}) => {
|
|
|
33
46
|
responseType: "stream",
|
|
34
47
|
cancelToken: source.token,
|
|
35
48
|
});
|
|
49
|
+
const contentLength = parseInt((_e = response.headers["content-length"]) !== null && _e !== void 0 ? _e : "0", 10);
|
|
50
|
+
let progressBar = null;
|
|
51
|
+
let downloadedBytes = 0;
|
|
52
|
+
if (shouldShowProgressBar() && contentLength > 0) {
|
|
53
|
+
progressBar = new cli_progress_1.default.SingleBar({
|
|
54
|
+
format: `Downloading |{bar}| {percentage}% | {downloaded}/{total}`,
|
|
55
|
+
hideCursor: true,
|
|
56
|
+
noTTYOutput: true,
|
|
57
|
+
notTTYSchedule: 5000,
|
|
58
|
+
}, cli_progress_1.default.Presets.shades_classic);
|
|
59
|
+
progressBar.start(contentLength, 0, {
|
|
60
|
+
downloaded: formatBytes(0),
|
|
61
|
+
total: formatBytes(contentLength),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
const progressTransform = new stream_1.Transform({
|
|
65
|
+
transform(chunk, _encoding, callback) {
|
|
66
|
+
downloadedBytes += chunk.length;
|
|
67
|
+
if (progressBar) {
|
|
68
|
+
progressBar.update(downloadedBytes, {
|
|
69
|
+
downloaded: formatBytes(downloadedBytes),
|
|
70
|
+
total: formatBytes(contentLength),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
callback(null, chunk);
|
|
74
|
+
},
|
|
75
|
+
});
|
|
36
76
|
const writer = (0, fs_1.createWriteStream)(path);
|
|
37
|
-
response.data.pipe(writer);
|
|
77
|
+
response.data.pipe(progressTransform).pipe(writer);
|
|
38
78
|
const timeoutId = setTimeout(async () => {
|
|
39
79
|
const error = `Download timed out after ${downloadCompleteTimeoutInMs}ms`;
|
|
40
80
|
source.cancel(error);
|
|
@@ -45,11 +85,13 @@ const downloadFile = async (fileUrl, path, opts = {}) => {
|
|
|
45
85
|
if (timeoutId) {
|
|
46
86
|
clearTimeout(timeoutId);
|
|
47
87
|
}
|
|
88
|
+
progressBar === null || progressBar === void 0 ? void 0 : progressBar.stop();
|
|
48
89
|
}
|
|
49
90
|
catch (err) {
|
|
50
91
|
if (timeoutId) {
|
|
51
92
|
clearTimeout(timeoutId);
|
|
52
93
|
}
|
|
94
|
+
progressBar === null || progressBar === void 0 ? void 0 : progressBar.stop();
|
|
53
95
|
await new Promise((resolve) => writer.close(resolve));
|
|
54
96
|
if ((0, fs_1.existsSync)(path)) {
|
|
55
97
|
// If we errored at this stage and not earlier then we've likely already written to and corrupted the file,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-file.js","sourceRoot":"","sources":["../../src/file-downloads/download-file.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAmD;AACnD,0CAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"download-file.js","sourceRoot":"","sources":["../../src/file-downloads/download-file.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAmD;AACnD,0CAAiC;AACjC,mCAAqD;AACrD,+BAAiC;AACjC,kDAA0B;AAC1B,8DAAqC;AACrC,gEAAuC;AACvC,8DAAkC;AAElC,MAAM,mBAAmB,GAAG,IAAA,gBAAS,EAAC,iBAAQ,CAAC,CAAC;AAEhD,MAAM,qBAAqB,GAAG,GAAY,EAAE;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,MAAM,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE;IAC5C,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,KAAK,CAAC;KACd;IACD,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC,CAAC;AASF;;;;GAIG;AACI,MAAM,YAAY,GAAG,KAAK,EAC/B,OAAe,EACf,IAAY,EACZ,OAA4B,EAAE,EACf,EAAE;;IACjB,gGAAgG;IAChG,MAAM,oBAAoB,GAAG,MAAA,IAAI,CAAC,oBAAoB,mCAAI,KAAM,CAAC;IACjE,MAAM,2BAA2B,GAC/B,MAAA,IAAI,CAAC,2BAA2B,mCAAI,MAAO,CAAC;IAC9C,MAAM,yBAAyB,GAAG,MAAA,IAAI,CAAC,yBAAyB,mCAAI,CAAC,CAAC;IACtE,MAAM,yBAAyB,GAAG,MAAA,IAAI,CAAC,yBAAyB,mCAAI,IAAI,CAAC;IAEzE,MAAM,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC/D,IAAA,qBAAU,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,eAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACpC,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,OAAO;QACZ,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,MAAM,CAAC,KAAK;KAC1B,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAA,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,mCAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAE9E,IAAI,WAAW,GAAiC,IAAI,CAAC;IACrD,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,IAAI,qBAAqB,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE;QAChD,WAAW,GAAG,IAAI,sBAAW,CAAC,SAAS,CACrC;YACE,MAAM,EAAE,0DAA0D;YAClE,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;SACrB,EACD,sBAAW,CAAC,OAAO,CAAC,cAAc,CACnC,CAAC;QACF,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE;YAClC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;YAC1B,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC;SAClC,CAAC,CAAC;KACJ;IAED,MAAM,iBAAiB,GAAG,IAAI,kBAAS,CAAC;QACtC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ;YAClC,eAAe,IAAI,KAAK,CAAC,MAAM,CAAC;YAChC,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE;oBAClC,UAAU,EAAE,WAAW,CAAC,eAAe,CAAC;oBACxC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC;iBAClC,CAAC,CAAC;aACJ;YACD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,sBAAiB,EAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,KAAK,GAAG,4BAA4B,2BAA2B,IAAI,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAEhC,IAAI;QACF,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,SAAS,EAAE;YACb,YAAY,CAAC,SAAS,CAAC,CAAC;SACzB;QACD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,EAAE,CAAC;KACrB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,SAAS,EAAE;YACb,YAAY,CAAC,SAAS,CAAC,CAAC;SACzB;QACD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,EAAE,CAAC;QAEpB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtD,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE;YACpB,2GAA2G;YAC3G,sBAAsB;YACtB,MAAM,IAAA,aAAE,EAAC,IAAI,CAAC,CAAC;SAChB;QAED,IAAI,yBAAyB,KAAK,CAAC,EAAE;YACnC,MAAM,GAAG,CAAC;SACX;QAED,sCAAsC;QACtC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5B,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAC/C,CAAC;QACF,MAAM,IAAA,oBAAY,EAAC,OAAO,EAAE,IAAI,EAAE;YAChC,oBAAoB;YACpB,2BAA2B;YAC3B,yBAAyB,EAAE,yBAAyB,GAAG,CAAC;SACzD,CAAC,CAAC;KACJ;AACH,CAAC,CAAC;AAnGW,QAAA,YAAY,gBAmGvB;AAEF;;;;;;;;;;;;;GAaG;AACI,MAAM,sBAAsB,GAKV,KAAK,EAC5B,OAAO,EACP,cAAc,EACd,WAAW,EACX,kBAAkB,GAAG,MAAO,EAC5B,EAAE;IACF,MAAM,IAAA,oBAAY,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI;QACF,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/C,UAAU,CACR,GAAG,EAAE,CACH,MAAM,CACJ,IAAI,KAAK,CAAC,kCAAkC,kBAAkB,IAAI,CAAC,CACpE,EACH,kBAAkB,CACnB,CACF,CAAC;QACF,MAAM,cAAc,GAAG,IAAA,qBAAO,EAAC,cAAc,EAAE;YAC7C,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SACjD,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;KACtD;YAAS;QACR,MAAM,IAAA,aAAE,EAAC,cAAc,CAAC,CAAC;KAC1B;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAlCW,QAAA,sBAAsB,0BAkCjC"}
|
|
@@ -5,7 +5,7 @@ import { MeticulousClient } from "@alwaysmeticulous/client";
|
|
|
5
5
|
* - `everything`: Download all available test run data
|
|
6
6
|
* - `coverageByReplayPrOnly`: Download only coverageByReplayPr
|
|
7
7
|
*/
|
|
8
|
-
export declare const DOWNLOAD_SCOPES: readonly ["everything", "coverage-by-replay-pr-only", "coverage-only"];
|
|
8
|
+
export declare const DOWNLOAD_SCOPES: readonly ["everything", "coverage-by-replay-pr-only", "coverage-only", "coverage-pr-only"];
|
|
9
9
|
export type TestRunDownloadScope = (typeof DOWNLOAD_SCOPES)[number];
|
|
10
10
|
export declare const getOrFetchTestRunData: (client: MeticulousClient, testRunId: string, downloadScope?: TestRunDownloadScope, humanReadable?: boolean) => Promise<{
|
|
11
11
|
fileName: string;
|
|
@@ -16,11 +16,13 @@ exports.DOWNLOAD_SCOPES = [
|
|
|
16
16
|
"everything",
|
|
17
17
|
"coverage-by-replay-pr-only",
|
|
18
18
|
"coverage-only",
|
|
19
|
+
"coverage-pr-only",
|
|
19
20
|
];
|
|
20
21
|
const DOWNLOAD_SCOPE_TO_FILES_TO_DOWNLOAD = {
|
|
21
22
|
everything: /.*/,
|
|
22
23
|
"coverage-by-replay-pr-only": /^coverageByReplayPr/,
|
|
23
24
|
"coverage-only": /^coverage$/,
|
|
25
|
+
"coverage-pr-only": /^coveragePr/
|
|
24
26
|
};
|
|
25
27
|
const shouldDownloadFile = (fileType, downloadScope) => {
|
|
26
28
|
return DOWNLOAD_SCOPE_TO_FILES_TO_DOWNLOAD[downloadScope].test(fileType);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-runs.js","sourceRoot":"","sources":["../../src/file-downloads/test-runs.ts"],"names":[],"mappings":";;;AAAA,0CAAyD;AACzD,+BAA4B;AAE5B,qDAA4E;AAC5E,qDAGkC;AAClC,mDAAyD;AACzD,yDAI4B;AAE5B;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC7B,YAAY;IACZ,4BAA4B;IAC5B,eAAe;
|
|
1
|
+
{"version":3,"file":"test-runs.js","sourceRoot":"","sources":["../../src/file-downloads/test-runs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwaysmeticulous/downloading-helpers",
|
|
3
|
-
"version": "2.248.
|
|
3
|
+
"version": "2.248.9",
|
|
4
4
|
"description": "Helper utilities for downloading files & scripts required to execute replays",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -17,22 +17,25 @@
|
|
|
17
17
|
"lint:commit": "eslint --cache $(git diff --relative --name-only --diff-filter=ACMRTUXB master | grep -E \"(.js$|.ts$|.tsx$)\")",
|
|
18
18
|
"lint:fix": "eslint \"src/**/*.{js,ts,tsx}\" --cache --fix",
|
|
19
19
|
"depcheck": "depcheck --ignore-patterns=dist",
|
|
20
|
-
"test": "
|
|
20
|
+
"test": "vitest run --passWithNoTests"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@alwaysmeticulous/api": "
|
|
24
|
-
"@alwaysmeticulous/client": "
|
|
25
|
-
"@alwaysmeticulous/common": "
|
|
23
|
+
"@alwaysmeticulous/api": "2.248.0",
|
|
24
|
+
"@alwaysmeticulous/client": "2.248.9",
|
|
25
|
+
"@alwaysmeticulous/common": "2.248.9",
|
|
26
26
|
"axios": "^1.7.9",
|
|
27
27
|
"axios-retry": "^4.5.0",
|
|
28
|
+
"cli-progress": "^3.12.0",
|
|
28
29
|
"extract-zip": "^2.0.1",
|
|
29
30
|
"luxon": "^3.2.1",
|
|
30
31
|
"p-limit": "^3.1.0",
|
|
31
32
|
"proper-lockfile": "^4.1.2"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
35
|
+
"@types/cli-progress": "^3.11.6",
|
|
34
36
|
"@types/luxon": "^3.2.0",
|
|
35
|
-
"@types/proper-lockfile": "^4.1.2"
|
|
37
|
+
"@types/proper-lockfile": "^4.1.2",
|
|
38
|
+
"vitest": "catalog:"
|
|
36
39
|
},
|
|
37
40
|
"author": {
|
|
38
41
|
"name": "The Meticulous Team",
|
|
@@ -51,8 +54,5 @@
|
|
|
51
54
|
"bugs": {
|
|
52
55
|
"url": "https://github.com/alwaysmeticulous/meticulous-sdk/issues"
|
|
53
56
|
},
|
|
54
|
-
"
|
|
55
|
-
"preset": "../../jest.config.js"
|
|
56
|
-
},
|
|
57
|
-
"gitHead": "612e658e482a91a33b137914344bccb12ac7d3fc"
|
|
57
|
+
"gitHead": "815b38a556fa693b050dcb3039aa65e98e25ac82"
|
|
58
58
|
}
|