@flighthq/tool-capture 0.2.0 → 0.2.1-next.423.3350e53
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/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +39 -0
- package/dist/bin.js.map +1 -0
- package/dist/captureBrowser.d.ts +1 -0
- package/dist/captureBrowser.d.ts.map +1 -1
- package/dist/captureBrowser.js +94 -9
- package/dist/captureBrowser.js.map +1 -1
- package/dist/captureEntries.d.ts +2 -1
- package/dist/captureEntries.d.ts.map +1 -1
- package/dist/captureEntries.js +4 -0
- package/dist/captureEntries.js.map +1 -1
- package/dist/captureEntry.d.ts +64 -0
- package/dist/captureEntry.d.ts.map +1 -1
- package/dist/captureEntry.js +354 -26
- package/dist/captureEntry.js.map +1 -1
- package/dist/captureServer.js +4 -1
- package/dist/captureServer.js.map +1 -1
- package/dist/functionalVerify.d.ts +51 -0
- package/dist/functionalVerify.d.ts.map +1 -0
- package/dist/functionalVerify.js +140 -0
- package/dist/functionalVerify.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/referenceCapture.d.ts +31 -0
- package/dist/referenceCapture.d.ts.map +1 -0
- package/dist/referenceCapture.js +142 -0
- package/dist/referenceCapture.js.map +1 -0
- package/package.json +7 -1
- package/src/captureEntry.test.ts +113 -1
- package/src/functionalVerify.test.ts +94 -0
- package/src/referenceCapture.test.ts +81 -0
package/dist/captureEntry.js
CHANGED
|
@@ -12,12 +12,51 @@ import { mkdirSync, renameSync, writeFileSync } from 'node:fs';
|
|
|
12
12
|
import { join, resolve } from 'node:path';
|
|
13
13
|
import pc from 'picocolors';
|
|
14
14
|
import { getBaselineField, setBaselineField } from './baselineStore.js';
|
|
15
|
+
import { launchBrowser } from './captureBrowser.js';
|
|
15
16
|
import { BACKEND_UNAVAILABLE, rendererMatchesFilter, routeSegment } from './captureEntries.js';
|
|
16
17
|
import { formatDetailLine, formatStatusLine } from './captureFormat.js';
|
|
17
18
|
import { isBrowserClosedError } from './captureInterrupt.js';
|
|
19
|
+
// Empty-frame threshold for the coverage-derived blank flag: a frame whose measured non-background
|
|
20
|
+
// coverage is at or below this reads as "nothing distinguishable rendered". Small but non-zero so a
|
|
21
|
+
// stray antialiased edge pixel does not count as content.
|
|
22
|
+
const OBSERVE_BLANK_COVERAGE = 0.001;
|
|
23
|
+
// Summarizes an observe-mode capture into the status.json diagnostics block. Pure over its inputs and
|
|
24
|
+
// the drained page logs (page exceptions vs. console/network errors are counted from `logs`), so the
|
|
25
|
+
// interpretation an agent relies on — blank vs. drew-but-wrong vs. crashed — is unit-testable without a
|
|
26
|
+
// browser. `blank` is decided by the MEASURED pixel `coverage` whenever we have it: the actual frame is
|
|
27
|
+
// ground truth. The incoming `args.blank` (a verify target registered but never published) is only a
|
|
28
|
+
// weak fallback used when coverage is unmeasurable — the verifier can fail to publish a scene that
|
|
29
|
+
// clearly rendered (its own threshold/timing), so trusting it over the pixels false-flags full frames as
|
|
30
|
+
// blank. Verified against the reference corpus, where many scenes publish `false` yet cover >0.9.
|
|
31
|
+
export function buildCaptureObserveDiagnostics(args) {
|
|
32
|
+
let pageErrorCount = 0;
|
|
33
|
+
let errorCount = 0;
|
|
34
|
+
for (const entry of args.logs) {
|
|
35
|
+
const level = entry.level;
|
|
36
|
+
if (level === 'pageerror')
|
|
37
|
+
pageErrorCount += 1;
|
|
38
|
+
else if (level === 'error')
|
|
39
|
+
errorCount += 1;
|
|
40
|
+
}
|
|
41
|
+
const blank = args.coverage !== null ? args.coverage <= OBSERVE_BLANK_COVERAGE : args.blank;
|
|
42
|
+
return {
|
|
43
|
+
backend: args.backend,
|
|
44
|
+
blank,
|
|
45
|
+
coverage: args.coverage,
|
|
46
|
+
errorCount,
|
|
47
|
+
pageErrorCount,
|
|
48
|
+
verifyPublished: args.verifyPublished,
|
|
49
|
+
verifyTargetKind: args.verifyTargetKind,
|
|
50
|
+
warmupFrames: args.warmupFrames,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
18
53
|
export async function captureEntry(opts) {
|
|
19
|
-
const { context, entry, renderers, baseUrl, tool, outBase, root, updateBaseline = false, extraWait = 0, captureFrames = 0, failOnError = false, isAborted = () => false, } = opts;
|
|
54
|
+
const { context, entry, renderers, baseUrl, tool, outBase, root, updateBaseline = false, extraWait = 0, captureFrames = 0, failOnError = false, observe = false, isAborted = () => false, } = opts;
|
|
20
55
|
const { displayLabel } = opts;
|
|
56
|
+
// The in-page render verifier drives the surface readback (__ftRenderImage) that avoids Docker's
|
|
57
|
+
// compositor-only black WebGL screenshots. It is implicit for the functional tool; an external subject
|
|
58
|
+
// (reference) opts in via `verify` once its pages register a functional target.
|
|
59
|
+
const verify = opts.verify ?? tool === 'functional';
|
|
21
60
|
let anyFailed = false;
|
|
22
61
|
let anyChanged = false;
|
|
23
62
|
// Detail lines below the caller's [N/M] header drop the entry name (the header carries it) and
|
|
@@ -31,11 +70,13 @@ export async function captureEntry(opts) {
|
|
|
31
70
|
// Stop launching pages once an interrupt has begun; the partial result is reported by the caller.
|
|
32
71
|
if (isAborted())
|
|
33
72
|
break;
|
|
34
|
-
const urlPath =
|
|
35
|
-
?
|
|
36
|
-
: tool === '
|
|
37
|
-
? `
|
|
38
|
-
: ''
|
|
73
|
+
const urlPath = entry.route
|
|
74
|
+
? entry.route(renderer)
|
|
75
|
+
: tool === 'examples'
|
|
76
|
+
? `examples/${entry.name}/${routeSegment(renderer)}/`
|
|
77
|
+
: tool === 'functional'
|
|
78
|
+
? `tests/${entry.name}/${routeSegment(renderer)}/`
|
|
79
|
+
: ''; // landing: the single page is served at the server root
|
|
39
80
|
const url = `${baseUrl}/${urlPath}`;
|
|
40
81
|
const { outDir, tmpScreenshot, finalScreenshot, tmpLogs, finalLogs, statusPath } = getCaptureOutputPaths(outBase, tool, entry.name, renderer);
|
|
41
82
|
mkdirSync(outDir, { recursive: true });
|
|
@@ -59,6 +100,8 @@ export async function captureEntry(opts) {
|
|
|
59
100
|
// ignored to avoid HMR/info noise.
|
|
60
101
|
const type = msg.type();
|
|
61
102
|
if (type === 'error' || type === 'warning') {
|
|
103
|
+
if (type === 'warning' && isCaptureReadPixelsWarning(text))
|
|
104
|
+
return;
|
|
62
105
|
logs.push({
|
|
63
106
|
__flight: true,
|
|
64
107
|
t: -1,
|
|
@@ -102,32 +145,74 @@ export async function captureEntry(opts) {
|
|
|
102
145
|
}
|
|
103
146
|
if (extraWait > 0)
|
|
104
147
|
await page.waitForTimeout(extraWait);
|
|
105
|
-
const waitsForVerification =
|
|
106
|
-
|
|
107
|
-
|
|
148
|
+
const waitsForVerification = verify;
|
|
149
|
+
// The verification wait is the longest single step (up to 15s) and prints nothing while it
|
|
150
|
+
// polls, so a run can look hung right after "Ready at". A muted heartbeat marks that the entry
|
|
151
|
+
// is verifying, so the pause reads as progress rather than a stall.
|
|
152
|
+
let verification = null;
|
|
153
|
+
if (waitsForVerification) {
|
|
154
|
+
console.log(statusLine('muted', renderer, 'verifying render…'));
|
|
155
|
+
verification = await waitForRenderVerification(page);
|
|
156
|
+
}
|
|
157
|
+
const verificationTargetKind = waitsForVerification ? await getFunctionalTargetKind(page) : null;
|
|
108
158
|
// Screenshot the render output only — not the full viewport — so all renderers produce the same
|
|
109
159
|
// frame size and the gallery blink comparator has something meaningful to compare.
|
|
110
160
|
//
|
|
111
|
-
// -
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
//
|
|
161
|
+
// - functional raster renders: the verifier exposes the same surface it fingerprinted as a PNG
|
|
162
|
+
// data URL (window.__ftRenderImage), avoiding compositor-only black screenshots in Docker.
|
|
163
|
+
// - webgpu examples: SwiftShader can't present to the swapchain, so the canvas is blank in a
|
|
164
|
+
// Playwright screenshot. Functional captures require the verifier image; examples fall back.
|
|
115
165
|
// - dom: no canvas; the renderer appends a sized <div> directly to <body>.
|
|
116
166
|
// - canvas / webgl: a <canvas> is appended directly to <body>.
|
|
117
167
|
// - fallback: full page screenshot when neither canvas nor div is found (unknown layout).
|
|
118
168
|
let screenshotBuffer;
|
|
169
|
+
// True when no verified/non-blank frame was produced and the screenshot below is a fallback.
|
|
170
|
+
// Only ever set in observe mode: gate mode throws instead (a blank frame must not pass silently).
|
|
171
|
+
let blank = false;
|
|
119
172
|
const backend = rendererBackend(renderer);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
173
|
+
const dataUrl = waitsForVerification ? await getRenderImageDataUrl(page) : null;
|
|
174
|
+
// Zero-integration path: in observe mode, prefer reading the frame straight from the WebGL contexts
|
|
175
|
+
// the harness intercepted at getContext time (see launchBrowser). No client verifier registration
|
|
176
|
+
// and no verify-publish handshake to false-negate — the scene just renders, the harness grabs it.
|
|
177
|
+
// Null for wgpu (swapchain unreadable post-hoc — needs the SDK capture adapter), dom, 2d, or a page
|
|
178
|
+
// with no GL context, all of which fall through to the verifier/canvas paths below.
|
|
179
|
+
const intercept = observe && backend === 'webgl' ? await grabInterceptedGlFrame(page) : null;
|
|
180
|
+
if (intercept !== null) {
|
|
181
|
+
screenshotBuffer = Buffer.from(intercept.dataUrl.split(',')[1], 'base64');
|
|
182
|
+
blank = intercept.coverage <= OBSERVE_BLANK_COVERAGE;
|
|
183
|
+
}
|
|
184
|
+
else if (dataUrl && backend !== 'dom') {
|
|
185
|
+
screenshotBuffer = Buffer.from(dataUrl.split(',')[1], 'base64');
|
|
186
|
+
}
|
|
187
|
+
else if (backend === 'webgpu' && waitsForVerification) {
|
|
188
|
+
// No verifier image — SwiftShader can't present the swapchain, so a plain screenshot is black.
|
|
189
|
+
// Gate mode treats this as fatal; observe mode still wants eyes, so it emits that black frame and
|
|
190
|
+
// records blank:true rather than dead-ending on "cannot capture".
|
|
191
|
+
if (!observe)
|
|
126
192
|
throw new Error('WebGPU verifier did not produce a render image');
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
193
|
+
blank = true;
|
|
194
|
+
screenshotBuffer = await page.screenshot();
|
|
195
|
+
}
|
|
196
|
+
else if (backend === 'webgpu') {
|
|
197
|
+
screenshotBuffer = await page.screenshot();
|
|
198
|
+
}
|
|
199
|
+
else if (backend === 'webgl' && waitsForVerification && verificationTargetKind === 'webgl') {
|
|
200
|
+
// The page registered a WebGL verification target but published no verified frame, so its
|
|
201
|
+
// readback was blank — a canvas screenshot here would be an all-black false pass (the exact
|
|
202
|
+
// shape that hid a real render bug: green ✓ over a black frame, missed even by --fail-on-error
|
|
203
|
+
// since a verify timeout logs nothing). GATE mode fails loudly. OBSERVE mode instead emits that
|
|
204
|
+
// best-available (likely black) frame and records blank:true: the reviewing agent reads the
|
|
205
|
+
// diagnostics rather than a green ✓, so there is no false pass and it always has eyes on the scene.
|
|
206
|
+
// A page that registers no target is not making a verification claim and still falls through
|
|
207
|
+
// to the canvas-screenshot fallback below.
|
|
208
|
+
if (!observe)
|
|
209
|
+
throw new Error('WebGL verifier did not produce a render image (blank or failed render)');
|
|
210
|
+
blank = true;
|
|
211
|
+
screenshotBuffer = await page
|
|
212
|
+
.locator('canvas')
|
|
213
|
+
.first()
|
|
214
|
+
.screenshot()
|
|
215
|
+
.catch(() => page.screenshot());
|
|
131
216
|
}
|
|
132
217
|
else if (backend === 'dom') {
|
|
133
218
|
screenshotBuffer = await page
|
|
@@ -149,6 +234,36 @@ export async function captureEntry(opts) {
|
|
|
149
234
|
writeFileSync(tmpLogs, logs.map((l) => JSON.stringify(l)).join('\n'));
|
|
150
235
|
renameSync(tmpScreenshot, finalScreenshot);
|
|
151
236
|
renameSync(tmpLogs, finalLogs);
|
|
237
|
+
if (observe) {
|
|
238
|
+
// Eyes mode: never gate, never touch baselines. Always emit the screenshot (done above) plus a
|
|
239
|
+
// diagnostics block so a reviewing agent can interpret what it is looking at, then move on. The
|
|
240
|
+
// finally below still closes the page.
|
|
241
|
+
// Coverage source, best first: the harness's own intercepted-GL readback (measured pixels, the
|
|
242
|
+
// same frame we emit), then the page verifier's coverage, then a canvas grab. All are measured
|
|
243
|
+
// from real pixels — never the verify-publish handshake, which false-negates rendered scenes.
|
|
244
|
+
const coverage = intercept?.coverage ?? verification?.coverage ?? (await measureObservedCanvasCoverage(page));
|
|
245
|
+
const diagnostics = buildCaptureObserveDiagnostics({
|
|
246
|
+
backend,
|
|
247
|
+
blank,
|
|
248
|
+
coverage,
|
|
249
|
+
logs,
|
|
250
|
+
verifyPublished: dataUrl !== null,
|
|
251
|
+
verifyTargetKind: verificationTargetKind,
|
|
252
|
+
warmupFrames: await getObserveWarmupFrames(page),
|
|
253
|
+
});
|
|
254
|
+
const observeStatus = {
|
|
255
|
+
state: 'ready',
|
|
256
|
+
capturedAt: Date.now(),
|
|
257
|
+
error: null,
|
|
258
|
+
hash,
|
|
259
|
+
baselineHash: null,
|
|
260
|
+
changed: null,
|
|
261
|
+
observe: diagnostics,
|
|
262
|
+
};
|
|
263
|
+
writeFileSync(statusPath, JSON.stringify(observeStatus, null, 2));
|
|
264
|
+
console.log(statusLine('pass', renderer, formatObserveDetail(diagnostics)));
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
152
267
|
// Baseline update or comparison. The baseline is a committed sha256 hash, not a screenshot:
|
|
153
268
|
// capture mode renders a deterministic frame (see launchBrowser), so the hash alone detects
|
|
154
269
|
// change and keeps the tracked baseline a small text file instead of a binary PNG. The fresh
|
|
@@ -237,15 +352,149 @@ export async function captureEntry(opts) {
|
|
|
237
352
|
return 'changed';
|
|
238
353
|
return 'ok';
|
|
239
354
|
}
|
|
355
|
+
// One-line human summary of an observe capture for the console — the agent-readable detail is the
|
|
356
|
+
// status.json block, this just makes a multi-scene run scannable.
|
|
357
|
+
function formatObserveDetail(d) {
|
|
358
|
+
const parts = [d.blank ? 'observed (blank — no verified frame)' : 'observed'];
|
|
359
|
+
if (d.coverage !== null)
|
|
360
|
+
parts.push(`coverage ${d.coverage.toFixed(3)}`);
|
|
361
|
+
// Surface the warmup so a slow capture reads as "it drew, just late" rather than an unexplained pause.
|
|
362
|
+
if (d.warmupFrames > 0)
|
|
363
|
+
parts.push(`warmed up ${d.warmupFrames} extra frame${d.warmupFrames === 1 ? '' : 's'}`);
|
|
364
|
+
if (d.pageErrorCount > 0)
|
|
365
|
+
parts.push(`${d.pageErrorCount} page error${d.pageErrorCount === 1 ? '' : 's'}`);
|
|
366
|
+
if (d.errorCount > 0)
|
|
367
|
+
parts.push(`${d.errorCount} error${d.errorCount === 1 ? '' : 's'}`);
|
|
368
|
+
return parts.join(', ');
|
|
369
|
+
}
|
|
370
|
+
// Extra animation frames the in-page observe warmup rendered past the requested count (see
|
|
371
|
+
// launchBrowser). 0 when the page drew immediately or set nothing.
|
|
372
|
+
async function getObserveWarmupFrames(page) {
|
|
373
|
+
return page.evaluate(() => window.__ftWarmupFrames ?? 0).catch(() => 0);
|
|
374
|
+
}
|
|
240
375
|
async function getRenderImageDataUrl(page) {
|
|
241
376
|
return page
|
|
242
377
|
.evaluate(() => window.__ftRenderImage ?? null)
|
|
243
378
|
.catch(() => null);
|
|
244
379
|
}
|
|
380
|
+
// The kind of functional target the page registered (webgl / webgpu / canvas / dom), or null if it
|
|
381
|
+
// registered none. A registered target is the page's claim that it verifies its own render; the
|
|
382
|
+
// screenshot selection uses it to tell "opted into verification but drew blank" (a failure) from
|
|
383
|
+
// "never opted in" (the canvas-screenshot fallback is expected).
|
|
384
|
+
async function getFunctionalTargetKind(page) {
|
|
385
|
+
return page
|
|
386
|
+
.evaluate(() => window.__ftTarget?.kind ?? null)
|
|
387
|
+
.catch(() => null);
|
|
388
|
+
}
|
|
389
|
+
// Reads the first canvas's presented pixels back in-page and returns the fraction (0..1) that differs
|
|
390
|
+
// from the top-left (background) pixel — an observe-mode coverage estimate for when the page verifier
|
|
391
|
+
// exposed none. Relies on preserveDrawingBuffer (launchBrowser forces it for gl), so a WebGL canvas
|
|
392
|
+
// retains its frame for drawImage. Reads the canvas itself, so a scene that renders only into an
|
|
393
|
+
// offscreen target (presented via the verifier image) reads low here — that low coverage IS the signal
|
|
394
|
+
// that the canvas holds nothing. Returns null when there is no canvas or the readback throws.
|
|
395
|
+
async function measureObservedCanvasCoverage(page) {
|
|
396
|
+
return page
|
|
397
|
+
.evaluate(() => {
|
|
398
|
+
const canvas = document.querySelector('canvas');
|
|
399
|
+
if (!canvas)
|
|
400
|
+
return null;
|
|
401
|
+
const w = canvas.width;
|
|
402
|
+
const h = canvas.height;
|
|
403
|
+
if (w === 0 || h === 0)
|
|
404
|
+
return null;
|
|
405
|
+
const off = document.createElement('canvas');
|
|
406
|
+
off.width = w;
|
|
407
|
+
off.height = h;
|
|
408
|
+
const ctx = off.getContext('2d');
|
|
409
|
+
if (!ctx)
|
|
410
|
+
return null;
|
|
411
|
+
ctx.drawImage(canvas, 0, 0);
|
|
412
|
+
const data = ctx.getImageData(0, 0, w, h).data;
|
|
413
|
+
const br = data[0];
|
|
414
|
+
const bg = data[1];
|
|
415
|
+
const bb = data[2];
|
|
416
|
+
let differing = 0;
|
|
417
|
+
const pixels = w * h;
|
|
418
|
+
for (let i = 0; i < pixels; i++) {
|
|
419
|
+
const o = i * 4;
|
|
420
|
+
if (Math.abs(data[o] - br) > 8 || Math.abs(data[o + 1] - bg) > 8 || Math.abs(data[o + 2] - bb) > 8) {
|
|
421
|
+
differing += 1;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
return differing / pixels;
|
|
425
|
+
})
|
|
426
|
+
.catch(() => null);
|
|
427
|
+
}
|
|
428
|
+
// Zero-integration frame grab: read back every WebGL context the harness recorded at getContext time
|
|
429
|
+
// (see launchBrowser's __ftGlContexts) — pick the one with the most content — and return it as a PNG data
|
|
430
|
+
// URL plus its measured non-background coverage. Relies on the forced preserveDrawingBuffer so the
|
|
431
|
+
// presented default framebuffer survives for this post-hoc readback. No client verifier registration is
|
|
432
|
+
// involved: the scene just renders and the harness reads its context directly. Returns null when no GL
|
|
433
|
+
// context was recorded (a wgpu / 2d / dom page, or one with no canvas), which the caller falls through on.
|
|
434
|
+
async function grabInterceptedGlFrame(page) {
|
|
435
|
+
return page
|
|
436
|
+
.evaluate(() => {
|
|
437
|
+
const ctxs = window.__ftGlContexts;
|
|
438
|
+
if (ctxs === undefined || ctxs.length === 0)
|
|
439
|
+
return null;
|
|
440
|
+
let best = null;
|
|
441
|
+
for (const entry of ctxs) {
|
|
442
|
+
const canvas = entry.canvas;
|
|
443
|
+
const gl = entry.gl;
|
|
444
|
+
const w = canvas.width;
|
|
445
|
+
const h = canvas.height;
|
|
446
|
+
if (w === 0 || h === 0)
|
|
447
|
+
continue;
|
|
448
|
+
try {
|
|
449
|
+
gl.finish();
|
|
450
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
|
451
|
+
const buf = new Uint8Array(w * h * 4);
|
|
452
|
+
gl.readPixels(0, 0, w, h, gl.RGBA, gl.UNSIGNED_BYTE, buf);
|
|
453
|
+
const br = buf[0];
|
|
454
|
+
const bg = buf[1];
|
|
455
|
+
const bb = buf[2];
|
|
456
|
+
let differing = 0;
|
|
457
|
+
const pixels = w * h;
|
|
458
|
+
for (let i = 0; i < pixels; i++) {
|
|
459
|
+
const o = i * 4;
|
|
460
|
+
if (Math.abs(buf[o] - br) > 8 || Math.abs(buf[o + 1] - bg) > 8 || Math.abs(buf[o + 2] - bb) > 8) {
|
|
461
|
+
differing += 1;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
const coverage = differing / pixels;
|
|
465
|
+
if (best !== null && coverage <= best.coverage)
|
|
466
|
+
continue;
|
|
467
|
+
// gl.readPixels is bottom-up; flip rows into a top-down 2D canvas before encoding to PNG.
|
|
468
|
+
const off = document.createElement('canvas');
|
|
469
|
+
off.width = w;
|
|
470
|
+
off.height = h;
|
|
471
|
+
const c2d = off.getContext('2d');
|
|
472
|
+
if (c2d === null)
|
|
473
|
+
continue;
|
|
474
|
+
const img = c2d.createImageData(w, h);
|
|
475
|
+
const rowBytes = w * 4;
|
|
476
|
+
for (let y = 0; y < h; y++) {
|
|
477
|
+
const src = (h - 1 - y) * rowBytes;
|
|
478
|
+
img.data.set(buf.subarray(src, src + rowBytes), y * rowBytes);
|
|
479
|
+
}
|
|
480
|
+
c2d.putImageData(img, 0, 0);
|
|
481
|
+
best = { coverage, dataUrl: off.toDataURL('image/png') };
|
|
482
|
+
}
|
|
483
|
+
catch {
|
|
484
|
+
// A lost or cross-origin-tainted context can't be read — skip it.
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
return best;
|
|
488
|
+
})
|
|
489
|
+
.catch(() => null);
|
|
490
|
+
}
|
|
245
491
|
function rendererBackend(renderer) {
|
|
246
492
|
const i = renderer.indexOf(':');
|
|
247
493
|
return i === -1 ? renderer : renderer.slice(i + 1);
|
|
248
494
|
}
|
|
495
|
+
function isCaptureReadPixelsWarning(text) {
|
|
496
|
+
return text.includes('GPU stall due to ReadPixels');
|
|
497
|
+
}
|
|
249
498
|
async function waitForRenderVerification(page) {
|
|
250
499
|
await page
|
|
251
500
|
.waitForFunction(() => {
|
|
@@ -257,9 +506,7 @@ async function waitForRenderVerification(page) {
|
|
|
257
506
|
return false;
|
|
258
507
|
if (verification.render === 'dom')
|
|
259
508
|
return true;
|
|
260
|
-
|
|
261
|
-
return typeof w.__ftRenderImage === 'string' && w.__ftRenderImage !== '';
|
|
262
|
-
return verification.fingerprint !== null;
|
|
509
|
+
return verification.fingerprint !== null && typeof w.__ftRenderImage === 'string' && w.__ftRenderImage !== '';
|
|
263
510
|
}, null, { polling: 100, timeout: 15_000 })
|
|
264
511
|
.catch(() => { });
|
|
265
512
|
return page
|
|
@@ -304,6 +551,8 @@ export async function captureParallel(opts) {
|
|
|
304
551
|
extraWait: opts.extraWait,
|
|
305
552
|
captureFrames: opts.captureFrames,
|
|
306
553
|
failOnError: opts.failOnError,
|
|
554
|
+
observe: opts.observe,
|
|
555
|
+
verify: opts.verify,
|
|
307
556
|
isAborted: () => isAborted(),
|
|
308
557
|
});
|
|
309
558
|
if (result === 'ok')
|
|
@@ -317,6 +566,85 @@ export async function captureParallel(opts) {
|
|
|
317
566
|
await Promise.all(workers);
|
|
318
567
|
return { captured, changed, failed };
|
|
319
568
|
}
|
|
569
|
+
// Observe one arbitrary URL — the standalone "eyes" primitive behind the `tool-capture observe` bin.
|
|
570
|
+
// Drives its own browser (deterministic frame-halt + warmup + the getContext intercept), navigates to
|
|
571
|
+
// `url`, grabs the present frame straight from the intercepted GL context (falling back to a canvas
|
|
572
|
+
// screenshot), and writes the screenshot + logs + an observe diagnostics status. Zero page integration:
|
|
573
|
+
// any page that renders to a canvas works, Flight or not — no verifier registration, no per-frame ping.
|
|
574
|
+
export async function captureUrl(url, options) {
|
|
575
|
+
const { outDir, wait = 0, captureFrames = 1 } = options;
|
|
576
|
+
mkdirSync(outDir, { recursive: true });
|
|
577
|
+
const logs = [];
|
|
578
|
+
const { browser, context } = await launchBrowser({ captureFrames, verify: false, observe: true });
|
|
579
|
+
const page = await context.newPage();
|
|
580
|
+
page.on('pageerror', (err) => {
|
|
581
|
+
logs.push({ __flight: true, t: -1, level: 'pageerror', data: { msg: err.message } });
|
|
582
|
+
});
|
|
583
|
+
page.on('console', (msg) => {
|
|
584
|
+
const type = msg.type();
|
|
585
|
+
if (type === 'error' || type === 'warning') {
|
|
586
|
+
logs.push({
|
|
587
|
+
__flight: true,
|
|
588
|
+
t: -1,
|
|
589
|
+
level: type === 'error' ? 'error' : 'warn',
|
|
590
|
+
channel: 'console',
|
|
591
|
+
data: { msg: msg.text() },
|
|
592
|
+
});
|
|
593
|
+
}
|
|
594
|
+
});
|
|
595
|
+
page.on('requestfailed', (req) => {
|
|
596
|
+
logs.push({
|
|
597
|
+
__flight: true,
|
|
598
|
+
t: -1,
|
|
599
|
+
level: 'error',
|
|
600
|
+
channel: 'network',
|
|
601
|
+
data: { msg: `request failed: ${req.url()} (${req.failure()?.errorText ?? 'unknown'})` },
|
|
602
|
+
});
|
|
603
|
+
});
|
|
604
|
+
try {
|
|
605
|
+
await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 15_000 });
|
|
606
|
+
await page.waitForSelector('canvas', { timeout: 8_000 }).catch(() => { });
|
|
607
|
+
await page
|
|
608
|
+
.waitForFunction(() => window.__captureFramesReached === true, null, { timeout: 15_000 })
|
|
609
|
+
.catch(() => { });
|
|
610
|
+
if (wait > 0)
|
|
611
|
+
await page.waitForTimeout(wait);
|
|
612
|
+
const intercept = await grabInterceptedGlFrame(page);
|
|
613
|
+
const screenshotBuffer = intercept !== null
|
|
614
|
+
? Buffer.from(intercept.dataUrl.split(',')[1], 'base64')
|
|
615
|
+
: await page
|
|
616
|
+
.locator('canvas')
|
|
617
|
+
.first()
|
|
618
|
+
.screenshot()
|
|
619
|
+
.catch(() => page.screenshot());
|
|
620
|
+
const coverage = intercept?.coverage ?? (await measureObservedCanvasCoverage(page));
|
|
621
|
+
const diagnostics = buildCaptureObserveDiagnostics({
|
|
622
|
+
backend: intercept !== null ? 'webgl' : 'canvas',
|
|
623
|
+
blank: false,
|
|
624
|
+
coverage,
|
|
625
|
+
logs,
|
|
626
|
+
verifyPublished: false,
|
|
627
|
+
verifyTargetKind: null,
|
|
628
|
+
warmupFrames: await getObserveWarmupFrames(page),
|
|
629
|
+
});
|
|
630
|
+
writeFileSync(join(outDir, 'screenshot.png'), screenshotBuffer);
|
|
631
|
+
writeFileSync(join(outDir, 'logs.jsonl'), logs.map((l) => JSON.stringify(l)).join('\n'));
|
|
632
|
+
const status = {
|
|
633
|
+
state: 'ready',
|
|
634
|
+
capturedAt: Date.now(),
|
|
635
|
+
error: null,
|
|
636
|
+
hash: createHash('sha256').update(screenshotBuffer).digest('hex'),
|
|
637
|
+
baselineHash: null,
|
|
638
|
+
changed: null,
|
|
639
|
+
observe: diagnostics,
|
|
640
|
+
};
|
|
641
|
+
writeFileSync(join(outDir, 'status.json'), JSON.stringify(status, null, 2));
|
|
642
|
+
return diagnostics;
|
|
643
|
+
}
|
|
644
|
+
finally {
|
|
645
|
+
await browser.close().catch(() => { });
|
|
646
|
+
}
|
|
647
|
+
}
|
|
320
648
|
// The artifact paths for one capture, derived purely from the output base, tool, entry name, and
|
|
321
649
|
// renderer. Shared by captureEntry (which writes them) and captureRenderTarget (which reports them),
|
|
322
650
|
// so the on-disk layout is defined in exactly one place: {outBase}/{tool}/{name}/{routeSegment}/…
|
package/dist/captureEntry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureEntry.js","sourceRoot":"","sources":["../src/captureEntry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"captureEntry.js","sourceRoot":"","sources":["../src/captureEntry.ts"],"names":[],"mappings":"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"}
|
package/dist/captureServer.js
CHANGED
|
@@ -134,9 +134,12 @@ export function resolveStaticServer(opts) {
|
|
|
134
134
|
});
|
|
135
135
|
});
|
|
136
136
|
}
|
|
137
|
-
// The root npm script that starts each tool's dev server, used in the manual-start tip.
|
|
137
|
+
// The root npm script that starts each tool's dev server, used in the manual-start tip. 'reference'
|
|
138
|
+
// runs its own dev server (flight-reference's Vite) via the reference-capture runner, not resolveServer,
|
|
139
|
+
// so its entry is only here to satisfy the Tool map.
|
|
138
140
|
const DEV_SCRIPT = {
|
|
139
141
|
examples: 'dev:examples',
|
|
140
142
|
functional: 'dev:functional',
|
|
143
|
+
reference: 'dev:reference',
|
|
141
144
|
};
|
|
142
145
|
//# sourceMappingURL=captureServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureServer.js","sourceRoot":"","sources":["../src/captureServer.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,oGAAoG;AACpG,sFAAsF;AAEtF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AASpD,MAAM,UAAU,aAAa,CAAC,IAAwD;IACpF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAEzC,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3G,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAEnD,yEAAyE;IACzE,yEAAyE;IACzE,iEAAiE;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAE9E,CAAC;IACF,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,WAAW;YACxB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACjG,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;YACrE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,MAAM,CACJ,IAAI,KAAK,CACP,uDAAuD,MAAM,MAAM;oBACjE,gDAAgD,UAAU,CAAC,IAAI,CAAC,IAAI;oBACpE,sCAAsC,CACzC,CACF,CAAC;YACJ,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,MAAM,IAAI,GAAG,CAAC,KAAa,EAAQ,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,gGAAgG;YAChG,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC7C,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,IAAI,GAAG,IAAI,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,CAAC,EAAE,GAAG,EAAE,oBAAoB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6FAA6F;AAC7F,mGAAmG;AACnG,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,IAAwD;IAC1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QAC/E,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,SAAS,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,WAAW;YACxB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,EAAE;gBAClD,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,SAAS;aACjB,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;gBACrB,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACP,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,IAAI,aAAa,CAAC,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,OAAO,oCAAoC,IAAI,aAAa,CAAC,CAAC,CAAC;IACtH,CAAC;IAED,MAAM,IAAI,GAA2B;QACnC,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,2BAA2B;QACrC,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,2BAA2B;QACpC,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,YAAY;KACvB,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,YAAY,CAAC;YAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,0BAA0B,CAAC,CAAC;YACnF,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,EAAiB,CAAC;YACjD,OAAO,CAAC,EAAE,GAAG,EAAE,oBAAoB,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"captureServer.js","sourceRoot":"","sources":["../src/captureServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { CanvasRenderState, DisplayObject, DomRenderState, GlRenderState, Surface, WgpuRenderState } from '@flighthq/types';
|
|
2
|
+
export declare const FUNCTIONAL_VERIFICATION_IMAGE_KEY = "__ftRenderImage";
|
|
3
|
+
export type FunctionalRenderOracle = (surface: Readonly<Surface>) => void | Promise<void>;
|
|
4
|
+
export interface FunctionalCanvasTarget {
|
|
5
|
+
kind: 'canvas';
|
|
6
|
+
state: CanvasRenderState;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
scale: number;
|
|
10
|
+
render(root: DisplayObject): void;
|
|
11
|
+
}
|
|
12
|
+
export interface FunctionalDomTarget {
|
|
13
|
+
kind: 'dom';
|
|
14
|
+
state: DomRenderState;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
scale: number;
|
|
18
|
+
render(root: DisplayObject): void;
|
|
19
|
+
}
|
|
20
|
+
export interface FunctionalGlTarget {
|
|
21
|
+
kind: 'webgl';
|
|
22
|
+
state: GlRenderState;
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
scale: number;
|
|
26
|
+
render(root: DisplayObject): void;
|
|
27
|
+
}
|
|
28
|
+
export interface FunctionalTestModule {
|
|
29
|
+
assertRender?: FunctionalRenderOracle;
|
|
30
|
+
minCoverage?: number;
|
|
31
|
+
}
|
|
32
|
+
export interface FunctionalVerification {
|
|
33
|
+
render: string;
|
|
34
|
+
coverage: number | null;
|
|
35
|
+
fingerprint: string | null;
|
|
36
|
+
}
|
|
37
|
+
export interface FunctionalWgpuTarget {
|
|
38
|
+
kind: 'webgpu';
|
|
39
|
+
state: WgpuRenderState;
|
|
40
|
+
width: number;
|
|
41
|
+
height: number;
|
|
42
|
+
scale: number;
|
|
43
|
+
render(root: DisplayObject): void;
|
|
44
|
+
}
|
|
45
|
+
export type FunctionalTarget = FunctionalCanvasTarget | FunctionalDomTarget | FunctionalGlTarget | FunctionalWgpuTarget;
|
|
46
|
+
export declare function publishFunctionalRenderSync(render: string): boolean;
|
|
47
|
+
export declare function registerFunctionalTarget<T extends FunctionalTarget>(target: T): T;
|
|
48
|
+
export declare function registerWgpuFunctionalTarget(state: WgpuRenderState, scale?: number): void;
|
|
49
|
+
export declare function runRenderVerification(testModule: FunctionalTestModule, render: string): Promise<void>;
|
|
50
|
+
export declare function snapshotFunctionalRender(): Promise<Surface | null>;
|
|
51
|
+
//# sourceMappingURL=functionalVerify.d.ts.map
|