@scriptc/compiler 0.1.3 → 0.1.5
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/ambient/scriptc-node-fallback.d.ts +275 -62
- package/dist/backend/c/async.d.ts +25 -0
- package/dist/backend/c/async.js +167 -0
- package/dist/backend/c/async.js.map +1 -1
- package/dist/backend/c/c-emitter.d.ts +15 -1
- package/dist/backend/c/c-emitter.js +36 -11
- package/dist/backend/c/c-emitter.js.map +1 -1
- package/dist/backend/c/exprs.d.ts +2 -2
- package/dist/backend/c/exprs.js +556 -71
- package/dist/backend/c/exprs.js.map +1 -1
- package/dist/backend/c/stmts.js +5 -3
- package/dist/backend/c/stmts.js.map +1 -1
- package/dist/backend/c/types.d.ts +2 -3
- package/dist/backend/c/types.js +10 -1
- package/dist/backend/c/types.js.map +1 -1
- package/dist/backend/c/walkers.js +1 -1
- package/dist/backend/c/walkers.js.map +1 -1
- package/dist/backend/link-plan.d.ts +3 -1
- package/dist/backend/link-plan.js +3 -1
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/llvm/dyn.js +1 -1
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.js +42 -12
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +1 -2
- package/dist/backend/llvm/expr-bytes.js +28 -23
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +9 -0
- package/dist/backend/llvm/expr-callbacks.js +125 -0
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +1 -0
- package/dist/backend/llvm/expr-containers.js +32 -4
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +19 -3
- package/dist/backend/llvm/expr-dispatch.js +1 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +49 -13
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.d.ts +1 -0
- package/dist/backend/llvm/expr-primitives.test.js +38 -0
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -0
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +3 -0
- package/dist/backend/llvm/expr-stream-callbacks.js +69 -0
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +80 -10
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +69 -10
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +156 -6
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +100 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +23 -0
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +5 -0
- package/dist/backend/native-toolchain.js +4 -1
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +28 -10
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/targets.d.ts +7 -0
- package/dist/backend/targets.js +26 -0
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +8 -1
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/coverage/surface-manifest.js +14 -4
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.js +1 -1
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +4 -0
- package/dist/executable/executable-cache.js +6 -1
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +3 -3
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/frontend/fork-target.d.ts +17 -0
- package/dist/frontend/fork-target.js +256 -0
- package/dist/frontend/fork-target.js.map +1 -0
- package/dist/frontend/lowering/abstract-equality.d.ts +6 -0
- package/dist/frontend/lowering/abstract-equality.js +250 -0
- package/dist/frontend/lowering/abstract-equality.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.d.ts +1 -1
- package/dist/frontend/lowering/containers/bytes.js +6 -5
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +7 -6
- package/dist/frontend/lowering/containers/string-and-regexp.js +237 -28
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +8 -0
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +71 -2
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +54 -28
- package/dist/frontend/lowering/lower-builtins.js +957 -116
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +32 -23
- package/dist/frontend/lowering/lower-calls.js +835 -206
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +41 -10
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +7 -9
- package/dist/frontend/lowering/lower-containers.js +293 -51
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.js +212 -21
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +12 -0
- package/dist/frontend/lowering/lower-exprs.js +263 -93
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
- package/dist/frontend/lowering/lower-inspect.js +1 -1
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +6 -3
- package/dist/frontend/lowering/lower-island.js +182 -12
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +6 -0
- package/dist/frontend/lowering/lower-modules.js +184 -38
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.js +7 -0
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +3 -5
- package/dist/frontend/lowering/lower-server.js +413 -54
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +122 -19
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +3 -0
- package/dist/frontend/lowering/lower-stream.js +7 -0
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +86 -9
- package/dist/frontend/lowering/lowerer.js +449 -74
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/optional-arguments.d.ts +9 -1
- package/dist/frontend/lowering/optional-arguments.js +67 -1
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.d.ts +3 -1
- package/dist/frontend/lowering/pairs-snapshot.js +12 -4
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +34 -14
- package/dist/frontend/lowering/surfaces.js +177 -104
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/npm-static-declarations.d.ts +4 -0
- package/dist/frontend/npm-static-declarations.js +56 -0
- package/dist/frontend/npm-static-declarations.js.map +1 -1
- package/dist/frontend/npm-static-declarations.test.js +23 -2
- package/dist/frontend/npm-static-declarations.test.js.map +1 -1
- package/dist/frontend/npm-static-prune.d.ts +6 -0
- package/dist/frontend/npm-static-prune.js +203 -0
- package/dist/frontend/npm-static-prune.js.map +1 -0
- package/dist/frontend/npm-static-prune.test.d.ts +1 -0
- package/dist/frontend/npm-static-prune.test.js +48 -0
- package/dist/frontend/npm-static-prune.test.js.map +1 -0
- package/dist/frontend/npm-static.js +6 -5
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +15 -3
- package/dist/frontend/npm.js +87 -14
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +76 -9
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/program.js +107 -14
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/provenance.js +8 -3
- package/dist/frontend/provenance.js.map +1 -1
- package/dist/frontend/resolve.d.ts +6 -0
- package/dist/frontend/resolve.js +7 -4
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +5 -0
- package/dist/frontend/type-mapper.js +80 -29
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.js +34 -41
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +5 -3
- package/dist/ir/analysis.js +25 -11
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +50 -2
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/constant-tables.d.ts +17 -0
- package/dist/ir/constant-tables.js +99 -0
- package/dist/ir/constant-tables.js.map +1 -0
- package/dist/ir/constant-tables.test.d.ts +1 -0
- package/dist/ir/constant-tables.test.js +78 -0
- package/dist/ir/constant-tables.test.js.map +1 -0
- package/dist/ir/integer-ranges.d.ts +13 -0
- package/dist/ir/integer-ranges.js +122 -0
- package/dist/ir/integer-ranges.js.map +1 -0
- package/dist/ir/integer-ranges.test.d.ts +1 -0
- package/dist/ir/integer-ranges.test.js +63 -0
- package/dist/ir/integer-ranges.test.js.map +1 -0
- package/dist/ir/ir.d.ts +130 -76
- package/dist/ir/ir.js +69 -4
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +20 -1
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/scalar-records.d.ts +8 -0
- package/dist/ir/scalar-records.js +216 -0
- package/dist/ir/scalar-records.js.map +1 -0
- package/dist/ir/scalar-records.test.d.ts +1 -0
- package/dist/ir/scalar-records.test.js +142 -0
- package/dist/ir/scalar-records.test.js.map +1 -0
- package/dist/ir/serialize.d.ts +1 -1
- package/dist/ir/serialize.js +1 -1
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/validate.js +256 -20
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.d.ts +1 -0
- package/dist/ir/validate.test.js +31 -0
- package/dist/ir/validate.test.js.map +1 -0
- package/dist/library/cache-primitives.d.ts +1 -1
- package/dist/library/cache-primitives.js +3 -3
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/fence-eval.js +11 -4
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/int-infer.test.js.map +1 -1
- package/dist/library/library-cache.js +0 -1
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +8 -8
- package/dist/library/library-cache.test.js.map +1 -1
- package/package.json +17 -17
- package/surface-manifest.json +186 -79
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/* A package may declare that all of its published files have no module
|
|
2
|
+
* evaluation side effects. For opted-in static npm packages, that promise
|
|
3
|
+
* lets an unused `export * as name from "./module.js"` edge disappear just
|
|
4
|
+
* as it does in a bundler. Keep the decision per tsgo program: preflight,
|
|
5
|
+
* the link checks, and emitted module init headers must see one graph. */
|
|
6
|
+
import * as ts from "./ts7/adapter.js";
|
|
7
|
+
import { dirname, join, resolve } from "node:path";
|
|
8
|
+
import { nearestPackageType, resolveBareModule } from "./resolve.js";
|
|
9
|
+
import { npmStaticPackageOfPath } from "./npm-static.js";
|
|
10
|
+
import { trackedReadFile } from "./input-tracker.js";
|
|
11
|
+
import { npmPackageNameOf } from "./workspace-registry.js";
|
|
12
|
+
const prunedByProgram = new WeakMap();
|
|
13
|
+
export function isPrunedNpmReexport(program, stmt) {
|
|
14
|
+
return prunedByProgram.get(program)?.has(stmt) ?? false;
|
|
15
|
+
}
|
|
16
|
+
function packageJson(path) {
|
|
17
|
+
const source = trackedReadFile(path);
|
|
18
|
+
if (source === null)
|
|
19
|
+
return null;
|
|
20
|
+
try {
|
|
21
|
+
const parsed = JSON.parse(source);
|
|
22
|
+
return parsed !== null && typeof parsed === "object" && !Array.isArray(parsed)
|
|
23
|
+
? parsed
|
|
24
|
+
: null;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function noSideEffects(value) {
|
|
31
|
+
return value === false || (Array.isArray(value) && value.length === 0);
|
|
32
|
+
}
|
|
33
|
+
/** A nested format scope such as dist/esm/package.json is not the package's
|
|
34
|
+
* published metadata. Stay inside the resolved package while finding its
|
|
35
|
+
* named root, including pnpm's realpath and workspace-linked installs. */
|
|
36
|
+
function packageRootJsonPath(fromFile, packageName) {
|
|
37
|
+
let dir = dirname(resolve(fromFile));
|
|
38
|
+
let root = null;
|
|
39
|
+
while (npmPackageNameOf(dir.replaceAll("\\", "/")) === packageName) {
|
|
40
|
+
const path = join(dir, "package.json");
|
|
41
|
+
if (packageJson(path)?.["name"] === packageName)
|
|
42
|
+
root = path;
|
|
43
|
+
const parent = dirname(dir);
|
|
44
|
+
if (parent === dir)
|
|
45
|
+
break;
|
|
46
|
+
dir = parent;
|
|
47
|
+
}
|
|
48
|
+
return root;
|
|
49
|
+
}
|
|
50
|
+
function purePackageTree(path, memo, visiting) {
|
|
51
|
+
const cached = memo.get(path);
|
|
52
|
+
if (cached !== undefined)
|
|
53
|
+
return { pure: cached, provisional: false };
|
|
54
|
+
if (visiting.has(path))
|
|
55
|
+
return { pure: true, provisional: true };
|
|
56
|
+
const json = packageJson(path);
|
|
57
|
+
if (json === null || !noSideEffects(json["sideEffects"])) {
|
|
58
|
+
memo.set(path, false);
|
|
59
|
+
return { pure: false, provisional: false };
|
|
60
|
+
}
|
|
61
|
+
visiting.add(path);
|
|
62
|
+
let pure = true;
|
|
63
|
+
let provisional = false;
|
|
64
|
+
for (const field of ["dependencies", "optionalDependencies", "peerDependencies"]) {
|
|
65
|
+
const dependencies = json[field];
|
|
66
|
+
if (dependencies === null || typeof dependencies !== "object" || Array.isArray(dependencies))
|
|
67
|
+
continue;
|
|
68
|
+
for (const name of Object.keys(dependencies)) {
|
|
69
|
+
const resolved = resolveBareModule(path, name, "js-only");
|
|
70
|
+
const depPath = resolved === null ? null : packageRootJsonPath(resolved.typesFile, name);
|
|
71
|
+
const dep = depPath === null ? { pure: false, provisional: false } : purePackageTree(depPath, memo, visiting);
|
|
72
|
+
if (!dep.pure) {
|
|
73
|
+
pure = false;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
provisional ||= dep.provisional;
|
|
77
|
+
}
|
|
78
|
+
if (!pure)
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
visiting.delete(path);
|
|
82
|
+
// False is final. A true result is final only when it did not borrow an
|
|
83
|
+
// ancestor's optimistic back-edge, or when the entire traversal is done.
|
|
84
|
+
if (!pure || !provisional || visiting.size === 0)
|
|
85
|
+
memo.set(path, pure);
|
|
86
|
+
return { pure, provisional };
|
|
87
|
+
}
|
|
88
|
+
/** Package files outside the demanded module graph are absent from the
|
|
89
|
+
* executable program. All ordinary project files retain their preflight
|
|
90
|
+
* behavior, including files not imported by the entry. */
|
|
91
|
+
export function planNpmStaticReexports(program, entry, files, extraRoots, resolveEdge) {
|
|
92
|
+
const available = new Set(files);
|
|
93
|
+
const demanded = new Map();
|
|
94
|
+
const queue = [];
|
|
95
|
+
const request = (sf, name) => {
|
|
96
|
+
if (sf === null || !available.has(sf))
|
|
97
|
+
return;
|
|
98
|
+
if (npmStaticPackageOfPath(sf.fileName) === null)
|
|
99
|
+
name = null;
|
|
100
|
+
const previous = demanded.get(sf);
|
|
101
|
+
if (previous === null)
|
|
102
|
+
return;
|
|
103
|
+
if (previous === undefined) {
|
|
104
|
+
demanded.set(sf, name === null ? null : new Set([name]));
|
|
105
|
+
queue.push(sf);
|
|
106
|
+
}
|
|
107
|
+
else if (name === null) {
|
|
108
|
+
demanded.set(sf, null);
|
|
109
|
+
queue.push(sf);
|
|
110
|
+
}
|
|
111
|
+
else if (!previous.has(name)) {
|
|
112
|
+
previous.add(name);
|
|
113
|
+
queue.push(sf);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
for (const sf of files) {
|
|
117
|
+
if (npmStaticPackageOfPath(sf.fileName) === null)
|
|
118
|
+
request(sf, null);
|
|
119
|
+
}
|
|
120
|
+
request(entry, null);
|
|
121
|
+
for (const path of extraRoots)
|
|
122
|
+
request(program.getSourceFile(path) ?? null, null);
|
|
123
|
+
const pureMemo = new Map();
|
|
124
|
+
const canPrune = (sf, stmt, dep) => {
|
|
125
|
+
if (dep === null || stmt.exportClause === undefined || !ts.isNamespaceExport(stmt.exportClause))
|
|
126
|
+
return false;
|
|
127
|
+
const pkg = npmStaticPackageOfPath(sf.fileName);
|
|
128
|
+
if (pkg === null || npmStaticPackageOfPath(dep.fileName) !== pkg)
|
|
129
|
+
return false;
|
|
130
|
+
const pkgPath = packageRootJsonPath(sf.fileName, pkg);
|
|
131
|
+
if (pkgPath === null)
|
|
132
|
+
return false;
|
|
133
|
+
if (nearestPackageType(sf.fileName) !== "module")
|
|
134
|
+
return false;
|
|
135
|
+
if (!purePackageTree(pkgPath, pureMemo, new Set()).pure)
|
|
136
|
+
return false;
|
|
137
|
+
const names = demanded.get(sf);
|
|
138
|
+
return names !== undefined && names !== null && !names.has(stmt.exportClause.name.text);
|
|
139
|
+
};
|
|
140
|
+
while (queue.length > 0) {
|
|
141
|
+
const sf = queue.shift();
|
|
142
|
+
for (const stmt of sf.statements) {
|
|
143
|
+
if (ts.isImportDeclaration(stmt)) {
|
|
144
|
+
if (!ts.isStringLiteral(stmt.moduleSpecifier))
|
|
145
|
+
continue;
|
|
146
|
+
const clause = stmt.importClause;
|
|
147
|
+
if (clause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
|
|
148
|
+
continue;
|
|
149
|
+
const dep = resolveEdge(sf, stmt.moduleSpecifier.text);
|
|
150
|
+
if (clause === undefined ||
|
|
151
|
+
(clause.namedBindings !== undefined && (ts.isNamespaceImport(clause.namedBindings) ||
|
|
152
|
+
ts.isNamedImports(clause.namedBindings) && clause.namedBindings.elements.length === 0))) {
|
|
153
|
+
request(dep, null);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
if (clause.name !== undefined)
|
|
157
|
+
request(dep, "default");
|
|
158
|
+
if (clause.namedBindings && ts.isNamedImports(clause.namedBindings)) {
|
|
159
|
+
for (const element of clause.namedBindings.elements) {
|
|
160
|
+
if (!element.isTypeOnly)
|
|
161
|
+
request(dep, (element.propertyName ?? element.name).text);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else if (ts.isExportDeclaration(stmt)) {
|
|
167
|
+
if (stmt.isTypeOnly ||
|
|
168
|
+
(stmt.exportClause !== undefined && ts.isNamedExports(stmt.exportClause) &&
|
|
169
|
+
stmt.exportClause.elements.length > 0 && stmt.exportClause.elements.every((element) => element.isTypeOnly)) ||
|
|
170
|
+
stmt.moduleSpecifier === undefined || !ts.isStringLiteral(stmt.moduleSpecifier))
|
|
171
|
+
continue;
|
|
172
|
+
const dep = resolveEdge(sf, stmt.moduleSpecifier.text);
|
|
173
|
+
if (canPrune(sf, stmt, dep))
|
|
174
|
+
continue;
|
|
175
|
+
request(dep, null);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
ts.walkPreorder(sf, (node) => {
|
|
179
|
+
if (!ts.isCallExpression(node) || node.arguments.length !== 1)
|
|
180
|
+
return undefined;
|
|
181
|
+
const arg = node.arguments[0];
|
|
182
|
+
if (arg === undefined || !ts.isStringLiteralLike(arg))
|
|
183
|
+
return undefined;
|
|
184
|
+
if (node.expression.kind === ts.SyntaxKind.ImportKeyword ||
|
|
185
|
+
ts.isIdentifier(node.expression) && node.expression.text === "require") {
|
|
186
|
+
request(resolveEdge(sf, arg.text), null);
|
|
187
|
+
}
|
|
188
|
+
return undefined;
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
const pruned = new Set();
|
|
192
|
+
for (const sf of demanded.keys()) {
|
|
193
|
+
for (const stmt of sf.statements) {
|
|
194
|
+
if (!ts.isExportDeclaration(stmt) || stmt.moduleSpecifier === undefined || !ts.isStringLiteral(stmt.moduleSpecifier))
|
|
195
|
+
continue;
|
|
196
|
+
if (canPrune(sf, stmt, resolveEdge(sf, stmt.moduleSpecifier.text)))
|
|
197
|
+
pruned.add(stmt);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
prunedByProgram.set(program, pruned);
|
|
201
|
+
return files.filter((sf) => npmStaticPackageOfPath(sf.fileName) === null || demanded.has(sf));
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=npm-static-prune.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-static-prune.js","sourceRoot":"","sources":["../../src/frontend/npm-static-prune.ts"],"names":[],"mappings":"AAAA;;;;0EAI0E;AAE1E,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,eAAe,GAAG,IAAI,OAAO,EAAiD,CAAC;AAErF,MAAM,UAAU,mBAAmB,CAAC,OAAmB,EAAE,IAA0B;IACjF,OAAO,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5E,CAAC,CAAC,MAAiC;YACnC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;0EAE0E;AAC1E,SAAS,mBAAmB,CAAC,QAAgB,EAAE,WAAmB;IAChE,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrC,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACvC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,WAAW;YAAE,IAAI,GAAG,IAAI,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AASD,SAAS,eAAe,CACtB,IAAY,EACZ,IAA0B,EAC1B,QAAqB;IAErB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACtE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACjE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC7C,CAAC;IACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACjF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,YAAY,KAAK,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YAAE,SAAS;QACvG,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAuC,CAAC,EAAE,CAAC;YACxE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACzF,MAAM,GAAG,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9G,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,GAAG,KAAK,CAAC;gBACb,MAAM;YACR,CAAC;YACD,WAAW,KAAK,GAAG,CAAC,WAAW,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,MAAM;IACnB,CAAC;IACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC/B,CAAC;AAID;;0DAE0D;AAC1D,MAAM,UAAU,sBAAsB,CACpC,OAAmB,EACnB,KAAoB,EACpB,KAA+B,EAC/B,UAA6B,EAC7B,WAAwE;IAExE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAClD,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,CAAC,EAAwB,EAAE,IAAmB,EAAQ,EAAE;QACtE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO;QAC9C,IAAI,sBAAsB,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI;YAAE,IAAI,GAAG,IAAI,CAAC;QAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO;QAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,sBAAsB,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,UAAU;QAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC5C,MAAM,QAAQ,GAAG,CAAC,EAAiB,EAAE,IAA0B,EAAE,GAAyB,EAAW,EAAE;QACrG,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9G,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,GAAG,KAAK,IAAI,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QAC/E,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,kBAAkB,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC/D,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1F,CAAC,CAAC;IAEF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;oBAAE,SAAS;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;gBACjC,IAAI,MAAM,EAAE,aAAa,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW;oBAAE,SAAS;gBAClE,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACvD,IACE,MAAM,KAAK,SAAS;oBACpB,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,CACrC,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC;wBAC1C,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CACtF,CAAC,EACF,CAAC;oBACD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;wBAAE,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBACvD,IAAI,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;wBACpE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;4BACpD,IAAI,CAAC,OAAO,CAAC,UAAU;gCAAE,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;wBACrF,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,IACE,IAAI,CAAC,UAAU;oBACf,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;wBACtE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC7G,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;oBAC/E,SAAS;gBACX,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;oBAAE,SAAS;gBACtC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAChF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBAAE,OAAO,SAAS,CAAC;YACxE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;gBACpD,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC3E,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC/C,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;gBAAE,SAAS;YAC/H,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IACD,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { describe, expect, test } from "vitest";
|
|
3
|
+
import { checkPreflight, loadProgram } from "./program.js";
|
|
4
|
+
const fixtureRoot = join(import.meta.dirname, "../../../../tests/fixtures/npm-static");
|
|
5
|
+
function moduleOrder(entry, packages) {
|
|
6
|
+
const load = loadProgram(join(fixtureRoot, entry), { npmStatic: typeof packages === "string" ? [packages] : packages });
|
|
7
|
+
try {
|
|
8
|
+
const diagnostics = checkPreflight(load);
|
|
9
|
+
return {
|
|
10
|
+
files: load.moduleOrder.map((sf) => sf.fileName),
|
|
11
|
+
diagnostics: diagnostics.map((d) => d.code),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
finally {
|
|
15
|
+
load.dispose();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
describe("npm static namespace re-export pruning", () => {
|
|
19
|
+
test("the named package's sideEffects declaration skips unused namespace exports through a nested ESM scope", () => {
|
|
20
|
+
const { files, diagnostics } = moduleOrder("purebarrel-cli.ts", "purebarrel");
|
|
21
|
+
expect(diagnostics).toEqual([]);
|
|
22
|
+
expect(files.some((file) => file.endsWith("/purebarrel/dist/esm/feature.js"))).toBe(true);
|
|
23
|
+
expect(files.some((file) => file.endsWith("/purebarrel/dist/esm/spare.js"))).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
test("a requested namespace retains its module edge and its preflight fence", () => {
|
|
26
|
+
const { files, diagnostics } = moduleOrder("purebarrel-spare-cli.ts", "purebarrel");
|
|
27
|
+
expect(files.some((file) => file.endsWith("/purebarrel/dist/esm/spare.js"))).toBe(true);
|
|
28
|
+
expect(diagnostics).toContain("SC1014");
|
|
29
|
+
});
|
|
30
|
+
test("a package without sideEffects metadata retains unused module initialization", () => {
|
|
31
|
+
const { files, diagnostics } = moduleOrder("statefulbarrel-cli.ts", "statefulbarrel");
|
|
32
|
+
expect(diagnostics).toEqual([]);
|
|
33
|
+
expect(files.some((file) => file.endsWith("/statefulbarrel/spare.js"))).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
test("an empty named import still requests module initialization", () => {
|
|
36
|
+
const { files, diagnostics } = moduleOrder("statefulbarrel-empty-cli.ts", "statefulbarrel");
|
|
37
|
+
expect(diagnostics).toEqual([]);
|
|
38
|
+
expect(files.some((file) => file.endsWith("/statefulbarrel/index.js"))).toBe(true);
|
|
39
|
+
expect(files.some((file) => file.endsWith("/statefulbarrel/spare.js"))).toBe(true);
|
|
40
|
+
});
|
|
41
|
+
test("a dependency cycle inherits an impure sibling before pruning a namespace re-export", () => {
|
|
42
|
+
const { files, diagnostics } = moduleOrder("cycle-cli.ts", ["cycle-a", "cycle-b", "cycle-impure"]);
|
|
43
|
+
expect(diagnostics).toEqual([]);
|
|
44
|
+
expect(files.some((file) => file.endsWith("/cycle-b/spare.js"))).toBe(true);
|
|
45
|
+
expect(files.some((file) => file.endsWith("/cycle-impure/index.js"))).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=npm-static-prune.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-static-prune.test.js","sourceRoot":"","sources":["../../src/frontend/npm-static-prune.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
* slate. */
|
|
60
60
|
import { dirname } from "node:path";
|
|
61
61
|
import { rewriteBundlerCjsExports } from "./npm-static-rewrite.js";
|
|
62
|
-
import { applyNpmStaticDeclarationOverloads, applyNpmStaticDeclarationProperties } from "./npm-static-declarations.js";
|
|
62
|
+
import { applyNpmStaticDeclarationOverloads, applyNpmStaticDeclarationProperties, applyNpmStaticFindReturnWidening } from "./npm-static-declarations.js";
|
|
63
63
|
import { npmPackageNameOf, registerWorkspacePackage, workspacePackageOfPath } from "./workspace-registry.js";
|
|
64
64
|
import { trackedExists, trackedReadFile, trackedRealpath } from "./input-tracker.js";
|
|
65
65
|
let activePackages = new Set();
|
|
@@ -378,14 +378,15 @@ export function npmStaticFsShadow() {
|
|
|
378
378
|
try {
|
|
379
379
|
const source = trackedReadFile(path);
|
|
380
380
|
if (source !== null) {
|
|
381
|
-
const
|
|
382
|
-
const
|
|
383
|
-
const
|
|
381
|
+
const findWidened = applyNpmStaticFindReturnWidening(path, source);
|
|
382
|
+
const propertyProjected = applyNpmStaticDeclarationProperties(path, findWidened?.text ?? source, declarationProperties.get(path.split("\\").join("/")) ?? new Map());
|
|
383
|
+
const projected = applyNpmStaticDeclarationOverloads(path, propertyProjected?.text ?? findWidened?.text ?? source, declarationOverloads.get(path.split("\\").join("/")) ?? new Map());
|
|
384
|
+
const answer = rewriteBundlerCjsExports(projected?.text ?? propertyProjected?.text ?? findWidened?.text ?? source, path);
|
|
384
385
|
if (answer !== null && typeof answer === "object") {
|
|
385
386
|
reportNpmStaticOffender(target.pkg, answer.degrade);
|
|
386
387
|
}
|
|
387
388
|
else {
|
|
388
|
-
rewritten = answer ?? projected?.text ?? propertyProjected?.text ?? null;
|
|
389
|
+
rewritten = answer ?? projected?.text ?? propertyProjected?.text ?? findWidened?.text ?? null;
|
|
389
390
|
}
|
|
390
391
|
}
|
|
391
392
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-static.js","sourceRoot":"","sources":["../../src/frontend/npm-static.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"npm-static.js","sourceRoot":"","sources":["../../src/frontend/npm-static.ts"],"names":[],"mappings":"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"}
|
package/dist/frontend/npm.d.ts
CHANGED
|
@@ -45,11 +45,18 @@ export type DynamicImportResolution =
|
|
|
45
45
|
kind: "unsupported-builtin";
|
|
46
46
|
builtin: string;
|
|
47
47
|
}
|
|
48
|
-
/** The specifier resolves into the compiled program's own TypeScript
|
|
49
|
-
*
|
|
48
|
+
/** The specifier resolves into the compiled program's own TypeScript.
|
|
49
|
+
* Static builds expose its nominal live namespace; dynamic builds
|
|
50
|
+
* marshal a snapshot namespace into the island. */
|
|
50
51
|
| {
|
|
51
52
|
kind: "program-module";
|
|
52
53
|
}
|
|
54
|
+
/** A supported Node builtin imported by a static build. Its namespace
|
|
55
|
+
* token routes member reads through the existing builtin tables. */
|
|
56
|
+
| {
|
|
57
|
+
kind: "static-builtin";
|
|
58
|
+
module: string;
|
|
59
|
+
}
|
|
53
60
|
/** No resolution — a build diagnostic, like static imports. */
|
|
54
61
|
| {
|
|
55
62
|
kind: "unresolved";
|
|
@@ -277,7 +284,7 @@ export declare class NpmGraphBuilder {
|
|
|
277
284
|
* see, because tsc compiles those — resolve against the importing FILE
|
|
278
285
|
* with Node's file/extension/directory rules and embed the reached JS
|
|
279
286
|
* graph. A relative target that is TypeScript is the program's own
|
|
280
|
-
* module (
|
|
287
|
+
* module (compiled natively and exposed through the import lowering), and one
|
|
281
288
|
* with an extension no loader executes (.wasm, .node, ...) embeds a stub
|
|
282
289
|
* whose EVALUATION throws Node's exact ERR_UNKNOWN_FILE_EXTENSION
|
|
283
290
|
* TypeError — the build succeeds and the import() rejects at runtime,
|
|
@@ -354,6 +361,11 @@ export declare class NpmGraphBuilder {
|
|
|
354
361
|
* error, like Node's ERR_PACKAGE_PATH_NOT_EXPORTED), else the "module"/
|
|
355
362
|
* "main" fallbacks. Returns the realpath'd entry key. */
|
|
356
363
|
private resolvePackage;
|
|
364
|
+
/** Resolves a package-internal "#" specifier from the nearest package
|
|
365
|
+
* scope. Relative targets stay in that package; bare package targets
|
|
366
|
+
* re-enter the same runtime resolver so edge-kind conditions and package
|
|
367
|
+
* self-resolution remain consistent. */
|
|
368
|
+
private resolvePackageImport;
|
|
357
369
|
/** Modules reached ONLY through lazy edges so far. Node has not linked
|
|
358
370
|
* these at the root: the whole subgraph behind a require()/import()
|
|
359
371
|
* boundary links AT THE CALL, so every blocked edge inside it — static
|
package/dist/frontend/npm.js
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
* probed from the importing FILE upward to the filesystem root, symlinks
|
|
8
8
|
* are resolved with realpath (pnpm/bun virtual stores are symlink farms —
|
|
9
9
|
* a package's dependencies live next to its REAL location, not its link),
|
|
10
|
-
* package.json "exports" maps are honored
|
|
11
|
-
* subpath patterns with '*'), with main/module
|
|
12
|
-
* directory-index resolution for the rest. The internal module graph
|
|
10
|
+
* package.json "exports" and package-scoped "imports" maps are honored
|
|
11
|
+
* (import/require conditions, subpath patterns with '*'), with main/module
|
|
12
|
+
* fallbacks and extension/directory-index resolution for the rest. The internal module graph
|
|
13
13
|
* (the package's own relative imports/requires plus its dependencies')
|
|
14
14
|
* is scanned with a real TypeScript parse collecting every module edge —
|
|
15
15
|
* import/export declarations (including `export * as ns from`, which
|
|
@@ -90,7 +90,7 @@ import ts from "typescript5";
|
|
|
90
90
|
import { packageNameOfSpecifier as packageNameOf } from "./workspace-registry.js";
|
|
91
91
|
import { cjsLexedExportsOf } from "./cjs-lexer.js";
|
|
92
92
|
import { trackedDirectoryExists, trackedFileExists, trackedReadFile, trackedRealpath } from "./input-tracker.js";
|
|
93
|
-
import { resolveExports } from "./resolve.js";
|
|
93
|
+
import { resolveExports, resolvePackageImports } from "./resolve.js";
|
|
94
94
|
const NODE_IMPORT_CONDITIONS = new Set(["import", "node", "default"]);
|
|
95
95
|
const NODE_REQUIRE_CONDITIONS = new Set(["require", "node", "default"]);
|
|
96
96
|
function nodeExportConditions(mode) {
|
|
@@ -403,11 +403,9 @@ const SHIMMED_BUILTINS = new Set([
|
|
|
403
403
|
// a crash reporter) requires it at load on every path while
|
|
404
404
|
// only driving it on Node < 14.
|
|
405
405
|
"domain",
|
|
406
|
-
//
|
|
407
|
-
//
|
|
408
|
-
|
|
409
|
-
// a PAC proxy resolves.
|
|
410
|
-
"dns",
|
|
406
|
+
// DNS imports load before any lookup. The callback and promise APIs
|
|
407
|
+
// fence network queries through their own error channels at the call.
|
|
408
|
+
"dns", "dns/promises",
|
|
411
409
|
// The main-thread worker_threads surface (real in-process MessageChannel
|
|
412
410
|
// ports, Worker fences at construction) and perf_hooks' performance —
|
|
413
411
|
// undici requires both UNGUARDED at load.
|
|
@@ -649,6 +647,7 @@ export function probeNodeImportRefusal(fromFile, specifier, host = realHost) {
|
|
|
649
647
|
* try/require pattern depends on exactly that. */
|
|
650
648
|
export function probeNodeRequireRefusal(fromFile, specifier, host = realHost) {
|
|
651
649
|
if (specifier.startsWith("./") || specifier.startsWith("../") ||
|
|
650
|
+
specifier === "." || specifier === ".." ||
|
|
652
651
|
specifier.startsWith("/") || specifier.startsWith("#") ||
|
|
653
652
|
specifier.startsWith("node:")) {
|
|
654
653
|
return null;
|
|
@@ -763,7 +762,7 @@ export class NpmGraphBuilder {
|
|
|
763
762
|
* see, because tsc compiles those — resolve against the importing FILE
|
|
764
763
|
* with Node's file/extension/directory rules and embed the reached JS
|
|
765
764
|
* graph. A relative target that is TypeScript is the program's own
|
|
766
|
-
* module (
|
|
765
|
+
* module (compiled natively and exposed through the import lowering), and one
|
|
767
766
|
* with an extension no loader executes (.wasm, .node, ...) embeds a stub
|
|
768
767
|
* whose EVALUATION throws Node's exact ERR_UNKNOWN_FILE_EXTENSION
|
|
769
768
|
* TypeError — the build succeeds and the import() rejects at runtime,
|
|
@@ -1121,6 +1120,9 @@ export class NpmGraphBuilder {
|
|
|
1121
1120
|
* error, like Node's ERR_PACKAGE_PATH_NOT_EXPORTED), else the "module"/
|
|
1122
1121
|
* "main" fallbacks. Returns the realpath'd entry key. */
|
|
1123
1122
|
resolvePackage(fromDir, specifier, mode, ctx) {
|
|
1123
|
+
if (specifier.startsWith("#")) {
|
|
1124
|
+
return this.resolvePackageImport(fromDir, specifier, mode, ctx);
|
|
1125
|
+
}
|
|
1124
1126
|
const name = packageNameOf(specifier);
|
|
1125
1127
|
const parts = specifier.split("/");
|
|
1126
1128
|
const subparts = specifier.startsWith("@") ? parts.slice(2) : parts.slice(1);
|
|
@@ -1220,6 +1222,69 @@ export class NpmGraphBuilder {
|
|
|
1220
1222
|
dir = parent;
|
|
1221
1223
|
}
|
|
1222
1224
|
}
|
|
1225
|
+
/** Resolves a package-internal "#" specifier from the nearest package
|
|
1226
|
+
* scope. Relative targets stay in that package; bare package targets
|
|
1227
|
+
* re-enter the same runtime resolver so edge-kind conditions and package
|
|
1228
|
+
* self-resolution remain consistent. */
|
|
1229
|
+
resolvePackageImport(fromDir, specifier, mode, ctx) {
|
|
1230
|
+
let pkgDir = null;
|
|
1231
|
+
let pkg = null;
|
|
1232
|
+
for (let dir = fromDir;;) {
|
|
1233
|
+
const candidate = this.pkgJsonOf(dir);
|
|
1234
|
+
if (candidate !== null) {
|
|
1235
|
+
pkgDir = dir;
|
|
1236
|
+
pkg = candidate;
|
|
1237
|
+
break;
|
|
1238
|
+
}
|
|
1239
|
+
const parent = dirname(dir);
|
|
1240
|
+
if (parent === dir)
|
|
1241
|
+
break;
|
|
1242
|
+
dir = parent;
|
|
1243
|
+
}
|
|
1244
|
+
const chain = NpmGraphBuilder.chainOf(ctx.chain);
|
|
1245
|
+
if (pkgDir === null || pkg === null) {
|
|
1246
|
+
this.errors.push({
|
|
1247
|
+
message: `package import '${specifier}' has no enclosing package.json` +
|
|
1248
|
+
` (imported from ${ctx.importer}${chain === "" ? "" : `; dependency chain: ${chain}`})`,
|
|
1249
|
+
});
|
|
1250
|
+
return null;
|
|
1251
|
+
}
|
|
1252
|
+
if (specifier === "#") {
|
|
1253
|
+
this.errors.push({
|
|
1254
|
+
message: `package import '#' is not a valid internal specifier` +
|
|
1255
|
+
` (imported from ${ctx.importer}${chain === "" ? "" : `; dependency chain: ${chain}`})`,
|
|
1256
|
+
});
|
|
1257
|
+
return null;
|
|
1258
|
+
}
|
|
1259
|
+
const target = resolvePackageImports(pkg.imports, specifier, nodeExportConditions(mode));
|
|
1260
|
+
if (target === null) {
|
|
1261
|
+
this.errors.push({
|
|
1262
|
+
message: `package import '${specifier}' is not defined by "imports" in ${join(pkgDir, "package.json")}` +
|
|
1263
|
+
` (imported from ${ctx.importer}${chain === "" ? "" : `; dependency chain: ${chain}`})`,
|
|
1264
|
+
});
|
|
1265
|
+
return null;
|
|
1266
|
+
}
|
|
1267
|
+
if (target.startsWith("./")) {
|
|
1268
|
+
const resolved = this.resolveFile(join(pkgDir, target));
|
|
1269
|
+
if (resolved === null) {
|
|
1270
|
+
this.errors.push({
|
|
1271
|
+
message: `package import '${specifier}' resolves to '${target}', which does not exist` +
|
|
1272
|
+
` (imported from ${ctx.importer}${chain === "" ? "" : `; dependency chain: ${chain}`})`,
|
|
1273
|
+
});
|
|
1274
|
+
return null;
|
|
1275
|
+
}
|
|
1276
|
+
return this.host.realpath(resolved);
|
|
1277
|
+
}
|
|
1278
|
+
if (target.startsWith("#") || target.startsWith("../") || target.startsWith("/") ||
|
|
1279
|
+
target === "." || target === "..") {
|
|
1280
|
+
this.errors.push({
|
|
1281
|
+
message: `package import '${specifier}' has invalid target '${target}' in ${join(pkgDir, "package.json")}` +
|
|
1282
|
+
` (imported from ${ctx.importer}${chain === "" ? "" : `; dependency chain: ${chain}`})`,
|
|
1283
|
+
});
|
|
1284
|
+
return null;
|
|
1285
|
+
}
|
|
1286
|
+
return this.resolvePackage(pkgDir, target, mode, ctx);
|
|
1287
|
+
}
|
|
1223
1288
|
/* ── the walk ─────────────────────────────────────────────────── */
|
|
1224
1289
|
/** Modules reached ONLY through lazy edges so far. Node has not linked
|
|
1225
1290
|
* these at the root: the whole subgraph behind a require()/import()
|
|
@@ -1344,7 +1409,9 @@ export class NpmGraphBuilder {
|
|
|
1344
1409
|
for (const use of this.specifiersOf(key, source)?.uses ?? []) {
|
|
1345
1410
|
const spec = use.specifier;
|
|
1346
1411
|
const eager = !lazy && use.static;
|
|
1347
|
-
|
|
1412
|
+
// CommonJS treats bare "." and ".." as directory-relative requires.
|
|
1413
|
+
const requireDirectory = (spec === "." || spec === "..") && use.require && !use.static && !use.dynamicImport;
|
|
1414
|
+
if (spec.startsWith("./") || spec.startsWith("../") || requireDirectory) {
|
|
1348
1415
|
if (use.importMetaResolve && !use.static && !use.dynamicImport && !use.require) {
|
|
1349
1416
|
continue;
|
|
1350
1417
|
}
|
|
@@ -1425,7 +1492,13 @@ export class NpmGraphBuilder {
|
|
|
1425
1492
|
// kind-tagged edge (the island's module loader asks with the import
|
|
1426
1493
|
// kind, its require shim with the require kind).
|
|
1427
1494
|
const depName = packageNameOf(spec);
|
|
1428
|
-
const nextChain = depName === pkgName ? chain : [...chain, depName];
|
|
1495
|
+
const nextChain = depName === pkgName || spec.startsWith("#") ? chain : [...chain, depName];
|
|
1496
|
+
const targetChain = (to) => {
|
|
1497
|
+
if (!spec.startsWith("#"))
|
|
1498
|
+
return nextChain;
|
|
1499
|
+
const targetPkg = packageNameOfPath(to);
|
|
1500
|
+
return targetPkg === null || targetPkg === pkgName ? chain : [...chain, targetPkg];
|
|
1501
|
+
};
|
|
1429
1502
|
if (use.require) {
|
|
1430
1503
|
// require edges attribute to the module whose scope DEFINES the
|
|
1431
1504
|
// require function being called: a direct require() is this file's
|
|
@@ -1459,7 +1532,7 @@ export class NpmGraphBuilder {
|
|
|
1459
1532
|
this.noteLazyTrap(spec, { require: true, dynamicImport: false, static: false }, pkgName, lazy, true);
|
|
1460
1533
|
}
|
|
1461
1534
|
pushEdge(from, spec, to, "require");
|
|
1462
|
-
this.walk(to,
|
|
1535
|
+
this.walk(to, targetChain(to), true);
|
|
1463
1536
|
}
|
|
1464
1537
|
}
|
|
1465
1538
|
if (use.static || use.dynamicImport || use.importMetaResolve) {
|
|
@@ -1485,7 +1558,7 @@ export class NpmGraphBuilder {
|
|
|
1485
1558
|
}
|
|
1486
1559
|
pushEdge(key, spec, to, "import");
|
|
1487
1560
|
if (!use.importMetaResolve || use.static || use.dynamicImport) {
|
|
1488
|
-
this.walk(to,
|
|
1561
|
+
this.walk(to, targetChain(to), lazy || !use.static);
|
|
1489
1562
|
}
|
|
1490
1563
|
}
|
|
1491
1564
|
}
|