@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.
Files changed (83) 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 +15 -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 -0
  18. package/dist/cli/parser.js.map +1 -1
  19. package/dist/cli/parser.test.js +10 -0
  20. package/dist/cli/parser.test.js.map +1 -1
  21. package/dist/commands/add-npm.d.ts +3 -2
  22. package/dist/commands/add-npm.d.ts.map +1 -1
  23. package/dist/commands/add-npm.js +69 -177
  24. package/dist/commands/add-npm.js.map +1 -1
  25. package/dist/commands/add-npm.test.js +276 -2
  26. package/dist/commands/add-npm.test.js.map +1 -1
  27. package/dist/commands/build-library-bindings-aliases.test.js +352 -6
  28. package/dist/commands/build-library-bindings-aliases.test.js.map +1 -1
  29. package/dist/commands/build.d.ts.map +1 -1
  30. package/dist/commands/build.js +192 -145
  31. package/dist/commands/build.js.map +1 -1
  32. package/dist/commands/build.test.js +22 -3
  33. package/dist/commands/build.test.js.map +1 -1
  34. package/dist/commands/generate.d.ts.map +1 -1
  35. package/dist/commands/generate.js +7 -0
  36. package/dist/commands/generate.js.map +1 -1
  37. package/dist/commands/init.d.ts +6 -2
  38. package/dist/commands/init.d.ts.map +1 -1
  39. package/dist/commands/init.js +76 -12
  40. package/dist/commands/init.js.map +1 -1
  41. package/dist/commands/init.test.js +162 -8
  42. package/dist/commands/init.test.js.map +1 -1
  43. package/dist/commands/library-bindings-augment.d.ts.map +1 -1
  44. package/dist/commands/library-bindings-augment.js +378 -53
  45. package/dist/commands/library-bindings-augment.js.map +1 -1
  46. package/dist/commands/library-bindings-augment.test.js +460 -2
  47. package/dist/commands/library-bindings-augment.test.js.map +1 -1
  48. package/dist/commands/library-bindings-firstparty-regressions.test.d.ts +2 -0
  49. package/dist/commands/library-bindings-firstparty-regressions.test.d.ts.map +1 -0
  50. package/dist/commands/library-bindings-firstparty-regressions.test.js +214 -0
  51. package/dist/commands/library-bindings-firstparty-regressions.test.js.map +1 -0
  52. package/dist/commands/library-bindings-firstparty.d.ts +3 -0
  53. package/dist/commands/library-bindings-firstparty.d.ts.map +1 -0
  54. package/dist/commands/library-bindings-firstparty.js +2252 -0
  55. package/dist/commands/library-bindings-firstparty.js.map +1 -0
  56. package/dist/commands/restore.d.ts.map +1 -1
  57. package/dist/commands/restore.js +3 -1
  58. package/dist/commands/restore.js.map +1 -1
  59. package/dist/commands/restore.test.js +29 -0
  60. package/dist/commands/restore.test.js.map +1 -1
  61. package/dist/commands/run-build-regressions.test.js +72 -0
  62. package/dist/commands/run-build-regressions.test.js.map +1 -1
  63. package/dist/config.d.ts.map +1 -1
  64. package/dist/config.js +19 -2
  65. package/dist/config.js.map +1 -1
  66. package/dist/config.test.js +98 -2
  67. package/dist/config.test.js.map +1 -1
  68. package/dist/dotnet/runtime-dlls.d.ts +1 -0
  69. package/dist/dotnet/runtime-dlls.d.ts.map +1 -1
  70. package/dist/dotnet/runtime-dlls.js +1 -0
  71. package/dist/dotnet/runtime-dlls.js.map +1 -1
  72. package/dist/surface/profiles.d.ts +15 -0
  73. package/dist/surface/profiles.d.ts.map +1 -0
  74. package/dist/surface/profiles.js +218 -0
  75. package/dist/surface/profiles.js.map +1 -0
  76. package/dist/surface/profiles.test.d.ts +2 -0
  77. package/dist/surface/profiles.test.d.ts.map +1 -0
  78. package/dist/surface/profiles.test.js +175 -0
  79. package/dist/surface/profiles.test.js.map +1 -0
  80. package/dist/types.d.ts +11 -1
  81. package/dist/types.d.ts.map +1 -1
  82. package/package.json +4 -4
  83. 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 async function loadSideEffects(): Promise<void> {`,
568
- ` await import("./side-effect.ts");`,
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 })) {