@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.
Files changed (206) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +258 -64
  2. package/dist/backend/c/async.d.ts +30 -0
  3. package/dist/backend/c/async.js +224 -0
  4. package/dist/backend/c/async.js.map +1 -1
  5. package/dist/backend/c/c-emitter.d.ts +13 -0
  6. package/dist/backend/c/c-emitter.js +28 -9
  7. package/dist/backend/c/c-emitter.js.map +1 -1
  8. package/dist/backend/c/exprs.d.ts +8 -1
  9. package/dist/backend/c/exprs.js +445 -60
  10. package/dist/backend/c/exprs.js.map +1 -1
  11. package/dist/backend/c/shapes.js +15 -13
  12. package/dist/backend/c/shapes.js.map +1 -1
  13. package/dist/backend/c/types.d.ts +4 -0
  14. package/dist/backend/c/types.js +20 -1
  15. package/dist/backend/c/types.js.map +1 -1
  16. package/dist/backend/c/types.test.js +8 -1
  17. package/dist/backend/c/types.test.js.map +1 -1
  18. package/dist/backend/c/walkers.js +32 -11
  19. package/dist/backend/c/walkers.js.map +1 -1
  20. package/dist/backend/json-literal.d.ts +7 -0
  21. package/dist/backend/json-literal.js +17 -0
  22. package/dist/backend/json-literal.js.map +1 -0
  23. package/dist/backend/json-literal.test.d.ts +1 -0
  24. package/dist/backend/json-literal.test.js +17 -0
  25. package/dist/backend/json-literal.test.js.map +1 -0
  26. package/dist/backend/link-plan.d.ts +2 -1
  27. package/dist/backend/link-plan.js +6 -1
  28. package/dist/backend/link-plan.js.map +1 -1
  29. package/dist/backend/llvm/classes.js +8 -7
  30. package/dist/backend/llvm/classes.js.map +1 -1
  31. package/dist/backend/llvm/common.d.ts +4 -0
  32. package/dist/backend/llvm/common.js +6 -0
  33. package/dist/backend/llvm/common.js.map +1 -1
  34. package/dist/backend/llvm/common.test.d.ts +1 -0
  35. package/dist/backend/llvm/common.test.js +9 -0
  36. package/dist/backend/llvm/common.test.js.map +1 -0
  37. package/dist/backend/llvm/dyn.d.ts +4 -0
  38. package/dist/backend/llvm/dyn.js +24 -13
  39. package/dist/backend/llvm/dyn.js.map +1 -1
  40. package/dist/backend/llvm/emitter.js +54 -12
  41. package/dist/backend/llvm/emitter.js.map +1 -1
  42. package/dist/backend/llvm/expr-bytes.d.ts +1 -1
  43. package/dist/backend/llvm/expr-bytes.js +8 -8
  44. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  45. package/dist/backend/llvm/expr-callbacks.d.ts +9 -0
  46. package/dist/backend/llvm/expr-callbacks.js +125 -0
  47. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  48. package/dist/backend/llvm/expr-context.d.ts +18 -2
  49. package/dist/backend/llvm/expr-dispatch.js +1 -0
  50. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  51. package/dist/backend/llvm/expr-dynamic.js +9 -0
  52. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  53. package/dist/backend/llvm/expr-primitives.d.ts +1 -1
  54. package/dist/backend/llvm/expr-primitives.js +38 -9
  55. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  56. package/dist/backend/llvm/expr-primitives.test.d.ts +1 -0
  57. package/dist/backend/llvm/expr-primitives.test.js +38 -0
  58. package/dist/backend/llvm/expr-primitives.test.js.map +1 -0
  59. package/dist/backend/llvm/expr-records.js +3 -3
  60. package/dist/backend/llvm/expr-records.js.map +1 -1
  61. package/dist/backend/llvm/expr-stream-bridges.js +2 -1
  62. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  63. package/dist/backend/llvm/expr-stream-callbacks.d.ts +6 -0
  64. package/dist/backend/llvm/expr-stream-callbacks.js +122 -0
  65. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  66. package/dist/backend/llvm/lib-dispatch.js +22 -0
  67. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  68. package/dist/backend/llvm/lib-filesystem.js +68 -10
  69. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  70. package/dist/backend/llvm/lib-network.js +18 -2
  71. package/dist/backend/llvm/lib-network.js.map +1 -1
  72. package/dist/backend/llvm/lib-process.js +206 -11
  73. package/dist/backend/llvm/lib-process.js.map +1 -1
  74. package/dist/backend/llvm/lib-shared.js +82 -0
  75. package/dist/backend/llvm/lib-shared.js.map +1 -1
  76. package/dist/backend/llvm/lib-stream.js +23 -0
  77. package/dist/backend/llvm/lib-stream.js.map +1 -1
  78. package/dist/backend/llvm/shapes.js +10 -8
  79. package/dist/backend/llvm/shapes.js.map +1 -1
  80. package/dist/backend/llvm/walkers.js +7 -5
  81. package/dist/backend/llvm/walkers.js.map +1 -1
  82. package/dist/backend/native-link-info.d.ts +2 -1
  83. package/dist/backend/native-link-info.js +4 -0
  84. package/dist/backend/native-link-info.js.map +1 -1
  85. package/dist/backend/native-link-info.test.js +24 -1
  86. package/dist/backend/native-link-info.test.js.map +1 -1
  87. package/dist/backend/native-toolchain.d.ts +11 -6
  88. package/dist/backend/native-toolchain.js +30 -13
  89. package/dist/backend/native-toolchain.js.map +1 -1
  90. package/dist/backend/native-toolchain.test.js +36 -1
  91. package/dist/backend/native-toolchain.test.js.map +1 -1
  92. package/dist/backend/runtime-pack-targets.test.js +1 -1
  93. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  94. package/dist/backend/runtime-pack.test.js +29 -10
  95. package/dist/backend/runtime-pack.test.js.map +1 -1
  96. package/dist/backend/targets.d.ts +9 -0
  97. package/dist/backend/targets.js +22 -0
  98. package/dist/backend/targets.js.map +1 -1
  99. package/dist/backend/targets.test.js +13 -1
  100. package/dist/backend/targets.test.js.map +1 -1
  101. package/dist/coverage/surface-manifest.js +9 -0
  102. package/dist/coverage/surface-manifest.js.map +1 -1
  103. package/dist/diagnostics/diagnostic.js +4 -4
  104. package/dist/diagnostics/diagnostic.js.map +1 -1
  105. package/dist/executable/executable-cache.d.ts +3 -0
  106. package/dist/executable/executable-cache.js +4 -0
  107. package/dist/executable/executable-cache.js.map +1 -1
  108. package/dist/executable/executable-cache.test.js +1 -0
  109. package/dist/executable/executable-cache.test.js.map +1 -1
  110. package/dist/frontend/fork-target.d.ts +17 -0
  111. package/dist/frontend/fork-target.js +256 -0
  112. package/dist/frontend/fork-target.js.map +1 -0
  113. package/dist/frontend/lowering/abstract-equality.d.ts +6 -0
  114. package/dist/frontend/lowering/abstract-equality.js +250 -0
  115. package/dist/frontend/lowering/abstract-equality.js.map +1 -0
  116. package/dist/frontend/lowering/containers/bytes.d.ts +0 -4
  117. package/dist/frontend/lowering/containers/bytes.js +112 -28
  118. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  119. package/dist/frontend/lowering/lower-assert.js +87 -12
  120. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  121. package/dist/frontend/lowering/lower-builtins.d.ts +72 -44
  122. package/dist/frontend/lowering/lower-builtins.js +1323 -165
  123. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  124. package/dist/frontend/lowering/lower-calls.d.ts +37 -27
  125. package/dist/frontend/lowering/lower-calls.js +682 -132
  126. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  127. package/dist/frontend/lowering/lower-classes.js +39 -8
  128. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  129. package/dist/frontend/lowering/lower-containers.js +162 -8
  130. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  131. package/dist/frontend/lowering/lower-event-emitter.js +212 -21
  132. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  133. package/dist/frontend/lowering/lower-exprs.js +238 -87
  134. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  135. package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
  136. package/dist/frontend/lowering/lower-inspect.js +8 -1
  137. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  138. package/dist/frontend/lowering/lower-island.d.ts +6 -3
  139. package/dist/frontend/lowering/lower-island.js +165 -6
  140. package/dist/frontend/lowering/lower-island.js.map +1 -1
  141. package/dist/frontend/lowering/lower-modules.d.ts +6 -0
  142. package/dist/frontend/lowering/lower-modules.js +192 -38
  143. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  144. package/dist/frontend/lowering/lower-namespaces.js +7 -0
  145. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  146. package/dist/frontend/lowering/lower-server.d.ts +1 -1
  147. package/dist/frontend/lowering/lower-server.js +130 -27
  148. package/dist/frontend/lowering/lower-server.js.map +1 -1
  149. package/dist/frontend/lowering/lower-stmts.d.ts +5 -4
  150. package/dist/frontend/lowering/lower-stmts.js +141 -21
  151. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  152. package/dist/frontend/lowering/lower-stream.d.ts +3 -0
  153. package/dist/frontend/lowering/lower-stream.js +7 -0
  154. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  155. package/dist/frontend/lowering/lowerer.d.ts +90 -13
  156. package/dist/frontend/lowering/lowerer.js +416 -76
  157. package/dist/frontend/lowering/lowerer.js.map +1 -1
  158. package/dist/frontend/lowering/surfaces.d.ts +31 -3
  159. package/dist/frontend/lowering/surfaces.js +173 -90
  160. package/dist/frontend/lowering/surfaces.js.map +1 -1
  161. package/dist/frontend/npm-static-declarations.d.ts +4 -0
  162. package/dist/frontend/npm-static-declarations.js +83 -14
  163. package/dist/frontend/npm-static-declarations.js.map +1 -1
  164. package/dist/frontend/npm-static-declarations.test.js +33 -2
  165. package/dist/frontend/npm-static-declarations.test.js.map +1 -1
  166. package/dist/frontend/npm-static.js +6 -5
  167. package/dist/frontend/npm-static.js.map +1 -1
  168. package/dist/frontend/npm.d.ts +15 -3
  169. package/dist/frontend/npm.js +80 -8
  170. package/dist/frontend/npm.js.map +1 -1
  171. package/dist/frontend/npm.test.js +76 -9
  172. package/dist/frontend/npm.test.js.map +1 -1
  173. package/dist/frontend/program.js +110 -12
  174. package/dist/frontend/program.js.map +1 -1
  175. package/dist/frontend/resolve.d.ts +28 -7
  176. package/dist/frontend/resolve.js +90 -26
  177. package/dist/frontend/resolve.js.map +1 -1
  178. package/dist/frontend/resolve.test.js +21 -1
  179. package/dist/frontend/resolve.test.js.map +1 -1
  180. package/dist/frontend/type-mapper.d.ts +5 -0
  181. package/dist/frontend/type-mapper.js +115 -33
  182. package/dist/frontend/type-mapper.js.map +1 -1
  183. package/dist/index.d.ts +5 -0
  184. package/dist/index.js +30 -3
  185. package/dist/index.js.map +1 -1
  186. package/dist/ir/analysis.js +1 -0
  187. package/dist/ir/analysis.js.map +1 -1
  188. package/dist/ir/ir.d.ts +155 -66
  189. package/dist/ir/ir.js +143 -6
  190. package/dist/ir/ir.js.map +1 -1
  191. package/dist/ir/ir.test.js +14 -1
  192. package/dist/ir/ir.test.js.map +1 -1
  193. package/dist/ir/serialize.d.ts +1 -1
  194. package/dist/ir/serialize.js +1 -1
  195. package/dist/ir/serialize.js.map +1 -1
  196. package/dist/ir/validate.js +242 -18
  197. package/dist/ir/validate.js.map +1 -1
  198. package/dist/library/int-infer.test.js +4 -4
  199. package/dist/library/int-infer.test.js.map +1 -1
  200. package/dist/library/library-cache.d.ts +1 -0
  201. package/dist/library/library-cache.js +1 -0
  202. package/dist/library/library-cache.js.map +1 -1
  203. package/dist/library/library-cache.test.js +18 -5
  204. package/dist/library/library-cache.test.js.map +1 -1
  205. package/package.json +17 -17
  206. 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,IAAI,GAAG,IAAI,GAAG,CAAC,iCAAiC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAClF,MAAM,KAAK,GAAG,GAAG,IAAI,0BAA0B,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;IACtC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;QACjC,IAAI,EAAE,IAAK,CAAC,GAAG;QACf,SAAS,EAAE,QAAQ;QACnB,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC;QACjD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2EAA2E,EAAE,GAAG,EAAE;IACrF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,iCAAiC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAClF,MAAM,KAAK,GAAG,GAAG,IAAI,0BAA0B,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;IACtC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChG,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"npm.test.js","sourceRoot":"","sources":["../../src/frontend/npm.test.ts"],"names":[],"mappings":"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"}
@@ -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 program = ts.createProgram([...coreRoots, overridesDtsPath()], options, host);
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(coreRoots, options, host)),
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
- if (!ts.isCallExpression(node))
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(node.expression) || node.expression.text !== "require")
626
+ if (!ts.isIdentifier(value.expression) || value.expression.text !== "require")
568
627
  return null;
569
- if (node.arguments.length !== 1)
628
+ if (value.arguments.length !== 1)
570
629
  return null;
571
- const arg = node.arguments[0];
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 call = ts.isVariableDeclaration(node) ? node.initializer : node;
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
- if (!isRelativeSpecifier(fromSpec)) {
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 = resolveImport7(program, sf, fromSpec);
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
- if (isJsSourceFileName(sf.fileName)) {
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.