@ttsc/playground 0.20.1 → 0.22.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/README.md +8 -0
- package/lib/src/npm/installPlaygroundDependencies.js +31 -11
- package/lib/src/npm/installPlaygroundDependencies.js.map +1 -1
- package/lib/src/npm/internal/npmRegistry.d.ts +15 -2
- package/lib/src/npm/internal/npmRegistry.js +332 -27
- package/lib/src/npm/internal/npmRegistry.js.map +1 -1
- package/lib/src/sandbox/createSandboxRequire.js +254 -105
- package/lib/src/sandbox/createSandboxRequire.js.map +1 -1
- package/lib/src/structures/IPlaygroundDependencyInstallOptions.d.ts +13 -0
- package/package.json +3 -3
- package/src/npm/installPlaygroundDependencies.ts +42 -16
- package/src/npm/internal/npmRegistry.ts +431 -31
- package/src/sandbox/createSandboxRequire.ts +313 -136
- package/src/structures/IPlaygroundDependencyInstallOptions.ts +13 -0
package/README.md
CHANGED
|
@@ -137,6 +137,8 @@ import {
|
|
|
137
137
|
|
|
138
138
|
const names = collectExternalPackageNames(userSource);
|
|
139
139
|
const installed = await installPlaygroundDependencies(names, {
|
|
140
|
+
maxTarballBytes: 16 * 1024 * 1024,
|
|
141
|
+
maxUnpackedBytes: 64 * 1024 * 1024,
|
|
140
142
|
onProgress: (p) => console.log(p.phase, p.packageName),
|
|
141
143
|
});
|
|
142
144
|
// mount installed.compilerFiles into the wasm MemFS via service.installDependencies
|
|
@@ -148,6 +150,12 @@ When a direct source import is removed, solve the complete current root list wit
|
|
|
148
150
|
|
|
149
151
|
`PlaygroundShell` wires this automatically on every keystroke, debounced 900 ms, with an abort signal on source change.
|
|
150
152
|
|
|
153
|
+
The installer verifies the strongest supported `dist.integrity` digest before decompression, or `dist.shasum` when integrity is absent. Historical and private registry metadata with neither field remains compatible but unauthenticated. Each tarball is streamed through independent compressed and expanded byte limits (16 MiB and 64 MiB by default), and every file must remain below one safe, consistent archive root (`package/` normally; DefinitelyTyped uses roots such as `node/`). Override the limits with `maxTarballBytes` and `maxUnpackedBytes` when a known package requires more.
|
|
154
|
+
|
|
155
|
+
Integrity proves that archive bytes match registry metadata; it does not establish that package code is safe. `createSandboxRequire` is a CommonJS resolver and evaluator, not an origin, process, or capability sandbox. The byte limits protect installation availability, not runtime behavior such as loops, timers, network access, or globals exposed by the host. Sites accepting untrusted code or packages must provide an isolated `executeBundle` policy appropriate to their environment.
|
|
156
|
+
|
|
157
|
+
The Execute lane's CommonJS resolver treats `package.json#exports` as the package boundary. It selects `require` and `default` conditions in manifest order, preserves Node's distinction between target selection and file loading, validates relative targets after wildcard substitution, and rejects mixed or numeric condition maps. A package mounted through an npm alias may still self-reference its real manifest `name` when it declares exports; packages without exports keep legacy direct-path resolution and do not gain self-reference behavior.
|
|
158
|
+
|
|
151
159
|
## Tailwind setup
|
|
152
160
|
|
|
153
161
|
The bundled React components use Tailwind 4 utility classes. The host site must load Tailwind for them to render correctly.
|
|
@@ -4,6 +4,8 @@ exports.installPlaygroundDependencies = installPlaygroundDependencies;
|
|
|
4
4
|
const BUILT_IN_PLAYGROUND_PACKAGES_1 = require("./BUILT_IN_PLAYGROUND_PACKAGES");
|
|
5
5
|
const npmRegistry_1 = require("./internal/npmRegistry");
|
|
6
6
|
const DEFAULT_MAX_PACKAGES = 48;
|
|
7
|
+
const DEFAULT_MAX_TARBALL_BYTES = 16 * 1024 * 1024;
|
|
8
|
+
const DEFAULT_MAX_UNPACKED_BYTES = 64 * 1024 * 1024;
|
|
7
9
|
/**
|
|
8
10
|
* Resolve, download, and unpack a set of npm packages directly inside the
|
|
9
11
|
* browser, returning their files keyed for the wasm-side MemFS, Monaco's
|
|
@@ -42,6 +44,10 @@ async function installPlaygroundDependencies(packageNames, options = {}) {
|
|
|
42
44
|
});
|
|
43
45
|
}
|
|
44
46
|
const maxPackages = options.maxPackages ?? DEFAULT_MAX_PACKAGES;
|
|
47
|
+
const maxTarballBytes = options.maxTarballBytes ?? DEFAULT_MAX_TARBALL_BYTES;
|
|
48
|
+
const maxUnpackedBytes = options.maxUnpackedBytes ?? DEFAULT_MAX_UNPACKED_BYTES;
|
|
49
|
+
(0, npmRegistry_1.validateNpmByteLimit)(maxTarballBytes, "compressed");
|
|
50
|
+
(0, npmRegistry_1.validateNpmByteLimit)(maxUnpackedBytes, "expanded");
|
|
45
51
|
const queue = [];
|
|
46
52
|
const queued = new Map();
|
|
47
53
|
const done = new Map();
|
|
@@ -145,7 +151,14 @@ async function installPlaygroundDependencies(packageNames, options = {}) {
|
|
|
145
151
|
continue;
|
|
146
152
|
(0, npmRegistry_1.throwIfAborted)(options.signal);
|
|
147
153
|
report("resolve", item, `Resolving ${item.name}`);
|
|
148
|
-
|
|
154
|
+
let metadata;
|
|
155
|
+
try {
|
|
156
|
+
metadata = await (0, npmRegistry_1.fetchNpmMetadata)(fetchImpl, item.registryName ?? item.name, item.optional, options.signal);
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
(0, npmRegistry_1.throwIfAborted)(options.signal);
|
|
160
|
+
throw error;
|
|
161
|
+
}
|
|
149
162
|
(0, npmRegistry_1.throwIfAborted)(options.signal);
|
|
150
163
|
if (!metadata) {
|
|
151
164
|
const mounted = installedDependencies.get(item.name);
|
|
@@ -187,18 +200,25 @@ async function installPlaygroundDependencies(packageNames, options = {}) {
|
|
|
187
200
|
const versionMetadata = metadata.versions[version];
|
|
188
201
|
const tarball = versionMetadata?.dist?.tarball;
|
|
189
202
|
if (!versionMetadata || !tarball) {
|
|
190
|
-
if (item.optional) {
|
|
191
|
-
done.set(item.name, "");
|
|
192
|
-
report("skip", item, `Skipped optional ${item.name}`);
|
|
193
|
-
continue;
|
|
194
|
-
}
|
|
195
203
|
throw new Error(`No tarball found for ${item.name}@${version}.`);
|
|
196
204
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
205
|
+
let unpacked;
|
|
206
|
+
try {
|
|
207
|
+
report("download", item, `Downloading ${item.name}@${version}`, version);
|
|
208
|
+
const tgz = await (0, npmRegistry_1.downloadTarball)(fetchImpl, tarball, options.signal, maxTarballBytes);
|
|
209
|
+
(0, npmRegistry_1.throwIfAborted)(options.signal);
|
|
210
|
+
await (0, npmRegistry_1.verifyTarball)(tgz, versionMetadata.dist ?? {}, options.signal);
|
|
211
|
+
(0, npmRegistry_1.throwIfAborted)(options.signal);
|
|
212
|
+
report("extract", item, `Extracting ${item.name}@${version}`, version);
|
|
213
|
+
unpacked = await (0, npmRegistry_1.unpackNpmTarball)(tgz, options.signal, maxUnpackedBytes);
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
(0, npmRegistry_1.throwIfAborted)(options.signal);
|
|
217
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
218
|
+
throw new Error(`Failed to install ${item.name}@${version}: ${message}`, {
|
|
219
|
+
cause: error,
|
|
220
|
+
});
|
|
221
|
+
}
|
|
202
222
|
(0, npmRegistry_1.throwIfAborted)(options.signal);
|
|
203
223
|
const packageJson = {
|
|
204
224
|
...versionMetadata,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installPlaygroundDependencies.js","sourceRoot":"","sources":["../../../src/npm/installPlaygroundDependencies.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"installPlaygroundDependencies.js","sourceRoot":"","sources":["../../../src/npm/installPlaygroundDependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ export interface INpmVersionMetadata {
|
|
|
18
18
|
optional?: boolean;
|
|
19
19
|
}>;
|
|
20
20
|
dist?: {
|
|
21
|
+
integrity?: string;
|
|
22
|
+
shasum?: string;
|
|
21
23
|
tarball?: string;
|
|
22
24
|
};
|
|
23
25
|
}
|
|
@@ -44,12 +46,21 @@ export interface IVersionRequest {
|
|
|
44
46
|
requester: string;
|
|
45
47
|
}
|
|
46
48
|
export type FetchLike = (input: string, init?: RequestInit) => Promise<Response>;
|
|
49
|
+
declare const VALIDATED_NPM_BYTE_LIMIT: unique symbol;
|
|
50
|
+
type ValidatedNpmByteLimit = number & {
|
|
51
|
+
readonly [VALIDATED_NPM_BYTE_LIMIT]: true;
|
|
52
|
+
};
|
|
47
53
|
export declare const DECLARATION_FILE_REGEXP: RegExp;
|
|
48
54
|
export declare function throwIfAborted(signal: AbortSignal | undefined): void;
|
|
49
55
|
export declare function fetchNpmMetadata(fetchImpl: FetchLike, packageName: string, optional: boolean, signal: AbortSignal | undefined): Promise<INpmMetadata | null>;
|
|
50
56
|
export declare function selectVersion(metadata: INpmMetadata, ranges: readonly string[] | string): string;
|
|
51
|
-
export declare function downloadTarball(fetchImpl: FetchLike, tarball: string, signal: AbortSignal | undefined): Promise<ArrayBuffer>;
|
|
52
|
-
|
|
57
|
+
export declare function downloadTarball(fetchImpl: FetchLike, tarball: string, signal: AbortSignal | undefined, maxBytes?: number): Promise<ArrayBuffer>;
|
|
58
|
+
/** Verify registry authentication metadata against the compressed bytes. */
|
|
59
|
+
export declare function verifyTarball(tgz: ArrayBuffer, dist: {
|
|
60
|
+
integrity?: string;
|
|
61
|
+
shasum?: string;
|
|
62
|
+
}, signal: AbortSignal | undefined): Promise<void>;
|
|
63
|
+
export declare function unpackNpmTarball(tgz: ArrayBuffer, signal: AbortSignal | undefined, maxBytes?: number): Promise<IUnpackedPackage>;
|
|
53
64
|
export interface IMountedFiles {
|
|
54
65
|
compilerFiles: Record<string, string>;
|
|
55
66
|
editorLibs: Record<string, string>;
|
|
@@ -65,4 +76,6 @@ export declare function enqueuePackageDependencies(packageJson: {
|
|
|
65
76
|
}>;
|
|
66
77
|
}, enqueue: (item: IQueueItem) => void, requester: string): void;
|
|
67
78
|
export declare function toTypesPackageName(packageName: string): string;
|
|
79
|
+
/** Validate one public npm archive byte budget before starting related work. */
|
|
80
|
+
export declare function validateNpmByteLimit(maxBytes: number, kind: "compressed" | "expanded"): ValidatedNpmByteLimit;
|
|
68
81
|
export {};
|
|
@@ -5,10 +5,12 @@ exports.throwIfAborted = throwIfAborted;
|
|
|
5
5
|
exports.fetchNpmMetadata = fetchNpmMetadata;
|
|
6
6
|
exports.selectVersion = selectVersion;
|
|
7
7
|
exports.downloadTarball = downloadTarball;
|
|
8
|
+
exports.verifyTarball = verifyTarball;
|
|
8
9
|
exports.unpackNpmTarball = unpackNpmTarball;
|
|
9
10
|
exports.mountPackageFiles = mountPackageFiles;
|
|
10
11
|
exports.enqueuePackageDependencies = enqueuePackageDependencies;
|
|
11
12
|
exports.toTypesPackageName = toTypesPackageName;
|
|
13
|
+
exports.validateNpmByteLimit = validateNpmByteLimit;
|
|
12
14
|
const semver_1 = require("semver");
|
|
13
15
|
const TEXT_FILE_REGEXP = /(^package\.json$|\.([cm]?js|jsx|[cm]?ts|tsx|json)$|\.d\.[cm]?ts$)/i;
|
|
14
16
|
exports.DECLARATION_FILE_REGEXP = /\.d\.[cm]?ts$/i;
|
|
@@ -21,18 +23,26 @@ function throwIfAborted(signal) {
|
|
|
21
23
|
throw new DOMException("The operation was aborted.", "AbortError");
|
|
22
24
|
}
|
|
23
25
|
async function fetchNpmMetadata(fetchImpl, packageName, optional, signal) {
|
|
24
|
-
|
|
26
|
+
throwIfAborted(signal);
|
|
27
|
+
const response = await fetchWithAbort(() => fetchImpl(`https://registry.npmjs.org/${encodeURIComponent(packageName)}`, {
|
|
25
28
|
headers: {
|
|
26
29
|
Accept: "application/vnd.npm.install-v1+json, application/json",
|
|
27
30
|
},
|
|
28
31
|
signal,
|
|
29
|
-
});
|
|
30
|
-
|
|
32
|
+
}), signal);
|
|
33
|
+
throwIfResponseAborted(response, signal);
|
|
34
|
+
if (response.status === 404 && optional) {
|
|
35
|
+
cancelResponseBody(response);
|
|
31
36
|
return null;
|
|
37
|
+
}
|
|
32
38
|
if (!response.ok) {
|
|
39
|
+
cancelResponseBody(response);
|
|
33
40
|
throw new Error(`npm registry returned ${response.status} while resolving ${packageName}.`);
|
|
34
41
|
}
|
|
35
|
-
|
|
42
|
+
throwIfAborted(signal);
|
|
43
|
+
const metadata = (await abortable(() => response.json(), signal));
|
|
44
|
+
throwIfAborted(signal);
|
|
45
|
+
return metadata;
|
|
36
46
|
}
|
|
37
47
|
function selectVersion(metadata, ranges) {
|
|
38
48
|
const versions = metadata.versions;
|
|
@@ -60,16 +70,54 @@ function selectVersion(metadata, ranges) {
|
|
|
60
70
|
.map((range) => JSON.stringify(range))
|
|
61
71
|
.join(", ")}.`);
|
|
62
72
|
}
|
|
63
|
-
async function downloadTarball(fetchImpl, tarball, signal) {
|
|
64
|
-
|
|
73
|
+
async function downloadTarball(fetchImpl, tarball, signal, maxBytes = 16 * 1024 * 1024) {
|
|
74
|
+
throwIfAborted(signal);
|
|
75
|
+
const byteLimit = validateNpmByteLimit(maxBytes, "compressed");
|
|
76
|
+
const response = await fetchWithAbort(() => fetchImpl(tarball, { signal }), signal);
|
|
77
|
+
throwIfResponseAborted(response, signal);
|
|
65
78
|
if (!response.ok) {
|
|
79
|
+
cancelResponseBody(response);
|
|
66
80
|
throw new Error(`tarball download failed with HTTP ${response.status}.`);
|
|
67
81
|
}
|
|
68
|
-
|
|
82
|
+
const declaredLength = response.headers.get("content-length");
|
|
83
|
+
if (declaredLength !== null) {
|
|
84
|
+
const parsed = Number(declaredLength);
|
|
85
|
+
if (Number.isFinite(parsed) && parsed >= 0 && parsed > byteLimit) {
|
|
86
|
+
cancelResponseBody(response);
|
|
87
|
+
throw new Error(`tarball exceeds the ${formatByteLimit(byteLimit)} compressed byte limit.`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return collectBoundedStream(response.body, byteLimit, "compressed", signal, () => response.arrayBuffer());
|
|
91
|
+
}
|
|
92
|
+
/** Verify registry authentication metadata against the compressed bytes. */
|
|
93
|
+
async function verifyTarball(tgz, dist, signal) {
|
|
94
|
+
throwIfAborted(signal);
|
|
95
|
+
if (dist.integrity !== undefined) {
|
|
96
|
+
const candidates = parseIntegrity(dist.integrity);
|
|
97
|
+
const strength = Math.max(...candidates.map(({ rank }) => rank));
|
|
98
|
+
const strongest = candidates.filter((candidate) => candidate.rank === strength);
|
|
99
|
+
const actual = new Uint8Array(await abortable(() => crypto.subtle.digest(strongest[0].webAlgorithm, tgz), signal));
|
|
100
|
+
throwIfAborted(signal);
|
|
101
|
+
if (!strongest.some(({ digest }) => equalBytes(actual, digest))) {
|
|
102
|
+
throw new Error(`tarball integrity mismatch (${strongest[0].algorithm}).`);
|
|
103
|
+
}
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (dist.shasum !== undefined) {
|
|
107
|
+
if (!/^[a-fA-F0-9]{40}$/.test(dist.shasum)) {
|
|
108
|
+
throw new Error("tarball shasum is not a valid SHA-1 digest.");
|
|
109
|
+
}
|
|
110
|
+
const actual = new Uint8Array(await abortable(() => crypto.subtle.digest("SHA-1", tgz), signal));
|
|
111
|
+
throwIfAborted(signal);
|
|
112
|
+
if (!equalBytes(actual, decodeHex(dist.shasum))) {
|
|
113
|
+
throw new Error("tarball shasum mismatch (sha1).");
|
|
114
|
+
}
|
|
115
|
+
}
|
|
69
116
|
}
|
|
70
|
-
async function unpackNpmTarball(tgz, signal) {
|
|
117
|
+
async function unpackNpmTarball(tgz, signal, maxBytes = 64 * 1024 * 1024) {
|
|
71
118
|
throwIfAborted(signal);
|
|
72
|
-
const
|
|
119
|
+
const byteLimit = validateNpmByteLimit(maxBytes, "expanded");
|
|
120
|
+
const tar = await gunzip(tgz, byteLimit, signal);
|
|
73
121
|
throwIfAborted(signal);
|
|
74
122
|
const decoder = new TextDecoder();
|
|
75
123
|
const files = {};
|
|
@@ -77,22 +125,44 @@ async function unpackNpmTarball(tgz, signal) {
|
|
|
77
125
|
let offset = 0;
|
|
78
126
|
let longPath = null;
|
|
79
127
|
let paxPath = null;
|
|
80
|
-
|
|
128
|
+
let terminated = false;
|
|
129
|
+
let archiveRoot = null;
|
|
130
|
+
const confine = (rawPath) => {
|
|
131
|
+
const confined = confineTarPath(rawPath, archiveRoot);
|
|
132
|
+
archiveRoot = confined.root;
|
|
133
|
+
return confined.relative;
|
|
134
|
+
};
|
|
135
|
+
while (offset < tar.length) {
|
|
81
136
|
throwIfAborted(signal);
|
|
137
|
+
if (offset + 512 > tar.length) {
|
|
138
|
+
throw new Error("Truncated tar header.");
|
|
139
|
+
}
|
|
82
140
|
const header = tar.subarray(offset, offset + 512);
|
|
83
141
|
offset += 512;
|
|
84
|
-
if (header.every((value) => value === 0))
|
|
142
|
+
if (header.every((value) => value === 0)) {
|
|
143
|
+
terminated = true;
|
|
85
144
|
break;
|
|
145
|
+
}
|
|
86
146
|
const type = String.fromCharCode(header[156] ?? 0);
|
|
87
147
|
const size = parseOctal(header.subarray(124, 136));
|
|
148
|
+
if (size > tar.length - offset) {
|
|
149
|
+
throw new Error("Tar entry body extends beyond the archive.");
|
|
150
|
+
}
|
|
88
151
|
const body = tar.subarray(offset, offset + size);
|
|
89
|
-
|
|
152
|
+
const paddedSize = Math.ceil(size / 512) * 512;
|
|
153
|
+
if (!Number.isSafeInteger(paddedSize) || paddedSize > tar.length - offset) {
|
|
154
|
+
throw new Error("Tar entry padding extends beyond the archive.");
|
|
155
|
+
}
|
|
156
|
+
offset += paddedSize;
|
|
90
157
|
if (type === "L") {
|
|
91
158
|
longPath = trimNull(decoder.decode(body));
|
|
159
|
+
confine(longPath);
|
|
92
160
|
continue;
|
|
93
161
|
}
|
|
94
162
|
if (type === "x") {
|
|
95
163
|
paxPath = parsePaxPath(body);
|
|
164
|
+
if (paxPath !== null)
|
|
165
|
+
confine(paxPath);
|
|
96
166
|
continue;
|
|
97
167
|
}
|
|
98
168
|
if (type !== "0" && type !== "\0") {
|
|
@@ -100,11 +170,11 @@ async function unpackNpmTarball(tgz, signal) {
|
|
|
100
170
|
paxPath = null;
|
|
101
171
|
continue;
|
|
102
172
|
}
|
|
103
|
-
const rawPath = paxPath ?? longPath ??
|
|
173
|
+
const rawPath = paxPath ?? longPath ?? readTarHeaderPath(header, decoder);
|
|
104
174
|
longPath = null;
|
|
105
175
|
paxPath = null;
|
|
106
|
-
const rel =
|
|
107
|
-
if (!
|
|
176
|
+
const rel = confine(rawPath);
|
|
177
|
+
if (!TEXT_FILE_REGEXP.test(rel))
|
|
108
178
|
continue;
|
|
109
179
|
const text = decoder.decode(body);
|
|
110
180
|
files[rel] = text;
|
|
@@ -117,16 +187,18 @@ async function unpackNpmTarball(tgz, signal) {
|
|
|
117
187
|
}
|
|
118
188
|
}
|
|
119
189
|
}
|
|
190
|
+
if (!terminated)
|
|
191
|
+
throw new Error("Tar archive has no end marker.");
|
|
120
192
|
return { files, packageJson };
|
|
121
193
|
}
|
|
122
|
-
async function gunzip(input) {
|
|
194
|
+
async function gunzip(input, maxBytes, signal) {
|
|
123
195
|
if (!("DecompressionStream" in globalThis)) {
|
|
124
196
|
throw new Error("This browser cannot unpack npm tgz files because DecompressionStream is unavailable.");
|
|
125
197
|
}
|
|
126
198
|
const stream = new Blob([input])
|
|
127
199
|
.stream()
|
|
128
200
|
.pipeThrough(new DecompressionStream("gzip"));
|
|
129
|
-
return new Uint8Array(await new Response(stream).arrayBuffer());
|
|
201
|
+
return new Uint8Array(await collectBoundedStream(stream, maxBytes, "expanded", signal, async () => new Response(stream).arrayBuffer()));
|
|
130
202
|
}
|
|
131
203
|
function mountPackageFiles(packageName, files) {
|
|
132
204
|
const compilerFiles = {};
|
|
@@ -193,11 +265,19 @@ function readTarString(bytes, decoder) {
|
|
|
193
265
|
}
|
|
194
266
|
function trimNull(text) {
|
|
195
267
|
const index = text.indexOf("\0");
|
|
196
|
-
return
|
|
268
|
+
return index < 0 ? text : text.slice(0, index);
|
|
197
269
|
}
|
|
198
270
|
function parseOctal(bytes) {
|
|
199
271
|
const text = trimNull(new TextDecoder().decode(bytes)).trim();
|
|
200
|
-
|
|
272
|
+
if (text.length === 0)
|
|
273
|
+
return 0;
|
|
274
|
+
if (!/^[0-7]+$/.test(text))
|
|
275
|
+
throw new Error("Invalid tar entry size.");
|
|
276
|
+
const value = Number.parseInt(text, 8);
|
|
277
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
278
|
+
throw new Error("Tar entry size is outside the safe integer range.");
|
|
279
|
+
}
|
|
280
|
+
return value;
|
|
201
281
|
}
|
|
202
282
|
function parsePaxPath(bytes) {
|
|
203
283
|
const decoder = new TextDecoder();
|
|
@@ -227,13 +307,238 @@ function parsePaxPath(bytes) {
|
|
|
227
307
|
}
|
|
228
308
|
return path;
|
|
229
309
|
}
|
|
230
|
-
function
|
|
231
|
-
const
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
310
|
+
function readTarHeaderPath(header, decoder) {
|
|
311
|
+
const name = readTarString(header.subarray(0, 100), decoder);
|
|
312
|
+
const prefix = readTarString(header.subarray(345, 500), decoder);
|
|
313
|
+
return prefix ? `${prefix}/${name}` : name;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Require an npm archive path below one safe, consistent top-level root.
|
|
317
|
+
*
|
|
318
|
+
* Npm normally emits `package/`, while current DefinitelyTyped tarballs use
|
|
319
|
+
* roots such as `node/` and `react/`. The root spelling does not enter the
|
|
320
|
+
* mounted key; consistency and safe remaining segments provide confinement.
|
|
321
|
+
*/
|
|
322
|
+
function confineTarPath(rawPath, archiveRoot) {
|
|
323
|
+
if (rawPath.length === 0 ||
|
|
324
|
+
rawPath.includes("\\") ||
|
|
325
|
+
rawPath.startsWith("/") ||
|
|
326
|
+
/^[a-zA-Z]:/.test(rawPath)) {
|
|
327
|
+
throw new Error(`Invalid npm tar entry path ${JSON.stringify(rawPath)}.`);
|
|
328
|
+
}
|
|
329
|
+
const segments = rawPath.split("/");
|
|
330
|
+
if (segments.length < 2 ||
|
|
331
|
+
segments.some((segment, index) => segment.length === 0 ||
|
|
332
|
+
segment === "." ||
|
|
333
|
+
segment === ".." ||
|
|
334
|
+
(index > 0 && /^[a-zA-Z]:/.test(segment)))) {
|
|
335
|
+
throw new Error(`npm tar entry is outside a confined package root: ${JSON.stringify(rawPath)}.`);
|
|
336
|
+
}
|
|
337
|
+
const root = segments[0];
|
|
338
|
+
if (archiveRoot !== null && root !== archiveRoot) {
|
|
339
|
+
throw new Error(`npm tar archive mixes package roots ${JSON.stringify(archiveRoot)} and ${JSON.stringify(root)}.`);
|
|
340
|
+
}
|
|
341
|
+
return { relative: segments.slice(1).join("/"), root };
|
|
342
|
+
}
|
|
343
|
+
function parseIntegrity(integrity) {
|
|
344
|
+
const tokens = integrity.trim().split(/\s+/).filter(Boolean);
|
|
345
|
+
if (tokens.length === 0)
|
|
346
|
+
throw new Error("tarball integrity is empty.");
|
|
347
|
+
const candidates = [];
|
|
348
|
+
for (const token of tokens) {
|
|
349
|
+
const match = /^([A-Za-z0-9]+)-([A-Za-z0-9+/]+={0,2})(?:\?[!-~]+)?$/i.exec(token);
|
|
350
|
+
if (!match) {
|
|
351
|
+
throw new Error("tarball integrity contains malformed metadata.");
|
|
352
|
+
}
|
|
353
|
+
const algorithm = match[1].toLowerCase();
|
|
354
|
+
if (!["sha1", "sha256", "sha384", "sha512"].includes(algorithm)) {
|
|
355
|
+
decodeBase64(match[2]);
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
const expectedLength = algorithm === "sha512"
|
|
359
|
+
? 64
|
|
360
|
+
: algorithm === "sha384"
|
|
361
|
+
? 48
|
|
362
|
+
: algorithm === "sha256"
|
|
363
|
+
? 32
|
|
364
|
+
: 20;
|
|
365
|
+
const digest = decodeBase64(match[2]);
|
|
366
|
+
if (digest.length !== expectedLength) {
|
|
367
|
+
throw new Error("tarball integrity contains a malformed digest.");
|
|
368
|
+
}
|
|
369
|
+
candidates.push({
|
|
370
|
+
algorithm,
|
|
371
|
+
digest,
|
|
372
|
+
rank: expectedLength,
|
|
373
|
+
webAlgorithm: algorithm.replace("sha", "SHA-"),
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
if (candidates.length === 0) {
|
|
377
|
+
throw new Error("tarball integrity has no supported digest algorithm.");
|
|
378
|
+
}
|
|
379
|
+
return candidates;
|
|
380
|
+
}
|
|
381
|
+
function decodeBase64(value) {
|
|
382
|
+
try {
|
|
383
|
+
const decoded = atob(value);
|
|
384
|
+
return Uint8Array.from(decoded, (character) => character.charCodeAt(0));
|
|
385
|
+
}
|
|
386
|
+
catch {
|
|
387
|
+
throw new Error("tarball integrity contains malformed base64.");
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
function decodeHex(value) {
|
|
391
|
+
return Uint8Array.from(value.match(/../g) ?? [], (byte) => Number.parseInt(byte, 16));
|
|
392
|
+
}
|
|
393
|
+
function equalBytes(left, right) {
|
|
394
|
+
if (left.length !== right.length)
|
|
395
|
+
return false;
|
|
396
|
+
let difference = 0;
|
|
397
|
+
for (let index = 0; index < left.length; ++index) {
|
|
398
|
+
difference |= left[index] ^ right[index];
|
|
399
|
+
}
|
|
400
|
+
return difference === 0;
|
|
401
|
+
}
|
|
402
|
+
async function collectBoundedStream(stream, maxBytes, kind, signal, fallback) {
|
|
403
|
+
if (stream === null) {
|
|
404
|
+
throwIfAborted(signal);
|
|
405
|
+
const bytes = await abortable(fallback, signal);
|
|
406
|
+
throwIfAborted(signal);
|
|
407
|
+
if (bytes.byteLength > maxBytes) {
|
|
408
|
+
throw new Error(`tarball exceeds the ${formatByteLimit(maxBytes)} ${kind} byte limit.`);
|
|
409
|
+
}
|
|
410
|
+
return bytes;
|
|
411
|
+
}
|
|
412
|
+
const reader = stream.getReader();
|
|
413
|
+
const chunks = [];
|
|
414
|
+
let length = 0;
|
|
415
|
+
let abort;
|
|
416
|
+
const aborted = signal === undefined
|
|
417
|
+
? undefined
|
|
418
|
+
: new Promise((_resolve, reject) => {
|
|
419
|
+
abort = () => {
|
|
420
|
+
let error;
|
|
421
|
+
try {
|
|
422
|
+
throwIfAborted(signal);
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
catch (caught) {
|
|
426
|
+
error = caught;
|
|
427
|
+
}
|
|
428
|
+
void reader.cancel(error).catch(() => undefined);
|
|
429
|
+
reject(error);
|
|
430
|
+
};
|
|
431
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
432
|
+
});
|
|
433
|
+
try {
|
|
434
|
+
for (;;) {
|
|
435
|
+
throwIfAborted(signal);
|
|
436
|
+
const read = reader.read();
|
|
437
|
+
const next = aborted ? await Promise.race([read, aborted]) : await read;
|
|
438
|
+
throwIfAborted(signal);
|
|
439
|
+
if (next.done)
|
|
440
|
+
break;
|
|
441
|
+
if (next.value.byteLength > maxBytes - length) {
|
|
442
|
+
void reader.cancel().catch(() => undefined);
|
|
443
|
+
throw new Error(`tarball exceeds the ${formatByteLimit(maxBytes)} ${kind} byte limit.`);
|
|
444
|
+
}
|
|
445
|
+
chunks.push(next.value);
|
|
446
|
+
length += next.value.byteLength;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
catch (error) {
|
|
450
|
+
void reader.cancel(error).catch(() => undefined);
|
|
451
|
+
throw error;
|
|
452
|
+
}
|
|
453
|
+
finally {
|
|
454
|
+
if (abort !== undefined)
|
|
455
|
+
signal?.removeEventListener("abort", abort);
|
|
456
|
+
}
|
|
457
|
+
const output = new Uint8Array(length);
|
|
458
|
+
let offset = 0;
|
|
459
|
+
for (const chunk of chunks) {
|
|
460
|
+
output.set(chunk, offset);
|
|
461
|
+
offset += chunk.byteLength;
|
|
462
|
+
}
|
|
463
|
+
return output.buffer;
|
|
464
|
+
}
|
|
465
|
+
function formatByteLimit(bytes) {
|
|
466
|
+
return `${bytes.toLocaleString("en-US")}-byte`;
|
|
467
|
+
}
|
|
468
|
+
/** Validate one public npm archive byte budget before starting related work. */
|
|
469
|
+
function validateNpmByteLimit(maxBytes, kind) {
|
|
470
|
+
if (!Number.isSafeInteger(maxBytes) || maxBytes <= 0) {
|
|
471
|
+
throw new Error(`${kind} byte limit must be a positive safe integer.`);
|
|
472
|
+
}
|
|
473
|
+
return maxBytes;
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Reject promptly on abort even when an underlying browser task is not
|
|
477
|
+
* cancellable.
|
|
478
|
+
*/
|
|
479
|
+
function abortable(start, signal, disposeLateValue) {
|
|
480
|
+
throwIfAborted(signal);
|
|
481
|
+
let task;
|
|
482
|
+
try {
|
|
483
|
+
task = start();
|
|
484
|
+
}
|
|
485
|
+
catch (error) {
|
|
486
|
+
throwIfAborted(signal);
|
|
487
|
+
throw error;
|
|
488
|
+
}
|
|
489
|
+
if (signal === undefined)
|
|
490
|
+
return task;
|
|
491
|
+
return new Promise((resolve, reject) => {
|
|
492
|
+
let aborted = false;
|
|
493
|
+
const abort = () => {
|
|
494
|
+
if (aborted)
|
|
495
|
+
return;
|
|
496
|
+
aborted = true;
|
|
497
|
+
signal.removeEventListener("abort", abort);
|
|
498
|
+
try {
|
|
499
|
+
throwIfAborted(signal);
|
|
500
|
+
}
|
|
501
|
+
catch (error) {
|
|
502
|
+
reject(error);
|
|
503
|
+
}
|
|
504
|
+
};
|
|
505
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
506
|
+
void task
|
|
507
|
+
.then((value) => {
|
|
508
|
+
if (signal.aborted) {
|
|
509
|
+
try {
|
|
510
|
+
disposeLateValue?.(value);
|
|
511
|
+
}
|
|
512
|
+
catch {
|
|
513
|
+
// Disposal is best-effort and must not replace the abort reason.
|
|
514
|
+
}
|
|
515
|
+
abort();
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
resolve(value);
|
|
519
|
+
}, reject)
|
|
520
|
+
.finally(() => {
|
|
521
|
+
signal.removeEventListener("abort", abort);
|
|
522
|
+
});
|
|
523
|
+
if (signal.aborted)
|
|
524
|
+
abort();
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
/** Cancel an unused response body without obscuring the deciding outcome. */
|
|
528
|
+
function cancelResponseBody(response) {
|
|
529
|
+
void response.body?.cancel().catch(() => undefined);
|
|
530
|
+
}
|
|
531
|
+
/** Preserve the abort reason across the response-to-caller handoff. */
|
|
532
|
+
function throwIfResponseAborted(response, signal) {
|
|
533
|
+
if (!signal?.aborted)
|
|
534
|
+
return;
|
|
535
|
+
cancelResponseBody(response);
|
|
536
|
+
throwIfAborted(signal);
|
|
537
|
+
}
|
|
538
|
+
/** Fetch one response and cancel any body that loses the abort race. */
|
|
539
|
+
async function fetchWithAbort(start, signal) {
|
|
540
|
+
const response = await abortable(start, signal, cancelResponseBody);
|
|
541
|
+
throwIfResponseAborted(response, signal);
|
|
542
|
+
return response;
|
|
238
543
|
}
|
|
239
544
|
//# sourceMappingURL=npmRegistry.js.map
|