@tsonic/cli 0.0.27 → 0.0.29

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 +85 -44
  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 +17 -24
  25. package/dist/commands/add-js.js.map +1 -1
  26. package/dist/commands/add-js.test.js +22 -14
  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 +18 -25
  31. package/dist/commands/add-nodejs.js.map +1 -1
  32. package/dist/commands/add-nodejs.test.js +26 -18
  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 +59 -35
  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 +32 -26
  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 -265
  50. package/dist/commands/init.js.map +1 -1
  51. package/dist/commands/init.test.js +19 -56
  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 +80 -57
  62. package/dist/commands/restore.js.map +1 -1
  63. package/dist/commands/restore.test.js +103 -28
  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 +234 -153
  72. package/dist/config.js.map +1 -1
  73. package/dist/config.test.js +169 -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 +69 -37
  80. package/dist/types.d.ts.map +1 -1
  81. package/package.json +5 -5
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tsonic add nuget - add a NuGet PackageReference to the project, plus bindings.
2
+ * tsonic add nuget - add a NuGet PackageReference to the workspace, plus bindings.
3
3
  *
4
4
  * Usage:
5
5
  * tsonic add nuget <PackageId> <Version> [typesPackage]
@@ -10,7 +10,7 @@
10
10
  * - If types are omitted, we auto-generate bindings for the full transitive closure
11
11
  * via `tsonic restore` (single source of truth)
12
12
  */
13
- import { loadConfig } from "../config.js";
13
+ import { loadWorkspaceConfig } from "../config.js";
14
14
  import { dirname } from "node:path";
15
15
  import { defaultBindingsPackageNameForNuget, npmInstallDevDependency, writeTsonicJson, } from "./add-common.js";
16
16
  import { restoreCommand } from "./restore.js";
@@ -21,7 +21,7 @@ const isValidTypesPackageName = (name) => {
21
21
  return /^@[a-z0-9-]+\/[a-z0-9-]+$/i.test(name);
22
22
  };
23
23
  export const addNugetCommand = (id, ver, typesPackage, configPath, options = {}) => {
24
- const projectRoot = dirname(configPath);
24
+ const workspaceRoot = dirname(configPath);
25
25
  if (!id.trim()) {
26
26
  return { ok: false, error: "NuGet package id must be non-empty" };
27
27
  }
@@ -31,7 +31,7 @@ export const addNugetCommand = (id, ver, typesPackage, configPath, options = {})
31
31
  if (typesPackage !== undefined && !isValidTypesPackageName(typesPackage)) {
32
32
  return { ok: false, error: `Invalid types package name: ${typesPackage}` };
33
33
  }
34
- const tsonicConfigResult = loadConfig(configPath);
34
+ const tsonicConfigResult = loadWorkspaceConfig(configPath);
35
35
  if (!tsonicConfigResult.ok)
36
36
  return tsonicConfigResult;
37
37
  const config = tsonicConfigResult.value;
@@ -46,7 +46,7 @@ export const addNugetCommand = (id, ver, typesPackage, configPath, options = {})
46
46
  return {
47
47
  ok: false,
48
48
  error: `NuGet package already present with a different version: ${current?.id} ${current?.version}\n` +
49
- `Refusing to change versions automatically (airplane-grade). Update tsonic.json manually if intended.`,
49
+ `Refusing to change versions automatically (airplane-grade). Update tsonic.workspace.json manually if intended.`,
50
50
  };
51
51
  }
52
52
  if (typesPackage) {
@@ -57,7 +57,7 @@ export const addNugetCommand = (id, ver, typesPackage, configPath, options = {})
57
57
  `- ${current.id} ${current.version}\n` +
58
58
  `- existing: ${current.types}\n` +
59
59
  `- requested: ${typesPackage}\n` +
60
- `Refusing to change automatically (airplane-grade). Update tsonic.json manually if intended.`,
60
+ `Refusing to change automatically (airplane-grade). Update tsonic.workspace.json manually if intended.`,
61
61
  };
62
62
  }
63
63
  existing[idx] = { ...current, types: typesPackage };
@@ -80,7 +80,7 @@ export const addNugetCommand = (id, ver, typesPackage, configPath, options = {})
80
80
  existing.find((p) => normalizePkgId(p.id) === normalizePkgId(id))?.types ??
81
81
  defaultBindingsPackageNameForNuget(id);
82
82
  if (typesPackage) {
83
- const installResult = npmInstallDevDependency(projectRoot, typesPackage, options);
83
+ const installResult = npmInstallDevDependency(workspaceRoot, typesPackage, options);
84
84
  if (!installResult.ok)
85
85
  return installResult;
86
86
  return { ok: true, value: { packageId: id, version: ver, bindings } };
@@ -1 +1 @@
1
- {"version":3,"file":"add-nuget.js","sourceRoot":"","sources":["../../src/commands/add-nuget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-nuget.js","sourceRoot":"","sources":["../../src/commands/add-nuget.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-package.d.ts","sourceRoot":"","sources":["../../src/commands/add-package.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,aAAa,CAAC;AAGxD,OAAO,EAaL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAqClD,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,cAAc,MAAM,GAAG,SAAS,EAChC,YAAY,MAAM,EAClB,UAAS,iBAAsB,KAC9B,MAAM,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,CA2UzD,CAAC"}
1
+ {"version":3,"file":"add-package.d.ts","sourceRoot":"","sources":["../../src/commands/add-package.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EAEV,MAAM,EAEP,MAAM,aAAa,CAAC;AAGrB,OAAO,EAYL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAiFlD,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,cAAc,MAAM,GAAG,SAAS,EAChC,YAAY,MAAM,EAClB,UAAS,iBAAsB,KAC9B,MAAM,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,CAsUzD,CAAC"}
@@ -12,18 +12,46 @@
12
12
  import { copyFileSync, existsSync, mkdirSync, readFileSync, } from "node:fs";
13
13
  import { basename, dirname, join } from "node:path";
14
14
  import { createHash } from "node:crypto";
15
- import { loadConfig } from "../config.js";
15
+ import { loadWorkspaceConfig } from "../config.js";
16
16
  import { isBuiltInRuntimeDllPath } from "../dotnet/runtime-dlls.js";
17
- import { bindingsStoreDir, defaultBindingsPackageNameForDll, detectTsbindgenNaming, ensureGeneratedBindingsPackageJson, installGeneratedBindingsPackage, listDotnetRuntimes, npmInstallDevDependency, resolveFromProjectRoot, resolvePackageRoot, resolveTsbindgenDllPath, tsbindgenGenerate, tsbindgenResolveClosure, writeTsonicJson, } from "./add-common.js";
17
+ import { bindingsStoreDir, defaultBindingsPackageNameForDll, ensureGeneratedBindingsPackageJson, installGeneratedBindingsPackage, listDotnetRuntimes, npmInstallDevDependency, resolveFromProjectRoot, resolvePackageRoot, resolveTsbindgenDllPath, tsbindgenGenerate, tsbindgenResolveClosure, writeTsonicJson, } from "./add-common.js";
18
18
  const sha256File = (path) => {
19
19
  const data = readFileSync(path);
20
20
  // crypto.update's types are stricter than Buffer's ArrayBufferLike surface.
21
21
  // Convert to a standard Uint8Array backed by ArrayBuffer.
22
22
  return createHash("sha256").update(new Uint8Array(data)).digest("hex");
23
23
  };
24
- const addUnique = (arr, value) => {
25
- if (!arr.includes(value))
26
- arr.push(value);
24
+ const normalizeLibraryKey = (pathLike) => pathLike.replace(/\\/g, "/").replace(/^\.\//, "").toLowerCase();
25
+ const getLibraryPath = (entry) => typeof entry === "string" ? entry : entry.path;
26
+ const setLibraryTypesMapping = (entries, libraryPath, typesPackage) => {
27
+ const key = normalizeLibraryKey(libraryPath);
28
+ const idx = entries.findIndex((e) => normalizeLibraryKey(getLibraryPath(e)) === key);
29
+ if (idx === -1) {
30
+ entries.push({ path: libraryPath, types: typesPackage });
31
+ return { ok: true, value: undefined };
32
+ }
33
+ const existing = entries[idx];
34
+ if (typeof existing === "string") {
35
+ entries[idx] = { path: existing, types: typesPackage };
36
+ return { ok: true, value: undefined };
37
+ }
38
+ if (existing.types === undefined || existing.types === typesPackage) {
39
+ entries[idx] = { path: existing.path, types: typesPackage };
40
+ return { ok: true, value: undefined };
41
+ }
42
+ return {
43
+ ok: false,
44
+ error: `Conflicting types mapping for '${getLibraryPath(existing)}'.\n` +
45
+ `Existing: ${existing.types}\n` +
46
+ `Requested: ${typesPackage}\n` +
47
+ `Remove the existing entry from tsonic.workspace.json and retry.`,
48
+ };
49
+ };
50
+ const addUniqueLibraryPath = (entries, libraryPath) => {
51
+ const key = normalizeLibraryKey(libraryPath);
52
+ if (entries.some((e) => normalizeLibraryKey(getLibraryPath(e)) === key))
53
+ return;
54
+ entries.push(libraryPath);
27
55
  };
28
56
  const hasFrameworkReference = (arr, value) => arr.some((r) => (typeof r === "string" ? r : r.id).toLowerCase() === value.toLowerCase());
29
57
  const isValidTypesPackageName = (name) => {
@@ -38,8 +66,8 @@ const pathIsWithin = (path, dir) => {
38
66
  return normalizedPath.startsWith(normalizedBase);
39
67
  };
40
68
  export const addPackageCommand = (dllPath, typesPackage, configPath, options = {}) => {
41
- const projectRoot = dirname(configPath);
42
- const dllAbs = resolveFromProjectRoot(projectRoot, dllPath);
69
+ const workspaceRoot = dirname(configPath);
70
+ const dllAbs = resolveFromProjectRoot(workspaceRoot, dllPath);
43
71
  if (!existsSync(dllAbs)) {
44
72
  return { ok: false, error: `DLL not found: ${dllAbs}` };
45
73
  }
@@ -63,14 +91,14 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
63
91
  return {
64
92
  ok: false,
65
93
  error: `Refusing to add ${dllName} via 'tsonic add package'.\n` +
66
- `Use 'tsonic add js' (or 'tsonic project init --js') to install @tsonic/js and add the DLL reference.`,
94
+ `Use 'tsonic add js' (or 'tsonic init --js') to install @tsonic/js and add the DLL reference.`,
67
95
  };
68
96
  }
69
97
  if (lower === "nodejs.dll") {
70
98
  return {
71
99
  ok: false,
72
100
  error: `Refusing to add ${dllName} via 'tsonic add package'.\n` +
73
- `Use 'tsonic add nodejs' (or 'tsonic project init --nodejs') to install @tsonic/nodejs and add the DLL reference.`,
101
+ `Use 'tsonic add nodejs' (or 'tsonic init --nodejs') to install @tsonic/nodejs and add the DLL reference.`,
74
102
  };
75
103
  }
76
104
  return {
@@ -82,25 +110,25 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
82
110
  if (typesPackage !== undefined && !isValidTypesPackageName(typesPackage)) {
83
111
  return { ok: false, error: `Invalid types package name: ${typesPackage}` };
84
112
  }
85
- const tsonicConfigResult = loadConfig(configPath);
113
+ const tsonicConfigResult = loadWorkspaceConfig(configPath);
86
114
  if (!tsonicConfigResult.ok)
87
115
  return tsonicConfigResult;
88
116
  const config = tsonicConfigResult.value;
89
- const tsbindgenDllResult = resolveTsbindgenDllPath(projectRoot);
117
+ const tsbindgenDllResult = resolveTsbindgenDllPath(workspaceRoot);
90
118
  if (!tsbindgenDllResult.ok)
91
119
  return tsbindgenDllResult;
92
120
  const tsbindgenDll = tsbindgenDllResult.value;
93
- const runtimesResult = listDotnetRuntimes(projectRoot);
121
+ const runtimesResult = listDotnetRuntimes(workspaceRoot);
94
122
  if (!runtimesResult.ok)
95
123
  return runtimesResult;
96
124
  const runtimeDirs = runtimesResult.value;
97
- const userDeps = (options.deps ?? []).map((d) => resolveFromProjectRoot(projectRoot, d));
125
+ const userDeps = (options.deps ?? []).map((d) => resolveFromProjectRoot(workspaceRoot, d));
98
126
  const refDirs = [
99
127
  ...runtimeDirs.map((r) => r.dir),
100
- join(projectRoot, "lib"),
128
+ join(workspaceRoot, "libs"),
101
129
  ...userDeps,
102
130
  ];
103
- const closureResult = tsbindgenResolveClosure(projectRoot, tsbindgenDll, [dllAbs], refDirs);
131
+ const closureResult = tsbindgenResolveClosure(workspaceRoot, tsbindgenDll, [dllAbs], refDirs);
104
132
  if (!closureResult.ok)
105
133
  return closureResult;
106
134
  const closure = closureResult.value;
@@ -124,7 +152,7 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
124
152
  }
125
153
  dllsToCopy.push(asm.path);
126
154
  }
127
- const libDir = join(projectRoot, "lib");
155
+ const libDir = join(workspaceRoot, "libs");
128
156
  mkdirSync(libDir, { recursive: true });
129
157
  let copiedCount = 0;
130
158
  const copiedRelPaths = [];
@@ -137,7 +165,7 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
137
165
  if (a !== b) {
138
166
  return {
139
167
  ok: false,
140
- error: `Conflict: lib/${fileName} already exists and differs from the resolved dependency closure.\n` +
168
+ error: `Conflict: libs/${fileName} already exists and differs from the resolved dependency closure.\n` +
141
169
  `Resolve this conflict (remove/rename the existing DLL) and retry.`,
142
170
  };
143
171
  }
@@ -146,12 +174,17 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
146
174
  copyFileSync(srcPath, destPath);
147
175
  copiedCount++;
148
176
  }
149
- copiedRelPaths.push(`lib/${fileName}`);
177
+ copiedRelPaths.push(`libs/${fileName}`);
150
178
  }
151
179
  const dotnet = config.dotnet ?? {};
152
180
  const libraries = [...(dotnet.libraries ?? [])];
153
- for (const rel of copiedRelPaths) {
154
- addUnique(libraries, rel);
181
+ for (const rel of copiedRelPaths)
182
+ addUniqueLibraryPath(libraries, rel);
183
+ if (typesPackage) {
184
+ const rootRel = `libs/${basename(dllAbs)}`;
185
+ const mappingResult = setLibraryTypesMapping(libraries, rootRel, typesPackage);
186
+ if (!mappingResult.ok)
187
+ return mappingResult;
155
188
  }
156
189
  const frameworkRefs = [
157
190
  ...(dotnet.frameworkReferences ?? []),
@@ -174,7 +207,7 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
174
207
  return writeResult;
175
208
  // Install or generate bindings.
176
209
  if (typesPackage) {
177
- const installResult = npmInstallDevDependency(projectRoot, typesPackage, options);
210
+ const installResult = npmInstallDevDependency(workspaceRoot, typesPackage, options);
178
211
  if (!installResult.ok)
179
212
  return installResult;
180
213
  return {
@@ -182,15 +215,10 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
182
215
  value: { dllsCopied: copiedCount, bindings: typesPackage },
183
216
  };
184
217
  }
185
- const naming = detectTsbindgenNaming(nextConfig);
186
- const dotnetRoot = resolvePackageRoot(projectRoot, "@tsonic/dotnet");
218
+ const dotnetRoot = resolvePackageRoot(workspaceRoot, "@tsonic/dotnet");
187
219
  if (!dotnetRoot.ok)
188
220
  return dotnetRoot;
189
- const coreRoot = resolvePackageRoot(projectRoot, "@tsonic/core");
190
- if (!coreRoot.ok)
191
- return coreRoot;
192
221
  const dotnetLib = dotnetRoot.value;
193
- const coreLib = coreRoot.value;
194
222
  const nonFramework = closure.resolvedAssemblies.filter((asm) => {
195
223
  const runtimeDir = runtimeDirs.find((rt) => pathIsWithin(asm.path, rt.dir));
196
224
  return !runtimeDir;
@@ -278,7 +306,7 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
278
306
  return { ok: false, error: `Internal error: missing assembly info for ${id}` };
279
307
  }
280
308
  const packageName = defaultBindingsPackageNameForDll(destPath);
281
- const bindingsDir = bindingsStoreDir(projectRoot, "dll", packageName);
309
+ const bindingsDir = bindingsStoreDir(workspaceRoot, "dll", packageName);
282
310
  bindingsDirById.set(id, bindingsDir);
283
311
  packageNameById.set(id, packageName);
284
312
  const pkgJsonResult = ensureGeneratedBindingsPackageJson(bindingsDir, packageName, {
@@ -286,7 +314,7 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
286
314
  source: {
287
315
  assemblyName: asm.name,
288
316
  version: asm.version,
289
- path: `lib/${basename(destPath)}`,
317
+ path: `libs/${basename(destPath)}`,
290
318
  },
291
319
  });
292
320
  if (!pkgJsonResult.ok)
@@ -296,12 +324,8 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
296
324
  destPath,
297
325
  "-o",
298
326
  bindingsDir,
299
- "--naming",
300
- naming,
301
327
  "--lib",
302
328
  dotnetLib,
303
- "--lib",
304
- coreLib,
305
329
  ];
306
330
  const libs = Array.from(transitiveDeps.get(id) ?? [])
307
331
  .map((depId) => bindingsDirById.get(depId))
@@ -314,10 +338,10 @@ export const addPackageCommand = (dllPath, typesPackage, configPath, options = {
314
338
  for (const dep of userDeps)
315
339
  generateArgs.push("--ref-dir", dep);
316
340
  generateArgs.push("--ref-dir", libDir);
317
- const genResult = tsbindgenGenerate(projectRoot, tsbindgenDll, generateArgs, options);
341
+ const genResult = tsbindgenGenerate(workspaceRoot, tsbindgenDll, generateArgs, options);
318
342
  if (!genResult.ok)
319
343
  return genResult;
320
- const installResult = installGeneratedBindingsPackage(projectRoot, packageName, bindingsDir);
344
+ const installResult = installGeneratedBindingsPackage(workspaceRoot, packageName, bindingsDir);
321
345
  if (!installResult.ok)
322
346
  return installResult;
323
347
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add-package.js","sourceRoot":"","sources":["../../src/commands/add-package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-package.js","sourceRoot":"","sources":["../../src/commands/add-package.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAkO1D;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,QAAQ,cAAc,KACrB,MAAM,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,CA0BvC,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAyY1D;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,QAAQ,cAAc,KACrB,MAAM,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,CA0BvC,CAAC"}
@@ -2,16 +2,158 @@
2
2
  * tsonic build command - Build executable or library
3
3
  */
4
4
  import { spawnSync } from "node:child_process";
5
- import { join, relative } from "node:path";
6
- import { chmodSync, copyFileSync, cpSync, existsSync, mkdirSync, readdirSync, } from "node:fs";
5
+ import { dirname, join, relative } from "node:path";
6
+ import { chmodSync, copyFileSync, cpSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, } from "node:fs";
7
7
  import { generateCommand } from "./generate.js";
8
8
  import { resolveNugetConfigFile } from "../dotnet/nuget-config.js";
9
+ import { listDotnetRuntimes, resolvePackageRoot, resolveTsbindgenDllPath, tsbindgenGenerate, } from "./add-common.js";
10
+ const pickPackageFolder = (assets) => {
11
+ const folders = assets.packageFolders ? Object.keys(assets.packageFolders) : [];
12
+ if (folders.length === 0)
13
+ return undefined;
14
+ return folders[0];
15
+ };
16
+ const findTargetKey = (assets, tfm) => {
17
+ const targets = assets.targets ? Object.keys(assets.targets) : [];
18
+ if (targets.includes(tfm))
19
+ return tfm;
20
+ return targets.find((k) => k.startsWith(`${tfm}/`));
21
+ };
22
+ const collectNugetCompileDirs = (workspaceRoot, tfm) => {
23
+ const assetsPath = join(workspaceRoot, ".tsonic", "nuget", "obj", "project.assets.json");
24
+ if (!existsSync(assetsPath))
25
+ return { ok: true, value: [] };
26
+ let assets;
27
+ try {
28
+ assets = JSON.parse(readFileSync(assetsPath, "utf-8"));
29
+ }
30
+ catch (error) {
31
+ return {
32
+ ok: false,
33
+ error: `Failed to parse ${assetsPath}: ${error instanceof Error ? error.message : String(error)}`,
34
+ };
35
+ }
36
+ const packageFolder = pickPackageFolder(assets);
37
+ if (!packageFolder)
38
+ return { ok: true, value: [] };
39
+ const targetKey = findTargetKey(assets, tfm);
40
+ if (!targetKey)
41
+ return { ok: true, value: [] };
42
+ const targets = assets.targets?.[targetKey];
43
+ const libraries = assets.libraries ?? {};
44
+ if (!targets || typeof targets !== "object")
45
+ return { ok: true, value: [] };
46
+ const compileDirs = new Set();
47
+ for (const [libKey, libValue] of Object.entries(targets)) {
48
+ if (!libKey || !libValue || typeof libValue !== "object")
49
+ continue;
50
+ const libInfo = libraries[libKey];
51
+ if (!libInfo || libInfo.type !== "package" || !libInfo.path)
52
+ continue;
53
+ const compile = libValue.compile;
54
+ if (!compile || typeof compile !== "object")
55
+ continue;
56
+ for (const p of Object.keys(compile)) {
57
+ if (!p.toLowerCase().endsWith(".dll"))
58
+ continue;
59
+ const dllPath = join(packageFolder, libInfo.path, p);
60
+ compileDirs.add(dirname(dllPath));
61
+ }
62
+ }
63
+ return { ok: true, value: Array.from(compileDirs).sort((a, b) => a.localeCompare(b)) };
64
+ };
65
+ const listGeneratedBindingsLibDirs = (workspaceRoot) => {
66
+ const base = join(workspaceRoot, ".tsonic", "bindings");
67
+ if (!existsSync(base))
68
+ return [];
69
+ const libs = [];
70
+ const kinds = readdirSync(base, { withFileTypes: true }).filter((e) => e.isDirectory()).map((e) => e.name);
71
+ for (const kind of kinds) {
72
+ const kindDir = join(base, kind);
73
+ for (const entry of readdirSync(kindDir, { withFileTypes: true })) {
74
+ if (!entry.isDirectory())
75
+ continue;
76
+ const dir = join(kindDir, entry.name);
77
+ const pkgJsonPath = join(dir, "package.json");
78
+ if (!existsSync(pkgJsonPath))
79
+ continue;
80
+ try {
81
+ const parsed = JSON.parse(readFileSync(pkgJsonPath, "utf-8"));
82
+ const tsonic = (parsed.tsonic ?? {});
83
+ if (tsonic.generated === true)
84
+ libs.push(dir);
85
+ }
86
+ catch {
87
+ // Ignore malformed generated packages; restore will report these separately.
88
+ }
89
+ }
90
+ }
91
+ libs.sort((a, b) => a.localeCompare(b));
92
+ return libs;
93
+ };
94
+ const generateLibraryBindings = (config) => {
95
+ const { workspaceRoot, projectRoot, outputName, dotnetVersion, verbose, quiet, packageReferences } = config;
96
+ const dllPath = join(projectRoot, "dist", dotnetVersion, `${outputName}.dll`);
97
+ if (!existsSync(dllPath)) {
98
+ return { ok: false, error: `Built library DLL not found at ${dllPath}` };
99
+ }
100
+ const tsbindgenDllResult = resolveTsbindgenDllPath(workspaceRoot);
101
+ if (!tsbindgenDllResult.ok)
102
+ return tsbindgenDllResult;
103
+ const runtimesResult = listDotnetRuntimes(workspaceRoot);
104
+ if (!runtimesResult.ok)
105
+ return runtimesResult;
106
+ const runtimes = runtimesResult.value;
107
+ const dotnetRoot = resolvePackageRoot(workspaceRoot, "@tsonic/dotnet");
108
+ if (!dotnetRoot.ok)
109
+ return dotnetRoot;
110
+ const outDir = join(projectRoot, "dist", "tsonic", "bindings");
111
+ rmSync(outDir, { recursive: true, force: true });
112
+ mkdirSync(outDir, { recursive: true });
113
+ const compileDirsResult = collectNugetCompileDirs(workspaceRoot, dotnetVersion);
114
+ if (!compileDirsResult.ok)
115
+ return compileDirsResult;
116
+ if (packageReferences.length > 0 && compileDirsResult.value.length === 0) {
117
+ return {
118
+ ok: false,
119
+ error: "NuGet PackageReferences are configured, but no restore assets were found.\n" +
120
+ "Run `tsonic restore` at the workspace root and retry.",
121
+ };
122
+ }
123
+ const generatedLibs = listGeneratedBindingsLibDirs(workspaceRoot);
124
+ const args = [
125
+ "-a",
126
+ dllPath,
127
+ "-o",
128
+ outDir,
129
+ "--lib",
130
+ dotnetRoot.value,
131
+ ];
132
+ for (const lib of generatedLibs)
133
+ args.push("--lib", lib);
134
+ const refDirs = new Set();
135
+ refDirs.add(join(projectRoot, "dist", dotnetVersion));
136
+ refDirs.add(join(workspaceRoot, "libs"));
137
+ for (const rt of runtimes)
138
+ refDirs.add(rt.dir);
139
+ for (const d of compileDirsResult.value)
140
+ refDirs.add(d);
141
+ for (const dir of Array.from(refDirs).sort((a, b) => a.localeCompare(b))) {
142
+ if (existsSync(dir))
143
+ args.push("--ref-dir", dir);
144
+ }
145
+ const options = { verbose, quiet };
146
+ const genResult = tsbindgenGenerate(workspaceRoot, tsbindgenDllResult.value, args, options);
147
+ if (!genResult.ok)
148
+ return genResult;
149
+ return { ok: true, value: undefined };
150
+ };
9
151
  /**
10
152
  * Build native executable
11
153
  */
12
154
  const buildExecutable = (config, generatedDir) => {
13
- const { outputName, rid, quiet, verbose } = config;
14
- const nugetConfigResult = resolveNugetConfigFile(config.projectRoot);
155
+ const { outputName, rid, quiet, verbose, workspaceRoot } = config;
156
+ const nugetConfigResult = resolveNugetConfigFile(workspaceRoot);
15
157
  if (!nugetConfigResult.ok)
16
158
  return nugetConfigResult;
17
159
  // Run dotnet publish
@@ -51,7 +193,7 @@ const buildExecutable = (config, generatedDir) => {
51
193
  const binaryName = process.platform === "win32" ? `${outputName}.exe` : outputName;
52
194
  const publishDir = join(generatedDir, "bin", "Release", config.dotnetVersion, rid, "publish");
53
195
  const sourceBinary = join(publishDir, binaryName);
54
- const outDir = join(process.cwd(), "out");
196
+ const outDir = join(config.projectRoot, "out");
55
197
  const targetBinary = join(outDir, binaryName);
56
198
  if (!existsSync(sourceBinary)) {
57
199
  return {
@@ -95,11 +237,11 @@ const buildExecutable = (config, generatedDir) => {
95
237
  * Build library
96
238
  */
97
239
  const buildLibrary = (config, generatedDir) => {
98
- const { outputName, quiet, verbose } = config;
240
+ const { outputName, quiet, verbose, workspaceRoot } = config;
99
241
  const targetFrameworks = config.outputConfig.targetFrameworks ?? [
100
242
  config.dotnetVersion,
101
243
  ];
102
- const nugetConfigResult = resolveNugetConfigFile(config.projectRoot);
244
+ const nugetConfigResult = resolveNugetConfigFile(workspaceRoot);
103
245
  if (!nugetConfigResult.ok)
104
246
  return nugetConfigResult;
105
247
  // Run dotnet build
@@ -134,7 +276,7 @@ const buildLibrary = (config, generatedDir) => {
134
276
  };
135
277
  }
136
278
  // Copy output library artifacts
137
- const outputDir = join(process.cwd(), "dist");
279
+ const outputDir = join(config.projectRoot, "dist");
138
280
  try {
139
281
  // Create output directory
140
282
  if (!existsSync(outputDir)) {
@@ -156,21 +298,21 @@ const buildLibrary = (config, generatedDir) => {
156
298
  if (existsSync(dllSource)) {
157
299
  const dllTarget = join(frameworkOutputDir, `${outputName}.dll`);
158
300
  copyFileSync(dllSource, dllTarget);
159
- copiedFiles.push(relative(process.cwd(), dllTarget));
301
+ copiedFiles.push(relative(config.projectRoot, dllTarget));
160
302
  }
161
303
  // Copy .xml (documentation)
162
304
  const xmlSource = join(buildDir, `${outputName}.xml`);
163
305
  if (existsSync(xmlSource)) {
164
306
  const xmlTarget = join(frameworkOutputDir, `${outputName}.xml`);
165
307
  copyFileSync(xmlSource, xmlTarget);
166
- copiedFiles.push(relative(process.cwd(), xmlTarget));
308
+ copiedFiles.push(relative(config.projectRoot, xmlTarget));
167
309
  }
168
310
  // Copy .pdb (symbols)
169
311
  const pdbSource = join(buildDir, `${outputName}.pdb`);
170
312
  if (existsSync(pdbSource)) {
171
313
  const pdbTarget = join(frameworkOutputDir, `${outputName}.pdb`);
172
314
  copyFileSync(pdbSource, pdbTarget);
173
- copiedFiles.push(relative(process.cwd(), pdbTarget));
315
+ copiedFiles.push(relative(config.projectRoot, pdbTarget));
174
316
  }
175
317
  }
176
318
  if (copiedFiles.length === 0) {
@@ -179,6 +321,10 @@ const buildLibrary = (config, generatedDir) => {
179
321
  error: "No library artifacts found to copy",
180
322
  };
181
323
  }
324
+ const bindingsResult = generateLibraryBindings(config);
325
+ if (!bindingsResult.ok) {
326
+ return { ok: false, error: bindingsResult.error };
327
+ }
182
328
  return {
183
329
  ok: true,
184
330
  value: { outputPath: outputDir },