ttsc 0.4.1 → 0.4.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.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const cli_1 = require("../cli");
5
+ const code = (0, cli_1.main)(process.argv.slice(2));
6
+ if (typeof code === "number") {
7
+ process.exitCode = code;
8
+ }
9
+ //# sourceMappingURL=ttsc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ttsc.js","sourceRoot":"","sources":["../../src/launcher/ttsc.ts"],"names":[],"mappings":";;;AAEA,gCAA8B;AAE9B,MAAM,IAAI,GAAG,IAAA,UAAI,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;IAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const cli_1 = require("../runner/cli");
5
+ const code = (0, cli_1.main)(process.argv.slice(2));
6
+ if (typeof code === "number") {
7
+ process.exitCode = code;
8
+ }
9
+ //# sourceMappingURL=ttsx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ttsx.js","sourceRoot":"","sources":["../../src/launcher/ttsx.ts"],"names":[],"mappings":";;;AAEA,uCAAqC;AAErC,MAAM,IAAI,GAAG,IAAA,UAAI,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;IAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,CAAC"}
package/lib/platform.js CHANGED
@@ -87,6 +87,7 @@ function platformPackageRequest(opts = {}) {
87
87
  /** The list of platform keys the package currently ships. */
88
88
  exports.SUPPORTED_PLATFORMS = Object.freeze([
89
89
  "linux-x64",
90
+ "linux-arm",
90
91
  "linux-arm64",
91
92
  "darwin-x64",
92
93
  "darwin-arm64",
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "ttsc",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
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",
7
7
  "bin": {
8
- "ttsc": "src/launcher/ttsc.js",
9
- "ttsx": "src/launcher/ttsx.js"
8
+ "ttsc": "lib/launcher/ttsc.js",
9
+ "ttsx": "lib/launcher/ttsx.js"
10
10
  },
11
11
  "exports": {
12
12
  ".": {
@@ -31,12 +31,13 @@
31
31
  "rimraf": "^6.1.2"
32
32
  },
33
33
  "optionalDependencies": {
34
- "@ttsc/linux-x64": "0.4.1",
35
- "@ttsc/linux-arm64": "0.4.1",
36
- "@ttsc/darwin-arm64": "0.4.1",
37
- "@ttsc/darwin-x64": "0.4.1",
38
- "@ttsc/win32-x64": "0.4.1",
39
- "@ttsc/win32-arm64": "0.4.1"
34
+ "@ttsc/linux-x64": "0.4.2",
35
+ "@ttsc/linux-arm": "0.4.2",
36
+ "@ttsc/linux-arm64": "0.4.2",
37
+ "@ttsc/darwin-x64": "0.4.2",
38
+ "@ttsc/win32-x64": "0.4.2",
39
+ "@ttsc/darwin-arm64": "0.4.2",
40
+ "@ttsc/win32-arm64": "0.4.2"
40
41
  },
41
42
  "sideEffects": false,
42
43
  "files": [
@@ -59,9 +60,6 @@
59
60
  "plugin-host",
60
61
  "ttsc"
61
62
  ],
62
- "publishConfig": {
63
- "access": "public"
64
- },
65
63
  "scripts": {
66
64
  "build": "rimraf lib && node ../../scripts/go.cjs run ./cmd/ttsc && cp ../../README.md README.md",
67
65
  "test": "pnpm run test:ts && pnpm run test:go",
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { main } from "../cli";
4
+
5
+ const code = main(process.argv.slice(2));
6
+ if (typeof code === "number") {
7
+ process.exitCode = code;
8
+ }
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { main } from "../runner/cli";
4
+
5
+ const code = main(process.argv.slice(2));
6
+ if (typeof code === "number") {
7
+ process.exitCode = code;
8
+ }
package/src/platform.ts CHANGED
@@ -71,6 +71,7 @@ export function platformPackageRequest(opts: ResolveOptions = {}): string {
71
71
  /** The list of platform keys the package currently ships. */
72
72
  export const SUPPORTED_PLATFORMS: readonly string[] = Object.freeze([
73
73
  "linux-x64",
74
+ "linux-arm",
74
75
  "linux-arm64",
75
76
  "darwin-x64",
76
77
  "darwin-arm64",
@@ -1,42 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
-
4
- const fs = require("node:fs");
5
- const path = require("node:path");
6
- const { spawnSync } = require("node:child_process");
7
-
8
- const root = fs.realpathSync.native?.(__dirname) ?? fs.realpathSync(__dirname);
9
- const packageRoot = path.resolve(root, "..", "..");
10
- const command = process.platform === "win32" ? "go.exe" : "go";
11
- const invocationCwd = process.cwd();
12
- const argv = [...process.argv.slice(2)];
13
-
14
- if (needsInvocationCwd(argv) && !argv.some((value) => value === "--cwd" || value.startsWith("--cwd="))) {
15
- argv.push(`--cwd=${invocationCwd}`);
16
- }
17
-
18
- const result = spawnSync(command, ["run", "./cmd/ttsc", ...argv], {
19
- cwd: packageRoot,
20
- env: process.env,
21
- stdio: "inherit",
22
- windowsHide: true,
23
- });
24
-
25
- if (result.error) {
26
- process.stderr.write(`ttsc: failed to launch source checkout via ${command}: ${result.error.message}\n`);
27
- process.exitCode = 1;
28
- } else {
29
- process.exitCode = result.status ?? 1;
30
- }
31
-
32
- function needsInvocationCwd(args) {
33
- if (args.length === 0) return true;
34
- const commandName = args[0];
35
- return (
36
- commandName === "build" ||
37
- commandName === "check" ||
38
- commandName === "transform" ||
39
- commandName === "-p" ||
40
- commandName === "--project"
41
- );
42
- }
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
-
4
- const fs = require("node:fs");
5
- const path = require("node:path");
6
-
7
- const builtCli = path.resolve(__dirname, "..", "..", "lib", "cli.js");
8
- if (fs.existsSync(builtCli)) {
9
- const { main } = require(builtCli);
10
- const code = main(process.argv.slice(2));
11
- if (typeof code === "number") {
12
- process.exitCode = code;
13
- }
14
- } else {
15
- process.stderr.write(
16
- "ttsc: lib/cli.js is missing. Build ttsc first with `pnpm run build`.\n",
17
- );
18
- process.exitCode = 1;
19
- }
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
-
4
- const fs = require("node:fs");
5
- const path = require("node:path");
6
-
7
- const builtCli = path.resolve(__dirname, "..", "..", "lib", "runner", "cli.js");
8
- if (fs.existsSync(builtCli)) {
9
- const { main } = require(builtCli);
10
- const code = main(process.argv.slice(2));
11
- if (typeof code === "number") {
12
- process.exitCode = code;
13
- }
14
- } else {
15
- process.stderr.write(
16
- "ttsx: lib/runner/cli.js is missing. Build ttsc first with `pnpm run build`.\n",
17
- );
18
- process.exitCode = 1;
19
- }
@@ -1,131 +0,0 @@
1
- const assert = require("node:assert/strict");
2
- const fs = require("node:fs");
3
- const path = require("node:path");
4
- const test = require("node:test");
5
-
6
- const workspaceRoot = path.resolve(__dirname, "../../..");
7
-
8
- test("package metadata separates monorepo source exports from publish exports", () => {
9
- const packageJson = readPackageJson("ttsc");
10
- assert.match(packageJson.main, /^src\/.+\.ts$/);
11
- assert.match(packageJson.types, /^src\/.+\.ts$/);
12
- assert.equal(packageJson.exports["."].types, "./src/index.ts");
13
- assert.equal(packageJson.exports["."].import, "./src/index.ts");
14
- assert.equal(packageJson.exports["."].require, "./lib/index.js");
15
- assert.equal(packageJson.exports["."].default, "./src/index.ts");
16
- assert.equal(packageJson.publishConfig.main, "lib/index.js");
17
- assert.equal(packageJson.publishConfig.types, "lib/index.d.ts");
18
- assert.equal(
19
- packageJson.publishConfig.exports["."].types,
20
- "./lib/index.d.ts",
21
- );
22
- assert.equal(
23
- packageJson.publishConfig.exports["."].default,
24
- "./lib/index.js",
25
- );
26
- });
27
-
28
- test("ttsc package owns both compiler and runtime commands", () => {
29
- const packageJson = readPackageJson("ttsc");
30
- assert.deepEqual(packageJson.bin, {
31
- ttsc: "src/launcher/ttsc.js",
32
- ttsx: "src/launcher/ttsx.js",
33
- });
34
- assert.deepEqual(packageJson.publishConfig.bin, packageJson.bin);
35
- });
36
-
37
- test("ttsc exposes plugin helpers through the root package only", () => {
38
- const packageJson = readPackageJson("ttsc");
39
- assert.equal(packageJson.exports["./plugin"], undefined);
40
- assert.equal(packageJson.publishConfig.exports["./plugin"], undefined);
41
- assert.equal(
42
- fs.existsSync(path.join(workspaceRoot, "packages", "ttsc", "src", "plugin.ts")),
43
- true,
44
- );
45
- assert.equal(
46
- fs.existsSync(path.join(workspaceRoot, "packages", "ttsc", "src", "index.ts")),
47
- true,
48
- );
49
- });
50
-
51
- test("ttsc declares platform packages as optional dependencies", () => {
52
- const packageJson = readPackageJson("ttsc");
53
- const expected = [
54
- "@ttsc/linux-x64",
55
- "@ttsc/linux-arm64",
56
- "@ttsc/darwin-x64",
57
- "@ttsc/darwin-arm64",
58
- "@ttsc/win32-x64",
59
- "@ttsc/win32-arm64",
60
- ];
61
-
62
- assert.deepEqual(
63
- Object.keys(packageJson.optionalDependencies).sort(),
64
- expected.toSorted(),
65
- );
66
- for (const name of expected) {
67
- assert.equal(packageJson.optionalDependencies[name], "workspace:*");
68
- }
69
- assert.equal(packageJson.files.includes("native"), false);
70
- });
71
-
72
- test("published package file lists keep TypeScript and Go sources", () => {
73
- const ttsc = readPackageJson("ttsc");
74
- for (const entry of [
75
- "cmd",
76
- "driver",
77
- "shim",
78
- "src",
79
- "test",
80
- "tools",
81
- "go.mod",
82
- "go.sum",
83
- ]) {
84
- assert.equal(
85
- ttsc.files.includes(entry),
86
- true,
87
- `ttsc files must include ${entry}`,
88
- );
89
- }
90
- for (const entry of ["native", "node_modules", "THIRD-PARTY-LICENSES.md"]) {
91
- assert.equal(
92
- ttsc.files.includes(entry),
93
- false,
94
- `ttsc files must not include ${entry}`,
95
- );
96
- }
97
- assert.equal(ttsc.files.includes("tsconfig.json"), false);
98
-
99
- assert.equal(fs.existsSync(path.join(workspaceRoot, "packages", "ttsx")), false);
100
- });
101
-
102
- test("platform packages expose os cpu constrained native binaries", () => {
103
- const matrix = {
104
- "ttsc-linux-x64": ["@ttsc/linux-x64", "linux", "x64", "Linux x64"],
105
- "ttsc-linux-arm64": ["@ttsc/linux-arm64", "linux", "arm64", "Linux arm64"],
106
- "ttsc-darwin-x64": ["@ttsc/darwin-x64", "darwin", "x64", "macOS x64"],
107
- "ttsc-darwin-arm64": ["@ttsc/darwin-arm64", "darwin", "arm64", "macOS arm64"],
108
- "ttsc-win32-x64": ["@ttsc/win32-x64", "win32", "x64", "Windows x64"],
109
- "ttsc-win32-arm64": ["@ttsc/win32-arm64", "win32", "arm64", "Windows arm64"],
110
- };
111
-
112
- for (const [dir, [name, os, cpu, label]] of Object.entries(matrix)) {
113
- const packageJson = readPackageJson(dir);
114
- assert.equal(packageJson.name, name);
115
- assert.deepEqual(packageJson.os, [os]);
116
- assert.deepEqual(packageJson.cpu, [cpu]);
117
- assert.deepEqual(packageJson.files, ["bin", "package.json", "README.md"]);
118
- assert.equal(packageJson.scripts.build, "node ../../scripts/build-platform-package.cjs");
119
- assert.equal(packageJson.scripts.prepack, "pnpm run build");
120
- assert.equal(packageJson.description.includes(label), true);
121
- }
122
- });
123
-
124
- function readPackageJson(packageName) {
125
- return JSON.parse(
126
- fs.readFileSync(
127
- path.join(workspaceRoot, "packages", packageName, "package.json"),
128
- "utf8",
129
- ),
130
- );
131
- }