@tsonic/cli 0.0.46 → 0.0.48

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 (72) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cli/dispatcher.d.ts.map +1 -1
  3. package/dist/cli/dispatcher.js +7 -15
  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 +3 -8
  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 +2 -12
  10. package/dist/cli/parser.js.map +1 -1
  11. package/dist/cli/parser.test.js +4 -17
  12. package/dist/cli/parser.test.js.map +1 -1
  13. package/dist/commands/add-common.js +1 -1
  14. package/dist/commands/add-common.js.map +1 -1
  15. package/dist/commands/add-npm.d.ts +17 -0
  16. package/dist/commands/add-npm.d.ts.map +1 -0
  17. package/dist/commands/add-npm.js +291 -0
  18. package/dist/commands/add-npm.js.map +1 -0
  19. package/dist/commands/add-npm.test.d.ts +10 -0
  20. package/dist/commands/add-npm.test.d.ts.map +1 -0
  21. package/dist/commands/add-npm.test.js +127 -0
  22. package/dist/commands/add-npm.test.js.map +1 -0
  23. package/dist/commands/add-package.d.ts.map +1 -1
  24. package/dist/commands/add-package.js +2 -24
  25. package/dist/commands/add-package.js.map +1 -1
  26. package/dist/commands/build.d.ts.map +1 -1
  27. package/dist/commands/build.js +98 -0
  28. package/dist/commands/build.js.map +1 -1
  29. package/dist/commands/init.d.ts +1 -6
  30. package/dist/commands/init.d.ts.map +1 -1
  31. package/dist/commands/init.js +5 -55
  32. package/dist/commands/init.js.map +1 -1
  33. package/dist/commands/init.test.js +0 -67
  34. package/dist/commands/init.test.js.map +1 -1
  35. package/dist/commands/restore.test.js +5 -5
  36. package/dist/commands/restore.test.js.map +1 -1
  37. package/dist/commands/run-build-regressions.test.d.ts +5 -0
  38. package/dist/commands/run-build-regressions.test.d.ts.map +1 -0
  39. package/dist/commands/run-build-regressions.test.js +152 -0
  40. package/dist/commands/run-build-regressions.test.js.map +1 -0
  41. package/dist/commands/run.d.ts.map +1 -1
  42. package/dist/commands/run.js +19 -2
  43. package/dist/commands/run.js.map +1 -1
  44. package/dist/dotnet/runtime-dlls.d.ts.map +1 -1
  45. package/dist/dotnet/runtime-dlls.js +1 -1
  46. package/dist/dotnet/runtime-dlls.js.map +1 -1
  47. package/dist/types.d.ts +0 -2
  48. package/dist/types.d.ts.map +1 -1
  49. package/package.json +6 -6
  50. package/runtime/Tsonic.JSRuntime.dll +0 -0
  51. package/runtime/Tsonic.Runtime.dll +0 -0
  52. package/runtime/nodejs.dll +0 -0
  53. package/dist/commands/add-js.d.ts +0 -10
  54. package/dist/commands/add-js.d.ts.map +0 -1
  55. package/dist/commands/add-js.js +0 -63
  56. package/dist/commands/add-js.js.map +0 -1
  57. package/dist/commands/add-js.test.d.ts +0 -5
  58. package/dist/commands/add-js.test.d.ts.map +0 -1
  59. package/dist/commands/add-js.test.js +0 -71
  60. package/dist/commands/add-js.test.js.map +0 -1
  61. package/dist/commands/add-nodejs.d.ts +0 -10
  62. package/dist/commands/add-nodejs.d.ts.map +0 -1
  63. package/dist/commands/add-nodejs.js +0 -65
  64. package/dist/commands/add-nodejs.js.map +0 -1
  65. package/dist/commands/add-nodejs.test.d.ts +0 -5
  66. package/dist/commands/add-nodejs.test.d.ts.map +0 -1
  67. package/dist/commands/add-nodejs.test.js +0 -79
  68. package/dist/commands/add-nodejs.test.js.map +0 -1
  69. package/dist/dotnet/runtime-assets.d.ts +0 -9
  70. package/dist/dotnet/runtime-assets.d.ts.map +0 -1
  71. package/dist/dotnet/runtime-assets.js +0 -83
  72. package/dist/dotnet/runtime-assets.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-js.test.js","sourceRoot":"","sources":["../../src/commands/add-js.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * tsonic add nodejs - add Node.js interop to a workspace.
3
- *
4
- * - Installs @tsonic/nodejs (type declarations)
5
- * - Copies runtime DLLs into ./libs 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
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-nodejs.d.ts","sourceRoot":"","sources":["../../src/commands/add-nodejs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAA0B,MAAM,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAIL,KAAK,IAAI,EACT,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AA4CzB,eAAO,MAAM,gBAAgB,GAC3B,YAAY,MAAM,EAClB,UAAS,iBAAsB,EAC/B,OAAM,IAAkB,KACvB,MAAM,CAAC,IAAI,EAAE,MAAM,CAiCrB,CAAC"}
@@ -1,65 +0,0 @@
1
- /**
2
- * tsonic add nodejs - add Node.js interop to a workspace.
3
- *
4
- * - Installs @tsonic/nodejs (type declarations)
5
- * - Copies runtime DLLs into ./libs for deterministic builds
6
- */
7
- import { existsSync, readFileSync } from "node:fs";
8
- import { dirname, join } from "node:path";
9
- import { loadWorkspaceConfig } from "../config.js";
10
- import { copyRuntimeDllsToWorkspaceLibs } from "../dotnet/runtime-assets.js";
11
- import { defaultExec, npmInstallDevDependency, writeTsonicJson, } 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 normalizeLibraryKey = (pathLike) => pathLike.replace(/\\/g, "/").replace(/^\.\//, "").toLowerCase();
31
- const getLibraryPath = (entry) => typeof entry === "string" ? entry : entry.path;
32
- const addUniqueLibraryPath = (entries, libraryPath) => {
33
- const key = normalizeLibraryKey(libraryPath);
34
- if (entries.some((e) => normalizeLibraryKey(getLibraryPath(e)) === key))
35
- return;
36
- entries.push(libraryPath);
37
- };
38
- export const addNodejsCommand = (configPath, options = {}, exec = defaultExec) => {
39
- const workspaceRoot = dirname(configPath);
40
- const configResult = loadWorkspaceConfig(configPath);
41
- if (!configResult.ok)
42
- return configResult;
43
- const config = configResult.value;
44
- const installResult = ensureDevDependency(workspaceRoot, "@tsonic/nodejs", options, exec);
45
- if (!installResult.ok)
46
- return installResult;
47
- const copyResult = copyRuntimeDllsToWorkspaceLibs(workspaceRoot, {
48
- includeJsRuntime: true,
49
- includeNodejs: true,
50
- });
51
- if (!copyResult.ok)
52
- return copyResult;
53
- const dotnet = config.dotnet ?? {};
54
- const libraries = [...(dotnet.libraries ?? [])];
55
- addUniqueLibraryPath(libraries, "libs/Tsonic.JSRuntime.dll");
56
- addUniqueLibraryPath(libraries, "libs/nodejs.dll");
57
- const writeResult = writeTsonicJson(configPath, {
58
- ...config,
59
- dotnet: { ...dotnet, libraries },
60
- });
61
- if (!writeResult.ok)
62
- return writeResult;
63
- return { ok: true, value: undefined };
64
- };
65
- //# sourceMappingURL=add-nodejs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-nodejs.js","sourceRoot":"","sources":["../../src/commands/add-nodejs.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Tests for tsonic add nodejs
3
- */
4
- export {};
5
- //# sourceMappingURL=add-nodejs.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-nodejs.test.d.ts","sourceRoot":"","sources":["../../src/commands/add-nodejs.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,79 +0,0 @@
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, readFileSync, } 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.workspace.json"), JSON.stringify({
16
- $schema: "https://tsonic.org/schema/workspace/v1.json",
17
- dotnetVersion: "net10.0",
18
- dotnet: { libraries: [], frameworkReferences: [], packageReferences: [] },
19
- }, null, 2) + "\n", "utf-8");
20
- const calls = [];
21
- const exec = (cmd, args, cwd) => {
22
- calls.push({ cmd, args });
23
- expect(cwd).to.equal(dir);
24
- return { status: 0, stdout: "", stderr: "" };
25
- };
26
- const result = addNodejsCommand(join(dir, "tsonic.workspace.json"), {}, exec);
27
- expect(result.ok).to.equal(true);
28
- expect(calls.length).to.equal(1);
29
- expect(calls[0]?.cmd).to.equal("npm");
30
- expect(calls[0]?.args.join(" ")).to.include("@tsonic/nodejs@latest");
31
- expect(existsSync(join(dir, "libs", "Tsonic.JSRuntime.dll"))).to.equal(true);
32
- expect(existsSync(join(dir, "libs", "nodejs.dll"))).to.equal(true);
33
- const updated = JSON.parse(readFileSync(join(dir, "tsonic.workspace.json"), "utf-8"));
34
- expect(updated.dotnet?.libraries).to.deep.equal([
35
- "libs/Tsonic.JSRuntime.dll",
36
- "libs/nodejs.dll",
37
- ]);
38
- }
39
- finally {
40
- rmSync(dir, { recursive: true, force: true });
41
- }
42
- });
43
- it("should be idempotent when @tsonic/nodejs is already installed", () => {
44
- const dir = mkdtempSync(join(tmpdir(), "tsonic-add-nodejs-idem-"));
45
- try {
46
- writeFileSync(join(dir, "package.json"), JSON.stringify({
47
- name: "test",
48
- version: "0.0.0",
49
- type: "module",
50
- devDependencies: { "@tsonic/nodejs": "^0.4.5" },
51
- }, null, 2) + "\n", "utf-8");
52
- writeFileSync(join(dir, "tsonic.workspace.json"), JSON.stringify({
53
- $schema: "https://tsonic.org/schema/workspace/v1.json",
54
- dotnetVersion: "net10.0",
55
- dotnet: { libraries: [], frameworkReferences: [], packageReferences: [] },
56
- }, null, 2) + "\n", "utf-8");
57
- const calls = [];
58
- const exec = (cmd, args, cwd) => {
59
- calls.push({ cmd, args });
60
- expect(cwd).to.equal(dir);
61
- return { status: 0, stdout: "", stderr: "" };
62
- };
63
- const result = addNodejsCommand(join(dir, "tsonic.workspace.json"), {}, exec);
64
- expect(result.ok).to.equal(true);
65
- expect(calls.length).to.equal(0);
66
- expect(existsSync(join(dir, "libs", "Tsonic.JSRuntime.dll"))).to.equal(true);
67
- expect(existsSync(join(dir, "libs", "nodejs.dll"))).to.equal(true);
68
- const updated = JSON.parse(readFileSync(join(dir, "tsonic.workspace.json"), "utf-8"));
69
- expect(updated.dotnet?.libraries).to.deep.equal([
70
- "libs/Tsonic.JSRuntime.dll",
71
- "libs/nodejs.dll",
72
- ]);
73
- }
74
- finally {
75
- rmSync(dir, { recursive: true, force: true });
76
- }
77
- });
78
- });
79
- //# sourceMappingURL=add-nodejs.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-nodejs.test.js","sourceRoot":"","sources":["../../src/commands/add-nodejs.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { Result } from "../types.js";
2
- export type RuntimeDllCopyOptions = {
3
- readonly includeJsRuntime?: boolean;
4
- readonly includeNodejs?: boolean;
5
- };
6
- export declare const findCliRuntimeDir: () => string | null;
7
- export declare const copyRuntimeDllsToProjectLib: (projectRoot: string, options?: RuntimeDllCopyOptions) => Result<readonly string[], string>;
8
- export declare const copyRuntimeDllsToWorkspaceLibs: (workspaceRoot: string, options?: RuntimeDllCopyOptions) => Result<readonly string[], string>;
9
- //# sourceMappingURL=runtime-assets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-assets.d.ts","sourceRoot":"","sources":["../../src/dotnet/runtime-assets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAAM,GAAG,IAkB7C,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,aAAa,MAAM,EACnB,UAAS,qBAA0B,KAClC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,MAAM,CAoClC,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,eAAe,MAAM,EACrB,UAAS,qBAA0B,KAClC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,MAAM,CAmClC,CAAC"}
@@ -1,83 +0,0 @@
1
- import { copyFileSync, existsSync, mkdirSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- export const findCliRuntimeDir = () => {
5
- const moduleDir = dirname(fileURLToPath(import.meta.url));
6
- const candidates = [
7
- // Monorepo/dev: <repoRoot>/packages/cli/src/dotnet -> <repoRoot>/packages/cli/runtime
8
- join(moduleDir, "../../runtime"),
9
- // npm installed: <pkgRoot>/dist/dotnet -> <pkgRoot>/runtime
10
- join(moduleDir, "../runtime"),
11
- // When CLI is a dev dependency in the project (process.cwd() is project root)
12
- join(process.cwd(), "node_modules/@tsonic/cli/runtime"),
13
- // Monorepo structure when invoked from repo root
14
- join(process.cwd(), "packages/cli/runtime"),
15
- ];
16
- for (const p of candidates) {
17
- if (existsSync(p))
18
- return p;
19
- }
20
- return null;
21
- };
22
- export const copyRuntimeDllsToProjectLib = (projectRoot, options = {}) => {
23
- const runtimeDir = findCliRuntimeDir();
24
- if (!runtimeDir) {
25
- return {
26
- ok: false,
27
- error: "Runtime directory not found. Make sure 'tsonic' is installed.",
28
- };
29
- }
30
- const libDir = join(projectRoot, "lib");
31
- mkdirSync(libDir, { recursive: true });
32
- const includeJsRuntime = options.includeJsRuntime === true;
33
- const includeNodejs = options.includeNodejs === true;
34
- const requiredDlls = [
35
- "Tsonic.Runtime.dll",
36
- ...(includeJsRuntime || includeNodejs ? ["Tsonic.JSRuntime.dll"] : []),
37
- ...(includeNodejs ? ["nodejs.dll"] : []),
38
- ];
39
- const copiedPaths = [];
40
- for (const dllName of requiredDlls) {
41
- const sourcePath = join(runtimeDir, dllName);
42
- if (!existsSync(sourcePath)) {
43
- return {
44
- ok: false,
45
- error: `${dllName} not found in runtime directory.`,
46
- };
47
- }
48
- copyFileSync(sourcePath, join(libDir, dllName));
49
- copiedPaths.push(`lib/${dllName}`);
50
- }
51
- return { ok: true, value: copiedPaths };
52
- };
53
- export const copyRuntimeDllsToWorkspaceLibs = (workspaceRoot, options = {}) => {
54
- const runtimeDir = findCliRuntimeDir();
55
- if (!runtimeDir) {
56
- return {
57
- ok: false,
58
- error: "Runtime directory not found. Make sure 'tsonic' is installed.",
59
- };
60
- }
61
- const libsDir = join(workspaceRoot, "libs");
62
- mkdirSync(libsDir, { recursive: true });
63
- const includeJsRuntime = options.includeJsRuntime === true;
64
- const includeNodejs = options.includeNodejs === true;
65
- const requiredDlls = [
66
- ...(includeJsRuntime || includeNodejs ? ["Tsonic.JSRuntime.dll"] : []),
67
- ...(includeNodejs ? ["nodejs.dll"] : []),
68
- ];
69
- const copiedPaths = [];
70
- for (const dllName of requiredDlls) {
71
- const sourcePath = join(runtimeDir, dllName);
72
- if (!existsSync(sourcePath)) {
73
- return {
74
- ok: false,
75
- error: `${dllName} not found in runtime directory.`,
76
- };
77
- }
78
- copyFileSync(sourcePath, join(libsDir, dllName));
79
- copiedPaths.push(`libs/${dllName}`);
80
- }
81
- return { ok: true, value: copiedPaths };
82
- };
83
- //# sourceMappingURL=runtime-assets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-assets.js","sourceRoot":"","sources":["../../src/dotnet/runtime-assets.ts"],"names":[],"mappings":"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"}