@cubejs-backend/shared 1.7.40 → 1.7.42
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/src/http-utils.d.ts
CHANGED
|
@@ -12,14 +12,10 @@ export declare function streamWithProgress(response: Response, progressCallback:
|
|
|
12
12
|
* dispatch on: `streamWithProgress` saves downloads as
|
|
13
13
|
* `crypto.randomBytes(16).toString('hex')`, with no extension.
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* and pre-POSIX v7 tars, which carry no `ustar` magic at offset 257 to detect them
|
|
18
|
-
* by.
|
|
15
|
+
* Two gaps are deliberate, and both throw a named error rather than failing
|
|
16
|
+
* obscurely: bzip2, and pre-POSIX v7 tars, which carry no magic to detect them by.
|
|
19
17
|
*
|
|
20
|
-
* Neither backend writes outside `cwd
|
|
21
|
-
* drops entries containing `..`, and `extract-zip` rejects entries that resolve outside
|
|
22
|
-
* the target.
|
|
18
|
+
* Neither backend writes outside `cwd`.
|
|
23
19
|
*/
|
|
24
20
|
export declare function extractArchive(archivePath: string, cwd: string): Promise<void>;
|
|
25
21
|
type DownloadAndExtractFile = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../../src/http-utils.ts"],"names":[],"mappings":"AAEA,OAAc,EAAoB,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../../src/http-utils.ts"],"names":[],"mappings":"AAEA,OAAc,EAAoB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgB/D,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE7F,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,oBAAoB,GACrC,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAqGD;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CpF;AAED,KAAK,sBAAsB,GAAG;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,sBAAsB,iBAmDlH;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpE"}
|
package/dist/src/http-utils.js
CHANGED
|
@@ -41,7 +41,7 @@ exports.extractArchive = extractArchive;
|
|
|
41
41
|
exports.downloadAndExtractFile = downloadAndExtractFile;
|
|
42
42
|
exports.downloadAndGunzip = downloadAndGunzip;
|
|
43
43
|
const tar = __importStar(require("tar"));
|
|
44
|
-
const
|
|
44
|
+
const node_stream_zip_1 = __importDefault(require("node-stream-zip"));
|
|
45
45
|
const node_fetch_1 = __importStar(require("node-fetch"));
|
|
46
46
|
const bytes_1 = __importDefault(require("bytes"));
|
|
47
47
|
const throttle_debounce_1 = require("throttle-debounce");
|
|
@@ -54,6 +54,7 @@ const path = __importStar(require("path"));
|
|
|
54
54
|
const zlib_1 = require("zlib");
|
|
55
55
|
const errors_1 = require("./errors");
|
|
56
56
|
const proxy_1 = require("./proxy");
|
|
57
|
+
const StreamZipAsync = node_stream_zip_1.default.async;
|
|
57
58
|
async function streamWithProgress(response, progressCallback) {
|
|
58
59
|
const total = parseInt(response.headers.get('Content-Length') || '0', 10);
|
|
59
60
|
const startedAt = Date.now();
|
|
@@ -86,31 +87,20 @@ async function streamWithProgress(response, progressCallback) {
|
|
|
86
87
|
});
|
|
87
88
|
}
|
|
88
89
|
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* inside the Cube image; extracted files would then take whatever uid/gid the
|
|
93
|
-
* tarball recorded. Writing as the current user matches how this path has always
|
|
94
|
-
* behaved.
|
|
90
|
+
* `preserveOwner` defaults to true when running as root, the normal case inside the
|
|
91
|
+
* Cube image, and extracted files would then take whatever uid/gid the tarball
|
|
92
|
+
* recorded.
|
|
95
93
|
*
|
|
96
94
|
* `onwarn` is load-bearing: tar *drops* unsafe entries with a warning rather than
|
|
97
|
-
* failing, so an archive
|
|
98
|
-
* resolve successfully, leaving the caller
|
|
99
|
-
* missing-file error.
|
|
100
|
-
*
|
|
101
|
-
* Only `TAR_ENTRY_ERROR` goes through `internalExceptions`, deliberately: that
|
|
102
|
-
* helper calls `process.exit(1)` under `CUBEJS_INTERNAL_EXCEPTIONS=exit`, and tar
|
|
103
|
-
* also warns about benign conditions (unsupported entry types such as fifos and
|
|
104
|
-
* devices, `TAR_ENTRY_INVALID`, failed utime/chown). Routing those through it
|
|
105
|
-
* would let one odd entry in a third-party tarball take the process down
|
|
106
|
-
* mid-download, where previously it extracted and carried on.
|
|
95
|
+
* failing, so an archive of nothing but `../evil` would extract to nothing and
|
|
96
|
+
* resolve successfully, leaving the caller on a confusing missing-file error later.
|
|
107
97
|
*
|
|
108
|
-
* `TAR_ENTRY_ERROR` is
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
98
|
+
* Only `TAR_ENTRY_ERROR` is escalated, because `internalExceptions` calls
|
|
99
|
+
* `process.exit(1)` under `CUBEJS_INTERNAL_EXCEPTIONS=exit` and tar also warns about
|
|
100
|
+
* benign conditions (fifos and devices, `TAR_ENTRY_INVALID`, failed utime/chown) —
|
|
101
|
+
* one odd entry in a third-party tarball should not take the process down. tar
|
|
102
|
+
* reports per-entry write failures through `TAR_ENTRY_ERROR` too, not just path
|
|
103
|
+
* rejections, and both mean a half-extracted install.
|
|
114
104
|
*/
|
|
115
105
|
const tarOptions = {
|
|
116
106
|
preserveOwner: false,
|
|
@@ -123,6 +113,63 @@ const tarOptions = {
|
|
|
123
113
|
console.warn(warning);
|
|
124
114
|
},
|
|
125
115
|
};
|
|
116
|
+
/** A zip records the unix mode in the high half of the external attributes. */
|
|
117
|
+
function zipEntryMode(entry) {
|
|
118
|
+
// eslint-disable-next-line no-bitwise
|
|
119
|
+
return entry.attr >>> 16;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The same mode, but only when the "version made by" host byte is 3; with the DOS
|
|
123
|
+
* default of 0 those bits are DOS attribute flags, and applying them as a mode would
|
|
124
|
+
* invent permissions.
|
|
125
|
+
*/
|
|
126
|
+
function zipEntryUnixMode(entry) {
|
|
127
|
+
// eslint-disable-next-line no-bitwise
|
|
128
|
+
if ((entry.verMade >> 8) !== 3) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
return zipEntryMode(entry) || undefined;
|
|
132
|
+
}
|
|
133
|
+
const S_IFMT = 0o170000;
|
|
134
|
+
const S_IFLNK = 0o120000;
|
|
135
|
+
const S_IXUGO = 0o111;
|
|
136
|
+
async function extractZipArchive(archivePath, dir) {
|
|
137
|
+
// `skipEntryNameValidation` is the default, and passed explicitly because it is what
|
|
138
|
+
// rejects `..`, a leading `/`, a drive letter or a backslash while the central
|
|
139
|
+
// directory is read — before a byte is written. Flip it and Zip Slip is back.
|
|
140
|
+
const zip = new StreamZipAsync({ file: archivePath, skipEntryNameValidation: false });
|
|
141
|
+
try {
|
|
142
|
+
const entries = Object.values(await zip.entries())
|
|
143
|
+
.map((entry) => ({ entry, mode: zipEntryUnixMode(entry) }));
|
|
144
|
+
// Policy, not containment: `node-stream-zip` never creates symlinks, so the entry
|
|
145
|
+
// would land as a file holding the target path — a silently broken install, worth
|
|
146
|
+
// failing loudly over. Ungated by the host byte, which a producer may report as DOS.
|
|
147
|
+
for (const { entry } of entries) {
|
|
148
|
+
// eslint-disable-next-line no-bitwise
|
|
149
|
+
if ((zipEntryMode(entry) & S_IFMT) === S_IFLNK) {
|
|
150
|
+
throw new Error(`Refusing to extract "${entry.name}": symlink entries in zip archives are not allowed.`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
await zip.extract(null, dir);
|
|
154
|
+
// `node-stream-zip` applies no entry modes, so a zipped binary arrives unrunnable.
|
|
155
|
+
// Only the exec bit is restored, because honouring the whole mode would let an
|
|
156
|
+
// archive widen its own permissions.
|
|
157
|
+
for (const { entry, mode } of entries) {
|
|
158
|
+
// eslint-disable-next-line no-bitwise
|
|
159
|
+
if (entry.isFile && mode !== undefined && (mode & S_IXUGO)) {
|
|
160
|
+
const target = path.join(dir, entry.name);
|
|
161
|
+
const { mode: current } = await fs_1.default.promises.stat(target);
|
|
162
|
+
// eslint-disable-next-line no-bitwise
|
|
163
|
+
await fs_1.default.promises.chmod(target, current | (mode & S_IXUGO));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
// Swallowed: a rejection here would replace whatever the `try` threw, and the
|
|
169
|
+
// symlink refusal is the one error whose text a caller needs.
|
|
170
|
+
await zip.close().catch(() => undefined);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
126
173
|
/**
|
|
127
174
|
* Extract a downloaded archive into `cwd`, which is created if missing.
|
|
128
175
|
*
|
|
@@ -130,19 +177,15 @@ const tarOptions = {
|
|
|
130
177
|
* dispatch on: `streamWithProgress` saves downloads as
|
|
131
178
|
* `crypto.randomBytes(16).toString('hex')`, with no extension.
|
|
132
179
|
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* and pre-POSIX v7 tars, which carry no `ustar` magic at offset 257 to detect them
|
|
136
|
-
* by.
|
|
180
|
+
* Two gaps are deliberate, and both throw a named error rather than failing
|
|
181
|
+
* obscurely: bzip2, and pre-POSIX v7 tars, which carry no magic to detect them by.
|
|
137
182
|
*
|
|
138
|
-
* Neither backend writes outside `cwd
|
|
139
|
-
* drops entries containing `..`, and `extract-zip` rejects entries that resolve outside
|
|
140
|
-
* the target.
|
|
183
|
+
* Neither backend writes outside `cwd`.
|
|
141
184
|
*/
|
|
142
185
|
async function extractArchive(archivePath, cwd) {
|
|
143
|
-
//
|
|
144
|
-
//
|
|
145
|
-
//
|
|
186
|
+
// Neither backend creates its target — `tar.x` throws `CwdError`, the zip backend
|
|
187
|
+
// opens files in a directory it expects to exist — so without this the contract
|
|
188
|
+
// would depend on the archive's format, which callers cannot know in advance.
|
|
146
189
|
(0, fs_extra_1.mkdirpSync)(cwd);
|
|
147
190
|
// 262 bytes: enough for the `ustar` magic a plain tar carries at offset 257.
|
|
148
191
|
const header = Buffer.alloc(262);
|
|
@@ -155,18 +198,17 @@ async function extractArchive(archivePath, cwd) {
|
|
|
155
198
|
await fd.close();
|
|
156
199
|
}
|
|
157
200
|
const startsWith = (...magic) => bytesRead >= magic.length && magic.every((byte, i) => header[i] === byte);
|
|
158
|
-
// gzip
|
|
201
|
+
// gzip covers .tar.gz/.tgz; `tar.x` gunzips transparently.
|
|
159
202
|
if (startsWith(0x1f, 0x8b)) {
|
|
160
203
|
await tar.x({ file: archivePath, cwd, ...tarOptions });
|
|
161
204
|
return;
|
|
162
205
|
}
|
|
163
|
-
//
|
|
206
|
+
// "PK" only: the rest of the signature differs between a local file header and the
|
|
164
207
|
// end-of-central-directory record that an empty archive consists of.
|
|
165
208
|
if (startsWith(0x50, 0x4b)) {
|
|
166
|
-
await (
|
|
209
|
+
await extractZipArchive(archivePath, path.resolve(cwd));
|
|
167
210
|
return;
|
|
168
211
|
}
|
|
169
|
-
// Uncompressed tar: "ustar" at offset 257.
|
|
170
212
|
if (bytesRead >= 262 && header.subarray(257, 262).toString('latin1') === 'ustar') {
|
|
171
213
|
await tar.x({ file: archivePath, cwd, ...tarOptions });
|
|
172
214
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../../src/http-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../../src/http-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cubejs-backend/shared",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.42",
|
|
4
4
|
"description": "Shared code for Cube backend packages",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"typings": "dist/src/index.d.ts",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"license": "Apache-2.0",
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@cubejs-backend/linter": "1.7.
|
|
28
|
+
"@cubejs-backend/linter": "1.7.42",
|
|
29
29
|
"@types/bytes": "^3.1.5",
|
|
30
30
|
"@types/cli-progress": "^3.9.1",
|
|
31
31
|
"@types/jest": "^29",
|
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"cli-progress": "^3.10.0",
|
|
44
44
|
"cross-spawn": "^7.0.3",
|
|
45
45
|
"env-var": "^6.3.0",
|
|
46
|
-
"extract-zip": "^2.0.1",
|
|
47
46
|
"fs-extra": "^11.1.1",
|
|
48
47
|
"generic-pool": "^3.9.0",
|
|
49
48
|
"lru-cache": "^11.1.0",
|
|
50
49
|
"moment-range": "^4.0.2",
|
|
51
50
|
"moment-timezone": "^0.5.48",
|
|
52
51
|
"node-fetch": "^2.7.0",
|
|
52
|
+
"node-stream-zip": "^1.16.0",
|
|
53
53
|
"proxy-agent": "^6.5.0",
|
|
54
54
|
"shelljs": "^0.8.5",
|
|
55
55
|
"tar": "^7.5.22",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"resolutions": {
|
|
63
63
|
"colors": "1.4.0"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "919434f42b50183179e97d1eed85696bafb05ae2"
|
|
66
66
|
}
|