@sdd-method/sdd-cli 1.0.1 → 1.2.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.map +1 -1
- package/dist/lib/catalogue/aggregate.js +116 -8
- 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 +2 -6
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/capability-spec.d.ts +9 -3
- package/dist/lib/catalogue/builders/capability-spec.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/capability-spec.js +9 -3
- package/dist/lib/catalogue/builders/capability-spec.js.map +1 -1
- package/dist/lib/catalogue/builders/external-system-exemption.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/external-system-exemption.js +32 -3
- package/dist/lib/catalogue/builders/external-system-exemption.js.map +1 -1
- package/dist/lib/catalogue/builders/product-edges.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/product-edges.js +9 -0
- package/dist/lib/catalogue/builders/product-edges.js.map +1 -1
- package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts +12 -0
- package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/product-platform-dependencies.js +99 -0
- package/dist/lib/catalogue/builders/product-platform-dependencies.js.map +1 -1
- package/dist/lib/catalogue/canonical-schema.yaml +64 -11
- package/dist/lib/catalogue/contract-path-resolution.d.ts +55 -0
- package/dist/lib/catalogue/contract-path-resolution.d.ts.map +1 -0
- package/dist/lib/catalogue/contract-path-resolution.js +149 -0
- package/dist/lib/catalogue/contract-path-resolution.js.map +1 -0
- package/dist/lib/catalogue/coverage-predicates.d.ts +176 -0
- package/dist/lib/catalogue/coverage-predicates.d.ts.map +1 -0
- package/dist/lib/catalogue/coverage-predicates.js +603 -0
- package/dist/lib/catalogue/coverage-predicates.js.map +1 -0
- package/dist/lib/catalogue/coverage-render.d.ts +39 -0
- package/dist/lib/catalogue/coverage-render.d.ts.map +1 -0
- package/dist/lib/catalogue/coverage-render.js +347 -0
- package/dist/lib/catalogue/coverage-render.js.map +1 -0
- package/dist/lib/catalogue/coverage-run.d.ts +33 -0
- package/dist/lib/catalogue/coverage-run.d.ts.map +1 -0
- package/dist/lib/catalogue/coverage-run.js +91 -0
- package/dist/lib/catalogue/coverage-run.js.map +1 -0
- package/dist/lib/catalogue/ddl-generator.d.ts +80 -0
- package/dist/lib/catalogue/ddl-generator.d.ts.map +1 -0
- package/dist/lib/catalogue/ddl-generator.js +215 -0
- package/dist/lib/catalogue/ddl-generator.js.map +1 -0
- package/dist/lib/catalogue/engine-validator.d.ts +103 -0
- package/dist/lib/catalogue/engine-validator.d.ts.map +1 -0
- package/dist/lib/catalogue/engine-validator.js +221 -0
- package/dist/lib/catalogue/engine-validator.js.map +1 -0
- package/dist/lib/catalogue/enum-validator.d.ts.map +1 -1
- package/dist/lib/catalogue/enum-validator.js +15 -0
- package/dist/lib/catalogue/enum-validator.js.map +1 -1
- package/dist/lib/catalogue/fk-validator.d.ts +6 -0
- package/dist/lib/catalogue/fk-validator.d.ts.map +1 -1
- package/dist/lib/catalogue/fk-validator.js +6 -0
- package/dist/lib/catalogue/fk-validator.js.map +1 -1
- package/dist/lib/catalogue/gate-checks.d.ts +117 -0
- package/dist/lib/catalogue/gate-checks.d.ts.map +1 -0
- package/dist/lib/catalogue/gate-checks.js +261 -0
- package/dist/lib/catalogue/gate-checks.js.map +1 -0
- package/dist/lib/catalogue/parity-harness.d.ts +48 -0
- package/dist/lib/catalogue/parity-harness.d.ts.map +1 -0
- package/dist/lib/catalogue/parity-harness.js +76 -0
- package/dist/lib/catalogue/parity-harness.js.map +1 -0
- package/dist/lib/catalogue/schema-compat.d.ts +3 -3
- package/dist/lib/catalogue/schema-compat.js +3 -3
- package/dist/lib/catalogue/validate.d.ts.map +1 -1
- package/dist/lib/catalogue/validate.js +6 -11
- package/dist/lib/catalogue/validate.js.map +1 -1
- package/dist/lib/sync/apply.d.ts +29 -1
- package/dist/lib/sync/apply.d.ts.map +1 -1
- package/dist/lib/sync/apply.js +77 -2
- package/dist/lib/sync/apply.js.map +1 -1
- package/dist/lib/sync/index.d.ts.map +1 -1
- package/dist/lib/sync/index.js +23 -1
- package/dist/lib/sync/index.js.map +1 -1
- package/dist/lib/sync/settings-merge.d.ts +29 -0
- package/dist/lib/sync/settings-merge.d.ts.map +1 -1
- package/dist/lib/sync/settings-merge.js +31 -0
- package/dist/lib/sync/settings-merge.js.map +1 -1
- package/dist/lib/validate/dispatch.d.ts.map +1 -1
- package/dist/lib/validate/dispatch.js +19 -17
- package/dist/lib/validate/dispatch.js.map +1 -1
- package/dist/lib/validate/index.d.ts.map +1 -1
- package/dist/lib/validate/index.js +23 -4
- package/dist/lib/validate/index.js.map +1 -1
- package/dist/verbs/catalogue.d.ts.map +1 -1
- package/dist/verbs/catalogue.js +24 -0
- package/dist/verbs/catalogue.js.map +1 -1
- package/dist/verbs/conformance.d.ts.map +1 -1
- package/dist/verbs/conformance.js +3 -2
- package/dist/verbs/conformance.js.map +1 -1
- package/dist/verbs/contracts.d.ts.map +1 -1
- package/dist/verbs/contracts.js +3 -2
- package/dist/verbs/contracts.js.map +1 -1
- package/dist/verbs/generate-briefing.d.ts.map +1 -1
- package/dist/verbs/generate-briefing.js +2 -1
- package/dist/verbs/generate-briefing.js.map +1 -1
- package/dist/verbs/init.d.ts.map +1 -1
- package/dist/verbs/init.js +3 -2
- package/dist/verbs/init.js.map +1 -1
- package/dist/verbs/pack.d.ts.map +1 -1
- package/dist/verbs/pack.js +2 -1
- package/dist/verbs/pack.js.map +1 -1
- package/dist/verbs/path-option.d.ts +22 -0
- package/dist/verbs/path-option.d.ts.map +1 -0
- package/dist/verbs/path-option.js +25 -0
- package/dist/verbs/path-option.js.map +1 -0
- package/dist/verbs/plan.d.ts.map +1 -1
- package/dist/verbs/plan.js +2 -1
- package/dist/verbs/plan.js.map +1 -1
- package/dist/verbs/scaffold.d.ts.map +1 -1
- package/dist/verbs/scaffold.js +2 -1
- package/dist/verbs/scaffold.js.map +1 -1
- package/dist/verbs/sync.d.ts.map +1 -1
- package/dist/verbs/sync.js +2 -1
- package/dist/verbs/sync.js.map +1 -1
- package/dist/verbs/validate.d.ts.map +1 -1
- package/dist/verbs/validate.js +3 -2
- package/dist/verbs/validate.js.map +1 -1
- package/package.json +3 -2
- package/scripts/validate-app-dependencies.sh +378 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-platform-dependencies.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/product-platform-dependencies.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"product-platform-dependencies.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/product-platform-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,13 +58,64 @@
|
|
|
58
58
|
# `[finding] external`) and validated by the aggregator after merge.
|
|
59
59
|
# Default for unspecified `external` is `false` (internal FK).
|
|
60
60
|
#
|
|
61
|
-
# Conceptual model: see docs/method/methods/catalogue-metamodel.md.
|
|
62
|
-
# Builder contract: see docs/method/methods/catalogue-builder-specification.md.
|
|
63
|
-
# Category taxonomy: see docs/method/methods/product-category-taxonomy.md.
|
|
61
|
+
# Conceptual model: see docs/method/methods/guides/catalogue-metamodel.md.
|
|
62
|
+
# Builder contract: see docs/method/methods/guides/catalogue-builder-specification.md.
|
|
63
|
+
# Category taxonomy: see docs/method/methods/standards/product-category-taxonomy.md.
|
|
64
64
|
|
|
65
|
-
schema_version: "3.
|
|
65
|
+
schema_version: "3.1.3"
|
|
66
66
|
schema_owner: "sdd-method"
|
|
67
67
|
schema_status: "canonical"
|
|
68
|
+
# Bump rationale (3.1.3 — patch, 2026-08-05): `repositories.column_enums`
|
|
69
|
+
# bound `service_type` — the AUTHORING field's name — but the catalogue
|
|
70
|
+
# column that carries the value is `component_type` (the builder maps
|
|
71
|
+
# repo-config `service_type` into it). A binding to a column the catalogue
|
|
72
|
+
# does not declare validated as vacuously true from 3.0.0 on: the in-memory
|
|
73
|
+
# enum validator read an absent cell as empty and skipped it. Found by the
|
|
74
|
+
# M-ADR 0205 §4.3 schema-driven DDL generator, whose engine refused the
|
|
75
|
+
# binding instead of skipping it. The binding key is corrected to
|
|
76
|
+
# `component_type` and the service_type enum's description corrected to name
|
|
77
|
+
# the real column. ACTIVATION NOTE (M-ADR 0200 §4.6): correcting the key
|
|
78
|
+
# activates enum validation on values the wrong key never checked; measured
|
|
79
|
+
# before shipping across both estate classes' built repository catalogues —
|
|
80
|
+
# one estate carries 14 rows with an out-of-vocabulary improvised value, the
|
|
81
|
+
# other none. Those 14 become error-severity findings at that estate's first
|
|
82
|
+
# build on a CLI carrying this schema; the remedial route is re-declaring
|
|
83
|
+
# the repo-config `service_type` inside the enum (profile already conveys
|
|
84
|
+
# what the improvised value tried to say, per §7.1).
|
|
85
|
+
# Bump rationale (3.1.2 — comment-only patch, 2026-08-05): records the 3.1.0
|
|
86
|
+
# entry below, which shipped without one — the rationale lived only in
|
|
87
|
+
# M-ADR 0204 and the cut commit. No structural change; no column, enum, or
|
|
88
|
+
# catalogue touched.
|
|
89
|
+
# Bump rationale (3.1.1 — comment-only patch, 2026-08-05): corrects the three
|
|
90
|
+
# companion-doc pointers above, stale since the docs moved under
|
|
91
|
+
# methods/guides/ and methods/standards/. No structural change; no column,
|
|
92
|
+
# enum, or catalogue touched.
|
|
93
|
+
# Bump rationale (3.1.0 — additive minor, 2026-08-03, per M-ADR 0204): the
|
|
94
|
+
# target-locus change-set on `product_platform_dependencies`. A dependency row
|
|
95
|
+
# can now declare that its target is NOT the platform:
|
|
96
|
+
# 1. `target_locus` added (closed enum `platform | external | legacy`;
|
|
97
|
+
# absent/empty = platform, so every pre-3.1.0 row keeps its exact
|
|
98
|
+
# meaning). A statement about the TARGET only — never about the consuming
|
|
99
|
+
# product, and never a stability/lifecycle/quality claim. Before this
|
|
100
|
+
# column, off-platform targets had nowhere to go and corrupted other
|
|
101
|
+
# fields (external/legacy smuggled into required_stability; a product's
|
|
102
|
+
# own feature slug forced into target_capability_id).
|
|
103
|
+
# 2. `target_external_system_id` added: for external|legacy rows, the
|
|
104
|
+
# M-ADR 0189 external-system entry id the dependency targets. Authored in
|
|
105
|
+
# the source file's service_id slot; the builder routes it here so the FK
|
|
106
|
+
# columns stay clean. Deliberately NOT a declared FK — corroboration
|
|
107
|
+
# against c4_external_systems is WARNING-severity at aggregation
|
|
108
|
+
# (0204 §4.2) because the C4 surface may legitimately lag discovery, and
|
|
109
|
+
# a declared FK can only fail.
|
|
110
|
+
# 3. `target_capability_id` becomes conditionally nullable (0204 §4.3, the
|
|
111
|
+
# 2.36.0 / M-ADR 0192 precedent): EMPTY when target_locus is
|
|
112
|
+
# external|legacy — there is no platform capability to name. A
|
|
113
|
+
# platform-locus row still requires it.
|
|
114
|
+
# 4. The PK gains an off-platform form:
|
|
115
|
+
# {product_id}__{target_locus}__{target_external_system_id}, falling back
|
|
116
|
+
# to contract_path when no external-system id is named.
|
|
117
|
+
# external/legacy rows skip platform resolution and the F18 realiser-join,
|
|
118
|
+
# with every skip named.
|
|
68
119
|
# Bump rationale (3.0.0 — BREAKING major, 2026-07-29, per M-ADR 0203): the 2.x line's
|
|
69
120
|
# five deferred breaks land as one audited cut, each a complete change-set in the
|
|
70
121
|
# M-ADR 0200 §4.1 sense. This entry records each break as its change-set lands:
|
|
@@ -556,7 +607,7 @@ enums:
|
|
|
556
607
|
service_type:
|
|
557
608
|
description: >
|
|
558
609
|
Type of repository, declared in `orchestration/repo-config/*.yaml` as
|
|
559
|
-
`service_type` and surfaced in `repositories.
|
|
610
|
+
`service_type` and surfaced in `repositories.component_type` and
|
|
560
611
|
`services.component_type`. The canonical builder uses this to decide
|
|
561
612
|
which repos are runtime services (api_service, worker, gateway,
|
|
562
613
|
frontend, mobile) and which are non-runtime (library, infrastructure,
|
|
@@ -1077,7 +1128,7 @@ catalogues:
|
|
|
1077
1128
|
- { name: doc_path, type: string, nullable: false }
|
|
1078
1129
|
- { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
|
|
1079
1130
|
column_enums:
|
|
1080
|
-
|
|
1131
|
+
component_type: enums.service_type # the repo-config `service_type` value lands in THIS column (3.1.3 — the binding previously named the authoring field and checked nothing)
|
|
1081
1132
|
|
|
1082
1133
|
domain_models:
|
|
1083
1134
|
primary_key: id
|
|
@@ -1255,7 +1306,7 @@ catalogues:
|
|
|
1255
1306
|
- { name: product_id, type: string, nullable: false }
|
|
1256
1307
|
- { name: service_id, type: string, nullable: false }
|
|
1257
1308
|
- { name: role, type: string, nullable: false, description: "consumes." }
|
|
1258
|
-
- { name: required_stability, type: string, nullable: true, description: "provisional | locked." }
|
|
1309
|
+
- { name: required_stability, type: string, nullable: true, description: "provisional | locked | unknown. The consuming SDD's expectation of contract stability, carried verbatim from app-platform-dependencies.yaml. Not a bound enum: an out-of-vocabulary value is carried, not rejected, and is reported by validate-app-dependencies.sh." }
|
|
1259
1310
|
|
|
1260
1311
|
service_contract:
|
|
1261
1312
|
primary_key: id
|
|
@@ -1639,16 +1690,18 @@ catalogues:
|
|
|
1639
1690
|
§"Cross-SDD platform-capability-edge".
|
|
1640
1691
|
foreign_keys:
|
|
1641
1692
|
- { column: product_id, references: products.id, nullable: false }
|
|
1642
|
-
- { column: target_capability_id, references: capabilities.id, nullable:
|
|
1693
|
+
- { column: target_capability_id, references: capabilities.id, nullable: true, external: true }
|
|
1643
1694
|
- { column: target_service_id, references: services.id, nullable: true, external: true }
|
|
1644
1695
|
columns:
|
|
1645
|
-
- { name: id, type: string, nullable: false, description: "{product_id}__{target_capability_id}__{target_service_id}, EXCEPT for async shared-stream rows (M-ADR 0192) where there is no realiser service: the third component falls back to the stream contract_path, i.e. {product_id}__{target_capability_id}__{contract_path}. This keeps the PK stable and collision-free when a product depends on the same capability via two distinct streams." }
|
|
1696
|
+
- { name: id, type: string, nullable: false, description: "{product_id}__{target_capability_id}__{target_service_id}, EXCEPT for async shared-stream rows (M-ADR 0192) where there is no realiser service: the third component falls back to the stream contract_path, i.e. {product_id}__{target_capability_id}__{contract_path}. For OFF-PLATFORM rows (M-ADR 0204, target_locus external|legacy) there is no platform capability either: id = {product_id}__{target_locus}__{target_external_system_id}, falling back to contract_path as the third component when no external-system id is named. This keeps the PK stable and collision-free when a product depends on the same capability via two distinct streams." }
|
|
1646
1697
|
- { name: product_id, type: string, nullable: false, description: "Consuming product (this SDD's product id)." }
|
|
1647
|
-
- { name: target_capability_id, type: string, nullable:
|
|
1698
|
+
- { name: target_capability_id, type: string, nullable: true, description: "Capability the consuming product depends on. Resolves at aggregation against a sibling SDD's capabilities.id; external by definition. Conditionally nullable (M-ADR 0204 §4.3): EMPTY when target_locus is external|legacy — there is no platform capability to name on an off-platform row, and demanding a value is what put a product's own feature slug in this column. A platform-locus row still requires it." }
|
|
1699
|
+
- { name: target_locus, type: string, nullable: true, description: "platform | external | legacy (M-ADR 0204; closed enum, absent/empty = platform). A statement about the TARGET only — never about the consuming product, and never a stability, lifecycle or quality claim. platform rows behave exactly as before this column existed. external/legacy rows carry empty target_capability_id and target_service_id and name their target in target_external_system_id; they skip platform resolution and the F18 realiser-join, with every skip named." }
|
|
1700
|
+
- { name: target_external_system_id, type: string, nullable: true, description: "For target_locus external|legacy rows only: the M-ADR 0189 external-system entry id the dependency targets (authored in the source file's service_id slot; the builder routes it here so the FK columns stay clean). Deliberately NOT a declared FK: corroboration against c4_external_systems is WARNING-severity at aggregation (M-ADR 0204 §4.2), because the C4 surface may legitimately lag discovery, and a declared FK can only fail." }
|
|
1648
1701
|
- { name: target_service_id, type: string, nullable: true, description: "Service identifier the consuming product depends on. Resolves at aggregation against a sibling SDD's services.id; external by definition. The join key the aggregator uses to derive cross_sdd_platform_capability for SYNCHRONOUS dependencies. Conditionally nullable (M-ADR 0192): for an async shared-stream dependency (contract_type in the async set — `event`/`event-stream`/`stream`) there is no single realiser service, so this is empty and the dependency binds to the stream contract_path + target_capability_id instead. A synchronous contract_type still requires it. Made nullable in schema 2.36.0." }
|
|
1649
1702
|
- { name: target_domain, type: string, nullable: true, description: "Domain hint as declared in the consuming SDD's evidence (free-form; reviewer-facing annotation). May be a comma-separated list when the target spans multiple domains." }
|
|
1650
1703
|
- { name: contract_type, type: string, nullable: true, description: "rest | graphql | openapi | grpc | event | event-stream | stream | other. Optional; reflects what the consuming SDD declares. The async set (`event`/`event-stream`/`stream`) marks a shared-stream subscription that binds to a stream contract rather than a realiser service (M-ADR 0192) — such rows skip the F18 synchronous realiser-join at aggregation." }
|
|
1651
|
-
- { name: required_stability, type: string, nullable: true, description: "
|
|
1704
|
+
- { name: required_stability, type: string, nullable: true, description: "provisional | locked | unknown. Optional; the consuming SDD's expectation of contract stability — and only that: where the target lives and what lifecycle its implementation is in are separate concerns that do not belong in this field. Not a bound enum: an out-of-vocabulary value is carried, not rejected, and is reported by validate-app-dependencies.sh." }
|
|
1652
1705
|
- { name: contract_path, type: string, nullable: true, description: "Path to the contract file the dependency is against, as declared in the consuming SDD's evidence. External — resolution happens at aggregation if it happens at all." }
|
|
1653
1706
|
- { name: consumed_by_services, type: string, nullable: true, description: "Comma-separated list of service names within the consuming product that consume the dependency. Free-text; not FK-validated (services are within-product and resolution is owner-side concern)." }
|
|
1654
1707
|
- { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { FindingsLog } from "./findings.js";
|
|
2
|
+
import type { CatalogueRow } from "./csv-writer.js";
|
|
3
|
+
/** Absolute SDD repo roots by sdd_id — the ecosystem root plus every sibling. */
|
|
4
|
+
export type SddRoots = ReadonlyMap<string, string>;
|
|
5
|
+
export interface ContractPathResolutionSummary {
|
|
6
|
+
/** Declared, path-shaped, and found under exactly one SDD root. */
|
|
7
|
+
readonly resolved: number;
|
|
8
|
+
/** Path-shaped but found under no SDD root — a reference to a missing file. */
|
|
9
|
+
readonly missing: number;
|
|
10
|
+
/** Path-shaped and found under more than one SDD root — never guessed. */
|
|
11
|
+
readonly ambiguous: number;
|
|
12
|
+
/** Declared but not a path at all (`n/a`, prose, a bracketed note). */
|
|
13
|
+
readonly nonPath: number;
|
|
14
|
+
/** No contract_path declared. Not a defect here; check 3a owns that rule. */
|
|
15
|
+
readonly absent: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* True when the declared value is shaped like a repo-relative path, as opposed to
|
|
19
|
+
* a sentinel or a prose note.
|
|
20
|
+
*
|
|
21
|
+
* The reverse template types this field `<platform-relative-path-or-unknown>`,
|
|
22
|
+
* which openly admits a non-path value — so `n/a` is the template being followed
|
|
23
|
+
* and free text is that licence stretched. Both are reported, neither is treated
|
|
24
|
+
* as a path, and NEITHER is silently ignored: an unresolvable declaration that
|
|
25
|
+
* nothing mentions is indistinguishable from a resolved one in the output.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isPathShaped(value: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Strip a leading `platform/<name>/` when `<name>` identifies a known SDD — by its
|
|
30
|
+
* sdd_id OR by its directory basename, and the distinction is not cosmetic: an
|
|
31
|
+
* author writing this prefix is reading it off the filesystem, so it is the
|
|
32
|
+
* DIRECTORY they write. In one measured estate every such prefix is
|
|
33
|
+
* `platform/sdd-experience-platform/` while that SDD's declared sdd_id is
|
|
34
|
+
* `experience-platform` — matching on sdd_id alone therefore split nothing and
|
|
35
|
+
* reported 13 existing contracts as missing. Both keys are accepted.
|
|
36
|
+
*
|
|
37
|
+
* That prefix
|
|
38
|
+
* is the estate-relative form authors reached for when the declared
|
|
39
|
+
* platform-root-relative base could not name a sibling's contract. Returns the
|
|
40
|
+
* owning SDD id and the path relative to ITS root, or null when the value carries
|
|
41
|
+
* no such prefix.
|
|
42
|
+
*/
|
|
43
|
+
export declare function splitEstateRelative(value: string, roots: SddRoots): {
|
|
44
|
+
readonly sddId: string;
|
|
45
|
+
readonly relPath: string;
|
|
46
|
+
} | null;
|
|
47
|
+
/**
|
|
48
|
+
* Resolve every declared contract_path against the SDD roots present in this
|
|
49
|
+
* aggregation, emitting one finding per unresolved declaration.
|
|
50
|
+
*
|
|
51
|
+
* `exists` is injected so this is testable without a filesystem, and so the
|
|
52
|
+
* caller owns the stat strategy.
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveContractPaths(productPlatformDeps: readonly CatalogueRow[], roots: SddRoots, aliases: SddRoots, exists: (absPath: string) => Promise<boolean>, findings: FindingsLog): Promise<ContractPathResolutionSummary>;
|
|
55
|
+
//# sourceMappingURL=contract-path-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-path-resolution.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/contract-path-resolution.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,iFAAiF;AACjF,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,MAAM,WAAW,6BAA6B;IAC5C,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAWnD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,QAAQ,GACd;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO7D;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,mBAAmB,EAAE,SAAS,YAAY,EAAE,EAC5C,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAC7C,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,6BAA6B,CAAC,CA+ExC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
// Contract-path resolution at aggregation tier (post-3.0.0-followons.md A2 step 5).
|
|
2
|
+
//
|
|
3
|
+
// WHY THIS LIVES AT AGGREGATE TIER AND NOWHERE ELSE
|
|
4
|
+
// `app-platform-dependencies.yaml` declares, per dependency, the contract the
|
|
5
|
+
// consuming app binds to. Both distributed templates say that path is relative
|
|
6
|
+
// to the platform repo root — and in a federation that rule cannot express the
|
|
7
|
+
// truth, because one app's dependencies span several platform SDDs. Measured in
|
|
8
|
+
// a 67-SDD reverse estate: 21 of 152 declared paths name a contract owned by a
|
|
9
|
+
// DIFFERENT platform SDD than the one the app would be validated against, and
|
|
10
|
+
// their authors compensated by prefixing `platform/<sdd-id>/` — writing the
|
|
11
|
+
// truth against a rule that could not hold it.
|
|
12
|
+
//
|
|
13
|
+
// The app-tier gate therefore cannot resolve these at all: given one
|
|
14
|
+
// --platform-root it reports LOCKED UNMET for a contract that exists. That is a
|
|
15
|
+
// false failure of the instrument, and no amount of app-tier cleverness fixes it
|
|
16
|
+
// — the file is in a sibling the app repo cannot see. At aggregate tier every
|
|
17
|
+
// SDD root IS visible, so resolution becomes possible for the first time.
|
|
18
|
+
// Same argument as M-ADR 0198: a join that can span SDDs belongs where the SDDs
|
|
19
|
+
// are all present.
|
|
20
|
+
//
|
|
21
|
+
// WHAT IT DOES NOT DO
|
|
22
|
+
// It does not rewrite anything or pick a winner when a path is ambiguous. An
|
|
23
|
+
// ambiguous path is reported as a divergence and left alone, because guessing
|
|
24
|
+
// which sibling a contract came from is exactly the silent-wrong-answer this
|
|
25
|
+
// whole arc has been removing.
|
|
26
|
+
/**
|
|
27
|
+
* True when the declared value is shaped like a repo-relative path, as opposed to
|
|
28
|
+
* a sentinel or a prose note.
|
|
29
|
+
*
|
|
30
|
+
* The reverse template types this field `<platform-relative-path-or-unknown>`,
|
|
31
|
+
* which openly admits a non-path value — so `n/a` is the template being followed
|
|
32
|
+
* and free text is that licence stretched. Both are reported, neither is treated
|
|
33
|
+
* as a path, and NEITHER is silently ignored: an unresolvable declaration that
|
|
34
|
+
* nothing mentions is indistinguishable from a resolved one in the output.
|
|
35
|
+
*/
|
|
36
|
+
export function isPathShaped(value) {
|
|
37
|
+
const v = value.trim();
|
|
38
|
+
if (v === "" || v === "null")
|
|
39
|
+
return false;
|
|
40
|
+
if (v.toLowerCase().startsWith("n/a"))
|
|
41
|
+
return false;
|
|
42
|
+
if (v.startsWith("["))
|
|
43
|
+
return false;
|
|
44
|
+
// Prose gives itself away with whitespace before the first separator
|
|
45
|
+
// ("Kafka (<vendor> bus): topic-a / topic-b", "Kinesis: <stream-name>").
|
|
46
|
+
const firstSegment = v.split("/")[0] ?? "";
|
|
47
|
+
if (/\s/.test(firstSegment))
|
|
48
|
+
return false;
|
|
49
|
+
// A path must actually have a directory part; a bare token is not a contract path.
|
|
50
|
+
return v.includes("/");
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Strip a leading `platform/<name>/` when `<name>` identifies a known SDD — by its
|
|
54
|
+
* sdd_id OR by its directory basename, and the distinction is not cosmetic: an
|
|
55
|
+
* author writing this prefix is reading it off the filesystem, so it is the
|
|
56
|
+
* DIRECTORY they write. In one measured estate every such prefix is
|
|
57
|
+
* `platform/sdd-experience-platform/` while that SDD's declared sdd_id is
|
|
58
|
+
* `experience-platform` — matching on sdd_id alone therefore split nothing and
|
|
59
|
+
* reported 13 existing contracts as missing. Both keys are accepted.
|
|
60
|
+
*
|
|
61
|
+
* That prefix
|
|
62
|
+
* is the estate-relative form authors reached for when the declared
|
|
63
|
+
* platform-root-relative base could not name a sibling's contract. Returns the
|
|
64
|
+
* owning SDD id and the path relative to ITS root, or null when the value carries
|
|
65
|
+
* no such prefix.
|
|
66
|
+
*/
|
|
67
|
+
export function splitEstateRelative(value, roots) {
|
|
68
|
+
const parts = value.trim().split("/");
|
|
69
|
+
if (parts.length < 3)
|
|
70
|
+
return null;
|
|
71
|
+
if (parts[0] !== "platform")
|
|
72
|
+
return null;
|
|
73
|
+
const sddId = parts[1] ?? "";
|
|
74
|
+
if (!roots.has(sddId))
|
|
75
|
+
return null;
|
|
76
|
+
return { sddId, relPath: parts.slice(2).join("/") };
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Resolve every declared contract_path against the SDD roots present in this
|
|
80
|
+
* aggregation, emitting one finding per unresolved declaration.
|
|
81
|
+
*
|
|
82
|
+
* `exists` is injected so this is testable without a filesystem, and so the
|
|
83
|
+
* caller owns the stat strategy.
|
|
84
|
+
*/
|
|
85
|
+
export async function resolveContractPaths(productPlatformDeps, roots, aliases, exists, findings) {
|
|
86
|
+
let resolved = 0;
|
|
87
|
+
let missing = 0;
|
|
88
|
+
let ambiguous = 0;
|
|
89
|
+
let nonPath = 0;
|
|
90
|
+
let absent = 0;
|
|
91
|
+
// One stat per (root, path) pair at worst. Cached because a shared platform
|
|
92
|
+
// contract is declared by many consumers — in the measured estate the same
|
|
93
|
+
// embedding contract is named by 21 dependencies.
|
|
94
|
+
const cache = new Map();
|
|
95
|
+
const existsCached = async (abs) => {
|
|
96
|
+
const hit = cache.get(abs);
|
|
97
|
+
if (hit !== undefined)
|
|
98
|
+
return hit;
|
|
99
|
+
const got = await exists(abs);
|
|
100
|
+
cache.set(abs, got);
|
|
101
|
+
return got;
|
|
102
|
+
};
|
|
103
|
+
for (const dep of productPlatformDeps) {
|
|
104
|
+
const declared = String(dep["contract_path"] ?? "").trim();
|
|
105
|
+
const who = `${String(dep["source_sdd_id"] ?? "")}/${String(dep["product_id"] ?? "")}`;
|
|
106
|
+
const target = String(dep["target_service_id"] ?? "") ||
|
|
107
|
+
String(dep["target_capability_id"] ?? "") ||
|
|
108
|
+
"(unnamed target)";
|
|
109
|
+
if (declared === "" || declared === "null") {
|
|
110
|
+
absent++;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (!isPathShaped(declared)) {
|
|
114
|
+
nonPath++;
|
|
115
|
+
findings.add("convention", `contract_path: ${who} → ${target} declares contract_path="${declared}", which is not a path — it cannot be resolved, and the dependency has no verifiable contract`);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
const estate = splitEstateRelative(declared, aliases);
|
|
119
|
+
if (estate !== null) {
|
|
120
|
+
const abs = `${aliases.get(estate.sddId)}/${estate.relPath}`;
|
|
121
|
+
if (await existsCached(abs)) {
|
|
122
|
+
resolved++;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
missing++;
|
|
126
|
+
findings.add("orphan", `contract_path: ${who} → ${target} declares contract_path="${declared}", naming SDD "${estate.sddId}", but no file exists there`);
|
|
127
|
+
}
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
const hits = [];
|
|
131
|
+
for (const [sddId, root] of roots) {
|
|
132
|
+
if (await existsCached(`${root}/${declared}`))
|
|
133
|
+
hits.push(sddId);
|
|
134
|
+
}
|
|
135
|
+
if (hits.length === 1) {
|
|
136
|
+
resolved++;
|
|
137
|
+
}
|
|
138
|
+
else if (hits.length === 0) {
|
|
139
|
+
missing++;
|
|
140
|
+
findings.add("orphan", `contract_path: ${who} → ${target} declares contract_path="${declared}" but it resolves under none of the ${roots.size} SDD root(s) in this aggregation`);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
ambiguous++;
|
|
144
|
+
findings.add("divergence", `contract_path: ${who} → ${target} declares contract_path="${declared}", which resolves under ${hits.length} SDD roots (${hits.join(", ")}) — not guessed; qualify the path or name the owning SDD`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return { resolved, missing, ambiguous, nonPath, absent };
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=contract-path-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-path-resolution.js","sourceRoot":"","sources":["../../../src/lib/catalogue/contract-path-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coverage predicates as SQL — M-ADR 0205 §4.4 (engine-evolution Phase A3).
|
|
3
|
+
*
|
|
4
|
+
* Declarative re-expressions of the participation-constraint predicates —
|
|
5
|
+
* the four catalogue-classics:
|
|
6
|
+
*
|
|
7
|
+
* - repo_capability (M-ADR 0188): every catalogued repository resolves
|
|
8
|
+
* to a capability or declares an exemption; orphans classified by
|
|
9
|
+
* whether the capability_service ⋈ services.primary_repo_id derivation
|
|
10
|
+
* COULD have fired (shape a / claimed-but-unresolved / shape b).
|
|
11
|
+
* - service_capability (M-ADR 0133 §4.2b): every catalogued service is
|
|
12
|
+
* claimed or exempt; tier is explicit and asymmetric per M-ADR 0196
|
|
13
|
+
* §4.3 (`orphaned` is aggregate-only; member tier reports
|
|
14
|
+
* `unresolved-locally`, cause-agnostic); the Path-X leverage axis is
|
|
15
|
+
* reported separately and only when repo_capability.csv exists.
|
|
16
|
+
* - event_coverage (WS3): every catalogued event is attributed to a
|
|
17
|
+
* runtime — service_event edge or resolving publisher column — with
|
|
18
|
+
* the contract-twin alternative route, the column-vs-edge disagreement
|
|
19
|
+
* controls, and the chain-readout/consumer-enumerability metric lines
|
|
20
|
+
* that are never verdicts.
|
|
21
|
+
* - contract_coverage (WS2): every catalogued contract is reachable —
|
|
22
|
+
* capability_contract or service_contract — with the three computed
|
|
23
|
+
* exclusions (deprecated / provider-surface / not-an-interface, the
|
|
24
|
+
* last a positive READ of the spec file), the covered-as-event
|
|
25
|
+
* alternative route, and the M-ADR 0202 availability-manifest info
|
|
26
|
+
* surface. File and YAML ingestion stay host-side; set logic is SQL.
|
|
27
|
+
*
|
|
28
|
+
* The shell scripts in sdd-method's orchestration/scripts/ remain the
|
|
29
|
+
* REFERENCE implementations until A4 cutover: any semantic change lands
|
|
30
|
+
* there first and here second, and the dual-run driver compares the two
|
|
31
|
+
* as structured findings — (kind, subject, classification, leverage) plus
|
|
32
|
+
* every metric integer — never as prose.
|
|
33
|
+
*
|
|
34
|
+
* The relations live in SQL; the classification branching mirrors the
|
|
35
|
+
* reference implementations statement-for-statement, including their
|
|
36
|
+
* duplicate-row semantics (a duplicated id is counted and reported per
|
|
37
|
+
* ROW, never deduplicated away).
|
|
38
|
+
*/
|
|
39
|
+
import type { EngineSession } from "./engine-validator.js";
|
|
40
|
+
export type CoverageTier = "member" | "aggregate";
|
|
41
|
+
export interface CoverageFinding {
|
|
42
|
+
readonly predicate: "repo_capability" | "service_capability" | "event_coverage" | "contract_coverage";
|
|
43
|
+
/**
|
|
44
|
+
* M-ADR 0132 §4.3 vocabulary member — plus `report`, which mirrors the
|
|
45
|
+
* event predicate's member-tier `[report]` lines (deliberately NOT a
|
|
46
|
+
* finding in the reference implementation, per M-ADR 0199 §4.3).
|
|
47
|
+
*/
|
|
48
|
+
readonly kind: "orphan" | "divergence" | "coverage" | "report";
|
|
49
|
+
readonly subjectId: string;
|
|
50
|
+
/**
|
|
51
|
+
* repo_capability: conflict | shape_a | claimed_unresolved | shape_b.
|
|
52
|
+
* service_capability: conflict | orphaned | unresolved-locally.
|
|
53
|
+
*/
|
|
54
|
+
readonly classification: string;
|
|
55
|
+
/** service_capability unresolved rows only, when the axis is computable. */
|
|
56
|
+
readonly leverage?: "yes" | "no" | "na";
|
|
57
|
+
/** Rendering ingredients (A4): the prose the reference lines carry. */
|
|
58
|
+
readonly exemptionReason?: string;
|
|
59
|
+
/** shape_a only: sorted unclaimed service ids (first three) + the full count. */
|
|
60
|
+
readonly unclaimedServices?: readonly string[];
|
|
61
|
+
readonly unclaimedCount?: number;
|
|
62
|
+
/** service_capability unresolved rows: the row's primary_repo_id. */
|
|
63
|
+
readonly primaryRepo?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface RepoCapabilityMetrics {
|
|
66
|
+
readonly total: number;
|
|
67
|
+
readonly byCapability: number;
|
|
68
|
+
readonly byExemption: number;
|
|
69
|
+
readonly conflicting: number;
|
|
70
|
+
readonly unresolved: number;
|
|
71
|
+
readonly shapeA: number;
|
|
72
|
+
readonly shapeB: number;
|
|
73
|
+
readonly other: number;
|
|
74
|
+
}
|
|
75
|
+
export interface ServiceCapabilityMetrics {
|
|
76
|
+
readonly total: number;
|
|
77
|
+
readonly claimed: number;
|
|
78
|
+
readonly exempt: number;
|
|
79
|
+
readonly conflicting: number;
|
|
80
|
+
readonly unresolved: number;
|
|
81
|
+
readonly leverage?: {
|
|
82
|
+
readonly yes: number;
|
|
83
|
+
readonly no: number;
|
|
84
|
+
readonly na: number;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export declare function runRepoCapabilityCoverage(session: EngineSession): Promise<{
|
|
88
|
+
findings: readonly CoverageFinding[];
|
|
89
|
+
metrics: RepoCapabilityMetrics;
|
|
90
|
+
}>;
|
|
91
|
+
export interface ServiceCoverageOptions {
|
|
92
|
+
readonly tier: CoverageTier;
|
|
93
|
+
/**
|
|
94
|
+
* True when repo_capability.csv EXISTS for this catalogue set (even
|
|
95
|
+
* empty) — file-level presence, exactly as the reference implementation
|
|
96
|
+
* keys the leverage axis. An empty present file means every unresolved
|
|
97
|
+
* service with a primary repo reads leverage=yes; an absent file means
|
|
98
|
+
* the axis is omitted entirely, metric included.
|
|
99
|
+
*/
|
|
100
|
+
readonly repoCapabilityAvailable: boolean;
|
|
101
|
+
}
|
|
102
|
+
export declare function runServiceCapabilityCoverage(session: EngineSession, options: ServiceCoverageOptions): Promise<{
|
|
103
|
+
findings: readonly CoverageFinding[];
|
|
104
|
+
metrics: ServiceCapabilityMetrics;
|
|
105
|
+
}>;
|
|
106
|
+
export interface EventCoverageOptions {
|
|
107
|
+
readonly tier: CoverageTier;
|
|
108
|
+
}
|
|
109
|
+
export interface EventCoverageControls {
|
|
110
|
+
/** publisher column set but unresolving against services. */
|
|
111
|
+
readonly colUnresolving: readonly {
|
|
112
|
+
eventId: string;
|
|
113
|
+
publisher: string;
|
|
114
|
+
}[];
|
|
115
|
+
/** publisher resolves but no publishes/produces edge exists. */
|
|
116
|
+
readonly colNoEdge: readonly string[];
|
|
117
|
+
/** publishes edge exists but the row's publisher column is empty. */
|
|
118
|
+
readonly edgeNoCol: readonly string[];
|
|
119
|
+
}
|
|
120
|
+
export interface EventCoverageMetrics {
|
|
121
|
+
readonly total: number;
|
|
122
|
+
readonly covered: number;
|
|
123
|
+
readonly viaContract: number;
|
|
124
|
+
readonly unresolved: number;
|
|
125
|
+
/** Chain readout, never a verdict (M-ADR 0199 §4.1). */
|
|
126
|
+
readonly capReach: number;
|
|
127
|
+
/** M-ADR 0057 analogue, never a verdict. */
|
|
128
|
+
readonly consumerEnum: number;
|
|
129
|
+
}
|
|
130
|
+
export interface EventCoverageResult {
|
|
131
|
+
/** True when the unit holds no event rows — a recorded state, not a rate. */
|
|
132
|
+
readonly na: boolean;
|
|
133
|
+
readonly findings: readonly CoverageFinding[];
|
|
134
|
+
readonly metrics?: EventCoverageMetrics;
|
|
135
|
+
readonly controls?: EventCoverageControls;
|
|
136
|
+
}
|
|
137
|
+
export declare function runEventCoverage(session: EngineSession, options: EventCoverageOptions): Promise<EventCoverageResult>;
|
|
138
|
+
export interface ContractCoverageOptions {
|
|
139
|
+
readonly tier: CoverageTier;
|
|
140
|
+
/**
|
|
141
|
+
* The SDD root spec_path values are relative to. At aggregate tier a
|
|
142
|
+
* member's spec_path is relative to ITS OWN root, so the file is
|
|
143
|
+
* legitimately absent under the aggregate's root — the not-an-interface
|
|
144
|
+
* scope-out then simply does not fire, exactly as in the reference.
|
|
145
|
+
*/
|
|
146
|
+
readonly sddRoot: string;
|
|
147
|
+
}
|
|
148
|
+
export interface ContractCoverageMetrics {
|
|
149
|
+
readonly total: number;
|
|
150
|
+
readonly covered: number;
|
|
151
|
+
readonly viaEvent: number;
|
|
152
|
+
readonly excluded: number;
|
|
153
|
+
readonly conflicting: number;
|
|
154
|
+
readonly unresolved: number;
|
|
155
|
+
readonly byExclusion: Readonly<Record<string, number>>;
|
|
156
|
+
/** M-ADR 0057 property — reported, never verdicted. May exceed the ids in contracts.csv. */
|
|
157
|
+
readonly consumersNamed: number;
|
|
158
|
+
readonly ownedOnly: number;
|
|
159
|
+
readonly attrOnly: number;
|
|
160
|
+
readonly both: number;
|
|
161
|
+
}
|
|
162
|
+
export interface ContractAvailabilityInfo {
|
|
163
|
+
readonly attested: number;
|
|
164
|
+
/** Manifest order, duplicates preserved — mirror of the reference list. */
|
|
165
|
+
readonly unmodelled: readonly string[];
|
|
166
|
+
}
|
|
167
|
+
export interface ContractCoverageResult {
|
|
168
|
+
readonly na: boolean;
|
|
169
|
+
readonly findings: readonly CoverageFinding[];
|
|
170
|
+
readonly metrics?: ContractCoverageMetrics;
|
|
171
|
+
/** Informational, never verdict-changing (M-ADR 0202). */
|
|
172
|
+
readonly availability?: ContractAvailabilityInfo;
|
|
173
|
+
readonly availabilityWarning?: string;
|
|
174
|
+
}
|
|
175
|
+
export declare function runContractCoverage(session: EngineSession, options: ContractCoverageOptions): Promise<ContractCoverageResult>;
|
|
176
|
+
//# sourceMappingURL=coverage-predicates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-predicates.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-predicates.ts"],"names":[],"mappings":"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"}
|