@sdd-method/sdd-cli 1.20.1 → 1.22.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.
- package/dist/lib/catalogue/aggregate.d.ts +24 -0
- package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
- package/dist/lib/catalogue/aggregate.js +100 -4
- package/dist/lib/catalogue/aggregate.js.map +1 -1
- package/dist/lib/catalogue/build.d.ts.map +1 -1
- package/dist/lib/catalogue/build.js +29 -0
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/capabilities.d.ts +12 -0
- package/dist/lib/catalogue/builders/capabilities.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/capabilities.js +85 -6
- package/dist/lib/catalogue/builders/capabilities.js.map +1 -1
- package/dist/lib/catalogue/builders/capability-edges.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/capability-edges.js +16 -1
- package/dist/lib/catalogue/builders/capability-edges.js.map +1 -1
- package/dist/lib/catalogue/builders/capability-spec.d.ts +14 -0
- package/dist/lib/catalogue/builders/capability-spec.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/capability-spec.js +8 -5
- package/dist/lib/catalogue/builders/capability-spec.js.map +1 -1
- package/dist/lib/catalogue/builders/feature-grounding.d.ts +8 -0
- package/dist/lib/catalogue/builders/feature-grounding.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/feature-grounding.js +6 -5
- package/dist/lib/catalogue/builders/feature-grounding.js.map +1 -1
- package/dist/lib/catalogue/canonical-schema.yaml +3084 -2324
- package/dist/lib/catalogue/ddl-generator.d.ts.map +1 -1
- package/dist/lib/catalogue/ddl-generator.js +22 -4
- package/dist/lib/catalogue/ddl-generator.js.map +1 -1
- package/dist/lib/catalogue/feature-repo-zero-resolution-summary.d.ts +20 -0
- package/dist/lib/catalogue/feature-repo-zero-resolution-summary.d.ts.map +1 -0
- package/dist/lib/catalogue/feature-repo-zero-resolution-summary.js +31 -0
- package/dist/lib/catalogue/feature-repo-zero-resolution-summary.js.map +1 -0
- package/dist/lib/catalogue/fk-validator.d.ts +20 -1
- package/dist/lib/catalogue/fk-validator.d.ts.map +1 -1
- package/dist/lib/catalogue/fk-validator.js +33 -3
- package/dist/lib/catalogue/fk-validator.js.map +1 -1
- package/dist/lib/catalogue/graph-projection.d.ts.map +1 -1
- package/dist/lib/catalogue/graph-projection.js +8 -1
- package/dist/lib/catalogue/graph-projection.js.map +1 -1
- package/dist/lib/catalogue/graph-run.d.ts.map +1 -1
- package/dist/lib/catalogue/graph-run.js +2 -1
- package/dist/lib/catalogue/graph-run.js.map +1 -1
- package/dist/lib/catalogue/population-checks.d.ts +45 -0
- package/dist/lib/catalogue/population-checks.d.ts.map +1 -0
- package/dist/lib/catalogue/population-checks.js +86 -0
- package/dist/lib/catalogue/population-checks.js.map +1 -0
- package/dist/lib/catalogue/rubric-coverage-map.yaml +507 -187
- package/dist/lib/catalogue/traceability-loader.d.ts +13 -0
- package/dist/lib/catalogue/traceability-loader.d.ts.map +1 -1
- package/dist/lib/catalogue/traceability-loader.js +12 -0
- package/dist/lib/catalogue/traceability-loader.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/ddl-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EACV,eAAe,EAEf,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ddl-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/ddl-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EACV,eAAe,EAEf,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAa7D,wEAAwE;AACxE,wBAAgB,OAAO,CACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,MAAM,CAQR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,aAAa,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAMT;AAeD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAO3E;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,mBAAwB,GAChC,SAAS,eAAe,EAAE,CAsG5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,mBAAwB,GAChC,SAAS,eAAe,EAAE,CA6B5B"}
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
* binding to an unknown enum throws at generation time — loud, never a
|
|
31
31
|
* silent fallback (the known*Ids.has() lesson).
|
|
32
32
|
*/
|
|
33
|
+
import { PLATFORM_STAMP_COLUMN, isPlatformScopedFk } from "./fk-validator.js";
|
|
33
34
|
/** Closed map from schema column types to engine column types. */
|
|
34
35
|
const TYPE_MAP = {
|
|
35
36
|
string: "VARCHAR",
|
|
@@ -88,8 +89,9 @@ export function generateTableDdl(schema) {
|
|
|
88
89
|
export function generateConstraintQueries(schema, options = {}) {
|
|
89
90
|
const catalogueNames = new Set(schema.catalogues.map((c) => c.name));
|
|
90
91
|
const queries = [];
|
|
92
|
+
const catByName = new Map(schema.catalogues.map((c) => [c.name, c]));
|
|
91
93
|
for (const cat of schema.catalogues) {
|
|
92
|
-
queries.push(pkQuery(cat));
|
|
94
|
+
queries.push(pkQuery(cat, options));
|
|
93
95
|
for (const fk of cat.foreignKeys) {
|
|
94
96
|
const [targetCat, targetCol] = fk.references.split(".");
|
|
95
97
|
if (!targetCat || !targetCol) {
|
|
@@ -118,8 +120,15 @@ export function generateConstraintQueries(schema, options = {}) {
|
|
|
118
120
|
clauses.push(`(t.${col} IS NULL OR t.${col} = '')`);
|
|
119
121
|
}
|
|
120
122
|
if (checkDangling) {
|
|
123
|
+
// M-ADR 0208 §4.4 (F-D): a platform-scoped target resolves on
|
|
124
|
+
// (platform_sdd_id, pk) — equal stamps, or either side unstamped.
|
|
125
|
+
// Mirrors fk-validator.ts's `resolved` predicate exactly.
|
|
126
|
+
const stamp = quote(PLATFORM_STAMP_COLUMN);
|
|
127
|
+
const scope = isPlatformScopedFk(cat, catByName.get(targetCat), options)
|
|
128
|
+
? ` AND (COALESCE(t.${stamp}, '') = '' OR COALESCE(r.${stamp}, '') = '' OR r.${stamp} = t.${stamp})`
|
|
129
|
+
: "";
|
|
121
130
|
clauses.push(`(t.${col} IS NOT NULL AND t.${col} <> '' AND NOT EXISTS (` +
|
|
122
|
-
`SELECT 1 FROM ${quote(targetCat)} r WHERE r.${quote(targetCol)} = t.${col}))`);
|
|
131
|
+
`SELECT 1 FROM ${quote(targetCat)} r WHERE r.${quote(targetCol)} = t.${col}${scope}))`);
|
|
123
132
|
}
|
|
124
133
|
queries.push({
|
|
125
134
|
catalogue: cat.name,
|
|
@@ -200,16 +209,25 @@ export function generateExternalFindingQueries(schema, options = {}) {
|
|
|
200
209
|
}
|
|
201
210
|
return queries;
|
|
202
211
|
}
|
|
203
|
-
function pkQuery(cat) {
|
|
212
|
+
function pkQuery(cat, options = {}) {
|
|
204
213
|
const t = quote(cat.name);
|
|
205
214
|
const pk = quote(cat.primaryKey);
|
|
215
|
+
// M-ADR 0208 §4.4 (F-D): for a platform-scoped catalogue the key is
|
|
216
|
+
// (platform_sdd_id, pk). n rows sharing a pk are distinct iff every one
|
|
217
|
+
// carries a stamp and the stamps are all different — an EMPTY stamp is
|
|
218
|
+
// unresolved, never a key, so it collides with everything. Mirrors
|
|
219
|
+
// aggregate.ts findDuplicatePrimaryKeys.
|
|
220
|
+
const scoped = isPlatformScopedFk(cat, cat, options);
|
|
221
|
+
const having = scoped
|
|
222
|
+
? `HAVING COUNT(*) > COUNT(DISTINCT NULLIF(${quote(PLATFORM_STAMP_COLUMN)}, ''))`
|
|
223
|
+
: `HAVING COUNT(*) > 1`;
|
|
206
224
|
return {
|
|
207
225
|
catalogue: cat.name,
|
|
208
226
|
kind: "pk",
|
|
209
227
|
column: cat.primaryKey,
|
|
210
228
|
sql: `SELECT ${pk} AS row_pk, COUNT(*) AS n FROM ${t} ` +
|
|
211
229
|
`WHERE ${pk} IS NOT NULL AND ${pk} <> '' ` +
|
|
212
|
-
`GROUP BY ${pk}
|
|
230
|
+
`GROUP BY ${pk} ${having} ORDER BY row_pk;`,
|
|
213
231
|
};
|
|
214
232
|
}
|
|
215
233
|
//# sourceMappingURL=ddl-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-generator.js","sourceRoot":"","sources":["../../../src/lib/catalogue/ddl-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;
|
|
1
|
+
{"version":3,"file":"ddl-generator.js","sourceRoot":"","sources":["../../../src/lib/catalogue/ddl-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* feature_repo zero-resolution SUMMARY line (M-ADR 0143 §4.4), split against
|
|
3
|
+
* the final feature_repo table.
|
|
4
|
+
*
|
|
5
|
+
* A builder (feature-grounding: Evidence cell; capability-spec:
|
|
6
|
+
* Implementation cell) fires one per-row finding for every feature row whose
|
|
7
|
+
* cell is non-empty but resolves to zero repos. That measures the CELL. The
|
|
8
|
+
* feature may still be anchored by another surface — feature-tree
|
|
9
|
+
* `## Feature Services`, feature-spec, or the feature_service ⋈
|
|
10
|
+
* service_repo derivation — and only the build, holding the final
|
|
11
|
+
* feature_repo, can say so. The summary therefore states both numbers:
|
|
12
|
+
* how many rows fired, and how many of those fired on features that no
|
|
13
|
+
* surface anchors.
|
|
14
|
+
*
|
|
15
|
+
* Returns null when nothing fired: an absent line is the designed shape
|
|
16
|
+
* for zero (the per-row lines are absent too), and this keeps the finding
|
|
17
|
+
* surface identical to pre-1.20.2 in that case.
|
|
18
|
+
*/
|
|
19
|
+
export declare function zeroResolutionSummary(cellLabel: "Evidence" | "Implementation", evidenceRows: number, firedFeatureIds: readonly string[], anchoredFeatures: ReadonlyMap<string, unknown> | ReadonlySet<string>): string | null;
|
|
20
|
+
//# sourceMappingURL=feature-repo-zero-resolution-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-repo-zero-resolution-summary.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/feature-repo-zero-resolution-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,UAAU,GAAG,gBAAgB,EACxC,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GACnE,MAAM,GAAG,IAAI,CAcf"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* feature_repo zero-resolution SUMMARY line (M-ADR 0143 §4.4), split against
|
|
3
|
+
* the final feature_repo table.
|
|
4
|
+
*
|
|
5
|
+
* A builder (feature-grounding: Evidence cell; capability-spec:
|
|
6
|
+
* Implementation cell) fires one per-row finding for every feature row whose
|
|
7
|
+
* cell is non-empty but resolves to zero repos. That measures the CELL. The
|
|
8
|
+
* feature may still be anchored by another surface — feature-tree
|
|
9
|
+
* `## Feature Services`, feature-spec, or the feature_service ⋈
|
|
10
|
+
* service_repo derivation — and only the build, holding the final
|
|
11
|
+
* feature_repo, can say so. The summary therefore states both numbers:
|
|
12
|
+
* how many rows fired, and how many of those fired on features that no
|
|
13
|
+
* surface anchors.
|
|
14
|
+
*
|
|
15
|
+
* Returns null when nothing fired: an absent line is the designed shape
|
|
16
|
+
* for zero (the per-row lines are absent too), and this keeps the finding
|
|
17
|
+
* surface identical to pre-1.20.2 in that case.
|
|
18
|
+
*/
|
|
19
|
+
export function zeroResolutionSummary(cellLabel, evidenceRows, firedFeatureIds, anchoredFeatures) {
|
|
20
|
+
if (firedFeatureIds.length === 0)
|
|
21
|
+
return null;
|
|
22
|
+
const distinctFired = new Set(firedFeatureIds);
|
|
23
|
+
const unanchoredFeatures = new Set([...distinctFired].filter((fid) => !anchoredFeatures.has(fid)));
|
|
24
|
+
const unanchoredRows = firedFeatureIds.filter((fid) => unanchoredFeatures.has(fid)).length;
|
|
25
|
+
const anchoredElsewhere = distinctFired.size - unanchoredFeatures.size;
|
|
26
|
+
return (`feature_repo: ${firedFeatureIds.length} of ${evidenceRows} feature rows with a non-empty ${cellLabel} cell resolved to zero repos, ` +
|
|
27
|
+
`of which ${unanchoredRows} on ${unanchoredFeatures.size} feature(s) with no anchor from ANY surface in the final feature_repo ` +
|
|
28
|
+
`(${anchoredElsewhere} of the ${distinctFired.size} named features are anchored by another surface — those rows are cell quality, not coverage) ` +
|
|
29
|
+
`(member tier; evidence→repo resolution coverage only — a resolved row is not thereby correct; M-ADR 0143 §4.4)`);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=feature-repo-zero-resolution-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-repo-zero-resolution-summary.js","sourceRoot":"","sources":["../../../src/lib/catalogue/feature-repo-zero-resolution-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAwC,EACxC,YAAoB,EACpB,eAAkC,EAClC,gBAAoE;IAEpE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/C,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAC/D,CAAC;IACF,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3F,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;IACvE,OAAO,CACL,iBAAiB,eAAe,CAAC,MAAM,OAAO,YAAY,kCAAkC,SAAS,gCAAgC;QACrI,YAAY,cAAc,OAAO,kBAAkB,CAAC,IAAI,wEAAwE;QAChI,IAAI,iBAAiB,WAAW,aAAa,CAAC,IAAI,+FAA+F;QACjJ,gHAAgH,CACjH,CAAC;AACJ,CAAC"}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* estate sweep driver), so implementation drift between the two gets
|
|
22
22
|
* caught by the suite instead of lurking.
|
|
23
23
|
*/
|
|
24
|
-
import type { CanonicalSchema } from "./schema-loader.js";
|
|
24
|
+
import type { CanonicalSchema, CatalogueDef } from "./schema-loader.js";
|
|
25
25
|
import type { CatalogueRow } from "./csv-writer.js";
|
|
26
26
|
import type { FindingsLog } from "./findings.js";
|
|
27
27
|
export interface FkValidationResult {
|
|
@@ -53,7 +53,26 @@ export interface FkValidationOptions {
|
|
|
53
53
|
* not fail the local build. Ignored when treatExternalAsInternal is set.
|
|
54
54
|
*/
|
|
55
55
|
readonly profile?: string;
|
|
56
|
+
/**
|
|
57
|
+
* M-ADR 0208 §4.4 (F-D): target catalogues whose key AT THIS TIER is
|
|
58
|
+
* `(platform_sdd_id, <pk>)` rather than the scalar pk — the aggregator
|
|
59
|
+
* passes `["domains"]` at organisation tier, where two platforms may each
|
|
60
|
+
* own `identity`. A reference resolves when a target row exists with the
|
|
61
|
+
* same pk AND a compatible stamp: equal stamps, or either side unstamped
|
|
62
|
+
* (an empty stamp is UNRESOLVED, never a key — it neither matches nor
|
|
63
|
+
* excludes). Applies only where both catalogues carry `platform_sdd_id`.
|
|
64
|
+
* Ids never change form; per-SDD builds never set this.
|
|
65
|
+
*/
|
|
66
|
+
readonly platformScopedTargets?: readonly string[];
|
|
56
67
|
}
|
|
68
|
+
/** The stamp column M-ADR 0208 §4.4 keys on. */
|
|
69
|
+
export declare const PLATFORM_STAMP_COLUMN = "platform_sdd_id";
|
|
70
|
+
/**
|
|
71
|
+
* Whether the FK `cat.fk → targetCat` resolves under the platform-scoped
|
|
72
|
+
* key (see FkValidationOptions.platformScopedTargets). One definition,
|
|
73
|
+
* shared with the query generator so the two paths cannot drift.
|
|
74
|
+
*/
|
|
75
|
+
export declare function isPlatformScopedFk(cat: CatalogueDef, targetCat: CatalogueDef, options: FkValidationOptions): boolean;
|
|
57
76
|
/**
|
|
58
77
|
* Build an in-memory map of every catalogue's primary-key set, then walk
|
|
59
78
|
* every row's FK columns and check resolution.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fk-validator.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/fk-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"fk-validator.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/fk-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,SAAS,EAAE,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;OASG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpD;AAED,gDAAgD;AAChD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,EAC7D,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CA6GpB"}
|
|
@@ -21,23 +21,45 @@
|
|
|
21
21
|
* estate sweep driver), so implementation drift between the two gets
|
|
22
22
|
* caught by the suite instead of lurking.
|
|
23
23
|
*/
|
|
24
|
+
/** The stamp column M-ADR 0208 §4.4 keys on. */
|
|
25
|
+
export const PLATFORM_STAMP_COLUMN = "platform_sdd_id";
|
|
26
|
+
/**
|
|
27
|
+
* Whether the FK `cat.fk → targetCat` resolves under the platform-scoped
|
|
28
|
+
* key (see FkValidationOptions.platformScopedTargets). One definition,
|
|
29
|
+
* shared with the query generator so the two paths cannot drift.
|
|
30
|
+
*/
|
|
31
|
+
export function isPlatformScopedFk(cat, targetCat, options) {
|
|
32
|
+
if (!(options.platformScopedTargets ?? []).includes(targetCat.name))
|
|
33
|
+
return false;
|
|
34
|
+
const has = (c) => c.columns.some((col) => col.name === PLATFORM_STAMP_COLUMN);
|
|
35
|
+
return has(cat) && has(targetCat);
|
|
36
|
+
}
|
|
24
37
|
/**
|
|
25
38
|
* Build an in-memory map of every catalogue's primary-key set, then walk
|
|
26
39
|
* every row's FK columns and check resolution.
|
|
27
40
|
*/
|
|
28
41
|
export function validateForeignKeys(schema, rowsByCatalogue, findings, options = {}) {
|
|
29
|
-
// Index primary keys per catalogue
|
|
42
|
+
// Index primary keys per catalogue, and — for platform-scoped targets —
|
|
43
|
+
// the set of stamps each pk is present under ('' for an unstamped row).
|
|
30
44
|
const pkIndex = new Map();
|
|
45
|
+
const stampIndex = new Map();
|
|
46
|
+
const catByName = new Map(schema.catalogues.map((c) => [c.name, c]));
|
|
31
47
|
for (const cat of schema.catalogues) {
|
|
32
48
|
const rows = rowsByCatalogue.get(cat.name) ?? [];
|
|
33
49
|
const pks = new Set();
|
|
50
|
+
const stamps = new Map();
|
|
34
51
|
for (const row of rows) {
|
|
35
52
|
const pk = row[cat.primaryKey];
|
|
36
53
|
if (pk !== undefined && pk !== null && pk !== "") {
|
|
37
54
|
pks.add(String(pk));
|
|
55
|
+
const stamp = String(row[PLATFORM_STAMP_COLUMN] ?? "");
|
|
56
|
+
const set = stamps.get(String(pk)) ?? new Set();
|
|
57
|
+
set.add(stamp);
|
|
58
|
+
stamps.set(String(pk), set);
|
|
38
59
|
}
|
|
39
60
|
}
|
|
40
61
|
pkIndex.set(cat.name, pks);
|
|
62
|
+
stampIndex.set(cat.name, stamps);
|
|
41
63
|
}
|
|
42
64
|
const failures = [];
|
|
43
65
|
let externalCount = 0;
|
|
@@ -56,9 +78,12 @@ export function validateForeignKeys(schema, rowsByCatalogue, findings, options =
|
|
|
56
78
|
throw new Error(`malformed FK reference "${fk.references}" on ${cat.name}.${fk.column}`);
|
|
57
79
|
}
|
|
58
80
|
const targetPks = pkIndex.get(targetCat);
|
|
59
|
-
|
|
81
|
+
const targetDef = catByName.get(targetCat);
|
|
82
|
+
if (!targetPks || !targetDef) {
|
|
60
83
|
throw new Error(`FK ${cat.name}.${fk.column} references unknown catalogue "${targetCat}"`);
|
|
61
84
|
}
|
|
85
|
+
const scoped = isPlatformScopedFk(cat, targetDef, options);
|
|
86
|
+
const targetStamps = stampIndex.get(targetCat);
|
|
62
87
|
for (const row of rows) {
|
|
63
88
|
const raw = row[fk.column];
|
|
64
89
|
if (raw === undefined || raw === null || raw === "") {
|
|
@@ -75,7 +100,12 @@ export function validateForeignKeys(schema, rowsByCatalogue, findings, options =
|
|
|
75
100
|
continue;
|
|
76
101
|
}
|
|
77
102
|
const value = String(raw);
|
|
78
|
-
|
|
103
|
+
let resolved = targetPks.has(value);
|
|
104
|
+
if (resolved && scoped) {
|
|
105
|
+
const mine = String(row[PLATFORM_STAMP_COLUMN] ?? "");
|
|
106
|
+
const theirs = targetStamps.get(value) ?? new Set();
|
|
107
|
+
resolved = mine === "" || theirs.has("") || theirs.has(mine);
|
|
108
|
+
}
|
|
79
109
|
if (effectiveExternal && !options.treatExternalAsInternal) {
|
|
80
110
|
if (!resolved) {
|
|
81
111
|
// Per spec: optimistically resolve against own rows; only log when unresolved.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fk-validator.js","sourceRoot":"","sources":["../../../src/lib/catalogue/fk-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"fk-validator.js","sourceRoot":"","sources":["../../../src/lib/catalogue/fk-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-projection.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-projection.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,oBAAoB,CAAC;AA2B5B,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAOD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,IAAI,CAUN;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,EAC7D,IAAI,EAAE,SAAS;AACf;;;;;;GAMG;AACH,SAAS,CAAC,EAAE,qBAAqB,GAChC,eAAe,CA2PjB"}
|
|
@@ -54,6 +54,10 @@ const THREE_FK_ENDPOINTS = {
|
|
|
54
54
|
"platform_capability_id",
|
|
55
55
|
],
|
|
56
56
|
product_platform_dependencies: null, // per-row: target_service_id, else target_capability_id
|
|
57
|
+
// schema 3.9.0 (M-ADR 0211 §4.1): the third FK, contract_id, is a PROPERTY of the
|
|
58
|
+
// capability→service dependency — the contract it is against — not an endpoint. The
|
|
59
|
+
// edge stays capability→service; the contract rides as a property.
|
|
60
|
+
capability_service: ["capability_id", "service_id"],
|
|
57
61
|
};
|
|
58
62
|
/**
|
|
59
63
|
* Kinds must cover every schema catalogue — a catalogue without a kind
|
|
@@ -99,7 +103,10 @@ semantics) {
|
|
|
99
103
|
return { class: decl.class, impact_flow: flow };
|
|
100
104
|
};
|
|
101
105
|
const nodeCats = schema.catalogues.filter((c) => kinds.get(c.name) === "entity" && !EXCLUDED_NODE_CATALOGUES.has(c.name));
|
|
102
|
-
|
|
106
|
+
// `annotation` (M-ADR 0133 §4.2b; kinds corrected at schema 3.9.0): a single-FK assertion
|
|
107
|
+
// ABOUT one entity. It takes the same path as a 1-FK edge — a property record on the FK
|
|
108
|
+
// owner — so it joins the edge set here rather than vanishing from the projection.
|
|
109
|
+
const edgeCats = schema.catalogues.filter((c) => kinds.get(c.name) === "edge" || kinds.get(c.name) === "annotation");
|
|
103
110
|
// Pass 1 — the node set. Endpoint resolution below is against THIS
|
|
104
111
|
// export's nodes, which is exactly the per-export invariant.
|
|
105
112
|
const nodeIds = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-projection.js","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-projection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph-projection.js","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-run.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAGtC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtD,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3D;AA6CD,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,MAAmC,GAC3C,OAAO,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"graph-run.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAGtC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtD,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3D;AA6CD,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,MAAmC,GAC3C,OAAO,CAAC,qBAAqB,CAAC,CAkBhC;AAED,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,MAAmC,GAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAS9B;AAED,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,qDAAqD;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,cAAc,CAAC,CA4CzB"}
|
|
@@ -55,7 +55,8 @@ export async function loadRelationshipSemantics(mapPath = VENDORED_COVERAGE_MAP_
|
|
|
55
55
|
const entityFks = new Map();
|
|
56
56
|
for (const [name, entry] of Object.entries(raw.coverage)) {
|
|
57
57
|
kinds.set(name, entry.kind);
|
|
58
|
-
if (entry.kind === "edge") {
|
|
58
|
+
if (entry.kind === "edge" || entry.kind === "annotation") {
|
|
59
|
+
// an annotation classifies at top level exactly as an edge does (schema 3.9.0)
|
|
59
60
|
edges.set(name, toDecl(`edge ${name}`, entry));
|
|
60
61
|
}
|
|
61
62
|
for (const [col, decl] of Object.entries(entry.relationships ?? {})) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-run.js","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,YAAY,GAGb,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAC5C,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,0BAA0B,CAC3B,CAAC;AAoCF,SAAS,MAAM,CACb,KAAa,EACb,CAIC;IAED,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,wCAAwC,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,2DAA2D,CACzF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS;YAC7B,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,WAAyB,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS;YAChC,CAAC,CAAC;gBACE,YAAY,EAAE;oBACZ,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM;oBAC/B,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,MAAoC;iBAC9D;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAAkB,0BAA0B;IAE5C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAErD,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-run.js","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { CatalogueRow } from "./csv-writer.js";
|
|
2
|
+
import type { FindingsLog } from "./findings.js";
|
|
3
|
+
import type { TraceabilityManifest } from "./traceability-loader.js";
|
|
4
|
+
export interface CapabilityServicePopulationInputs {
|
|
5
|
+
readonly findings: FindingsLog;
|
|
6
|
+
readonly manifests: readonly TraceabilityManifest[];
|
|
7
|
+
readonly capabilityServiceRows: readonly CatalogueRow[];
|
|
8
|
+
readonly knownCapabilityIds: ReadonlySet<string>;
|
|
9
|
+
readonly knownServiceIds: ReadonlySet<string>;
|
|
10
|
+
readonly knownExternalSystemIds: ReadonlySet<string>;
|
|
11
|
+
/** c4_containers rows as (id, name, system_id): ids are `<system_id>-<slug>`, so a services[] id
|
|
12
|
+
* matches a container by exact id, by the ANCHORED form `<system_id>-<sid>`, or by the slug of
|
|
13
|
+
* its name. A bare trailing token is never a match (`service` must not match `…-developer-service`). */
|
|
14
|
+
readonly knownContainers: readonly {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly system_id?: string;
|
|
18
|
+
}[];
|
|
19
|
+
}
|
|
20
|
+
export interface CapabilityServicePopulation {
|
|
21
|
+
readonly declared: number;
|
|
22
|
+
readonly rows: number;
|
|
23
|
+
readonly unresolved: number;
|
|
24
|
+
readonly deduplicated: number;
|
|
25
|
+
readonly capabilityUnknown: number;
|
|
26
|
+
readonly crossSdd: number;
|
|
27
|
+
readonly externalSystem: number;
|
|
28
|
+
readonly declaredContainer: number;
|
|
29
|
+
readonly nowhere: number;
|
|
30
|
+
readonly balances: boolean;
|
|
31
|
+
}
|
|
32
|
+
/** Does a services[] id name a declared C4 container — by id, by the system-anchored id, or by the slug of its name? */
|
|
33
|
+
export declare function matchesContainer(sid: string, containers: readonly {
|
|
34
|
+
readonly id: string;
|
|
35
|
+
readonly name: string;
|
|
36
|
+
readonly system_id?: string;
|
|
37
|
+
}[]): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* A near-miss is an external-system id that the unresolved id contains or is contained by after
|
|
40
|
+
* normalisation (a separator changed, a prefix or suffix added — the three measured shapes), with a
|
|
41
|
+
* length floor so a short common token does not fire on everything. It is NAMED, never applied.
|
|
42
|
+
*/
|
|
43
|
+
export declare function nearMiss(id: string, externalIds: ReadonlySet<string>): string | undefined;
|
|
44
|
+
export declare function checkCapabilityServicePopulation(inputs: CapabilityServicePopulationInputs): CapabilityServicePopulation;
|
|
45
|
+
//# sourceMappingURL=population-checks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"population-checks.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/population-checks.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACpD,QAAQ,CAAC,qBAAqB,EAAE,SAAS,YAAY,EAAE,CAAC;IACxD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD;;6GAEyG;IACzG,QAAQ,CAAC,eAAe,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClH;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAKD,wHAAwH;AACxH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,OAAO,CAQzJ;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAWzF;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,iCAAiC,GACxC,2BAA2B,CAuD7B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
const norm = (s) => s.toLowerCase().replace(/^ext-/, "").replace(/[^a-z0-9]/g, "");
|
|
2
|
+
const slug = (s) => s.toLowerCase().trim().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
3
|
+
/** Does a services[] id name a declared C4 container — by id, by the system-anchored id, or by the slug of its name? */
|
|
4
|
+
export function matchesContainer(sid, containers) {
|
|
5
|
+
const target = sid.toLowerCase();
|
|
6
|
+
return containers.some((c) => {
|
|
7
|
+
const id = c.id.toLowerCase();
|
|
8
|
+
if (id === target || slug(c.name) === target)
|
|
9
|
+
return true;
|
|
10
|
+
const sys = (c.system_id ?? "").toLowerCase();
|
|
11
|
+
return sys !== "" && id === `${sys}-${target}`;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A near-miss is an external-system id that the unresolved id contains or is contained by after
|
|
16
|
+
* normalisation (a separator changed, a prefix or suffix added — the three measured shapes), with a
|
|
17
|
+
* length floor so a short common token does not fire on everything. It is NAMED, never applied.
|
|
18
|
+
*/
|
|
19
|
+
export function nearMiss(id, externalIds) {
|
|
20
|
+
const n = norm(id);
|
|
21
|
+
let best;
|
|
22
|
+
for (const ext of externalIds) {
|
|
23
|
+
const e = norm(ext);
|
|
24
|
+
if (ext === id || e === "" || Math.min(n.length, e.length) < 6)
|
|
25
|
+
continue;
|
|
26
|
+
if (n === e || n.includes(e) || e.includes(n)) {
|
|
27
|
+
if (best === undefined || e.length > norm(best).length)
|
|
28
|
+
best = ext; // prefer the most specific
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return best;
|
|
32
|
+
}
|
|
33
|
+
export function checkCapabilityServicePopulation(inputs) {
|
|
34
|
+
let declared = 0, unresolved = 0, deduplicated = 0, capabilityUnknown = 0, crossSdd = 0;
|
|
35
|
+
let externalSystem = 0, declaredContainer = 0, nowhere = 0, expectedRows = 0;
|
|
36
|
+
const seen = new Set();
|
|
37
|
+
for (const m of inputs.manifests) {
|
|
38
|
+
const capId = m.capability.id;
|
|
39
|
+
for (const entry of m.traceability.services ?? []) {
|
|
40
|
+
declared++;
|
|
41
|
+
if (!inputs.knownCapabilityIds.has(capId)) {
|
|
42
|
+
capabilityUnknown++;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const sid = entry.id;
|
|
46
|
+
// Resolution order (M-ADR 0211 §4.3): owner_sdd FIRST — a declared cross-SDD
|
|
47
|
+
// reference is resolved by declaration, not by the local services catalogue.
|
|
48
|
+
const resolved = entry.owner_sdd !== undefined || inputs.knownServiceIds.has(sid);
|
|
49
|
+
if (entry.owner_sdd !== undefined)
|
|
50
|
+
crossSdd++;
|
|
51
|
+
if (!resolved) {
|
|
52
|
+
unresolved++;
|
|
53
|
+
if (inputs.knownExternalSystemIds.has(sid)) {
|
|
54
|
+
externalSystem++;
|
|
55
|
+
}
|
|
56
|
+
else if (matchesContainer(sid, inputs.knownContainers)) {
|
|
57
|
+
declaredContainer++;
|
|
58
|
+
inputs.findings.add("convention", `capability_service: ${capId} services[] id "${sid}" resolves as a DECLARED C4 CONTAINER, not a service — capability_service has no locus for it; the id is correct and there is nothing to fix here (M-ADR 0211 §4.3, class 2: a dependency on a container that is not a service, filed as its own item)`);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
nowhere++;
|
|
62
|
+
const cand = nearMiss(sid, inputs.knownExternalSystemIds);
|
|
63
|
+
if (cand !== undefined) {
|
|
64
|
+
inputs.findings.add("convention", `capability_service: ${capId} services[] id "${sid}" resolves nowhere; nearest external-system id is "${cand}" — a CANDIDATE, not applied (M-ADR 0211 §4.3, class 3)`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const key = `${capId}__${sid}__${(entry.role ?? "") !== "" ? entry.role : "related"}`;
|
|
70
|
+
if (seen.has(key)) {
|
|
71
|
+
deduplicated++;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
seen.add(key);
|
|
75
|
+
expectedRows++;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const rows = inputs.capabilityServiceRows.length;
|
|
79
|
+
const balances = declared === rows + unresolved + deduplicated + capabilityUnknown;
|
|
80
|
+
inputs.findings.add("metric", `capability_service: declared=${declared} rows=${rows} unresolved=${unresolved} deduplicated=${deduplicated} capability-unknown=${capabilityUnknown} (cross-SDD via owner_sdd=${crossSdd}); unresolved by class: external-system=${externalSystem} declared-container=${declaredContainer} nowhere=${nowhere}`);
|
|
81
|
+
if (!balances) {
|
|
82
|
+
inputs.findings.add("coverage", `capability_service: the population does not balance — declared ${declared} ≠ rows ${rows} + unresolved ${unresolved} + deduplicated ${deduplicated} + capability-unknown ${capabilityUnknown} (expected rows from declarations: ${expectedRows}). Two instruments disagree; adjudicate, do not smooth (M-ADR 0211 §4.3)`);
|
|
83
|
+
}
|
|
84
|
+
return { declared, rows, unresolved, deduplicated, capabilityUnknown, crossSdd, externalSystem, declaredContainer, nowhere, balances };
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=population-checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"population-checks.js","sourceRoot":"","sources":["../../../src/lib/catalogue/population-checks.ts"],"names":[],"mappings":"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"}
|