@sdd-method/sdd-cli 3.0.0 → 4.0.0

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 (126) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +4 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
  5. package/dist/lib/catalogue/aggregate.js +2 -0
  6. package/dist/lib/catalogue/aggregate.js.map +1 -1
  7. package/dist/lib/catalogue/build.d.ts +3 -1
  8. package/dist/lib/catalogue/build.d.ts.map +1 -1
  9. package/dist/lib/catalogue/build.js +33 -2
  10. package/dist/lib/catalogue/build.js.map +1 -1
  11. package/dist/lib/catalogue/builders/adr-governs.d.ts +4 -0
  12. package/dist/lib/catalogue/builders/adr-governs.d.ts.map +1 -0
  13. package/dist/lib/catalogue/builders/adr-governs.js +39 -0
  14. package/dist/lib/catalogue/builders/adr-governs.js.map +1 -0
  15. package/dist/lib/catalogue/builders/adrs.d.ts +2 -0
  16. package/dist/lib/catalogue/builders/adrs.d.ts.map +1 -1
  17. package/dist/lib/catalogue/builders/adrs.js +11 -0
  18. package/dist/lib/catalogue/builders/adrs.js.map +1 -1
  19. package/dist/lib/catalogue/builders/contract-revisions.d.ts +12 -0
  20. package/dist/lib/catalogue/builders/contract-revisions.d.ts.map +1 -0
  21. package/dist/lib/catalogue/builders/contract-revisions.js +126 -0
  22. package/dist/lib/catalogue/builders/contract-revisions.js.map +1 -0
  23. package/dist/lib/catalogue/builders/data-model.d.ts +73 -0
  24. package/dist/lib/catalogue/builders/data-model.d.ts.map +1 -0
  25. package/dist/lib/catalogue/builders/data-model.js +316 -0
  26. package/dist/lib/catalogue/builders/data-model.js.map +1 -0
  27. package/dist/lib/catalogue/builders/entities-mermaid.d.ts.map +1 -1
  28. package/dist/lib/catalogue/builders/entities-mermaid.js +18 -85
  29. package/dist/lib/catalogue/builders/entities-mermaid.js.map +1 -1
  30. package/dist/lib/catalogue/builders/integration-components.js +49 -5
  31. package/dist/lib/catalogue/builders/integration-components.js.map +1 -1
  32. package/dist/lib/catalogue/builders/quality-scores.d.ts.map +1 -1
  33. package/dist/lib/catalogue/builders/quality-scores.js +17 -0
  34. package/dist/lib/catalogue/builders/quality-scores.js.map +1 -1
  35. package/dist/lib/catalogue/builders/requirements.d.ts +7 -1
  36. package/dist/lib/catalogue/builders/requirements.d.ts.map +1 -1
  37. package/dist/lib/catalogue/builders/requirements.js +132 -23
  38. package/dist/lib/catalogue/builders/requirements.js.map +1 -1
  39. package/dist/lib/catalogue/canonical-schema.yaml +767 -17
  40. package/dist/lib/catalogue/retired-catalogues.d.ts +6 -0
  41. package/dist/lib/catalogue/retired-catalogues.d.ts.map +1 -0
  42. package/dist/lib/catalogue/retired-catalogues.js +25 -0
  43. package/dist/lib/catalogue/retired-catalogues.js.map +1 -0
  44. package/dist/lib/catalogue/rubric-coverage-map.yaml +90 -2
  45. package/dist/lib/catalogue/schema-compat.d.ts +1 -1
  46. package/dist/lib/catalogue/schema-compat.js +1 -1
  47. package/dist/lib/catalogue/schema-loader.d.ts +6 -0
  48. package/dist/lib/catalogue/schema-loader.d.ts.map +1 -1
  49. package/dist/lib/catalogue/schema-loader.js +3 -0
  50. package/dist/lib/catalogue/schema-loader.js.map +1 -1
  51. package/dist/lib/catalogue/staleness-verdicts.d.ts.map +1 -1
  52. package/dist/lib/catalogue/staleness-verdicts.js +75 -6
  53. package/dist/lib/catalogue/staleness-verdicts.js.map +1 -1
  54. package/dist/lib/metamodel/roundtrip-gate.d.ts.map +1 -1
  55. package/dist/lib/metamodel/roundtrip-gate.js +3 -0
  56. package/dist/lib/metamodel/roundtrip-gate.js.map +1 -1
  57. package/dist/lib/metamodel/schema-projection.d.ts +6 -0
  58. package/dist/lib/metamodel/schema-projection.d.ts.map +1 -1
  59. package/dist/lib/metamodel/schema-projection.js +27 -1
  60. package/dist/lib/metamodel/schema-projection.js.map +1 -1
  61. package/dist/lib/structure/apply.d.ts +8 -0
  62. package/dist/lib/structure/apply.d.ts.map +1 -0
  63. package/dist/lib/structure/apply.js +71 -0
  64. package/dist/lib/structure/apply.js.map +1 -0
  65. package/dist/lib/structure/archive.d.ts +21 -0
  66. package/dist/lib/structure/archive.d.ts.map +1 -0
  67. package/dist/lib/structure/archive.js +318 -0
  68. package/dist/lib/structure/archive.js.map +1 -0
  69. package/dist/lib/structure/catalogue.d.ts +33 -0
  70. package/dist/lib/structure/catalogue.d.ts.map +1 -0
  71. package/dist/lib/structure/catalogue.js +183 -0
  72. package/dist/lib/structure/catalogue.js.map +1 -0
  73. package/dist/lib/structure/compose.d.ts +30 -0
  74. package/dist/lib/structure/compose.d.ts.map +1 -0
  75. package/dist/lib/structure/compose.js +174 -0
  76. package/dist/lib/structure/compose.js.map +1 -0
  77. package/dist/lib/structure/effects.d.ts +16 -0
  78. package/dist/lib/structure/effects.d.ts.map +1 -0
  79. package/dist/lib/structure/effects.js +36 -0
  80. package/dist/lib/structure/effects.js.map +1 -0
  81. package/dist/lib/structure/extract.d.ts +19 -0
  82. package/dist/lib/structure/extract.d.ts.map +1 -0
  83. package/dist/lib/structure/extract.js +123 -0
  84. package/dist/lib/structure/extract.js.map +1 -0
  85. package/dist/lib/structure/model.d.ts +57 -0
  86. package/dist/lib/structure/model.d.ts.map +1 -0
  87. package/dist/lib/structure/model.js +212 -0
  88. package/dist/lib/structure/model.js.map +1 -0
  89. package/dist/lib/structure/render.d.ts +11 -0
  90. package/dist/lib/structure/render.d.ts.map +1 -0
  91. package/dist/lib/structure/render.js +242 -0
  92. package/dist/lib/structure/render.js.map +1 -0
  93. package/dist/lib/structure/view.d.ts +36 -0
  94. package/dist/lib/structure/view.d.ts.map +1 -0
  95. package/dist/lib/structure/view.js +301 -0
  96. package/dist/lib/structure/view.js.map +1 -0
  97. package/dist/lib/validate/agreement-evidence.d.ts +8 -2
  98. package/dist/lib/validate/agreement-evidence.d.ts.map +1 -1
  99. package/dist/lib/validate/agreement-evidence.js +20 -8
  100. package/dist/lib/validate/agreement-evidence.js.map +1 -1
  101. package/dist/lib/validate/behaviour-store.d.ts +5 -0
  102. package/dist/lib/validate/behaviour-store.d.ts.map +1 -1
  103. package/dist/lib/validate/behaviour-store.js +54 -13
  104. package/dist/lib/validate/behaviour-store.js.map +1 -1
  105. package/dist/lib/validate/dispatch.d.ts.map +1 -1
  106. package/dist/lib/validate/dispatch.js +7 -0
  107. package/dist/lib/validate/dispatch.js.map +1 -1
  108. package/dist/lib/validate/structural-model.d.ts +11 -0
  109. package/dist/lib/validate/structural-model.d.ts.map +1 -0
  110. package/dist/lib/validate/structural-model.js +265 -0
  111. package/dist/lib/validate/structural-model.js.map +1 -0
  112. package/dist/maintain-version.json +2 -2
  113. package/dist/verbs/change.d.ts +3 -0
  114. package/dist/verbs/change.d.ts.map +1 -0
  115. package/dist/verbs/change.js +15 -0
  116. package/dist/verbs/change.js.map +1 -0
  117. package/dist/verbs/structure.d.ts +10 -0
  118. package/dist/verbs/structure.d.ts.map +1 -0
  119. package/dist/verbs/structure.js +124 -0
  120. package/dist/verbs/structure.js.map +1 -0
  121. package/dist/verify-version.json +2 -2
  122. package/package.json +1 -1
  123. package/scripts/author-version.json +2 -2
  124. package/scripts/build-persona-package.mjs +5 -0
  125. package/scripts/maintain-version.json +2 -2
  126. package/scripts/verify-version.json +2 -2
@@ -0,0 +1,36 @@
1
+ import type { CanonicalSchema, CatalogueDef } from "../catalogue/schema-loader.js";
2
+ import { type Delta, type Element, type ModelFile } from "./model.js";
3
+ export declare const STRUCTURE = "structure";
4
+ /** catalogue -> id -> element. */
5
+ export type View = Map<string, Map<string, Element>>;
6
+ /** Built rows of a non-structure catalogue, for references into it: the referenced column's values, or null if unbuilt. */
7
+ export type BuiltLookup = (catalogue: string, column: string) => ReadonlySet<string> | null;
8
+ export declare function catalogueOf(schema: CanonicalSchema, name: string): CatalogueDef | undefined;
9
+ /** The model's elements as one view, reporting an id held twice. */
10
+ export declare function viewOf(files: readonly ModelFile[], problems: string[]): View;
11
+ export declare function revisionOf(e: Element): string;
12
+ /** The element's own shape against its catalogue: class, columns, required columns, types, vocabularies. */
13
+ export declare function checkElementShape(schema: CanonicalSchema, e: Element, where: string, problems: string[]): void;
14
+ export interface Reference {
15
+ readonly column: string;
16
+ readonly catalogue: string;
17
+ readonly targetColumn: string;
18
+ readonly value: string;
19
+ readonly structural: boolean;
20
+ }
21
+ /** The element's references: each non-external foreign key with a value. */
22
+ export declare function referencesOf(schema: CanonicalSchema, e: Element): Reference[];
23
+ /**
24
+ * The checks a view must satisfy on its own: every element's shape, references resolved within the view (or, into a
25
+ * catalogue of another class, against its built rows), no cycle through a self-reference, natural keys unique, and
26
+ * domain invariants naming their entity's own attributes and relationships.
27
+ */
28
+ export declare function validateView(schema: CanonicalSchema, view: View, built: BuiltLookup, problems: string[], unresolved: Set<string>): void;
29
+ /**
30
+ * One change's deltas against the current view (M-ADR 0230 §4.4): each element's shape, ADDED ids new, MODIFIED and
31
+ * REMOVED ids held by the delta's partition, and a base revision for every element it modifies, removes or reads.
32
+ * A base revision that no longer matches the current element is reported as moved: the change is revalidated.
33
+ * `addedElsewhere` holds the elements other open changes add, for a reference into one of them.
34
+ */
35
+ export declare function validateDeltas(schema: CanonicalSchema, current: View, deltas: readonly Delta[], addedElsewhere: ReadonlyMap<string, string>, problems: string[]): void;
36
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/lib/structure/view.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAwB,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,YAAY,CAAC;AAExG,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,kCAAkC;AAClC,MAAM,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAErD,2HAA2H;AAC3H,MAAM,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAE5F,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE3F;AAED,oEAAoE;AACpE,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAe5E;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE7C;AAkBD,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAiC9G;AAUD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,CAY7E;AAWD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAuEvI;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,IAAI,EACb,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3C,QAAQ,EAAE,MAAM,EAAE,GACjB,IAAI,CAqEN"}
@@ -0,0 +1,301 @@
1
+ import { elementKey, revision } from "./model.js";
2
+ export const STRUCTURE = "structure";
3
+ export function catalogueOf(schema, name) {
4
+ return schema.catalogues.find((c) => c.name === name);
5
+ }
6
+ /** The model's elements as one view, reporting an id held twice. */
7
+ export function viewOf(files, problems) {
8
+ const view = new Map();
9
+ for (const f of files) {
10
+ for (const e of f.elements) {
11
+ const byId = view.get(e.catalogue) ?? new Map();
12
+ const prior = byId.get(e.id);
13
+ if (prior) {
14
+ problems.push(`${e.file}: ${elementKey(e.catalogue, e.id)} is also in ${prior.file}; an element is owned by one partition, and an id is held once`);
15
+ continue;
16
+ }
17
+ byId.set(e.id, e);
18
+ view.set(e.catalogue, byId);
19
+ }
20
+ }
21
+ return view;
22
+ }
23
+ export function revisionOf(e) {
24
+ return revision(e.catalogue, e.id, e.columns);
25
+ }
26
+ function typeOk(type, v) {
27
+ switch (type) {
28
+ case "int":
29
+ case "integer":
30
+ return typeof v === "number" && Number.isInteger(v);
31
+ case "number":
32
+ return typeof v === "number";
33
+ case "boolean":
34
+ return typeof v === "boolean";
35
+ case "date":
36
+ return typeof v === "string" && /^\d{4}-\d{2}-\d{2}$/.test(v);
37
+ default:
38
+ return typeof v === "string";
39
+ }
40
+ }
41
+ /** The element's own shape against its catalogue: class, columns, required columns, types, vocabularies. */
42
+ export function checkElementShape(schema, e, where, problems) {
43
+ const key = elementKey(e.catalogue, e.id);
44
+ const cat = catalogueOf(schema, e.catalogue);
45
+ if (!cat) {
46
+ problems.push(`${where}: ${key}: the metamodel declares no catalogue ${e.catalogue}`);
47
+ return;
48
+ }
49
+ if (cat.sourceOfTruth !== STRUCTURE) {
50
+ problems.push(`${where}: ${key}: ${e.catalogue} is of class ${cat.sourceOfTruth ?? "(none)"}, not structure; it is authored elsewhere`);
51
+ return;
52
+ }
53
+ for (const [col, v] of Object.entries(e.columns)) {
54
+ const def = cat.columns.find((c) => c.name === col);
55
+ if (!def) {
56
+ problems.push(`${where}: ${key}: ${e.catalogue} has no column ${col}`);
57
+ continue;
58
+ }
59
+ if (def.sourceOfTruth !== STRUCTURE) {
60
+ problems.push(`${where}: ${key}: ${e.catalogue}.${col} is of class ${def.sourceOfTruth ?? "(none)"}, not structure; it is never written in the model`);
61
+ continue;
62
+ }
63
+ if (v === "")
64
+ problems.push(`${where}: ${key}: ${col} is empty; omit an empty value`);
65
+ else if (!typeOk(def.type, v))
66
+ problems.push(`${where}: ${key}: ${col} must be of type ${def.type}`);
67
+ const en = cat.columnEnums[col];
68
+ if (en !== undefined && typeof v === "string" && v !== "") {
69
+ const values = schema.enums[en.replace(/^enums\./, "")]?.values.map((x) => x.value) ?? [];
70
+ if (!values.includes(v))
71
+ problems.push(`${where}: ${key}: ${col} ${JSON.stringify(v)} is not a value of ${en}`);
72
+ }
73
+ }
74
+ for (const def of cat.columns) {
75
+ if (def.name === cat.primaryKey || def.nullable || def.sourceOfTruth !== STRUCTURE)
76
+ continue;
77
+ if (e.columns[def.name] === undefined)
78
+ problems.push(`${where}: ${key}: required column ${def.name} is missing`);
79
+ }
80
+ }
81
+ function find(view, catalogue, column, value) {
82
+ const byId = view.get(catalogue);
83
+ if (!byId)
84
+ return undefined;
85
+ if (column === "id")
86
+ return byId.get(value);
87
+ for (const e of byId.values())
88
+ if (String(e.columns[column] ?? "") === value)
89
+ return e;
90
+ return undefined;
91
+ }
92
+ /** The element's references: each non-external foreign key with a value. */
93
+ export function referencesOf(schema, e) {
94
+ const cat = catalogueOf(schema, e.catalogue);
95
+ if (!cat)
96
+ return [];
97
+ const out = [];
98
+ for (const fk of cat.foreignKeys) {
99
+ if (fk.external)
100
+ continue;
101
+ const v = e.columns[fk.column];
102
+ if (v === undefined || v === "")
103
+ continue;
104
+ const [target, targetColumn] = fk.references.split(".");
105
+ out.push({ column: fk.column, catalogue: target, targetColumn: targetColumn ?? "id", value: String(v), structural: catalogueOf(schema, target)?.sourceOfTruth === STRUCTURE });
106
+ }
107
+ return out;
108
+ }
109
+ /** The natural key's value for an element, or null when the catalogue declares none or the element lacks a part. */
110
+ function naturalKey(cat, e) {
111
+ const nk = cat.naturalKey;
112
+ if (!nk || nk.length === 0)
113
+ return null;
114
+ const parts = nk.map((c) => (c === "id" ? e.id : e.columns[c]));
115
+ if (parts.some((p) => p === undefined || p === ""))
116
+ return null;
117
+ return parts.map(String).join("\u0000");
118
+ }
119
+ /**
120
+ * The checks a view must satisfy on its own: every element's shape, references resolved within the view (or, into a
121
+ * catalogue of another class, against its built rows), no cycle through a self-reference, natural keys unique, and
122
+ * domain invariants naming their entity's own attributes and relationships.
123
+ */
124
+ export function validateView(schema, view, built, problems, unresolved) {
125
+ for (const [catalogue, byId] of view) {
126
+ const cat = catalogueOf(schema, catalogue);
127
+ for (const e of byId.values()) {
128
+ const shape = [];
129
+ checkElementShape(schema, e, e.file, shape);
130
+ problems.push(...shape);
131
+ if (!cat || cat.sourceOfTruth !== STRUCTURE)
132
+ continue;
133
+ for (const r of referencesOf(schema, e)) {
134
+ if (r.structural) {
135
+ if (!find(view, r.catalogue, r.targetColumn, r.value))
136
+ problems.push(`${e.file}: ${elementKey(catalogue, e.id)}: ${r.column} ${JSON.stringify(r.value)} names no ${r.catalogue} element in this view (${elementKey(r.catalogue, r.value)})`);
137
+ }
138
+ else {
139
+ const rows = built(r.catalogue, r.targetColumn);
140
+ if (rows === null)
141
+ unresolved.add(r.catalogue);
142
+ else if (!rows.has(r.value))
143
+ problems.push(`${e.file}: ${elementKey(catalogue, e.id)}: ${r.column} ${JSON.stringify(r.value)} names no row of ${r.catalogue} as built`);
144
+ }
145
+ }
146
+ }
147
+ if (!cat || cat.sourceOfTruth !== STRUCTURE)
148
+ continue;
149
+ // Hierarchies through a self-reference stay acyclic.
150
+ for (const fk of cat.foreignKeys.filter((f) => f.references.split(".")[0] === catalogue && !f.external)) {
151
+ const reported = new Set();
152
+ for (const start of byId.values()) {
153
+ const path = [];
154
+ const onPath = new Set();
155
+ let cur = start;
156
+ while (cur && !onPath.has(cur.id)) {
157
+ onPath.add(cur.id);
158
+ path.push(cur.id);
159
+ const next = cur.columns[fk.column];
160
+ cur = next === undefined || next === "" ? undefined : byId.get(String(next));
161
+ }
162
+ if (cur && onPath.has(cur.id)) {
163
+ const cycle = path.slice(path.indexOf(cur.id));
164
+ const sig = [...cycle].sort().join(",");
165
+ if (!reported.has(sig)) {
166
+ reported.add(sig);
167
+ problems.push(`${start.file}: ${catalogue}.${fk.column} forms a cycle: ${[...cycle, cur.id].map((id) => elementKey(catalogue, id)).join(" -> ")}`);
168
+ }
169
+ }
170
+ }
171
+ }
172
+ // Natural keys are unique.
173
+ const seen = new Map();
174
+ for (const e of byId.values()) {
175
+ const k = naturalKey(cat, e);
176
+ if (k === null)
177
+ continue;
178
+ const prior = seen.get(k);
179
+ if (prior)
180
+ problems.push(`${e.file}: ${elementKey(catalogue, e.id)} and ${elementKey(catalogue, prior.id)} share the natural key (${cat.naturalKey.join(", ")}) ${JSON.stringify(k.split("\u0000").join(", "))}`);
181
+ else
182
+ seen.set(k, e);
183
+ }
184
+ }
185
+ // Domain invariants name their own entity's attributes and relationships.
186
+ for (const inv of view.get("domain_invariants")?.values() ?? []) {
187
+ const key = elementKey("domain_invariants", inv.id);
188
+ const entity = String(inv.columns["entity_id"] ?? "");
189
+ const kind = String(inv.columns["kind"] ?? "");
190
+ const attrs = String(inv.columns["attribute_ids"] ?? "").split(";").map((s) => s.trim()).filter(Boolean);
191
+ const rel = String(inv.columns["relationship_id"] ?? "");
192
+ if ((kind === "unique" || kind === "required") && attrs.length === 0)
193
+ problems.push(`${inv.file}: ${key}: a ${kind} invariant names its attributes (attribute_ids)`);
194
+ if (kind === "cardinality" && rel === "")
195
+ problems.push(`${inv.file}: ${key}: a cardinality invariant names its relationship (relationship_id)`);
196
+ for (const a of attrs) {
197
+ const at = view.get("entity_attributes")?.get(a);
198
+ if (!at)
199
+ problems.push(`${inv.file}: ${key}: attribute ${elementKey("entity_attributes", a)} is not in this view`);
200
+ else if (String(at.columns["entity_id"] ?? "") !== entity)
201
+ problems.push(`${inv.file}: ${key}: attribute ${elementKey("entity_attributes", a)} belongs to ${String(at.columns["entity_id"] ?? "")}, not ${entity}`);
202
+ }
203
+ if (rel !== "") {
204
+ const r = view.get("entity_relationships")?.get(rel);
205
+ if (r && String(r.columns["from_entity_id"] ?? "") !== entity)
206
+ problems.push(`${inv.file}: ${key}: relationship ${elementKey("entity_relationships", rel)} is ${String(r.columns["from_entity_id"] ?? "")}'s, not ${entity}'s`);
207
+ }
208
+ }
209
+ }
210
+ /**
211
+ * One change's deltas against the current view (M-ADR 0230 §4.4): each element's shape, ADDED ids new, MODIFIED and
212
+ * REMOVED ids held by the delta's partition, and a base revision for every element it modifies, removes or reads.
213
+ * A base revision that no longer matches the current element is reported as moved: the change is revalidated.
214
+ * `addedElsewhere` holds the elements other open changes add, for a reference into one of them.
215
+ */
216
+ export function validateDeltas(schema, current, deltas, addedElsewhere, problems) {
217
+ const ownAdded = new Set();
218
+ const dependsOn = new Set();
219
+ for (const d of deltas) {
220
+ for (const e of d.added)
221
+ ownAdded.add(elementKey(e.catalogue, e.id));
222
+ for (const c of d.dependsOn)
223
+ dependsOn.add(c);
224
+ }
225
+ const seenWrite = new Map();
226
+ for (const d of deltas) {
227
+ const write = (key, op) => {
228
+ const prior = seenWrite.get(key);
229
+ if (prior)
230
+ problems.push(`${d.file}: ${op} ${key}, which this change also writes in ${prior}`);
231
+ else
232
+ seenWrite.set(key, `${d.file} (${op})`);
233
+ };
234
+ const needBase = (key, why) => {
235
+ const b = d.base.get(key);
236
+ if (b === undefined) {
237
+ problems.push(`${d.file}: no base revision for ${key}, which it ${why}`);
238
+ return;
239
+ }
240
+ const [catalogue, ...rest] = key.split("/");
241
+ const cur = current.get(catalogue)?.get(rest.join("/"));
242
+ if (cur && revisionOf(cur) !== b)
243
+ problems.push(`${d.file}: base revision of ${key} has moved since the change was written (${b.slice(0, 19)}… now ${revisionOf(cur).slice(0, 19)}…): revalidate the change`);
244
+ };
245
+ for (const e of d.added) {
246
+ const key = elementKey(e.catalogue, e.id);
247
+ checkElementShape(schema, e, `${d.file}: ADDED`, problems);
248
+ if (current.get(e.catalogue)?.has(e.id))
249
+ problems.push(`${d.file}: ADDED ${key}, which the model already holds; an added id is new`);
250
+ write(key, "ADDED");
251
+ }
252
+ for (const e of d.modified) {
253
+ const key = elementKey(e.catalogue, e.id);
254
+ checkElementShape(schema, e, `${d.file}: MODIFIED`, problems);
255
+ const cur = current.get(e.catalogue)?.get(e.id);
256
+ if (!cur)
257
+ problems.push(`${d.file}: MODIFIED ${key}, which the model does not hold`);
258
+ else {
259
+ if (cur.partition !== d.partition)
260
+ problems.push(`${d.file}: MODIFIED ${key}, which partition ${cur.partition} owns, not ${d.partition}`);
261
+ needBase(key, "modifies");
262
+ }
263
+ write(key, "MODIFIED");
264
+ }
265
+ for (const r of d.removed) {
266
+ const key = elementKey(r.catalogue, r.id);
267
+ const cur = current.get(r.catalogue)?.get(r.id);
268
+ if (!cur)
269
+ problems.push(`${d.file}: REMOVED ${key}, which the model does not hold`);
270
+ else {
271
+ if (cur.partition !== d.partition)
272
+ problems.push(`${d.file}: REMOVED ${key}, which partition ${cur.partition} owns, not ${d.partition}`);
273
+ needBase(key, "removes");
274
+ }
275
+ write(key, "REMOVED");
276
+ }
277
+ // Reads: every element an added or modified element references.
278
+ for (const e of [...d.added, ...d.modified]) {
279
+ for (const r of referencesOf(schema, e)) {
280
+ if (!r.structural)
281
+ continue;
282
+ const target = r.targetColumn === "id" ? r.value : find(current, r.catalogue, r.targetColumn, r.value)?.id;
283
+ const key = elementKey(r.catalogue, target ?? r.value);
284
+ if (target !== undefined && current.get(r.catalogue)?.has(target)) {
285
+ needBase(key, `reads (${elementKey(e.catalogue, e.id)}.${r.column})`);
286
+ continue;
287
+ }
288
+ if (ownAdded.has(key))
289
+ continue;
290
+ const by = addedElsewhere.get(key);
291
+ if (by !== undefined && dependsOn.has(by))
292
+ continue;
293
+ if (by !== undefined)
294
+ problems.push(`${d.file}: ${elementKey(e.catalogue, e.id)}.${r.column} names ${key}, which open change ${by} adds; declare it in depends_on`);
295
+ else
296
+ problems.push(`${d.file}: ${elementKey(e.catalogue, e.id)}.${r.column} names ${key}, which is in neither the model nor an open change`);
297
+ }
298
+ }
299
+ }
300
+ }
301
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/lib/structure/view.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,17 @@
1
1
  /** The files under a change directory that agreement binds, relative to the change directory. */
2
2
  export declare function boundFile(rel: string): boolean;
3
+ /**
4
+ * A change's structural artifact (M-ADR 0230 §4.4, Proposed): a partition delta or the no-op claim, both agreed
5
+ * content, so a delta's base revisions are pinned with it. The effect record (structure/applied.yaml) is written by
6
+ * the archive, after agreement, and is not.
7
+ */
8
+ export declare function structuralFile(rel: string): boolean;
3
9
  /** A bound file's content as agreement compares it: all of it, with only the fields execution fills in masked. */
4
10
  export declare function normaliseBound(rel: string, text: string): string;
5
11
  /**
6
12
  * The test plan as agreed. Masked, because execution fills them in: the last two cells (Before and After) of each
7
- * row of the scenario table, the whole Ledger section, and the last two cells (Killed by and Result) of each row of
8
- * the Mutants table. Everything else, the stand-ins and any strategy or limitation stated, stays bound.
13
+ * row of the scenario table, and the whole Ledger and Mutants sections. Everything else, the stand-ins and any
14
+ * strategy or limitation stated, stays bound.
9
15
  */
10
16
  export declare function normaliseTestPlan(text: string): string;
11
17
  /** A tasks file's repository groups (`## <n>. <repository>`) and the requirements each says it implements. */
@@ -1 +1 @@
1
- {"version":3,"file":"agreement-evidence.d.ts","sourceRoot":"","sources":["../../../src/lib/validate/agreement-evidence.ts"],"names":[],"mappings":"AAaA,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,kHAAkH;AAClH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBtD;AAED,8GAA8G;AAC9G,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAkBvF;AAED,+CAA+C;AAC/C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAKxE;AAED,wOAAwO;AACxO,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAIxD;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAIrD;AAED,kHAAkH;AAClH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY1E;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmB5D;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASzE;AAED,4IAA4I;AAC5I,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAUtI;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhE;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,iBAAS,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI1C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,SAAW,GAAG,MAAM,EAAE,CAYhG;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"agreement-evidence.d.ts","sourceRoot":"","sources":["../../../src/lib/validate/agreement-evidence.ts"],"names":[],"mappings":"AAcA,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,kHAAkH;AAClH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBtD;AAED,8GAA8G;AAC9G,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAkBvF;AAED,+CAA+C;AAC/C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAKxE;AAED,wOAAwO;AACxO,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAIxD;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAIrD;AAED,kHAAkH;AAClH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY1E;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmB5D;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASzE;AAED,4IAA4I;AAC5I,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAUtI;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhE;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,iBAAS,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI1C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,SAAW,GAAG,MAAM,EAAE,CAYhG;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,8 +1,9 @@
1
1
  // What an agreement binds and what a verdict must show (M-ADR 0222 §4.6, M-ADR 0223 §4.4-§4.6).
2
2
  // Pure text helpers; behaviour-store.ts runs them against git.
3
3
  //
4
- // agreed content the change's proposal, deltas, Gate 0, design, tasks (checkboxes ignored) and the test plan's
5
- // scenario-to-test rows (its Before and After cells ignored) are what was approved. Each is compared
4
+ // agreed content the change's proposal, deltas, Gate 0, design, tasks (checkboxes ignored), the test plan's
5
+ // scenario-to-test rows (its Before and After cells ignored) and its structural deltas with their
6
+ // base revisions (M-ADR 0230 §4.4, Proposed; report only until it is accepted) are what was approved. Each is compared
6
7
  // with its state at the record's pinned commit: the latest amendment's commit, else sdd.commit.
7
8
  // requirement a requirement's block in a spec: its heading to the next requirement or section heading. The
8
9
  // stale check compares the blocks a change targets, not the whole file.
@@ -12,7 +13,15 @@
12
13
  // verdict line verdict.md's own verdict: `Verdict: PASS|FAIL` or a leading `**PASS**`/`**FAIL**`.
13
14
  /** The files under a change directory that agreement binds, relative to the change directory. */
14
15
  export function boundFile(rel) {
15
- return /^(proposal|design|gate-0|tasks|test-plan)\.md$/.test(rel) || /^specs\/.+\/spec\.md$/.test(rel);
16
+ return /^(proposal|design|gate-0|tasks|test-plan)\.md$/.test(rel) || /^specs\/.+\/spec\.md$/.test(rel) || structuralFile(rel);
17
+ }
18
+ /**
19
+ * A change's structural artifact (M-ADR 0230 §4.4, Proposed): a partition delta or the no-op claim, both agreed
20
+ * content, so a delta's base revisions are pinned with it. The effect record (structure/applied.yaml) is written by
21
+ * the archive, after agreement, and is not.
22
+ */
23
+ export function structuralFile(rel) {
24
+ return /^structure\/[^/]+\.yaml$/.test(rel) && rel !== "structure/applied.yaml";
16
25
  }
17
26
  /** A bound file's content as agreement compares it: all of it, with only the fields execution fills in masked. */
18
27
  export function normaliseBound(rel, text) {
@@ -24,8 +33,8 @@ export function normaliseBound(rel, text) {
24
33
  }
25
34
  /**
26
35
  * The test plan as agreed. Masked, because execution fills them in: the last two cells (Before and After) of each
27
- * row of the scenario table, the whole Ledger section, and the last two cells (Killed by and Result) of each row of
28
- * the Mutants table. Everything else, the stand-ins and any strategy or limitation stated, stays bound.
36
+ * row of the scenario table, and the whole Ledger and Mutants sections. Everything else, the stand-ins and any
37
+ * strategy or limitation stated, stays bound.
29
38
  */
30
39
  export function normaliseTestPlan(text) {
31
40
  const out = [];
@@ -34,12 +43,15 @@ export function normaliseTestPlan(text) {
34
43
  const h = /^##\s+(.+?)\s*$/.exec(line);
35
44
  if (h) {
36
45
  section = h[1].toLowerCase();
37
- out.push(line);
46
+ if (section !== "mutants")
47
+ out.push(line);
38
48
  continue;
39
49
  }
40
- if (section === "ledger")
50
+ // The ledger and the mutants are what apply records: the mutants are written against guards that exist only once
51
+ // the change is applied, and the judge writes its own for any guard they miss (M-ADR 0228 §4.1, Proposed).
52
+ if (section === "ledger" || section === "mutants")
41
53
  continue;
42
- if ((section === "" || section === "mutants") && /^\s*\|/.test(line)) {
54
+ if (section === "" && /^\s*\|/.test(line)) {
43
55
  const cells = line.trim().replace(/^\||\|$/g, "").split("|").map((c) => c.trim());
44
56
  out.push(cells.slice(0, Math.max(0, cells.length - 2)).join(" | "));
45
57
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"agreement-evidence.js","sourceRoot":"","sources":["../../../src/lib/validate/agreement-evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agreement-evidence.js","sourceRoot":"","sources":["../../../src/lib/validate/agreement-evidence.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,+DAA+D;AAC/D,EAAE;AACF,gHAAgH;AAChH,qHAAqH;AACrH,0IAA0I;AAC1I,mHAAmH;AACnH,kHAAkH;AAClH,2FAA2F;AAC3F,kHAAkH;AAClH,wHAAwH;AACxH,0EAA0E;AAC1E,wGAAwG;AAExG,iGAAiG;AACjG,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,gDAAgD,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;AAChI,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,wBAAwB,CAAC;AAClF,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,IAAY;IACtD,IAAI,GAAG,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACjG,IAAI,GAAG,KAAK,cAAc;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC;YACN,OAAO,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;YAC9B,IAAI,OAAO,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,iHAAiH;QACjH,2GAA2G;QAC3G,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS;QAC5D,IAAI,OAAO,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAClF,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACpE,SAAS;QACX,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAClC,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,GAAG,GAAkD,EAAE,CAAC;IAC9D,IAAI,OAAO,GAAkD,IAAI,CAAC;IAClE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,oDAAoD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,EAAE,CAAC;YACN,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,OAAO,IAAI,CAAC;YAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,CAAqB,EAAE,CAAS;IAC7D,MAAM,CAAC,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChH,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE;YAAE,OAAO,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wOAAwO;AACxO,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3I,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzG,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAY;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,2BAA2B,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxI,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;YACrE,GAAG,GAAG,CAAC,CAAC;YACR,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACtD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,GAAG,GAAa,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,KAAK,KAAK,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,CAAC;YACN,KAAK,EAAE,CAAC;YACR,KAAK,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YACd,GAAG,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,IAAY;IACxD,IAAI,EAAE,GAAkB,IAAI,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,yDAAyD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC;YAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;aACb,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,EAAE,GAAG,IAAI,CAAC;QACvC,IAAI,IAAI,MAAM,CAAC,2BAA2B,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;IACtH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4IAA4I;AAC5I,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,MAAqB,EAAE,WAAmB,EAAE,QAAgB;IACtG,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,EAAE,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7E,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,CAAC,GAAG,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/G,OAAQ,CAAC,EAAE,CAAC,CAAC,CAAiC,IAAI,IAAI,CAAC;AACzD,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS;IAC7C,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAYD,SAAS,OAAO,CAAC,CAAU;IACzB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAY,EAAE,KAAa,EAAE,YAAY,GAAG,QAAQ;IACpF,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,CAAU,EAAE,CAAC;QACzE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAK,CAAC,CAAC,CAAC,CAAY,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAClC,IAAI,EAAE,KAAK,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;IACvI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAmB,CAAC,CAAC;IAC5J,IAAI,MAAM,KAAK,MAAM,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,KAAK,IAAI,YAAY,KAAK,WAAW,IAAI,YAAY,KAAK,YAAY;QAAE,GAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE,8DAA8D,CAAC,CAAC;IACtO,OAAO,GAAG,CAAC;AACb,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -32,6 +32,11 @@ interface AgreementRecord {
32
32
  implements: string[];
33
33
  }>;
34
34
  conditions: Condition[];
35
+ /** Repositories that no longer implement a requirement the change modifies (record 1.2.0, M-ADR 0230 §4.7, Proposed). */
36
+ noLongerImplements: Array<{
37
+ repo: string;
38
+ requirement: string;
39
+ }>;
35
40
  }
36
41
  /** Read and shape-check one agreement record. Returns the record, or the problems found. */
37
42
  export declare function parseAgreementRecord(file: string, text: string): {
@@ -1 +1 @@
1
- {"version":3,"file":"behaviour-store.d.ts","sourceRoot":"","sources":["../../../src/lib/validate/behaviour-store.ts"],"names":[],"mappings":"AAsEA,OAAO,EAAgL,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKvO,0GAA0G;AAC1G,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,6DAA6D;AAC7D,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAkD,CAAC;AAE7G,eAAO,MAAM,SAAS,aAAa,CAAC;AACpC,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAQhD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChI,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1D,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AA2BD,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA0EjH;AAqKD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CA0c9G;AAyFD,0GAA0G;AAC1G,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAgFpF"}
1
+ {"version":3,"file":"behaviour-store.d.ts","sourceRoot":"","sources":["../../../src/lib/validate/behaviour-store.ts"],"names":[],"mappings":"AAuEA,OAAO,EAAgM,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMvP,0GAA0G;AAC1G,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,6DAA6D;AAC7D,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAkD,CAAC;AAE7G,eAAO,MAAM,SAAS,aAAa,CAAC;AACpC,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAQhD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChI,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1D,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,yHAAyH;IACzH,kBAAkB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AA2BD,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAqFjH;AA8KD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAsd9G;AAyFD,0GAA0G;AAC1G,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAgFpF"}