@a11ign/screenreader-fleet 0.0.0-reserved.0 → 0.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/LICENSE +661 -0
- package/README.md +94 -2
- package/dist/capture-client.d.mts +49 -0
- package/dist/capture-client.d.mts.map +1 -0
- package/dist/capture-client.mjs +352 -0
- package/dist/capture-client.mjs.map +1 -0
- package/dist/check-worker-code.d.mts +34 -0
- package/dist/check-worker-code.d.mts.map +1 -0
- package/dist/check-worker-code.mjs +142 -0
- package/dist/check-worker-code.mjs.map +1 -0
- package/dist/cli-flags.d.mts +71 -0
- package/dist/cli-flags.d.mts.map +1 -0
- package/dist/cli-flags.mjs +207 -0
- package/dist/cli-flags.mjs.map +1 -0
- package/dist/code-drift.d.mts +140 -0
- package/dist/code-drift.d.mts.map +1 -0
- package/dist/code-drift.mjs +284 -0
- package/dist/code-drift.mjs.map +1 -0
- package/dist/command-line-census.d.mts +33 -0
- package/dist/command-line-census.d.mts.map +1 -0
- package/dist/command-line-census.mjs +96 -0
- package/dist/command-line-census.mjs.map +1 -0
- package/dist/compare-workers.d.mts +3 -0
- package/dist/compare-workers.d.mts.map +1 -0
- package/dist/compare-workers.mjs +332 -0
- package/dist/compare-workers.mjs.map +1 -0
- package/dist/control-plane-isolation.d.mts +45 -0
- package/dist/control-plane-isolation.d.mts.map +1 -0
- package/dist/control-plane-isolation.mjs +67 -0
- package/dist/control-plane-isolation.mjs.map +1 -0
- package/dist/deploy-worker.d.mts +3 -0
- package/dist/deploy-worker.d.mts.map +1 -0
- package/dist/deploy-worker.mjs +333 -0
- package/dist/deploy-worker.mjs.map +1 -0
- package/dist/doctor.d.mts +216 -0
- package/dist/doctor.d.mts.map +1 -0
- package/dist/doctor.mjs +962 -0
- package/dist/doctor.mjs.map +1 -0
- package/dist/fleet-consistency.d.mts +235 -0
- package/dist/fleet-consistency.d.mts.map +1 -0
- package/dist/fleet-consistency.mjs +436 -0
- package/dist/fleet-consistency.mjs.map +1 -0
- package/dist/fleet-env.d.mts +228 -0
- package/dist/fleet-env.d.mts.map +1 -0
- package/dist/fleet-env.mjs +509 -0
- package/dist/fleet-env.mjs.map +1 -0
- package/dist/fleet-scripts.d.mts +11 -0
- package/dist/fleet-scripts.d.mts.map +1 -0
- package/dist/fleet-scripts.mjs +41 -0
- package/dist/fleet-scripts.mjs.map +1 -0
- package/dist/git-safe-env.d.mts +10 -0
- package/dist/git-safe-env.d.mts.map +1 -0
- package/dist/git-safe-env.mjs +44 -0
- package/dist/git-safe-env.mjs.map +1 -0
- package/dist/guest-run.d.mts +26 -0
- package/dist/guest-run.d.mts.map +1 -0
- package/dist/guest-run.mjs +164 -0
- package/dist/guest-run.mjs.map +1 -0
- package/dist/host-address.d.mts +33 -0
- package/dist/host-address.d.mts.map +1 -0
- package/dist/host-address.mjs +105 -0
- package/dist/host-address.mjs.map +1 -0
- package/dist/host-capacity.d.mts +64 -0
- package/dist/host-capacity.d.mts.map +1 -0
- package/dist/host-capacity.mjs +152 -0
- package/dist/host-capacity.mjs.map +1 -0
- package/dist/host-metrics.d.mts +116 -0
- package/dist/host-metrics.d.mts.map +1 -0
- package/dist/host-metrics.mjs +201 -0
- package/dist/host-metrics.mjs.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/local-vm.d.ts +125 -0
- package/dist/local-vm.d.ts.map +1 -0
- package/dist/local-vm.js +360 -0
- package/dist/local-vm.js.map +1 -0
- package/dist/measure-guard.d.mts +34 -0
- package/dist/measure-guard.d.mts.map +1 -0
- package/dist/measure-guard.mjs +73 -0
- package/dist/measure-guard.mjs.map +1 -0
- package/dist/normalise-fleet.d.mts +2 -0
- package/dist/normalise-fleet.d.mts.map +1 -0
- package/dist/normalise-fleet.mjs +76 -0
- package/dist/normalise-fleet.mjs.map +1 -0
- package/dist/npm-cli-executable.d.mts +42 -0
- package/dist/npm-cli-executable.d.mts.map +1 -0
- package/dist/npm-cli-executable.mjs +159 -0
- package/dist/npm-cli-executable.mjs.map +1 -0
- package/dist/probe-outcome.d.mts +89 -0
- package/dist/probe-outcome.d.mts.map +1 -0
- package/dist/probe-outcome.mjs +104 -0
- package/dist/probe-outcome.mjs.map +1 -0
- package/dist/protocol-guard.d.mts +34 -0
- package/dist/protocol-guard.d.mts.map +1 -0
- package/dist/protocol-guard.mjs +121 -0
- package/dist/protocol-guard.mjs.map +1 -0
- package/dist/source-walk.d.mts +12 -0
- package/dist/source-walk.d.mts.map +1 -0
- package/dist/source-walk.mjs +56 -0
- package/dist/source-walk.mjs.map +1 -0
- package/dist/transient-fault.d.mts +6 -0
- package/dist/transient-fault.d.mts.map +1 -0
- package/dist/transient-fault.mjs +86 -0
- package/dist/transient-fault.mjs.map +1 -0
- package/dist/utm-deprecated.d.mts +6 -0
- package/dist/utm-deprecated.d.mts.map +1 -0
- package/dist/utm-deprecated.mjs +23 -0
- package/dist/utm-deprecated.mjs.map +1 -0
- package/dist/worker-code-check.d.mts +29 -0
- package/dist/worker-code-check.d.mts.map +1 -0
- package/dist/worker-code-check.mjs +85 -0
- package/dist/worker-code-check.mjs.map +1 -0
- package/dist/worker-health.d.mts +56 -0
- package/dist/worker-health.d.mts.map +1 -0
- package/dist/worker-health.mjs +73 -0
- package/dist/worker-health.mjs.map +1 -0
- package/dist/worker-http.d.mts +103 -0
- package/dist/worker-http.d.mts.map +1 -0
- package/dist/worker-http.mjs +277 -0
- package/dist/worker-http.mjs.map +1 -0
- package/dist/worker-stats.d.mts +66 -0
- package/dist/worker-stats.d.mts.map +1 -0
- package/dist/worker-stats.mjs +143 -0
- package/dist/worker-stats.mjs.map +1 -0
- package/package.json +96 -4
- package/src/local-worker/autounattend.xml +280 -0
- package/src/local-worker/build-vm.sh +218 -0
- package/src/local-worker/clone-worker.sh +141 -0
- package/src/local-worker/create-utm-vm.sh +202 -0
- package/src/local-worker/fetch-windows-iso.sh +238 -0
- package/src/local-worker/first-boot.cmd +58 -0
- package/src/local-worker/worker-ctl.sh +442 -0
- package/src/provisioning/README.md +28 -0
- package/src/provisioning/apply-foreground-lock-timeout.ps1 +71 -0
- package/src/provisioning/bare-metal/README.md +213 -0
- package/src/provisioning/bare-metal/a11y-bootstrap.service +58 -0
- package/src/provisioning/bare-metal/autounattend.xml +428 -0
- package/src/provisioning/bare-metal/serve-bootstrap.sh +86 -0
- package/src/provisioning/bootstrap-control-plane.sh +463 -0
- package/src/provisioning/bootstrap-windows-worker.ps1 +649 -0
- package/src/provisioning/build-lean-worker-image.ps1 +275 -0
- package/src/provisioning/diagnose-nvda-worker.ps1 +174 -0
- package/src/provisioning/provision-nvda-worker.ps1 +827 -0
- package/src/provisioning/set-display-mode.ps1 +411 -0
- package/src/provisioning/stamp-provision-revision.ps1 +184 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.mjs","sourceRoot":"","sources":["../src/doctor.mjs"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare guests field by field.
|
|
3
|
+
*
|
|
4
|
+
* @param {Guest[]} guests
|
|
5
|
+
* @returns {{consistent: boolean, mismatches: Mismatch[], compared: number, fields: FieldCoverage,
|
|
6
|
+
* reportedOnly: ReportedDrift[]}}
|
|
7
|
+
* `compared` is how many guests the verdict is actually ABOUT -- #920. A guest with no `environment`
|
|
8
|
+
* and no `policy` is dropped below before comparing, so it is not the length of what was passed in,
|
|
9
|
+
* and a caller that reports `consistent` without it is stating agreement over a set it cannot name.
|
|
10
|
+
* `fields` is that same question one axis over: WHICH fields the verdict is about -- #1997.
|
|
11
|
+
* `reportedOnly` is the third channel (#2063): compared, named, and part of NEITHER of the two above,
|
|
12
|
+
* which is what makes it something to report rather than something to refuse.
|
|
13
|
+
*/
|
|
14
|
+
export function fleetConsistency(guests: Guest[]): {
|
|
15
|
+
consistent: boolean;
|
|
16
|
+
mismatches: Mismatch[];
|
|
17
|
+
compared: number;
|
|
18
|
+
fields: FieldCoverage;
|
|
19
|
+
reportedOnly: ReportedDrift[];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* One line per reported-only field that has something to say, in `describeMismatches`'s own shape.
|
|
23
|
+
*
|
|
24
|
+
* SEPARATE FROM `describeMismatches` rather than a flag on it, because the two lines make different
|
|
25
|
+
* claims and a reader has to be able to tell them apart at a glance: that one says the fleet is not
|
|
26
|
+
* usable for a capture run, this one says the fleet is not identical and the run may proceed anyway.
|
|
27
|
+
* Folding them would put the ruling's own distinction behind a boolean argument.
|
|
28
|
+
*
|
|
29
|
+
* @param {ReportedDrift[]} drifts
|
|
30
|
+
* @returns {string[]}
|
|
31
|
+
*/
|
|
32
|
+
export function describeReportedOnly(drifts: ReportedDrift[]): string[];
|
|
33
|
+
/**
|
|
34
|
+
* One line per mismatch, naming the guests, so the report is actionable rather than just alarming.
|
|
35
|
+
*
|
|
36
|
+
* @param {Mismatch[]} mismatches
|
|
37
|
+
* @returns {string[]}
|
|
38
|
+
*/
|
|
39
|
+
export function describeMismatches(mismatches: Mismatch[]): string[];
|
|
40
|
+
/**
|
|
41
|
+
* Are the guests actually interchangeable?
|
|
42
|
+
*
|
|
43
|
+
* The pool assumes they are. `captureAcrossPool` dispatches a case to whichever worker is free, the
|
|
44
|
+
* cache lets any guest reuse another's evidence, and a good/bad pair is only comparable because both
|
|
45
|
+
* halves came from equivalent machines. Every one of those assumptions is silently false the moment
|
|
46
|
+
* two guests differ.
|
|
47
|
+
*
|
|
48
|
+
* They did differ, twice in one day, and neither was caught by tooling:
|
|
49
|
+
*
|
|
50
|
+
* - Edge auto-updated to 151 on one guest while the others stayed on 150, despite the updater being
|
|
51
|
+
* policy-disabled. The cache key covers `browserVersion`, so evidence was not corrupted — but hit
|
|
52
|
+
* rates halved and the corpus became heterogeneous.
|
|
53
|
+
* - `StartupBoostEnabled` read 1 on two guests and 0 on a third. Nothing keys on that at all.
|
|
54
|
+
*
|
|
55
|
+
* The first was noticed by reading a boot log by eye; the second by a human looking at a screenshot of
|
|
56
|
+
* a guest console. Neither is a detection mechanism. This is.
|
|
57
|
+
*
|
|
58
|
+
* Deliberately NOT fatal. A run on slightly mismatched guests is worse than one on matched guests and
|
|
59
|
+
* far better than no run, and this project's rule is that a diagnostic must never be the thing that
|
|
60
|
+
* takes the pool offline. It reports; the operator decides.
|
|
61
|
+
*/
|
|
62
|
+
/**
|
|
63
|
+
* Fields that must match across the fleet, and why each one matters.
|
|
64
|
+
*
|
|
65
|
+
* `workerCode` is absent on purpose: it changes when a comment changes, and the deploy tooling already
|
|
66
|
+
* verifies it against the checkout. Flagging it here would cry wolf on every reworded line.
|
|
67
|
+
*/
|
|
68
|
+
export const MUST_MATCH: {
|
|
69
|
+
path: string;
|
|
70
|
+
why: string;
|
|
71
|
+
}[];
|
|
72
|
+
/**
|
|
73
|
+
* THE THIRD CHANNEL: fields that are COMPARED AND NAMED, and that gate nothing — #2063.
|
|
74
|
+
*
|
|
75
|
+
* `MUST_MATCH` above is a capture gate in both its channels. A disagreement there sets `consistent:
|
|
76
|
+
* false` and `capture-fleet-guard` exits 3; a field any compared guest fails to report lands in
|
|
77
|
+
* `fields.coverage` and, since #2047, exits 3 as well. So a field that belongs in the REPORT but must not
|
|
78
|
+
* refuse a run has nowhere to go in either — and adding it to one of them anyway is not a small
|
|
79
|
+
* mis-filing: `displayAdapter` reads one value on nine guests and another on the tenth, one letter apart,
|
|
80
|
+
* so a gate on it would refuse every capture on this fleet for ever.
|
|
81
|
+
*
|
|
82
|
+
* THIS CHANNEL IS A WAITING ROOM FOR SOME FIELDS AND A PERMANENT HOME FOR OTHERS, and the two must not be
|
|
83
|
+
* confused. `nodeVersion` was the first kind: `ceo` ruled the order on #2063, 2026-09-23 — **report it,
|
|
84
|
+
* then pin provisioning so the fleet converges, and only then may it join `MUST_MATCH`** — and #2170 is
|
|
85
|
+
* that last step, taken once the fleet read one runtime on all ten guests. `displayAdapter` is the
|
|
86
|
+
* second kind: the difference it reports is HARDWARE (`Intel(R) UHD Graphics 630` against
|
|
87
|
+
* `Intel(R) HD Graphics 630` on one box), so no provisioning run converges it and it can never graduate
|
|
88
|
+
* the way `nodeVersion` did. A field arriving here needs its exit named, or "not yet a gate" decays into
|
|
89
|
+
* "never looked at again".
|
|
90
|
+
*
|
|
91
|
+
* So these fields are compared exactly as the gating ones are, and their drift is named on the verdict
|
|
92
|
+
* line with each guest's value — but they contribute to NEITHER `mismatches` NOR `fields.coverage`, which
|
|
93
|
+
* are the only two things any gate reads. A fleet differing on one of them is `consistent: true`.
|
|
94
|
+
*
|
|
95
|
+
* A field NOBODY reports is `unreported` here rather than silent, which is the same distinction #1997
|
|
96
|
+
* drew for the gating fields: a field compared on nobody draws no values to disagree about and would
|
|
97
|
+
* otherwise read exactly like a field every guest agrees on. It is the state `displayAdapter` sat in
|
|
98
|
+
* until the worker carrying it was deployed on 2026-09-23, and the state any field added here starts in,
|
|
99
|
+
* and it must be readable as such without refusing anything.
|
|
100
|
+
*/
|
|
101
|
+
export const REPORTED_ONLY: {
|
|
102
|
+
path: string;
|
|
103
|
+
why: string;
|
|
104
|
+
}[];
|
|
105
|
+
/**
|
|
106
|
+
* One field the guests disagree about, and the guests' values for it.
|
|
107
|
+
*
|
|
108
|
+
* Named once because it is produced by `fleetConsistency` and consumed by `describeMismatches`, and the
|
|
109
|
+
* two had already drifted apart the moment either was annotated — `object` on one side against
|
|
110
|
+
* `Record<string, unknown>` on the other, which typecheck caught in the test that calls them in sequence.
|
|
111
|
+
* Two spellings of one shape is the duplication this repo names as its most expensive recurring defect,
|
|
112
|
+
* and a typedef is the cheapest form of "delete a copy".
|
|
113
|
+
*
|
|
114
|
+
* @typedef {{field: string, why: string, values: Record<string, unknown>}} Mismatch
|
|
115
|
+
*/
|
|
116
|
+
/** Edge policy values every guest must agree on, checked separately because they come from /diagnostics. */
|
|
117
|
+
export const POLICY_MUST_MATCH: string[];
|
|
118
|
+
/**
|
|
119
|
+
* Which fields the verdict is actually ABOUT -- #1997.
|
|
120
|
+
*
|
|
121
|
+
* `compared` NAMES the fields at least one guest reported a value for; `unchecked` names the ones that
|
|
122
|
+
* drew a value from NOBODY. The second list exists because `check()` below skips an absent value, which
|
|
123
|
+
* is right (a rolling deploy must not flag the guest it has not reached yet) and has a cost: a field no
|
|
124
|
+
* guest reports contributes no values, `new Set([]).size > 1` is false, and it reads as agreement.
|
|
125
|
+
* A field compared on nobody and a field equal on everybody produced the IDENTICAL verdict.
|
|
126
|
+
*
|
|
127
|
+
* Measured 2026-09-22T20:09Z on the live fleet, at the merge of #1953: nine fields at 10/10 guests and
|
|
128
|
+
* `displayMode` at 0/10, and `fleet:status` printed `fleet CONSISTENT across 10 of 10 -- these workers
|
|
129
|
+
* are interchangeable for capture`. The display was still not compared. Naming the two lists is what
|
|
130
|
+
* lets a reader tell "they agree" from "nobody was asked".
|
|
131
|
+
*
|
|
132
|
+
* `coverage` IS THE SAME QUESTION WITHOUT THE THRESHOLD -- #2019. The two lists above are a PARTITION on
|
|
133
|
+
* "did anybody report it", which answers 0-of-10 and says nothing about 1-of-10; `fleet:status` read the
|
|
134
|
+
* second as agreement about ten guests on the strength of one. So every asked field also carries how many
|
|
135
|
+
* of the asked guests actually reported it, and the verdict draws its own line. `compared`/`unchecked`
|
|
136
|
+
* stay because they are what a caller greps for the REMEDY -- a field at 0 sends a reader to the field,
|
|
137
|
+
* a field at k sends them to the boxes -- and `coverage` is the measurement both are derived from.
|
|
138
|
+
*/
|
|
139
|
+
export type FieldReporters = {
|
|
140
|
+
field: string;
|
|
141
|
+
reported: number;
|
|
142
|
+
asked: number;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Which fields the verdict is actually ABOUT -- #1997.
|
|
146
|
+
*
|
|
147
|
+
* `compared` NAMES the fields at least one guest reported a value for; `unchecked` names the ones that
|
|
148
|
+
* drew a value from NOBODY. The second list exists because `check()` below skips an absent value, which
|
|
149
|
+
* is right (a rolling deploy must not flag the guest it has not reached yet) and has a cost: a field no
|
|
150
|
+
* guest reports contributes no values, `new Set([]).size > 1` is false, and it reads as agreement.
|
|
151
|
+
* A field compared on nobody and a field equal on everybody produced the IDENTICAL verdict.
|
|
152
|
+
*
|
|
153
|
+
* Measured 2026-09-22T20:09Z on the live fleet, at the merge of #1953: nine fields at 10/10 guests and
|
|
154
|
+
* `displayMode` at 0/10, and `fleet:status` printed `fleet CONSISTENT across 10 of 10 -- these workers
|
|
155
|
+
* are interchangeable for capture`. The display was still not compared. Naming the two lists is what
|
|
156
|
+
* lets a reader tell "they agree" from "nobody was asked".
|
|
157
|
+
*
|
|
158
|
+
* `coverage` IS THE SAME QUESTION WITHOUT THE THRESHOLD -- #2019. The two lists above are a PARTITION on
|
|
159
|
+
* "did anybody report it", which answers 0-of-10 and says nothing about 1-of-10; `fleet:status` read the
|
|
160
|
+
* second as agreement about ten guests on the strength of one. So every asked field also carries how many
|
|
161
|
+
* of the asked guests actually reported it, and the verdict draws its own line. `compared`/`unchecked`
|
|
162
|
+
* stay because they are what a caller greps for the REMEDY -- a field at 0 sends a reader to the field,
|
|
163
|
+
* a field at k sends them to the boxes -- and `coverage` is the measurement both are derived from.
|
|
164
|
+
*/
|
|
165
|
+
export type FieldCoverage = {
|
|
166
|
+
compared: string[];
|
|
167
|
+
unchecked: string[];
|
|
168
|
+
coverage: FieldReporters[];
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* One reported-only field that has something to say, and WHICH thing it is saying — #2063.
|
|
172
|
+
*
|
|
173
|
+
* `drifted` is the guests giving more than one value; `unreported` is some or all of them giving none.
|
|
174
|
+
* Two states rather than a boolean because the REMEDY differs and the report has to name it: drift sends
|
|
175
|
+
* a reader to the provisioning pin, silence sends them to the worker deploy. Neither is a refusal.
|
|
176
|
+
*
|
|
177
|
+
* It carries `reported`/`asked` for the same reason `FieldReporters` does — a count is what lets a reader
|
|
178
|
+
* tell 0 of 10 from 9 of 10 — and the values map for the reason `Mismatch` does: drift detected and not
|
|
179
|
+
* located is not actionable.
|
|
180
|
+
*/
|
|
181
|
+
export type ReportedDrift = {
|
|
182
|
+
field: string;
|
|
183
|
+
why: string;
|
|
184
|
+
values: Record<string, unknown>;
|
|
185
|
+
reported: number;
|
|
186
|
+
asked: number;
|
|
187
|
+
state: "drifted" | "unreported";
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* ONE FIELD READ ACROSS THE FLEET, before anybody decides what it means.
|
|
191
|
+
*
|
|
192
|
+
* Split out from `fleetConsistency` when the third channel arrived (#2063), because the READING and the
|
|
193
|
+
* CONSEQUENCE are two things and only the second differs between the channels: `MUST_MATCH` turns a
|
|
194
|
+
* reading into a mismatch and a coverage row, `REPORTED_ONLY` turns the same reading into a named drift
|
|
195
|
+
* that gates nothing. One reader means the two channels cannot drift apart in how they compare — a
|
|
196
|
+
* second copy of this loop is how a "reported-only" field would end up counted differently from a gating
|
|
197
|
+
* one and nobody would know which was right.
|
|
198
|
+
*/
|
|
199
|
+
export type Guest = {
|
|
200
|
+
worker: string;
|
|
201
|
+
environment?: Record<string, unknown>;
|
|
202
|
+
policy?: Record<string, unknown>;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* ONE FIELD READ ACROSS THE FLEET, before anybody decides what it means.
|
|
206
|
+
*
|
|
207
|
+
* Split out from `fleetConsistency` when the third channel arrived (#2063), because the READING and the
|
|
208
|
+
* CONSEQUENCE are two things and only the second differs between the channels: `MUST_MATCH` turns a
|
|
209
|
+
* reading into a mismatch and a coverage row, `REPORTED_ONLY` turns the same reading into a named drift
|
|
210
|
+
* that gates nothing. One reader means the two channels cannot drift apart in how they compare — a
|
|
211
|
+
* second copy of this loop is how a "reported-only" field would end up counted differently from a gating
|
|
212
|
+
* one and nobody would know which was right.
|
|
213
|
+
*/
|
|
214
|
+
export type Reading = {
|
|
215
|
+
field: string;
|
|
216
|
+
why: string;
|
|
217
|
+
values: Record<string, unknown>;
|
|
218
|
+
reported: number;
|
|
219
|
+
asked: number;
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* One field the guests disagree about, and the guests' values for it.
|
|
223
|
+
*
|
|
224
|
+
* Named once because it is produced by `fleetConsistency` and consumed by `describeMismatches`, and the
|
|
225
|
+
* two had already drifted apart the moment either was annotated — `object` on one side against
|
|
226
|
+
* `Record<string, unknown>` on the other, which typecheck caught in the test that calls them in sequence.
|
|
227
|
+
* Two spellings of one shape is the duplication this repo names as its most expensive recurring defect,
|
|
228
|
+
* and a typedef is the cheapest form of "delete a copy".
|
|
229
|
+
*/
|
|
230
|
+
export type Mismatch = {
|
|
231
|
+
field: string;
|
|
232
|
+
why: string;
|
|
233
|
+
values: Record<string, unknown>;
|
|
234
|
+
};
|
|
235
|
+
//# sourceMappingURL=fleet-consistency.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-consistency.d.mts","sourceRoot":"","sources":["../src/fleet-consistency.mjs"],"names":[],"mappings":"AAqUA;;;;;;;;;;;;GAYG;AACH,yCAVW,KAAK,EAAE,GACL;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAC9F,YAAY,EAAE,aAAa,EAAE,CAAA;CAAC,CAgClC;AAED;;;;;;;;;;GAUG;AACH,6CAHW,aAAa,EAAE,GACb,MAAM,EAAE,CAIpB;AAmBD;;;;;GAKG;AACH,+CAHW,QAAQ,EAAE,GACR,MAAM,EAAE,CAQpB;AAvZD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;GAKG;AACH;;;IA4EE;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH;;;IAeE;AAEF;;;;;;;;;;GAUG;AAEH,4GAA4G;AAC5G,yCAAkF;;;;;;;;;;;;;;;;;;;;;;6BAuBrE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC;;;;;;;;;;;;;;;;;;;;;;4BAChD;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAC;;;;;;;;;;;;4BAcrE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAAA;CAAC;;;;;;;;;;;oBAavC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAC;;;;;;;;;;;sBACzF;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC;;;;;;;;;;uBAzD9F;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAC"}
|