@spine-event-engine/proto-tools 2.0.0-snapshot.10
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/LICENSE +201 -0
- package/README.md +103 -0
- package/REFERENCE.md +90 -0
- package/bin/spine-proto.mjs +2 -0
- package/dist/src/cli/spine-proto-bootstrap.d.ts +4 -0
- package/dist/src/cli/spine-proto-bootstrap.d.ts.map +1 -0
- package/dist/src/cli/spine-proto-bootstrap.js +52 -0
- package/dist/src/cli/spine-proto-bootstrap.js.map +1 -0
- package/dist/src/cli/spine-proto.d.ts +3 -0
- package/dist/src/cli/spine-proto.d.ts.map +1 -0
- package/dist/src/cli/spine-proto.js +32 -0
- package/dist/src/cli/spine-proto.js.map +1 -0
- package/dist/src/generation/authored-interface-provider.d.ts +28 -0
- package/dist/src/generation/authored-interface-provider.d.ts.map +1 -0
- package/dist/src/generation/authored-interface-provider.js +244 -0
- package/dist/src/generation/authored-interface-provider.js.map +1 -0
- package/dist/src/generation/build-time-handler-analyzer.d.ts +195 -0
- package/dist/src/generation/build-time-handler-analyzer.d.ts.map +1 -0
- package/dist/src/generation/build-time-handler-analyzer.js +1308 -0
- package/dist/src/generation/build-time-handler-analyzer.js.map +1 -0
- package/dist/src/generation/generated-registry-writer.d.ts +58 -0
- package/dist/src/generation/generated-registry-writer.d.ts.map +1 -0
- package/dist/src/generation/generated-registry-writer.js +465 -0
- package/dist/src/generation/generated-registry-writer.js.map +1 -0
- package/dist/src/generation/generated-source-policy.d.ts +21 -0
- package/dist/src/generation/generated-source-policy.d.ts.map +1 -0
- package/dist/src/generation/generated-source-policy.js +126 -0
- package/dist/src/generation/generated-source-policy.js.map +1 -0
- package/dist/src/generation/generation-reuse.mjs +106 -0
- package/dist/src/generation/generator.d.ts +195 -0
- package/dist/src/generation/generator.d.ts.map +1 -0
- package/dist/src/generation/generator.js +566 -0
- package/dist/src/generation/generator.js.map +1 -0
- package/dist/src/generation/handler-codegen.d.ts +48 -0
- package/dist/src/generation/handler-codegen.d.ts.map +1 -0
- package/dist/src/generation/handler-codegen.js +214 -0
- package/dist/src/generation/handler-codegen.js.map +1 -0
- package/dist/src/generation/handler-generator.d.ts +7 -0
- package/dist/src/generation/handler-generator.d.ts.map +1 -0
- package/dist/src/generation/handler-generator.js +55 -0
- package/dist/src/generation/handler-generator.js.map +1 -0
- package/dist/src/generation/interface-generator.d.ts +21 -0
- package/dist/src/generation/interface-generator.d.ts.map +1 -0
- package/dist/src/generation/interface-generator.js +277 -0
- package/dist/src/generation/interface-generator.js.map +1 -0
- package/dist/src/generation/interface-provider.d.ts +30 -0
- package/dist/src/generation/interface-provider.d.ts.map +1 -0
- package/dist/src/generation/interface-provider.js +15 -0
- package/dist/src/generation/interface-provider.js.map +1 -0
- package/dist/src/generation/rejection-generator.d.ts +9 -0
- package/dist/src/generation/rejection-generator.d.ts.map +1 -0
- package/dist/src/generation/rejection-generator.js +62 -0
- package/dist/src/generation/rejection-generator.js.map +1 -0
- package/dist/src/generation/source-view.d.ts +103 -0
- package/dist/src/generation/source-view.d.ts.map +1 -0
- package/dist/src/generation/source-view.js +298 -0
- package/dist/src/generation/source-view.js.map +1 -0
- package/dist/src/index.d.ts +139 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +546 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/io/atomic-manifest.d.ts +32 -0
- package/dist/src/io/atomic-manifest.d.ts.map +1 -0
- package/dist/src/io/atomic-manifest.js +56 -0
- package/dist/src/io/atomic-manifest.js.map +1 -0
- package/dist/src/io/manifest-reader.d.ts +8 -0
- package/dist/src/io/manifest-reader.d.ts.map +1 -0
- package/dist/src/io/manifest-reader.js +19 -0
- package/dist/src/io/manifest-reader.js.map +1 -0
- package/dist/src/model/model-graph.d.ts +68 -0
- package/dist/src/model/model-graph.d.ts.map +1 -0
- package/dist/src/model/model-graph.js +220 -0
- package/dist/src/model/model-graph.js.map +1 -0
- package/dist/src/model/npm-package-name.d.ts +7 -0
- package/dist/src/model/npm-package-name.d.ts.map +1 -0
- package/dist/src/model/npm-package-name.js +33 -0
- package/dist/src/model/npm-package-name.js.map +1 -0
- package/dist/src/model/registry-dependency.d.ts +10 -0
- package/dist/src/model/registry-dependency.d.ts.map +1 -0
- package/dist/src/model/registry-dependency.js +66 -0
- package/dist/src/model/registry-dependency.js.map +1 -0
- package/dist/src/testing/index.d.ts +8 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +20 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +54 -0
- package/scripts/clean-dist.mjs +7 -0
- package/scripts/copy-runtime-modules.mjs +23 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-registry-writer.js","sourceRoot":"","sources":["../../../src/generation/generated-registry-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders a deterministic generated-file notice.
|
|
3
|
+
*/
|
|
4
|
+
export declare const generatedNotice: (sources: readonly string[]) => string;
|
|
5
|
+
/**
|
|
6
|
+
* Renders the deterministic generated-file notice for script consumers.
|
|
7
|
+
*/
|
|
8
|
+
export declare const generatedFileNotice: (sources: readonly string[]) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Applies generated provenance to TypeScript source.
|
|
11
|
+
*/
|
|
12
|
+
export declare const generatedSource: (source: string, sources: readonly string[]) => string;
|
|
13
|
+
/**
|
|
14
|
+
* Applies generated provenance using the script-compatible name.
|
|
15
|
+
*/
|
|
16
|
+
export declare const generatedTypeScript: (source: string, sources: readonly string[]) => string;
|
|
17
|
+
/**
|
|
18
|
+
* Normalizes generated TypeScript files below a directory.
|
|
19
|
+
*/
|
|
20
|
+
export declare const normalizeGeneratedTree: (root: string, sources: readonly string[]) => void;
|
|
21
|
+
//# sourceMappingURL=generated-source-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-source-policy.d.ts","sourceRoot":"","sources":["../../../src/generation/generated-source-policy.ts"],"names":[],"mappings":"AA+IA;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,MAC7B,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,MAAwB,CAAC;AAE3F;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,MAC7C,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,MACjE,CAAC;AAElB;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,IAC3C,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, CodeMatters. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
5
|
+
* in compliance with the License. You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
10
|
+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
11
|
+
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
|
+
* the License.
|
|
13
|
+
*/
|
|
14
|
+
/* Shared publishable generated-TypeScript provenance policy. */
|
|
15
|
+
import { readFileSync, readdirSync, writeFileSync } from "node:fs";
|
|
16
|
+
import { join } from "node:path";
|
|
17
|
+
/**
|
|
18
|
+
* Renders a deterministic generated-file notice.
|
|
19
|
+
* @param sources Stable source Proto import paths.
|
|
20
|
+
* @returns The generated-file notice.
|
|
21
|
+
*/
|
|
22
|
+
const generatedPolicy = Object.freeze({
|
|
23
|
+
generatedNotice(sources) {
|
|
24
|
+
const paths = [...new Set(sources)].sort();
|
|
25
|
+
if (paths.length === 0 || !paths.every(generatedPolicy.stableProtoPath))
|
|
26
|
+
throw new Error(`spine-proto: generated source requires stable Proto provenance ${JSON.stringify(paths)}`);
|
|
27
|
+
return [
|
|
28
|
+
"/*",
|
|
29
|
+
" * Generated by Spine TypeScript. Do not edit manually.",
|
|
30
|
+
...paths.map((path) => ` * Source Proto: ${path}`),
|
|
31
|
+
" */",
|
|
32
|
+
"",
|
|
33
|
+
"",
|
|
34
|
+
].join("\n");
|
|
35
|
+
},
|
|
36
|
+
/* Applies generated provenance to TypeScript source. */
|
|
37
|
+
generatedSource(source, sources) {
|
|
38
|
+
let copiedPreamble = source.replace(/^\/\*\n \* Generated by Spine TypeScript\. Do not edit manually\.\n(?: \* Source Proto: .*\n)+ \*\/\n*/u, "");
|
|
39
|
+
const leadingBlock = /^\/\*[\s\S]*?\*\/\s*/u.exec(copiedPreamble)?.[0];
|
|
40
|
+
if (leadingBlock !== undefined &&
|
|
41
|
+
/copyright|licen[cs](?:ed|e)|proprietary|confidential/iu.test(leadingBlock))
|
|
42
|
+
copiedPreamble = copiedPreamble.slice(leadingBlock.length);
|
|
43
|
+
const leadingLines = /^(?:(?:\/\/[^\n]*\n)+)/u.exec(copiedPreamble)?.[0];
|
|
44
|
+
if (leadingLines !== undefined &&
|
|
45
|
+
/copyright|licen[cs](?:ed|e)|proprietary|confidential/iu.test(leadingLines))
|
|
46
|
+
copiedPreamble = `${leadingLines
|
|
47
|
+
.split("\n")
|
|
48
|
+
.filter((line) => line.startsWith("// @generated"))
|
|
49
|
+
.join("\n")}\n${copiedPreamble.slice(leadingLines.length)}`;
|
|
50
|
+
const withoutCopyright = copiedPreamble;
|
|
51
|
+
const lines = withoutCopyright.split("\n");
|
|
52
|
+
const generatedAt = lines.findIndex((line) => line.startsWith("// @generated"));
|
|
53
|
+
const body = generatedAt !== -1 && lines.slice(0, generatedAt).some((line) => line.includes("CodeMatters"))
|
|
54
|
+
? lines.slice(generatedAt).join("\n")
|
|
55
|
+
: withoutCopyright;
|
|
56
|
+
const provenance = ` * Generated from Proto: ${[...new Set(sources)].sort().join(", ")}.`;
|
|
57
|
+
return `${generatedPolicy.generatedNotice(sources)}${body.replace(/(^|\n)(\/\*\*[\s\S]*?\*\/\n)?(export (?:declare )?(?:const|interface|enum|type|class|function) )/gu, (_match, prefix, documentation, declaration) => {
|
|
58
|
+
const cleaned = (documentation ?? "").replace(/ \* Generated from Proto: .*\.\n/gu, "");
|
|
59
|
+
const oneLine = /^\/\*\*[ \t]*([^\n]*?)[ \t]*\*\/\n$/u.exec(cleaned);
|
|
60
|
+
const normalized = oneLine === null ? cleaned : `/**\n * ${oneLine[1] ?? ""}\n */\n`;
|
|
61
|
+
return cleaned === ""
|
|
62
|
+
? `${prefix}/**\n${provenance}\n */\n${declaration}`
|
|
63
|
+
: `${prefix}${normalized.replace(/ \*\/\n$/u, `${provenance}\n */\n`)}${declaration}`;
|
|
64
|
+
})}`;
|
|
65
|
+
},
|
|
66
|
+
/* Normalizes generated TypeScript files below a directory. */
|
|
67
|
+
normalizeGeneratedTree(root, sources) {
|
|
68
|
+
generatedPolicy.normalizeGeneratedTreeAt(root, sources, 0, { entries: 0 });
|
|
69
|
+
},
|
|
70
|
+
normalizeGeneratedTreeAt(root, sources, depth, state) {
|
|
71
|
+
if (depth > 64 || state.entries > 1_000)
|
|
72
|
+
throw new Error("spine-proto: generated source traversal exceeds bounded inventory");
|
|
73
|
+
for (const entry of readdirSync(root, { withFileTypes: true })) {
|
|
74
|
+
state.entries += 1;
|
|
75
|
+
if (state.entries > 1_000)
|
|
76
|
+
throw new Error("spine-proto: generated source traversal exceeds bounded inventory");
|
|
77
|
+
const path = join(root, entry.name);
|
|
78
|
+
if (entry.isDirectory())
|
|
79
|
+
generatedPolicy.normalizeGeneratedTreeAt(path, sources, depth + 1, state);
|
|
80
|
+
else if (entry.isFile() &&
|
|
81
|
+
(/(?:_pb|rejections|_columns|proto-module|generated-handler-registry)\.ts$/u.test(path) ||
|
|
82
|
+
/[\\/]interfaces[\\/].+\.ts$/u.test(path))) {
|
|
83
|
+
const source = readFileSync(path, "utf8");
|
|
84
|
+
const derived = [
|
|
85
|
+
...source.matchAll(/from "(?:[^" ]+\/generated\/)?([^" ]+)_pb\.js"/gu),
|
|
86
|
+
].map((match) => (match[1] ?? "").replace(/^\.\//u, "").replace(/^.*?spine\//u, "spine/") + ".proto");
|
|
87
|
+
const generated = [...source.matchAll(/@generated from file ([^\s)]+)/gu)].map((match) => match[1] ?? "");
|
|
88
|
+
const provenance = generated.length > 0 ? generated : derived.length > 0 ? derived : sources;
|
|
89
|
+
if (provenance.length > 0)
|
|
90
|
+
writeFileSync(path, generatedPolicy.generatedSource(source, provenance), "utf8");
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
stableProtoPath(path) {
|
|
95
|
+
const components = path.split("/");
|
|
96
|
+
return (typeof path === "string" &&
|
|
97
|
+
path.length > 0 &&
|
|
98
|
+
path.endsWith(".proto") &&
|
|
99
|
+
!path.startsWith("/") &&
|
|
100
|
+
!/^[A-Za-z]:/u.test(path) &&
|
|
101
|
+
!components.some((part) => part === "" || part === "." || part === "..") &&
|
|
102
|
+
!path.includes("\\") &&
|
|
103
|
+
!components.some((part) => part === "tmp" || part === "temp" || /^\.(?:generated|stage|backup)(?:-|$)/u.test(part)));
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
/**
|
|
107
|
+
* Renders a deterministic generated-file notice.
|
|
108
|
+
*/
|
|
109
|
+
export const generatedNotice = generatedPolicy.generatedNotice;
|
|
110
|
+
/**
|
|
111
|
+
* Renders the deterministic generated-file notice for script consumers.
|
|
112
|
+
*/
|
|
113
|
+
export const generatedFileNotice = generatedNotice;
|
|
114
|
+
/**
|
|
115
|
+
* Applies generated provenance to TypeScript source.
|
|
116
|
+
*/
|
|
117
|
+
export const generatedSource = generatedPolicy.generatedSource;
|
|
118
|
+
/**
|
|
119
|
+
* Applies generated provenance using the script-compatible name.
|
|
120
|
+
*/
|
|
121
|
+
export const generatedTypeScript = generatedSource;
|
|
122
|
+
/**
|
|
123
|
+
* Normalizes generated TypeScript files below a directory.
|
|
124
|
+
*/
|
|
125
|
+
export const normalizeGeneratedTree = generatedPolicy.normalizeGeneratedTree;
|
|
126
|
+
//# sourceMappingURL=generated-source-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-source-policy.js","sourceRoot":"","sources":["../../../src/generation/generated-source-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,gEAAgE;AAChE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;GAIG;AACH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,eAAe,CAAC,OAA0B;QACxC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,eAAe,CAAC;YACrE,MAAM,IAAI,KAAK,CACb,kEAAkE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;QACJ,OAAO;YACL,IAAI;YACJ,yDAAyD;YACzD,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,IAAI,EAAE,CAAC;YAClD,KAAK;YACL,EAAE;YACF,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,wDAAwD;IACxD,eAAe,CAAC,MAAc,EAAE,OAA0B;QACxD,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CACjC,yGAAyG,EACzG,EAAE,CACH,CAAC;QACF,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,IACE,YAAY,KAAK,SAAS;YAC1B,wDAAwD,CAAC,IAAI,CAAC,YAAY,CAAC;YAE3E,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,IACE,YAAY,KAAK,SAAS;YAC1B,wDAAwD,CAAC,IAAI,CAAC,YAAY,CAAC;YAE3E,cAAc,GAAG,GAAG,YAAY;iBAC7B,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;iBAClD,IAAI,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,gBAAgB,GAAG,cAAc,CAAC;QACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;QAChF,MAAM,IAAI,GACR,WAAW,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC5F,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,CAAC,CAAC,gBAAgB,CAAC;QACvB,MAAM,UAAU,GAAG,4BAA4B,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1F,OAAO,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAC/D,oGAAoG,EACpG,CAAC,MAAc,EAAE,MAAc,EAAE,aAAiC,EAAE,WAAmB,EAAE,EAAE;YACzF,MAAM,OAAO,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;YACxF,MAAM,OAAO,GAAG,sCAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC;YACrF,OAAO,OAAO,KAAK,EAAE;gBACnB,CAAC,CAAC,GAAG,MAAM,QAAQ,UAAU,UAAU,WAAW,EAAE;gBACpD,CAAC,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,UAAU,SAAS,CAAC,GAAG,WAAW,EAAE,CAAC;QAC1F,CAAC,CACF,EAAE,CAAC;IACN,CAAC;IAED,8DAA8D;IAC9D,sBAAsB,CAAC,IAAY,EAAE,OAA0B;QAC7D,eAAe,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,wBAAwB,CACtB,IAAY,EACZ,OAA0B,EAC1B,KAAa,EACb,KAA0B;QAE1B,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK;YACrC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/D,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACnB,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK;gBACvB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACvF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,eAAe,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;iBACvE,IACH,KAAK,CAAC,MAAM,EAAE;gBACd,CAAC,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrF,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAC5C,CAAC;gBACD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG;oBACd,GAAG,MAAM,CAAC,QAAQ,CAAC,kDAAkD,CAAC;iBACvE,CAAC,GAAG,CACH,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,QAAQ,CACtF,CAAC;gBACF,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,CAAC,GAAG,CAC5E,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1B,CAAC;gBACF,MAAM,UAAU,GACd,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC5E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;oBACvB,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,CAAC,MAAM,GAAG,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACvB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YACrB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;YACxE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACpB,CAAC,UAAU,CAAC,IAAI,CACd,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,IAAI,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1F,CACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAC1B,eAAe,CAAC,eAAe,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA2C,eAAe,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAC1B,eAAe,CAAC,eAAe,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,eAAe,CAAC;AAElB;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,eAAe,CAAC,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, CodeMatters. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
5
|
+
* in compliance with the License. You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
10
|
+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
11
|
+
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
|
+
* the License.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { createHash } from "node:crypto";
|
|
16
|
+
import { lstatSync, readFileSync, readdirSync } from "node:fs";
|
|
17
|
+
import { join, relative, sep } from "node:path";
|
|
18
|
+
|
|
19
|
+
export const generationMarkerFile = ".spine-proto-generation.json";
|
|
20
|
+
|
|
21
|
+
function canonicalJson(value) {
|
|
22
|
+
if (Array.isArray(value)) return value.map(canonicalJson);
|
|
23
|
+
if (typeof value === "object" && value !== null)
|
|
24
|
+
return Object.fromEntries(
|
|
25
|
+
Object.entries(value)
|
|
26
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
27
|
+
.map(([key, nested]) => [key, canonicalJson(nested)]),
|
|
28
|
+
);
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function markerId(root) {
|
|
33
|
+
try {
|
|
34
|
+
const marker = JSON.parse(readFileSync(join(root, generationMarkerFile), "utf8"));
|
|
35
|
+
return typeof marker.generationId === "string" && marker.generationId.length > 0
|
|
36
|
+
? marker.generationId
|
|
37
|
+
: undefined;
|
|
38
|
+
} catch {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function treeContents(root) {
|
|
44
|
+
const files = [];
|
|
45
|
+
const pending = [[root, 0]];
|
|
46
|
+
let entries = 0;
|
|
47
|
+
while (pending.length > 0) {
|
|
48
|
+
const [directory, depth] = pending.pop();
|
|
49
|
+
if (depth > 64) throw new Error("generated TypeScript traversal exceeds bounded inventory");
|
|
50
|
+
for (const entry of readdirSync(directory, { withFileTypes: true })) {
|
|
51
|
+
entries += 1;
|
|
52
|
+
if (entries > 1_000)
|
|
53
|
+
throw new Error("generated TypeScript traversal exceeds bounded inventory");
|
|
54
|
+
const path = join(directory, entry.name);
|
|
55
|
+
if (lstatSync(path).isSymbolicLink())
|
|
56
|
+
throw new Error("generated TypeScript traversal must not contain symlinks");
|
|
57
|
+
if (entry.isDirectory()) pending.push([path, depth + 1]);
|
|
58
|
+
else if (entry.isFile() && entry.name !== generationMarkerFile)
|
|
59
|
+
files.push([relative(root, path).split(sep).join("/"), readFileSync(path, "utf8")]);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return files.sort(([left], [right]) => left.localeCompare(right));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Creates a stable ID from a generation manifest contract and complete generated output.
|
|
67
|
+
*
|
|
68
|
+
* @param {Readonly<Record<string, unknown>>} manifest Generation manifest contract.
|
|
69
|
+
* @param {string} root Generated-output root.
|
|
70
|
+
* @returns {string} Stable content-derived generation identifier.
|
|
71
|
+
*/
|
|
72
|
+
export function generationIdForContents(manifest, root) {
|
|
73
|
+
const contents = { ...manifest };
|
|
74
|
+
delete contents.generationId;
|
|
75
|
+
return createHash("sha256")
|
|
76
|
+
.update(JSON.stringify(canonicalJson(contents)))
|
|
77
|
+
.update("\n")
|
|
78
|
+
.update(JSON.stringify(treeContents(root)))
|
|
79
|
+
.digest("hex");
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export function reusableGenerationId(liveManifestPath, liveRoot, stagedManifest, stagedRoot) {
|
|
83
|
+
try {
|
|
84
|
+
const liveManifest = JSON.parse(readFileSync(liveManifestPath, "utf8"));
|
|
85
|
+
const { generationId: liveGenerationId, ...liveContents } = liveManifest;
|
|
86
|
+
const { generationId: stagedGenerationId, ...stagedContents } = stagedManifest;
|
|
87
|
+
const liveTree = treeContents(liveRoot);
|
|
88
|
+
const stagedTree = treeContents(stagedRoot);
|
|
89
|
+
if (
|
|
90
|
+
liveManifest.formatVersion !== 2 ||
|
|
91
|
+
typeof liveGenerationId !== "string" ||
|
|
92
|
+
liveGenerationId.length === 0 ||
|
|
93
|
+
markerId(liveRoot) !== liveGenerationId ||
|
|
94
|
+
markerId(stagedRoot) !== stagedGenerationId ||
|
|
95
|
+
JSON.stringify(canonicalJson(liveContents)) !==
|
|
96
|
+
JSON.stringify(canonicalJson(stagedContents)) ||
|
|
97
|
+
(liveTree.length > 0 && JSON.stringify(liveTree) !== JSON.stringify(stagedTree))
|
|
98
|
+
)
|
|
99
|
+
return undefined;
|
|
100
|
+
return liveTree.length === 0
|
|
101
|
+
? generationIdForContents(stagedManifest, stagedRoot)
|
|
102
|
+
: liveGenerationId;
|
|
103
|
+
} catch {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import type { SpawnSyncReturns } from "node:child_process";
|
|
2
|
+
import { type ManifestFileOperations } from "../io/atomic-manifest.js";
|
|
3
|
+
import type { ModelSourceView } from "./source-view.js";
|
|
4
|
+
/**
|
|
5
|
+
* Bounded seams used to test failure handling while retaining real Buf integration.
|
|
6
|
+
*/
|
|
7
|
+
export interface GenerationOperations {
|
|
8
|
+
/**
|
|
9
|
+
* Canonical live model root used only by the root transaction bootstrap.
|
|
10
|
+
*/
|
|
11
|
+
readonly livePackageRoot?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Executes Buf for the staged model sources.
|
|
14
|
+
*
|
|
15
|
+
* @param moduleRoot The temporary Buf module root.
|
|
16
|
+
* @param output The temporary generated-output directory.
|
|
17
|
+
* @param owned The package-relative Proto paths to generate.
|
|
18
|
+
* @param packageName The owning model package name.
|
|
19
|
+
* @param runner The optional subprocess runner.
|
|
20
|
+
*/
|
|
21
|
+
readonly runBuf?: (moduleRoot: string, output: string, owned: readonly string[], packageName: string, runner?: SubprocessRunner) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Executes interface companion generation after primary Buf generation succeeds.
|
|
24
|
+
*
|
|
25
|
+
* @param moduleRoot The temporary Buf module root.
|
|
26
|
+
* @param output The temporary generated-output directory.
|
|
27
|
+
* @param owned The package-relative Proto paths to generate.
|
|
28
|
+
* @param packageName The owning model package name.
|
|
29
|
+
* @param sourceView The bounded authored-source and staged-output compiler view.
|
|
30
|
+
* @param runner The optional subprocess runner.
|
|
31
|
+
*/
|
|
32
|
+
readonly runInterfacePhase?: (moduleRoot: string, output: string, owned: readonly string[], packageName: string, sourceView: ModelSourceView, runner?: SubprocessRunner) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Updates generated imports that belong to direct model dependencies.
|
|
35
|
+
*
|
|
36
|
+
* @param output The generated-output directory.
|
|
37
|
+
* @param owners The package that owns each Proto path.
|
|
38
|
+
* @param currentPackage The model package being generated.
|
|
39
|
+
*/
|
|
40
|
+
readonly rewriteImports?: (output: string, owners: Readonly<Record<string, {
|
|
41
|
+
readonly packageName: string;
|
|
42
|
+
readonly generatedExport: string;
|
|
43
|
+
}>>, currentPackage: string) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Writes the generated module descriptor.
|
|
46
|
+
*
|
|
47
|
+
* @param output The generated-output directory.
|
|
48
|
+
* @param exportName The generated module export name.
|
|
49
|
+
* @param packageName The owning model package name.
|
|
50
|
+
* @param dependencies The direct model-module dependencies.
|
|
51
|
+
*/
|
|
52
|
+
readonly writeModule?: (output: string, exportName: string, packageName: string, dependencies: readonly {
|
|
53
|
+
readonly name: string;
|
|
54
|
+
readonly moduleExport: string;
|
|
55
|
+
}[]) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Applies a filesystem rename during publication, backup, or rollback.
|
|
58
|
+
*
|
|
59
|
+
* @param from The current source path.
|
|
60
|
+
* @param to The destination path.
|
|
61
|
+
*/
|
|
62
|
+
readonly rename?: (from: string, to: string) => void;
|
|
63
|
+
/**
|
|
64
|
+
* Overrides manifest publication filesystem operations for tests.
|
|
65
|
+
*/
|
|
66
|
+
readonly manifestOperations?: Partial<ManifestFileOperations>;
|
|
67
|
+
/**
|
|
68
|
+
* Runs a subprocess for Buf generation or validation.
|
|
69
|
+
*/
|
|
70
|
+
readonly runProcess?: SubprocessRunner;
|
|
71
|
+
/**
|
|
72
|
+
* Overrides generation-claim filesystem operations for tests.
|
|
73
|
+
*/
|
|
74
|
+
readonly lockOperations?: Partial<GenerationLockOperations>;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Bounded lock seams for deterministic ownership and cleanup tests.
|
|
78
|
+
*/
|
|
79
|
+
export interface GenerationLockOperations {
|
|
80
|
+
/**
|
|
81
|
+
* Creates a lock file with its owner content.
|
|
82
|
+
*
|
|
83
|
+
* @param path The unique lock-file path.
|
|
84
|
+
* @param content The serialized owner metadata.
|
|
85
|
+
*/
|
|
86
|
+
readonly create: (path: string, content: string) => void;
|
|
87
|
+
/**
|
|
88
|
+
* Lists the entries in a package directory.
|
|
89
|
+
*
|
|
90
|
+
* @param directory The package directory to inspect.
|
|
91
|
+
* @returns The directory entry names.
|
|
92
|
+
*/
|
|
93
|
+
readonly list: (directory: string) => readonly string[];
|
|
94
|
+
/**
|
|
95
|
+
* Reads the content of a lock file.
|
|
96
|
+
*
|
|
97
|
+
* @param path The lock-file path.
|
|
98
|
+
* @returns The serialized owner metadata.
|
|
99
|
+
*/
|
|
100
|
+
readonly read: (path: string) => string;
|
|
101
|
+
/**
|
|
102
|
+
* Reads a regular lock through a no-follow descriptor with stable identity.
|
|
103
|
+
*
|
|
104
|
+
* @param path The lock-file path.
|
|
105
|
+
* @returns The owner content and opened-file identity.
|
|
106
|
+
*/
|
|
107
|
+
readonly snapshot?: (path: string) => ClaimSnapshot;
|
|
108
|
+
/**
|
|
109
|
+
* Inspects the kind of a lock-file entry.
|
|
110
|
+
*
|
|
111
|
+
* @param path The lock-file path.
|
|
112
|
+
* @returns Whether the entry is regular, symbolic, or another kind.
|
|
113
|
+
*/
|
|
114
|
+
readonly inspect: (path: string) => "regular" | "symlink" | "other";
|
|
115
|
+
/**
|
|
116
|
+
* Removes a lock file.
|
|
117
|
+
*
|
|
118
|
+
* @param path The lock-file path.
|
|
119
|
+
*/
|
|
120
|
+
readonly remove: (path: string) => void;
|
|
121
|
+
/**
|
|
122
|
+
* Updates a claim path by atomically moving it within its package directory.
|
|
123
|
+
*
|
|
124
|
+
* @param from The current claim path.
|
|
125
|
+
* @param to The same-directory quarantine path.
|
|
126
|
+
*/
|
|
127
|
+
readonly move?: (from: string, to: string) => void;
|
|
128
|
+
/**
|
|
129
|
+
* Determines whether a lock owner is still running.
|
|
130
|
+
*
|
|
131
|
+
* @param pid The candidate process identifier.
|
|
132
|
+
* @returns The liveness result for the candidate process.
|
|
133
|
+
*/
|
|
134
|
+
readonly liveness: (pid: number) => ClaimLiveness;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Result of a bounded generation-claim liveness probe.
|
|
138
|
+
*/
|
|
139
|
+
export type ClaimLiveness = "alive" | "dead" | "indeterminate";
|
|
140
|
+
/**
|
|
141
|
+
* Executes the packaged Buf executable in a synchronous subprocess.
|
|
142
|
+
*
|
|
143
|
+
* @param command The executable path.
|
|
144
|
+
* @param arguments_ The command-line arguments.
|
|
145
|
+
* @param options The working-directory, encoding, timeout, and buffer options.
|
|
146
|
+
* @returns The synchronous subprocess result.
|
|
147
|
+
*/
|
|
148
|
+
export type SubprocessRunner = (command: string, arguments_: readonly string[], options: {
|
|
149
|
+
readonly cwd: string;
|
|
150
|
+
readonly encoding: "utf8";
|
|
151
|
+
readonly timeout: number;
|
|
152
|
+
readonly maxBuffer: number;
|
|
153
|
+
}) => SpawnSyncReturns<string>;
|
|
154
|
+
/**
|
|
155
|
+
* Bounded seams for atomic application-registry publication failures.
|
|
156
|
+
*/
|
|
157
|
+
export interface CompositionOperations {
|
|
158
|
+
/**
|
|
159
|
+
* Overrides registry publication filesystem operations for tests.
|
|
160
|
+
*/
|
|
161
|
+
readonly registryOperations?: Partial<ManifestFileOperations>;
|
|
162
|
+
}
|
|
163
|
+
interface ClaimSnapshot {
|
|
164
|
+
readonly content: string;
|
|
165
|
+
readonly identity: string;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Generates and composes deterministic Protobuf package artifacts.
|
|
169
|
+
*/
|
|
170
|
+
export declare const ProtoGeneration: Readonly<{
|
|
171
|
+
/**
|
|
172
|
+
* Generates a model package's Protobuf-ES sources and module descriptor.
|
|
173
|
+
*
|
|
174
|
+
* @param packageRoot The root of the model package to generate.
|
|
175
|
+
* @param operations Optional bounded filesystem and process seams for tests.
|
|
176
|
+
*/
|
|
177
|
+
generate(packageRoot: string, operations?: GenerationOperations): void;
|
|
178
|
+
/**
|
|
179
|
+
* Determines the liveness of a generation-claim owner.
|
|
180
|
+
*
|
|
181
|
+
* @param pid The process identifier to probe.
|
|
182
|
+
* @param probe The optional signal-zero probe to run.
|
|
183
|
+
* @returns Whether the claim owner is alive, dead, or indeterminate.
|
|
184
|
+
*/
|
|
185
|
+
claimLiveness(pid: number, probe?: (candidate: number) => unknown): ClaimLiveness;
|
|
186
|
+
/**
|
|
187
|
+
* Composes an application's deterministic model registry.
|
|
188
|
+
*
|
|
189
|
+
* @param packageRoot The root of the application package to compose.
|
|
190
|
+
* @param operations Optional bounded manifest publication seams for tests.
|
|
191
|
+
*/
|
|
192
|
+
compose(packageRoot: string, operations?: CompositionOperations): void;
|
|
193
|
+
}>;
|
|
194
|
+
export {};
|
|
195
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generation/generator.ts"],"names":[],"mappings":"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"}
|