@alwaysmeticulous/downloading-helpers 2.264.6 → 2.266.2
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 +96 -2
- package/dist/file-downloads/__tests__/download-file.spec.js.map +1 -1
- package/dist/file-downloads/download-file.d.ts +1 -1
- package/dist/file-downloads/download-file.js +11 -10
- package/dist/file-downloads/download-file.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4cbc8c6e-f3a4-57e6-88d9-73512f3aadc2")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -8,6 +8,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const promises_1 = require("fs/promises");
|
|
10
10
|
const http_1 = __importDefault(require("http"));
|
|
11
|
+
const os_1 = require("os");
|
|
12
|
+
const path_1 = require("path");
|
|
13
|
+
const zlib_1 = require("zlib");
|
|
14
|
+
const fast_zlib_1 = require("fast-zlib");
|
|
15
|
+
const tar_1 = require("tar");
|
|
11
16
|
const vitest_1 = require("vitest");
|
|
12
17
|
const download_file_1 = require("../download-file");
|
|
13
18
|
(0, vitest_1.describe)("downloadFile", () => {
|
|
@@ -93,5 +98,94 @@ const download_file_1 = require("../download-file");
|
|
|
93
98
|
}
|
|
94
99
|
});
|
|
95
100
|
});
|
|
101
|
+
/**
|
|
102
|
+
* Compresses a directory into a raw-deflated tar blob, matching the format
|
|
103
|
+
* produced by MultipartCompressingUploader in production.
|
|
104
|
+
*/
|
|
105
|
+
const createRawDeflatedTar = async (folderPath) => {
|
|
106
|
+
const deflate = new fast_zlib_1.DeflateRaw({ level: 3 });
|
|
107
|
+
const chunks = [];
|
|
108
|
+
await new Promise((resolve, reject) => {
|
|
109
|
+
const tarStream = (0, tar_1.create)({ cwd: folderPath, follow: true }, ["."]);
|
|
110
|
+
tarStream.on("data", (chunk) => {
|
|
111
|
+
const compressed = deflate.process(chunk);
|
|
112
|
+
if (compressed.length > 0) {
|
|
113
|
+
chunks.push(compressed);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
tarStream.on("end", resolve);
|
|
117
|
+
tarStream.on("error", reject);
|
|
118
|
+
});
|
|
119
|
+
const finalChunk = deflate.process(Buffer.alloc(0), zlib_1.constants.Z_FINISH);
|
|
120
|
+
if (finalChunk.length > 0) {
|
|
121
|
+
chunks.push(finalChunk);
|
|
122
|
+
}
|
|
123
|
+
return Buffer.concat(chunks);
|
|
124
|
+
};
|
|
125
|
+
(0, vitest_1.describe)("downloadAndExtractTar", () => {
|
|
126
|
+
let sourceDir;
|
|
127
|
+
let extractDir;
|
|
128
|
+
let tmpTarPath;
|
|
129
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
130
|
+
const base = (0, path_1.join)((0, os_1.tmpdir)(), `test-tar-extract-${Date.now()}`);
|
|
131
|
+
sourceDir = (0, path_1.join)(base, "source");
|
|
132
|
+
extractDir = (0, path_1.join)(base, "extract");
|
|
133
|
+
tmpTarPath = (0, path_1.join)(base, "tmp.tar.d");
|
|
134
|
+
await (0, promises_1.mkdir)(sourceDir, { recursive: true });
|
|
135
|
+
});
|
|
136
|
+
(0, vitest_1.afterEach)(async () => {
|
|
137
|
+
const base = (0, path_1.join)(sourceDir, "..");
|
|
138
|
+
try {
|
|
139
|
+
await (0, promises_1.rm)(base, { recursive: true, force: true });
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// Ignore cleanup errors
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
(0, vitest_1.it)("round-trips files compressed with fast-zlib DeflateRaw", async () => {
|
|
146
|
+
await (0, promises_1.writeFile)((0, path_1.join)(sourceDir, "hello.txt"), "Hello World");
|
|
147
|
+
await (0, promises_1.writeFile)((0, path_1.join)(sourceDir, "data.json"), '{"key": "value"}');
|
|
148
|
+
await (0, promises_1.mkdir)((0, path_1.join)(sourceDir, "subdir"), { recursive: true });
|
|
149
|
+
await (0, promises_1.writeFile)((0, path_1.join)(sourceDir, "subdir", "nested.txt"), "Nested!");
|
|
150
|
+
const compressed = await createRawDeflatedTar(sourceDir);
|
|
151
|
+
const server = http_1.default.createServer((_req, res) => {
|
|
152
|
+
res.writeHead(200, { "Content-Length": compressed.length.toString() });
|
|
153
|
+
res.end(compressed);
|
|
154
|
+
});
|
|
155
|
+
try {
|
|
156
|
+
await new Promise((resolve) => server.listen(1235, resolve));
|
|
157
|
+
const entries = await (0, download_file_1.downloadAndExtractTar)("http://localhost:1235", tmpTarPath, extractDir);
|
|
158
|
+
(0, vitest_1.expect)(entries.length).toBeGreaterThan(0);
|
|
159
|
+
const hello = await (0, promises_1.readFile)((0, path_1.join)(extractDir, "hello.txt"), "utf8");
|
|
160
|
+
(0, vitest_1.expect)(hello).toBe("Hello World");
|
|
161
|
+
const data = await (0, promises_1.readFile)((0, path_1.join)(extractDir, "data.json"), "utf8");
|
|
162
|
+
(0, vitest_1.expect)(data).toBe('{"key": "value"}');
|
|
163
|
+
const nested = await (0, promises_1.readFile)((0, path_1.join)(extractDir, "subdir", "nested.txt"), "utf8");
|
|
164
|
+
(0, vitest_1.expect)(nested).toBe("Nested!");
|
|
165
|
+
(0, vitest_1.expect)((0, fs_1.existsSync)(tmpTarPath)).toBe(false);
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
server.close();
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
(0, vitest_1.it)("round-trips a large file that would stress chunked decompression", async () => {
|
|
172
|
+
const largeContent = "A".repeat(5 * 1024 * 1024);
|
|
173
|
+
await (0, promises_1.writeFile)((0, path_1.join)(sourceDir, "large.txt"), largeContent);
|
|
174
|
+
const compressed = await createRawDeflatedTar(sourceDir);
|
|
175
|
+
const server = http_1.default.createServer((_req, res) => {
|
|
176
|
+
res.writeHead(200, { "Content-Length": compressed.length.toString() });
|
|
177
|
+
res.end(compressed);
|
|
178
|
+
});
|
|
179
|
+
try {
|
|
180
|
+
await new Promise((resolve) => server.listen(1236, resolve));
|
|
181
|
+
await (0, download_file_1.downloadAndExtractTar)("http://localhost:1236", tmpTarPath, extractDir);
|
|
182
|
+
const result = await (0, promises_1.readFile)((0, path_1.join)(extractDir, "large.txt"), "utf8");
|
|
183
|
+
(0, vitest_1.expect)(result).toBe(largeContent);
|
|
184
|
+
}
|
|
185
|
+
finally {
|
|
186
|
+
server.close();
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
});
|
|
96
190
|
//# sourceMappingURL=download-file.spec.js.map
|
|
97
|
-
//# debugId=
|
|
191
|
+
//# debugId=4cbc8c6e-f3a4-57e6-88d9-73512f3aadc2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-file.spec.js","sources":["../../../src/file-downloads/__tests__/download-file.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;;;;AAAA,2BAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"download-file.spec.js","sources":["../../../src/file-downloads/__tests__/download-file.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"4cbc8c6e-f3a4-57e6-88d9-73512f3aadc2"}
|
|
@@ -26,7 +26,7 @@ export declare const downloadFile: (fileUrl: string, path: string, opts?: Downlo
|
|
|
26
26
|
*/
|
|
27
27
|
export declare const downloadAndExtractFile: (fileUrl: string, tmpZipFilePath: string, extractPath: string, extractTimeoutInMs?: number) => Promise<string[]>;
|
|
28
28
|
/**
|
|
29
|
-
* Download a raw deflated tar blob from a URL, inflate it
|
|
29
|
+
* Download a raw deflated tar blob from a URL, inflate it,
|
|
30
30
|
* and extract the tar contents to a directory.
|
|
31
31
|
* The downloaded file will be deleted after extraction, keeping only the extracted files.
|
|
32
32
|
* __Warning__: this function is not thread safe.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="662bb506-1f1b-58cd-a5de-bc5de247c569")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -11,11 +11,11 @@ const promises_1 = require("fs/promises");
|
|
|
11
11
|
const stream_1 = require("stream");
|
|
12
12
|
const promises_2 = require("stream/promises");
|
|
13
13
|
const util_1 = require("util");
|
|
14
|
+
const zlib_1 = require("zlib");
|
|
14
15
|
const axios_1 = __importDefault(require("axios"));
|
|
15
16
|
const axios_retry_1 = __importDefault(require("axios-retry"));
|
|
16
17
|
const cli_progress_1 = __importDefault(require("cli-progress"));
|
|
17
18
|
const extract_zip_1 = __importDefault(require("extract-zip"));
|
|
18
|
-
const fast_zlib_1 = require("fast-zlib");
|
|
19
19
|
const tar_1 = require("tar");
|
|
20
20
|
const promisifiedFinished = (0, util_1.promisify)(stream_1.finished);
|
|
21
21
|
const shouldShowProgressBar = () => {
|
|
@@ -158,7 +158,7 @@ const downloadAndExtractFile = async (fileUrl, tmpZipFilePath, extractPath, extr
|
|
|
158
158
|
};
|
|
159
159
|
exports.downloadAndExtractFile = downloadAndExtractFile;
|
|
160
160
|
/**
|
|
161
|
-
* Download a raw deflated tar blob from a URL, inflate it
|
|
161
|
+
* Download a raw deflated tar blob from a URL, inflate it,
|
|
162
162
|
* and extract the tar contents to a directory.
|
|
163
163
|
* The downloaded file will be deleted after extraction, keeping only the extracted files.
|
|
164
164
|
* __Warning__: this function is not thread safe.
|
|
@@ -180,18 +180,19 @@ const downloadAndExtractTar = async (fileUrl, tmpTarFilePath, extractPath, extra
|
|
|
180
180
|
const timeoutPromise = new Promise((_, reject) => {
|
|
181
181
|
timeoutId = setTimeout(() => reject(new Error(`Tar extraction timed out after ${extractTimeoutInMs}ms`)), extractTimeoutInMs);
|
|
182
182
|
});
|
|
183
|
+
const abortController = new AbortController();
|
|
183
184
|
try {
|
|
184
185
|
await (0, promises_1.mkdir)(extractPath, { recursive: true });
|
|
185
|
-
const
|
|
186
|
-
const inflateRaw = new fast_zlib_1.InflateRaw();
|
|
187
|
-
const decompressed = inflateRaw.process(compressed);
|
|
188
|
-
inflateRaw.close();
|
|
189
|
-
const extractPromise = (0, promises_2.pipeline)(stream_1.Readable.from(decompressed), (0, tar_1.extract)({
|
|
186
|
+
const extractPromise = (0, promises_2.pipeline)((0, fs_1.createReadStream)(tmpTarFilePath), (0, zlib_1.createInflateRaw)(), (0, tar_1.extract)({
|
|
190
187
|
cwd: extractPath,
|
|
191
188
|
onReadEntry: (entry) => entries.push(entry.path),
|
|
192
|
-
}));
|
|
189
|
+
}), { signal: abortController.signal });
|
|
193
190
|
await Promise.race([extractPromise, timeoutPromise]);
|
|
194
191
|
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
abortController.abort();
|
|
194
|
+
throw error;
|
|
195
|
+
}
|
|
195
196
|
finally {
|
|
196
197
|
clearTimeout(timeoutId);
|
|
197
198
|
}
|
|
@@ -203,4 +204,4 @@ const downloadAndExtractTar = async (fileUrl, tmpTarFilePath, extractPath, extra
|
|
|
203
204
|
};
|
|
204
205
|
exports.downloadAndExtractTar = downloadAndExtractTar;
|
|
205
206
|
//# sourceMappingURL=download-file.js.map
|
|
206
|
-
//# debugId=
|
|
207
|
+
//# debugId=662bb506-1f1b-58cd-a5de-bc5de247c569
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-file.js","sources":["../../src/file-downloads/download-file.ts"],"sourceRoot":"","names":[],"mappings":";;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"download-file.js","sources":["../../src/file-downloads/download-file.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"662bb506-1f1b-58cd-a5de-bc5de247c569"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwaysmeticulous/downloading-helpers",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.266.2",
|
|
4
4
|
"description": "Helper utilities for downloading files & scripts required to execute replays",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@alwaysmeticulous/api": "2.264.0",
|
|
24
|
-
"@alwaysmeticulous/client": "2.
|
|
25
|
-
"@alwaysmeticulous/common": "2.
|
|
24
|
+
"@alwaysmeticulous/client": "2.266.2",
|
|
25
|
+
"@alwaysmeticulous/common": "2.266.2",
|
|
26
26
|
"axios": "^1.7.9",
|
|
27
27
|
"axios-retry": "^4.5.0",
|
|
28
28
|
"cli-progress": "^3.12.0",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"bugs": {
|
|
57
57
|
"url": "https://github.com/alwaysmeticulous/meticulous-sdk/issues"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "e53ba8db26dfb37ef55377f9d6e571b2689d4c53"
|
|
60
60
|
}
|