@tsonic/cli 0.0.62 → 0.0.64

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 (95) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/aikya/bindings.d.ts +44 -0
  3. package/dist/aikya/bindings.d.ts.map +1 -0
  4. package/dist/aikya/bindings.js +777 -0
  5. package/dist/aikya/bindings.js.map +1 -0
  6. package/dist/aikya/bindings.test.d.ts +2 -0
  7. package/dist/aikya/bindings.test.d.ts.map +1 -0
  8. package/dist/aikya/bindings.test.js +554 -0
  9. package/dist/aikya/bindings.test.js.map +1 -0
  10. package/dist/cli/dispatcher.d.ts.map +1 -1
  11. package/dist/cli/dispatcher.js +17 -0
  12. package/dist/cli/dispatcher.js.map +1 -1
  13. package/dist/cli/help.d.ts.map +1 -1
  14. package/dist/cli/help.js +4 -1
  15. package/dist/cli/help.js.map +1 -1
  16. package/dist/cli/parser.d.ts.map +1 -1
  17. package/dist/cli/parser.js +6 -5
  18. package/dist/cli/parser.js.map +1 -1
  19. package/dist/cli/parser.test.js +13 -2
  20. package/dist/cli/parser.test.js.map +1 -1
  21. package/dist/commands/add-common.js +1 -1
  22. package/dist/commands/add-common.js.map +1 -1
  23. package/dist/commands/add-npm.d.ts +3 -2
  24. package/dist/commands/add-npm.d.ts.map +1 -1
  25. package/dist/commands/add-npm.js +69 -177
  26. package/dist/commands/add-npm.js.map +1 -1
  27. package/dist/commands/add-npm.test.js +277 -2
  28. package/dist/commands/add-npm.test.js.map +1 -1
  29. package/dist/commands/add-package.d.ts.map +1 -1
  30. package/dist/commands/add-package.js +1 -0
  31. package/dist/commands/add-package.js.map +1 -1
  32. package/dist/commands/build-library-bindings-aliases.test.js +877 -5
  33. package/dist/commands/build-library-bindings-aliases.test.js.map +1 -1
  34. package/dist/commands/build-native-lib.test.js +4 -1
  35. package/dist/commands/build-native-lib.test.js.map +1 -1
  36. package/dist/commands/build.d.ts.map +1 -1
  37. package/dist/commands/build.js +168 -148
  38. package/dist/commands/build.js.map +1 -1
  39. package/dist/commands/build.test.js +22 -3
  40. package/dist/commands/build.test.js.map +1 -1
  41. package/dist/commands/generate.d.ts.map +1 -1
  42. package/dist/commands/generate.js +5 -0
  43. package/dist/commands/generate.js.map +1 -1
  44. package/dist/commands/init.d.ts +5 -2
  45. package/dist/commands/init.d.ts.map +1 -1
  46. package/dist/commands/init.js +42 -7
  47. package/dist/commands/init.js.map +1 -1
  48. package/dist/commands/init.test.js +82 -2
  49. package/dist/commands/init.test.js.map +1 -1
  50. package/dist/commands/library-bindings-augment.d.ts +2 -0
  51. package/dist/commands/library-bindings-augment.d.ts.map +1 -1
  52. package/dist/commands/library-bindings-augment.js +396 -57
  53. package/dist/commands/library-bindings-augment.js.map +1 -1
  54. package/dist/commands/library-bindings-augment.test.d.ts +2 -0
  55. package/dist/commands/library-bindings-augment.test.d.ts.map +1 -0
  56. package/dist/commands/library-bindings-augment.test.js +547 -0
  57. package/dist/commands/library-bindings-augment.test.js.map +1 -0
  58. package/dist/commands/library-bindings-firstparty-regressions.test.d.ts +2 -0
  59. package/dist/commands/library-bindings-firstparty-regressions.test.d.ts.map +1 -0
  60. package/dist/commands/library-bindings-firstparty-regressions.test.js +217 -0
  61. package/dist/commands/library-bindings-firstparty-regressions.test.js.map +1 -0
  62. package/dist/commands/library-bindings-firstparty.d.ts +3 -0
  63. package/dist/commands/library-bindings-firstparty.d.ts.map +1 -0
  64. package/dist/commands/library-bindings-firstparty.js +2250 -0
  65. package/dist/commands/library-bindings-firstparty.js.map +1 -0
  66. package/dist/commands/restore.d.ts.map +1 -1
  67. package/dist/commands/restore.js +9 -8
  68. package/dist/commands/restore.js.map +1 -1
  69. package/dist/commands/restore.test.js +29 -0
  70. package/dist/commands/restore.test.js.map +1 -1
  71. package/dist/commands/run-build-regressions.test.js +72 -0
  72. package/dist/commands/run-build-regressions.test.js.map +1 -1
  73. package/dist/commands/run.d.ts.map +1 -1
  74. package/dist/commands/run.js +1 -0
  75. package/dist/commands/run.js.map +1 -1
  76. package/dist/config.d.ts.map +1 -1
  77. package/dist/config.js +16 -2
  78. package/dist/config.js.map +1 -1
  79. package/dist/config.test.js +57 -0
  80. package/dist/config.test.js.map +1 -1
  81. package/dist/dotnet/runtime-dlls.d.ts +1 -0
  82. package/dist/dotnet/runtime-dlls.d.ts.map +1 -1
  83. package/dist/dotnet/runtime-dlls.js +1 -0
  84. package/dist/dotnet/runtime-dlls.js.map +1 -1
  85. package/dist/surface/profiles.d.ts +10 -0
  86. package/dist/surface/profiles.d.ts.map +1 -0
  87. package/dist/surface/profiles.js +61 -0
  88. package/dist/surface/profiles.js.map +1 -0
  89. package/dist/surface/profiles.test.d.ts +2 -0
  90. package/dist/surface/profiles.test.d.ts.map +1 -0
  91. package/dist/surface/profiles.test.js +49 -0
  92. package/dist/surface/profiles.test.js.map +1 -0
  93. package/dist/types.d.ts +10 -0
  94. package/dist/types.d.ts.map +1 -1
  95. package/package.json +5 -5
@@ -0,0 +1,547 @@
1
+ import { describe, it } from "mocha";
2
+ import { expect } from "chai";
3
+ import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync, } from "node:fs";
4
+ import { join } from "node:path";
5
+ import { tmpdir } from "node:os";
6
+ import { augmentLibraryBindingsFromSource, overlayDependencyBindings, patchInternalIndexBrandMarkersOptional, resolveDependencyBindingsDirForDll, } from "./library-bindings-augment.js";
7
+ describe("library-bindings-augment", function () {
8
+ this.timeout(10000);
9
+ it("resolves dependency bindings dir for generated/bin DLL paths", () => {
10
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-overlay-path-"));
11
+ try {
12
+ const depRoot = join(dir, "packages", "core");
13
+ const dllPath = join(depRoot, "generated", "bin", "Release", "net10.0", "Acme.Core.dll");
14
+ const bindingsDir = join(depRoot, "dist", "tsonic", "bindings");
15
+ mkdirSync(join(depRoot, "generated", "bin", "Release", "net10.0"), {
16
+ recursive: true,
17
+ });
18
+ mkdirSync(bindingsDir, { recursive: true });
19
+ writeFileSync(dllPath, "", "utf-8");
20
+ const actual = resolveDependencyBindingsDirForDll(dllPath);
21
+ expect(actual).to.equal(bindingsDir);
22
+ }
23
+ finally {
24
+ rmSync(dir, { recursive: true, force: true });
25
+ }
26
+ });
27
+ it("overlays dependency bindings for generated/bin DLL references", () => {
28
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-overlay-"));
29
+ try {
30
+ const depRoot = join(dir, "packages", "core");
31
+ const depDll = join(depRoot, "generated", "bin", "Release", "net10.0", "Acme.Core.dll");
32
+ const depBindings = join(depRoot, "dist", "tsonic", "bindings");
33
+ const depInternal = join(depBindings, "Acme.Core", "internal", "index.d.ts");
34
+ const depFacade = join(depBindings, "Acme.Core.d.ts");
35
+ mkdirSync(join(depRoot, "generated", "bin", "Release", "net10.0"), {
36
+ recursive: true,
37
+ });
38
+ mkdirSync(join(depBindings, "Acme.Core", "internal"), {
39
+ recursive: true,
40
+ });
41
+ writeFileSync(depDll, "", "utf-8");
42
+ writeFileSync(depInternal, "// Assembly: Acme.Core\nexport interface User$instance { readonly id: string; }\n", "utf-8");
43
+ writeFileSync(depFacade, "export interface User { id: string; }\n", "utf-8");
44
+ const outDir = join(dir, "packages", "app", "dist", "tsonic", "bindings");
45
+ const outInternal = join(outDir, "Acme.Core", "internal", "index.d.ts");
46
+ const outFacade = join(outDir, "Acme.Core.d.ts");
47
+ mkdirSync(join(outDir, "Acme.Core", "internal"), { recursive: true });
48
+ writeFileSync(outInternal, "// Assembly: Acme.Core\nexport interface User$instance { readonly stale: boolean; }\n", "utf-8");
49
+ writeFileSync(outFacade, "export interface User { stale: boolean; }\n", "utf-8");
50
+ const config = {
51
+ outputName: "Acme.App",
52
+ libraries: [depDll],
53
+ };
54
+ const result = overlayDependencyBindings(config, outDir);
55
+ expect(result.ok).to.equal(true);
56
+ expect(readFileSync(outInternal, "utf-8")).to.equal(readFileSync(depInternal, "utf-8"));
57
+ expect(readFileSync(outFacade, "utf-8")).to.equal(readFileSync(depFacade, "utf-8"));
58
+ }
59
+ finally {
60
+ rmSync(dir, { recursive: true, force: true });
61
+ }
62
+ });
63
+ it("patches all brand markers in a target interface", () => {
64
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-brand-patch-"));
65
+ try {
66
+ const internalIndex = join(dir, "index.d.ts");
67
+ writeFileSync(internalIndex, [
68
+ "export interface Foo$instance {",
69
+ " readonly __tsonic_type_Foo: never;",
70
+ " readonly __tsonic_type_External_Foo: never;",
71
+ " readonly name: string;",
72
+ "}",
73
+ "",
74
+ ].join("\n"), "utf-8");
75
+ const result = patchInternalIndexBrandMarkersOptional(internalIndex, [
76
+ "Foo",
77
+ ]);
78
+ expect(result.ok).to.equal(true);
79
+ const content = readFileSync(internalIndex, "utf-8");
80
+ expect(content).to.include("readonly __tsonic_type_Foo?: never;");
81
+ expect(content).to.include("readonly __tsonic_type_External_Foo?: never;");
82
+ expect(content).to.not.include("readonly __tsonic_type_Foo: never;");
83
+ expect(content).to.not.include("readonly __tsonic_type_External_Foo: never;");
84
+ }
85
+ finally {
86
+ rmSync(dir, { recursive: true, force: true });
87
+ }
88
+ });
89
+ it("rewrites const Func exports using source parameter types with nested commas", () => {
90
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-facade-const-func-"));
91
+ try {
92
+ const srcDir = join(dir, "src");
93
+ mkdirSync(srcDir, { recursive: true });
94
+ writeFileSync(join(srcDir, "index.ts"), [
95
+ "export const updateSettings = async (",
96
+ " tenantId: string,",
97
+ " settings: Record<string, unknown>",
98
+ "): Promise<boolean> => {",
99
+ " void tenantId;",
100
+ " void settings;",
101
+ " return true;",
102
+ "};",
103
+ "",
104
+ ].join("\n"), "utf-8");
105
+ const bindingsOutDir = join(dir, "dist", "tsonic", "bindings");
106
+ const internalDir = join(bindingsOutDir, "TestApp", "internal");
107
+ mkdirSync(internalDir, { recursive: true });
108
+ writeFileSync(join(internalDir, "index.d.ts"), "", "utf-8");
109
+ const facadePath = join(bindingsOutDir, "TestApp.d.ts");
110
+ writeFileSync(facadePath, [
111
+ "// Namespace: TestApp",
112
+ "import * as Internal from './TestApp/internal/index.js';",
113
+ "import type { Func } from '@tsonic/dotnet/System.js';",
114
+ "import type { Dictionary } from '@tsonic/dotnet/System.Collections.Generic.js';",
115
+ "import type { Task } from '@tsonic/dotnet/System.Threading.Tasks.js';",
116
+ "import type { Union_2 } from './Tsonic.Runtime/internal/index.js';",
117
+ "import type { Err__Alias_1, Ok__Alias_1 } from './Acme.Core/internal/index.js';",
118
+ "",
119
+ "export declare const updateSettings: Func<string, Dictionary<string, unknown | undefined>, Task<Union_2<Ok__Alias_1<boolean>, Err__Alias_1<string>>>>;",
120
+ "",
121
+ ].join("\n"), "utf-8");
122
+ const config = {
123
+ workspaceRoot: dir,
124
+ projectRoot: dir,
125
+ sourceRoot: "src",
126
+ rootNamespace: "TestApp",
127
+ entryPoint: "src/index.ts",
128
+ typeRoots: [],
129
+ libraries: [],
130
+ };
131
+ const result = augmentLibraryBindingsFromSource(config, bindingsOutDir);
132
+ expect(result.ok, result.ok ? undefined : result.error).to.equal(true);
133
+ const patched = readFileSync(facadePath, "utf-8");
134
+ expect(patched).to.include("export declare function updateSettings(tenantId: string, settings: Record<string, unknown>): Task<(Ok__Alias_1<boolean> | Err__Alias_1<string>)>;");
135
+ expect(patched).to.not.include("export declare const updateSettings:");
136
+ expect(patched).to.not.include("Dictionary<string, unknown | undefined>");
137
+ }
138
+ finally {
139
+ rmSync(dir, { recursive: true, force: true });
140
+ }
141
+ });
142
+ it("rewrites const delegate exports to source signatures and injects required type imports", () => {
143
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-facade-const-delegate-"));
144
+ try {
145
+ const srcDir = join(dir, "src");
146
+ mkdirSync(srcDir, { recursive: true });
147
+ writeFileSync(join(srcDir, "index.ts"), [
148
+ 'import type { int } from "@tsonic/core/types.js";',
149
+ "",
150
+ "export const bulkUpdate = async (",
151
+ " settings: Record<string, unknown>",
152
+ "): Promise<int> => {",
153
+ " void settings;",
154
+ " return 1;",
155
+ "};",
156
+ "",
157
+ ].join("\n"), "utf-8");
158
+ const bindingsOutDir = join(dir, "dist", "tsonic", "bindings");
159
+ const internalDir = join(bindingsOutDir, "TestApp", "internal");
160
+ mkdirSync(internalDir, { recursive: true });
161
+ writeFileSync(join(internalDir, "index.d.ts"), "", "utf-8");
162
+ const facadePath = join(bindingsOutDir, "TestApp.d.ts");
163
+ writeFileSync(facadePath, [
164
+ "// Namespace: TestApp",
165
+ "import * as Internal from './TestApp/internal/index.js';",
166
+ "",
167
+ "export type Service_bulkUpdate__Delegate = Internal.Service_bulkUpdate__Delegate;",
168
+ "export declare const bulkUpdate: Internal.Service_bulkUpdate__Delegate;",
169
+ "",
170
+ ].join("\n"), "utf-8");
171
+ const config = {
172
+ workspaceRoot: dir,
173
+ projectRoot: dir,
174
+ sourceRoot: "src",
175
+ rootNamespace: "TestApp",
176
+ entryPoint: "src/index.ts",
177
+ typeRoots: [],
178
+ libraries: [],
179
+ };
180
+ const result = augmentLibraryBindingsFromSource(config, bindingsOutDir);
181
+ expect(result.ok, result.ok ? undefined : result.error).to.equal(true);
182
+ const patched = readFileSync(facadePath, "utf-8");
183
+ expect(patched).to.include("export declare function bulkUpdate(settings: Record<string, unknown>): Promise<int>;");
184
+ expect(patched).to.not.include("export declare const bulkUpdate:");
185
+ expect(patched).to.include("import type { int } from '@tsonic/core/types.js';");
186
+ }
187
+ finally {
188
+ rmSync(dir, { recursive: true, force: true });
189
+ }
190
+ });
191
+ it("optionalizes brand markers for non-exported source interfaces used in exported signatures", () => {
192
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-local-interface-brand-"));
193
+ try {
194
+ const srcDir = join(dir, "src");
195
+ mkdirSync(srcDir, { recursive: true });
196
+ writeFileSync(join(srcDir, "index.ts"), [
197
+ "interface LocalInput {",
198
+ " value: string;",
199
+ "}",
200
+ "",
201
+ "export const useLocalInput = async (",
202
+ " input: LocalInput",
203
+ "): Promise<boolean> => {",
204
+ " void input;",
205
+ " return true;",
206
+ "};",
207
+ "",
208
+ ].join("\n"), "utf-8");
209
+ const bindingsOutDir = join(dir, "dist", "tsonic", "bindings");
210
+ const internalDir = join(bindingsOutDir, "TestApp", "internal");
211
+ mkdirSync(internalDir, { recursive: true });
212
+ const internalIndex = join(internalDir, "index.d.ts");
213
+ writeFileSync(internalIndex, [
214
+ "export interface LocalInput$instance {",
215
+ " readonly __tsonic_type_TestApp_LocalInput: never;",
216
+ " value: string;",
217
+ "}",
218
+ "",
219
+ ].join("\n"), "utf-8");
220
+ const facadePath = join(bindingsOutDir, "TestApp.d.ts");
221
+ writeFileSync(facadePath, [
222
+ "// Namespace: TestApp",
223
+ "import * as Internal from './TestApp/internal/index.js';",
224
+ "",
225
+ "export declare function useLocalInput(input: Internal.LocalInput): Promise<boolean>;",
226
+ "",
227
+ ].join("\n"), "utf-8");
228
+ const config = {
229
+ workspaceRoot: dir,
230
+ projectRoot: dir,
231
+ sourceRoot: "src",
232
+ rootNamespace: "TestApp",
233
+ entryPoint: "src/index.ts",
234
+ typeRoots: [],
235
+ libraries: [],
236
+ };
237
+ const result = augmentLibraryBindingsFromSource(config, bindingsOutDir);
238
+ expect(result.ok, result.ok ? undefined : result.error).to.equal(true);
239
+ const patched = readFileSync(internalIndex, "utf-8");
240
+ expect(patched).to.include("readonly __tsonic_type_TestApp_LocalInput?: never;");
241
+ expect(patched).to.not.include("readonly __tsonic_type_TestApp_LocalInput: never;");
242
+ }
243
+ finally {
244
+ rmSync(dir, { recursive: true, force: true });
245
+ }
246
+ });
247
+ it("optionalizes brand markers for non-exported structural type aliases", () => {
248
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-local-alias-brand-"));
249
+ try {
250
+ const srcDir = join(dir, "src");
251
+ mkdirSync(srcDir, { recursive: true });
252
+ writeFileSync(join(srcDir, "index.ts"), [
253
+ "type LocalPayload = {",
254
+ " id: string;",
255
+ "};",
256
+ "",
257
+ "export const useLocalAlias = async (",
258
+ " payload: LocalPayload",
259
+ "): Promise<boolean> => {",
260
+ " void payload;",
261
+ " return true;",
262
+ "};",
263
+ "",
264
+ ].join("\n"), "utf-8");
265
+ const bindingsOutDir = join(dir, "dist", "tsonic", "bindings");
266
+ const internalDir = join(bindingsOutDir, "TestApp", "internal");
267
+ mkdirSync(internalDir, { recursive: true });
268
+ const internalIndex = join(internalDir, "index.d.ts");
269
+ writeFileSync(internalIndex, [
270
+ "export interface LocalPayload__Alias$instance {",
271
+ " readonly __tsonic_type_TestApp_LocalPayload__Alias: never;",
272
+ " id: string;",
273
+ "}",
274
+ "",
275
+ ].join("\n"), "utf-8");
276
+ const facadePath = join(bindingsOutDir, "TestApp.d.ts");
277
+ writeFileSync(facadePath, [
278
+ "// Namespace: TestApp",
279
+ "import * as Internal from './TestApp/internal/index.js';",
280
+ "",
281
+ "export declare function useLocalAlias(payload: Internal.LocalPayload__Alias): Promise<boolean>;",
282
+ "",
283
+ ].join("\n"), "utf-8");
284
+ const config = {
285
+ workspaceRoot: dir,
286
+ projectRoot: dir,
287
+ sourceRoot: "src",
288
+ rootNamespace: "TestApp",
289
+ entryPoint: "src/index.ts",
290
+ typeRoots: [],
291
+ libraries: [],
292
+ };
293
+ const result = augmentLibraryBindingsFromSource(config, bindingsOutDir);
294
+ expect(result.ok, result.ok ? undefined : result.error).to.equal(true);
295
+ const patched = readFileSync(internalIndex, "utf-8");
296
+ expect(patched).to.include("readonly __tsonic_type_TestApp_LocalPayload__Alias?: never;");
297
+ expect(patched).to.not.include("readonly __tsonic_type_TestApp_LocalPayload__Alias: never;");
298
+ }
299
+ finally {
300
+ rmSync(dir, { recursive: true, force: true });
301
+ }
302
+ });
303
+ it("overrides class getter/setter types from source for optional value-like members", () => {
304
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-source-class-augment-"));
305
+ try {
306
+ const srcDir = join(dir, "src");
307
+ mkdirSync(srcDir, { recursive: true });
308
+ const entry = join(srcDir, "index.ts");
309
+ writeFileSync(entry, ["export class User {", " Count?: number;", "}", ""].join("\n"), "utf-8");
310
+ const bindingsOutDir = join(dir, "dist", "tsonic", "bindings");
311
+ const internalDir = join(bindingsOutDir, "internal");
312
+ mkdirSync(internalDir, { recursive: true });
313
+ const internalIndex = join(internalDir, "index.d.ts");
314
+ writeFileSync(internalIndex, [
315
+ "import * as System_Internal from '@tsonic/dotnet/System/internal/index.js';",
316
+ "import type { Nullable_1 } from '@tsonic/dotnet/System/internal/index.js';",
317
+ "",
318
+ "export interface User$instance {",
319
+ " get Count(): Nullable_1<System_Internal.Int32> | undefined;",
320
+ " set Count(value: Nullable_1<System_Internal.Int32> | number | undefined);",
321
+ "}",
322
+ "",
323
+ ].join("\n"), "utf-8");
324
+ const config = {
325
+ workspaceRoot: dir,
326
+ projectRoot: dir,
327
+ sourceRoot: "src",
328
+ rootNamespace: "TestApp",
329
+ entryPoint: "src/index.ts",
330
+ typeRoots: [],
331
+ libraries: [],
332
+ };
333
+ const result = augmentLibraryBindingsFromSource(config, bindingsOutDir);
334
+ expect(result.ok, result.ok ? undefined : result.error).to.equal(true);
335
+ const patched = readFileSync(internalIndex, "utf-8");
336
+ expect(patched).to.include("get Count(): number | undefined;");
337
+ expect(patched).to.include("set Count(value: number | undefined);");
338
+ expect(patched).to.not.include("Nullable_1<System_Internal.Int32>");
339
+ }
340
+ finally {
341
+ rmSync(dir, { recursive: true, force: true });
342
+ }
343
+ });
344
+ it("keeps @tsonic/core type aliases when overriding class getter/setter types", () => {
345
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-source-class-core-augment-"));
346
+ try {
347
+ const coreDir = join(dir, "node_modules", "@tsonic", "core");
348
+ mkdirSync(coreDir, { recursive: true });
349
+ writeFileSync(join(coreDir, "package.json"), JSON.stringify({ name: "@tsonic/core", type: "module" }, null, 2), "utf-8");
350
+ writeFileSync(join(coreDir, "types.d.ts"), "export type int = number;\n", "utf-8");
351
+ const srcDir = join(dir, "src");
352
+ mkdirSync(srcDir, { recursive: true });
353
+ const entry = join(srcDir, "index.ts");
354
+ writeFileSync(entry, [
355
+ 'import type { int } from "@tsonic/core/types.js";',
356
+ "",
357
+ "export class User {",
358
+ " BotType?: int;",
359
+ "}",
360
+ "",
361
+ ].join("\n"), "utf-8");
362
+ const bindingsOutDir = join(dir, "dist", "tsonic", "bindings");
363
+ const internalDir = join(bindingsOutDir, "internal");
364
+ mkdirSync(internalDir, { recursive: true });
365
+ const internalIndex = join(internalDir, "index.d.ts");
366
+ writeFileSync(internalIndex, [
367
+ "import * as System_Internal from '@tsonic/dotnet/System/internal/index.js';",
368
+ "import type { Nullable_1 } from '@tsonic/dotnet/System/internal/index.js';",
369
+ "",
370
+ "export interface User$instance {",
371
+ " get BotType(): Nullable_1<System_Internal.Int32> | undefined;",
372
+ " set BotType(value: Nullable_1<System_Internal.Int32> | int | undefined);",
373
+ "}",
374
+ "",
375
+ ].join("\n"), "utf-8");
376
+ const config = {
377
+ workspaceRoot: dir,
378
+ projectRoot: dir,
379
+ sourceRoot: "src",
380
+ rootNamespace: "TestApp",
381
+ entryPoint: "src/index.ts",
382
+ typeRoots: [join(dir, "node_modules")],
383
+ libraries: [],
384
+ };
385
+ const result = augmentLibraryBindingsFromSource(config, bindingsOutDir);
386
+ expect(result.ok, result.ok ? undefined : result.error).to.equal(true);
387
+ const patched = readFileSync(internalIndex, "utf-8");
388
+ expect(patched).to.include("get BotType(): int | undefined;");
389
+ expect(patched).to.include("set BotType(value: int | undefined);");
390
+ expect(patched).to.not.include("Nullable_1<System_Internal.Int32>");
391
+ }
392
+ finally {
393
+ rmSync(dir, { recursive: true, force: true });
394
+ }
395
+ });
396
+ it("preserves optional interface members as optional properties", () => {
397
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-source-interface-augment-"));
398
+ try {
399
+ const srcDir = join(dir, "src");
400
+ mkdirSync(srcDir, { recursive: true });
401
+ const entry = join(srcDir, "index.ts");
402
+ writeFileSync(entry, [
403
+ "export interface DomainEvent {",
404
+ " type: string;",
405
+ " op?: string;",
406
+ " data: Record<string, unknown>;",
407
+ "}",
408
+ "",
409
+ ].join("\n"), "utf-8");
410
+ const bindingsOutDir = join(dir, "dist", "tsonic", "bindings");
411
+ const internalDir = join(bindingsOutDir, "internal");
412
+ mkdirSync(internalDir, { recursive: true });
413
+ const internalIndex = join(internalDir, "index.d.ts");
414
+ writeFileSync(internalIndex, [
415
+ "export interface DomainEvent$instance {",
416
+ " readonly __tsonic_type_TestApp_DomainEvent: never;",
417
+ " get op(): string | undefined;",
418
+ " set op(value: string | undefined);",
419
+ " type: string;",
420
+ " data: Record<string, unknown>;",
421
+ "}",
422
+ "",
423
+ ].join("\n"), "utf-8");
424
+ const config = {
425
+ workspaceRoot: dir,
426
+ projectRoot: dir,
427
+ sourceRoot: "src",
428
+ rootNamespace: "TestApp",
429
+ entryPoint: "src/index.ts",
430
+ typeRoots: [],
431
+ libraries: [],
432
+ };
433
+ const result = augmentLibraryBindingsFromSource(config, bindingsOutDir);
434
+ expect(result.ok, result.ok ? undefined : result.error).to.equal(true);
435
+ const patched = readFileSync(internalIndex, "utf-8");
436
+ expect(patched).to.include("op?: string;");
437
+ expect(patched).to.not.include("get op():");
438
+ expect(patched).to.not.include("set op(");
439
+ }
440
+ finally {
441
+ rmSync(dir, { recursive: true, force: true });
442
+ }
443
+ });
444
+ it("adds internal type imports for flattened facade signatures", () => {
445
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-facade-type-imports-"));
446
+ try {
447
+ const srcDir = join(dir, "src");
448
+ mkdirSync(srcDir, { recursive: true });
449
+ writeFileSync(join(srcDir, "index.ts"), [
450
+ "export function ping(input: string): string { return input; }",
451
+ "",
452
+ ].join("\n"), "utf-8");
453
+ const bindingsOutDir = join(dir, "dist", "tsonic", "bindings");
454
+ const rootInternalDir = join(bindingsOutDir, "internal");
455
+ mkdirSync(rootInternalDir, { recursive: true });
456
+ writeFileSync(join(rootInternalDir, "index.d.ts"), "", "utf-8");
457
+ const namespaceInternalDir = join(bindingsOutDir, "Acme.Events", "internal");
458
+ mkdirSync(namespaceInternalDir, { recursive: true });
459
+ writeFileSync(join(namespaceInternalDir, "index.d.ts"), [
460
+ "export interface DomainEvent { type: string; data: Record<string, unknown>; }",
461
+ "export interface RegisterParams { eventTypes?: string[]; }",
462
+ "export declare const registry: unknown;",
463
+ "",
464
+ ].join("\n"), "utf-8");
465
+ const facadePath = join(bindingsOutDir, "Acme.Events.d.ts");
466
+ writeFileSync(facadePath, [
467
+ "import * as Internal from './Acme.Events/internal/index.js';",
468
+ "",
469
+ "export { DomainEvent as DomainEvent } from './Acme.Events/internal/index.js';",
470
+ "export { RegisterParams as RegisterParams } from './Acme.Events/internal/index.js';",
471
+ "export { registry as registry } from './Acme.Events/internal/index.js';",
472
+ "",
473
+ "export declare function dispatchEventToTenant(tenantId: string, event: DomainEvent): void;",
474
+ "export declare function registerQueue(params: RegisterParams): string;",
475
+ "",
476
+ ].join("\n"), "utf-8");
477
+ const config = {
478
+ workspaceRoot: dir,
479
+ projectRoot: dir,
480
+ sourceRoot: "src",
481
+ rootNamespace: "Acme.Events",
482
+ entryPoint: "src/index.ts",
483
+ typeRoots: [],
484
+ libraries: [],
485
+ };
486
+ const result = augmentLibraryBindingsFromSource(config, bindingsOutDir);
487
+ expect(result.ok).to.equal(true);
488
+ const patched = readFileSync(facadePath, "utf-8");
489
+ expect(patched).to.include("import type { DomainEvent, RegisterParams, registry } from './Acme.Events/internal/index.js';");
490
+ }
491
+ finally {
492
+ rmSync(dir, { recursive: true, force: true });
493
+ }
494
+ });
495
+ it("merges existing internal type imports and preserves aliases", () => {
496
+ const dir = mkdtempSync(join(tmpdir(), "tsonic-facade-type-aliases-"));
497
+ try {
498
+ const srcDir = join(dir, "src");
499
+ mkdirSync(srcDir, { recursive: true });
500
+ writeFileSync(join(srcDir, "index.ts"), [
501
+ "export function ping(input: string): string { return input; }",
502
+ "",
503
+ ].join("\n"), "utf-8");
504
+ const bindingsOutDir = join(dir, "dist", "tsonic", "bindings");
505
+ const rootInternalDir = join(bindingsOutDir, "internal");
506
+ mkdirSync(rootInternalDir, { recursive: true });
507
+ writeFileSync(join(rootInternalDir, "index.d.ts"), "", "utf-8");
508
+ const namespaceInternalDir = join(bindingsOutDir, "Acme.Events", "internal");
509
+ mkdirSync(namespaceInternalDir, { recursive: true });
510
+ writeFileSync(join(namespaceInternalDir, "index.d.ts"), [
511
+ "export interface DomainEvent { type: string; data: Record<string, unknown>; }",
512
+ "export interface ExistingType { ok: boolean; }",
513
+ "export interface RegisterParams { eventTypes?: string[]; }",
514
+ "",
515
+ ].join("\n"), "utf-8");
516
+ const facadePath = join(bindingsOutDir, "Acme.Events.d.ts");
517
+ writeFileSync(facadePath, [
518
+ "import * as Internal from './Acme.Events/internal/index.js';",
519
+ "import type { ExistingType } from './Acme.Events/internal/index.js';",
520
+ "",
521
+ "export { type DomainEvent as DomainEvent } from './Acme.Events/internal/index.js';",
522
+ "export { type RegisterParams as Params } from './Acme.Events/internal/index.js';",
523
+ "",
524
+ "export declare function dispatchEventToTenant(tenantId: string, event: DomainEvent): void;",
525
+ "export declare function registerQueue(params: Params): ExistingType;",
526
+ "",
527
+ ].join("\n"), "utf-8");
528
+ const config = {
529
+ workspaceRoot: dir,
530
+ projectRoot: dir,
531
+ sourceRoot: "src",
532
+ rootNamespace: "Acme.Events",
533
+ entryPoint: "src/index.ts",
534
+ typeRoots: [],
535
+ libraries: [],
536
+ };
537
+ const result = augmentLibraryBindingsFromSource(config, bindingsOutDir);
538
+ expect(result.ok).to.equal(true);
539
+ const patched = readFileSync(facadePath, "utf-8");
540
+ expect(patched).to.include("import type { DomainEvent, ExistingType, RegisterParams as Params } from './Acme.Events/internal/index.js';");
541
+ }
542
+ finally {
543
+ rmSync(dir, { recursive: true, force: true });
544
+ }
545
+ });
546
+ });
547
+ //# sourceMappingURL=library-bindings-augment.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-bindings-augment.test.js","sourceRoot":"","sources":["../../src/commands/library-bindings-augment.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=library-bindings-firstparty-regressions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-bindings-firstparty-regressions.test.d.ts","sourceRoot":"","sources":["../../src/commands/library-bindings-firstparty-regressions.test.ts"],"names":[],"mappings":""}