@descryy/core 0.4.0 → 0.5.1
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/budget/reply.d.ts +11 -46
- package/dist/budget/reply.d.ts.map +1 -1
- package/dist/budget/reply.js +10 -39
- package/dist/budget/reply.js.map +1 -1
- package/dist/budget/size.d.ts +2 -21
- package/dist/budget/size.d.ts.map +1 -1
- package/dist/budget/size.js +3 -24
- package/dist/budget/size.js.map +1 -1
- package/dist/capabilities/preconditions.d.ts +7 -68
- package/dist/capabilities/preconditions.d.ts.map +1 -1
- package/dist/capabilities/preconditions.js +6 -57
- package/dist/capabilities/preconditions.js.map +1 -1
- package/dist/contracts/engine.d.ts +23 -11
- package/dist/contracts/engine.d.ts.map +1 -1
- package/dist/contracts/engine.js +23 -11
- package/dist/contracts/engine.js.map +1 -1
- package/dist/contracts/orphans.d.ts +18 -122
- package/dist/contracts/orphans.d.ts.map +1 -1
- package/dist/contracts/orphans.js +36 -134
- package/dist/contracts/orphans.js.map +1 -1
- package/dist/contracts/paths.d.ts +4 -114
- package/dist/contracts/paths.d.ts.map +1 -1
- package/dist/contracts/paths.js +7 -140
- package/dist/contracts/paths.js.map +1 -1
- package/dist/contracts/shapes.d.ts +13 -66
- package/dist/contracts/shapes.d.ts.map +1 -1
- package/dist/contracts/shapes.js +20 -91
- package/dist/contracts/shapes.js.map +1 -1
- package/dist/governance/budget.d.ts +12 -48
- package/dist/governance/budget.d.ts.map +1 -1
- package/dist/governance/budget.js +12 -48
- package/dist/governance/budget.js.map +1 -1
- package/dist/governance/candidate-boundary.d.ts +4 -32
- package/dist/governance/candidate-boundary.d.ts.map +1 -1
- package/dist/governance/candidate-boundary.js +4 -32
- package/dist/governance/candidate-boundary.js.map +1 -1
- package/dist/governance/escalation.d.ts +7 -45
- package/dist/governance/escalation.d.ts.map +1 -1
- package/dist/governance/escalation.js +7 -45
- package/dist/governance/escalation.js.map +1 -1
- package/dist/governance/fact-boundary.d.ts +7 -49
- package/dist/governance/fact-boundary.d.ts.map +1 -1
- package/dist/governance/fact-boundary.js +5 -43
- package/dist/governance/fact-boundary.js.map +1 -1
- package/dist/governance/finding-funnel.d.ts +11 -72
- package/dist/governance/finding-funnel.d.ts.map +1 -1
- package/dist/governance/finding-funnel.js +9 -68
- package/dist/governance/finding-funnel.js.map +1 -1
- package/dist/graph/build.d.ts +9 -90
- package/dist/graph/build.d.ts.map +1 -1
- package/dist/graph/build.js +15 -62
- package/dist/graph/build.js.map +1 -1
- package/dist/graph/cross-language.d.ts +4 -43
- package/dist/graph/cross-language.d.ts.map +1 -1
- package/dist/graph/cross-language.js +9 -77
- package/dist/graph/cross-language.js.map +1 -1
- package/dist/graph/merge.d.ts +8 -88
- package/dist/graph/merge.d.ts.map +1 -1
- package/dist/graph/merge.js +9 -93
- package/dist/graph/merge.js.map +1 -1
- package/dist/graph/observed-tests.d.ts +7 -68
- package/dist/graph/observed-tests.d.ts.map +1 -1
- package/dist/graph/observed-tests.js +5 -60
- package/dist/graph/observed-tests.js.map +1 -1
- package/dist/graph/persist.d.ts +2 -25
- package/dist/graph/persist.d.ts.map +1 -1
- package/dist/graph/persist.js +2 -25
- package/dist/graph/persist.js.map +1 -1
- package/dist/graph/runtime-confirmation.d.ts +14 -91
- package/dist/graph/runtime-confirmation.d.ts.map +1 -1
- package/dist/graph/runtime-confirmation.js +19 -103
- package/dist/graph/runtime-confirmation.js.map +1 -1
- package/dist/ledger/mint.d.ts +9 -43
- package/dist/ledger/mint.d.ts.map +1 -1
- package/dist/ledger/mint.js +15 -65
- package/dist/ledger/mint.js.map +1 -1
- package/dist/ledger/resolve.d.ts +13 -81
- package/dist/ledger/resolve.d.ts.map +1 -1
- package/dist/ledger/resolve.js +13 -76
- package/dist/ledger/resolve.js.map +1 -1
- package/dist/multipr/fingerprint.d.ts +5 -46
- package/dist/multipr/fingerprint.d.ts.map +1 -1
- package/dist/multipr/fingerprint.js +22 -74
- package/dist/multipr/fingerprint.js.map +1 -1
- package/dist/multipr/hidden-dependency.d.ts +13 -73
- package/dist/multipr/hidden-dependency.d.ts.map +1 -1
- package/dist/multipr/hidden-dependency.js +12 -63
- package/dist/multipr/hidden-dependency.js.map +1 -1
- package/dist/multipr/mechanical.d.ts +25 -160
- package/dist/multipr/mechanical.d.ts.map +1 -1
- package/dist/multipr/mechanical.js +21 -137
- package/dist/multipr/mechanical.js.map +1 -1
- package/dist/multipr/migration-heads.d.ts +18 -105
- package/dist/multipr/migration-heads.d.ts.map +1 -1
- package/dist/multipr/migration-heads.js +15 -84
- package/dist/multipr/migration-heads.js.map +1 -1
- package/dist/multipr/overlap.d.ts +16 -94
- package/dist/multipr/overlap.d.ts.map +1 -1
- package/dist/multipr/overlap.js +25 -105
- package/dist/multipr/overlap.js.map +1 -1
- package/dist/multipr/scope-store.d.ts +15 -80
- package/dist/multipr/scope-store.d.ts.map +1 -1
- package/dist/multipr/scope-store.js +17 -87
- package/dist/multipr/scope-store.js.map +1 -1
- package/dist/multipr/superseded.d.ts +10 -95
- package/dist/multipr/superseded.d.ts.map +1 -1
- package/dist/multipr/superseded.js +7 -60
- package/dist/multipr/superseded.js.map +1 -1
- package/dist/query/confirmed-facts.d.ts +12 -58
- package/dist/query/confirmed-facts.d.ts.map +1 -1
- package/dist/query/confirmed-facts.js +8 -47
- package/dist/query/confirmed-facts.js.map +1 -1
- package/dist/query/declared-value-closure.d.ts +13 -104
- package/dist/query/declared-value-closure.d.ts.map +1 -1
- package/dist/query/declared-value-closure.js +15 -104
- package/dist/query/declared-value-closure.js.map +1 -1
- package/dist/query/memory.d.ts +4 -16
- package/dist/query/memory.d.ts.map +1 -1
- package/dist/query/memory.js +9 -22
- package/dist/query/memory.js.map +1 -1
- package/dist/query/prominence.d.ts +6 -55
- package/dist/query/prominence.d.ts.map +1 -1
- package/dist/query/prominence.js +6 -55
- package/dist/query/prominence.js.map +1 -1
- package/dist/query/provider.d.ts +27 -93
- package/dist/query/provider.d.ts.map +1 -1
- package/dist/query/provider.js +8 -29
- package/dist/query/provider.js.map +1 -1
- package/dist/query/queries.d.ts +15 -65
- package/dist/query/queries.d.ts.map +1 -1
- package/dist/query/queries.js +30 -104
- package/dist/query/queries.js.map +1 -1
- package/dist/query/refusal-fetch.d.ts +8 -85
- package/dist/query/refusal-fetch.d.ts.map +1 -1
- package/dist/query/refusal-fetch.js +11 -93
- package/dist/query/refusal-fetch.js.map +1 -1
- package/dist/query/refusal-questions.d.ts +17 -92
- package/dist/query/refusal-questions.d.ts.map +1 -1
- package/dist/query/refusal-questions.js +14 -78
- package/dist/query/refusal-questions.js.map +1 -1
- package/dist/query/resolution-floor.d.ts +3 -23
- package/dist/query/resolution-floor.d.ts.map +1 -1
- package/dist/query/resolution-floor.js +3 -23
- package/dist/query/resolution-floor.js.map +1 -1
- package/dist/query/root-cause-score.d.ts +11 -161
- package/dist/query/root-cause-score.d.ts.map +1 -1
- package/dist/query/root-cause-score.js +6 -137
- package/dist/query/root-cause-score.js.map +1 -1
- package/dist/query/row-closure-picture.d.ts +5 -67
- package/dist/query/row-closure-picture.d.ts.map +1 -1
- package/dist/query/row-closure-picture.js +6 -67
- package/dist/query/row-closure-picture.js.map +1 -1
- package/dist/query/similar-incidents.d.ts +6 -41
- package/dist/query/similar-incidents.d.ts.map +1 -1
- package/dist/query/similar-incidents.js +15 -69
- package/dist/query/similar-incidents.js.map +1 -1
- package/dist/query/sqlite.d.ts +3 -7
- package/dist/query/sqlite.d.ts.map +1 -1
- package/dist/query/sqlite.js +9 -19
- package/dist/query/sqlite.js.map +1 -1
- package/dist/query/test-coverage.d.ts +5 -45
- package/dist/query/test-coverage.d.ts.map +1 -1
- package/dist/query/test-coverage.js +10 -53
- package/dist/query/test-coverage.js.map +1 -1
- package/dist/query/traverse.d.ts +22 -126
- package/dist/query/traverse.d.ts.map +1 -1
- package/dist/query/traverse.js +25 -126
- package/dist/query/traverse.js.map +1 -1
- package/dist/query/unresolved.d.ts +19 -164
- package/dist/query/unresolved.d.ts.map +1 -1
- package/dist/query/unresolved.js +11 -138
- package/dist/query/unresolved.js.map +1 -1
- package/dist/query/verification-status.d.ts +12 -109
- package/dist/query/verification-status.d.ts.map +1 -1
- package/dist/query/verification-status.js +9 -99
- package/dist/query/verification-status.js.map +1 -1
- package/dist/recording/migrate.d.ts +4 -10
- package/dist/recording/migrate.d.ts.map +1 -1
- package/dist/recording/migrate.js +4 -10
- package/dist/recording/migrate.js.map +1 -1
- package/dist/recording/reader.d.ts +2 -7
- package/dist/recording/reader.d.ts.map +1 -1
- package/dist/recording/reader.js +2 -7
- package/dist/recording/reader.js.map +1 -1
- package/dist/recording/redact.d.ts +6 -57
- package/dist/recording/redact.d.ts.map +1 -1
- package/dist/recording/redact.js +8 -64
- package/dist/recording/redact.js.map +1 -1
- package/dist/recording/schema.d.ts +3 -38
- package/dist/recording/schema.d.ts.map +1 -1
- package/dist/recording/schema.js +3 -38
- package/dist/recording/schema.js.map +1 -1
- package/dist/recording/writer.d.ts +11 -74
- package/dist/recording/writer.d.ts.map +1 -1
- package/dist/recording/writer.js +3 -43
- package/dist/recording/writer.js.map +1 -1
- package/dist/scoping/fanout.d.ts +6 -68
- package/dist/scoping/fanout.d.ts.map +1 -1
- package/dist/scoping/fanout.js +6 -68
- package/dist/scoping/fanout.js.map +1 -1
- package/dist/scoping/score.d.ts +20 -70
- package/dist/scoping/score.d.ts.map +1 -1
- package/dist/scoping/score.js +20 -70
- package/dist/scoping/score.js.map +1 -1
- package/dist/scoping/tiers.d.ts +4 -16
- package/dist/scoping/tiers.d.ts.map +1 -1
- package/dist/scoping/tiers.js +4 -16
- package/dist/scoping/tiers.js.map +1 -1
- package/dist/scoping/traverse.d.ts +3 -25
- package/dist/scoping/traverse.d.ts.map +1 -1
- package/dist/scoping/traverse.js +14 -49
- package/dist/scoping/traverse.js.map +1 -1
- package/dist/scoping/weights.d.ts +10 -74
- package/dist/scoping/weights.d.ts.map +1 -1
- package/dist/scoping/weights.js +14 -86
- package/dist/scoping/weights.js.map +1 -1
- package/dist/sources/confirmed/incidents.d.ts +5 -35
- package/dist/sources/confirmed/incidents.d.ts.map +1 -1
- package/dist/sources/confirmed/incidents.js +14 -48
- package/dist/sources/confirmed/incidents.js.map +1 -1
- package/dist/sources/git/diff.d.ts +93 -63
- package/dist/sources/git/diff.d.ts.map +1 -1
- package/dist/sources/git/diff.js +200 -81
- package/dist/sources/git/diff.js.map +1 -1
- package/dist/sources/git/env.d.ts +7 -0
- package/dist/sources/git/env.d.ts.map +1 -1
- package/dist/sources/git/env.js +10 -11
- package/dist/sources/git/env.js.map +1 -1
- package/dist/sources/git/history.d.ts +64 -84
- package/dist/sources/git/history.d.ts.map +1 -1
- package/dist/sources/git/history.js +141 -112
- package/dist/sources/git/history.js.map +1 -1
- package/dist/sources/git/incidents.d.ts +13 -75
- package/dist/sources/git/incidents.d.ts.map +1 -1
- package/dist/sources/git/incidents.js +21 -91
- package/dist/sources/git/incidents.js.map +1 -1
- package/dist/sources/git/index.d.ts +5 -3
- package/dist/sources/git/index.d.ts.map +1 -1
- package/dist/sources/git/index.js +3 -2
- package/dist/sources/git/index.js.map +1 -1
- package/dist/sources/git/source.d.ts +9 -79
- package/dist/sources/git/source.d.ts.map +1 -1
- package/dist/sources/git/source.js +33 -133
- package/dist/sources/git/source.js.map +1 -1
- package/dist/sources/migrations/across-change.d.ts +94 -0
- package/dist/sources/migrations/across-change.d.ts.map +1 -0
- package/dist/sources/migrations/across-change.js +278 -0
- package/dist/sources/migrations/across-change.js.map +1 -0
- package/dist/sources/migrations/dialects.d.ts +20 -36
- package/dist/sources/migrations/dialects.d.ts.map +1 -1
- package/dist/sources/migrations/dialects.js +11 -36
- package/dist/sources/migrations/dialects.js.map +1 -1
- package/dist/sources/migrations/index.d.ts +3 -1
- package/dist/sources/migrations/index.d.ts.map +1 -1
- package/dist/sources/migrations/index.js +2 -1
- package/dist/sources/migrations/index.js.map +1 -1
- package/dist/sources/migrations/read.d.ts +14 -79
- package/dist/sources/migrations/read.d.ts.map +1 -1
- package/dist/sources/migrations/read.js +14 -89
- package/dist/sources/migrations/read.js.map +1 -1
- package/dist/sources/workspace/workspace.d.ts +6 -42
- package/dist/sources/workspace/workspace.d.ts.map +1 -1
- package/dist/sources/workspace/workspace.js +10 -53
- package/dist/sources/workspace/workspace.js.map +1 -1
- package/dist/store/driver/driver.d.ts +9 -38
- package/dist/store/driver/driver.d.ts.map +1 -1
- package/dist/store/driver/driver.js +4 -22
- package/dist/store/driver/driver.js.map +1 -1
- package/dist/store/driver/node-sqlite.d.ts +3 -12
- package/dist/store/driver/node-sqlite.d.ts.map +1 -1
- package/dist/store/driver/node-sqlite.js +4 -18
- package/dist/store/driver/node-sqlite.js.map +1 -1
- package/dist/store/index.d.ts +2 -7
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +4 -10
- package/dist/store/index.js.map +1 -1
- package/dist/store/migrate.d.ts +14 -50
- package/dist/store/migrate.d.ts.map +1 -1
- package/dist/store/migrate.js +15 -52
- package/dist/store/migrate.js.map +1 -1
- package/dist/store/reader.d.ts +19 -84
- package/dist/store/reader.d.ts.map +1 -1
- package/dist/store/reader.js +25 -92
- package/dist/store/reader.js.map +1 -1
- package/dist/store/schema.d.ts +14 -76
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +14 -76
- package/dist/store/schema.js.map +1 -1
- package/dist/store/writer.d.ts +14 -88
- package/dist/store/writer.d.ts.map +1 -1
- package/dist/store/writer.js +29 -123
- package/dist/store/writer.js.map +1 -1
- package/dist/tiers/certify.d.ts +46 -281
- package/dist/tiers/certify.d.ts.map +1 -1
- package/dist/tiers/certify.js +46 -226
- package/dist/tiers/certify.js.map +1 -1
- package/dist/tiers/ladder.d.ts +7 -51
- package/dist/tiers/ladder.d.ts.map +1 -1
- package/dist/tiers/ladder.js +13 -89
- package/dist/tiers/ladder.js.map +1 -1
- package/dist/validation/attributes.d.ts +6 -55
- package/dist/validation/attributes.d.ts.map +1 -1
- package/dist/validation/attributes.js +6 -55
- package/dist/validation/attributes.js.map +1 -1
- package/dist/validation/config-graph.d.ts +7 -56
- package/dist/validation/config-graph.d.ts.map +1 -1
- package/dist/validation/config-graph.js +15 -61
- package/dist/validation/config-graph.js.map +1 -1
- package/dist/validation/env.d.ts +47 -8
- package/dist/validation/env.d.ts.map +1 -1
- package/dist/validation/env.js +119 -31
- package/dist/validation/env.js.map +1 -1
- package/dist/validation/index.d.ts +2 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/join-substitution.d.ts +22 -120
- package/dist/validation/join-substitution.d.ts.map +1 -1
- package/dist/validation/join-substitution.js +13 -90
- package/dist/validation/join-substitution.js.map +1 -1
- package/dist/validation/migration-integrity.d.ts +11 -72
- package/dist/validation/migration-integrity.d.ts.map +1 -1
- package/dist/validation/migration-integrity.js +16 -79
- package/dist/validation/migration-integrity.js.map +1 -1
- package/dist/validation/migrations.d.ts +22 -101
- package/dist/validation/migrations.d.ts.map +1 -1
- package/dist/validation/migrations.js +19 -83
- package/dist/validation/migrations.js.map +1 -1
- package/dist/validation/nodes.d.ts +3 -1
- package/dist/validation/nodes.d.ts.map +1 -1
- package/dist/validation/nodes.js +3 -1
- package/dist/validation/nodes.js.map +1 -1
- package/dist/validation/orm-registration.d.ts +106 -0
- package/dist/validation/orm-registration.d.ts.map +1 -0
- package/dist/validation/orm-registration.js +191 -0
- package/dist/validation/orm-registration.js.map +1 -0
- package/dist/validation/rollback.d.ts +10 -73
- package/dist/validation/rollback.d.ts.map +1 -1
- package/dist/validation/rollback.js +15 -82
- package/dist/validation/rollback.js.map +1 -1
- package/dist/validation/route-drift.d.ts +9 -62
- package/dist/validation/route-drift.d.ts.map +1 -1
- package/dist/validation/route-drift.js +7 -52
- package/dist/validation/route-drift.js.map +1 -1
- package/dist/validation/sources.d.ts +16 -94
- package/dist/validation/sources.d.ts.map +1 -1
- package/dist/validation/sources.js +51 -147
- package/dist/validation/sources.js.map +1 -1
- package/dist/worker/pool.d.ts +6 -45
- package/dist/worker/pool.d.ts.map +1 -1
- package/dist/worker/pool.js +5 -42
- package/dist/worker/pool.js.map +1 -1
- package/dist/worker/protocol.d.ts +7 -20
- package/dist/worker/protocol.d.ts.map +1 -1
- package/dist/worker/protocol.js +3 -10
- package/dist/worker/protocol.js.map +1 -1
- package/dist/worker/traversal.worker.d.ts +2 -21
- package/dist/worker/traversal.worker.d.ts.map +1 -1
- package/dist/worker/traversal.worker.js +4 -23
- package/dist/worker/traversal.worker.js.map +1 -1
- package/package.json +11 -2
package/dist/validation/env.d.ts
CHANGED
|
@@ -137,15 +137,29 @@
|
|
|
137
137
|
* own coverage guard exists to prevent — the same near-total-precision
|
|
138
138
|
* discipline, just moved to a different precondition.
|
|
139
139
|
*
|
|
140
|
-
* A pre-existing read in a file the diff also touches
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
140
|
+
* A pre-existing read in a file the diff also touches counted as "new" here
|
|
141
|
+
* unconditionally, until C2 (UAT phase 4, field-report round): a two-line,
|
|
142
|
+
* unrelated addition to a file that also happened to contain an untouched,
|
|
143
|
+
* long-standing undeclared read reported that read as "a new read this
|
|
144
|
+
* change introduces" — a `defect` claim the diff did not support. `files`
|
|
145
|
+
* alone can only ever say *which file*, never *which line*, so the fix is an
|
|
146
|
+
* optional second input: `options.changedLines`, the added-line ranges of a
|
|
147
|
+
* real diff (`addedLineRanges` over `get_git_diff`/`pr_analysis`'s own patch
|
|
148
|
+
* text), keyed by the same repo-relative paths as `files`. When a scoped
|
|
149
|
+
* read's file has an entry there, this rule asks the narrower, true question
|
|
150
|
+
* — does *this line* fall inside a range the diff actually added — instead of
|
|
151
|
+
* the file-level one, and says nothing at all about a read the diff proves is
|
|
152
|
+
* pre-existing.
|
|
153
|
+
*
|
|
154
|
+
* `changedLines` is optional and per-file: a file present in `files` but
|
|
155
|
+
* absent from the map is reported exactly as this check behaved before C2 —
|
|
156
|
+
* a `lead`, not a `defect`, and worded without the "new" claim, because no
|
|
157
|
+
* line-level information exists to support either. The scope disclosure below
|
|
158
|
+
* says which case applied and to how many variables.
|
|
145
159
|
*
|
|
146
160
|
* Deduplicated against `REQUIRED_NOT_DECLARED`: a variable this rule already
|
|
147
|
-
* flagged is skipped by that one, so a required,
|
|
148
|
-
* is reported once, not twice
|
|
161
|
+
* flagged — `defect` or `lead` — is skipped by that one, so a required,
|
|
162
|
+
* undeclared, diff-scoped read is reported once, not twice.
|
|
149
163
|
*
|
|
150
164
|
* ## Resolution, and why a config read is not R0
|
|
151
165
|
*
|
|
@@ -163,6 +177,7 @@
|
|
|
163
177
|
* two, and the report says so rather than picking one.
|
|
164
178
|
*/
|
|
165
179
|
import type { ResolutionLevel } from "@descryy/ir";
|
|
180
|
+
import type { ContractClaim } from "../contracts/orphans.ts";
|
|
166
181
|
import type { AdjacencyProvider, QueryResult } from "../query/provider.ts";
|
|
167
182
|
import type { ConfigSurface, SurfaceScan } from "./sources.ts";
|
|
168
183
|
export type EnvFindingKind = "REQUIRED_NOT_DECLARED" | "SET_BUT_UNDOCUMENTED" | "NEW_READ_UNDECLARED";
|
|
@@ -171,8 +186,13 @@ export type EnvFindingKind = "REQUIRED_NOT_DECLARED" | "SET_BUT_UNDOCUMENTED" |
|
|
|
171
186
|
*
|
|
172
187
|
* `lead` follows `ROUTE_NOT_CALLED`'s precedent: a fact worth a look whose usual
|
|
173
188
|
* explanation is benign, worded so that a reader is not told it is a defect.
|
|
189
|
+
*
|
|
190
|
+
* An alias of `ContractClaim` rather than a second declaration of the same two
|
|
191
|
+
* words. Two checks that both answer "is this a fault claim?" must answer it in
|
|
192
|
+
* one vocabulary, or the composite above them has to translate — and a
|
|
193
|
+
* translation is where one of them silently acquires a third case.
|
|
174
194
|
*/
|
|
175
|
-
export type EnvClaim =
|
|
195
|
+
export type EnvClaim = ContractClaim;
|
|
176
196
|
export interface EnvEvidence {
|
|
177
197
|
readonly file: string;
|
|
178
198
|
readonly line: number;
|
|
@@ -269,6 +289,25 @@ export interface EnvCheckOptions {
|
|
|
269
289
|
readonly files?: readonly string[];
|
|
270
290
|
/** Cap on file nodes enumerated. Truncation is reported. */
|
|
271
291
|
readonly limit?: number;
|
|
292
|
+
/**
|
|
293
|
+
* Which lines the diff actually added, by repo-relative file — e.g. from
|
|
294
|
+
* `addedLineRanges` over a real patch (`get_git_diff`/`pr_analysis` already
|
|
295
|
+
* compute the diff this would come from). When given, `NEW_READ_UNDECLARED`
|
|
296
|
+
* only fires for an undeclared read whose line falls inside one of these
|
|
297
|
+
* ranges for its file — a verified "new in this diff", not merely "in a
|
|
298
|
+
* file this call scoped to". C2 (UAT phase 4): without line information the
|
|
299
|
+
* old rule called any undeclared read in a scoped file "new", including one
|
|
300
|
+
* a diff never went near.
|
|
301
|
+
*
|
|
302
|
+
* A file present in `files` but absent from this map is treated the same as
|
|
303
|
+
* when this option is omitted entirely: no diff information was available
|
|
304
|
+
* for it, so a would-be finding there falls back to a `lead`, worded
|
|
305
|
+
* without an authorship claim, rather than a `defect` — see the header.
|
|
306
|
+
*/
|
|
307
|
+
readonly changedLines?: ReadonlyMap<string, readonly {
|
|
308
|
+
readonly start: number;
|
|
309
|
+
readonly end: number;
|
|
310
|
+
}[]>;
|
|
272
311
|
}
|
|
273
312
|
export declare const DEFAULT_COVERAGE_FLOOR = 0.6;
|
|
274
313
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/validation/env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/validation/env.ts"],"names":[],"mappings":"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"}
|
package/dist/validation/env.js
CHANGED
|
@@ -137,15 +137,29 @@
|
|
|
137
137
|
* own coverage guard exists to prevent — the same near-total-precision
|
|
138
138
|
* discipline, just moved to a different precondition.
|
|
139
139
|
*
|
|
140
|
-
* A pre-existing read in a file the diff also touches
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
140
|
+
* A pre-existing read in a file the diff also touches counted as "new" here
|
|
141
|
+
* unconditionally, until C2 (UAT phase 4, field-report round): a two-line,
|
|
142
|
+
* unrelated addition to a file that also happened to contain an untouched,
|
|
143
|
+
* long-standing undeclared read reported that read as "a new read this
|
|
144
|
+
* change introduces" — a `defect` claim the diff did not support. `files`
|
|
145
|
+
* alone can only ever say *which file*, never *which line*, so the fix is an
|
|
146
|
+
* optional second input: `options.changedLines`, the added-line ranges of a
|
|
147
|
+
* real diff (`addedLineRanges` over `get_git_diff`/`pr_analysis`'s own patch
|
|
148
|
+
* text), keyed by the same repo-relative paths as `files`. When a scoped
|
|
149
|
+
* read's file has an entry there, this rule asks the narrower, true question
|
|
150
|
+
* — does *this line* fall inside a range the diff actually added — instead of
|
|
151
|
+
* the file-level one, and says nothing at all about a read the diff proves is
|
|
152
|
+
* pre-existing.
|
|
153
|
+
*
|
|
154
|
+
* `changedLines` is optional and per-file: a file present in `files` but
|
|
155
|
+
* absent from the map is reported exactly as this check behaved before C2 —
|
|
156
|
+
* a `lead`, not a `defect`, and worded without the "new" claim, because no
|
|
157
|
+
* line-level information exists to support either. The scope disclosure below
|
|
158
|
+
* says which case applied and to how many variables.
|
|
145
159
|
*
|
|
146
160
|
* Deduplicated against `REQUIRED_NOT_DECLARED`: a variable this rule already
|
|
147
|
-
* flagged is skipped by that one, so a required,
|
|
148
|
-
* is reported once, not twice
|
|
161
|
+
* flagged — `defect` or `lead` — is skipped by that one, so a required,
|
|
162
|
+
* undeclared, diff-scoped read is reported once, not twice.
|
|
149
163
|
*
|
|
150
164
|
* ## Resolution, and why a config read is not R0
|
|
151
165
|
*
|
|
@@ -319,34 +333,83 @@ export function checkEnvironment(provider, scan, options = {}) {
|
|
|
319
333
|
const findings = [];
|
|
320
334
|
// UAT round 3, Suggestion 4 — see the header. Fires only when `options.files`
|
|
321
335
|
// scoped this call to a diff: `reads` above is already restricted to it, so
|
|
322
|
-
// every entry here is "
|
|
336
|
+
// every entry here is at least "in a file this call scoped to". Not gated by
|
|
323
337
|
// `CoverageGuard` at all — that guard protects a different quantity
|
|
324
338
|
// (whether the *required-read* denominator is large enough to trust a
|
|
325
|
-
// ratio), and this rule's precision comes
|
|
326
|
-
// per the header
|
|
339
|
+
// ratio), and this rule's precision comes from the diff scope (and, where
|
|
340
|
+
// `changedLines` is given, the line range within it) per the header.
|
|
327
341
|
const diffFlagged = new Set();
|
|
342
|
+
// C2 (UAT phase 4): only the names actually verified against a real added
|
|
343
|
+
// line — used to pick the wording/claim, never to change the dedup above,
|
|
344
|
+
// which stays keyed on `diffFlagged` so a variable this rule reports at all
|
|
345
|
+
// (defect or lead) is still not also reported by `REQUIRED_NOT_DECLARED`.
|
|
346
|
+
const diffFlaggedVerified = new Set();
|
|
328
347
|
if (scoped !== null) {
|
|
329
|
-
const
|
|
348
|
+
const changedLines = options.changedLines;
|
|
349
|
+
const readsByName = new Map();
|
|
330
350
|
for (const read of reads) {
|
|
331
|
-
|
|
332
|
-
if (
|
|
333
|
-
|
|
351
|
+
let sites = readsByName.get(read.name);
|
|
352
|
+
if (sites === undefined)
|
|
353
|
+
readsByName.set(read.name, (sites = []));
|
|
354
|
+
sites.push(read);
|
|
334
355
|
}
|
|
335
|
-
|
|
356
|
+
const byFileThenLine = (a, b) => a.file.localeCompare(b.file) || a.line - b.line;
|
|
357
|
+
for (const [name, sites] of readsByName) {
|
|
336
358
|
if (declaredAt.has(name))
|
|
337
359
|
continue;
|
|
360
|
+
let citation;
|
|
361
|
+
let verified = false;
|
|
362
|
+
if (changedLines === undefined) {
|
|
363
|
+
// No diff information anywhere in this call — every site is equally
|
|
364
|
+
// "in scope, unknown recency". Same site-choice as before C2.
|
|
365
|
+
citation = [...sites].sort(byFileThenLine)[0];
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
const inAddedRange = sites
|
|
369
|
+
.filter((r) => {
|
|
370
|
+
const ranges = changedLines.get(r.file);
|
|
371
|
+
return ranges !== undefined && ranges.some((rg) => r.line >= rg.start && r.line <= rg.end);
|
|
372
|
+
})
|
|
373
|
+
.sort(byFileThenLine);
|
|
374
|
+
if (inAddedRange.length > 0) {
|
|
375
|
+
citation = inAddedRange[0];
|
|
376
|
+
verified = true;
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
// Nothing verified new. Fall back only for a site whose own file has
|
|
380
|
+
// no diff information at all — a site whose file *does* have ranges
|
|
381
|
+
// and still did not match is proven pre-existing, and says nothing.
|
|
382
|
+
citation = sites.filter((r) => changedLines.get(r.file) === undefined).sort(byFileThenLine)[0];
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
if (citation === undefined)
|
|
386
|
+
continue;
|
|
338
387
|
diffFlagged.add(name);
|
|
339
|
-
|
|
388
|
+
if (verified)
|
|
389
|
+
diffFlaggedVerified.add(name);
|
|
390
|
+
const where = citation.line > 0 ? `${citation.file}:${citation.line}` : citation.file;
|
|
340
391
|
findings.push({
|
|
341
392
|
kind: "NEW_READ_UNDECLARED",
|
|
342
393
|
name,
|
|
343
|
-
claim: "defect",
|
|
344
|
-
detail:
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
394
|
+
claim: verified ? "defect" : "lead",
|
|
395
|
+
detail: verified
|
|
396
|
+
? `${name} is read at ${where}, a file this call scoped to, and no configuration file in ` +
|
|
397
|
+
"this repository declares it anywhere. This is a new read this change introduces, not a " +
|
|
398
|
+
"claim about whether the accessor fails when the variable is absent — see " +
|
|
399
|
+
"REQUIRED_NOT_DECLARED for that rule."
|
|
400
|
+
: `${name} is read at ${where}, in a file this call scoped to, and no configuration file ` +
|
|
401
|
+
"declares it. This is not a claim about whether the accessor fails when the variable is " +
|
|
402
|
+
"absent — see REQUIRED_NOT_DECLARED for that rule — and it is not a claim that this read " +
|
|
403
|
+
"is new: no line-level diff information was available for this file, so a pre-existing " +
|
|
404
|
+
"read here is reported the same as one the change just added.",
|
|
405
|
+
evidence: [
|
|
406
|
+
{
|
|
407
|
+
file: citation.file,
|
|
408
|
+
line: citation.line,
|
|
409
|
+
says: verified ? "added by the diff, here" : "read here, in a file this call scoped to",
|
|
410
|
+
},
|
|
411
|
+
],
|
|
412
|
+
resolution: Math.min(DECLARATIVE_RESOLUTION, citation.resolution),
|
|
350
413
|
});
|
|
351
414
|
}
|
|
352
415
|
}
|
|
@@ -379,12 +442,23 @@ export function checkEnvironment(provider, scan, options = {}) {
|
|
|
379
442
|
}
|
|
380
443
|
// Documentation drift, between same-application files only. Gated on the same
|
|
381
444
|
// floor: an example file documenting almost nothing is a fact about the file.
|
|
445
|
+
//
|
|
446
|
+
// C4 (UAT phase 4): the *scan* of .env/.env-example stays repository-wide —
|
|
447
|
+
// a declaration is repository-wide regardless of what changed, and the
|
|
448
|
+
// coverage ratio below is computed over that same repo-wide set so a scoped
|
|
449
|
+
// call cannot flip whether this section reports at all. Only *emission* is
|
|
450
|
+
// scoped: when `files` was given, a variable nothing in scope reads is not
|
|
451
|
+
// this call's business to report, the same way the read side above already
|
|
452
|
+
// narrows itself. `namedVariables` is already exactly "read by a scoped
|
|
453
|
+
// file" by construction (the read-side loop above skips unscoped files
|
|
454
|
+
// before it is populated), so no separate scoping pass is needed here.
|
|
382
455
|
const undocumented = [...dotenvSet.keys()].filter((n) => !dotenvExample.has(n));
|
|
383
456
|
if (dotenvExample.size > 0 && dotenvSet.size > 0) {
|
|
384
457
|
const documented = dotenvSet.size - undocumented.length;
|
|
385
458
|
const ratio = documented / dotenvSet.size;
|
|
386
459
|
if (ratio >= floor) {
|
|
387
|
-
|
|
460
|
+
const emitted = scoped === null ? undocumented : undocumented.filter((n) => namedVariables.has(n));
|
|
461
|
+
for (const name of emitted) {
|
|
388
462
|
const evidence = dotenvSet.get(name);
|
|
389
463
|
if (evidence === undefined)
|
|
390
464
|
continue;
|
|
@@ -399,6 +473,11 @@ export function checkEnvironment(provider, scan, options = {}) {
|
|
|
399
473
|
resolution: DECLARATIVE_RESOLUTION,
|
|
400
474
|
});
|
|
401
475
|
}
|
|
476
|
+
if (scoped !== null && emitted.length < undocumented.length) {
|
|
477
|
+
notes.push(`${undocumented.length - emitted.length} further variable(s) are set and undocumented ` +
|
|
478
|
+
"elsewhere in this repository; they are not listed because no file this call scoped to " +
|
|
479
|
+
"reads them.");
|
|
480
|
+
}
|
|
402
481
|
}
|
|
403
482
|
else {
|
|
404
483
|
notes.push(`${undocumented.length} variable(s) are set in a configuration file and documented in no ` +
|
|
@@ -428,7 +507,9 @@ export function checkEnvironment(provider, scan, options = {}) {
|
|
|
428
507
|
if (!readsAvailable) {
|
|
429
508
|
notes.push("No file in the graph carries environment reads, so nothing was checked against the code. " +
|
|
430
509
|
"This engine reads attrs.envReads on a file-scoped node — an array of { name, required, line } — " +
|
|
431
|
-
"
|
|
510
|
+
"which some adapters supply and others do not yet, so this sentence is about the " +
|
|
511
|
+
"producers behind this graph rather than about every producer there is. " +
|
|
512
|
+
"Only the configuration files were compared against each " +
|
|
432
513
|
"other. This is not a result of zero problems.");
|
|
433
514
|
}
|
|
434
515
|
else if (filesWithoutReads > 0) {
|
|
@@ -478,12 +559,19 @@ export function checkEnvironment(provider, scan, options = {}) {
|
|
|
478
559
|
if (scoped !== null) {
|
|
479
560
|
notes.push(`The read side was restricted to ${scoped.size} scoped file(s). Configuration files were ` +
|
|
480
561
|
"read in full, because a declaration is repository-wide regardless of what changed.");
|
|
481
|
-
if (
|
|
482
|
-
notes.push(`${
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
562
|
+
if (diffFlaggedVerified.size > 0) {
|
|
563
|
+
notes.push(`${diffFlaggedVerified.size} variable(s) read on a line the diff actually added in these ` +
|
|
564
|
+
`scoped file(s) are declared nowhere: ${[...diffFlaggedVerified].sort().join(", ")} — see ` +
|
|
565
|
+
"NEW_READ_UNDECLARED in findings, reported as a defect.");
|
|
566
|
+
}
|
|
567
|
+
const diffFlaggedFallback = [...diffFlagged].filter((name) => !diffFlaggedVerified.has(name));
|
|
568
|
+
if (diffFlaggedFallback.length > 0) {
|
|
569
|
+
notes.push(`${diffFlaggedFallback.length} further variable(s) read in these scoped file(s) are declared ` +
|
|
570
|
+
`nowhere, with no line-level diff information available to confirm the read is new: ` +
|
|
571
|
+
`${diffFlaggedFallback.sort().join(", ")} — see NEW_READ_UNDECLARED in findings, reported as ` +
|
|
572
|
+
'a lead rather than a defect. Scoped at file granularity, like every other check here that ' +
|
|
573
|
+
'takes "files": a pre-existing read in a file this call also scoped is reported the same as ' +
|
|
574
|
+
"one the change just added, because no diff was passed to tell them apart.");
|
|
487
575
|
}
|
|
488
576
|
}
|
|
489
577
|
if (kept.length < findings.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/validation/env.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/validation/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ export { checkRollbackReadiness, readMigrationOps } from "./rollback.ts";
|
|
|
11
11
|
export type { RollbackFinding, RollbackOptions, RollbackReport } from "./rollback.ts";
|
|
12
12
|
export { checkRouteDrift } from "./route-drift.ts";
|
|
13
13
|
export type { DriftOptions, DriftReport, DriftRoute, Introspection } from "./route-drift.ts";
|
|
14
|
+
export { ancestorInitPaths, checkOrmModelRegistration } from "./orm-registration.ts";
|
|
15
|
+
export type { OrmRegistrationFinding, OrmRegistrationFindingKind, OrmRegistrationOptions, OrmRegistrationReport, } from "./orm-registration.ts";
|
|
14
16
|
export { runJoinSubstitutionControl } from "./join-substitution.ts";
|
|
15
17
|
export type { FlaggedSubstitution, JoinSubstitutionOptions, JoinSubstitutionReport, SubstitutionCaller, SubstitutionRoute, SubstitutionUncontrollable, UnreproducibleJoin, } from "./join-substitution.ts";
|
|
16
18
|
export { scanConfigSurfaces, skipDirectory, readDotenv, readImageBuild, readStructured, readWranglerVars, readWranglerVarsEntries, } from "./sources.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC/G,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClF,YAAY,EACV,aAAa,EACb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EACP,SAAS,GACV,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC/G,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACrF,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClF,YAAY,EACV,aAAa,EACb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EACP,SAAS,GACV,MAAM,UAAU,CAAC"}
|
package/dist/validation/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { checkAttributeExistence, readUnresolvedFields } from "./attributes.js";
|
|
|
5
5
|
export { buildConfigGraph } from "./config-graph.js";
|
|
6
6
|
export { checkRollbackReadiness, readMigrationOps } from "./rollback.js";
|
|
7
7
|
export { checkRouteDrift } from "./route-drift.js";
|
|
8
|
+
export { ancestorInitPaths, checkOrmModelRegistration } from "./orm-registration.js";
|
|
8
9
|
export { runJoinSubstitutionControl } from "./join-substitution.js";
|
|
9
10
|
export { scanConfigSurfaces, skipDirectory, readDotenv, readImageBuild, readStructured, readWranglerVars, readWranglerVarsEntries, } from "./sources.js";
|
|
10
11
|
export { checkEnvironment, readEnvReads, DEFAULT_COVERAGE_FLOOR } from "./env.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAW/G,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAOhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AASrD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAWpE,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAWtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAW/G,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAOhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AASrD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAQrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAWpE,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAWtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,91 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DEC-166
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* them is why the row looked unreachable. **Source fidelity** — does a call
|
|
6
|
-
* site's text really support the edge's claim — is
|
|
7
|
-
* `bench/precision-adjudicate.mjs`'s job and is almost entirely
|
|
8
|
-
* `null`-producing (NOTE-C). **Join / identity fidelity** — does the endpoint
|
|
9
|
-
* id a caller's edge targets correspond, and *only* correspond, to the route
|
|
10
|
-
* an independent producer says is served there — is this file's job, and it
|
|
11
|
-
* is the layer the numbers this project publishes are actually made of.
|
|
12
|
-
*
|
|
13
|
-
* ## The instrument
|
|
14
|
-
*
|
|
15
|
-
* For every joined `USES_API` edge:
|
|
16
|
-
*
|
|
17
|
-
* 1. Take the **population** — every `SERVES_API`-linked route in the same
|
|
18
|
-
* repository, deduplicated by (method, normalised template). A fact
|
|
19
|
-
* produced by a *different pass* than the one under test.
|
|
20
|
-
* 2. **Exclude** any route identical in (method, template) to the edge's true
|
|
21
|
-
* target. A group of one substitutes onto itself, which is not a wrong
|
|
22
|
-
* target. This exclusion is load-bearing: without it every draw would match
|
|
23
|
-
* by construction and the control would manufacture false acceptances.
|
|
24
|
-
* 3. Substitute a different route from that population, holding the caller's
|
|
25
|
-
* raw evidence fixed.
|
|
26
|
-
* 4. Re-run the same identity computation against the substituted target.
|
|
27
|
-
* 5. **Expect refusal, always.** The substituted target's identity did not
|
|
28
|
-
* come from the rule under test and did not come from the caller — it came
|
|
29
|
-
* from an independent producer, so the harness can say why the seeded value
|
|
30
|
-
* is wrong without consulting the rule being tested. That is precisely what
|
|
31
|
-
* NOTE-C limit (a) requires and address-keyed source rules could not give.
|
|
32
|
-
*
|
|
33
|
-
* **Threshold 0%, and it is not a dial.** Wrongness here is established by an
|
|
34
|
-
* independent producer, so 0% is the honest floor rather than a number picked
|
|
35
|
-
* to accommodate anything. A non-zero acceptance is a row to read, never a
|
|
36
|
-
* ceiling to raise.
|
|
37
|
-
*
|
|
38
|
-
* ## What this control is, honestly, and what it is not
|
|
39
|
-
*
|
|
40
|
-
* On a correct implementation this control is **structurally** 0%: the
|
|
41
|
-
* caller's evidence normalises onto its own target, the population is
|
|
42
|
-
* deduplicated by that same identity, and every other group is by definition
|
|
43
|
-
* a different string. That is not a weakness dressed up as a floor — it is
|
|
44
|
-
* what a 0% floor *means*, and it is why the number is not a dial. Its value
|
|
45
|
-
* is as a **regression detector over the normalisation layer**: change
|
|
46
|
-
* `normaliseEndpointPath` (or the DEC-097 base composition, or the method
|
|
47
|
-
* half of the identity) so that it discards discriminating information, and
|
|
48
|
-
* two genuinely distinct routes collapse onto one string — at which point the
|
|
49
|
-
* caller's evidence supports a route it never called and the acceptance rate
|
|
50
|
-
* leaves zero. It is a detector for the *class* of suspect join, not a rule
|
|
51
|
-
* that says which flagged rows are wrong; a flagged row still needs a
|
|
52
|
-
* decision, the same way DEC-163's own open question does.
|
|
53
|
-
*
|
|
54
|
-
* ## Why the exclusion key is fixed while the identity under test is not
|
|
55
|
-
*
|
|
56
|
-
* `options.identity` exists so a deliberately degraded identity can be run
|
|
57
|
-
* through the same instrument and the control observed to fire — this repo's
|
|
58
|
-
* standing bar for an instrument (DEC-162's seeded-grader work): a control
|
|
59
|
-
* that has never been seen to fire proves nothing. The population's dedup and
|
|
60
|
-
* step 2's exclusion deliberately do **not** use it. They use the engine's
|
|
61
|
-
* fixed `endpointQsp`, because they are arithmetic over an independently
|
|
62
|
-
* produced route table, not the thing under test. If the exclusion used the
|
|
63
|
-
* identity under test, a degraded identity would collapse the whole
|
|
64
|
-
* population into the target's own group, every candidate would be excluded,
|
|
65
|
-
* and the run would report `UNCONTROLLABLE` — the defect hiding inside the
|
|
66
|
-
* one state that is explicitly not a pass. `join-substitution.test.ts` pins
|
|
67
|
-
* exactly that.
|
|
68
|
-
*/
|
|
69
|
-
/**
|
|
70
|
-
* One route from the independently-produced side: a `SERVES_API`-linked
|
|
71
|
-
* route's own declared method and path template.
|
|
2
|
+
* DEC-166's join/identity control for `USES_API` (distinct from source fidelity in `bench/precision-adjudicate.mjs`, NOTE-C).
|
|
3
|
+
* Substitutes an independent route, keyed by the fixed engine identity — never `options.identity` under test — and expects refusal always.
|
|
4
|
+
* Threshold 0%: a DEC-097 normalisation regression detector, not a dial.
|
|
72
5
|
*/
|
|
6
|
+
/** One route from the independently-produced side: a `SERVES_API`-linked
|
|
7
|
+
* route's own declared method and path template. */
|
|
73
8
|
export interface SubstitutionRoute {
|
|
74
9
|
readonly method: string;
|
|
75
10
|
readonly path: string;
|
|
76
11
|
/** Reporting only — never part of any key. */
|
|
77
12
|
readonly label?: string;
|
|
78
13
|
}
|
|
79
|
-
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* `basePath` is DEC-097's base with the origin already stripped and the path
|
|
84
|
-
* prefix kept; `written` is the path exactly as it appears at the call site.
|
|
85
|
-
* The composition is `basePath + written` and nothing else — re-implementing
|
|
86
|
-
* it here is how the instrument and the engine drift into disagreeing about
|
|
87
|
-
* what a join even is.
|
|
88
|
-
*/
|
|
14
|
+
/** One joined `USES_API` edge: caller's raw evidence plus its joined target.
|
|
15
|
+
* `basePath` is DEC-097's base (origin stripped); composition is always
|
|
16
|
+
* `basePath + written`, never re-implemented here. */
|
|
89
17
|
export interface SubstitutionCaller {
|
|
90
18
|
/** Where the call site is, for reporting only. */
|
|
91
19
|
readonly at: string;
|
|
@@ -96,14 +24,8 @@ export interface SubstitutionCaller {
|
|
|
96
24
|
readonly targetMethod: string;
|
|
97
25
|
readonly targetPath: string;
|
|
98
26
|
}
|
|
99
|
-
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* Same third-state discipline as DEC-162: none of these counts toward a
|
|
103
|
-
* numerator or a denominator, and a repository reporting one has said nothing
|
|
104
|
-
* about whether its join logic is sound — it has said it has no material to
|
|
105
|
-
* test it against, which is a fact about the corpus, not the engine.
|
|
106
|
-
*/
|
|
27
|
+
/** No material to run against (DEC-162 third-state discipline): counts toward
|
|
28
|
+
* neither numerator nor denominator — a fact about the corpus, not the engine. */
|
|
107
29
|
export type SubstitutionUncontrollable = {
|
|
108
30
|
readonly code: "POPULATION_ZERO";
|
|
109
31
|
readonly detail: string;
|
|
@@ -114,15 +36,9 @@ export type SubstitutionUncontrollable = {
|
|
|
114
36
|
readonly code: "NO_JOINED_EDGES";
|
|
115
37
|
readonly detail: string;
|
|
116
38
|
};
|
|
117
|
-
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
* `trueTarget` and `substituted` are the **fixed** group keys, not the
|
|
121
|
-
* identity under test — a flagged row has to name two routes a human can go
|
|
122
|
-
* and read, and under a degraded identity the string under test is precisely
|
|
123
|
-
* the one that no longer distinguishes them. `collapsedTo` is that string:
|
|
124
|
-
* the value both the caller's evidence and the substituted route produced.
|
|
125
|
-
*/
|
|
39
|
+
/** A substituted route the caller's evidence accepted — must never happen.
|
|
40
|
+
* `trueTarget`/`substituted` are the fixed group keys, not the identity under
|
|
41
|
+
* test; `collapsedTo` is the string both produced. */
|
|
126
42
|
export interface FlaggedSubstitution {
|
|
127
43
|
readonly at: string;
|
|
128
44
|
/** The route the edge actually joined to, by fixed group key. */
|
|
@@ -132,14 +48,9 @@ export interface FlaggedSubstitution {
|
|
|
132
48
|
/** The identity string the caller's evidence and the substitute both produced. */
|
|
133
49
|
readonly collapsedTo: string;
|
|
134
50
|
}
|
|
135
|
-
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
* Reported separately from an acceptance because it is a different statement:
|
|
139
|
-
* an acceptance says the evidence supports more than one route, this says the
|
|
140
|
-
* evidence does not support the route the edge claims. Both are defects; only
|
|
141
|
-
* the first is what the substitution draw measures.
|
|
142
|
-
*/
|
|
51
|
+
/** A joined edge whose own raw evidence doesn't rebuild its stored target.
|
|
52
|
+
* Reported separately from an acceptance: a different defect, not what the
|
|
53
|
+
* substitution draw measures. */
|
|
143
54
|
export interface UnreproducibleJoin {
|
|
144
55
|
readonly at: string;
|
|
145
56
|
/** What the caller's own raw evidence produced, under the identity in force. */
|
|
@@ -165,22 +76,13 @@ export interface JoinSubstitutionReport {
|
|
|
165
76
|
readonly unreproducible: readonly UnreproducibleJoin[];
|
|
166
77
|
}
|
|
167
78
|
export interface JoinSubstitutionOptions {
|
|
168
|
-
/**
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
* file's header for why the seam exists and why the exclusion key does not
|
|
172
|
-
* share it.
|
|
173
|
-
*/
|
|
79
|
+
/** Identity under test. Defaults to the engine's `endpointQsp` — the only
|
|
80
|
+
* value a real run should use; see file header for why the exclusion key
|
|
81
|
+
* doesn't share it. */
|
|
174
82
|
readonly identity?: (method: string, path: string) => string;
|
|
175
83
|
}
|
|
176
|
-
/**
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
* Deterministic and exhaustive: every candidate in the population is drawn for
|
|
180
|
-
* every caller, never a fixed-N sample. Route tables are frequently far below
|
|
181
|
-
* any fixed draw size — axum shipped 18/18, full population — and a fixed-N
|
|
182
|
-
* bar would make this layer structurally uncontrollable for exactly the
|
|
183
|
-
* repositories with the smallest, most auditable route tables.
|
|
184
|
-
*/
|
|
84
|
+
/** Runs the control over one repository's joined edges and route table.
|
|
85
|
+
* Deterministic and exhaustive — every candidate is drawn for every caller,
|
|
86
|
+
* never a fixed-N sample (axum shipped 18/18, full population). */
|
|
185
87
|
export declare function runJoinSubstitutionControl(callers: readonly SubstitutionCaller[], routes: readonly SubstitutionRoute[], options?: JoinSubstitutionOptions): JoinSubstitutionReport;
|
|
186
88
|
//# sourceMappingURL=join-substitution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join-substitution.d.ts","sourceRoot":"","sources":["../../src/validation/join-substitution.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"join-substitution.d.ts","sourceRoot":"","sources":["../../src/validation/join-substitution.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;qDACqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;uDAEuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;mFACmF;AACnF,MAAM,MAAM,0BAA0B,GAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE;;uDAEuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;kCAEkC;AAClC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,0BAA0B,CAAC;IACrD,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxD;AAED,MAAM,WAAW,uBAAuB;IACtC;;4BAEwB;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9D;AAKD;;oEAEoE;AACpE,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,MAAM,EAAE,SAAS,iBAAiB,EAAE,EACpC,OAAO,GAAE,uBAA4B,GACpC,sBAAsB,CAgHxB"}
|