@tsonic/cli 0.0.26 → 0.0.28

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 (81) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cli/dispatcher.d.ts.map +1 -1
  3. package/dist/cli/dispatcher.js +90 -40
  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 +15 -16
  7. package/dist/cli/help.js.map +1 -1
  8. package/dist/cli/parser.js +5 -5
  9. package/dist/cli/parser.js.map +1 -1
  10. package/dist/cli/parser.test.js +3 -7
  11. package/dist/cli/parser.test.js.map +1 -1
  12. package/dist/commands/add-common.d.ts +2 -4
  13. package/dist/commands/add-common.d.ts.map +1 -1
  14. package/dist/commands/add-common.js +0 -6
  15. package/dist/commands/add-common.js.map +1 -1
  16. package/dist/commands/add-deps.test.js +13 -20
  17. package/dist/commands/add-deps.test.js.map +1 -1
  18. package/dist/commands/add-framework.d.ts +1 -1
  19. package/dist/commands/add-framework.d.ts.map +1 -1
  20. package/dist/commands/add-framework.js +14 -23
  21. package/dist/commands/add-framework.js.map +1 -1
  22. package/dist/commands/add-js.d.ts +2 -2
  23. package/dist/commands/add-js.d.ts.map +1 -1
  24. package/dist/commands/add-js.js +21 -19
  25. package/dist/commands/add-js.js.map +1 -1
  26. package/dist/commands/add-js.test.js +23 -11
  27. package/dist/commands/add-js.test.js.map +1 -1
  28. package/dist/commands/add-nodejs.d.ts +2 -2
  29. package/dist/commands/add-nodejs.d.ts.map +1 -1
  30. package/dist/commands/add-nodejs.js +22 -19
  31. package/dist/commands/add-nodejs.js.map +1 -1
  32. package/dist/commands/add-nodejs.test.js +31 -13
  33. package/dist/commands/add-nodejs.test.js.map +1 -1
  34. package/dist/commands/add-nuget.d.ts +1 -1
  35. package/dist/commands/add-nuget.d.ts.map +1 -1
  36. package/dist/commands/add-nuget.js +7 -7
  37. package/dist/commands/add-nuget.js.map +1 -1
  38. package/dist/commands/add-package.d.ts.map +1 -1
  39. package/dist/commands/add-package.js +44 -30
  40. package/dist/commands/add-package.js.map +1 -1
  41. package/dist/commands/build.d.ts.map +1 -1
  42. package/dist/commands/build.js +157 -11
  43. package/dist/commands/build.js.map +1 -1
  44. package/dist/commands/generate.d.ts.map +1 -1
  45. package/dist/commands/generate.js +47 -69
  46. package/dist/commands/generate.js.map +1 -1
  47. package/dist/commands/init.d.ts +10 -19
  48. package/dist/commands/init.d.ts.map +1 -1
  49. package/dist/commands/init.js +150 -260
  50. package/dist/commands/init.js.map +1 -1
  51. package/dist/commands/init.test.js +21 -51
  52. package/dist/commands/init.test.js.map +1 -1
  53. package/dist/commands/pack.js +1 -1
  54. package/dist/commands/pack.js.map +1 -1
  55. package/dist/commands/remove-nuget.d.ts +1 -1
  56. package/dist/commands/remove-nuget.d.ts.map +1 -1
  57. package/dist/commands/remove-nuget.js +3 -3
  58. package/dist/commands/remove-nuget.js.map +1 -1
  59. package/dist/commands/restore.d.ts +1 -1
  60. package/dist/commands/restore.d.ts.map +1 -1
  61. package/dist/commands/restore.js +42 -61
  62. package/dist/commands/restore.js.map +1 -1
  63. package/dist/commands/restore.test.js +42 -18
  64. package/dist/commands/restore.test.js.map +1 -1
  65. package/dist/commands/update-nuget.d.ts +1 -1
  66. package/dist/commands/update-nuget.d.ts.map +1 -1
  67. package/dist/commands/update-nuget.js +3 -3
  68. package/dist/commands/update-nuget.js.map +1 -1
  69. package/dist/config.d.ts +18 -9
  70. package/dist/config.d.ts.map +1 -1
  71. package/dist/config.js +212 -156
  72. package/dist/config.js.map +1 -1
  73. package/dist/config.test.js +156 -147
  74. package/dist/config.test.js.map +1 -1
  75. package/dist/dotnet/runtime-assets.d.ts +1 -0
  76. package/dist/dotnet/runtime-assets.d.ts.map +1 -1
  77. package/dist/dotnet/runtime-assets.js +30 -0
  78. package/dist/dotnet/runtime-assets.js.map +1 -1
  79. package/dist/types.d.ts +59 -36
  80. package/dist/types.d.ts.map +1 -1
  81. package/package.json +5 -5
@@ -15,41 +15,65 @@ const linkDir = (target, linkPath) => {
15
15
  };
16
16
  describe("restore command", function () {
17
17
  this.timeout(10 * 60 * 1000);
18
- it("ignores built-in runtime DLLs in dotnet.libraries (legacy config)", () => {
18
+ it("ignores built-in runtime DLLs in dotnet.libraries", () => {
19
19
  const dir = mkdtempSync(join(tmpdir(), "tsonic-restore-runtime-"));
20
20
  try {
21
21
  mkdirSync(join(dir, "src"), { recursive: true });
22
- mkdirSync(join(dir, "lib"), { recursive: true });
22
+ mkdirSync(join(dir, "libs"), { recursive: true });
23
23
  writeFileSync(join(dir, "package.json"), JSON.stringify({ name: "test", private: true, type: "module" }, null, 2) +
24
24
  "\n", "utf-8");
25
- // Simulate a legacy config that incorrectly listed runtime DLLs as external libraries.
26
- writeFileSync(join(dir, "tsonic.json"), JSON.stringify({
27
- $schema: "https://tsonic.org/schema/v1.json",
28
- rootNamespace: "Test",
29
- entryPoint: "src/App.ts",
30
- sourceRoot: "src",
31
- outputDirectory: "generated",
32
- outputName: "app",
25
+ // Built-in runtime DLLs (JSRuntime / nodejs) should never trigger bindings generation.
26
+ writeFileSync(join(dir, "tsonic.workspace.json"), JSON.stringify({
27
+ $schema: "https://tsonic.org/schema/workspace/v1.json",
33
28
  dotnetVersion: "net10.0",
34
29
  dotnet: {
35
- typeRoots: ["node_modules/@tsonic/globals"],
36
- libraries: ["lib/Tsonic.Runtime.dll"],
30
+ libraries: ["libs/Tsonic.JSRuntime.dll"],
37
31
  frameworkReferences: [],
38
32
  packageReferences: [],
39
33
  },
40
34
  }, null, 2) + "\n", "utf-8");
41
35
  // Provide the runtime DLL.
42
- copyFileSync(join(repoRoot, "packages/cli/runtime/Tsonic.Runtime.dll"), join(dir, "lib/Tsonic.Runtime.dll"));
36
+ copyFileSync(join(repoRoot, "packages/cli/runtime/Tsonic.JSRuntime.dll"), join(dir, "libs/Tsonic.JSRuntime.dll"));
43
37
  // Provide required standard bindings packages (no network).
44
38
  linkDir(join(repoRoot, "node_modules/@tsonic/dotnet"), join(dir, "node_modules/@tsonic/dotnet"));
45
39
  linkDir(join(repoRoot, "node_modules/@tsonic/core"), join(dir, "node_modules/@tsonic/core"));
46
- const result = restoreCommand(join(dir, "tsonic.json"), { quiet: true });
40
+ const result = restoreCommand(join(dir, "tsonic.workspace.json"), { quiet: true });
47
41
  expect(result.ok).to.equal(true);
48
42
  // Should not generate bindings for the runtime DLL.
49
- expect(existsSync(join(dir, "node_modules", "tsonic-runtime-types"))).to.equal(false);
50
- // Should auto-migrate the config by removing built-in runtime DLLs from dotnet.libraries.
51
- const updated = JSON.parse(readFileSync(join(dir, "tsonic.json"), "utf-8"));
52
- expect(updated.dotnet?.libraries).to.deep.equal([]);
43
+ expect(existsSync(join(dir, "node_modules", "tsonic-jsruntime-types"))).to.equal(false);
44
+ // restore does not rewrite the config; it simply ignores runtime DLLs for bindings generation.
45
+ const updated = JSON.parse(readFileSync(join(dir, "tsonic.workspace.json"), "utf-8"));
46
+ expect(updated.dotnet?.libraries).to.deep.equal(["libs/Tsonic.JSRuntime.dll"]);
47
+ }
48
+ finally {
49
+ rmSync(dir, { recursive: true, force: true });
50
+ }
51
+ });
52
+ it("ignores DLL references outside libs/ (e.g., workspace outputs)", () => {
53
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-restore-workspace-dll-"));
54
+ try {
55
+ mkdirSync(join(dir, "src"), { recursive: true });
56
+ writeFileSync(join(dir, "package.json"), JSON.stringify({ name: "test", private: true, type: "module" }, null, 2) +
57
+ "\n", "utf-8");
58
+ // Simulate a workspace-dependent project that references another project's output DLL.
59
+ // This DLL may not exist until the dependency is built. `tsonic restore` must not fail
60
+ // or attempt bindings generation for such paths (only ./libs/*.dll are eligible).
61
+ writeFileSync(join(dir, "tsonic.workspace.json"), JSON.stringify({
62
+ $schema: "https://tsonic.org/schema/workspace/v1.json",
63
+ dotnetVersion: "net10.0",
64
+ dotnet: {
65
+ libraries: ["../domain/dist/net10.0/Acme.Domain.dll"],
66
+ frameworkReferences: [],
67
+ packageReferences: [],
68
+ },
69
+ }, null, 2) + "\n", "utf-8");
70
+ // Provide required standard bindings packages (no network).
71
+ linkDir(join(repoRoot, "node_modules/@tsonic/dotnet"), join(dir, "node_modules/@tsonic/dotnet"));
72
+ linkDir(join(repoRoot, "node_modules/@tsonic/core"), join(dir, "node_modules/@tsonic/core"));
73
+ const result = restoreCommand(join(dir, "tsonic.workspace.json"), { quiet: true });
74
+ expect(result.ok).to.equal(true);
75
+ // Should not generate bindings for workspace output DLL references.
76
+ expect(existsSync(join(dir, "node_modules", "acme-domain-types"))).to.equal(false);
53
77
  }
54
78
  finally {
55
79
  rmSync(dir, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"restore.test.js","sourceRoot":"","sources":["../../src/commands/restore.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restore.test.js","sourceRoot":"","sources":["../../src/commands/restore.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tsonic update nuget - update an existing NuGet PackageReference in the project.
2
+ * tsonic update nuget - update an existing NuGet PackageReference in the workspace.
3
3
  *
4
4
  * Usage:
5
5
  * tsonic update nuget <PackageId> <Version> [typesPackage]
@@ -1 +1 @@
1
- {"version":3,"file":"update-nuget.d.ts","sourceRoot":"","sources":["../../src/commands/update-nuget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,aAAa,CAAC;AAGxD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AAgBzB,eAAO,MAAM,kBAAkB,GAC7B,IAAI,MAAM,EACV,KAAK,MAAM,EACX,cAAc,MAAM,GAAG,SAAS,EAChC,YAAY,MAAM,EAClB,UAAS,iBAAsB,KAC9B,MAAM,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,CAiE1E,CAAC"}
1
+ {"version":3,"file":"update-nuget.d.ts","sourceRoot":"","sources":["../../src/commands/update-nuget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiD,MAAM,aAAa,CAAC;AAGzF,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AAUzB,eAAO,MAAM,kBAAkB,GAC7B,IAAI,MAAM,EACV,KAAK,MAAM,EACX,cAAc,MAAM,GAAG,SAAS,EAChC,YAAY,MAAM,EAClB,UAAS,iBAAsB,KAC9B,MAAM,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,CAiE1E,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tsonic update nuget - update an existing NuGet PackageReference in the project.
2
+ * tsonic update nuget - update an existing NuGet PackageReference in the workspace.
3
3
  *
4
4
  * Usage:
5
5
  * tsonic update nuget <PackageId> <Version> [typesPackage]
@@ -8,7 +8,7 @@
8
8
  * - Versions are pinned (explicit update only; no automatic upgrades)
9
9
  * - Always runs `tsonic restore` afterwards to keep local bindings consistent
10
10
  */
11
- import { loadConfig } from "../config.js";
11
+ import { loadWorkspaceConfig } from "../config.js";
12
12
  import { dirname } from "node:path";
13
13
  import { npmInstallDevDependency, writeTsonicJson, } from "./add-common.js";
14
14
  import { restoreCommand } from "./restore.js";
@@ -28,7 +28,7 @@ export const updateNugetCommand = (id, ver, typesPackage, configPath, options =
28
28
  if (typesPackage !== undefined && !isValidTypesPackageName(typesPackage)) {
29
29
  return { ok: false, error: `Invalid types package name: ${typesPackage}` };
30
30
  }
31
- const configResult = loadConfig(configPath);
31
+ const configResult = loadWorkspaceConfig(configPath);
32
32
  if (!configResult.ok)
33
33
  return configResult;
34
34
  const config = configResult.value;
@@ -1 +1 @@
1
- {"version":3,"file":"update-nuget.js","sourceRoot":"","sources":["../../src/commands/update-nuget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-nuget.js","sourceRoot":"","sources":["../../src/commands/update-nuget.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,18 +1,27 @@
1
1
  /**
2
- * Configuration loading and validation
2
+ * Workspace + project configuration loading and resolution.
3
+ *
4
+ * Airplane-grade rule: Tsonic always operates in a workspace.
5
+ * - Workspace root contains `tsonic.workspace.json`
6
+ * - Projects live under `packages/*` and contain `tsonic.json`
7
+ * - All external dependencies are workspace-scoped (no project-private deps)
3
8
  */
4
- import type { TsonicConfig, CliOptions, ResolvedConfig, Result } from "./types.js";
9
+ import type { CliOptions, ResolvedConfig, Result, TsonicProjectConfig, TsonicWorkspaceConfig } from "./types.js";
10
+ export declare const WORKSPACE_CONFIG_FILE = "tsonic.workspace.json";
11
+ export declare const PROJECT_CONFIG_FILE = "tsonic.json";
5
12
  /**
6
- * Load tsonic.json from a directory
13
+ * Find `tsonic.workspace.json` by walking up the directory tree.
7
14
  */
8
- export declare const loadConfig: (configPath: string) => Result<TsonicConfig, string>;
15
+ export declare const findWorkspaceConfig: (startDir: string) => string | null;
16
+ export declare const loadWorkspaceConfig: (configPath: string) => Result<TsonicWorkspaceConfig, string>;
17
+ export declare const loadProjectConfig: (configPath: string) => Result<TsonicProjectConfig, string>;
18
+ export declare const listProjects: (workspaceRoot: string) => readonly string[];
9
19
  /**
10
- * Find tsonic.json by walking up the directory tree
20
+ * Find the nearest project config under `packages/<project>/tsonic.json` for a given working directory.
11
21
  */
12
- export declare const findConfig: (startDir: string) => string | null;
22
+ export declare const findProjectConfig: (startDir: string, workspaceRoot: string) => string | null;
13
23
  /**
14
- * Resolve final configuration from file + CLI args
15
- * @param projectRoot - Directory containing tsonic.json/package.json (for package resolution)
24
+ * Resolve a project's effective configuration (workspace-scoped deps + project settings).
16
25
  */
17
- export declare const resolveConfig: (config: TsonicConfig, cliOptions: CliOptions, projectRoot: string, entryFile?: string) => ResolvedConfig;
26
+ export declare const resolveConfig: (workspaceConfig: TsonicWorkspaceConfig, projectConfig: TsonicProjectConfig, cliOptions: CliOptions, workspaceRoot: string, projectRoot: string, entryFile?: string) => ResolvedConfig;
18
27
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,MAAM,EAEP,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,YAAY,MAAM,KACjB,MAAM,CAAC,YAAY,EAAE,MAAM,CAmI7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,KAAG,MAAM,GAAG,IAiBtD,CAAC;AA+FF;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,YAAY,EACpB,YAAY,UAAU,EACtB,aAAa,MAAM,EACnB,YAAY,MAAM,KACjB,cA4DF,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EACV,UAAU,EAGV,cAAc,EACd,MAAM,EAEN,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAC7D,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,MAAM,GAAG,IAW/D,CAAC;AAcF,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,KACjB,MAAM,CAAC,qBAAqB,EAAE,MAAM,CA0FtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,MAAM,KACjB,MAAM,CAAC,mBAAmB,EAAE,MAAM,CA4DpC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,eAAe,MAAM,KAAG,SAAS,MAAM,EAanE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,EAChB,eAAe,MAAM,KACpB,MAAM,GAAG,IAqBX,CAAC;AAkFF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,iBAAiB,qBAAqB,EACtC,eAAe,mBAAmB,EAClC,YAAY,UAAU,EACtB,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,YAAY,MAAM,KACjB,cAwEF,CAAC"}