@flighthq/tool-capture 0.3.0 → 0.3.1-next.1041.35b950c
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/README.md +1 -1
- package/dist/baselineStore.d.ts +12 -1
- package/dist/baselineStore.d.ts.map +1 -1
- package/dist/baselineStore.js +83 -6
- package/dist/baselineStore.js.map +1 -1
- package/dist/bin.js +80 -6
- package/dist/bin.js.map +1 -1
- package/dist/captureBaselineCoverageManifest.d.ts +80 -0
- package/dist/captureBaselineCoverageManifest.d.ts.map +1 -0
- package/dist/captureBaselineCoverageManifest.js +178 -0
- package/dist/captureBaselineCoverageManifest.js.map +1 -0
- package/dist/captureBaselineSanity.d.ts +9 -0
- package/dist/captureBaselineSanity.d.ts.map +1 -0
- package/dist/captureBaselineSanity.js +32 -0
- package/dist/captureBaselineSanity.js.map +1 -0
- package/dist/captureBenchmark.d.ts.map +1 -1
- package/dist/captureBenchmark.js +5 -1
- package/dist/captureBenchmark.js.map +1 -1
- package/dist/captureDomReadback.d.ts +4 -0
- package/dist/captureDomReadback.d.ts.map +1 -0
- package/dist/captureDomReadback.js +51 -0
- package/dist/captureDomReadback.js.map +1 -0
- package/dist/captureEntry.d.ts +12 -3
- package/dist/captureEntry.d.ts.map +1 -1
- package/dist/captureEntry.js +87 -36
- package/dist/captureEntry.js.map +1 -1
- package/dist/captureEntryFilter.d.ts +5 -0
- package/dist/captureEntryFilter.d.ts.map +1 -0
- package/dist/captureEntryFilter.js +23 -0
- package/dist/captureEntryFilter.js.map +1 -0
- package/dist/captureFlightPreset.js +10 -4
- package/dist/captureFlightPreset.js.map +1 -1
- package/dist/captureProtocol.d.ts +3 -0
- package/dist/captureProtocol.d.ts.map +1 -1
- package/dist/captureProtocol.js.map +1 -1
- package/dist/captureResourceFailure.d.ts +4 -0
- package/dist/captureResourceFailure.d.ts.map +1 -0
- package/dist/captureResourceFailure.js +31 -0
- package/dist/captureResourceFailure.js.map +1 -0
- package/dist/captureScreenshotHash.d.ts +30 -0
- package/dist/captureScreenshotHash.d.ts.map +1 -0
- package/dist/captureScreenshotHash.js +108 -0
- package/dist/captureScreenshotHash.js.map +1 -0
- package/dist/captureServer.d.ts +8 -0
- package/dist/captureServer.d.ts.map +1 -1
- package/dist/captureServer.js +126 -22
- package/dist/captureServer.js.map +1 -1
- package/dist/captureSuite.d.ts +11 -0
- package/dist/captureSuite.d.ts.map +1 -1
- package/dist/captureSuite.js +6 -4
- package/dist/captureSuite.js.map +1 -1
- package/dist/captureValidation.d.ts +20 -3
- package/dist/captureValidation.d.ts.map +1 -1
- package/dist/captureValidation.js +222 -70
- package/dist/captureValidation.js.map +1 -1
- package/dist/captureWorkflow.d.ts.map +1 -1
- package/dist/captureWorkflow.js +3 -0
- package/dist/captureWorkflow.js.map +1 -1
- package/dist/functionalScene3Ds.d.ts.map +1 -1
- package/dist/functionalScene3Ds.js +5 -3
- package/dist/functionalScene3Ds.js.map +1 -1
- package/dist/functionalVerify.d.ts.map +1 -1
- package/dist/functionalVerify.js +57 -16
- package/dist/functionalVerify.js.map +1 -1
- package/package.json +5 -5
- package/src/baselineStore.test.ts +210 -7
- package/src/bin.test.ts +32 -0
- package/src/captureBaselineCoverageManifest.test.ts +368 -0
- package/src/captureBaselineSanity.test.ts +38 -0
- package/src/captureBenchmark.e2e.test.ts +29 -1
- package/src/captureDomReadback.test.ts +35 -0
- package/src/captureEntry.e2e.test.ts +108 -0
- package/src/captureEntryFilter.test.ts +45 -0
- package/src/captureEyes.e2e.test.ts +43 -0
- package/src/captureFlightPreset.test.ts +10 -0
- package/src/capturePage.test.ts +23 -3
- package/src/captureResourceFailure.test.ts +60 -0
- package/src/captureScreenshotHash.test.ts +142 -0
- package/src/captureServer.test.ts +103 -3
- package/src/captureValidation.test.ts +217 -36
- package/src/functionalScene3Ds.test.ts +7 -0
- package/src/functionalVerify.test.ts +33 -3
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
// The capture baseline coverage manifest: the committed pin on WHICH targets have comparable baseline
|
|
2
|
+
// evidence in the capture regression tier.
|
|
3
|
+
//
|
|
4
|
+
// ★ THIS IS THE SAME MECHANISM SHAPE AS `scripts/reachability.ts`, deliberately and by name:
|
|
5
|
+
// a committed manifest of IDENTITIES (never a count), an explicit diff that names every gain and loss
|
|
6
|
+
// individually, and a separate `--update` acceptance path guarded so a scoped run can never accept away
|
|
7
|
+
// a whole-repo pin. The two are separate mechanisms over separate subjects — do not merge them — but the
|
|
8
|
+
// shape is the same on purpose, so that reading one teaches you the other. The sibling mechanism is the
|
|
9
|
+
// registrar manifest — `scripts/reachability-registrar-manifest.ts` (with its own colocated test) over
|
|
10
|
+
// `scripts/reachability-registrars.json`, accepted through `scripts/reachability.ts --update-registrars`
|
|
11
|
+
// — built to the same four rules over `packageName/registrar` identities, and it cites this one by name.
|
|
12
|
+
//
|
|
13
|
+
// WHY A MANIFEST AND NOT A COUNT. `isCaptureRegressionCoverageFailure` fails only when a run compared
|
|
14
|
+
// NOTHING (`regressionComparisons === 0 && regressionUncovered > 0`). One covered target rescues a run of
|
|
15
|
+
// four hundred: the moment a single comparison happens, the floor is satisfied and every other uncovered
|
|
16
|
+
// target is reported as a muted status line and counted as skipped, exit 0. So coverage can erode one
|
|
17
|
+
// target at a time, silently, and the only trace is a line in a summary nobody diffs. A count would have
|
|
18
|
+
// the same hole one level up — it says how many were lost, never WHICH — and a count that drifts down is
|
|
19
|
+
// indistinguishable from a target legitimately retired. Identities make a loss nameable and therefore
|
|
20
|
+
// reviewable.
|
|
21
|
+
//
|
|
22
|
+
// The manifest records only that a target HAD a comparable baseline, never what the baseline contained.
|
|
23
|
+
// It is a pin on the SHAPE of the evidence, not on the evidence, so re-baselining a scene is not a
|
|
24
|
+
// manifest change and does not need acceptance.
|
|
25
|
+
//
|
|
26
|
+
// ★ ONE DEFECT, THREE TIERS, ONE MANIFEST. The pipeline records which evidence EXISTS and never records
|
|
27
|
+
// which evidence SHOULD exist, so wherever evidence is optional its absence is indistinguishable from
|
|
28
|
+
// satisfaction. That surfaced independently in three tiers over the SAME target set — a missing
|
|
29
|
+
// fingerprint skips the regression comparison, a missing `sha256` leaves `changed` null so
|
|
30
|
+
// `--fail-on-changed` cannot fire, and a missing (or misspelled) `assertRender` export silently runs no
|
|
31
|
+
// oracle. They are not three defects: they are three kinds of evidence about one row, and a target's
|
|
32
|
+
// evidence profile is ONE fact. Three parallel manifests would be three places for that fact to drift
|
|
33
|
+
// apart, so the kinds are COLUMNS on one row here, and a loss is named as `target#kind`.
|
|
34
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
35
|
+
import { join } from 'node:path';
|
|
36
|
+
export const CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION = 2;
|
|
37
|
+
export const CAPTURE_BASELINE_EVIDENCE_KINDS = [
|
|
38
|
+
'fingerprint',
|
|
39
|
+
'oracle',
|
|
40
|
+
'screenshot',
|
|
41
|
+
];
|
|
42
|
+
/** Where the committed pin lives — one file, keyed by subject, beside the reachability baseline. */
|
|
43
|
+
export function captureBaselineCoverageManifestPath(root) {
|
|
44
|
+
return join(root, 'scripts', 'capture-baseline-coverage-manifest.json');
|
|
45
|
+
}
|
|
46
|
+
export function createCaptureBaselineCoverageManifest(subjects) {
|
|
47
|
+
const out = {};
|
|
48
|
+
for (const [subject, targets] of Object.entries(subjects)) {
|
|
49
|
+
const row = {};
|
|
50
|
+
// A target with no evidence at all is ABSENT rather than pinned-with-nothing: pinning an empty row
|
|
51
|
+
// would assert "this target is known to carry no evidence", which is the claim the manifest exists
|
|
52
|
+
// to make impossible to state by accident.
|
|
53
|
+
for (const identity of Object.keys(targets).sort()) {
|
|
54
|
+
const kinds = [...new Set(targets[identity])].sort();
|
|
55
|
+
if (kinds.length > 0)
|
|
56
|
+
row[identity] = kinds;
|
|
57
|
+
}
|
|
58
|
+
out[subject] = row;
|
|
59
|
+
}
|
|
60
|
+
return { schemaVersion: CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION, subjects: out };
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Diffs observed coverage against the manifest for one subject.
|
|
64
|
+
*
|
|
65
|
+
* `visited` is every identity whose coverage the run DETERMINED, so a scoped run is judged only on what
|
|
66
|
+
* it settled. `scope.undetermined` names the ones it could not settle at all (a page that never loaded):
|
|
67
|
+
* those are neither a loss nor a vanishing, because the run learned nothing about them.
|
|
68
|
+
* A LOSS (visited, but no baseline) is reportable from any run — the target was there and its evidence
|
|
69
|
+
* was not. An ABSENCE (pinned but never visited) is only meaningful when the run could have visited it,
|
|
70
|
+
* because otherwise "not visited" is indistinguishable from "filtered out".
|
|
71
|
+
*
|
|
72
|
+
* Scope is therefore expressed precisely rather than as one boolean: `entryFiltered` suppresses the
|
|
73
|
+
* absence check entirely (any entry could have been excluded), and `activeRenderers` narrows it to the
|
|
74
|
+
* renderers this run actually ran, so `--renderer=webgl` does not report every canvas pin as vanished.
|
|
75
|
+
*/
|
|
76
|
+
export function diffCaptureBaselineCoverage(manifest, subject, covered, visited, scope) {
|
|
77
|
+
const kindObserved = (kind) => scope.kinds === undefined || scope.kinds.includes(kind);
|
|
78
|
+
const pinnedRows = manifest.subjects[subject] ?? {};
|
|
79
|
+
const pinned = new Set(Object.entries(pinnedRows).flatMap(([identity, kinds]) => kinds.filter(kindObserved).map((kind) => formatCaptureBaselineEvidenceIdentity(identity, kind))));
|
|
80
|
+
const coveredSet = new Set(Object.entries(covered).flatMap(([identity, kinds]) => [...kinds].filter(kindObserved).map((kind) => formatCaptureBaselineEvidenceIdentity(identity, kind))));
|
|
81
|
+
const visitedSet = new Set(visited);
|
|
82
|
+
const targetOf = (evidence) => evidence.slice(0, evidence.lastIndexOf('#'));
|
|
83
|
+
const rendererOf = (identity) => identity.slice(identity.lastIndexOf('/') + 1);
|
|
84
|
+
const rendererActive = (identity) => scope.activeRenderers === null || scope.activeRenderers.includes(rendererOf(identity));
|
|
85
|
+
const gained = [...coveredSet].filter((evidence) => !pinned.has(evidence)).sort();
|
|
86
|
+
const lost = [...pinned].filter((evidence) => visitedSet.has(targetOf(evidence)) && !coveredSet.has(evidence)).sort();
|
|
87
|
+
const undeterminedSet = new Set(scope.undetermined ?? []);
|
|
88
|
+
const absent = scope.entryFiltered
|
|
89
|
+
? []
|
|
90
|
+
: [...pinned]
|
|
91
|
+
.filter((evidence) => {
|
|
92
|
+
const identity = targetOf(evidence);
|
|
93
|
+
return rendererActive(identity) && !visitedSet.has(identity) && !undeterminedSet.has(identity);
|
|
94
|
+
})
|
|
95
|
+
.sort();
|
|
96
|
+
return { gained, lost, absent };
|
|
97
|
+
}
|
|
98
|
+
/** `entry/renderer`, the identity a manifest pins. */
|
|
99
|
+
export function formatCaptureBaselineCoverageIdentity(entry, renderer) {
|
|
100
|
+
return `${entry}/${renderer}`;
|
|
101
|
+
}
|
|
102
|
+
/** `entry/renderer#kind` — the unit a loss is named in. `#` because a renderer id may contain `:`. */
|
|
103
|
+
export function formatCaptureBaselineEvidenceIdentity(identity, kind) {
|
|
104
|
+
return `${identity}#${kind}`;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* True when the diff records something the operator must accept or repair — in EITHER direction.
|
|
108
|
+
*
|
|
109
|
+
* A gain fails too, and that is deliberate. The manifest is an exact set, not a floor: an unaccepted gain
|
|
110
|
+
* means the pin no longer describes the tree, so it ages silently until someone finally accepts a mix of
|
|
111
|
+
* current and stale. It also closes the case that justifies identities over a count in the first place —
|
|
112
|
+
* a same-count SWAP, where one target loses its baseline and a different one gains one. Against a count
|
|
113
|
+
* that reconciles; against a floor that only fails on loss it is half-reported; only an exact set names
|
|
114
|
+
* both halves. The sibling registrar manifest fails in both directions for the same reason.
|
|
115
|
+
*/
|
|
116
|
+
export function isCaptureBaselineCoverageFailure(diff) {
|
|
117
|
+
return diff.gained.length > 0 || diff.lost.length > 0 || diff.absent.length > 0;
|
|
118
|
+
}
|
|
119
|
+
/** Every `target#kind` a manifest pins for one subject, sorted. */
|
|
120
|
+
export function listCaptureBaselineEvidence(manifest, subject) {
|
|
121
|
+
const targets = manifest.subjects[subject] ?? {};
|
|
122
|
+
return Object.entries(targets)
|
|
123
|
+
.flatMap(([identity, kinds]) => kinds.map((kind) => formatCaptureBaselineEvidenceIdentity(identity, kind)))
|
|
124
|
+
.sort();
|
|
125
|
+
}
|
|
126
|
+
/** The committed pin, or an empty manifest when none exists yet. A missing file is not an error. */
|
|
127
|
+
export function readCaptureBaselineCoverageManifest(root) {
|
|
128
|
+
const path = captureBaselineCoverageManifestPath(root);
|
|
129
|
+
if (!existsSync(path))
|
|
130
|
+
return createCaptureBaselineCoverageManifest({});
|
|
131
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
132
|
+
const subjects = parsed.subjects ?? {};
|
|
133
|
+
const migrated = {};
|
|
134
|
+
for (const [subject, value] of Object.entries(subjects)) {
|
|
135
|
+
// Schema 1 pinned a bare identity list, and every identity in it meant "has a comparable fingerprint"
|
|
136
|
+
// because that was the only evidence kind the manifest knew about. Read it as exactly that claim
|
|
137
|
+
// rather than as a target with all three, which would manufacture pins nobody ever accepted.
|
|
138
|
+
migrated[subject] = Array.isArray(value)
|
|
139
|
+
? Object.fromEntries(value.map((identity) => [identity, ['fingerprint']]))
|
|
140
|
+
: value;
|
|
141
|
+
}
|
|
142
|
+
return createCaptureBaselineCoverageManifest(migrated);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Rewrites ONE subject's pin, preserving every other subject — an update run covers the subject it ran and
|
|
146
|
+
* knows nothing about the other, so it must not speak for it.
|
|
147
|
+
*
|
|
148
|
+
* `activeRenderers` and `determined` apply the same rule one level down, twice. The regression tier is
|
|
149
|
+
* legitimately renderer-scoped (`--renderer=canvas,webgl,webgpu`; DOM produces no fingerprint), so refusing
|
|
150
|
+
* every scoped update would refuse the tier's own canonical command; and within an accepted run a page that
|
|
151
|
+
* failed to load settles nothing about its target. So a pin is retired ONLY when this run positively
|
|
152
|
+
* determined that identity to be uncovered. Everything else is carried forward. One flaky target therefore
|
|
153
|
+
* cannot quietly retire a pin, and cannot block the whole acceptance either.
|
|
154
|
+
*/
|
|
155
|
+
export function writeCaptureBaselineCoverageManifest(root, subject, covered, activeRenderers = null, determined = null, observedKinds = null) {
|
|
156
|
+
const existing = readCaptureBaselineCoverageManifest(root);
|
|
157
|
+
const determinedSet = determined === null ? null : new Set(determined);
|
|
158
|
+
const previous = existing.subjects[subject] ?? {};
|
|
159
|
+
const merged = {};
|
|
160
|
+
for (const [identity, kinds] of Object.entries(previous)) {
|
|
161
|
+
const renderer = identity.slice(identity.lastIndexOf('/') + 1);
|
|
162
|
+
const rendererOutOfScope = activeRenderers !== null && !activeRenderers.includes(renderer);
|
|
163
|
+
const notDetermined = determinedSet !== null && !determinedSet.has(identity);
|
|
164
|
+
// Carry forward every kind this run could not speak for: a renderer it did not run, a target it
|
|
165
|
+
// never settled, or an evidence kind it never observed. A run retires only what it positively
|
|
166
|
+
// determined to be gone, on all three axes.
|
|
167
|
+
const carried = kinds.filter((kind) => rendererOutOfScope || notDetermined || (observedKinds !== null && !observedKinds.includes(kind)));
|
|
168
|
+
if (carried.length > 0)
|
|
169
|
+
merged[identity] = carried;
|
|
170
|
+
}
|
|
171
|
+
for (const [identity, kinds] of Object.entries(covered)) {
|
|
172
|
+
merged[identity] = [...new Set([...(merged[identity] ?? []), ...kinds])];
|
|
173
|
+
}
|
|
174
|
+
const manifest = createCaptureBaselineCoverageManifest({ ...existing.subjects, [subject]: merged });
|
|
175
|
+
writeFileSync(captureBaselineCoverageManifestPath(root), `${JSON.stringify(manifest, null, 2)}\n`);
|
|
176
|
+
return manifest;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=captureBaselineCoverageManifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureBaselineCoverageManifest.js","sourceRoot":"","sources":["../src/captureBaselineCoverageManifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** True for an exact screenshot hash known to represent a content-free capture. */
|
|
2
|
+
export declare function isRejectedCaptureBaselineHash(hash: string): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* True when every cell of a coarse fingerprint carries the same value. A uniform frame may be a
|
|
5
|
+
* legitimate render, but it cannot distinguish that render from a broken blank frame and must not become
|
|
6
|
+
* regression ground truth.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isUniformCaptureFingerprint(fingerprint: string): boolean;
|
|
9
|
+
//# sourceMappingURL=captureBaselineSanity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureBaselineSanity.d.ts","sourceRoot":"","sources":["../src/captureBaselineSanity.ts"],"names":[],"mappings":"AAcA,mFAAmF;AACnF,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAQxE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Write-side sanity predicates shared by every path that can bless capture evidence. Keeping these
|
|
2
|
+
// outside captureEntry/captureValidation lets the baseline store enforce them too: a new writer must not
|
|
3
|
+
// reproduce only the record shape while bypassing what the established writers refuse.
|
|
4
|
+
// Hex characters per fingerprint cell (one RGB triplet).
|
|
5
|
+
const CAPTURE_FINGERPRINT_CELL_CHARS = 6;
|
|
6
|
+
// Frames observed to be content-free. The encoded-PNG hash is retained while historical baselines use
|
|
7
|
+
// that derivation; additional derivations must add their corresponding bad-output hashes here rather than
|
|
8
|
+
// silently losing the refusal.
|
|
9
|
+
const REJECTED_CAPTURE_BASELINE_HASHES = new Set([
|
|
10
|
+
'a4f2105ecdefec94c5fe749c1dc5f2fb9dd74b9832cba0afcd3434f38c0380d0',
|
|
11
|
+
]);
|
|
12
|
+
/** True for an exact screenshot hash known to represent a content-free capture. */
|
|
13
|
+
export function isRejectedCaptureBaselineHash(hash) {
|
|
14
|
+
return REJECTED_CAPTURE_BASELINE_HASHES.has(hash);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* True when every cell of a coarse fingerprint carries the same value. A uniform frame may be a
|
|
18
|
+
* legitimate render, but it cannot distinguish that render from a broken blank frame and must not become
|
|
19
|
+
* regression ground truth.
|
|
20
|
+
*/
|
|
21
|
+
export function isUniformCaptureFingerprint(fingerprint) {
|
|
22
|
+
const payload = fingerprint.slice(fingerprint.indexOf(':') + 1);
|
|
23
|
+
if (payload.length <= CAPTURE_FINGERPRINT_CELL_CHARS)
|
|
24
|
+
return true;
|
|
25
|
+
const first = payload.slice(0, CAPTURE_FINGERPRINT_CELL_CHARS);
|
|
26
|
+
for (let i = CAPTURE_FINGERPRINT_CELL_CHARS; i < payload.length; i += CAPTURE_FINGERPRINT_CELL_CHARS) {
|
|
27
|
+
if (payload.slice(i, i + CAPTURE_FINGERPRINT_CELL_CHARS) !== first)
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=captureBaselineSanity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureBaselineSanity.js","sourceRoot":"","sources":["../src/captureBaselineSanity.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,yGAAyG;AACzG,uFAAuF;AAEvF,yDAAyD;AACzD,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,sGAAsG;AACtG,0GAA0G;AAC1G,+BAA+B;AAC/B,MAAM,gCAAgC,GAAwB,IAAI,GAAG,CAAC;IACpE,kEAAkE;CACnE,CAAC,CAAC;AAEH,mFAAmF;AACnF,MAAM,UAAU,6BAA6B,CAAC,IAAY;IACxD,OAAO,gCAAgC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAmB;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,IAAI,8BAA8B;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC;IAC/D,KAAK,IAAI,CAAC,GAAG,8BAA8B,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,8BAA8B,EAAE,CAAC;QACrG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,8BAA8B,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureBenchmark.d.ts","sourceRoot":"","sources":["../src/captureBenchmark.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAKjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,eAAO,MAAM,yBAAyB,EAAG,CAAU,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC9C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAC3D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,2BAA2B,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,4BAA4B,EAAE,CAAC;IACxC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAaD,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,0BAA0B,CAgB1G;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAInC;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpG;AA2SD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"captureBenchmark.d.ts","sourceRoot":"","sources":["../src/captureBenchmark.ts"],"names":[],"mappings":"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"}
|
package/dist/captureBenchmark.js
CHANGED
|
@@ -394,6 +394,10 @@ export async function runCaptureBenchmark(options) {
|
|
|
394
394
|
const passed = targets.filter((target) => target.status === 'passed').length;
|
|
395
395
|
const skipped = targets.filter((target) => target.status === 'skipped').length;
|
|
396
396
|
const updated = targets.filter((target) => target.status === 'updated').length;
|
|
397
|
+
const unconfigured = targets.length > 0 &&
|
|
398
|
+
targets.every((target) => target.status === 'skipped' && target.error === 'no benchmark baseline');
|
|
399
|
+
if (unconfigured)
|
|
400
|
+
console.log(pc.red('✗ benchmark gate unconfigured: no benchmark baseline evidence'));
|
|
397
401
|
const reportPath = options.reportPath === false
|
|
398
402
|
? null
|
|
399
403
|
: resolve(options.reportPath ?? root, ...(options.reportPath === undefined ? ['.artifacts', options.subject, 'benchmark-report.json'] : []));
|
|
@@ -405,7 +409,7 @@ export async function runCaptureBenchmark(options) {
|
|
|
405
409
|
passed,
|
|
406
410
|
skipped,
|
|
407
411
|
updated,
|
|
408
|
-
shouldFail: failed > 0,
|
|
412
|
+
shouldFail: failed > 0 || unconfigured,
|
|
409
413
|
targets,
|
|
410
414
|
reportPath,
|
|
411
415
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureBenchmark.js","sourceRoot":"","sources":["../src/captureBenchmark.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oGAAoG;AACpG,qGAAqG;AACrG,mGAAmG;AAEnG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAU,CAAC;AAqFpD,MAAM,UAAU,mCAAmC,CAAC,OAA0B;IAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;QAC/B,KAAK;QACL,WAAW,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ;QAClD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAE;QACjB,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,OAAe,EACf,QAAgB,EAChB,SAAiB;IAEjB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACtH,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAAY,EAAE,OAAe,EAAE,KAAa;IAC1F,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAuB,EACvB,OAAe,EACf,OAAe,EACf,KAAsB,EACtB,QAAgB,EAChB,OAOC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE;YAC9E,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,eAAe,CACxB,GAAG,EAAE;YACH,MAAM,aAAa,GAAG,MAGrB,CAAC;YACF,OAAO,CACL,CAAC,aAAa,CAAC,mBAAmB,KAAK,SAAS,IAAI,aAAa,CAAC,mBAAmB,CAAC,KAAK,KAAK,KAAK,CAAC;gBACtG,aAAa,CAAC,gBAAgB,EAAE,KAAK,KAAK,QAAQ;gBAClD,aAAa,CAAC,gBAAgB,EAAE,KAAK,KAAK,QAAQ;gBAClD,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,CAC7C,CAAC;QACJ,CAAC,EACD,IAAI,EACJ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CACjC,CAAC;QACF,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC3C,GAAG,EAAE,CACF,MAAsF,CAAC,gBAAgB;YACxG,IAAI,CACP,CAAC;QACF,IAAI,iBAAiB,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI;iBACP,eAAe,CACd,GAAG,EAAE;gBACH,MAAM,KAAK,GAAI,MAA+D,CAAC,gBAAgB,EAAE,KAAK,CAAC;gBACvG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC;YAClD,CAAC,EACD,IAAI,EACJ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CACjC;iBACA,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CACtC,GAAG,EAAE,CACF,MAAsF,CAAC,gBAAgB;YACxG,IAAI,CACP,CAAC;QACF,IAAI,YAAY,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrC,MAAM,MAAM,GAAI,MAAmE,CAAC,mBAAmB,CAAC;YACxG,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,QAAQ;gBACR,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC;gBAC/B,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,iDAAiD;aACzD,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAClC,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,EAAE;YACzF,MAAM,MAAM,GACV,MASD,CAAC,mBAAmB,CAAC;YACtB,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,eAAe,KAAK,eAAe,EAAE,CAAC;gBACvF,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,eAAe,yBAAyB,eAAe,EAAE,CAAC,CAAC;YAC1G,CAAC;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;gBAC7B,IAAI,OAAO,KAAK,SAAS;oBAAE,MAAM,OAAO,CAAC;YAC3C,CAAC;YACD,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,kBAAkB,GAAG,UAAU,CAAC;YACpC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAChC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,kBAAkB,EAAE,SAAS,EAAE,EAAE,CAAC;oBACpE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;oBAC7B,IAAI,OAAO,KAAK,SAAS;wBAAE,MAAM,OAAO,CAAC;gBAC3C,CAAC;gBACD,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBAC1C,IAAI,OAAO,IAAI,gBAAgB,IAAI,kBAAkB,IAAI,SAAS;oBAAE,MAAM;gBAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpG,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,kBAAkB,GAAG,UAAU,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAChC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,kBAAkB,EAAE,SAAS,EAAE,EAAE,CAAC;oBACpE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;oBAC7B,IAAI,OAAO,KAAK,SAAS;wBAAE,MAAM,OAAO,CAAC;gBAC3C,CAAC;gBACD,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACxE,CAAC,EACD,OAAO,CACR,CAAC;QACF,MAAM,UAAU,GAAG,mCAAmC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,UAAU,GACd,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ;YACrD,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB;YACxC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC;QAC7C,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,QAAQ;YACR,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YACtC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;YACrC,cAAc,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC;YACpF,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,QAAQ;YACR,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC;YAC/B,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,OAAuB;IAC5D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,aAAa,GAAG,SAAS,CAAC;YAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;gBAC1C,IAAI,KAAK,GAAG,UAAU,CAAC;gBACvB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,EAAE,KAAK,EAAE;oBAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;gBACzG,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBAC1C,IAAI,KAAK,KAAK,UAAU;oBAAE,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzD,QAAQ,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;YACnC,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,IAAI,kBAAkB,GAAkB,IAAI,CAAC;YAC7C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,MAAM,aAAa,GAAG,KAAK,CAAC;gBAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAC9B,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;oBAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;oBAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC;wBACnD,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;wBAClF,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;oBAChC,CAAC;oBACD,EAAE,CAAC,MAAM,EAAE,CAAC;oBACZ,QAAQ,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/B,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE,CAAC;YAClE,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,OAAO;gBACL,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE;gBAC9D,kBAAkB;gBAClB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;gBAClD,QAAQ,EAAE,SAAS,CAAC,QAAQ;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAuC,EAAE,SAA6B;IAClG,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO;IACpC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC;IACtG,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,IAAI,CAAC;QAAE,OAAO;IAClE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;YAAE,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,eAAe,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,OAS/B;IACC,MAAM,IAAI,GAAG,+BAA+B,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,GAA6B;YACrC,OAAO,EAAE,yBAAyB;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACpC,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS;YACvE,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC/D,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC1B,MAAM,CAAC,KAAK,GAAG,kCAAkC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC5H,SAAS;YACX,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG;gBAC9B,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAC;YACF,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;QAC5B,CAAC;QACD,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;YAAE,SAAS;QACvE,MAAM,SAAS,GAAG,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;YAC1B,MAAM,CAAC,KAAK,GAAG,uBAAuB,CAAC;YACvC,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GACZ,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,SAAS;YACrC,QAAQ,EAAE,SAAS,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;YACnD,MAAM,CAAC,cAAc,KAAK,IAAI;YAC9B,SAAS,CAAC,cAAc,KAAK,IAAI,CAAC;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC;QAChF,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;YAC1B,MAAM,CAAC,KAAK,GAAG,iCAAiC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,kCAAkC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACtG,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACvE,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC;QAChC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,IAAI;YAClB,MAAM,CAAC,KAAK,GAAG,0BAA0B,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1I,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAA0C;IAClF,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,CACd,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAChH,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;KAC/G,CAAC,CAAC,CAAC;IACJ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACjF,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,GAAG,CAAC;IAC/D,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,GAAG,CAAC;IAC7D,MAAM,cAAc,GAClB,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QACnC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QAC7B,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QAC9B,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QAC7B,gBAAgB,GAAG,CAAC;QACpB,UAAU,GAAG,CAAC;QACd,WAAW,GAAG,CAAC;QACf,UAAU,GAAG,CAAC,CAAC;IACjB,IAAI,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAClF,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;IACjH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC;IACzD,MAAM,QAAQ,GACZ,OAAO,CAAC,cAAc;QACtB,CAAC,MAAM,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAChF,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;QACxF,IAAI,WAAW;YAAE,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAmC,EAAE,CAAC;IAEnD,IAAI,CAAC;QACH,wFAAwF;QACxF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,SAAS,EAAE;oBAAE,MAAM;gBACvB,IAAI,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAChG,WAAW;oBACX,UAAU;oBACV,eAAe,EAAE,wBAAwB;oBACzC,WAAW;oBACX,gBAAgB;oBAChB,gBAAgB;iBACjB,CAAC,CAAC;gBACH,OACE,MAAM,CAAC,MAAM,KAAK,QAAQ;oBAC1B,MAAM,CAAC,OAAO,GAAG,UAAU;oBAC3B,sEAAsE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAC/F,CAAC;oBACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;oBACnC,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;wBAC5F,WAAW;wBACX,UAAU;wBACV,eAAe,EAAE,wBAAwB;wBACzC,WAAW;wBACX,gBAAgB;wBAChB,gBAAgB;qBACjB,CAAC,CAAC;oBACH,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC3B,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,SAAS,EAAE;gBAAE,MAAM;YACvB,oBAAoB,CAClB,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,EACvD,OAAO,CAAC,SAAS,CAClB,CAAC;YACF,sBAAsB,CAAC;gBACrB,IAAI;gBACJ,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC;gBAChE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,mBAAmB;gBACnB,kBAAkB;gBAClB,MAAM,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,WAAW;YAAE,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC/E,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC/E,MAAM,UAAU,GACd,OAAO,CAAC,UAAU,KAAK,KAAK;QAC1B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CACL,OAAO,CAAC,UAAU,IAAI,IAAI,EAC1B,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACtG,CAAC;IACR,MAAM,MAAM,GAA2B;QACrC,OAAO,EAAE,SAAS,EAAE;QACpB,WAAW;QACX,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAChD,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,UAAU,EAAE,MAAM,GAAG,CAAC;QACtB,OAAO;QACP,UAAU;KACX,CAAC;IACF,IAAI,UAAU,KAAK,IAAI;QAAE,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA6B,CAAC;QACjF,OAAO,KAAK,CAAC,OAAO,KAAK,yBAAyB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACzG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,QAAkC;IAC9E,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,MAAM,GAA6B;QACvC,GAAG,QAAQ;QACX,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KACrG,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,IAAI,MAAM,CAAC;IAChC,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3F,CAAC;AAED,SAAS,UAAU,CAAC,MAAyB,EAAE,QAAgB;IAC7D,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC,GAAG,QAAQ,CAAC;AAC9F,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,UAAsC;IAC3D,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC7B,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA8C;IAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAClG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACnG,MAAM,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IACnD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;SACvF,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;SAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;;QACxF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC"}
|
|
1
|
+
{"version":3,"file":"captureBenchmark.js","sourceRoot":"","sources":["../src/captureBenchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Page } from '@playwright/test';
|
|
2
|
+
/** Supplies a pending page-side DOM verifier with pixels from its registered element. */
|
|
3
|
+
export declare function provideCaptureDomRenderPixels(page: Page): Promise<boolean>;
|
|
4
|
+
//# sourceMappingURL=captureDomReadback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureDomReadback.d.ts","sourceRoot":"","sources":["../src/captureDomReadback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,yFAAyF;AACzF,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAuDhF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/** Supplies a pending page-side DOM verifier with pixels from its registered element. */
|
|
2
|
+
export async function provideCaptureDomRenderPixels(page) {
|
|
3
|
+
const handle = await page
|
|
4
|
+
.evaluateHandle(() => {
|
|
5
|
+
const target = window.__ftTarget;
|
|
6
|
+
return target?.kind === 'dom' ? (target.state?.element ?? null) : null;
|
|
7
|
+
})
|
|
8
|
+
.catch(() => null);
|
|
9
|
+
const element = handle?.asElement();
|
|
10
|
+
if (element === null || element === undefined) {
|
|
11
|
+
await handle?.dispose();
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
const screenshot = await element.screenshot({ animations: 'disabled' }).catch(() => null);
|
|
16
|
+
const source = screenshot === null ? null : `data:image/png;base64,${screenshot.toString('base64')}`;
|
|
17
|
+
return page.evaluate(async (dataUrl) => {
|
|
18
|
+
const provide = window.__ftProvideDomRenderPixels;
|
|
19
|
+
if (provide === undefined)
|
|
20
|
+
return false;
|
|
21
|
+
if (dataUrl === null) {
|
|
22
|
+
provide(null);
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const image = new Image();
|
|
27
|
+
image.src = dataUrl;
|
|
28
|
+
await image.decode();
|
|
29
|
+
const canvas = document.createElement('canvas');
|
|
30
|
+
canvas.width = image.naturalWidth;
|
|
31
|
+
canvas.height = image.naturalHeight;
|
|
32
|
+
const context = canvas.getContext('2d');
|
|
33
|
+
if (context === null || canvas.width === 0 || canvas.height === 0) {
|
|
34
|
+
provide(null);
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
context.drawImage(image, 0, 0);
|
|
38
|
+
const pixels = context.getImageData(0, 0, canvas.width, canvas.height);
|
|
39
|
+
provide({ data: pixels.data, height: pixels.height, width: pixels.width });
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
provide(null);
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}, source);
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
await handle?.dispose();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=captureDomReadback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureDomReadback.js","sourceRoot":"","sources":["../src/captureDomReadback.ts"],"names":[],"mappings":"AAEA,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,IAAU;IAC5D,MAAM,MAAM,GAAG,MAAM,IAAI;SACtB,cAAc,CAAC,GAAG,EAAE;QACnB,MAAM,MAAM,GACV,MAGD,CAAC,UAAU,CAAC;QACb,OAAO,MAAM,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC;IACpC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACrC,MAAM,OAAO,GACX,MAKD,CAAC,0BAA0B,CAAC;YAC7B,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACxC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC1B,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC;gBACpB,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;gBAClC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClE,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
package/dist/captureEntry.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CaptureBaselineProvenance } from '@flighthq/types/contract';
|
|
1
2
|
import type { BrowserContext } from '@playwright/test';
|
|
2
3
|
import type { Entry } from './captureEntries.js';
|
|
3
4
|
import { CAPTURE_PROTOCOL_VERSION } from './captureProtocol.js';
|
|
@@ -11,6 +12,14 @@ export interface CaptureStatus {
|
|
|
11
12
|
baselineHash: string | null;
|
|
12
13
|
/** null = no baseline exists yet; false = hash matches baseline; true = hash differs from baseline */
|
|
13
14
|
changed: boolean | null;
|
|
15
|
+
/**
|
|
16
|
+
* Whether this target's own pixel oracle was CALLED, straight from the verifier, or null when the
|
|
17
|
+
* verifier published no answer. Recorded because existence and invocation are different claims: a
|
|
18
|
+
* misspelled `assertRender` export is simply absent to the verifier, and reading the source can never
|
|
19
|
+
* tell you which happened. Without this the only way to establish that an oracle ran is to reason
|
|
20
|
+
* backwards from the absence of an error.
|
|
21
|
+
*/
|
|
22
|
+
oracle: 'absent' | 'invoked' | null;
|
|
14
23
|
/**
|
|
15
24
|
* Present only for an observe-mode capture: what the eyes actually saw. Observe never gates or
|
|
16
25
|
* touches baselines — it always emits a screenshot plus this block so a reviewing agent can tell
|
|
@@ -103,7 +112,7 @@ export interface CaptureEntryOptions {
|
|
|
103
112
|
*/
|
|
104
113
|
verify?: boolean;
|
|
105
114
|
/** Receives fingerprints that completed every page-side assertion. Used to fuse capture + validation. */
|
|
106
|
-
onVerifiedFingerprint?: (entry: string, renderer: string, fingerprint: string) => void;
|
|
115
|
+
onVerifiedFingerprint?: (entry: string, renderer: string, fingerprint: string, provenance: CaptureBaselineProvenance) => void;
|
|
107
116
|
/** Fresh-page retries for transient navigation/protocol failures. Default: 1. */
|
|
108
117
|
maxRetries?: number;
|
|
109
118
|
}
|
|
@@ -122,7 +131,7 @@ export interface ParallelCaptureOptions {
|
|
|
122
131
|
observe?: boolean;
|
|
123
132
|
isAborted?: () => boolean;
|
|
124
133
|
verify?: boolean;
|
|
125
|
-
onVerifiedFingerprint?: (entry: string, renderer: string, fingerprint: string) => void;
|
|
134
|
+
onVerifiedFingerprint?: (entry: string, renderer: string, fingerprint: string, provenance: CaptureBaselineProvenance) => void;
|
|
126
135
|
maxRetries?: number;
|
|
127
136
|
/** Number of Playwright pages to run concurrently. Default: 6. */
|
|
128
137
|
workerCount?: number;
|
|
@@ -183,7 +192,7 @@ export interface CaptureUrlOptions {
|
|
|
183
192
|
/** Additional fresh-browser attempts after a blank, timeout, or navigation failure. Default: 2. */
|
|
184
193
|
maxRetries?: number;
|
|
185
194
|
}
|
|
186
|
-
export
|
|
195
|
+
export { isRejectedCaptureBaselineHash } from './captureBaselineSanity.js';
|
|
187
196
|
export declare function isTransientCaptureError(message: string): boolean;
|
|
188
197
|
export declare function isVerifiedCaptureTool(tool: string): boolean;
|
|
189
198
|
//# sourceMappingURL=captureEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureEntry.d.ts","sourceRoot":"","sources":["../src/captureEntry.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAQ,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"captureEntry.d.ts","sourceRoot":"","sources":["../src/captureEntry.ts"],"names":[],"mappings":"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"}
|