@spine-event-engine/proto-tools 2.0.0-snapshot.2 → 2.0.0-snapshot.21

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 (34) hide show
  1. package/README.md +54 -46
  2. package/REFERENCE.md +26 -4
  3. package/dist/src/generation/build-time-handler-analyzer.d.ts +217 -0
  4. package/dist/src/generation/build-time-handler-analyzer.d.ts.map +1 -0
  5. package/dist/src/generation/build-time-handler-analyzer.js +2806 -0
  6. package/dist/src/generation/build-time-handler-analyzer.js.map +1 -0
  7. package/dist/src/generation/entity-query-generator.d.ts +19 -0
  8. package/dist/src/generation/entity-query-generator.d.ts.map +1 -0
  9. package/dist/src/generation/entity-query-generator.js +298 -0
  10. package/dist/src/generation/entity-query-generator.js.map +1 -0
  11. package/dist/src/generation/generated-registry-writer.d.ts +58 -0
  12. package/dist/src/generation/generated-registry-writer.d.ts.map +1 -0
  13. package/dist/src/generation/generated-registry-writer.js +496 -0
  14. package/dist/src/generation/generated-registry-writer.js.map +1 -0
  15. package/dist/src/generation/generation-reuse.mjs +24 -2
  16. package/dist/src/generation/generator.d.ts.map +1 -1
  17. package/dist/src/generation/generator.js +195 -24
  18. package/dist/src/generation/generator.js.map +1 -1
  19. package/dist/src/generation/handler-codegen.d.ts +48 -0
  20. package/dist/src/generation/handler-codegen.d.ts.map +1 -0
  21. package/dist/src/generation/handler-codegen.js +214 -0
  22. package/dist/src/generation/handler-codegen.js.map +1 -0
  23. package/dist/src/generation/handler-generator.js +1 -1
  24. package/dist/src/generation/handler-generator.js.map +1 -1
  25. package/dist/src/generation/rejection-generator.d.ts +1 -0
  26. package/dist/src/generation/rejection-generator.d.ts.map +1 -1
  27. package/dist/src/generation/rejection-generator.js +14 -11
  28. package/dist/src/generation/rejection-generator.js.map +1 -1
  29. package/dist/src/testing/index.d.ts +8 -0
  30. package/dist/src/testing/index.d.ts.map +1 -0
  31. package/dist/src/testing/index.js +20 -0
  32. package/dist/src/testing/index.js.map +1 -0
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +9 -6
@@ -26,6 +26,53 @@ import { generatedSource, normalizeGeneratedTree } from "./generated-source-poli
26
26
  import { assertSourceViewCurrent, modelSourceView, writeViewRecord } from "./source-view.js";
27
27
  const bufTimeoutMs = 300_000;
28
28
  const bufMaxBuffer = 1_048_576;
29
+ /**
30
+ * Builds Buf configuration for the staged Proto generation transaction.
31
+ */
32
+ const BufTemplate = Object.freeze({
33
+ /**
34
+ * Resolves a plugin beside Proto Tools source or build output.
35
+ *
36
+ * @param name Plugin module basename.
37
+ * @returns Absolute module path passed to Buf.
38
+ */
39
+ pluginPath(name) {
40
+ const extension = import.meta.url.endsWith(".ts") ? "ts" : "js";
41
+ return fileURLToPath(new URL(`./${name}.${extension}`, import.meta.url));
42
+ },
43
+ /**
44
+ * Describes one TypeScript plugin for Buf's generation template.
45
+ *
46
+ * @param executable Direct executable or Node plugin module.
47
+ * @param node Whether Node must launch the module.
48
+ * @returns YAML lines for the plugin.
49
+ */
50
+ plugin(executable, node) {
51
+ return [
52
+ node ? " - local:" : ` - local: ${executable}`,
53
+ ...(node ? [` - ${process.execPath}`, ` - ${executable}`] : []),
54
+ " out: output",
55
+ " opt:",
56
+ " - target=ts",
57
+ " - import_extension=js",
58
+ ];
59
+ },
60
+ /**
61
+ * Writes the normal Buf template with query generation for model packages.
62
+ *
63
+ * @param moduleRoot Staged Buf module directory.
64
+ * @param protocGenEs Protobuf-ES generator executable.
65
+ */
66
+ write(moduleRoot, protocGenEs) {
67
+ writeFileSync(join(moduleRoot, "buf.yaml"), "version: v2\nmodules:\n - path: .\n", "utf8");
68
+ const plugins = [
69
+ ...BufTemplate.plugin(protocGenEs, false),
70
+ ...BufTemplate.plugin(BufTemplate.pluginPath("rejection-generator"), true),
71
+ ...BufTemplate.plugin(BufTemplate.pluginPath("entity-query-generator"), true),
72
+ ];
73
+ writeFileSync(join(moduleRoot, "buf.gen.yaml"), ["version: v2", "plugins:", ...plugins, ""].join("\n"), "utf8");
74
+ },
75
+ });
29
76
  function snapshotRegularClaim(path) {
30
77
  let descriptor;
31
78
  try {
@@ -83,10 +130,14 @@ function removeSnapshotClaim(operations, path, snapshot) {
83
130
  throw new Error("generation claim ownership changed");
84
131
  operations.remove(retired);
85
132
  }
86
- /**
87
- * Reports Proto artifact generation failures.
88
- */
89
133
  const ProtoGenerationErrors = Object.freeze({
134
+ /**
135
+ * Throws a package-scoped Proto generation error.
136
+ *
137
+ * @param owner Package or tool reporting the failure.
138
+ * @param message Specific failure detail.
139
+ * @returns Never; this method always throws.
140
+ */
90
141
  fail(owner, message) {
91
142
  throw new Error(`spine-proto: ${owner}: ${message}`);
92
143
  },
@@ -164,6 +215,14 @@ const protoGeneration = Object.freeze({
164
215
  });
165
216
  }
166
217
  },
218
+ /**
219
+ * Creates a generation claim after removing dead claims and rejecting live ones.
220
+ *
221
+ * @param packageRoot Package directory containing claim files.
222
+ * @param packageName Package named in claim errors.
223
+ * @param operations Filesystem and liveness seams.
224
+ * @returns Claim to release after generation.
225
+ */
167
226
  acquireLock(packageRoot, packageName, operations = {}) {
168
227
  const token = crypto.randomUUID();
169
228
  const lock = join(packageRoot, `.spine-proto-generate.lock.${token}`);
@@ -219,6 +278,13 @@ const protoGeneration = Object.freeze({
219
278
  }
220
279
  return { path: lock, token };
221
280
  },
281
+ /**
282
+ * Removes a generation claim after checking its token.
283
+ *
284
+ * @param lock Claim created by acquireLock.
285
+ * @param packageName Package named in cleanup errors.
286
+ * @param operations Filesystem seams used for cleanup.
287
+ */
222
288
  releaseLock(lock, packageName, operations = {}) {
223
289
  const lockOperations = completeLockOperations(operations);
224
290
  const quarantine = claimQuarantine(lock.path);
@@ -282,6 +348,14 @@ const protoGeneration = Object.freeze({
282
348
  mkdirSync(dirname(target), { recursive: true });
283
349
  ManifestFile.writeAtomically(target, source, operations.registryOperations);
284
350
  },
351
+ /**
352
+ * Copies regular Proto sources into the staged Buf module.
353
+ *
354
+ * @param packageRoot Model package directory.
355
+ * @param protoRoot Proto directory inside the package.
356
+ * @param destination Staged Buf module directory.
357
+ * @param protoFiles Manifest paths belonging to this model.
358
+ */
285
359
  copyOwnedSources(packageRoot, protoRoot, destination, protoFiles) {
286
360
  for (const protoFile of protoFiles) {
287
361
  const source = join(packageRoot, protoRoot, protoFile);
@@ -291,8 +365,18 @@ const protoGeneration = Object.freeze({
291
365
  copyFileSync(source, target);
292
366
  }
293
367
  },
368
+ /**
369
+ * Checks for a direct core runtime dependency when query or rejection code was generated.
370
+ *
371
+ * @param packageRoot Model package directory containing package.json.
372
+ * @param packageName Package named in dependency errors.
373
+ * @param output Staged generated files inspected for query or rejection companions.
374
+ */
294
375
  assertRejectionRuntimeDependency(packageRoot, packageName, output) {
295
- if (!protoGeneration.files(output).some((file) => file.endsWith("rejections.ts")))
376
+ const files = protoGeneration.files(output);
377
+ const rejections = files.some((file) => file.endsWith("rejections.ts"));
378
+ const queries = files.some((file) => file.endsWith("_query.ts"));
379
+ if (!rejections && !queries)
296
380
  return;
297
381
  let dependencies;
298
382
  try {
@@ -305,11 +389,22 @@ const protoGeneration = Object.freeze({
305
389
  catch {
306
390
  ProtoGenerationErrors.fail(packageName, "cannot read package runtime dependencies");
307
391
  }
392
+ const requirement = rejections && queries
393
+ ? "rejection and Entity query generation require"
394
+ : rejections
395
+ ? "rejection generation requires"
396
+ : "Entity query generation requires";
308
397
  if (dependencies === null ||
309
398
  typeof dependencies !== "object" ||
310
399
  typeof dependencies["@spine-event-engine/core"] !== "string")
311
- ProtoGenerationErrors.fail(packageName, "rejection generation requires direct runtime dependency @spine-event-engine/core");
400
+ ProtoGenerationErrors.fail(packageName, `${requirement} direct runtime dependency @spine-event-engine/core`);
312
401
  },
402
+ /**
403
+ * Copies a direct dependency's exported Proto sources into the staged module.
404
+ *
405
+ * @param model Dependency name and installed root.
406
+ * @param destination Staged Buf module directory.
407
+ */
313
408
  copyDependencySources(model, destination) {
314
409
  const manifestPath = protoGeneration.resolveExportedManifest(model.root, model.name);
315
410
  for (const protoPath of readManifestAt(model.root, manifestPath).protoFiles) {
@@ -320,6 +415,13 @@ const protoGeneration = Object.freeze({
320
415
  copyFileSync(source, target);
321
416
  }
322
417
  },
418
+ /**
419
+ * Resolves a model package's exported manifest through package exports.
420
+ *
421
+ * @param packageRoot Installed package directory.
422
+ * @param packageName Model package name.
423
+ * @returns Resolved manifest path.
424
+ */
323
425
  resolveExportedManifest(packageRoot, packageName) {
324
426
  try {
325
427
  return createRequire(join(packageRoot, "package.json")).resolve(`${packageName}/spine-proto-manifest.json`);
@@ -328,6 +430,14 @@ const protoGeneration = Object.freeze({
328
430
  return ProtoGenerationErrors.fail(packageName, "cannot resolve exported manifest");
329
431
  }
330
432
  },
433
+ /**
434
+ * Resolves one exported Proto source through a dependency's package exports.
435
+ *
436
+ * @param requesterRoot Requesting model package directory.
437
+ * @param packageName Dependency package name.
438
+ * @param protoPath Exported Proto path.
439
+ * @returns Resolved Proto source path.
440
+ */
331
441
  resolveExportedProto(requesterRoot, packageName, protoPath) {
332
442
  try {
333
443
  return createRequire(join(requesterRoot, "package.json")).resolve(`${packageName}/proto/${protoPath}`);
@@ -336,6 +446,12 @@ const protoGeneration = Object.freeze({
336
446
  return ProtoGenerationErrors.fail(packageName, `cannot resolve exported Proto source ${protoPath}`);
337
447
  }
338
448
  },
449
+ /**
450
+ * Rejects missing, symbolic, and nonregular exported Proto sources.
451
+ *
452
+ * @param path Source path to inspect.
453
+ * @param owner Package named in the failure.
454
+ */
339
455
  assertRegularFile(path, owner) {
340
456
  try {
341
457
  const entry = lstatSync(path);
@@ -346,27 +462,18 @@ const protoGeneration = Object.freeze({
346
462
  ProtoGenerationErrors.fail(owner, "exported Proto source is missing or unsafe");
347
463
  }
348
464
  },
465
+ /**
466
+ * Executes staged Protobuf, rejection, and eligible query generation and validates descriptors.
467
+ *
468
+ * @param moduleRoot Staged Buf module directory.
469
+ * @param output Staged generated-output directory.
470
+ * @param owned Proto paths belonging to the model.
471
+ * @param packageName Package named in Buf failures.
472
+ * @param runner Subprocess seam used for Buf invocations.
473
+ */
349
474
  runBuf(moduleRoot, output, owned, packageName, runner = (command, arguments_, options) => spawnSync(command, arguments_, options)) {
350
475
  const protocGenEs = protoGeneration.resolveTool("@bufbuild/protoc-gen-es/bin/protoc-gen-es");
351
- const rejectionGenerator = fileURLToPath(new URL(import.meta.url.endsWith(".ts") ? "./rejection-generator.ts" : "./rejection-generator.js", import.meta.url));
352
- writeFileSync(join(moduleRoot, "buf.yaml"), "version: v2\nmodules:\n - path: .\n", "utf8");
353
- writeFileSync(join(moduleRoot, "buf.gen.yaml"), [
354
- "version: v2",
355
- "plugins:",
356
- ` - local: ${protocGenEs}`,
357
- " out: output",
358
- " opt:",
359
- " - target=ts",
360
- " - import_extension=js",
361
- " - local:",
362
- ` - ${process.execPath}`,
363
- ` - ${rejectionGenerator}`,
364
- " out: output",
365
- " opt:",
366
- " - target=ts",
367
- " - import_extension=js",
368
- "",
369
- ].join("\n"), "utf8");
476
+ BufTemplate.write(moduleRoot, protocGenEs);
370
477
  const buf = protoGeneration.resolveTool("@bufbuild/buf/bin/buf");
371
478
  const generated = runner(buf, ["generate", "--template", "buf.gen.yaml", ...owned.flatMap((file) => ["--path", file])], {
372
479
  cwd: moduleRoot,
@@ -385,6 +492,16 @@ const protoGeneration = Object.freeze({
385
492
  if (!existsSync(output))
386
493
  ProtoGenerationErrors.fail(packageName, "Buf generated no owned output");
387
494
  },
495
+ /**
496
+ * Creates interface companions after primary Proto generation.
497
+ *
498
+ * @param moduleRoot Staged Buf module directory.
499
+ * @param output Staged generated-output directory.
500
+ * @param owned Proto paths belonging to the model.
501
+ * @param packageName Package named in interface generation failures.
502
+ * @param sourceView Authored-source view passed to the companion plugin.
503
+ * @param runner Subprocess seam used for Buf invocation.
504
+ */
388
505
  runInterfacePhase(moduleRoot, output, owned, packageName, sourceView, runner = (command, arguments_, options) => spawnSync(command, arguments_, options)) {
389
506
  writeFileSync(join(moduleRoot, ".spine-source-view.json"), `${JSON.stringify(sourceView)}\n`, "utf8");
390
507
  const interfaceGenerator = fileURLToPath(new URL(import.meta.url.endsWith(".ts") ? "./interface-generator.ts" : "./interface-generator.js", import.meta.url));
@@ -409,6 +526,13 @@ const protoGeneration = Object.freeze({
409
526
  ], { cwd: moduleRoot, encoding: "utf8", timeout: bufTimeoutMs, maxBuffer: bufMaxBuffer });
410
527
  protoGeneration.assertBufResult(packageName, "interface generation", generated);
411
528
  },
529
+ /**
530
+ * Converts a failed Buf subprocess result into a package-scoped error.
531
+ *
532
+ * @param packageName Package named in the error.
533
+ * @param phase Generation or descriptor-validation phase.
534
+ * @param result Subprocess exit and diagnostic result.
535
+ */
412
536
  assertBufResult(packageName, phase, result) {
413
537
  if (result.error !== undefined) {
414
538
  if (result.error.code === "ETIMEDOUT")
@@ -422,6 +546,12 @@ const protoGeneration = Object.freeze({
422
546
  if (result.status !== 0)
423
547
  ProtoGenerationErrors.fail(packageName, `Buf ${phase} failed: ${(result.stderr || result.stdout).trim()}`);
424
548
  },
549
+ /**
550
+ * Resolves a packaged Buf or Protobuf-ES executable.
551
+ *
552
+ * @param specifier Package subpath of the executable.
553
+ * @returns Resolved executable path.
554
+ */
425
555
  resolveTool(specifier) {
426
556
  try {
427
557
  return createRequire(import.meta.url).resolve(specifier);
@@ -430,6 +560,14 @@ const protoGeneration = Object.freeze({
430
560
  return ProtoGenerationErrors.fail("@spine-event-engine/proto-tools", `cannot resolve packaged executable ${specifier}`);
431
561
  }
432
562
  },
563
+ /**
564
+ * Replaces direct dependency schema imports with their exported model paths.
565
+ *
566
+ * @param output Staged generated-output directory.
567
+ * @param owners Model package and export for each Proto source.
568
+ * @param currentPackage Package being generated.
569
+ * @param directDependencies Dependencies permitted in generated imports.
570
+ */
433
571
  rewriteDependencyImports(output, owners, currentPackage, directDependencies) {
434
572
  for (const file of protoGeneration.files(output)) {
435
573
  if (!file.endsWith(".ts"))
@@ -452,6 +590,14 @@ const protoGeneration = Object.freeze({
452
590
  writeFileSync(file, rewritten, "utf8");
453
591
  }
454
592
  },
593
+ /**
594
+ * Writes the Proto module registry from generated schemas and direct dependencies.
595
+ *
596
+ * @param output Staged generated-output directory.
597
+ * @param exportName Name exported by the module descriptor.
598
+ * @param packageName Model package represented by the descriptor.
599
+ * @param dependencies Direct model dependencies included in the registry.
600
+ */
455
601
  writeModule(output, exportName, packageName, dependencies) {
456
602
  const generated = protoGeneration
457
603
  .files(output)
@@ -496,6 +642,16 @@ const protoGeneration = Object.freeze({
496
642
  ].join("\n"), sources);
497
643
  writeFileSync(join(output, "proto-module.ts"), source, "utf8");
498
644
  },
645
+ /**
646
+ * Publishes staged output and its manifest, restoring both after a failure.
647
+ *
648
+ * @param packageRoot Model package directory.
649
+ * @param generatedRoot Generated directory relative to that package.
650
+ * @param output Staged generated-output directory.
651
+ * @param manifest New manifest content.
652
+ * @param onRename Filesystem rename seam.
653
+ * @param manifestOperations Atomic manifest-write seams.
654
+ */
499
655
  publish(packageRoot, generatedRoot, output, manifest, onRename = renameSync, manifestOperations = {}) {
500
656
  const target = join(packageRoot, generatedRoot);
501
657
  const backup = join(dirname(target), `.${basename(target)}.${crypto.randomUUID()}.backup`);
@@ -526,9 +682,24 @@ const protoGeneration = Object.freeze({
526
682
  throw error;
527
683
  }
528
684
  },
685
+ /**
686
+ * Returns an existing generation ID when staged output matches published output.
687
+ *
688
+ * @param packageRoot Model package directory.
689
+ * @param target Published generated-output directory.
690
+ * @param output Staged generated-output directory.
691
+ * @param manifest Proposed manifest containing the generation ID.
692
+ * @returns Existing generation ID when output is equivalent.
693
+ */
529
694
  reusableGenerationId(packageRoot, target, output, manifest) {
530
695
  return reusableGenerationId(join(packageRoot, "spine-proto-manifest.json"), target, manifest, output);
531
696
  },
697
+ /**
698
+ * Lists regular generated files under bounded depth and entry counts.
699
+ *
700
+ * @param root Generated directory to traverse.
701
+ * @returns File paths beneath the root.
702
+ */
532
703
  files(root) {
533
704
  const output = [];
534
705
  const pending = [[root, 0]];
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/generation/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/generation/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Options for application-local generated handler registry production.
3
+ */
4
+ export interface HandlerCodegenOptions {
5
+ /**
6
+ * Application root containing its TypeScript project.
7
+ */
8
+ readonly appRoot: string;
9
+ }
10
+ /**
11
+ * Filesystem operations used to stage an application handler registry.
12
+ */
13
+ export interface HandlerCodegenOperations {
14
+ /**
15
+ * Creates a directory at the supplied path.
16
+ *
17
+ * @param path Directory path to create.
18
+ */
19
+ readonly mkdir: (path: string) => void;
20
+ /**
21
+ * Writes source text to the supplied path.
22
+ *
23
+ * @param path File path to write.
24
+ * @param source UTF-8 source text to write.
25
+ */
26
+ readonly write: (path: string, source: string) => void;
27
+ /**
28
+ * Updates a filesystem entry to use another path.
29
+ *
30
+ * @param from Existing filesystem entry path.
31
+ * @param to Destination filesystem entry path.
32
+ */
33
+ readonly rename: (from: string, to: string) => void;
34
+ /**
35
+ * Removes the filesystem entry at the supplied path.
36
+ *
37
+ * @param path Filesystem entry path to remove.
38
+ */
39
+ readonly remove: (path: string) => void;
40
+ }
41
+ /**
42
+ * Creates and atomically replaces an application's generated handler registry from tooling.
43
+ *
44
+ * @param options Application root and generation configuration.
45
+ * @param operations Optional filesystem operations used for generation.
46
+ */
47
+ export declare function generateHandlerRegistry(options: HandlerCodegenOptions, operations?: Partial<HandlerCodegenOperations>): void;
48
+ //# sourceMappingURL=handler-codegen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler-codegen.d.ts","sourceRoot":"","sources":["../../../src/generation/handler-codegen.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAGpC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IAGvC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvD;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAiBD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,qBAAqB,EAC9B,UAAU,GAAE,OAAO,CAAC,wBAAwB,CAAM,GACjD,IAAI,CAkBN"}