ttsc 0.14.1 → 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/lib/launcher/internal/registerRuntimeHooks.d.ts +1 -0
- package/lib/launcher/internal/registerRuntimeHooks.js +19 -0
- package/lib/launcher/internal/registerRuntimeHooks.js.map +1 -0
- package/lib/launcher/internal/runTtsx.js +19 -0
- package/lib/launcher/internal/runTtsx.js.map +1 -1
- package/lib/launcher/internal/runtimeHooks.d.ts +43 -0
- package/lib/launcher/internal/runtimeHooks.js +257 -0
- package/lib/launcher/internal/runtimeHooks.js.map +1 -0
- package/package.json +9 -9
- package/src/launcher/internal/registerRuntimeHooks.ts +14 -0
- package/src/launcher/internal/runTtsx.ts +20 -0
- package/src/launcher/internal/runtimeHooks.ts +318 -0
|
@@ -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.
|
|
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.
|
|
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.
|
|
36
|
-
"@ttsc/linux-arm": "0.14.
|
|
37
|
-
"@ttsc/linux-arm64": "0.14.
|
|
38
|
-
"@ttsc/darwin-
|
|
39
|
-
"@ttsc/darwin-
|
|
40
|
-
"@ttsc/win32-x64": "0.14.
|
|
41
|
-
"@ttsc/win32-arm64": "0.14.
|
|
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
|
+
}
|