ttsc 0.14.0 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -49,9 +49,11 @@ Rewrite source files in place with the `@ttsc/lint` format rules:
49
49
  npx ttsc format
50
50
  ```
51
51
 
52
- ### VSCode Extension
52
+ ### VS Code Extension
53
53
 
54
- Install the VS Code extension for live TypeScript-Go editor features plus saved-state ttsc plugin diagnostics and actions. Run `npx @ttsc/vscode`; it downloads the package and installs the bundled `.vsix` into VS Code, nothing to keep as a dependency:
54
+ Install the VS Code extension for live TypeScript-Go editor features plus saved-state ttsc plugin diagnostics and actions.
55
+
56
+ Install it from the VS Code Marketplace by searching `ttsc`, or run:
55
57
 
56
58
  ```bash
57
59
  npx @ttsc/vscode
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_module_1 = require("node:module");
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const node_url_1 = require("node:url");
9
+ /**
10
+ * `--import` entry point that installs `ttsx`'s runtime module hooks in the
11
+ * child process. Run before the compiled entry so the `resolve`/`load` hooks in
12
+ * `runtimeHooks` are active for the whole dependency graph.
13
+ *
14
+ * Kept as a dedicated, dependency-free module: it must load in the child's
15
+ * plain Node runtime (not ttsc's), so it pulls in nothing beyond Node builtins
16
+ * and the sibling hooks file.
17
+ */
18
+ (0, node_module_1.register)((0, node_url_1.pathToFileURL)(node_path_1.default.join(__dirname, "runtimeHooks.js")).href);
19
+ //# sourceMappingURL=registerRuntimeHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerRuntimeHooks.js","sourceRoot":"","sources":["../../../src/launcher/internal/registerRuntimeHooks.ts"],"names":[],"mappings":";;;;;AAAA,6CAAuC;AACvC,0DAA6B;AAC7B,uCAAyC;AAEzC;;;;;;;;GAQG;AACH,IAAA,sBAAQ,EAAC,IAAA,wBAAa,EAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC"}
@@ -7,6 +7,7 @@ exports.runTtsx = runTtsx;
7
7
  const node_child_process_1 = require("node:child_process");
8
8
  const node_fs_1 = __importDefault(require("node:fs"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
+ const node_url_1 = require("node:url");
10
11
  const parser_1 = require("../../flags/parser");
11
12
  const getCompilerVersionText_1 = require("./getCompilerVersionText");
12
13
  const prepareExecution_1 = require("./prepareExecution");
@@ -193,6 +194,23 @@ function printHelp() {
193
194
  ].join("\n"));
194
195
  process.stdout.write("\n");
195
196
  }
197
+ /**
198
+ * Node flags that install ttsx's runtime module hooks in the child process.
199
+ * `--import` loads the registrar before the compiled entry, giving the
200
+ * `resolve`/`load` hooks whole-graph reach (extensionless relative imports and
201
+ * raw `.ts` dependencies under `node_modules`) without weakening the up-front
202
+ * compile gate. `--disable-warning` silences the `ExperimentalWarning` that the
203
+ * `load` hook's internal `stripTypeScriptTypes` call would otherwise print, the
204
+ * same flag this repository's own TypeScript runner uses.
205
+ */
206
+ function runtimeHookArgs() {
207
+ const registrar = node_path_1.default.join(__dirname, "registerRuntimeHooks.js");
208
+ return [
209
+ "--disable-warning=ExperimentalWarning",
210
+ "--import",
211
+ (0, node_url_1.pathToFileURL)(registrar).href,
212
+ ];
213
+ }
196
214
  function resolvePreload(cwd, preload) {
197
215
  if (node_path_1.default.isAbsolute(preload) || isRelativeSpecifier(preload)) {
198
216
  return node_path_1.default.resolve(cwd, preload);
@@ -215,6 +233,7 @@ function runPreparedEntry(parsed, execution, cwd) {
215
233
  node_fs_1.default.writeFileSync(node_path_1.default.join(execution.emitDir, "package.json"), JSON.stringify({ type: "module" }), "utf8");
216
234
  }
217
235
  const args = [
236
+ ...runtimeHookArgs(),
218
237
  ...parsed.preload.flatMap((preload) => [
219
238
  "-r",
220
239
  resolvePreload(cwd, preload),
@@ -1 +1 @@
1
- {"version":3,"file":"runTtsx.js","sourceRoot":"","sources":["../../../src/launcher/internal/runTtsx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runTtsx.js","sourceRoot":"","sources":["../../../src/launcher/internal/runTtsx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ interface ResolveContext {
2
+ readonly parentURL?: string;
3
+ readonly conditions?: readonly string[];
4
+ readonly importAttributes?: Record<string, string>;
5
+ }
6
+ interface ResolveResult {
7
+ readonly url: string;
8
+ readonly format?: string | null;
9
+ readonly shortCircuit?: boolean;
10
+ }
11
+ interface LoadContext {
12
+ readonly format?: string | null;
13
+ readonly conditions?: readonly string[];
14
+ readonly importAttributes?: Record<string, string>;
15
+ }
16
+ interface LoadResult {
17
+ readonly format: string;
18
+ readonly source?: string | Uint8Array;
19
+ readonly shortCircuit?: boolean;
20
+ }
21
+ type NextResolve = (specifier: string, context: ResolveContext) => Promise<ResolveResult>;
22
+ type NextLoad = (url: string, context: LoadContext) => Promise<LoadResult>;
23
+ /**
24
+ * Rescue an extensionless relative specifier that Node's ESM resolver rejected.
25
+ *
26
+ * Node resolves the common cases itself; this hook only runs after
27
+ * `nextResolve` throws, so a successful resolution is never perturbed. When the
28
+ * throwing specifier is relative, the candidate extensions are probed against
29
+ * the parent's directory and the first existing file (or directory index) wins.
30
+ * A genuinely missing module finds no candidate and the original error is
31
+ * rethrown, preserving `ERR_MODULE_NOT_FOUND`.
32
+ */
33
+ export declare function resolve(specifier: string, context: ResolveContext, nextResolve: NextResolve): Promise<ResolveResult>;
34
+ /**
35
+ * Transpile a raw `.ts` dependency that lives under `node_modules`.
36
+ *
37
+ * Node strips types for first-party `.ts` automatically but refuses to do so
38
+ * under `node_modules` (`ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING`). This
39
+ * hook performs the same type-strip transform for those files, scoped strictly
40
+ * to `node_modules` so workspace neighbours keep Node's native path.
41
+ */
42
+ export declare function load(url: string, context: LoadContext, nextLoad: NextLoad): Promise<LoadResult>;
43
+ export {};
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolve = resolve;
7
+ exports.load = load;
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const node_module_1 = require("node:module");
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const node_url_1 = require("node:url");
12
+ /**
13
+ * Node.js module-customization hooks registered inside the child process that
14
+ * `ttsx` spawns. They give the runtime the same whole-graph reach `tsx` has,
15
+ * without weakening the compile gate: type-checking still happens up front in
16
+ * `prepareExecution`'s tsgo build, and these hooks only affect how dependencies
17
+ * are _loaded_ at runtime.
18
+ *
19
+ * - `resolve` rescues extensionless relative imports anywhere in the graph (e.g.
20
+ * a workspace dependency exporting raw `.ts` whose own sources use `import
21
+ * "./foo"`), which Node's ESM resolver rejects.
22
+ * - `load` transpiles raw `.ts` dependencies that live under `node_modules`,
23
+ * where Node refuses to strip types at all.
24
+ *
25
+ * Workspace neighbours (realpath outside `node_modules`) keep Node's native
26
+ * type-stripping path, so they stay covered by the up-front compile gate.
27
+ */
28
+ /** Source/JS extensions probed when an extensionless relative import fails. */
29
+ const RESOLVABLE_EXTENSIONS = [
30
+ ".ts",
31
+ ".tsx",
32
+ ".mts",
33
+ ".cts",
34
+ ".js",
35
+ ".mjs",
36
+ ".cjs",
37
+ ];
38
+ /** TypeScript source extensions the `load` hook transpiles under node_modules. */
39
+ const TYPESCRIPT_EXTENSIONS = [".ts", ".tsx", ".mts", ".cts"];
40
+ /**
41
+ * Rescue an extensionless relative specifier that Node's ESM resolver rejected.
42
+ *
43
+ * Node resolves the common cases itself; this hook only runs after
44
+ * `nextResolve` throws, so a successful resolution is never perturbed. When the
45
+ * throwing specifier is relative, the candidate extensions are probed against
46
+ * the parent's directory and the first existing file (or directory index) wins.
47
+ * A genuinely missing module finds no candidate and the original error is
48
+ * rethrown, preserving `ERR_MODULE_NOT_FOUND`.
49
+ */
50
+ async function resolve(specifier, context, nextResolve) {
51
+ try {
52
+ return await nextResolve(specifier, context);
53
+ }
54
+ catch (error) {
55
+ const rescued = probeRelativeSpecifier(specifier, context.parentURL);
56
+ if (rescued === null) {
57
+ throw error;
58
+ }
59
+ return { shortCircuit: true, url: rescued };
60
+ }
61
+ }
62
+ /**
63
+ * Transpile a raw `.ts` dependency that lives under `node_modules`.
64
+ *
65
+ * Node strips types for first-party `.ts` automatically but refuses to do so
66
+ * under `node_modules` (`ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING`). This
67
+ * hook performs the same type-strip transform for those files, scoped strictly
68
+ * to `node_modules` so workspace neighbours keep Node's native path.
69
+ */
70
+ async function load(url, context, nextLoad) {
71
+ const filename = transpilableNodeModulesPath(url);
72
+ if (filename === null) {
73
+ return nextLoad(url, context);
74
+ }
75
+ const source = transpile(filename);
76
+ return {
77
+ format: moduleFormat(filename, source),
78
+ shortCircuit: true,
79
+ source,
80
+ };
81
+ }
82
+ /**
83
+ * Probe candidate extensions for a relative `specifier` whose bare form failed
84
+ * to resolve. Returns a `file:` URL string for the first match, or `null` when
85
+ * the specifier is non-relative, has no usable parent, or matches nothing.
86
+ */
87
+ function probeRelativeSpecifier(specifier, parentURL) {
88
+ if (!isRelativeSpecifier(specifier)) {
89
+ return null;
90
+ }
91
+ if (parentURL === undefined || !parentURL.startsWith("file:")) {
92
+ return null;
93
+ }
94
+ if (hasConcreteExtension(specifier)) {
95
+ return null;
96
+ }
97
+ const parentDir = node_path_1.default.dirname((0, node_url_1.fileURLToPath)(parentURL));
98
+ const base = node_path_1.default.resolve(parentDir, specifier);
99
+ for (const extension of RESOLVABLE_EXTENSIONS) {
100
+ const candidate = base + extension;
101
+ if (isFile(candidate)) {
102
+ return (0, node_url_1.pathToFileURL)(candidate).href;
103
+ }
104
+ }
105
+ for (const extension of RESOLVABLE_EXTENSIONS) {
106
+ const candidate = node_path_1.default.join(base, `index${extension}`);
107
+ if (isFile(candidate)) {
108
+ return (0, node_url_1.pathToFileURL)(candidate).href;
109
+ }
110
+ }
111
+ return null;
112
+ }
113
+ /**
114
+ * Return the filesystem path of a `file:` URL when it points at a TypeScript
115
+ * source under `node_modules`, otherwise `null`. Both conditions must hold for
116
+ * the `load` hook to take over: workspace `.ts` (outside `node_modules`) and
117
+ * already-JavaScript files fall through to Node.
118
+ */
119
+ function transpilableNodeModulesPath(url) {
120
+ if (!url.startsWith("file:")) {
121
+ return null;
122
+ }
123
+ const filename = (0, node_url_1.fileURLToPath)(url);
124
+ if (!isTypeScriptSource(filename) || !isUnderNodeModules(filename)) {
125
+ return null;
126
+ }
127
+ return filename;
128
+ }
129
+ /**
130
+ * Strip TypeScript types from `filename`, transforming TS-only constructs
131
+ * (enums, namespaces, parameter properties) so the result is runnable
132
+ * JavaScript. No transpile cache is kept: Node caches every module by resolved
133
+ * URL, so each dependency file reaches this hook at most once per run.
134
+ */
135
+ function transpile(filename) {
136
+ return (0, node_module_1.stripTypeScriptTypes)(node_fs_1.default.readFileSync(filename, "utf8"), {
137
+ mode: "transform",
138
+ sourceUrl: (0, node_url_1.pathToFileURL)(filename).href,
139
+ });
140
+ }
141
+ /**
142
+ * Decide the module format for a transpiled `node_modules` TypeScript file.
143
+ *
144
+ * Type-stripping never rewrites module syntax, so the emitted `source` keeps
145
+ * whatever `import`/`export` or `require` form the author wrote. The format
146
+ * must match that syntax or Node mis-parses the module. The extension is
147
+ * authoritative for `.mts`/`.cts`; otherwise the nearest `package.json` `type`
148
+ * sets the baseline, but unambiguous ESM syntax overrides a CommonJS baseline
149
+ * exactly as Node's own module-syntax detection does.
150
+ */
151
+ function moduleFormat(filename, source) {
152
+ if (filename.endsWith(".mts")) {
153
+ return "module";
154
+ }
155
+ if (filename.endsWith(".cts")) {
156
+ return "commonjs";
157
+ }
158
+ if (nearestPackageType(filename) === "module") {
159
+ return "module";
160
+ }
161
+ return hasEsmSyntax(source) ? "module" : "commonjs";
162
+ }
163
+ /**
164
+ * True when `source` carries unambiguous ESM syntax: a top-level
165
+ * `import`/`export` statement, or an `import.meta` reference (which is a syntax
166
+ * error outside a module). Mirrors the markers Node's own detection keys on.
167
+ * `stripTypeScriptTypes` has already removed comments, so a keyword inside a
168
+ * stripped comment cannot produce a false positive.
169
+ */
170
+ function hasEsmSyntax(source) {
171
+ return (/(?:^|[\n;])\s*(?:import|export)\b/.test(source) ||
172
+ /\bimport\s*\.\s*meta\b/.test(source));
173
+ }
174
+ /** Package-type cache keyed by directory, mirroring Node's own lookup walk. */
175
+ const packageTypeCache = new Map();
176
+ function nearestPackageType(filename) {
177
+ let directory = node_path_1.default.dirname(filename);
178
+ const chain = [];
179
+ while (true) {
180
+ const cached = packageTypeCache.get(directory);
181
+ if (cached !== undefined) {
182
+ return rememberPackageType(chain, cached);
183
+ }
184
+ chain.push(directory);
185
+ const type = readPackageType(directory);
186
+ if (type !== null) {
187
+ return rememberPackageType(chain, type);
188
+ }
189
+ const parent = node_path_1.default.dirname(directory);
190
+ if (parent === directory) {
191
+ return rememberPackageType(chain, "commonjs");
192
+ }
193
+ directory = parent;
194
+ }
195
+ }
196
+ function rememberPackageType(directories, type) {
197
+ for (const directory of directories) {
198
+ packageTypeCache.set(directory, type);
199
+ }
200
+ return type;
201
+ }
202
+ /** Read a directory's `package.json` `type`, or `null` when absent/invalid. */
203
+ function readPackageType(directory) {
204
+ const manifest = node_path_1.default.join(directory, "package.json");
205
+ if (!isFile(manifest)) {
206
+ return null;
207
+ }
208
+ try {
209
+ const parsed = JSON.parse(node_fs_1.default.readFileSync(manifest, "utf8"));
210
+ return parsed.type === "module" ? "module" : "commonjs";
211
+ }
212
+ catch {
213
+ return "commonjs";
214
+ }
215
+ }
216
+ function isRelativeSpecifier(specifier) {
217
+ return (specifier === "." ||
218
+ specifier === ".." ||
219
+ specifier.startsWith("./") ||
220
+ specifier.startsWith("../"));
221
+ }
222
+ /** True when `specifier` already carries an extension Node can load directly. */
223
+ function hasConcreteExtension(specifier) {
224
+ return /\.(?:[cm]?jsx?|json|node|[cm]?tsx?)$/i.test(specifier);
225
+ }
226
+ function isTypeScriptSource(filename) {
227
+ return TYPESCRIPT_EXTENSIONS.some((extension) => filename.endsWith(extension));
228
+ }
229
+ /**
230
+ * True when `filename` lives inside a real `node_modules` package. A
231
+ * `node_modules/.cache` segment does not count: `ttsx` mirrors the project into
232
+ * `<root>/node_modules/.cache/ttsc/ttsx/.../fs/...`, so the user's own sources
233
+ * appear under that cache prefix at runtime. Treating them as dependencies
234
+ * would type-strip a project file (which `stripTypeScriptTypes` cannot do as
235
+ * faithfully as the compile gate, e.g. it cannot elide type-only imports) and
236
+ * steal it from a host loader. A genuine dependency still has a deeper
237
+ * `node_modules/<pkg>` segment, so it is detected; `.cache` (never a package
238
+ * name) is the only thing skipped.
239
+ */
240
+ function isUnderNodeModules(filename) {
241
+ const segments = filename.split(node_path_1.default.sep);
242
+ for (let i = 0; i < segments.length - 1; i += 1) {
243
+ if (segments[i] === "node_modules" && segments[i + 1] !== ".cache") {
244
+ return true;
245
+ }
246
+ }
247
+ return false;
248
+ }
249
+ function isFile(candidate) {
250
+ try {
251
+ return node_fs_1.default.statSync(candidate).isFile();
252
+ }
253
+ catch {
254
+ return false;
255
+ }
256
+ }
257
+ //# sourceMappingURL=runtimeHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeHooks.js","sourceRoot":"","sources":["../../../src/launcher/internal/runtimeHooks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ttsc",
3
- "version": "0.14.0",
3
+ "version": "0.14.2",
4
4
  "description": "General-purpose TypeScript-Go compiler, runtime, plugin host, and LSP host.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -28,17 +28,17 @@
28
28
  "homepage": "https://ttsc.dev",
29
29
  "devDependencies": {
30
30
  "@types/node": "^25.3.0",
31
- "@typescript/native-preview": "7.0.0-dev.20260519.1",
31
+ "@typescript/native-preview": "7.0.0-dev.20260421.2",
32
32
  "rimraf": "^6.1.2"
33
33
  },
34
34
  "optionalDependencies": {
35
- "@ttsc/linux-x64": "0.14.0",
36
- "@ttsc/linux-arm": "0.14.0",
37
- "@ttsc/darwin-x64": "0.14.0",
38
- "@ttsc/darwin-arm64": "0.14.0",
39
- "@ttsc/win32-x64": "0.14.0",
40
- "@ttsc/linux-arm64": "0.14.0",
41
- "@ttsc/win32-arm64": "0.14.0"
35
+ "@ttsc/linux-x64": "0.14.2",
36
+ "@ttsc/linux-arm": "0.14.2",
37
+ "@ttsc/linux-arm64": "0.14.2",
38
+ "@ttsc/darwin-arm64": "0.14.2",
39
+ "@ttsc/darwin-x64": "0.14.2",
40
+ "@ttsc/win32-x64": "0.14.2",
41
+ "@ttsc/win32-arm64": "0.14.2"
42
42
  },
43
43
  "sideEffects": false,
44
44
  "files": [
@@ -0,0 +1,14 @@
1
+ import { register } from "node:module";
2
+ import path from "node:path";
3
+ import { pathToFileURL } from "node:url";
4
+
5
+ /**
6
+ * `--import` entry point that installs `ttsx`'s runtime module hooks in the
7
+ * child process. Run before the compiled entry so the `resolve`/`load` hooks in
8
+ * `runtimeHooks` are active for the whole dependency graph.
9
+ *
10
+ * Kept as a dedicated, dependency-free module: it must load in the child's
11
+ * plain Node runtime (not ttsc's), so it pulls in nothing beyond Node builtins
12
+ * and the sibling hooks file.
13
+ */
14
+ register(pathToFileURL(path.join(__dirname, "runtimeHooks.js")).href);
@@ -1,6 +1,7 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
+ import { pathToFileURL } from "node:url";
4
5
 
5
6
  import {
6
7
  getBoolean,
@@ -213,6 +214,24 @@ function printHelp(): void {
213
214
  process.stdout.write("\n");
214
215
  }
215
216
 
217
+ /**
218
+ * Node flags that install ttsx's runtime module hooks in the child process.
219
+ * `--import` loads the registrar before the compiled entry, giving the
220
+ * `resolve`/`load` hooks whole-graph reach (extensionless relative imports and
221
+ * raw `.ts` dependencies under `node_modules`) without weakening the up-front
222
+ * compile gate. `--disable-warning` silences the `ExperimentalWarning` that the
223
+ * `load` hook's internal `stripTypeScriptTypes` call would otherwise print, the
224
+ * same flag this repository's own TypeScript runner uses.
225
+ */
226
+ function runtimeHookArgs(): string[] {
227
+ const registrar = path.join(__dirname, "registerRuntimeHooks.js");
228
+ return [
229
+ "--disable-warning=ExperimentalWarning",
230
+ "--import",
231
+ pathToFileURL(registrar).href,
232
+ ];
233
+ }
234
+
216
235
  function resolvePreload(cwd: string, preload: string): string {
217
236
  if (path.isAbsolute(preload) || isRelativeSpecifier(preload)) {
218
237
  return path.resolve(cwd, preload);
@@ -247,6 +266,7 @@ function runPreparedEntry(
247
266
  );
248
267
  }
249
268
  const args = [
269
+ ...runtimeHookArgs(),
250
270
  ...parsed.preload.flatMap((preload) => [
251
271
  "-r",
252
272
  resolvePreload(cwd, preload),
@@ -0,0 +1,318 @@
1
+ import fs from "node:fs";
2
+ import { stripTypeScriptTypes } from "node:module";
3
+ import path from "node:path";
4
+ import { fileURLToPath, pathToFileURL } from "node:url";
5
+
6
+ /**
7
+ * Node.js module-customization hooks registered inside the child process that
8
+ * `ttsx` spawns. They give the runtime the same whole-graph reach `tsx` has,
9
+ * without weakening the compile gate: type-checking still happens up front in
10
+ * `prepareExecution`'s tsgo build, and these hooks only affect how dependencies
11
+ * are _loaded_ at runtime.
12
+ *
13
+ * - `resolve` rescues extensionless relative imports anywhere in the graph (e.g.
14
+ * a workspace dependency exporting raw `.ts` whose own sources use `import
15
+ * "./foo"`), which Node's ESM resolver rejects.
16
+ * - `load` transpiles raw `.ts` dependencies that live under `node_modules`,
17
+ * where Node refuses to strip types at all.
18
+ *
19
+ * Workspace neighbours (realpath outside `node_modules`) keep Node's native
20
+ * type-stripping path, so they stay covered by the up-front compile gate.
21
+ */
22
+
23
+ /** Source/JS extensions probed when an extensionless relative import fails. */
24
+ const RESOLVABLE_EXTENSIONS = [
25
+ ".ts",
26
+ ".tsx",
27
+ ".mts",
28
+ ".cts",
29
+ ".js",
30
+ ".mjs",
31
+ ".cjs",
32
+ ] as const;
33
+
34
+ /** TypeScript source extensions the `load` hook transpiles under node_modules. */
35
+ const TYPESCRIPT_EXTENSIONS = [".ts", ".tsx", ".mts", ".cts"] as const;
36
+
37
+ interface ResolveContext {
38
+ readonly parentURL?: string;
39
+ readonly conditions?: readonly string[];
40
+ readonly importAttributes?: Record<string, string>;
41
+ }
42
+
43
+ interface ResolveResult {
44
+ readonly url: string;
45
+ readonly format?: string | null;
46
+ readonly shortCircuit?: boolean;
47
+ }
48
+
49
+ interface LoadContext {
50
+ readonly format?: string | null;
51
+ readonly conditions?: readonly string[];
52
+ readonly importAttributes?: Record<string, string>;
53
+ }
54
+
55
+ interface LoadResult {
56
+ readonly format: string;
57
+ readonly source?: string | Uint8Array;
58
+ readonly shortCircuit?: boolean;
59
+ }
60
+
61
+ type NextResolve = (
62
+ specifier: string,
63
+ context: ResolveContext,
64
+ ) => Promise<ResolveResult>;
65
+
66
+ type NextLoad = (url: string, context: LoadContext) => Promise<LoadResult>;
67
+
68
+ /**
69
+ * Rescue an extensionless relative specifier that Node's ESM resolver rejected.
70
+ *
71
+ * Node resolves the common cases itself; this hook only runs after
72
+ * `nextResolve` throws, so a successful resolution is never perturbed. When the
73
+ * throwing specifier is relative, the candidate extensions are probed against
74
+ * the parent's directory and the first existing file (or directory index) wins.
75
+ * A genuinely missing module finds no candidate and the original error is
76
+ * rethrown, preserving `ERR_MODULE_NOT_FOUND`.
77
+ */
78
+ export async function resolve(
79
+ specifier: string,
80
+ context: ResolveContext,
81
+ nextResolve: NextResolve,
82
+ ): Promise<ResolveResult> {
83
+ try {
84
+ return await nextResolve(specifier, context);
85
+ } catch (error) {
86
+ const rescued = probeRelativeSpecifier(specifier, context.parentURL);
87
+ if (rescued === null) {
88
+ throw error;
89
+ }
90
+ return { shortCircuit: true, url: rescued };
91
+ }
92
+ }
93
+
94
+ /**
95
+ * Transpile a raw `.ts` dependency that lives under `node_modules`.
96
+ *
97
+ * Node strips types for first-party `.ts` automatically but refuses to do so
98
+ * under `node_modules` (`ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING`). This
99
+ * hook performs the same type-strip transform for those files, scoped strictly
100
+ * to `node_modules` so workspace neighbours keep Node's native path.
101
+ */
102
+ export async function load(
103
+ url: string,
104
+ context: LoadContext,
105
+ nextLoad: NextLoad,
106
+ ): Promise<LoadResult> {
107
+ const filename = transpilableNodeModulesPath(url);
108
+ if (filename === null) {
109
+ return nextLoad(url, context);
110
+ }
111
+ const source = transpile(filename);
112
+ return {
113
+ format: moduleFormat(filename, source),
114
+ shortCircuit: true,
115
+ source,
116
+ };
117
+ }
118
+
119
+ /**
120
+ * Probe candidate extensions for a relative `specifier` whose bare form failed
121
+ * to resolve. Returns a `file:` URL string for the first match, or `null` when
122
+ * the specifier is non-relative, has no usable parent, or matches nothing.
123
+ */
124
+ function probeRelativeSpecifier(
125
+ specifier: string,
126
+ parentURL: string | undefined,
127
+ ): string | null {
128
+ if (!isRelativeSpecifier(specifier)) {
129
+ return null;
130
+ }
131
+ if (parentURL === undefined || !parentURL.startsWith("file:")) {
132
+ return null;
133
+ }
134
+ if (hasConcreteExtension(specifier)) {
135
+ return null;
136
+ }
137
+ const parentDir = path.dirname(fileURLToPath(parentURL));
138
+ const base = path.resolve(parentDir, specifier);
139
+ for (const extension of RESOLVABLE_EXTENSIONS) {
140
+ const candidate = base + extension;
141
+ if (isFile(candidate)) {
142
+ return pathToFileURL(candidate).href;
143
+ }
144
+ }
145
+ for (const extension of RESOLVABLE_EXTENSIONS) {
146
+ const candidate = path.join(base, `index${extension}`);
147
+ if (isFile(candidate)) {
148
+ return pathToFileURL(candidate).href;
149
+ }
150
+ }
151
+ return null;
152
+ }
153
+
154
+ /**
155
+ * Return the filesystem path of a `file:` URL when it points at a TypeScript
156
+ * source under `node_modules`, otherwise `null`. Both conditions must hold for
157
+ * the `load` hook to take over: workspace `.ts` (outside `node_modules`) and
158
+ * already-JavaScript files fall through to Node.
159
+ */
160
+ function transpilableNodeModulesPath(url: string): string | null {
161
+ if (!url.startsWith("file:")) {
162
+ return null;
163
+ }
164
+ const filename = fileURLToPath(url);
165
+ if (!isTypeScriptSource(filename) || !isUnderNodeModules(filename)) {
166
+ return null;
167
+ }
168
+ return filename;
169
+ }
170
+
171
+ /**
172
+ * Strip TypeScript types from `filename`, transforming TS-only constructs
173
+ * (enums, namespaces, parameter properties) so the result is runnable
174
+ * JavaScript. No transpile cache is kept: Node caches every module by resolved
175
+ * URL, so each dependency file reaches this hook at most once per run.
176
+ */
177
+ function transpile(filename: string): string {
178
+ return stripTypeScriptTypes(fs.readFileSync(filename, "utf8"), {
179
+ mode: "transform",
180
+ sourceUrl: pathToFileURL(filename).href,
181
+ });
182
+ }
183
+
184
+ /**
185
+ * Decide the module format for a transpiled `node_modules` TypeScript file.
186
+ *
187
+ * Type-stripping never rewrites module syntax, so the emitted `source` keeps
188
+ * whatever `import`/`export` or `require` form the author wrote. The format
189
+ * must match that syntax or Node mis-parses the module. The extension is
190
+ * authoritative for `.mts`/`.cts`; otherwise the nearest `package.json` `type`
191
+ * sets the baseline, but unambiguous ESM syntax overrides a CommonJS baseline
192
+ * exactly as Node's own module-syntax detection does.
193
+ */
194
+ function moduleFormat(filename: string, source: string): string {
195
+ if (filename.endsWith(".mts")) {
196
+ return "module";
197
+ }
198
+ if (filename.endsWith(".cts")) {
199
+ return "commonjs";
200
+ }
201
+ if (nearestPackageType(filename) === "module") {
202
+ return "module";
203
+ }
204
+ return hasEsmSyntax(source) ? "module" : "commonjs";
205
+ }
206
+
207
+ /**
208
+ * True when `source` carries unambiguous ESM syntax: a top-level
209
+ * `import`/`export` statement, or an `import.meta` reference (which is a syntax
210
+ * error outside a module). Mirrors the markers Node's own detection keys on.
211
+ * `stripTypeScriptTypes` has already removed comments, so a keyword inside a
212
+ * stripped comment cannot produce a false positive.
213
+ */
214
+ function hasEsmSyntax(source: string): boolean {
215
+ return (
216
+ /(?:^|[\n;])\s*(?:import|export)\b/.test(source) ||
217
+ /\bimport\s*\.\s*meta\b/.test(source)
218
+ );
219
+ }
220
+
221
+ /** Package-type cache keyed by directory, mirroring Node's own lookup walk. */
222
+ const packageTypeCache = new Map<string, "module" | "commonjs">();
223
+
224
+ function nearestPackageType(filename: string): "module" | "commonjs" {
225
+ let directory = path.dirname(filename);
226
+ const chain: string[] = [];
227
+ while (true) {
228
+ const cached = packageTypeCache.get(directory);
229
+ if (cached !== undefined) {
230
+ return rememberPackageType(chain, cached);
231
+ }
232
+ chain.push(directory);
233
+ const type = readPackageType(directory);
234
+ if (type !== null) {
235
+ return rememberPackageType(chain, type);
236
+ }
237
+ const parent = path.dirname(directory);
238
+ if (parent === directory) {
239
+ return rememberPackageType(chain, "commonjs");
240
+ }
241
+ directory = parent;
242
+ }
243
+ }
244
+
245
+ function rememberPackageType(
246
+ directories: readonly string[],
247
+ type: "module" | "commonjs",
248
+ ): "module" | "commonjs" {
249
+ for (const directory of directories) {
250
+ packageTypeCache.set(directory, type);
251
+ }
252
+ return type;
253
+ }
254
+
255
+ /** Read a directory's `package.json` `type`, or `null` when absent/invalid. */
256
+ function readPackageType(directory: string): "module" | "commonjs" | null {
257
+ const manifest = path.join(directory, "package.json");
258
+ if (!isFile(manifest)) {
259
+ return null;
260
+ }
261
+ try {
262
+ const parsed = JSON.parse(fs.readFileSync(manifest, "utf8")) as {
263
+ type?: unknown;
264
+ };
265
+ return parsed.type === "module" ? "module" : "commonjs";
266
+ } catch {
267
+ return "commonjs";
268
+ }
269
+ }
270
+
271
+ function isRelativeSpecifier(specifier: string): boolean {
272
+ return (
273
+ specifier === "." ||
274
+ specifier === ".." ||
275
+ specifier.startsWith("./") ||
276
+ specifier.startsWith("../")
277
+ );
278
+ }
279
+
280
+ /** True when `specifier` already carries an extension Node can load directly. */
281
+ function hasConcreteExtension(specifier: string): boolean {
282
+ return /\.(?:[cm]?jsx?|json|node|[cm]?tsx?)$/i.test(specifier);
283
+ }
284
+
285
+ function isTypeScriptSource(filename: string): boolean {
286
+ return TYPESCRIPT_EXTENSIONS.some((extension) =>
287
+ filename.endsWith(extension),
288
+ );
289
+ }
290
+
291
+ /**
292
+ * True when `filename` lives inside a real `node_modules` package. A
293
+ * `node_modules/.cache` segment does not count: `ttsx` mirrors the project into
294
+ * `<root>/node_modules/.cache/ttsc/ttsx/.../fs/...`, so the user's own sources
295
+ * appear under that cache prefix at runtime. Treating them as dependencies
296
+ * would type-strip a project file (which `stripTypeScriptTypes` cannot do as
297
+ * faithfully as the compile gate, e.g. it cannot elide type-only imports) and
298
+ * steal it from a host loader. A genuine dependency still has a deeper
299
+ * `node_modules/<pkg>` segment, so it is detected; `.cache` (never a package
300
+ * name) is the only thing skipped.
301
+ */
302
+ function isUnderNodeModules(filename: string): boolean {
303
+ const segments = filename.split(path.sep);
304
+ for (let i = 0; i < segments.length - 1; i += 1) {
305
+ if (segments[i] === "node_modules" && segments[i + 1] !== ".cache") {
306
+ return true;
307
+ }
308
+ }
309
+ return false;
310
+ }
311
+
312
+ function isFile(candidate: string): boolean {
313
+ try {
314
+ return fs.statSync(candidate).isFile();
315
+ } catch {
316
+ return false;
317
+ }
318
+ }