@scriptc/compiler 0.1.2 → 0.1.4
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 +258 -64
- package/dist/backend/c/async.d.ts +30 -0
- package/dist/backend/c/async.js +224 -0
- package/dist/backend/c/async.js.map +1 -1
- package/dist/backend/c/c-emitter.d.ts +13 -0
- package/dist/backend/c/c-emitter.js +28 -9
- package/dist/backend/c/c-emitter.js.map +1 -1
- package/dist/backend/c/exprs.d.ts +8 -1
- package/dist/backend/c/exprs.js +445 -60
- package/dist/backend/c/exprs.js.map +1 -1
- package/dist/backend/c/shapes.js +15 -13
- package/dist/backend/c/shapes.js.map +1 -1
- package/dist/backend/c/types.d.ts +4 -0
- package/dist/backend/c/types.js +20 -1
- package/dist/backend/c/types.js.map +1 -1
- package/dist/backend/c/types.test.js +8 -1
- package/dist/backend/c/types.test.js.map +1 -1
- package/dist/backend/c/walkers.js +32 -11
- package/dist/backend/c/walkers.js.map +1 -1
- package/dist/backend/json-literal.d.ts +7 -0
- package/dist/backend/json-literal.js +17 -0
- package/dist/backend/json-literal.js.map +1 -0
- package/dist/backend/json-literal.test.d.ts +1 -0
- package/dist/backend/json-literal.test.js +17 -0
- package/dist/backend/json-literal.test.js.map +1 -0
- package/dist/backend/link-plan.d.ts +2 -1
- package/dist/backend/link-plan.js +6 -1
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/llvm/classes.js +8 -7
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +4 -0
- package/dist/backend/llvm/common.js +6 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/common.test.d.ts +1 -0
- package/dist/backend/llvm/common.test.js +9 -0
- package/dist/backend/llvm/common.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +4 -0
- package/dist/backend/llvm/dyn.js +24 -13
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.js +54 -12
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +1 -1
- package/dist/backend/llvm/expr-bytes.js +8 -8
- 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-context.d.ts +18 -2
- package/dist/backend/llvm/expr-dispatch.js +1 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +9 -0
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +38 -9
- 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-records.js +3 -3
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +2 -1
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +6 -0
- package/dist/backend/llvm/expr-stream-callbacks.js +122 -0
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +22 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +68 -10
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +18 -2
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +206 -11
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +82 -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/llvm/shapes.js +10 -8
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/walkers.js +7 -5
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/native-link-info.d.ts +2 -1
- package/dist/backend/native-link-info.js +4 -0
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +24 -1
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +11 -6
- package/dist/backend/native-toolchain.js +30 -13
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +36 -1
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +29 -10
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/targets.d.ts +9 -0
- package/dist/backend/targets.js +22 -0
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +13 -1
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/coverage/surface-manifest.js +9 -0
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.js +4 -4
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +3 -0
- package/dist/executable/executable-cache.js +4 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +1 -0
- 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 +0 -4
- package/dist/frontend/lowering/containers/bytes.js +112 -28
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +87 -12
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +72 -44
- package/dist/frontend/lowering/lower-builtins.js +1323 -165
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +37 -27
- package/dist/frontend/lowering/lower-calls.js +682 -132
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +39 -8
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.js +162 -8
- 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.js +238 -87
- 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 +8 -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 +165 -6
- 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 +192 -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 +1 -1
- package/dist/frontend/lowering/lower-server.js +130 -27
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +5 -4
- package/dist/frontend/lowering/lower-stmts.js +141 -21
- 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 +90 -13
- package/dist/frontend/lowering/lowerer.js +416 -76
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +31 -3
- package/dist/frontend/lowering/surfaces.js +173 -90
- 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 +83 -14
- package/dist/frontend/npm-static-declarations.js.map +1 -1
- package/dist/frontend/npm-static-declarations.test.js +33 -2
- package/dist/frontend/npm-static-declarations.test.js.map +1 -1
- 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 +80 -8
- 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 +110 -12
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.d.ts +28 -7
- package/dist/frontend/resolve.js +90 -26
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.js +21 -1
- package/dist/frontend/resolve.test.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +5 -0
- package/dist/frontend/type-mapper.js +115 -33
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +30 -3
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +1 -0
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/ir.d.ts +155 -66
- package/dist/ir/ir.js +143 -6
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +14 -1
- package/dist/ir/ir.test.js.map +1 -1
- 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 +242 -18
- package/dist/ir/validate.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.d.ts +1 -0
- package/dist/library/library-cache.js +1 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +18 -5
- package/dist/library/library-cache.test.js.map +1 -1
- package/package.json +17 -17
- package/surface-manifest.json +163 -54
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm.test.js","sourceRoot":"","sources":["../../src/frontend/npm.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC1E,MAAM,MAAM,GAAG,kBAAkB,CAC/B,8DAA8D;QAC5D,qEAAqE,EACvE,oBAAoB,CACrB,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC1B;YACE,SAAS,EAAE,YAAY;YACvB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,KAAK;YACnB,gBAAgB,EAAE,KAAK;YACvB,aAAa,EAAE,KAAK;YACpB,iBAAiB,EAAE,IAAI;SACxB;QACD;YACE,SAAS,EAAE,iBAAiB;YAC5B,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,KAAK;YACnB,gBAAgB,EAAE,KAAK;YACvB,aAAa,EAAE,KAAK;YACpB,iBAAiB,EAAE,IAAI;SACxB;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yEAAyE,EAAE,GAAG,EAAE;IACnF,MAAM,
|
|
1
|
+
{"version":3,"file":"npm.test.js","sourceRoot":"","sources":["../../src/frontend/npm.test.ts"],"names":[],"mappings":"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"}
|
package/dist/frontend/program.js
CHANGED
|
@@ -53,6 +53,7 @@ import { builtinDefaultImportModule, canonicalBuiltinModule, SUPPORTED_NODE_MODU
|
|
|
53
53
|
import { clearWorkspacePackages, isRelativeSpecifier, isWorkspacePackageName, npmPackageNameOf, registerWorkspacePackage, workspacePackageOfPath, } from "./workspace-registry.js";
|
|
54
54
|
import { ADOPTED_OPTIONS, isJsSourceFileName, JS_ANY_OPERATOR_CODES, JS_RELAXED_TSC_CODES, } from "./tsc-codes.js";
|
|
55
55
|
import { trackedFileExists, trackedReadFile, trackedRealpath } from "./input-tracker.js";
|
|
56
|
+
import { forkTargetPaths } from "./fork-target.js";
|
|
56
57
|
const BASE_OPTIONS = {
|
|
57
58
|
strict: true,
|
|
58
59
|
};
|
|
@@ -344,6 +345,44 @@ function externalTypeFileClosure7(program, externalTypes) {
|
|
|
344
345
|
}
|
|
345
346
|
return new Map([...ownersByFile].map(([file, owners]) => [file, [...owners]]));
|
|
346
347
|
}
|
|
348
|
+
/** Program roots hidden behind canonical createRequire bindings. tsgo
|
|
349
|
+
* discovers ordinary import/require edges itself, but a source binding
|
|
350
|
+
* returned by createRequire is intentionally just a function to the type
|
|
351
|
+
* checker. Rebuild the native program with each literal project target as
|
|
352
|
+
* an explicit root, to a fixpoint, so the same TS 7 AST/checker world owns
|
|
353
|
+
* their exports and transitive graph. */
|
|
354
|
+
function createRequireProgramRoots7(program) {
|
|
355
|
+
const known = new Set(program.getSourceFiles().map((sf) => tsgoPath(resolve(sf.fileName))));
|
|
356
|
+
const roots = new Set();
|
|
357
|
+
for (const sf of program.getSourceFiles()) {
|
|
358
|
+
if (sf.isDeclarationFile || sf.fileName.endsWith(".json"))
|
|
359
|
+
continue;
|
|
360
|
+
ts.walkPreorder(sf, (node) => {
|
|
361
|
+
if (!ts.isCallExpression(node) || node.questionDotToken !== undefined ||
|
|
362
|
+
node.arguments.length !== 1 || !ts.isStringLiteralLike(node.arguments[0]) ||
|
|
363
|
+
!ts.isIdentifier(node.expression) || !isCreateRequireBinding7(program, node.expression)) {
|
|
364
|
+
return undefined;
|
|
365
|
+
}
|
|
366
|
+
const spec = node.arguments[0].text;
|
|
367
|
+
if (canonicalBuiltinModule(spec) !== null)
|
|
368
|
+
return "skip";
|
|
369
|
+
let target = resolveProjectModule(sf.fileName, spec);
|
|
370
|
+
if (target === null && !spec.startsWith("#")) {
|
|
371
|
+
const npm = resolveNpmImport7(sf.fileName, spec);
|
|
372
|
+
if (npm !== null && isNpmStaticPackage(npm.packageName) && isJsSourceFileName(npm.typesFile)) {
|
|
373
|
+
target = npm.typesFile;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
if (target === null || target.endsWith(".json"))
|
|
377
|
+
return "skip";
|
|
378
|
+
const normalized = tsgoPath(resolve(target));
|
|
379
|
+
if (!known.has(normalized))
|
|
380
|
+
roots.add(normalized);
|
|
381
|
+
return "skip";
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
return [...roots].sort();
|
|
385
|
+
}
|
|
347
386
|
function loadProgram7(host, entryPath, externalTypes = new Map()) {
|
|
348
387
|
const config = adoptProjectConfig7(host, entryPath);
|
|
349
388
|
const configuredPaths = config.options["paths"];
|
|
@@ -379,7 +418,22 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
|
|
|
379
418
|
options = { ...options, paths };
|
|
380
419
|
}
|
|
381
420
|
const coreRoots = [entryPath, ambientDtsPath(), nodeTypes ?? fallbackDtsPath()];
|
|
382
|
-
const
|
|
421
|
+
const programRoots = [...coreRoots];
|
|
422
|
+
let program = ts.createProgram([...programRoots, overridesDtsPath()], options, host);
|
|
423
|
+
for (let pass = 0; pass < 32; pass++) {
|
|
424
|
+
const candidates = [
|
|
425
|
+
...createRequireProgramRoots7(program),
|
|
426
|
+
...forkTargetPaths(program, program.getSourceFiles()),
|
|
427
|
+
];
|
|
428
|
+
const extraRoots = candidates.filter((root, index) => !programRoots.includes(root) && candidates.indexOf(root) === index);
|
|
429
|
+
if (extraRoots.length === 0)
|
|
430
|
+
break;
|
|
431
|
+
program.dispose();
|
|
432
|
+
programRoots.push(...extraRoots);
|
|
433
|
+
program = ts.createProgram([...programRoots, overridesDtsPath()], options, host);
|
|
434
|
+
if (pass === 31)
|
|
435
|
+
throw new Error("static program-root discovery did not converge");
|
|
436
|
+
}
|
|
383
437
|
const entry = program.getSourceFile(entryPath);
|
|
384
438
|
if (!entry)
|
|
385
439
|
throw new Error(`could not load ${entryPath}`);
|
|
@@ -392,7 +446,7 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
|
|
|
392
446
|
configDiags: config.diags,
|
|
393
447
|
externalTypes,
|
|
394
448
|
externalTypeSpecifiersByFile,
|
|
395
|
-
projectWorld: () => (projectWorld ??= ts.createProgram(
|
|
449
|
+
projectWorld: () => (projectWorld ??= ts.createProgram(programRoots, options, host)),
|
|
396
450
|
disposeAll: () => {
|
|
397
451
|
projectWorld?.dispose();
|
|
398
452
|
program.dispose();
|
|
@@ -562,13 +616,18 @@ function suppressedJsStrictness7(d) {
|
|
|
562
616
|
* share — anything require-shaped it does NOT match (computed specifiers,
|
|
563
617
|
* extra arguments) is not a module edge and fences at its use site. */
|
|
564
618
|
function requireSpecOf7(node) {
|
|
565
|
-
|
|
619
|
+
let value = node;
|
|
620
|
+
while (ts.isParenthesizedExpression(value) || ts.isAsExpression(value) ||
|
|
621
|
+
ts.isTypeAssertion(value) || ts.isNonNullExpression(value)) {
|
|
622
|
+
value = value.expression;
|
|
623
|
+
}
|
|
624
|
+
if (!ts.isCallExpression(value))
|
|
566
625
|
return null;
|
|
567
|
-
if (!ts.isIdentifier(
|
|
626
|
+
if (!ts.isIdentifier(value.expression) || value.expression.text !== "require")
|
|
568
627
|
return null;
|
|
569
|
-
if (
|
|
628
|
+
if (value.arguments.length !== 1)
|
|
570
629
|
return null;
|
|
571
|
-
const arg =
|
|
630
|
+
const arg = value.arguments[0];
|
|
572
631
|
return ts.isStringLiteral(arg) ? arg.text : null;
|
|
573
632
|
}
|
|
574
633
|
/** True for statements that are CommonJS require IMPORTS at a module's top
|
|
@@ -806,7 +865,8 @@ function isCreateRequireBinding7(program, callee) {
|
|
|
806
865
|
* module edges; other source bindings get a pointed fence before lowering
|
|
807
866
|
* can mistake them for module syntax. */
|
|
808
867
|
function requireCallBindingKind7(program, node) {
|
|
809
|
-
const
|
|
868
|
+
const raw = ts.isVariableDeclaration(node) ? node.initializer : node;
|
|
869
|
+
const call = raw && ts.isExpression(raw) ? stripRequireCasts7(raw) : raw;
|
|
810
870
|
if (!call || !ts.isCallExpression(call) || !ts.isIdentifier(call.expression))
|
|
811
871
|
return "ambient";
|
|
812
872
|
const checker = program.getTypeChecker();
|
|
@@ -1584,6 +1644,16 @@ function processModuleAliasRequire7(spec, decl) {
|
|
|
1584
1644
|
return false;
|
|
1585
1645
|
return decl === null || ts.isIdentifier(decl.name);
|
|
1586
1646
|
}
|
|
1647
|
+
/** `import process from 'node:process'`: the ESM spelling of the same
|
|
1648
|
+
* global-object alias as processModuleAliasRequire7. Keep this exemption
|
|
1649
|
+
* deliberately narrow: named and namespace imports need a represented
|
|
1650
|
+
* module namespace, while the default binding is exactly globalThis.process. */
|
|
1651
|
+
function processModuleAliasImport7(spec, stmt) {
|
|
1652
|
+
if (spec !== "process" && spec !== "node:process")
|
|
1653
|
+
return false;
|
|
1654
|
+
const clause = stmt.importClause;
|
|
1655
|
+
return clause !== undefined && clause.name !== undefined && clause.namedBindings === undefined;
|
|
1656
|
+
}
|
|
1587
1657
|
/** The whole TS7-lane lifecycle for one entry: spawn (or share) a tsgo
|
|
1588
1658
|
* host, build the lowering-world program, run the ported preflight, and
|
|
1589
1659
|
* dispose EVERYTHING before returning — the CLI process must exit promptly,
|
|
@@ -1962,7 +2032,8 @@ function preflight7(load) {
|
|
|
1962
2032
|
diags.push(externalHostModuleDiag7(fromSpec, stmt));
|
|
1963
2033
|
continue;
|
|
1964
2034
|
}
|
|
1965
|
-
|
|
2035
|
+
const projectReexport = resolveImport7(program, sf, fromSpec);
|
|
2036
|
+
if (!isRelativeSpecifier(fromSpec) && projectReexport === null) {
|
|
1966
2037
|
// NAMED re-exports from a SUPPORTED builtin pass (`export { ok }
|
|
1967
2038
|
// from "node:assert"` — a universal re-export facade facade): the
|
|
1968
2039
|
// statement binds nothing locally and evaluates nothing (builtins
|
|
@@ -1995,7 +2066,7 @@ function preflight7(load) {
|
|
|
1995
2066
|
diags.push(unsupportedDiag("SC1014", locOf7(stmt), "re-exports from packages or builtin modules"));
|
|
1996
2067
|
continue;
|
|
1997
2068
|
}
|
|
1998
|
-
const reDep =
|
|
2069
|
+
const reDep = projectReexport;
|
|
1999
2070
|
// `export * as ns from "./m"` re-exports the module NAMESPACE
|
|
2000
2071
|
// object under a name: importers' `x.ns.member` reads resolve
|
|
2001
2072
|
// statically through the same alias machinery as `import * as ns`
|
|
@@ -2114,6 +2185,11 @@ function preflight7(load) {
|
|
|
2114
2185
|
continue;
|
|
2115
2186
|
}
|
|
2116
2187
|
if (projDep === null) {
|
|
2188
|
+
// node:process's default export is the global process object. It
|
|
2189
|
+
// contributes no module-order edge; the imported binding lowers
|
|
2190
|
+
// through stdlibGlobalNameOf exactly like the bare global.
|
|
2191
|
+
if (processModuleAliasImport7(spec, stmt))
|
|
2192
|
+
continue;
|
|
2117
2193
|
const nodeBuiltin = spec.startsWith("node:") || nodeBuiltinNames.has(spec);
|
|
2118
2194
|
if (nodeBuiltin) {
|
|
2119
2195
|
diags.push(unsupportedDiag("SC1010", locOf7(stmt), unsupportedModuleFeatureOf(spec)));
|
|
@@ -2218,7 +2294,8 @@ function preflight7(load) {
|
|
|
2218
2294
|
depPositions.get(sf).push({ dep, pos: stmt.getStart(sf) });
|
|
2219
2295
|
}
|
|
2220
2296
|
}
|
|
2221
|
-
|
|
2297
|
+
{
|
|
2298
|
+
const jsRequireFile = isJsSourceFileName(sf.fileName);
|
|
2222
2299
|
const stmts = sf.statements;
|
|
2223
2300
|
let firstRunnable = -1;
|
|
2224
2301
|
stmts.forEach((s, i) => {
|
|
@@ -2229,8 +2306,14 @@ function preflight7(load) {
|
|
|
2229
2306
|
const stmt = stmts[k];
|
|
2230
2307
|
for (const req of requiresOf7(stmt)) {
|
|
2231
2308
|
const loc = { file: sf.fileName, start: req.node.getStart(sf), end: req.node.getEnd() };
|
|
2309
|
+
const bindingKind = requireCallBindingKind7(program, req.node);
|
|
2310
|
+
// TypeScript source files join this scan only through the
|
|
2311
|
+
// canonical createRequire bridge. Their ordinary require-shaped
|
|
2312
|
+
// calls retain the existing checker/lowering diagnostics; JS
|
|
2313
|
+
// files keep the full CommonJS scan.
|
|
2314
|
+
if (!jsRequireFile && bindingKind !== "createRequire")
|
|
2315
|
+
continue;
|
|
2232
2316
|
if (isNodeEsmFile7(sf)) {
|
|
2233
|
-
const bindingKind = requireCallBindingKind7(program, req.node);
|
|
2234
2317
|
if (bindingKind !== "createRequire") {
|
|
2235
2318
|
diags.push(unsupportedDiag("SC1013", loc, esmRequireFeature7(bindingKind)));
|
|
2236
2319
|
continue;
|
|
@@ -2265,6 +2348,13 @@ function preflight7(load) {
|
|
|
2265
2348
|
continue; // offender recorded — the fallback loop reloads
|
|
2266
2349
|
}
|
|
2267
2350
|
else {
|
|
2351
|
+
// createRequire's non-program targets belong to its own
|
|
2352
|
+
// lowering: installed packages select static-vs-island
|
|
2353
|
+
// there, and missing packages become catchable
|
|
2354
|
+
// MODULE_NOT_FOUND throws. Only resolved program targets are
|
|
2355
|
+
// module-order edges in this preflight walk.
|
|
2356
|
+
if (bindingKind === "createRequire")
|
|
2357
|
+
continue;
|
|
2268
2358
|
if (canonicalBuiltinModule(req.spec) === null &&
|
|
2269
2359
|
!processModuleAliasRequire7(req.spec, req.decl)) {
|
|
2270
2360
|
// A binding-less require of a package NOTHING resolves:
|
|
@@ -2281,6 +2371,8 @@ function preflight7(load) {
|
|
|
2281
2371
|
}
|
|
2282
2372
|
}
|
|
2283
2373
|
if (dep && dep.fileName.endsWith(".json")) {
|
|
2374
|
+
if (bindingKind === "createRequire")
|
|
2375
|
+
continue;
|
|
2284
2376
|
diags.push(unsupportedDiag("SC1012", loc, "require() of JSON modules"));
|
|
2285
2377
|
continue;
|
|
2286
2378
|
}
|
|
@@ -2300,8 +2392,10 @@ function preflight7(load) {
|
|
|
2300
2392
|
for (const call of nestedBareRequires) {
|
|
2301
2393
|
const spec = requireSpecOf7(call);
|
|
2302
2394
|
const loc = { file: sf.fileName, start: call.getStart(sf), end: call.getEnd() };
|
|
2395
|
+
const bindingKind = requireCallBindingKind7(program, call);
|
|
2396
|
+
if (!jsRequireFile && bindingKind !== "createRequire")
|
|
2397
|
+
continue;
|
|
2303
2398
|
if (isNodeEsmFile7(sf)) {
|
|
2304
|
-
const bindingKind = requireCallBindingKind7(program, call);
|
|
2305
2399
|
if (bindingKind !== "createRequire") {
|
|
2306
2400
|
diags.push(unsupportedDiag("SC1013", loc, esmRequireFeature7(bindingKind)));
|
|
2307
2401
|
continue;
|
|
@@ -2313,6 +2407,8 @@ function preflight7(load) {
|
|
|
2313
2407
|
const projectDep = resolveImport7(program, sf, spec);
|
|
2314
2408
|
if (projectDep !== null) {
|
|
2315
2409
|
if (projectDep.fileName.endsWith(".json")) {
|
|
2410
|
+
if (bindingKind === "createRequire")
|
|
2411
|
+
continue;
|
|
2316
2412
|
diags.push(unsupportedDiag("SC1012", loc, "require() of JSON modules"));
|
|
2317
2413
|
continue;
|
|
2318
2414
|
}
|
|
@@ -2329,6 +2425,8 @@ function preflight7(load) {
|
|
|
2329
2425
|
deps.push({ dep: nDep });
|
|
2330
2426
|
continue;
|
|
2331
2427
|
}
|
|
2428
|
+
if (bindingKind === "createRequire")
|
|
2429
|
+
continue;
|
|
2332
2430
|
if (canonicalBuiltinModule(spec) === null && !processModuleAliasRequire7(spec, null)) {
|
|
2333
2431
|
// Binding-less by construction — same require-site throw
|
|
2334
2432
|
// channel as the statement-level form above.
|