@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.
Files changed (217) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +275 -62
  2. package/dist/backend/c/async.d.ts +25 -0
  3. package/dist/backend/c/async.js +167 -0
  4. package/dist/backend/c/async.js.map +1 -1
  5. package/dist/backend/c/c-emitter.d.ts +15 -1
  6. package/dist/backend/c/c-emitter.js +36 -11
  7. package/dist/backend/c/c-emitter.js.map +1 -1
  8. package/dist/backend/c/exprs.d.ts +2 -2
  9. package/dist/backend/c/exprs.js +556 -71
  10. package/dist/backend/c/exprs.js.map +1 -1
  11. package/dist/backend/c/stmts.js +5 -3
  12. package/dist/backend/c/stmts.js.map +1 -1
  13. package/dist/backend/c/types.d.ts +2 -3
  14. package/dist/backend/c/types.js +10 -1
  15. package/dist/backend/c/types.js.map +1 -1
  16. package/dist/backend/c/walkers.js +1 -1
  17. package/dist/backend/c/walkers.js.map +1 -1
  18. package/dist/backend/link-plan.d.ts +3 -1
  19. package/dist/backend/link-plan.js +3 -1
  20. package/dist/backend/link-plan.js.map +1 -1
  21. package/dist/backend/llvm/dyn.js +1 -1
  22. package/dist/backend/llvm/dyn.js.map +1 -1
  23. package/dist/backend/llvm/emitter.js +42 -12
  24. package/dist/backend/llvm/emitter.js.map +1 -1
  25. package/dist/backend/llvm/expr-bytes.d.ts +1 -2
  26. package/dist/backend/llvm/expr-bytes.js +28 -23
  27. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  28. package/dist/backend/llvm/expr-callbacks.d.ts +9 -0
  29. package/dist/backend/llvm/expr-callbacks.js +125 -0
  30. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  31. package/dist/backend/llvm/expr-containers.d.ts +1 -0
  32. package/dist/backend/llvm/expr-containers.js +32 -4
  33. package/dist/backend/llvm/expr-containers.js.map +1 -1
  34. package/dist/backend/llvm/expr-context.d.ts +19 -3
  35. package/dist/backend/llvm/expr-dispatch.js +1 -0
  36. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  37. package/dist/backend/llvm/expr-primitives.d.ts +1 -1
  38. package/dist/backend/llvm/expr-primitives.js +49 -13
  39. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  40. package/dist/backend/llvm/expr-primitives.test.d.ts +1 -0
  41. package/dist/backend/llvm/expr-primitives.test.js +38 -0
  42. package/dist/backend/llvm/expr-primitives.test.js.map +1 -0
  43. package/dist/backend/llvm/expr-stream-callbacks.d.ts +3 -0
  44. package/dist/backend/llvm/expr-stream-callbacks.js +69 -0
  45. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  46. package/dist/backend/llvm/lib-filesystem.js +80 -10
  47. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  48. package/dist/backend/llvm/lib-network.js +69 -10
  49. package/dist/backend/llvm/lib-network.js.map +1 -1
  50. package/dist/backend/llvm/lib-process.js +156 -6
  51. package/dist/backend/llvm/lib-process.js.map +1 -1
  52. package/dist/backend/llvm/lib-shared.js +100 -0
  53. package/dist/backend/llvm/lib-shared.js.map +1 -1
  54. package/dist/backend/llvm/lib-stream.js +23 -0
  55. package/dist/backend/llvm/lib-stream.js.map +1 -1
  56. package/dist/backend/native-toolchain.d.ts +5 -0
  57. package/dist/backend/native-toolchain.js +4 -1
  58. package/dist/backend/native-toolchain.js.map +1 -1
  59. package/dist/backend/runtime-pack.test.js +28 -10
  60. package/dist/backend/runtime-pack.test.js.map +1 -1
  61. package/dist/backend/targets.d.ts +7 -0
  62. package/dist/backend/targets.js +26 -0
  63. package/dist/backend/targets.js.map +1 -1
  64. package/dist/backend/targets.test.js +8 -1
  65. package/dist/backend/targets.test.js.map +1 -1
  66. package/dist/coverage/surface-manifest.js +14 -4
  67. package/dist/coverage/surface-manifest.js.map +1 -1
  68. package/dist/diagnostics/diagnostic.js +1 -1
  69. package/dist/diagnostics/diagnostic.js.map +1 -1
  70. package/dist/executable/executable-cache.d.ts +4 -0
  71. package/dist/executable/executable-cache.js +6 -1
  72. package/dist/executable/executable-cache.js.map +1 -1
  73. package/dist/executable/executable-cache.test.js +3 -3
  74. package/dist/executable/executable-cache.test.js.map +1 -1
  75. package/dist/frontend/fork-target.d.ts +17 -0
  76. package/dist/frontend/fork-target.js +256 -0
  77. package/dist/frontend/fork-target.js.map +1 -0
  78. package/dist/frontend/lowering/abstract-equality.d.ts +6 -0
  79. package/dist/frontend/lowering/abstract-equality.js +250 -0
  80. package/dist/frontend/lowering/abstract-equality.js.map +1 -0
  81. package/dist/frontend/lowering/containers/bytes.d.ts +1 -1
  82. package/dist/frontend/lowering/containers/bytes.js +6 -5
  83. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  84. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +7 -6
  85. package/dist/frontend/lowering/containers/string-and-regexp.js +237 -28
  86. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  87. package/dist/frontend/lowering/expressions/object-literals.js +8 -0
  88. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  89. package/dist/frontend/lowering/lower-assert.js +71 -2
  90. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  91. package/dist/frontend/lowering/lower-builtins.d.ts +54 -28
  92. package/dist/frontend/lowering/lower-builtins.js +957 -116
  93. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  94. package/dist/frontend/lowering/lower-calls.d.ts +32 -23
  95. package/dist/frontend/lowering/lower-calls.js +835 -206
  96. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  97. package/dist/frontend/lowering/lower-classes.js +41 -10
  98. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  99. package/dist/frontend/lowering/lower-containers.d.ts +7 -9
  100. package/dist/frontend/lowering/lower-containers.js +293 -51
  101. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  102. package/dist/frontend/lowering/lower-event-emitter.js +212 -21
  103. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  104. package/dist/frontend/lowering/lower-exprs.d.ts +12 -0
  105. package/dist/frontend/lowering/lower-exprs.js +263 -93
  106. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  107. package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
  108. package/dist/frontend/lowering/lower-inspect.js +1 -1
  109. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  110. package/dist/frontend/lowering/lower-island.d.ts +6 -3
  111. package/dist/frontend/lowering/lower-island.js +182 -12
  112. package/dist/frontend/lowering/lower-island.js.map +1 -1
  113. package/dist/frontend/lowering/lower-modules.d.ts +6 -0
  114. package/dist/frontend/lowering/lower-modules.js +184 -38
  115. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  116. package/dist/frontend/lowering/lower-namespaces.js +7 -0
  117. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  118. package/dist/frontend/lowering/lower-server.d.ts +3 -5
  119. package/dist/frontend/lowering/lower-server.js +413 -54
  120. package/dist/frontend/lowering/lower-server.js.map +1 -1
  121. package/dist/frontend/lowering/lower-stmts.js +122 -19
  122. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  123. package/dist/frontend/lowering/lower-stream.d.ts +3 -0
  124. package/dist/frontend/lowering/lower-stream.js +7 -0
  125. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  126. package/dist/frontend/lowering/lowerer.d.ts +86 -9
  127. package/dist/frontend/lowering/lowerer.js +449 -74
  128. package/dist/frontend/lowering/lowerer.js.map +1 -1
  129. package/dist/frontend/lowering/optional-arguments.d.ts +9 -1
  130. package/dist/frontend/lowering/optional-arguments.js +67 -1
  131. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  132. package/dist/frontend/lowering/pairs-snapshot.d.ts +3 -1
  133. package/dist/frontend/lowering/pairs-snapshot.js +12 -4
  134. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  135. package/dist/frontend/lowering/surfaces.d.ts +34 -14
  136. package/dist/frontend/lowering/surfaces.js +177 -104
  137. package/dist/frontend/lowering/surfaces.js.map +1 -1
  138. package/dist/frontend/npm-static-declarations.d.ts +4 -0
  139. package/dist/frontend/npm-static-declarations.js +56 -0
  140. package/dist/frontend/npm-static-declarations.js.map +1 -1
  141. package/dist/frontend/npm-static-declarations.test.js +23 -2
  142. package/dist/frontend/npm-static-declarations.test.js.map +1 -1
  143. package/dist/frontend/npm-static-prune.d.ts +6 -0
  144. package/dist/frontend/npm-static-prune.js +203 -0
  145. package/dist/frontend/npm-static-prune.js.map +1 -0
  146. package/dist/frontend/npm-static-prune.test.d.ts +1 -0
  147. package/dist/frontend/npm-static-prune.test.js +48 -0
  148. package/dist/frontend/npm-static-prune.test.js.map +1 -0
  149. package/dist/frontend/npm-static.js +6 -5
  150. package/dist/frontend/npm-static.js.map +1 -1
  151. package/dist/frontend/npm.d.ts +15 -3
  152. package/dist/frontend/npm.js +87 -14
  153. package/dist/frontend/npm.js.map +1 -1
  154. package/dist/frontend/npm.test.js +76 -9
  155. package/dist/frontend/npm.test.js.map +1 -1
  156. package/dist/frontend/program.js +107 -14
  157. package/dist/frontend/program.js.map +1 -1
  158. package/dist/frontend/provenance.js +8 -3
  159. package/dist/frontend/provenance.js.map +1 -1
  160. package/dist/frontend/resolve.d.ts +6 -0
  161. package/dist/frontend/resolve.js +7 -4
  162. package/dist/frontend/resolve.js.map +1 -1
  163. package/dist/frontend/type-mapper.d.ts +5 -0
  164. package/dist/frontend/type-mapper.js +80 -29
  165. package/dist/frontend/type-mapper.js.map +1 -1
  166. package/dist/index.d.ts +8 -3
  167. package/dist/index.js +34 -41
  168. package/dist/index.js.map +1 -1
  169. package/dist/ir/analysis.d.ts +5 -3
  170. package/dist/ir/analysis.js +25 -11
  171. package/dist/ir/analysis.js.map +1 -1
  172. package/dist/ir/analysis.test.js +50 -2
  173. package/dist/ir/analysis.test.js.map +1 -1
  174. package/dist/ir/constant-tables.d.ts +17 -0
  175. package/dist/ir/constant-tables.js +99 -0
  176. package/dist/ir/constant-tables.js.map +1 -0
  177. package/dist/ir/constant-tables.test.d.ts +1 -0
  178. package/dist/ir/constant-tables.test.js +78 -0
  179. package/dist/ir/constant-tables.test.js.map +1 -0
  180. package/dist/ir/integer-ranges.d.ts +13 -0
  181. package/dist/ir/integer-ranges.js +122 -0
  182. package/dist/ir/integer-ranges.js.map +1 -0
  183. package/dist/ir/integer-ranges.test.d.ts +1 -0
  184. package/dist/ir/integer-ranges.test.js +63 -0
  185. package/dist/ir/integer-ranges.test.js.map +1 -0
  186. package/dist/ir/ir.d.ts +130 -76
  187. package/dist/ir/ir.js +69 -4
  188. package/dist/ir/ir.js.map +1 -1
  189. package/dist/ir/ir.test.js +20 -1
  190. package/dist/ir/ir.test.js.map +1 -1
  191. package/dist/ir/scalar-records.d.ts +8 -0
  192. package/dist/ir/scalar-records.js +216 -0
  193. package/dist/ir/scalar-records.js.map +1 -0
  194. package/dist/ir/scalar-records.test.d.ts +1 -0
  195. package/dist/ir/scalar-records.test.js +142 -0
  196. package/dist/ir/scalar-records.test.js.map +1 -0
  197. package/dist/ir/serialize.d.ts +1 -1
  198. package/dist/ir/serialize.js +1 -1
  199. package/dist/ir/serialize.js.map +1 -1
  200. package/dist/ir/validate.js +256 -20
  201. package/dist/ir/validate.js.map +1 -1
  202. package/dist/ir/validate.test.d.ts +1 -0
  203. package/dist/ir/validate.test.js +31 -0
  204. package/dist/ir/validate.test.js.map +1 -0
  205. package/dist/library/cache-primitives.d.ts +1 -1
  206. package/dist/library/cache-primitives.js +3 -3
  207. package/dist/library/cache-primitives.js.map +1 -1
  208. package/dist/library/fence-eval.js +11 -4
  209. package/dist/library/fence-eval.js.map +1 -1
  210. package/dist/library/int-infer.test.js +4 -4
  211. package/dist/library/int-infer.test.js.map +1 -1
  212. package/dist/library/library-cache.js +0 -1
  213. package/dist/library/library-cache.js.map +1 -1
  214. package/dist/library/library-cache.test.js +8 -8
  215. package/dist/library/library-cache.test.js.map +1 -1
  216. package/package.json +17 -17
  217. 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":"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"}
@@ -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 propertyProjected = applyNpmStaticDeclarationProperties(path, source, declarationProperties.get(path.split("\\").join("/")) ?? new Map());
382
- const projected = applyNpmStaticDeclarationOverloads(path, propertyProjected?.text ?? source, declarationOverloads.get(path.split("\\").join("/")) ?? new Map());
383
- const answer = rewriteBundlerCjsExports(projected?.text ?? propertyProjected?.text ?? source, path);
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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"}
@@ -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
- * fenced at the site (static imports are the way in). */
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 (fenced at the site: static imports are the way in), and one
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
@@ -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 (import/require conditions,
11
- * subpath patterns with '*'), with main/module fallbacks and extension/
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
- // Loadable with Node's surface, answers fenced AT THE CALL (through the
407
- // callback/promise, dns's error channel): proxy-agent's pac-resolver
408
- // requires dns whenever proxy env vars exist and only calls lookup when
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 (fenced at the site: static imports are the way in), and one
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
- if (spec.startsWith("./") || spec.startsWith("../")) {
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, nextChain, true);
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, nextChain, lazy || !use.static);
1561
+ this.walk(to, targetChain(to), lazy || !use.static);
1489
1562
  }
1490
1563
  }
1491
1564
  }