@tsonic/cli 0.0.63 → 0.0.65
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/aikya/bindings.d.ts +44 -0
- package/dist/aikya/bindings.d.ts.map +1 -0
- package/dist/aikya/bindings.js +777 -0
- package/dist/aikya/bindings.js.map +1 -0
- package/dist/aikya/bindings.test.d.ts +2 -0
- package/dist/aikya/bindings.test.d.ts.map +1 -0
- package/dist/aikya/bindings.test.js +554 -0
- package/dist/aikya/bindings.test.js.map +1 -0
- package/dist/cli/dispatcher.d.ts.map +1 -1
- package/dist/cli/dispatcher.js +15 -0
- package/dist/cli/dispatcher.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +4 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +6 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/parser.test.js +10 -0
- package/dist/cli/parser.test.js.map +1 -1
- package/dist/commands/add-npm.d.ts +3 -2
- package/dist/commands/add-npm.d.ts.map +1 -1
- package/dist/commands/add-npm.js +69 -177
- package/dist/commands/add-npm.js.map +1 -1
- package/dist/commands/add-npm.test.js +276 -2
- package/dist/commands/add-npm.test.js.map +1 -1
- package/dist/commands/build-library-bindings-aliases.test.js +352 -6
- package/dist/commands/build-library-bindings-aliases.test.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +192 -145
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/build.test.js +22 -3
- package/dist/commands/build.test.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +7 -0
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts +6 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +76 -12
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.test.js +162 -8
- package/dist/commands/init.test.js.map +1 -1
- package/dist/commands/library-bindings-augment.d.ts.map +1 -1
- package/dist/commands/library-bindings-augment.js +378 -53
- package/dist/commands/library-bindings-augment.js.map +1 -1
- package/dist/commands/library-bindings-augment.test.js +460 -2
- package/dist/commands/library-bindings-augment.test.js.map +1 -1
- package/dist/commands/library-bindings-firstparty-regressions.test.d.ts +2 -0
- package/dist/commands/library-bindings-firstparty-regressions.test.d.ts.map +1 -0
- package/dist/commands/library-bindings-firstparty-regressions.test.js +214 -0
- package/dist/commands/library-bindings-firstparty-regressions.test.js.map +1 -0
- package/dist/commands/library-bindings-firstparty.d.ts +3 -0
- package/dist/commands/library-bindings-firstparty.d.ts.map +1 -0
- package/dist/commands/library-bindings-firstparty.js +2252 -0
- package/dist/commands/library-bindings-firstparty.js.map +1 -0
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +3 -1
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/restore.test.js +29 -0
- package/dist/commands/restore.test.js.map +1 -1
- package/dist/commands/run-build-regressions.test.js +72 -0
- package/dist/commands/run-build-regressions.test.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -2
- package/dist/config.js.map +1 -1
- package/dist/config.test.js +98 -2
- package/dist/config.test.js.map +1 -1
- package/dist/dotnet/runtime-dlls.d.ts +1 -0
- package/dist/dotnet/runtime-dlls.d.ts.map +1 -1
- package/dist/dotnet/runtime-dlls.js +1 -0
- package/dist/dotnet/runtime-dlls.js.map +1 -1
- package/dist/surface/profiles.d.ts +15 -0
- package/dist/surface/profiles.d.ts.map +1 -0
- package/dist/surface/profiles.js +218 -0
- package/dist/surface/profiles.js.map +1 -0
- package/dist/surface/profiles.test.d.ts +2 -0
- package/dist/surface/profiles.test.d.ts.map +1 -0
- package/dist/surface/profiles.test.js +175 -0
- package/dist/surface/profiles.test.js.map +1 -0
- package/dist/types.d.ts +11 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/runtime/nodejs.dll +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-npm.test.js","sourceRoot":"","sources":["../../src/commands/add-npm.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add-npm.test.js","sourceRoot":"","sources":["../../src/commands/add-npm.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -171,6 +171,16 @@ describe("build command (library bindings)", function () {
|
|
|
171
171
|
expect(dbInternalContent).to.include("ExtensionMethods as __TsonicExt_Linq");
|
|
172
172
|
expect(dbInternalContent).to.include("ExtensionMethods as __TsonicExt_Tasks");
|
|
173
173
|
expect(dbInternalContent).to.match(/readonly\s+Numbers:\s+__TsonicExt_Tasks<__TsonicExt_Linq</);
|
|
174
|
+
const rootBindingsPath = join(bindingsDir, "Test.Lib", "bindings.json");
|
|
175
|
+
expect(existsSync(rootBindingsPath)).to.equal(true);
|
|
176
|
+
const rootBindings = JSON.parse(readFileSync(rootBindingsPath, "utf-8"));
|
|
177
|
+
expect(rootBindings.namespace).to.equal("Test.Lib");
|
|
178
|
+
expect(rootBindings.producer?.tool).to.equal("tsonic");
|
|
179
|
+
expect(rootBindings.producer?.mode).to.equal("aikya-firstparty");
|
|
180
|
+
expect(Object.keys(rootBindings.exports ?? {})).to.include("ok");
|
|
181
|
+
expect(Object.keys(rootBindings.exports ?? {})).to.include("err");
|
|
182
|
+
expect(Object.keys(rootBindings.exports ?? {})).to.include("loadConfig");
|
|
183
|
+
expect((rootBindings.types ?? []).some((entry) => entry.clrName === "Test.Lib.QueryHolder")).to.equal(true);
|
|
174
184
|
// Namespace facade for the "types" module must include TS-level aliases.
|
|
175
185
|
expect(typesContent).to.include("Tsonic source type aliases (generated)");
|
|
176
186
|
expect(typesContent).to.include("export type Id = string;");
|
|
@@ -209,6 +219,291 @@ describe("build command (library bindings)", function () {
|
|
|
209
219
|
rmSync(dir, { recursive: true, force: true });
|
|
210
220
|
}
|
|
211
221
|
});
|
|
222
|
+
it("fails fast when a library source uses default exports (unsupported for first-party namespace facades)", () => {
|
|
223
|
+
const dir = mkdtempSync(join(tmpdir(), "tsonic-lib-bindings-default-"));
|
|
224
|
+
try {
|
|
225
|
+
const wsConfigPath = join(dir, "tsonic.workspace.json");
|
|
226
|
+
mkdirSync(join(dir, "packages", "lib", "src"), { recursive: true });
|
|
227
|
+
mkdirSync(join(dir, "node_modules"), { recursive: true });
|
|
228
|
+
writeFileSync(join(dir, "package.json"), JSON.stringify({ name: "test", private: true, type: "module" }, null, 2) + "\n", "utf-8");
|
|
229
|
+
writeFileSync(wsConfigPath, JSON.stringify({
|
|
230
|
+
$schema: "https://tsonic.org/schema/workspace/v1.json",
|
|
231
|
+
dotnetVersion: "net10.0",
|
|
232
|
+
}, null, 2) + "\n", "utf-8");
|
|
233
|
+
writeFileSync(join(dir, "packages", "lib", "package.json"), JSON.stringify({
|
|
234
|
+
name: "lib",
|
|
235
|
+
private: true,
|
|
236
|
+
type: "module",
|
|
237
|
+
exports: {
|
|
238
|
+
"./package.json": "./package.json",
|
|
239
|
+
"./*.js": {
|
|
240
|
+
types: "./dist/tsonic/bindings/*.d.ts",
|
|
241
|
+
default: "./dist/tsonic/bindings/*.js",
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
}, null, 2) + "\n", "utf-8");
|
|
245
|
+
writeFileSync(join(dir, "packages", "lib", "tsonic.json"), JSON.stringify({
|
|
246
|
+
$schema: "https://tsonic.org/schema/v1.json",
|
|
247
|
+
rootNamespace: "Test.Lib",
|
|
248
|
+
entryPoint: "src/index.ts",
|
|
249
|
+
sourceRoot: "src",
|
|
250
|
+
outputDirectory: "generated",
|
|
251
|
+
outputName: "Test.Lib",
|
|
252
|
+
output: {
|
|
253
|
+
type: "library",
|
|
254
|
+
targetFrameworks: ["net10.0"],
|
|
255
|
+
nativeAot: false,
|
|
256
|
+
generateDocumentation: false,
|
|
257
|
+
includeSymbols: false,
|
|
258
|
+
packable: false,
|
|
259
|
+
},
|
|
260
|
+
}, null, 2) + "\n", "utf-8");
|
|
261
|
+
writeFileSync(join(dir, "packages", "lib", "src", "index.ts"), [`const value = 1;`, `export default value;`, ``].join("\n"), "utf-8");
|
|
262
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/dotnet"), join(dir, "node_modules/@tsonic/dotnet"));
|
|
263
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/core"), join(dir, "node_modules/@tsonic/core"));
|
|
264
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/globals"), join(dir, "node_modules/@tsonic/globals"));
|
|
265
|
+
const cliPath = join(repoRoot, "packages/cli/dist/index.js");
|
|
266
|
+
const result = spawnSync("node", [
|
|
267
|
+
cliPath,
|
|
268
|
+
"build",
|
|
269
|
+
"--project",
|
|
270
|
+
"lib",
|
|
271
|
+
"--config",
|
|
272
|
+
wsConfigPath,
|
|
273
|
+
"--quiet",
|
|
274
|
+
], { cwd: dir, encoding: "utf-8" });
|
|
275
|
+
expect(result.status).to.not.equal(0);
|
|
276
|
+
const combinedOutput = `${result.stderr}\n${result.stdout}`;
|
|
277
|
+
expect(combinedOutput).to.include("Unsupported default export");
|
|
278
|
+
expect(combinedOutput).to.include("First-party bindings generation");
|
|
279
|
+
}
|
|
280
|
+
finally {
|
|
281
|
+
rmSync(dir, { recursive: true, force: true });
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
it("fails fast when a library source re-exports from a non-local module specifier", () => {
|
|
285
|
+
const dir = mkdtempSync(join(tmpdir(), "tsonic-lib-bindings-reexport-"));
|
|
286
|
+
try {
|
|
287
|
+
const wsConfigPath = join(dir, "tsonic.workspace.json");
|
|
288
|
+
mkdirSync(join(dir, "packages", "lib", "src"), { recursive: true });
|
|
289
|
+
mkdirSync(join(dir, "node_modules"), { recursive: true });
|
|
290
|
+
writeFileSync(join(dir, "package.json"), JSON.stringify({ name: "test", private: true, type: "module" }, null, 2) + "\n", "utf-8");
|
|
291
|
+
writeFileSync(wsConfigPath, JSON.stringify({
|
|
292
|
+
$schema: "https://tsonic.org/schema/workspace/v1.json",
|
|
293
|
+
dotnetVersion: "net10.0",
|
|
294
|
+
}, null, 2) + "\n", "utf-8");
|
|
295
|
+
writeFileSync(join(dir, "packages", "lib", "package.json"), JSON.stringify({
|
|
296
|
+
name: "lib",
|
|
297
|
+
private: true,
|
|
298
|
+
type: "module",
|
|
299
|
+
exports: {
|
|
300
|
+
"./package.json": "./package.json",
|
|
301
|
+
"./*.js": {
|
|
302
|
+
types: "./dist/tsonic/bindings/*.d.ts",
|
|
303
|
+
default: "./dist/tsonic/bindings/*.js",
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
}, null, 2) + "\n", "utf-8");
|
|
307
|
+
writeFileSync(join(dir, "packages", "lib", "tsonic.json"), JSON.stringify({
|
|
308
|
+
$schema: "https://tsonic.org/schema/v1.json",
|
|
309
|
+
rootNamespace: "Test.Lib",
|
|
310
|
+
entryPoint: "src/index.ts",
|
|
311
|
+
sourceRoot: "src",
|
|
312
|
+
outputDirectory: "generated",
|
|
313
|
+
outputName: "Test.Lib",
|
|
314
|
+
output: {
|
|
315
|
+
type: "library",
|
|
316
|
+
targetFrameworks: ["net10.0"],
|
|
317
|
+
nativeAot: false,
|
|
318
|
+
generateDocumentation: false,
|
|
319
|
+
includeSymbols: false,
|
|
320
|
+
packable: false,
|
|
321
|
+
},
|
|
322
|
+
}, null, 2) + "\n", "utf-8");
|
|
323
|
+
writeFileSync(join(dir, "packages", "lib", "src", "index.ts"), [`export { Console } from "@tsonic/dotnet/System.js";`, ``].join("\n"), "utf-8");
|
|
324
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/dotnet"), join(dir, "node_modules/@tsonic/dotnet"));
|
|
325
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/core"), join(dir, "node_modules/@tsonic/core"));
|
|
326
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/globals"), join(dir, "node_modules/@tsonic/globals"));
|
|
327
|
+
const cliPath = join(repoRoot, "packages/cli/dist/index.js");
|
|
328
|
+
const result = spawnSync("node", [
|
|
329
|
+
cliPath,
|
|
330
|
+
"build",
|
|
331
|
+
"--project",
|
|
332
|
+
"lib",
|
|
333
|
+
"--config",
|
|
334
|
+
wsConfigPath,
|
|
335
|
+
"--quiet",
|
|
336
|
+
], { cwd: dir, encoding: "utf-8" });
|
|
337
|
+
expect(result.status).to.not.equal(0);
|
|
338
|
+
const combinedOutput = `${result.stderr}\n${result.stdout}`;
|
|
339
|
+
expect(combinedOutput).to.include("Unsupported re-export");
|
|
340
|
+
expect(combinedOutput).to.include("supports only relative re-exports from local source modules");
|
|
341
|
+
}
|
|
342
|
+
finally {
|
|
343
|
+
rmSync(dir, { recursive: true, force: true });
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
it("fails fast when a library source exports destructuring declarators", () => {
|
|
347
|
+
const dir = mkdtempSync(join(tmpdir(), "tsonic-lib-bindings-destructure-"));
|
|
348
|
+
try {
|
|
349
|
+
const wsConfigPath = join(dir, "tsonic.workspace.json");
|
|
350
|
+
mkdirSync(join(dir, "packages", "lib", "src"), { recursive: true });
|
|
351
|
+
mkdirSync(join(dir, "node_modules"), { recursive: true });
|
|
352
|
+
writeFileSync(join(dir, "package.json"), JSON.stringify({ name: "test", private: true, type: "module" }, null, 2) + "\n", "utf-8");
|
|
353
|
+
writeFileSync(wsConfigPath, JSON.stringify({
|
|
354
|
+
$schema: "https://tsonic.org/schema/workspace/v1.json",
|
|
355
|
+
dotnetVersion: "net10.0",
|
|
356
|
+
}, null, 2) + "\n", "utf-8");
|
|
357
|
+
writeFileSync(join(dir, "packages", "lib", "package.json"), JSON.stringify({
|
|
358
|
+
name: "lib",
|
|
359
|
+
private: true,
|
|
360
|
+
type: "module",
|
|
361
|
+
exports: {
|
|
362
|
+
"./package.json": "./package.json",
|
|
363
|
+
"./*.js": {
|
|
364
|
+
types: "./dist/tsonic/bindings/*.d.ts",
|
|
365
|
+
default: "./dist/tsonic/bindings/*.js",
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
}, null, 2) + "\n", "utf-8");
|
|
369
|
+
writeFileSync(join(dir, "packages", "lib", "tsonic.json"), JSON.stringify({
|
|
370
|
+
$schema: "https://tsonic.org/schema/v1.json",
|
|
371
|
+
rootNamespace: "Test.Lib",
|
|
372
|
+
entryPoint: "src/index.ts",
|
|
373
|
+
sourceRoot: "src",
|
|
374
|
+
outputDirectory: "generated",
|
|
375
|
+
outputName: "Test.Lib",
|
|
376
|
+
output: {
|
|
377
|
+
type: "library",
|
|
378
|
+
targetFrameworks: ["net10.0"],
|
|
379
|
+
nativeAot: false,
|
|
380
|
+
generateDocumentation: false,
|
|
381
|
+
includeSymbols: false,
|
|
382
|
+
packable: false,
|
|
383
|
+
},
|
|
384
|
+
}, null, 2) + "\n", "utf-8");
|
|
385
|
+
writeFileSync(join(dir, "packages", "lib", "src", "index.ts"), [
|
|
386
|
+
`const source = { value: 1 };`,
|
|
387
|
+
`export const { value } = source;`,
|
|
388
|
+
``,
|
|
389
|
+
].join("\n"), "utf-8");
|
|
390
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/dotnet"), join(dir, "node_modules/@tsonic/dotnet"));
|
|
391
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/core"), join(dir, "node_modules/@tsonic/core"));
|
|
392
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/globals"), join(dir, "node_modules/@tsonic/globals"));
|
|
393
|
+
const cliPath = join(repoRoot, "packages/cli/dist/index.js");
|
|
394
|
+
const result = spawnSync("node", [
|
|
395
|
+
cliPath,
|
|
396
|
+
"build",
|
|
397
|
+
"--project",
|
|
398
|
+
"lib",
|
|
399
|
+
"--config",
|
|
400
|
+
wsConfigPath,
|
|
401
|
+
"--quiet",
|
|
402
|
+
], { cwd: dir, encoding: "utf-8" });
|
|
403
|
+
expect(result.status).to.not.equal(0);
|
|
404
|
+
const combinedOutput = `${result.stderr}\n${result.stdout}`;
|
|
405
|
+
expect(combinedOutput).to.include("Unsupported exported variable declarator");
|
|
406
|
+
expect(combinedOutput).to.include("requires identifier-based exported variables");
|
|
407
|
+
}
|
|
408
|
+
finally {
|
|
409
|
+
rmSync(dir, { recursive: true, force: true });
|
|
410
|
+
}
|
|
411
|
+
});
|
|
412
|
+
it("resolves local re-export chains transitively for both types and values", () => {
|
|
413
|
+
const dir = mkdtempSync(join(tmpdir(), "tsonic-lib-bindings-chain-"));
|
|
414
|
+
try {
|
|
415
|
+
const wsConfigPath = join(dir, "tsonic.workspace.json");
|
|
416
|
+
mkdirSync(join(dir, "packages", "lib", "src", "config"), {
|
|
417
|
+
recursive: true,
|
|
418
|
+
});
|
|
419
|
+
mkdirSync(join(dir, "node_modules"), { recursive: true });
|
|
420
|
+
writeFileSync(join(dir, "package.json"), JSON.stringify({ name: "test", private: true, type: "module" }, null, 2) + "\n", "utf-8");
|
|
421
|
+
writeFileSync(wsConfigPath, JSON.stringify({
|
|
422
|
+
$schema: "https://tsonic.org/schema/workspace/v1.json",
|
|
423
|
+
dotnetVersion: "net10.0",
|
|
424
|
+
}, null, 2) + "\n", "utf-8");
|
|
425
|
+
writeFileSync(join(dir, "packages", "lib", "package.json"), JSON.stringify({
|
|
426
|
+
name: "lib",
|
|
427
|
+
private: true,
|
|
428
|
+
type: "module",
|
|
429
|
+
exports: {
|
|
430
|
+
"./package.json": "./package.json",
|
|
431
|
+
"./*.js": {
|
|
432
|
+
types: "./dist/tsonic/bindings/*.d.ts",
|
|
433
|
+
default: "./dist/tsonic/bindings/*.js",
|
|
434
|
+
},
|
|
435
|
+
},
|
|
436
|
+
}, null, 2) + "\n", "utf-8");
|
|
437
|
+
writeFileSync(join(dir, "packages", "lib", "tsonic.json"), JSON.stringify({
|
|
438
|
+
$schema: "https://tsonic.org/schema/v1.json",
|
|
439
|
+
rootNamespace: "Test.Lib",
|
|
440
|
+
entryPoint: "src/index.ts",
|
|
441
|
+
sourceRoot: "src",
|
|
442
|
+
outputDirectory: "generated",
|
|
443
|
+
outputName: "Test.Lib",
|
|
444
|
+
output: {
|
|
445
|
+
type: "library",
|
|
446
|
+
targetFrameworks: ["net10.0"],
|
|
447
|
+
nativeAot: false,
|
|
448
|
+
generateDocumentation: false,
|
|
449
|
+
includeSymbols: false,
|
|
450
|
+
packable: false,
|
|
451
|
+
},
|
|
452
|
+
}, null, 2) + "\n", "utf-8");
|
|
453
|
+
writeFileSync(join(dir, "packages", "lib", "src", "config", "loaded-config.ts"), [`export interface LoadedConfig {`, ` title: string;`, `}`, ``].join("\n"), "utf-8");
|
|
454
|
+
writeFileSync(join(dir, "packages", "lib", "src", "config", "loader.ts"), [
|
|
455
|
+
`import type { LoadedConfig } from "./loaded-config.ts";`,
|
|
456
|
+
``,
|
|
457
|
+
`export function loadSiteConfig(): LoadedConfig {`,
|
|
458
|
+
` return { title: "site" };`,
|
|
459
|
+
`}`,
|
|
460
|
+
``,
|
|
461
|
+
].join("\n"), "utf-8");
|
|
462
|
+
writeFileSync(join(dir, "packages", "lib", "src", "config", "index.ts"), [
|
|
463
|
+
`export type { LoadedConfig } from "./loaded-config.ts";`,
|
|
464
|
+
`export { loadSiteConfig } from "./loader.ts";`,
|
|
465
|
+
``,
|
|
466
|
+
].join("\n"), "utf-8");
|
|
467
|
+
writeFileSync(join(dir, "packages", "lib", "src", "config.ts"), [
|
|
468
|
+
`import type { LoadedConfig as LoadedConfigLocal } from "./config/index.ts";`,
|
|
469
|
+
`import { loadSiteConfig as loadSiteConfigLocal } from "./config/index.ts";`,
|
|
470
|
+
``,
|
|
471
|
+
`export type { LoadedConfigLocal as LoadedConfig };`,
|
|
472
|
+
`export { loadSiteConfigLocal as loadSiteConfig };`,
|
|
473
|
+
``,
|
|
474
|
+
].join("\n"), "utf-8");
|
|
475
|
+
writeFileSync(join(dir, "packages", "lib", "src", "index.ts"), [
|
|
476
|
+
`export type { LoadedConfig } from "./config.ts";`,
|
|
477
|
+
`export { loadSiteConfig } from "./config.ts";`,
|
|
478
|
+
``,
|
|
479
|
+
].join("\n"), "utf-8");
|
|
480
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/dotnet"), join(dir, "node_modules/@tsonic/dotnet"));
|
|
481
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/core"), join(dir, "node_modules/@tsonic/core"));
|
|
482
|
+
linkDir(join(repoRoot, "node_modules/@tsonic/globals"), join(dir, "node_modules/@tsonic/globals"));
|
|
483
|
+
const cliPath = join(repoRoot, "packages/cli/dist/index.js");
|
|
484
|
+
const result = spawnSync("node", [
|
|
485
|
+
cliPath,
|
|
486
|
+
"build",
|
|
487
|
+
"--project",
|
|
488
|
+
"lib",
|
|
489
|
+
"--config",
|
|
490
|
+
wsConfigPath,
|
|
491
|
+
"--quiet",
|
|
492
|
+
], { cwd: dir, encoding: "utf-8" });
|
|
493
|
+
expect(result.status).to.equal(0, result.stderr || result.stdout);
|
|
494
|
+
const bindingsRoot = join(dir, "packages", "lib", "dist", "tsonic", "bindings");
|
|
495
|
+
const facade = readFileSync(join(bindingsRoot, "Test.Lib.d.ts"), "utf-8");
|
|
496
|
+
const internal = readFileSync(join(bindingsRoot, "Test.Lib", "internal", "index.d.ts"), "utf-8");
|
|
497
|
+
const rootBindings = JSON.parse(readFileSync(join(bindingsRoot, "Test.Lib", "bindings.json"), "utf-8"));
|
|
498
|
+
expect(facade).to.include("export type { LoadedConfig }");
|
|
499
|
+
expect(facade).to.match(/export declare function loadSiteConfig\(\):\s*LoadedConfig/);
|
|
500
|
+
expect(internal).to.match(/interface\s+LoadedConfig\$instance/);
|
|
501
|
+
expect(rootBindings.exports?.loadSiteConfig?.kind).to.equal("method");
|
|
502
|
+
}
|
|
503
|
+
finally {
|
|
504
|
+
rmSync(dir, { recursive: true, force: true });
|
|
505
|
+
}
|
|
506
|
+
});
|
|
212
507
|
it("preserves source-level optional/interface/discriminated typing across library bindings", () => {
|
|
213
508
|
const dir = mkdtempSync(join(tmpdir(), "tsonic-lib-bindings-source-"));
|
|
214
509
|
try {
|
|
@@ -305,6 +600,27 @@ describe("build command (library bindings)", function () {
|
|
|
305
600
|
writeFileSync(join(dir, "packages", "core", "src", "contracts.ts"), [
|
|
306
601
|
`import type { int } from "@tsonic/core/types.js";`,
|
|
307
602
|
``,
|
|
603
|
+
`export class BuildRequest {`,
|
|
604
|
+
` destinationDir: string = "";`,
|
|
605
|
+
` buildDrafts: boolean = false;`,
|
|
606
|
+
`}`,
|
|
607
|
+
``,
|
|
608
|
+
`export class ServeRequest extends BuildRequest {`,
|
|
609
|
+
` host: string = "127.0.0.1";`,
|
|
610
|
+
`}`,
|
|
611
|
+
``,
|
|
612
|
+
`export interface ContractBase {`,
|
|
613
|
+
` requestId: string;`,
|
|
614
|
+
`}`,
|
|
615
|
+
``,
|
|
616
|
+
`export interface ContractDerived extends ContractBase {`,
|
|
617
|
+
` payload: string;`,
|
|
618
|
+
`}`,
|
|
619
|
+
``,
|
|
620
|
+
`export function getRequestId(contract: ContractDerived): string {`,
|
|
621
|
+
` return contract.requestId;`,
|
|
622
|
+
`}`,
|
|
623
|
+
``,
|
|
308
624
|
`export class Entity {`,
|
|
309
625
|
` Maybe?: int;`,
|
|
310
626
|
`}`,
|
|
@@ -320,18 +636,30 @@ describe("build command (library bindings)", function () {
|
|
|
320
636
|
writeFileSync(join(dir, "packages", "core", "src", "index.ts"), [
|
|
321
637
|
`export type { Ok, Err, Result } from "./types.ts";`,
|
|
322
638
|
`export { ok, err, renderMarkdownDomain } from "./types.ts";`,
|
|
323
|
-
`export { Entity, dispatch } from "./contracts.ts";`,
|
|
324
|
-
`export type { DomainEvent } from "./contracts.ts";`,
|
|
639
|
+
`export { BuildRequest, ServeRequest, getRequestId, Entity, dispatch } from "./contracts.ts";`,
|
|
640
|
+
`export type { ContractBase, ContractDerived, DomainEvent } from "./contracts.ts";`,
|
|
325
641
|
``,
|
|
326
642
|
].join("\n"), "utf-8");
|
|
327
643
|
writeFileSync(join(dir, "packages", "app", "src", "App.ts"), [
|
|
328
644
|
`import type { int } from "@tsonic/core/types.js";`,
|
|
329
|
-
`import { Entity, dispatch, renderMarkdownDomain, err } from "@acme/core/Acme.Core.js";`,
|
|
645
|
+
`import { Entity, ServeRequest, getRequestId, dispatch, renderMarkdownDomain, err } from "@acme/core/Acme.Core.js";`,
|
|
646
|
+
`import type { ContractDerived } from "@acme/core/Acme.Core.js";`,
|
|
330
647
|
``,
|
|
331
648
|
`const entity = new Entity();`,
|
|
332
649
|
`const maybe: int | undefined = undefined;`,
|
|
333
650
|
`entity.Maybe = maybe;`,
|
|
334
651
|
``,
|
|
652
|
+
`const serveReq = new ServeRequest();`,
|
|
653
|
+
`serveReq.destinationDir = "out";`,
|
|
654
|
+
`serveReq.buildDrafts = true;`,
|
|
655
|
+
`serveReq.host = "localhost";`,
|
|
656
|
+
``,
|
|
657
|
+
`const contract: ContractDerived = { requestId: "r-1", payload: "ok" };`,
|
|
658
|
+
`const requestId = getRequestId(contract);`,
|
|
659
|
+
`if (requestId.Length === 0) {`,
|
|
660
|
+
` err("missing request id");`,
|
|
661
|
+
`}`,
|
|
662
|
+
``,
|
|
335
663
|
`const eventData: Record<string, unknown> = { id: "evt-1" };`,
|
|
336
664
|
`dispatch({ type: "evt", data: eventData });`,
|
|
337
665
|
``,
|
|
@@ -371,6 +699,14 @@ describe("build command (library bindings)", function () {
|
|
|
371
699
|
"--quiet",
|
|
372
700
|
], { cwd: dir, encoding: "utf-8" });
|
|
373
701
|
expect(buildApp.status, buildApp.stderr || buildApp.stdout).to.equal(0);
|
|
702
|
+
const rootBindingsPath = join(dir, "packages", "core", "dist", "tsonic", "bindings", "Acme.Core", "bindings.json");
|
|
703
|
+
expect(existsSync(rootBindingsPath)).to.equal(true);
|
|
704
|
+
const rootBindings = JSON.parse(readFileSync(rootBindingsPath, "utf-8"));
|
|
705
|
+
expect(rootBindings.producer?.tool).to.equal("tsonic");
|
|
706
|
+
expect(rootBindings.producer?.mode).to.equal("aikya-firstparty");
|
|
707
|
+
expect(Object.keys(rootBindings.exports ?? {})).to.include("renderMarkdownDomain");
|
|
708
|
+
expect(Object.keys(rootBindings.exports ?? {})).to.include("dispatch");
|
|
709
|
+
expect((rootBindings.types ?? []).some((t) => t.clrName === "Acme.Core.Entity")).to.equal(true);
|
|
374
710
|
const coreTypesFacade = readFileSync(join(dir, "packages", "core", "dist", "tsonic", "bindings", "Acme.Core.d.ts"), "utf-8");
|
|
375
711
|
expect(coreTypesFacade).to.include("export type Result<T, E = string> = Ok<T> | Err<E>;");
|
|
376
712
|
expect(coreTypesFacade).to.include("export type Ok<T> =");
|
|
@@ -392,8 +728,10 @@ describe("build command (library bindings)", function () {
|
|
|
392
728
|
expect(entityInternalPath).to.not.equal(undefined);
|
|
393
729
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
394
730
|
const coreEntitiesInternal = readFileSync(entityInternalPath, "utf-8");
|
|
395
|
-
expect(coreEntitiesInternal).to.match(/set Maybe\(value: [^)]+undefined\)\s
|
|
731
|
+
expect(coreEntitiesInternal).to.match(/(set Maybe\(value: [^)]+undefined\)\s*;|Maybe: [^;]+undefined\s*;)/);
|
|
396
732
|
expect(coreEntitiesInternal).to.include("data: Record<string, unknown>");
|
|
733
|
+
expect(coreEntitiesInternal).to.match(/interface\s+ServeRequest\$instance\s+extends\s+BuildRequest/);
|
|
734
|
+
expect(coreEntitiesInternal).to.match(/interface\s+ContractDerived\$instance\s+extends\s+ContractBase/);
|
|
397
735
|
}
|
|
398
736
|
finally {
|
|
399
737
|
rmSync(dir, { recursive: true, force: true });
|
|
@@ -556,6 +894,7 @@ describe("build command (library bindings)", function () {
|
|
|
556
894
|
].join("\n"), "utf-8");
|
|
557
895
|
writeFileSync(join(dir, "packages", "core", "src", "runtime.ts"), [
|
|
558
896
|
`import type { int } from "@tsonic/core/types.js";`,
|
|
897
|
+
`import "./side-effect.ts";`,
|
|
559
898
|
``,
|
|
560
899
|
`export function chainScore(seed: Promise<int>): Promise<int> {`,
|
|
561
900
|
` return seed`,
|
|
@@ -564,8 +903,8 @@ describe("build command (library bindings)", function () {
|
|
|
564
903
|
` .finally(() => {});`,
|
|
565
904
|
`}`,
|
|
566
905
|
``,
|
|
567
|
-
`export
|
|
568
|
-
`
|
|
906
|
+
`export function loadSideEffects(): void {`,
|
|
907
|
+
` return;`,
|
|
569
908
|
`}`,
|
|
570
909
|
``,
|
|
571
910
|
`export function* nextValues(start: int): Generator<int, int, int> {`,
|
|
@@ -759,6 +1098,13 @@ describe("build command (library bindings)", function () {
|
|
|
759
1098
|
], { cwd: dir, encoding: "utf-8" });
|
|
760
1099
|
expect(buildApp.status, buildApp.stderr || buildApp.stdout).to.equal(0);
|
|
761
1100
|
const bindingsDir = join(dir, "packages", "core", "dist", "tsonic", "bindings");
|
|
1101
|
+
const rootBindingsPath = join(bindingsDir, "Acme.Core", "bindings.json");
|
|
1102
|
+
expect(existsSync(rootBindingsPath)).to.equal(true);
|
|
1103
|
+
const rootBindings = JSON.parse(readFileSync(rootBindingsPath, "utf-8"));
|
|
1104
|
+
expect(rootBindings.producer?.tool).to.equal("tsonic");
|
|
1105
|
+
expect(rootBindings.producer?.mode).to.equal("aikya-firstparty");
|
|
1106
|
+
expect(Object.keys(rootBindings.exports ?? {})).to.include("projectFlags");
|
|
1107
|
+
expect(Object.keys(rootBindings.exports ?? {})).to.include("createBox");
|
|
762
1108
|
const collectDts = (root) => {
|
|
763
1109
|
const out = [];
|
|
764
1110
|
for (const entry of readdirSync(root, { withFileTypes: true })) {
|