ttsc 0.3.1 → 0.4.0-dev.20260425

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 (121) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +93 -362
  3. package/cmd/ttsc/build.go +128 -0
  4. package/cmd/ttsc/main.go +222 -0
  5. package/cmd/ttsc/main_test.go +288 -0
  6. package/cmd/ttsc/transform.go +166 -0
  7. package/driver/host.go +31 -0
  8. package/driver/program.go +298 -0
  9. package/driver/rewrite.go +315 -0
  10. package/go.mod +48 -0
  11. package/go.sum +22 -0
  12. package/lib/api.d.ts +91 -0
  13. package/lib/api.js +325 -0
  14. package/lib/api.js.map +1 -0
  15. package/lib/cli.d.ts +1 -0
  16. package/lib/cli.js +481 -0
  17. package/lib/cli.js.map +1 -0
  18. package/lib/index.d.ts +18 -0
  19. package/lib/index.js +35 -0
  20. package/lib/index.js.map +1 -0
  21. package/lib/native.d.ts +15 -0
  22. package/lib/native.js +34 -0
  23. package/lib/native.js.map +1 -0
  24. package/lib/platform.d.ts +66 -0
  25. package/lib/platform.js +170 -0
  26. package/lib/platform.js.map +1 -0
  27. package/lib/plugin.d.ts +47 -0
  28. package/lib/plugin.js +150 -0
  29. package/lib/plugin.js.map +1 -0
  30. package/lib/project.d.ts +32 -0
  31. package/lib/project.js +303 -0
  32. package/lib/project.js.map +1 -0
  33. package/lib/runner/cli.d.ts +1 -0
  34. package/lib/runner/cli.js +284 -0
  35. package/lib/runner/cli.js.map +1 -0
  36. package/lib/runner/register.d.ts +13 -0
  37. package/lib/runner/register.js +424 -0
  38. package/lib/runner/register.js.map +1 -0
  39. package/package.json +72 -63
  40. package/shim/ast/extra-shim.json +4 -0
  41. package/shim/ast/go.mod +5 -0
  42. package/shim/ast/shim.go +117 -0
  43. package/shim/bundled/extra-shim.json +1 -0
  44. package/shim/bundled/go.mod +5 -0
  45. package/shim/bundled/shim.go +19 -0
  46. package/shim/checker/extra-shim.json +31 -0
  47. package/shim/checker/go.mod +5 -0
  48. package/shim/checker/shim.go +146 -0
  49. package/shim/compiler/extra-shim.json +4 -0
  50. package/shim/compiler/go.mod +5 -0
  51. package/shim/compiler/shim.go +50 -0
  52. package/shim/core/extra-shim.json +4 -0
  53. package/shim/core/go.mod +5 -0
  54. package/shim/core/shim.go +11 -0
  55. package/shim/diagnosticwriter/go.mod +5 -0
  56. package/shim/diagnosticwriter/shim.go +29 -0
  57. package/shim/parser/extra-shim.json +4 -0
  58. package/shim/parser/go.mod +5 -0
  59. package/shim/parser/shim.go +55 -0
  60. package/shim/scanner/extra-shim.json +4 -0
  61. package/shim/scanner/go.mod +5 -0
  62. package/shim/scanner/shim.go +96 -0
  63. package/shim/tsoptions/extra-shim.json +4 -0
  64. package/shim/tsoptions/go.mod +5 -0
  65. package/shim/tsoptions/shim.go +123 -0
  66. package/shim/tspath/extra-shim.json +4 -0
  67. package/shim/tspath/go.mod +5 -0
  68. package/shim/tspath/shim.go +165 -0
  69. package/shim/vfs/cachedvfs/extra-shim.json +4 -0
  70. package/shim/vfs/cachedvfs/go.mod +5 -0
  71. package/shim/vfs/cachedvfs/shim.go +12 -0
  72. package/shim/vfs/extra-shim.json +4 -0
  73. package/shim/vfs/go.mod +5 -0
  74. package/shim/vfs/osvfs/extra-shim.json +4 -0
  75. package/shim/vfs/osvfs/go.mod +5 -0
  76. package/shim/vfs/osvfs/shim.go +13 -0
  77. package/shim/vfs/shim.go +19 -0
  78. package/src/api.ts +416 -0
  79. package/src/cli.ts +492 -0
  80. package/src/index.ts +19 -0
  81. package/src/launcher/ttsc-dev.js +42 -0
  82. package/src/launcher/ttsc.js +19 -0
  83. package/src/launcher/ttsx.js +19 -0
  84. package/src/native.ts +60 -0
  85. package/src/platform.ts +163 -0
  86. package/src/plugin.ts +241 -0
  87. package/src/project.ts +330 -0
  88. package/src/runner/cli.ts +286 -0
  89. package/src/runner/register.ts +487 -0
  90. package/test/native.test.ts +60 -0
  91. package/test/package.test.ts +131 -0
  92. package/test/platform.test.ts +58 -0
  93. package/test/project.test.ts +195 -0
  94. package/tools/gen_shims/go.mod +14 -0
  95. package/tools/gen_shims/go.sum +12 -0
  96. package/tools/gen_shims/main.go +446 -0
  97. package/CHANGELOG.md +0 -2
  98. package/bin/tsc +0 -2
  99. package/bin/tsserver +0 -2
  100. package/lib/PluginCreator.d.ts +0 -67
  101. package/lib/PluginCreator.js +0 -190
  102. package/lib/cancelationToken.d.ts +0 -0
  103. package/lib/cancelationToken.js +0 -2
  104. package/lib/loadTypescript.d.ts +0 -7
  105. package/lib/loadTypescript.js +0 -56
  106. package/lib/patchCreateProgram.d.ts +0 -21
  107. package/lib/patchCreateProgram.js +0 -190
  108. package/lib/tsc.d.ts +0 -1
  109. package/lib/tsc.js +0 -24
  110. package/lib/tsserver.d.ts +0 -0
  111. package/lib/tsserver.js +0 -2
  112. package/lib/tsserverlibrary.d.ts +0 -3
  113. package/lib/tsserverlibrary.js +0 -4
  114. package/lib/typescript.d.ts +0 -3
  115. package/lib/typescript.js +0 -4
  116. package/lib/typescriptServices.d.ts +0 -3
  117. package/lib/typescriptServices.js +0 -4
  118. package/lib/typingsInstaller.d.ts +0 -0
  119. package/lib/typingsInstaller.js +0 -2
  120. package/lib/watchGuard.d.ts +0 -0
  121. package/lib/watchGuard.js +0 -2
package/lib/project.js ADDED
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.resolveWorkingDirectory = resolveWorkingDirectory;
37
+ exports.resolveAbsolutePath = resolveAbsolutePath;
38
+ exports.resolveProjectConfig = resolveProjectConfig;
39
+ exports.resolveProjectRoot = resolveProjectRoot;
40
+ exports.defaultCacheDirectory = defaultCacheDirectory;
41
+ exports.readProjectConfig = readProjectConfig;
42
+ exports.createTransformCacheKey = createTransformCacheKey;
43
+ const crypto = __importStar(require("node:crypto"));
44
+ const fs = __importStar(require("node:fs"));
45
+ const node_module_1 = require("node:module");
46
+ const path = __importStar(require("node:path"));
47
+ function resolveWorkingDirectory(cwd) {
48
+ return path.resolve(cwd ?? process.cwd());
49
+ }
50
+ function resolveAbsolutePath(cwd, target) {
51
+ return path.isAbsolute(target) ? target : path.resolve(cwd, target);
52
+ }
53
+ function resolveProjectConfig(opts = {}) {
54
+ const cwd = resolveWorkingDirectory(opts.cwd);
55
+ if (opts.tsconfig) {
56
+ const resolved = resolveAbsolutePath(cwd, opts.tsconfig);
57
+ if (!fs.existsSync(resolved)) {
58
+ throw new Error(`ttsc: tsconfig not found: ${resolved}`);
59
+ }
60
+ return resolveRealPath(resolved);
61
+ }
62
+ const start = opts.file
63
+ ? resolveRealPath(resolveAbsolutePath(cwd, opts.file))
64
+ : cwd;
65
+ const from = isDirectory(start) ? start : path.dirname(start);
66
+ const found = findUp(from, ["tsconfig.json", "jsconfig.json"]);
67
+ if (!found) {
68
+ throw new Error(`ttsc: could not find tsconfig.json or jsconfig.json starting from ${from}`);
69
+ }
70
+ return resolveRealPath(found);
71
+ }
72
+ function resolveProjectRoot(opts = {}) {
73
+ return path.dirname(resolveProjectConfig(opts));
74
+ }
75
+ function defaultCacheDirectory(projectRoot, tool) {
76
+ return path.join(projectRoot, "node_modules", ".cache", "ttsc", tool);
77
+ }
78
+ function readProjectConfig(opts = {}) {
79
+ const tsconfig = resolveProjectConfig(opts);
80
+ const root = path.dirname(tsconfig);
81
+ const compilerOptions = readResolvedCompilerOptions(tsconfig);
82
+ return {
83
+ compilerOptions: {
84
+ outDir: compilerOptions.outDir,
85
+ plugins: compilerOptions.plugins,
86
+ },
87
+ path: tsconfig,
88
+ root,
89
+ };
90
+ }
91
+ function createTransformCacheKey(input) {
92
+ const hash = crypto.createHash("sha256");
93
+ hash.update("file\0");
94
+ hash.update(fs.readFileSync(input.file));
95
+ hash.update("\0tsconfig\0");
96
+ hash.update(fs.readFileSync(input.tsconfig));
97
+ hash.update(`\0version\0${input.version}`);
98
+ hash.update(`\0mode\0${input.mode ?? ""}`);
99
+ for (const item of input.extra ?? []) {
100
+ hash.update(`\0extra\0${item}`);
101
+ }
102
+ return hash.digest("hex");
103
+ }
104
+ function findUp(from, names) {
105
+ let current = path.resolve(from);
106
+ while (true) {
107
+ for (const name of names) {
108
+ const candidate = path.join(current, name);
109
+ if (fs.existsSync(candidate)) {
110
+ return candidate;
111
+ }
112
+ }
113
+ const parent = path.dirname(current);
114
+ if (parent === current) {
115
+ return null;
116
+ }
117
+ current = parent;
118
+ }
119
+ }
120
+ function isDirectory(location) {
121
+ try {
122
+ return fs.statSync(location).isDirectory();
123
+ }
124
+ catch {
125
+ return false;
126
+ }
127
+ }
128
+ function isProjectPluginConfig(value) {
129
+ return typeof value === "object" && value !== null;
130
+ }
131
+ function resolveRealPath(location) {
132
+ try {
133
+ return fs.realpathSync(location);
134
+ }
135
+ catch {
136
+ return location;
137
+ }
138
+ }
139
+ function readResolvedCompilerOptions(tsconfig, seen = new Set()) {
140
+ const canonical = resolveRealPath(tsconfig);
141
+ if (seen.has(canonical)) {
142
+ throw new Error(`ttsc: circular tsconfig extends detected: ${canonical}`);
143
+ }
144
+ seen.add(canonical);
145
+ const parsed = parseJsonc(fs.readFileSync(canonical, "utf8"));
146
+ const own = parsed.compilerOptions;
147
+ const base = typeof parsed.extends === "string"
148
+ ? readResolvedCompilerOptions(resolveExtendsConfig(canonical, parsed.extends), seen)
149
+ : { plugins: [] };
150
+ return {
151
+ outDir: typeof own?.outDir === "string"
152
+ ? resolveAbsolutePath(path.dirname(canonical), own.outDir)
153
+ : base.outDir,
154
+ plugins: Array.isArray(own?.plugins)
155
+ ? own.plugins.filter(isProjectPluginConfig)
156
+ : base.plugins,
157
+ };
158
+ }
159
+ function resolveExtendsConfig(tsconfig, specifier) {
160
+ const baseDir = path.dirname(tsconfig);
161
+ if (path.isAbsolute(specifier)) {
162
+ return resolveExistingExtendsPath(specifier);
163
+ }
164
+ if (isRelativePluginSpecifier(specifier)) {
165
+ return resolveExistingExtendsPath(path.resolve(baseDir, specifier));
166
+ }
167
+ const resolver = (0, node_module_1.createRequire)(tsconfig);
168
+ try {
169
+ return resolveRealPath(resolver.resolve(specifier));
170
+ }
171
+ catch {
172
+ return resolveRealPath(resolver.resolve(`${specifier}.json`));
173
+ }
174
+ }
175
+ function resolveExistingExtendsPath(location) {
176
+ const candidates = new Set([
177
+ location,
178
+ `${location}.json`,
179
+ path.join(location, "tsconfig.json"),
180
+ ]);
181
+ for (const candidate of candidates) {
182
+ if (fs.existsSync(candidate)) {
183
+ return resolveRealPath(candidate);
184
+ }
185
+ }
186
+ throw new Error(`ttsc: extended tsconfig not found: ${location}`);
187
+ }
188
+ function isRelativePluginSpecifier(specifier) {
189
+ return (specifier === "." ||
190
+ specifier === ".." ||
191
+ specifier.startsWith("./") ||
192
+ specifier.startsWith("../") ||
193
+ specifier.startsWith(".\\") ||
194
+ specifier.startsWith("..\\"));
195
+ }
196
+ function parseJsonc(input) {
197
+ return JSON.parse(stripTrailingCommas(stripComments(input)));
198
+ }
199
+ function stripComments(input) {
200
+ let output = "";
201
+ let inBlockComment = false;
202
+ let inLineComment = false;
203
+ let inString = false;
204
+ let quote = "";
205
+ let escape = false;
206
+ for (let i = 0; i < input.length; i += 1) {
207
+ const current = input[i];
208
+ const next = input[i + 1];
209
+ if (inBlockComment) {
210
+ if (current === "*" && next === "/") {
211
+ inBlockComment = false;
212
+ i += 1;
213
+ }
214
+ continue;
215
+ }
216
+ if (inLineComment) {
217
+ if (current === "\n") {
218
+ inLineComment = false;
219
+ output += current;
220
+ }
221
+ continue;
222
+ }
223
+ if (inString) {
224
+ output += current;
225
+ if (escape) {
226
+ escape = false;
227
+ }
228
+ else if (current === "\\") {
229
+ escape = true;
230
+ }
231
+ else if (current === quote) {
232
+ inString = false;
233
+ quote = "";
234
+ }
235
+ continue;
236
+ }
237
+ if ((current === '"' || current === "'") && !inString) {
238
+ inString = true;
239
+ quote = current;
240
+ output += current;
241
+ continue;
242
+ }
243
+ if (current == "/" && next === "/") {
244
+ inLineComment = true;
245
+ i += 1;
246
+ continue;
247
+ }
248
+ if (current == "/" && next === "*") {
249
+ inBlockComment = true;
250
+ i += 1;
251
+ continue;
252
+ }
253
+ output += current;
254
+ }
255
+ return output;
256
+ }
257
+ function stripTrailingCommas(input) {
258
+ let output = "";
259
+ let inString = false;
260
+ let quote = "";
261
+ let escape = false;
262
+ for (let i = 0; i < input.length; i += 1) {
263
+ const current = input[i];
264
+ if (inString) {
265
+ output += current;
266
+ if (escape) {
267
+ escape = false;
268
+ }
269
+ else if (current === "\\") {
270
+ escape = true;
271
+ }
272
+ else if (current === quote) {
273
+ inString = false;
274
+ quote = "";
275
+ }
276
+ continue;
277
+ }
278
+ if (current === '"' || current === "'") {
279
+ inString = true;
280
+ quote = current;
281
+ output += current;
282
+ continue;
283
+ }
284
+ if (current === ",") {
285
+ const next = nextNonWhitespace(input, i + 1);
286
+ if (next === "}" || next === "]") {
287
+ continue;
288
+ }
289
+ }
290
+ output += current;
291
+ }
292
+ return output;
293
+ }
294
+ function nextNonWhitespace(input, from) {
295
+ for (let i = from; i < input.length; i += 1) {
296
+ const current = input[i];
297
+ if (/\s/.test(current) === false) {
298
+ return current;
299
+ }
300
+ }
301
+ return undefined;
302
+ }
303
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function main(argv?: readonly string[]): number;
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.main = main;
37
+ const fs = __importStar(require("node:fs"));
38
+ const Module = require("node:module");
39
+ const node_child_process_1 = require("node:child_process");
40
+ const path = __importStar(require("node:path"));
41
+ const api_1 = require("../api");
42
+ const register_1 = require("./register");
43
+ function main(argv = process.argv.slice(2)) {
44
+ try {
45
+ return run(argv);
46
+ }
47
+ catch (error) {
48
+ process.stderr.write(`${formatError(error)}\n`);
49
+ return 2;
50
+ }
51
+ }
52
+ function run(argv) {
53
+ const parsed = parseCLI(argv);
54
+ if (parsed === "help") {
55
+ printHelp();
56
+ return 0;
57
+ }
58
+ if (parsed === "version") {
59
+ process.stdout.write(`${(0, api_1.version)().replace(/^ttsc\b/, "ttsx")}\n`);
60
+ return 0;
61
+ }
62
+ const cwd = path.resolve(parsed.cwd ?? process.cwd());
63
+ const entry = path.resolve(cwd, parsed.entry);
64
+ if (!fs.existsSync(entry)) {
65
+ process.stderr.write(`ttsx: entry not found: ${entry}\n`);
66
+ return 2;
67
+ }
68
+ const prepared = (0, register_1.prepareExecution)(entry, {
69
+ binary: parsed.binary,
70
+ cacheDir: parsed.cacheDir,
71
+ cwd,
72
+ env: parsed.env,
73
+ extensions: parsed.extensions,
74
+ project: parsed.project,
75
+ });
76
+ if (prepared.moduleKind === "esm") {
77
+ return runEsmEntry(parsed, prepared, cwd);
78
+ }
79
+ const unregister = (0, register_1.register)({
80
+ binary: parsed.binary,
81
+ cacheDir: parsed.cacheDir,
82
+ cwd,
83
+ env: parsed.env,
84
+ extensions: parsed.extensions,
85
+ project: parsed.project,
86
+ });
87
+ process.once("exit", unregister);
88
+ for (const preload of parsed.preload) {
89
+ require(resolvePreload(cwd, preload));
90
+ }
91
+ process.argv = [process.execPath, entry, ...parsed.passthrough];
92
+ Module.runMain();
93
+ return 0;
94
+ }
95
+ function formatError(error) {
96
+ if (error instanceof Error) {
97
+ return error.message;
98
+ }
99
+ return String(error);
100
+ }
101
+ function parseCLI(argv) {
102
+ const preload = [];
103
+ const passthroughIndex = argv.indexOf("--");
104
+ const head = passthroughIndex === -1 ? [...argv] : [...argv.slice(0, passthroughIndex)];
105
+ const passthrough = passthroughIndex === -1 ? [] : [...argv.slice(passthroughIndex + 1)];
106
+ let binary;
107
+ let cacheDir;
108
+ let cwd;
109
+ let entry;
110
+ let project;
111
+ while (head.length !== 0) {
112
+ const current = head.shift();
113
+ if (entry) {
114
+ passthrough.push(current, ...head);
115
+ break;
116
+ }
117
+ switch (current) {
118
+ case "-h":
119
+ case "--help":
120
+ return "help";
121
+ case "-v":
122
+ case "--version":
123
+ return "version";
124
+ case "-P":
125
+ case "--project":
126
+ project = takeValue(current, head);
127
+ break;
128
+ case "--cwd":
129
+ cwd = takeValue(current, head);
130
+ break;
131
+ case "--cache-dir":
132
+ cacheDir = takeValue(current, head);
133
+ break;
134
+ case "-r":
135
+ case "--require":
136
+ preload.push(takeValue(current, head));
137
+ break;
138
+ case "--binary":
139
+ binary = takeValue(current, head);
140
+ break;
141
+ default:
142
+ if (current.startsWith("--project=")) {
143
+ project = current.slice("--project=".length);
144
+ }
145
+ else if (current.startsWith("--cwd=")) {
146
+ cwd = current.slice("--cwd=".length);
147
+ }
148
+ else if (current.startsWith("--cache-dir=")) {
149
+ cacheDir = current.slice("--cache-dir=".length);
150
+ }
151
+ else if (current.startsWith("--binary=")) {
152
+ binary = current.slice("--binary=".length);
153
+ }
154
+ else if (current.startsWith("-")) {
155
+ throw new Error(`ttsx: unknown option ${current}`);
156
+ }
157
+ else {
158
+ entry = current;
159
+ }
160
+ break;
161
+ }
162
+ }
163
+ if (!entry) {
164
+ throw new Error("ttsx: entry file is required");
165
+ }
166
+ return {
167
+ binary,
168
+ cacheDir,
169
+ cwd,
170
+ entry,
171
+ passthrough,
172
+ preload,
173
+ project,
174
+ };
175
+ }
176
+ function printHelp() {
177
+ process.stdout.write([
178
+ "ttsx — TypeScript runner provided by ttsc.",
179
+ "",
180
+ "Usage:",
181
+ " ttsx [options] <entry.ts> [-- <argv...>]",
182
+ "",
183
+ "Options:",
184
+ " -P, --project <file> Use an explicit tsconfig.json",
185
+ " --cwd <dir> Resolve entry/project relative to this directory",
186
+ " --cache-dir <dir> Override the compiled JS cache directory",
187
+ " --binary <path> Use an explicit ttsc native binary",
188
+ " -r, --require <file> Preload a module before the entrypoint",
189
+ " -h, --help Show this help",
190
+ " -v, --version Print the runner version",
191
+ "",
192
+ "Runtime:",
193
+ " CommonJS projects execute in-process via the require hook.",
194
+ " ESM projects execute the cached emitted entry in a child Node process.",
195
+ "",
196
+ "Examples:",
197
+ " ttsx src/index.ts",
198
+ " ttsx --project tsconfig.json src/index.ts -- --port 3000",
199
+ ].join("\n"));
200
+ process.stdout.write("\n");
201
+ }
202
+ function resolvePreload(cwd, preload) {
203
+ if (preload.startsWith(".") || preload.startsWith("/") || preload.includes(path.sep)) {
204
+ return path.resolve(cwd, preload);
205
+ }
206
+ return preload;
207
+ }
208
+ function takeValue(flag, rest) {
209
+ const value = rest.shift();
210
+ if (!value) {
211
+ throw new Error(`ttsx: ${flag} requires a value`);
212
+ }
213
+ return value;
214
+ }
215
+ function runEsmEntry(parsed, execution, cwd) {
216
+ fs.mkdirSync(execution.emitDir, { recursive: true });
217
+ rewriteEsmSpecifiers(execution.emitDir);
218
+ fs.writeFileSync(path.join(execution.emitDir, "package.json"), JSON.stringify({ type: "module" }), "utf8");
219
+ const args = [
220
+ ...parsed.preload.flatMap((preload) => ["-r", resolvePreload(cwd, preload)]),
221
+ execution.entryFile,
222
+ ...parsed.passthrough,
223
+ ];
224
+ const result = (0, node_child_process_1.spawnSync)(process.execPath, args, {
225
+ stdio: "inherit",
226
+ env: process.env,
227
+ windowsHide: true,
228
+ });
229
+ if (result.error) {
230
+ process.stderr.write(`${result.error.message}\n`);
231
+ return 1;
232
+ }
233
+ return result.status ?? 1;
234
+ }
235
+ function rewriteEsmSpecifiers(root) {
236
+ const stack = [root];
237
+ while (stack.length !== 0) {
238
+ const current = stack.pop();
239
+ for (const entry of fs.readdirSync(current, { withFileTypes: true })) {
240
+ const next = path.join(current, entry.name);
241
+ if (entry.isDirectory()) {
242
+ stack.push(next);
243
+ continue;
244
+ }
245
+ if (!entry.isFile() || !isJavaScriptOutput(next)) {
246
+ continue;
247
+ }
248
+ const before = fs.readFileSync(next, "utf8");
249
+ const after = before
250
+ .replace(/\bfrom\s+(['"])(\.[^'"]+)\1/g, (_, quote, specifier) => `from ${quote}${withResolvableExtension(next, specifier)}${quote}`)
251
+ .replace(/\bimport\(\s*(['"])(\.[^'"]+)\1\s*\)/g, (_, quote, specifier) => `import(${quote}${withResolvableExtension(next, specifier)}${quote})`);
252
+ if (after !== before) {
253
+ fs.writeFileSync(next, after, "utf8");
254
+ }
255
+ }
256
+ }
257
+ }
258
+ function withResolvableExtension(fromFile, specifier) {
259
+ if (!specifier.startsWith(".")) {
260
+ return specifier;
261
+ }
262
+ if (/\.(?:[cm]?js|json|node)$/i.test(specifier)) {
263
+ return specifier;
264
+ }
265
+ const [pathname, suffix = ""] = splitSpecifierSuffix(specifier);
266
+ const fromDir = path.dirname(fromFile);
267
+ for (const extension of [".js", ".mjs", ".cjs"]) {
268
+ if (fs.existsSync(path.resolve(fromDir, pathname + extension))) {
269
+ return pathname + extension + suffix;
270
+ }
271
+ }
272
+ return `${specifier}.js`;
273
+ }
274
+ function splitSpecifierSuffix(specifier) {
275
+ const index = specifier.search(/[?#]/);
276
+ if (index === -1) {
277
+ return [specifier];
278
+ }
279
+ return [specifier.slice(0, index), specifier.slice(index)];
280
+ }
281
+ function isJavaScriptOutput(filename) {
282
+ return /\.(?:[cm]?js)$/i.test(filename);
283
+ }
284
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/runner/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAY,EAAE,oCAAgB;AAC9B,MAAO,MAAM,0BAA0B;AACvC,2DAA+C;AAC/C,MAAY,IAAI,sCAAkB;AAElC,gCAAiC;AACjC,yCAKoB;AAQpB,cAAqB,IAAI,GAAsB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,IAAuB;IAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,aAAO,GAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,2BAAgB,EAAC,KAAK,EAAE;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG;QACH,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,mBAAQ,EAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG;QACH,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACrC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAChE,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAuB;IACvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzF,IAAI,MAA0B,CAAC;IAC/B,IAAI,QAA4B,CAAC;IACjC,IAAI,GAAuB,CAAC;IAC5B,IAAI,KAAyB,CAAC;IAC9B,IAAI,OAA2B,CAAC;IAEhC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAG,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACnC,MAAM;QACR,CAAC;QACD,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC;YAChB,KAAK,IAAI,CAAC;YACV,KAAK,WAAW;gBACd,OAAO,SAAS,CAAC;YACnB,KAAK,IAAI,CAAC;YACV,KAAK,WAAW;gBACd,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,OAAO;gBACV,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,aAAa;gBAChB,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,IAAI,CAAC;YACV,KAAK,WAAW;gBACd,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClC,MAAM;YACR;gBACE,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBACrC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;qBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;qBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC9C,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3C,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC;qBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACd,KAAK,GAAG,OAAO,CAAC;gBAClB,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,GAAG;QACH,KAAK;QACL,WAAW;QACX,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,4CAA4C;QAC5C,EAAE;QACF,QAAQ;QACR,4CAA4C;QAC5C,EAAE;QACF,UAAU;QACV,wDAAwD;QACxD,2EAA2E;QAC3E,mEAAmE;QACnE,6DAA6D;QAC7D,iEAAiE;QACjE,yCAAyC;QACzC,mDAAmD;QACnD,EAAE;QACF,UAAU;QACV,8DAA8D;QAC9D,0EAA0E;QAC1E,EAAE;QACF,WAAW;QACX,qBAAqB;QACrB,4DAA4D;KAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,OAAe;IAClD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACrF,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,IAAc;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,MAAiB,EAAE,SAA4B,EAAE,GAAW;IAC/E,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAClC,MAAM,CACP,CAAC;IACF,MAAM,IAAI,GAAG;QACX,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5E,SAAS,CAAC,SAAS;QACnB,GAAG,MAAM,CAAC,WAAW;KACtB,CAAC;IACF,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;QAC/C,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM;iBACjB,OAAO,CACN,8BAA8B,EAC9B,CAAC,CAAC,EAAE,KAAa,EAAE,SAAiB,EAAE,EAAE,CACtC,QAAQ,KAAK,GAAG,uBAAuB,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CACrE;iBACA,OAAO,CACN,uCAAuC,EACvC,CAAC,CAAC,EAAE,KAAa,EAAE,SAAiB,EAAE,EAAE,CACtC,UAAU,KAAK,GAAG,uBAAuB,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,CACxE,CAAC;YACJ,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB,EAAE,SAAiB;IAClE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,KAAK,MAAM,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAChD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,SAAS,KAAK,CAAC;AAC3B,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type CommonOptions } from "../api";
2
+ export interface RegisterOptions extends CommonOptions {
3
+ cacheDir?: string;
4
+ project?: string;
5
+ extensions?: readonly string[];
6
+ }
7
+ export interface PreparedExecution {
8
+ emitDir: string;
9
+ entryFile: string;
10
+ moduleKind: "cjs" | "esm";
11
+ }
12
+ export declare function register(options?: RegisterOptions): () => void;
13
+ export declare function prepareExecution(entryFile: string, options?: RegisterOptions): PreparedExecution;