@tsonic/cli 0.0.24 → 0.0.25

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 (43) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cli/dispatcher.d.ts.map +1 -1
  3. package/dist/cli/dispatcher.js +25 -0
  4. package/dist/cli/dispatcher.js.map +1 -1
  5. package/dist/cli/help.d.ts.map +1 -1
  6. package/dist/cli/help.js +7 -1
  7. package/dist/cli/help.js.map +1 -1
  8. package/dist/cli/parser.d.ts.map +1 -1
  9. package/dist/cli/parser.js +11 -0
  10. package/dist/cli/parser.js.map +1 -1
  11. package/dist/cli/parser.test.js +14 -0
  12. package/dist/cli/parser.test.js.map +1 -1
  13. package/dist/commands/add-deps.test.js +1 -1
  14. package/dist/commands/add-js.d.ts +10 -0
  15. package/dist/commands/add-js.d.ts.map +1 -0
  16. package/dist/commands/add-js.js +57 -0
  17. package/dist/commands/add-js.js.map +1 -0
  18. package/dist/commands/add-js.test.d.ts +5 -0
  19. package/dist/commands/add-js.test.d.ts.map +1 -0
  20. package/dist/commands/add-js.test.js +59 -0
  21. package/dist/commands/add-js.test.js.map +1 -0
  22. package/dist/commands/add-nodejs.d.ts +10 -0
  23. package/dist/commands/add-nodejs.d.ts.map +1 -0
  24. package/dist/commands/add-nodejs.js +58 -0
  25. package/dist/commands/add-nodejs.js.map +1 -0
  26. package/dist/commands/add-nodejs.test.d.ts +5 -0
  27. package/dist/commands/add-nodejs.test.d.ts.map +1 -0
  28. package/dist/commands/add-nodejs.test.js +61 -0
  29. package/dist/commands/add-nodejs.test.js.map +1 -0
  30. package/dist/commands/init.d.ts +6 -1
  31. package/dist/commands/init.d.ts.map +1 -1
  32. package/dist/commands/init.js +59 -74
  33. package/dist/commands/init.js.map +1 -1
  34. package/dist/commands/init.test.js +42 -4
  35. package/dist/commands/init.test.js.map +1 -1
  36. package/dist/commands/restore.test.js +1 -1
  37. package/dist/dotnet/runtime-assets.d.ts +8 -0
  38. package/dist/dotnet/runtime-assets.d.ts.map +1 -0
  39. package/dist/dotnet/runtime-assets.js +53 -0
  40. package/dist/dotnet/runtime-assets.js.map +1 -0
  41. package/dist/types.d.ts +1 -0
  42. package/dist/types.d.ts.map +1 -1
  43. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../src/cli/parser.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../src/cli/parser.test.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ const run = (cwd, command, args) => {
32
32
  const writeTsonicJson = (dir, fileName = "tsonic.json") => {
33
33
  mkdirSync(join(dir, "src"), { recursive: true });
34
34
  writeFileSync(join(dir, fileName), JSON.stringify({
35
- $schema: "https://tsonic.dev/schema/v1.json",
35
+ $schema: "https://tsonic.org/schema/v1.json",
36
36
  rootNamespace: "Test",
37
37
  entryPoint: "src/App.ts",
38
38
  sourceRoot: "src",
@@ -0,0 +1,10 @@
1
+ /**
2
+ * tsonic add js - add JSRuntime interop to an existing project.
3
+ *
4
+ * - Installs @tsonic/js (type declarations)
5
+ * - Copies runtime DLLs into ./lib for deterministic builds
6
+ */
7
+ import type { Result } from "../types.js";
8
+ import { type Exec, type AddCommandOptions } from "./add-common.js";
9
+ export declare const addJsCommand: (configPath: string, options?: AddCommandOptions, exec?: Exec) => Result<void, string>;
10
+ //# sourceMappingURL=add-js.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-js.d.ts","sourceRoot":"","sources":["../../src/commands/add-js.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,aAAa,CAAC;AAGxD,OAAO,EAIL,KAAK,IAAI,EACT,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AA0CzB,eAAO,MAAM,YAAY,GACvB,YAAY,MAAM,EAClB,UAAS,iBAAsB,EAC/B,OAAM,IAAkB,KACvB,MAAM,CAAC,IAAI,EAAE,MAAM,CAmBrB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * tsonic add js - add JSRuntime interop to an existing project.
3
+ *
4
+ * - Installs @tsonic/js (type declarations)
5
+ * - Copies runtime DLLs into ./lib for deterministic builds
6
+ */
7
+ import { existsSync, readFileSync } from "node:fs";
8
+ import { dirname, join } from "node:path";
9
+ import { loadConfig } from "../config.js";
10
+ import { copyRuntimeDllsToProjectLib } from "../dotnet/runtime-assets.js";
11
+ import { defaultExec, detectTsbindgenNaming, npmInstallDevDependency, } from "./add-common.js";
12
+ const hasPackage = (projectRoot, name) => {
13
+ const pkgJsonPath = join(projectRoot, "package.json");
14
+ if (!existsSync(pkgJsonPath))
15
+ return false;
16
+ try {
17
+ const pkg = JSON.parse(readFileSync(pkgJsonPath, "utf-8"));
18
+ return (pkg.dependencies?.[name] !== undefined ||
19
+ pkg.devDependencies?.[name] !== undefined);
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ };
25
+ const ensureDevDependency = (projectRoot, packageName, options, exec) => {
26
+ if (hasPackage(projectRoot, packageName))
27
+ return { ok: true, value: undefined };
28
+ return npmInstallDevDependency(projectRoot, `${packageName}@latest`, options, exec);
29
+ };
30
+ const ensureDotnetForPeerDeps = (projectRoot, config, options, exec) => {
31
+ // @tsonic/js currently imports from @tsonic/dotnet. In CLR-naming projects
32
+ // (globals-pure), ensure dotnet is present to satisfy module resolution.
33
+ const naming = detectTsbindgenNaming(config);
34
+ if (naming !== "clr")
35
+ return { ok: true, value: undefined };
36
+ return ensureDevDependency(projectRoot, "@tsonic/dotnet", options, exec);
37
+ };
38
+ export const addJsCommand = (configPath, options = {}, exec = defaultExec) => {
39
+ const projectRoot = dirname(configPath);
40
+ const configResult = loadConfig(configPath);
41
+ if (!configResult.ok)
42
+ return configResult;
43
+ const config = configResult.value;
44
+ const peerResult = ensureDotnetForPeerDeps(projectRoot, config, options, exec);
45
+ if (!peerResult.ok)
46
+ return peerResult;
47
+ const installResult = ensureDevDependency(projectRoot, "@tsonic/js", options, exec);
48
+ if (!installResult.ok)
49
+ return installResult;
50
+ const copyResult = copyRuntimeDllsToProjectLib(projectRoot, {
51
+ includeJsRuntime: true,
52
+ });
53
+ if (!copyResult.ok)
54
+ return copyResult;
55
+ return { ok: true, value: undefined };
56
+ };
57
+ //# sourceMappingURL=add-js.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-js.js","sourceRoot":"","sources":["../../src/commands/add-js.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for tsonic add js
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=add-js.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-js.test.d.ts","sourceRoot":"","sources":["../../src/commands/add-js.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Tests for tsonic add js
3
+ */
4
+ import { describe, it } from "mocha";
5
+ import { expect } from "chai";
6
+ import { mkdtempSync, rmSync, writeFileSync, existsSync } from "node:fs";
7
+ import { tmpdir } from "node:os";
8
+ import { join } from "node:path";
9
+ import { addJsCommand } from "./add-js.js";
10
+ describe("add js", () => {
11
+ it("should install @tsonic/js (via npm) and copy runtime DLLs", () => {
12
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-add-js-"));
13
+ try {
14
+ writeFileSync(join(dir, "package.json"), JSON.stringify({ name: "test", version: "0.0.0", type: "module", devDependencies: {} }, null, 2) + "\n", "utf-8");
15
+ writeFileSync(join(dir, "tsonic.json"), JSON.stringify({ rootNamespace: "Test", dotnet: { typeRoots: [] } }, null, 2) + "\n", "utf-8");
16
+ const calls = [];
17
+ const exec = (cmd, args) => {
18
+ calls.push({ cmd, args });
19
+ return { status: 0, stdout: "", stderr: "" };
20
+ };
21
+ const result = addJsCommand(join(dir, "tsonic.json"), {}, exec);
22
+ expect(result.ok).to.equal(true);
23
+ expect(calls.length).to.equal(1);
24
+ expect(calls[0]?.cmd).to.equal("npm");
25
+ expect(calls[0]?.args.join(" ")).to.include("@tsonic/js@latest");
26
+ expect(existsSync(join(dir, "lib", "Tsonic.Runtime.dll"))).to.equal(true);
27
+ expect(existsSync(join(dir, "lib", "Tsonic.JSRuntime.dll"))).to.equal(true);
28
+ }
29
+ finally {
30
+ rmSync(dir, { recursive: true, force: true });
31
+ }
32
+ });
33
+ it("should be idempotent when @tsonic/js is already installed", () => {
34
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-add-js-idem-"));
35
+ try {
36
+ writeFileSync(join(dir, "package.json"), JSON.stringify({
37
+ name: "test",
38
+ version: "0.0.0",
39
+ type: "module",
40
+ devDependencies: { "@tsonic/js": "^0.1.2" },
41
+ }, null, 2) + "\n", "utf-8");
42
+ writeFileSync(join(dir, "tsonic.json"), JSON.stringify({ rootNamespace: "Test", dotnet: { typeRoots: [] } }, null, 2) + "\n", "utf-8");
43
+ const calls = [];
44
+ const exec = (cmd, args) => {
45
+ calls.push({ cmd, args });
46
+ return { status: 0, stdout: "", stderr: "" };
47
+ };
48
+ const result = addJsCommand(join(dir, "tsonic.json"), {}, exec);
49
+ expect(result.ok).to.equal(true);
50
+ expect(calls.length).to.equal(0);
51
+ expect(existsSync(join(dir, "lib", "Tsonic.Runtime.dll"))).to.equal(true);
52
+ expect(existsSync(join(dir, "lib", "Tsonic.JSRuntime.dll"))).to.equal(true);
53
+ }
54
+ finally {
55
+ rmSync(dir, { recursive: true, force: true });
56
+ }
57
+ });
58
+ });
59
+ //# sourceMappingURL=add-js.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-js.test.js","sourceRoot":"","sources":["../../src/commands/add-js.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * tsonic add nodejs - add Node.js interop to an existing project.
3
+ *
4
+ * - Installs @tsonic/nodejs (type declarations)
5
+ * - Copies runtime DLLs into ./lib for deterministic builds
6
+ */
7
+ import type { Result } from "../types.js";
8
+ import { type Exec, type AddCommandOptions } from "./add-common.js";
9
+ export declare const addNodejsCommand: (configPath: string, options?: AddCommandOptions, exec?: Exec) => Result<void, string>;
10
+ //# sourceMappingURL=add-nodejs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-nodejs.d.ts","sourceRoot":"","sources":["../../src/commands/add-nodejs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,aAAa,CAAC;AAGxD,OAAO,EAIL,KAAK,IAAI,EACT,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AA0CzB,eAAO,MAAM,gBAAgB,GAC3B,YAAY,MAAM,EAClB,UAAS,iBAAsB,EAC/B,OAAM,IAAkB,KACvB,MAAM,CAAC,IAAI,EAAE,MAAM,CAyBrB,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * tsonic add nodejs - add Node.js interop to an existing project.
3
+ *
4
+ * - Installs @tsonic/nodejs (type declarations)
5
+ * - Copies runtime DLLs into ./lib for deterministic builds
6
+ */
7
+ import { existsSync, readFileSync } from "node:fs";
8
+ import { dirname, join } from "node:path";
9
+ import { loadConfig } from "../config.js";
10
+ import { copyRuntimeDllsToProjectLib } from "../dotnet/runtime-assets.js";
11
+ import { defaultExec, detectTsbindgenNaming, npmInstallDevDependency, } from "./add-common.js";
12
+ const hasPackage = (projectRoot, name) => {
13
+ const pkgJsonPath = join(projectRoot, "package.json");
14
+ if (!existsSync(pkgJsonPath))
15
+ return false;
16
+ try {
17
+ const pkg = JSON.parse(readFileSync(pkgJsonPath, "utf-8"));
18
+ return (pkg.dependencies?.[name] !== undefined ||
19
+ pkg.devDependencies?.[name] !== undefined);
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ };
25
+ const ensureDevDependency = (projectRoot, packageName, options, exec) => {
26
+ if (hasPackage(projectRoot, packageName))
27
+ return { ok: true, value: undefined };
28
+ return npmInstallDevDependency(projectRoot, `${packageName}@latest`, options, exec);
29
+ };
30
+ const ensureDotnetForPeerDeps = (projectRoot, config, options, exec) => {
31
+ // @tsonic/nodejs currently imports from @tsonic/dotnet. In CLR-naming projects
32
+ // (globals-pure), ensure dotnet is present to satisfy module resolution.
33
+ const naming = detectTsbindgenNaming(config);
34
+ if (naming !== "clr")
35
+ return { ok: true, value: undefined };
36
+ return ensureDevDependency(projectRoot, "@tsonic/dotnet", options, exec);
37
+ };
38
+ export const addNodejsCommand = (configPath, options = {}, exec = defaultExec) => {
39
+ const projectRoot = dirname(configPath);
40
+ const configResult = loadConfig(configPath);
41
+ if (!configResult.ok)
42
+ return configResult;
43
+ const config = configResult.value;
44
+ const peerResult = ensureDotnetForPeerDeps(projectRoot, config, options, exec);
45
+ if (!peerResult.ok)
46
+ return peerResult;
47
+ const installResult = ensureDevDependency(projectRoot, "@tsonic/nodejs", options, exec);
48
+ if (!installResult.ok)
49
+ return installResult;
50
+ const copyResult = copyRuntimeDllsToProjectLib(projectRoot, {
51
+ includeJsRuntime: true,
52
+ includeNodejs: true,
53
+ });
54
+ if (!copyResult.ok)
55
+ return copyResult;
56
+ return { ok: true, value: undefined };
57
+ };
58
+ //# sourceMappingURL=add-nodejs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-nodejs.js","sourceRoot":"","sources":["../../src/commands/add-nodejs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for tsonic add nodejs
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=add-nodejs.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-nodejs.test.d.ts","sourceRoot":"","sources":["../../src/commands/add-nodejs.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Tests for tsonic add nodejs
3
+ */
4
+ import { describe, it } from "mocha";
5
+ import { expect } from "chai";
6
+ import { mkdtempSync, rmSync, writeFileSync, existsSync } from "node:fs";
7
+ import { tmpdir } from "node:os";
8
+ import { join } from "node:path";
9
+ import { addNodejsCommand } from "./add-nodejs.js";
10
+ describe("add nodejs", () => {
11
+ it("should install @tsonic/nodejs (via npm) and copy runtime DLLs", () => {
12
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-add-nodejs-"));
13
+ try {
14
+ writeFileSync(join(dir, "package.json"), JSON.stringify({ name: "test", version: "0.0.0", type: "module", devDependencies: {} }, null, 2) + "\n", "utf-8");
15
+ writeFileSync(join(dir, "tsonic.json"), JSON.stringify({ rootNamespace: "Test", dotnet: { typeRoots: [] } }, null, 2) + "\n", "utf-8");
16
+ const calls = [];
17
+ const exec = (cmd, args) => {
18
+ calls.push({ cmd, args });
19
+ return { status: 0, stdout: "", stderr: "" };
20
+ };
21
+ const result = addNodejsCommand(join(dir, "tsonic.json"), {}, exec);
22
+ expect(result.ok).to.equal(true);
23
+ expect(calls.length).to.equal(1);
24
+ expect(calls[0]?.cmd).to.equal("npm");
25
+ expect(calls[0]?.args.join(" ")).to.include("@tsonic/nodejs@latest");
26
+ expect(existsSync(join(dir, "lib", "Tsonic.Runtime.dll"))).to.equal(true);
27
+ expect(existsSync(join(dir, "lib", "Tsonic.JSRuntime.dll"))).to.equal(true);
28
+ expect(existsSync(join(dir, "lib", "nodejs.dll"))).to.equal(true);
29
+ }
30
+ finally {
31
+ rmSync(dir, { recursive: true, force: true });
32
+ }
33
+ });
34
+ it("should be idempotent when @tsonic/nodejs is already installed", () => {
35
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-add-nodejs-idem-"));
36
+ try {
37
+ writeFileSync(join(dir, "package.json"), JSON.stringify({
38
+ name: "test",
39
+ version: "0.0.0",
40
+ type: "module",
41
+ devDependencies: { "@tsonic/nodejs": "^0.4.5" },
42
+ }, null, 2) + "\n", "utf-8");
43
+ writeFileSync(join(dir, "tsonic.json"), JSON.stringify({ rootNamespace: "Test", dotnet: { typeRoots: [] } }, null, 2) + "\n", "utf-8");
44
+ const calls = [];
45
+ const exec = (cmd, args) => {
46
+ calls.push({ cmd, args });
47
+ return { status: 0, stdout: "", stderr: "" };
48
+ };
49
+ const result = addNodejsCommand(join(dir, "tsonic.json"), {}, exec);
50
+ expect(result.ok).to.equal(true);
51
+ expect(calls.length).to.equal(0);
52
+ expect(existsSync(join(dir, "lib", "Tsonic.Runtime.dll"))).to.equal(true);
53
+ expect(existsSync(join(dir, "lib", "Tsonic.JSRuntime.dll"))).to.equal(true);
54
+ expect(existsSync(join(dir, "lib", "nodejs.dll"))).to.equal(true);
55
+ }
56
+ finally {
57
+ rmSync(dir, { recursive: true, force: true });
58
+ }
59
+ });
60
+ });
61
+ //# sourceMappingURL=add-nodejs.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-nodejs.test.js","sourceRoot":"","sources":["../../src/commands/add-nodejs.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { Result } from "../types.js";
5
5
  type InitOptions = {
6
6
  readonly skipTypes?: boolean;
7
7
  readonly typesVersion?: string;
8
+ readonly js?: boolean;
8
9
  readonly nodejs?: boolean;
9
10
  readonly pure?: boolean;
10
11
  };
@@ -27,7 +28,11 @@ type TypePackageInfo = {
27
28
  * - @tsonic/globals-pure depends on @tsonic/dotnet-pure (PascalCase CLR naming)
28
29
  * - @tsonic/nodejs has @tsonic/dotnet as peerDependency (uses whichever globals provides)
29
30
  */
30
- export declare const getTypePackageInfo: (nodejs?: boolean, pure?: boolean) => TypePackageInfo;
31
+ export declare const getTypePackageInfo: (options?: {
32
+ readonly js?: boolean;
33
+ readonly nodejs?: boolean;
34
+ readonly pure?: boolean;
35
+ }) => TypePackageInfo;
31
36
  /**
32
37
  * Initialize a new Tsonic project
33
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAkEF,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,CAAC;AAKF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAQ,OAAe,EACvB,OAAM,OAAe,KACpB,eAqBF,CAAC;AAuMF;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,MAAM,EACX,UAAS,WAAgB,KACxB,MAAM,CAAC,IAAI,EAAE,MAAM,CA2GrB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AA6FF,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,CAAC;AAKF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAS;IACP,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACpB,KACL,eAmCF,CAAC;AA4HF;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,MAAM,EACX,UAAS,WAAgB,KACxB,MAAM,CAAC,IAAI,EAAE,MAAM,CAyHrB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * tsonic project init command
3
3
  */
4
- import { writeFileSync, existsSync, readFileSync, mkdirSync, copyFileSync, } from "node:fs";
5
- import { join, dirname } from "node:path";
4
+ import { writeFileSync, existsSync, readFileSync, mkdirSync, } from "node:fs";
5
+ import { join } from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
+ import { copyRuntimeDllsToProjectLib } from "../dotnet/runtime-assets.js";
7
8
  const DEFAULT_GITIGNORE = `# .NET build artifacts
8
9
  generated/bin/
9
10
  generated/obj/
@@ -39,6 +40,30 @@ export function main(): void {
39
40
  Console.WriteLine(content);
40
41
  }
41
42
  `;
43
+ const SAMPLE_MAIN_TS_JS = `import { Console } from "@tsonic/dotnet/System.js";
44
+ import { console, JSON } from "@tsonic/js/index.js";
45
+
46
+ export function main(): void {
47
+ Console.writeLine("JSRuntime JSON example...");
48
+ const value = JSON.parse<{ x: number }>('{"x": 1}');
49
+ console.log(JSON.stringify(value));
50
+ }
51
+ `;
52
+ const SAMPLE_MAIN_TS_JS_PURE = `import { Console } from "@tsonic/dotnet-pure/System.js";
53
+ import { console, JSON } from "@tsonic/js/index.js";
54
+
55
+ export function main(): void {
56
+ Console.WriteLine("JSRuntime JSON example...");
57
+ const value = JSON.parse<{ x: number }>('{"x": 1}');
58
+ console.log(JSON.stringify(value));
59
+ }
60
+ `;
61
+ const SAMPLE_MAIN_TS_NODEJS = `import { console } from "@tsonic/nodejs/index.js";
62
+
63
+ export function main(): void {
64
+ console.log("Hello from @tsonic/nodejs");
65
+ }
66
+ `;
42
67
  const SAMPLE_README = `# My Tsonic Project
43
68
 
44
69
  This is a sample Tsonic project that demonstrates .NET interop.
@@ -78,7 +103,10 @@ const CLI_PACKAGE = { name: "tsonic", version: "latest" };
78
103
  * - @tsonic/globals-pure depends on @tsonic/dotnet-pure (PascalCase CLR naming)
79
104
  * - @tsonic/nodejs has @tsonic/dotnet as peerDependency (uses whichever globals provides)
80
105
  */
81
- export const getTypePackageInfo = (nodejs = false, pure = false) => {
106
+ export const getTypePackageInfo = (options = {}) => {
107
+ const js = options.js === true;
108
+ const nodejs = options.nodejs === true;
109
+ const pure = options.pure === true;
82
110
  // Core package is always included (provides int, float, etc.)
83
111
  const corePackage = { name: "@tsonic/core", version: "latest" };
84
112
  // - @tsonic/cli: the compiler CLI (provides `tsonic` command)
@@ -91,6 +119,14 @@ export const getTypePackageInfo = (nodejs = false, pure = false) => {
91
119
  corePackage,
92
120
  { name: globalsPackage, version: "latest" },
93
121
  ];
122
+ // JSRuntime / nodejs bindings currently import from @tsonic/dotnet (not dotnet-pure).
123
+ // In --pure mode, ensure @tsonic/dotnet is installed so these packages typecheck.
124
+ if (pure && (js || nodejs)) {
125
+ packages.push({ name: "@tsonic/dotnet", version: "latest" });
126
+ }
127
+ if (js) {
128
+ packages.push({ name: "@tsonic/js", version: "latest" });
129
+ }
94
130
  if (nodejs) {
95
131
  packages.push({ name: "@tsonic/nodejs", version: "latest" });
96
132
  }
@@ -99,77 +135,12 @@ export const getTypePackageInfo = (nodejs = false, pure = false) => {
99
135
  typeRoots: [`node_modules/${globalsPackage}`],
100
136
  };
101
137
  };
102
- /**
103
- * Find the CLI package runtime directory containing DLLs
104
- */
105
- const findRuntimeDir = () => {
106
- // Try to find runtime directory bundled with CLI package
107
- // import.meta.dirname is the dist/commands directory when running from built CLI
108
- // Or src/commands when running from source
109
- const possiblePaths = [
110
- // Development: From dist/commands -> ../../runtime
111
- join(dirname(import.meta.url.replace("file://", "")), "../../runtime"),
112
- // npm installed: From dist/commands -> ../runtime (inside @tsonic/cli package)
113
- join(dirname(import.meta.url.replace("file://", "")), "../runtime"),
114
- // From project's node_modules (when CLI is a dev dependency)
115
- join(process.cwd(), "node_modules/@tsonic/cli/runtime"),
116
- // Monorepo structure
117
- join(process.cwd(), "packages/cli/runtime"),
118
- ];
119
- for (const p of possiblePaths) {
120
- if (existsSync(p)) {
121
- return p;
122
- }
123
- }
124
- return null;
125
- };
126
- /**
127
- * Copy runtime DLLs to project's lib/ directory
128
- * - Tsonic.Runtime.dll: Always copied (core runtime)
129
- * - nodejs.dll: Copied if --nodejs flag is used
130
- */
131
- const copyRuntimeDlls = (cwd, includeNodejs) => {
132
- const runtimeDir = findRuntimeDir();
133
- if (!runtimeDir) {
134
- return {
135
- ok: false,
136
- error: "Runtime directory not found. Make sure tsonic is installed.",
137
- };
138
- }
139
- const libDir = join(cwd, "lib");
140
- mkdirSync(libDir, { recursive: true });
141
- const copiedPaths = [];
142
- // Always copy Tsonic.Runtime.dll
143
- const runtimeDll = join(runtimeDir, "Tsonic.Runtime.dll");
144
- if (existsSync(runtimeDll)) {
145
- copyFileSync(runtimeDll, join(libDir, "Tsonic.Runtime.dll"));
146
- copiedPaths.push("lib/Tsonic.Runtime.dll");
147
- }
148
- else {
149
- return {
150
- ok: false,
151
- error: "Tsonic.Runtime.dll not found in runtime directory.",
152
- };
153
- }
154
- // Copy nodejs.dll if requested
155
- if (includeNodejs) {
156
- const nodejsDll = join(runtimeDir, "nodejs.dll");
157
- if (existsSync(nodejsDll)) {
158
- copyFileSync(nodejsDll, join(libDir, "nodejs.dll"));
159
- copiedPaths.push("lib/nodejs.dll");
160
- }
161
- else {
162
- console.log("⚠ Warning: nodejs.dll not found in runtime directory.");
163
- }
164
- }
165
- return { ok: true, value: copiedPaths };
166
- };
167
138
  /**
168
139
  * Generate tsonic.json config
169
140
  */
170
141
  const generateConfig = (includeTypeRoots, libraryPaths = [], pure = false) => {
171
142
  const config = {
172
- $schema: "https://tsonic.dev/schema/v1.json",
143
+ $schema: "https://tsonic.org/schema/v1.json",
173
144
  rootNamespace: "MyApp",
174
145
  entryPoint: "src/App.ts",
175
146
  sourceRoot: "src",
@@ -182,7 +153,7 @@ const generateConfig = (includeTypeRoots, libraryPaths = [], pure = false) => {
182
153
  },
183
154
  };
184
155
  if (includeTypeRoots || libraryPaths.length > 0) {
185
- const typeInfo = getTypePackageInfo(false, pure);
156
+ const typeInfo = getTypePackageInfo({ pure });
186
157
  const dotnet = {};
187
158
  if (includeTypeRoots) {
188
159
  dotnet.typeRoots = typeInfo.typeRoots;
@@ -280,9 +251,10 @@ export const initProject = (cwd, options = {}) => {
280
251
  console.log(packageJsonExists ? "✓ Updated package.json" : "✓ Created package.json");
281
252
  // Install type declarations
282
253
  const shouldInstallTypes = !options.skipTypes;
254
+ const js = options.js ?? false;
283
255
  const nodejs = options.nodejs ?? false;
284
256
  const pure = options.pure ?? false;
285
- const typeInfo = getTypePackageInfo(nodejs, pure);
257
+ const typeInfo = getTypePackageInfo({ js, nodejs, pure });
286
258
  if (shouldInstallTypes) {
287
259
  for (const pkg of typeInfo.packages) {
288
260
  const version = options.typesVersion ?? pkg.version;
@@ -295,10 +267,16 @@ export const initProject = (cwd, options = {}) => {
295
267
  }
296
268
  }
297
269
  // Copy runtime DLLs to lib/ directory
298
- // This includes Tsonic.Runtime.dll (always) and nodejs.dll (if --nodejs)
270
+ // This includes:
271
+ // - Tsonic.Runtime.dll (always)
272
+ // - Tsonic.JSRuntime.dll (if --js or --nodejs)
273
+ // - nodejs.dll (if --nodejs)
299
274
  // Note: These are NOT added to dotnet.libraries - findRuntimeDlls in generate.ts looks in lib/ first
300
275
  console.log("Copying runtime DLLs to lib/...");
301
- const copyResult = copyRuntimeDlls(cwd, nodejs);
276
+ const copyResult = copyRuntimeDllsToProjectLib(cwd, {
277
+ includeJsRuntime: js || nodejs,
278
+ includeNodejs: nodejs,
279
+ });
302
280
  if (!copyResult.ok) {
303
281
  // Log warning but continue - user can add manually later
304
282
  console.log(`⚠ Warning: ${copyResult.error}`);
@@ -330,7 +308,14 @@ export const initProject = (cwd, options = {}) => {
330
308
  mkdirSync(srcDir, { recursive: true });
331
309
  }
332
310
  if (!existsSync(appTsPath)) {
333
- writeFileSync(appTsPath, pure ? SAMPLE_MAIN_TS_PURE : SAMPLE_MAIN_TS, "utf-8");
311
+ const sample = nodejs
312
+ ? SAMPLE_MAIN_TS_NODEJS
313
+ : js
314
+ ? (pure ? SAMPLE_MAIN_TS_JS_PURE : SAMPLE_MAIN_TS_JS)
315
+ : pure
316
+ ? SAMPLE_MAIN_TS_PURE
317
+ : SAMPLE_MAIN_TS;
318
+ writeFileSync(appTsPath, sample, "utf-8");
334
319
  console.log("✓ Created src/App.ts");
335
320
  }
336
321
  // Create README.md