ttsc 0.4.4-dev.20260426 → 0.5.0-dev.20260429

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 (49) hide show
  1. package/README.md +35 -3
  2. package/cmd/ttsc/main.go +2 -2
  3. package/driver/program.go +120 -15
  4. package/go.mod +3 -3
  5. package/go.sum +6 -6
  6. package/lib/api.d.ts +3 -3
  7. package/lib/api.js +275 -624
  8. package/lib/api.js.map +1 -1
  9. package/lib/cli.js +78 -2
  10. package/lib/cli.js.map +1 -1
  11. package/lib/index.d.ts +3 -3
  12. package/lib/index.js +3 -3
  13. package/lib/native.d.ts +5 -0
  14. package/lib/native.js +8 -0
  15. package/lib/native.js.map +1 -1
  16. package/lib/plugin.d.ts +8 -48
  17. package/lib/plugin.js +79 -132
  18. package/lib/plugin.js.map +1 -1
  19. package/lib/runner/cli.js +1 -0
  20. package/lib/runner/cli.js.map +1 -1
  21. package/lib/source-build.d.ts +30 -0
  22. package/lib/source-build.js +365 -0
  23. package/lib/source-build.js.map +1 -0
  24. package/package.json +9 -9
  25. package/shim/ast/go.mod +1 -1
  26. package/shim/ast/lint.go +328 -0
  27. package/shim/bundled/go.mod +1 -1
  28. package/shim/checker/go.mod +1 -1
  29. package/shim/compiler/go.mod +1 -1
  30. package/shim/core/go.mod +1 -1
  31. package/shim/core/shim.go +15 -0
  32. package/shim/diagnosticwriter/go.mod +1 -1
  33. package/shim/diagnosticwriter/lint.go +137 -0
  34. package/shim/parser/go.mod +1 -1
  35. package/shim/scanner/go.mod +1 -1
  36. package/shim/tsoptions/go.mod +1 -1
  37. package/shim/tspath/go.mod +1 -1
  38. package/shim/vfs/cachedvfs/go.mod +1 -1
  39. package/shim/vfs/go.mod +1 -1
  40. package/shim/vfs/osvfs/go.mod +1 -1
  41. package/src/api.ts +413 -771
  42. package/src/cli.ts +82 -2
  43. package/src/index.ts +3 -3
  44. package/src/native.ts +18 -0
  45. package/src/plugin.ts +107 -213
  46. package/src/runner/cli.ts +5 -0
  47. package/src/source-build.ts +383 -0
  48. package/test/native.test.ts +43 -0
  49. package/test/source-build.test.ts +219 -0
@@ -0,0 +1,365 @@
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.buildSourcePlugin = buildSourcePlugin;
37
+ exports.goBinaryName = goBinaryName;
38
+ exports.bundledGoPackageRequest = bundledGoPackageRequest;
39
+ exports.resolvePluginCacheRoot = resolvePluginCacheRoot;
40
+ exports.resolveDefaultPluginCacheRoot = resolveDefaultPluginCacheRoot;
41
+ exports.pluginCacheCleanupTargets = pluginCacheCleanupTargets;
42
+ exports.resolveGoCompiler = resolveGoCompiler;
43
+ exports.computeCacheKey = computeCacheKey;
44
+ const node_child_process_1 = require("node:child_process");
45
+ const crypto = __importStar(require("node:crypto"));
46
+ const fs = __importStar(require("node:fs"));
47
+ const node_module_1 = require("node:module");
48
+ const path = __importStar(require("node:path"));
49
+ function buildSourcePlugin(opts) {
50
+ const dir = path.isAbsolute(opts.source.dir)
51
+ ? opts.source.dir
52
+ : path.resolve(opts.baseDir, opts.source.dir);
53
+ if (!fs.existsSync(dir) || !fs.statSync(dir).isDirectory()) {
54
+ throw new Error(`ttsc: plugin "${opts.pluginName}" native.source.dir does not exist: ${dir}`);
55
+ }
56
+ const entry = opts.source.entry ?? ".";
57
+ const key = computeCacheKey({
58
+ dir,
59
+ entry,
60
+ ttscVersion: opts.ttscVersion,
61
+ tsgoVersion: opts.tsgoVersion,
62
+ });
63
+ const root = resolvePluginCacheRoot(opts.baseDir);
64
+ const cacheDir = path.join(root, key);
65
+ const binaryName = process.platform === "win32" ? "plugin.exe" : "plugin";
66
+ const binaryPath = path.join(cacheDir, binaryName);
67
+ if (fs.existsSync(binaryPath)) {
68
+ return binaryPath;
69
+ }
70
+ fs.mkdirSync(cacheDir, { recursive: true });
71
+ process.stderr.write(`ttsc: building source plugin "${opts.pluginName}" from ${dir} (this runs once per cache key)\n`);
72
+ const scratchDir = path.join(root, `scratch-${key}-${process.pid}-${Date.now()}`);
73
+ try {
74
+ materializeScratchDir(dir, scratchDir);
75
+ writeGoWork(scratchDir, findTtscOverlayDirs());
76
+ runGoBuild(scratchDir, entry, binaryName, opts.pluginName);
77
+ const builtBinary = path.join(scratchDir, binaryName);
78
+ fs.renameSync(builtBinary, binaryPath);
79
+ if (process.platform !== "win32") {
80
+ fs.chmodSync(binaryPath, 0o755);
81
+ }
82
+ return binaryPath;
83
+ }
84
+ finally {
85
+ fs.rmSync(scratchDir, { recursive: true, force: true });
86
+ }
87
+ }
88
+ function materializeScratchDir(source, scratch) {
89
+ fs.mkdirSync(scratch, { recursive: true });
90
+ fs.cpSync(source, scratch, {
91
+ recursive: true,
92
+ filter: (src) => {
93
+ const base = path.basename(src);
94
+ if (SKIP_DIRS.has(base))
95
+ return false;
96
+ if (base === "go.work" || base === "go.work.sum")
97
+ return false;
98
+ return true;
99
+ },
100
+ });
101
+ }
102
+ function writeGoWork(scratchDir, useDirs) {
103
+ const useLines = ["\t."];
104
+ for (const dir of useDirs) {
105
+ useLines.push(`\t${dir.replace(/\\/g, "/")}`);
106
+ }
107
+ const goWork = `go 1.26\n\nuse (\n${useLines.join("\n")}\n)\n`;
108
+ fs.writeFileSync(path.join(scratchDir, "go.work"), goWork, "utf8");
109
+ }
110
+ function runGoBuild(cwd, entry, binaryName, pluginName) {
111
+ const goBinary = resolveGoBinary();
112
+ ensureExecutableGoToolchain(goBinary);
113
+ const result = (0, node_child_process_1.spawnSync)(goBinary, ["build", "-o", binaryName, entry], {
114
+ cwd,
115
+ encoding: "utf8",
116
+ env: goBuildEnv(goBinary),
117
+ maxBuffer: 1024 * 1024 * 64,
118
+ windowsHide: true,
119
+ });
120
+ if (result.error) {
121
+ if (result.error.code === "ENOENT") {
122
+ throw new Error(`ttsc: building plugin "${pluginName}" failed because the Go toolchain was not found. ` +
123
+ `Reinstall ttsc with optional dependencies so the bundled Go compiler is present, ` +
124
+ `or set TTSC_GO_BINARY to an absolute path.`);
125
+ }
126
+ throw new Error(`ttsc: building plugin "${pluginName}" failed to spawn ${goBinary}: ${result.error.message}`);
127
+ }
128
+ if (result.status !== 0) {
129
+ throw new Error(`ttsc: building plugin "${pluginName}" via "go build" failed:\n${result.stderr || result.stdout}`);
130
+ }
131
+ }
132
+ function goBuildEnv(goBinary) {
133
+ const env = { ...process.env };
134
+ const goRoot = inferGoRoot(goBinary);
135
+ if (goRoot && !env.GOROOT) {
136
+ env.GOROOT = goRoot;
137
+ }
138
+ return env;
139
+ }
140
+ function inferGoRoot(goBinary) {
141
+ if (!path.isAbsolute(goBinary))
142
+ return null;
143
+ const binDir = path.dirname(goBinary);
144
+ if (path.basename(binDir) !== "bin")
145
+ return null;
146
+ const goRoot = path.dirname(binDir);
147
+ return fs.existsSync(path.join(goRoot, "src", "runtime")) ? goRoot : null;
148
+ }
149
+ function ensureExecutableGoToolchain(goBinary) {
150
+ if (process.platform === "win32")
151
+ return;
152
+ if (!path.isAbsolute(goBinary) || !fs.existsSync(goBinary))
153
+ return;
154
+ try {
155
+ fs.chmodSync(goBinary, 0o755);
156
+ const goRoot = inferGoRoot(goBinary);
157
+ if (!goRoot)
158
+ return;
159
+ const gofmt = path.join(path.dirname(goBinary), "gofmt");
160
+ if (fs.existsSync(gofmt))
161
+ fs.chmodSync(gofmt, 0o755);
162
+ const toolDir = path.join(goRoot, "pkg", "tool");
163
+ if (!fs.existsSync(toolDir))
164
+ return;
165
+ for (const file of walkToolFiles(toolDir)) {
166
+ fs.chmodSync(file, 0o755);
167
+ }
168
+ }
169
+ catch {
170
+ // Let the subsequent go build spawn fail with the real OS error.
171
+ }
172
+ }
173
+ function walkToolFiles(dir) {
174
+ const out = [];
175
+ let entries;
176
+ try {
177
+ entries = fs.readdirSync(dir, { withFileTypes: true });
178
+ }
179
+ catch {
180
+ return out;
181
+ }
182
+ for (const entry of entries) {
183
+ const file = path.join(dir, entry.name);
184
+ if (entry.isDirectory()) {
185
+ out.push(...walkToolFiles(file));
186
+ }
187
+ else if (entry.isFile()) {
188
+ out.push(file);
189
+ }
190
+ }
191
+ return out;
192
+ }
193
+ function goBinaryName(opts = {}) {
194
+ return (opts.platform ?? process.platform) === "win32" ? "go.exe" : "go";
195
+ }
196
+ function bundledGoPackageRequest(opts = {}) {
197
+ return `@ttsc/${goPlatformKey(opts)}/bin/go/bin/${goBinaryName(opts)}`;
198
+ }
199
+ let cachedOverlayDirs = null;
200
+ function findTtscOverlayDirs() {
201
+ if (cachedOverlayDirs !== null) {
202
+ return cachedOverlayDirs;
203
+ }
204
+ const ttscRoot = path.resolve(__dirname, "..");
205
+ const dirs = [];
206
+ if (fs.existsSync(path.join(ttscRoot, "go.mod"))) {
207
+ dirs.push(ttscRoot);
208
+ }
209
+ const shimRoot = path.join(ttscRoot, "shim");
210
+ if (fs.existsSync(shimRoot)) {
211
+ walkForGoMod(shimRoot, dirs);
212
+ }
213
+ dirs.sort();
214
+ cachedOverlayDirs = dirs;
215
+ return dirs;
216
+ }
217
+ function walkForGoMod(dir, out) {
218
+ let entries;
219
+ try {
220
+ entries = fs.readdirSync(dir, { withFileTypes: true });
221
+ }
222
+ catch {
223
+ return;
224
+ }
225
+ let hasGoMod = false;
226
+ for (const entry of entries) {
227
+ if (entry.isFile() && entry.name === "go.mod") {
228
+ hasGoMod = true;
229
+ }
230
+ }
231
+ if (hasGoMod) {
232
+ out.push(dir);
233
+ }
234
+ for (const entry of entries) {
235
+ if (!entry.isDirectory())
236
+ continue;
237
+ if (SKIP_DIRS.has(entry.name))
238
+ continue;
239
+ walkForGoMod(path.join(dir, entry.name), out);
240
+ }
241
+ }
242
+ function resolvePluginCacheRoot(projectRoot) {
243
+ if (process.env.TTSC_CACHE_DIR) {
244
+ return path.resolve(process.env.TTSC_CACHE_DIR, "plugins");
245
+ }
246
+ return resolveDefaultPluginCacheRoot(projectRoot);
247
+ }
248
+ function resolveDefaultPluginCacheRoot(projectRoot) {
249
+ const root = path.resolve(projectRoot);
250
+ const nodeModules = path.join(root, "node_modules");
251
+ if (isDirectory(nodeModules)) {
252
+ return path.join(nodeModules, ".ttsc", "plugins");
253
+ }
254
+ return path.join(root, ".ttsc", "plugins");
255
+ }
256
+ function pluginCacheCleanupTargets(projectRoot) {
257
+ const root = path.resolve(projectRoot);
258
+ const targets = [
259
+ path.join(root, "node_modules", ".ttsc"),
260
+ path.join(root, ".ttsc"),
261
+ ];
262
+ if (process.env.TTSC_CACHE_DIR) {
263
+ targets.push(path.resolve(process.env.TTSC_CACHE_DIR, "plugins"));
264
+ }
265
+ return [...new Set(targets)];
266
+ }
267
+ function isDirectory(candidate) {
268
+ try {
269
+ return fs.statSync(candidate).isDirectory();
270
+ }
271
+ catch {
272
+ return false;
273
+ }
274
+ }
275
+ function resolveGoBinary() {
276
+ return resolveGoCompiler();
277
+ }
278
+ function resolveGoCompiler(opts = {}) {
279
+ const env = opts.env ?? process.env;
280
+ const explicit = env.TTSC_GO_BINARY;
281
+ if (explicit && explicit.length > 0)
282
+ return explicit;
283
+ const resolver = opts.resolver ??
284
+ ((request) => (0, node_module_1.createRequire)(__filename).resolve(request));
285
+ try {
286
+ return resolver(bundledGoPackageRequest(opts));
287
+ }
288
+ catch {
289
+ /* fall through */
290
+ }
291
+ if (opts.localGoLookup) {
292
+ const local = opts.localGoLookup();
293
+ if (local)
294
+ return local;
295
+ }
296
+ else {
297
+ const local = defaultLocalGoBinaryPath(opts);
298
+ if (local)
299
+ return local;
300
+ }
301
+ return "go";
302
+ }
303
+ function defaultLocalGoBinaryPath(opts) {
304
+ const candidate = path.resolve(__dirname, "..", "native", "go", "bin", goBinaryName(opts));
305
+ return fs.existsSync(candidate) ? candidate : null;
306
+ }
307
+ function goPlatformKey(opts = {}) {
308
+ return `${opts.platform ?? process.platform}-${opts.arch ?? process.arch}`;
309
+ }
310
+ function computeCacheKey(inputs) {
311
+ const hash = crypto.createHash("sha256");
312
+ hash.update(`ttsc=${inputs.ttscVersion}\n`);
313
+ hash.update(`tsgo=${inputs.tsgoVersion}\n`);
314
+ hash.update(`platform=${process.platform}/${process.arch}\n`);
315
+ hash.update(`entry=${inputs.entry}\n`);
316
+ for (const file of collectSourceFiles(inputs.dir)) {
317
+ const rel = path.relative(inputs.dir, file).replace(/\\/g, "/");
318
+ hash.update(`f=${rel}\n`);
319
+ hash.update(fs.readFileSync(file));
320
+ }
321
+ return hash.digest("hex").slice(0, 32);
322
+ }
323
+ const SKIP_DIRS = new Set([
324
+ "node_modules",
325
+ ".git",
326
+ "dist",
327
+ "build",
328
+ "vendor",
329
+ "lib",
330
+ ]);
331
+ function collectSourceFiles(root) {
332
+ const out = [];
333
+ walk(root, root, out);
334
+ out.sort();
335
+ return out;
336
+ }
337
+ function walk(root, dir, out) {
338
+ let entries;
339
+ try {
340
+ entries = fs.readdirSync(dir, { withFileTypes: true });
341
+ }
342
+ catch {
343
+ return;
344
+ }
345
+ for (const entry of entries) {
346
+ if (SKIP_DIRS.has(entry.name))
347
+ continue;
348
+ const full = path.join(dir, entry.name);
349
+ if (entry.isDirectory()) {
350
+ walk(root, full, out);
351
+ continue;
352
+ }
353
+ if (!entry.isFile())
354
+ continue;
355
+ if (!isHashableFile(entry.name))
356
+ continue;
357
+ out.push(full);
358
+ }
359
+ }
360
+ function isHashableFile(name) {
361
+ if (name === "go.mod" || name === "go.sum" || name === "go.work")
362
+ return true;
363
+ return /\.(?:go|s|c|h|cpp|hpp)$/i.test(name);
364
+ }
365
+ //# sourceMappingURL=source-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-build.js","sourceRoot":"","sources":["../src/source-build.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ttsc",
3
- "version": "0.4.4-dev.20260426",
3
+ "version": "0.5.0-dev.20260429",
4
4
  "description": "General-purpose TypeScript-Go compiler, plugin host, and runtime.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -27,17 +27,17 @@
27
27
  "homepage": "https://github.com/samchon/ttsc",
28
28
  "devDependencies": {
29
29
  "@types/node": "^25.3.0",
30
- "@typescript/native-preview": "7.0.0-dev.20260421.2",
30
+ "@typescript/native-preview": "7.0.0-dev.20260427.1",
31
31
  "rimraf": "^6.1.2"
32
32
  },
33
33
  "optionalDependencies": {
34
- "@ttsc/linux-x64": "0.4.4-dev.20260426",
35
- "@ttsc/linux-arm": "0.4.4-dev.20260426",
36
- "@ttsc/darwin-x64": "0.4.4-dev.20260426",
37
- "@ttsc/darwin-arm64": "0.4.4-dev.20260426",
38
- "@ttsc/win32-arm64": "0.4.4-dev.20260426",
39
- "@ttsc/win32-x64": "0.4.4-dev.20260426",
40
- "@ttsc/linux-arm64": "0.4.4-dev.20260426"
34
+ "@ttsc/linux-x64": "0.5.0-dev.20260429",
35
+ "@ttsc/linux-arm64": "0.5.0-dev.20260429",
36
+ "@ttsc/linux-arm": "0.5.0-dev.20260429",
37
+ "@ttsc/darwin-x64": "0.5.0-dev.20260429",
38
+ "@ttsc/darwin-arm64": "0.5.0-dev.20260429",
39
+ "@ttsc/win32-x64": "0.5.0-dev.20260429",
40
+ "@ttsc/win32-arm64": "0.5.0-dev.20260429"
41
41
  },
42
42
  "sideEffects": false,
43
43
  "files": [
package/shim/ast/go.mod CHANGED
@@ -2,4 +2,4 @@ module github.com/microsoft/typescript-go/shim/ast
2
2
 
3
3
  go 1.26
4
4
 
5
- require github.com/microsoft/typescript-go v0.0.0-20260408193441-2a5e1cf9fe22
5
+ require github.com/microsoft/typescript-go v0.0.0-20260424234512-515d036f927a