@juangadm/pre-post 1.4.0 → 1.6.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/README.md +2 -1
- package/assets/labels/post.png +0 -0
- package/assets/labels/pre.png +0 -0
- package/dist/attach.d.ts +60 -0
- package/dist/attach.d.ts.map +1 -0
- package/dist/attach.js +138 -0
- package/dist/attach.js.map +1 -0
- package/dist/bin/cli.js +25 -17
- package/dist/bin/cli.js.map +1 -1
- package/dist/browser.d.ts +48 -2
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +60 -31
- package/dist/browser.js.map +1 -1
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +14 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/pr.d.ts +20 -0
- package/dist/commands/pr.d.ts.map +1 -1
- package/dist/commands/pr.js +95 -30
- package/dist/commands/pr.js.map +1 -1
- package/dist/comparison.d.ts.map +1 -1
- package/dist/comparison.js +10 -4
- package/dist/comparison.js.map +1 -1
- package/dist/compose.d.ts +72 -0
- package/dist/compose.d.ts.map +1 -0
- package/dist/compose.js +237 -0
- package/dist/compose.js.map +1 -0
- package/dist/doctor.d.ts +6 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +5 -1
- package/dist/doctor.js.map +1 -1
- package/dist/ffmpeg.d.ts +35 -0
- package/dist/ffmpeg.d.ts.map +1 -0
- package/dist/ffmpeg.js +143 -0
- package/dist/ffmpeg.js.map +1 -0
- package/dist/github.d.ts +7 -0
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +18 -0
- package/dist/github.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/moments.d.ts +83 -0
- package/dist/moments.d.ts.map +1 -0
- package/dist/moments.js +170 -0
- package/dist/moments.js.map +1 -0
- package/dist/record.d.ts +69 -0
- package/dist/record.d.ts.map +1 -0
- package/dist/record.js +223 -0
- package/dist/record.js.map +1 -0
- package/dist/report.d.ts +9 -0
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +60 -3
- package/dist/report.js.map +1 -1
- package/dist/run.d.ts +2 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +2 -1
- package/dist/run.js.map +1 -1
- package/dist/timeline.d.ts +46 -0
- package/dist/timeline.d.ts.map +1 -0
- package/dist/timeline.js +80 -0
- package/dist/timeline.js.map +1 -0
- package/dist/types.d.ts +34 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/video.d.ts +19 -0
- package/dist/video.d.ts.map +1 -0
- package/dist/video.js +109 -0
- package/dist/video.js.map +1 -0
- package/dist/viewport.d.ts +13 -0
- package/dist/viewport.d.ts.map +1 -1
- package/dist/viewport.js +16 -0
- package/dist/viewport.js.map +1 -1
- package/package.json +4 -2
- package/skill/SKILL.md +25 -6
package/dist/browser.js
CHANGED
|
@@ -71,17 +71,21 @@ function releaseSlot() {
|
|
|
71
71
|
export function playwrightCoreDir() {
|
|
72
72
|
return path.dirname(require.resolve('playwright-core/package.json'));
|
|
73
73
|
}
|
|
74
|
-
/**
|
|
75
|
-
|
|
76
|
-
*/
|
|
77
|
-
function findCachedChromium() {
|
|
74
|
+
/** Where Playwright keeps the browsers (and the ffmpeg) it installs. */
|
|
75
|
+
export function playwrightCacheDir() {
|
|
78
76
|
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
79
|
-
|
|
77
|
+
return process.env.PLAYWRIGHT_BROWSERS_PATH
|
|
80
78
|
|| (process.platform === 'darwin'
|
|
81
79
|
? path.join(home, 'Library', 'Caches', 'ms-playwright')
|
|
82
80
|
: process.platform === 'win32'
|
|
83
81
|
? path.join(process.env.LOCALAPPDATA || path.join(home, 'AppData', 'Local'), 'ms-playwright')
|
|
84
82
|
: path.join(home, '.cache', 'ms-playwright'));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Scan Playwright's browser cache for installed Chromium executables.
|
|
86
|
+
*/
|
|
87
|
+
function findCachedChromium() {
|
|
88
|
+
const cacheDir = playwrightCacheDir();
|
|
85
89
|
let entries;
|
|
86
90
|
try {
|
|
87
91
|
entries = fs.readdirSync(cacheDir);
|
|
@@ -205,6 +209,7 @@ export async function launchBrowser(opts = {}) {
|
|
|
205
209
|
}
|
|
206
210
|
throw new BrowserNotFoundError(lastError);
|
|
207
211
|
}
|
|
212
|
+
const INSTALL_SIZE_MB = { 'chromium-headless-shell': 80, chromium: 170, ffmpeg: 2 };
|
|
208
213
|
/**
|
|
209
214
|
* Install a browser through playwright-core's CLI. Resolves true on success.
|
|
210
215
|
*
|
|
@@ -213,7 +218,7 @@ export async function launchBrowser(opts = {}) {
|
|
|
213
218
|
*/
|
|
214
219
|
export function installBrowser(kind) {
|
|
215
220
|
const cli = path.join(playwrightCoreDir(), 'cli.js');
|
|
216
|
-
console.error(`Installing ${kind} (one-time, ~${kind
|
|
221
|
+
console.error(`Installing ${kind} (one-time, ~${INSTALL_SIZE_MB[kind]} MB)...`);
|
|
217
222
|
return new Promise(resolve => {
|
|
218
223
|
const child = spawn(process.execPath, [cli, 'install', kind], { stdio: ['ignore', 'inherit', 'inherit'] });
|
|
219
224
|
child.on('error', () => resolve(false));
|
|
@@ -304,7 +309,7 @@ const DEV_OVERLAY_SELECTORS = [
|
|
|
304
309
|
* portal is mounted after hydration, so there is nothing to find at document
|
|
305
310
|
* start.
|
|
306
311
|
*/
|
|
307
|
-
async function hideDevIndicator(page) {
|
|
312
|
+
export async function hideDevIndicator(page) {
|
|
308
313
|
await page.evaluate(() => {
|
|
309
314
|
const hosts = Array.prototype.slice.call(document.querySelectorAll('nextjs-portal'));
|
|
310
315
|
for (const host of hosts) {
|
|
@@ -394,23 +399,13 @@ const INIT_SCRIPT = `
|
|
|
394
399
|
if (document.head) attach(); else document.addEventListener('DOMContentLoaded', attach, { once: true });
|
|
395
400
|
})();
|
|
396
401
|
`;
|
|
397
|
-
|
|
398
|
-
* A context per capture, not per viewport.
|
|
399
|
-
*
|
|
400
|
-
* Playwright's clock belongs to the browser context and is replayed into every
|
|
401
|
-
* page opened in it, so pages that share a context do not share a starting
|
|
402
|
-
* point: the second page inherits the timeline the first one ran. An animated
|
|
403
|
-
* page then lands on a different frame depending on how many captures came
|
|
404
|
-
* before it. One context per capture makes every page start from the same
|
|
405
|
-
* paused instant — and keeps storage and caches from leaking between the two
|
|
406
|
-
* sides of a comparison.
|
|
407
|
-
*/
|
|
408
|
-
async function createContext(viewport, scale, auth) {
|
|
402
|
+
async function createContext(viewport, scale, { auth, motion = false } = {}) {
|
|
409
403
|
const b = await getBrowser();
|
|
410
404
|
const ctx = await b.newContext({
|
|
411
405
|
viewport,
|
|
412
406
|
deviceScaleFactor: scale,
|
|
413
|
-
|
|
407
|
+
// A recording exists to show motion, so it asks for the page's own.
|
|
408
|
+
reducedMotion: motion ? 'no-preference' : 'reduce',
|
|
414
409
|
colorScheme: 'light',
|
|
415
410
|
locale: 'en-US',
|
|
416
411
|
timezoneId: 'UTC',
|
|
@@ -425,8 +420,13 @@ async function createContext(viewport, scale, auth) {
|
|
|
425
420
|
// land on whatever frame the network happened to deliver. With the clock
|
|
426
421
|
// installed and paused, the page's timeline does not move until
|
|
427
422
|
// `advanceTimeline` moves it — by the same amount on both sides.
|
|
428
|
-
|
|
429
|
-
|
|
423
|
+
//
|
|
424
|
+
// A recording runs on the real clock instead: its whole point is time
|
|
425
|
+
// passing, and CSS transitions follow the compositor, not these timers.
|
|
426
|
+
if (!motion) {
|
|
427
|
+
await ctx.clock.install({ time: FIXED_TIME });
|
|
428
|
+
await ctx.clock.pauseAt(FIXED_TIME);
|
|
429
|
+
}
|
|
430
430
|
await ctx.addInitScript(INIT_SCRIPT);
|
|
431
431
|
if (auth?.cookies?.length) {
|
|
432
432
|
await ctx.addCookies(auth.cookies.map(c => ({
|
|
@@ -448,7 +448,7 @@ async function createContext(viewport, scale, auth) {
|
|
|
448
448
|
* frozen throughout, so waiting longer here — on a slow host, a cold cache, a
|
|
449
449
|
* busy machine — never advances an animation. Bounded by `timeout` ms.
|
|
450
450
|
*/
|
|
451
|
-
async function settlePage(page, timeout, options = {}) {
|
|
451
|
+
export async function settlePage(page, timeout, options = {}) {
|
|
452
452
|
const deadline = Date.now() + timeout;
|
|
453
453
|
const left = () => Math.max(0, deadline - Date.now());
|
|
454
454
|
// Fonts and images resolve off the loading pipeline, not off page timers.
|
|
@@ -605,6 +605,26 @@ async function primeLazyContent(page, maxHeight) {
|
|
|
605
605
|
await page.evaluate(() => window.scrollTo(0, 0));
|
|
606
606
|
await advanceTimeline(page, FRAME_MS);
|
|
607
607
|
}
|
|
608
|
+
/**
|
|
609
|
+
* Run `fn` on a fresh page whose clock runs in real time and whose motion
|
|
610
|
+
* preferences are left alone — what a recording needs, and the opposite of a
|
|
611
|
+
* screenshot. Shares the page pool with captures, so a run's recordings and
|
|
612
|
+
* screenshots together never open more pages than the pool allows.
|
|
613
|
+
*/
|
|
614
|
+
export async function withMotionPage(viewport, auth, fn) {
|
|
615
|
+
await acquireSlot();
|
|
616
|
+
let ctx;
|
|
617
|
+
try {
|
|
618
|
+
ctx = await createContext(viewport, 1, { auth, motion: true });
|
|
619
|
+
const page = await ctx.newPage();
|
|
620
|
+
trackRequests(page);
|
|
621
|
+
return await fn(page, ctx);
|
|
622
|
+
}
|
|
623
|
+
finally {
|
|
624
|
+
await ctx?.close().catch(() => undefined);
|
|
625
|
+
releaseSlot();
|
|
626
|
+
}
|
|
627
|
+
}
|
|
608
628
|
// ============================================================
|
|
609
629
|
// Capture
|
|
610
630
|
// ============================================================
|
|
@@ -625,16 +645,10 @@ export async function captureScreenshot(url, options) {
|
|
|
625
645
|
let ctx;
|
|
626
646
|
let page;
|
|
627
647
|
try {
|
|
628
|
-
ctx = await createContext(options.viewport, scale, options.auth);
|
|
648
|
+
ctx = await createContext(options.viewport, scale, { auth: options.auth });
|
|
629
649
|
page = await ctx.newPage();
|
|
630
650
|
trackRequests(page);
|
|
631
|
-
const
|
|
632
|
-
throw new NavigationError(classifyNavigationError(err), url, err);
|
|
633
|
-
});
|
|
634
|
-
const status = response?.status();
|
|
635
|
-
const vercel = response ? isVercelResponse({ get: n => response.headers()[n] ?? null }) : false;
|
|
636
|
-
if (status === 401 || status === 403)
|
|
637
|
-
throw new HttpStatusError(status, url, vercel);
|
|
651
|
+
const { status, vercel } = await gotoChecked(page, url);
|
|
638
652
|
await settlePage(page, settleTimeout);
|
|
639
653
|
if (options.fullPage) {
|
|
640
654
|
await primeLazyContent(page, maxHeight);
|
|
@@ -712,6 +726,21 @@ export async function captureScreenshot(url, options) {
|
|
|
712
726
|
releaseSlot();
|
|
713
727
|
}
|
|
714
728
|
}
|
|
729
|
+
/**
|
|
730
|
+
* Load `url`. Throws NavigationError when no document arrives and
|
|
731
|
+
* HttpStatusError for 401/403 (auth required); any other status is returned
|
|
732
|
+
* for the caller to judge — a 404 on Pre is a legitimately new page.
|
|
733
|
+
*/
|
|
734
|
+
export async function gotoChecked(page, url) {
|
|
735
|
+
const response = await page.goto(url, { waitUntil: 'domcontentloaded' }).catch(err => {
|
|
736
|
+
throw new NavigationError(classifyNavigationError(err), url, err);
|
|
737
|
+
});
|
|
738
|
+
const status = response?.status();
|
|
739
|
+
const vercel = response ? isVercelResponse({ get: n => response.headers()[n] ?? null }) : false;
|
|
740
|
+
if (status === 401 || status === 403)
|
|
741
|
+
throw new HttpStatusError(status, url, vercel);
|
|
742
|
+
return { status, vercel };
|
|
743
|
+
}
|
|
715
744
|
function classifyNavigationError(err) {
|
|
716
745
|
const msg = err.message || '';
|
|
717
746
|
if (err.name === 'TimeoutError' || /Timeout .* exceeded/.test(msg))
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,5 +38,11 @@ export declare function doctorExitCode(checks: DoctorCheck[]): number;
|
|
|
38
38
|
* "ready" there is exactly the lie the exit-code contract exists to prevent.
|
|
39
39
|
*/
|
|
40
40
|
export declare function repoIdentityCheck(root: string): DoctorCheck;
|
|
41
|
+
/**
|
|
42
|
+
* Advisory, like everything about video: a run with Moments still records
|
|
43
|
+
* without either (ffmpeg installs itself on first use), and a clip that cannot
|
|
44
|
+
* play inline is linked instead.
|
|
45
|
+
*/
|
|
46
|
+
export declare function videoCheck(): DoctorCheck;
|
|
41
47
|
export declare function runDoctor(cwd?: string): Promise<DoctorCheck[]>;
|
|
42
48
|
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAE5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAM3D;AAkCD;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,WAAW,CAKxC;AAED,wBAAsB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA2CpE"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -11,6 +11,8 @@ import { servableDir } from '../baseline.js';
|
|
|
11
11
|
import { cannotPublishHint, checkWriteAccess, findToken, GitHub, loginHint } from '../github.js';
|
|
12
12
|
import { closeBrowser } from '../browser.js';
|
|
13
13
|
import { driftNotes, ownVersion } from '../drift.js';
|
|
14
|
+
import { findFfmpeg } from '../ffmpeg.js';
|
|
15
|
+
import { ghAttachSupport } from '../attach.js';
|
|
14
16
|
/**
|
|
15
17
|
* doctor's contract, relied on by anything that runs it before a run:
|
|
16
18
|
*
|
|
@@ -76,6 +78,17 @@ async function githubCheck(cwd) {
|
|
|
76
78
|
return { name: 'github', ok: false, detail: cannotPublishHint(ownerRepo, found.source), required: true };
|
|
77
79
|
return { name: 'github', ok: false, detail: `could not reach GitHub to check the token (${access.detail})` };
|
|
78
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Advisory, like everything about video: a run with Moments still records
|
|
83
|
+
* without either (ffmpeg installs itself on first use), and a clip that cannot
|
|
84
|
+
* play inline is linked instead.
|
|
85
|
+
*/
|
|
86
|
+
export function videoCheck() {
|
|
87
|
+
const ffmpeg = findFfmpeg();
|
|
88
|
+
const attach = ghAttachSupport();
|
|
89
|
+
const parts = [ffmpeg ? 'ffmpeg ready' : 'ffmpeg installs on first recording (~2 MB)', attach.ok ? 'gh can attach videos inline' : attach.reason];
|
|
90
|
+
return { name: 'video', ok: attach.ok, detail: parts.join('; ') };
|
|
91
|
+
}
|
|
79
92
|
export async function runDoctor(cwd) {
|
|
80
93
|
const checks = [];
|
|
81
94
|
try {
|
|
@@ -89,6 +102,7 @@ export async function runDoctor(cwd) {
|
|
|
89
102
|
await closeBrowser();
|
|
90
103
|
}
|
|
91
104
|
checks.push(await githubCheck(cwd));
|
|
105
|
+
checks.push(videoCheck());
|
|
92
106
|
// Name the ports that answered but were passed over. "None found on the
|
|
93
107
|
// usual ports" reads as a lie to anyone who knows something is listening on
|
|
94
108
|
// one of them, and the usual something is a macOS system service on 5000.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/pr.d.ts
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Framework, PrePostConfig, PrRunResult } from '../types.js';
|
|
5
5
|
import { Settings } from '../config.js';
|
|
6
|
+
import { ProbeResult } from '../doctor.js';
|
|
7
|
+
import { Moment } from '../moments.js';
|
|
6
8
|
export interface PrCommandOptions extends Partial<Settings> {
|
|
7
9
|
cwd?: string;
|
|
8
10
|
before?: string;
|
|
@@ -30,8 +32,26 @@ export interface PrCommandOptions extends Partial<Settings> {
|
|
|
30
32
|
/** Rebuild the baseline from the base commit when no URL is reachable. Default true. */
|
|
31
33
|
localBaseline?: boolean;
|
|
32
34
|
version?: string;
|
|
35
|
+
/** Moments to record, already validated (a `--moments` file). Default: `.pre-post.json` "moments". */
|
|
36
|
+
moments?: Moment[];
|
|
37
|
+
/** False to record no video this run. */
|
|
38
|
+
video?: boolean;
|
|
33
39
|
log?: (msg: string) => void;
|
|
34
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Probe a URL, but leave a sign-in redirect to capture when cookies will be sent.
|
|
43
|
+
*
|
|
44
|
+
* The probe is a plain fetch with headers only. A saved `pre-post login`
|
|
45
|
+
* session or `--cookie` is what gets the browser past the wall, so for a URL
|
|
46
|
+
* that has one, a redirect to sign-in here says nothing about the capture —
|
|
47
|
+
* rejecting it would send the user back to `pre-post login` in a loop. The
|
|
48
|
+
* browser's landing check still stops the run if the cookies do not work.
|
|
49
|
+
*
|
|
50
|
+
* `--cookie` is only ever attached to Pre (`cookieUrl`), so it defers the
|
|
51
|
+
* verdict for that host alone; a protected preview must still be caught here
|
|
52
|
+
* so the run can fall back to local.
|
|
53
|
+
*/
|
|
54
|
+
export declare function probeForCapture(headers: Record<string, string>, cliCookies: PrCommandOptions['cookies'], cookieUrl: string | undefined, probe?: (url: string, headers: Record<string, string>) => Promise<ProbeResult>): (url: string) => Promise<ProbeResult>;
|
|
35
55
|
/**
|
|
36
56
|
* The Post URL the caller fixed, if any.
|
|
37
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,
|
|
1
|
+
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAA+C,SAAS,EAAmB,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClI,OAAO,EAA+B,QAAQ,EAAgB,MAAM,cAAc,CAAC;AAKnF,OAAO,EAA6D,WAAW,EAAY,MAAM,cAAc,CAAC;AAUhH,OAAO,EAAE,MAAM,EAA4C,MAAM,eAAe,CAAC;AAIjF,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,QAAQ,CAAC;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,EACvC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,GAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,WAAW,CAAY,GACvF,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAQvC;AAaD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAElI;AAMD,wBAAsB,KAAK,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuX7E"}
|
package/dist/commands/pr.js
CHANGED
|
@@ -11,15 +11,41 @@ import { capNotice, detectRoutesForRepo, resolveSample } from '../routes.js';
|
|
|
11
11
|
import { closeBrowser } from '../browser.js';
|
|
12
12
|
import { parseViewport } from '../viewport.js';
|
|
13
13
|
import { authHint, detectDevServer, ensureBrowser, NeedsHumanError, probeUrl } from '../doctor.js';
|
|
14
|
-
import { API_BASE, cannotPublishHint, checkWriteAccess, findOpenPr, findOpenPrForCommit, findToken, getPr, GitHub, GitHubError, loginHint, publishAssets, upsertPrDescription, upsertStickyComment } from '../github.js';
|
|
14
|
+
import { API_BASE, cannotPublishHint, checkWriteAccess, findOpenPr, findOpenPrForCommit, findToken, getPr, GitHub, GitHubError, isPublicRepo, jsdelivrUrl, loginHint, publishAssets, upsertPrDescription, upsertStickyComment } from '../github.js';
|
|
15
15
|
import { buildComment, groupChanges, STICKY_MARKER } from '../report.js';
|
|
16
|
-
import { resolveAuth } from '../sessions.js';
|
|
16
|
+
import { cookiesForUrls, resolveAuth } from '../sessions.js';
|
|
17
17
|
import { routeSlug, runTasks, throwIfBlocked } from '../run.js';
|
|
18
|
-
import { joinUrl } from '../url.js';
|
|
18
|
+
import { hostOf, joinUrl } from '../url.js';
|
|
19
19
|
import { describeComparison, resolveComparison } from '../comparison.js';
|
|
20
20
|
import { Stopwatch } from '../timings.js';
|
|
21
21
|
import { driftNotes } from '../drift.js';
|
|
22
22
|
import { buildSheet } from '../sheet.js';
|
|
23
|
+
import { parseMoments, selectMoments, skippedNote } from '../moments.js';
|
|
24
|
+
import { recordMoments } from '../video.js';
|
|
25
|
+
import { attachClips } from '../attach.js';
|
|
26
|
+
/**
|
|
27
|
+
* Probe a URL, but leave a sign-in redirect to capture when cookies will be sent.
|
|
28
|
+
*
|
|
29
|
+
* The probe is a plain fetch with headers only. A saved `pre-post login`
|
|
30
|
+
* session or `--cookie` is what gets the browser past the wall, so for a URL
|
|
31
|
+
* that has one, a redirect to sign-in here says nothing about the capture —
|
|
32
|
+
* rejecting it would send the user back to `pre-post login` in a loop. The
|
|
33
|
+
* browser's landing check still stops the run if the cookies do not work.
|
|
34
|
+
*
|
|
35
|
+
* `--cookie` is only ever attached to Pre (`cookieUrl`), so it defers the
|
|
36
|
+
* verdict for that host alone; a protected preview must still be caught here
|
|
37
|
+
* so the run can fall back to local.
|
|
38
|
+
*/
|
|
39
|
+
export function probeForCapture(headers, cliCookies, cookieUrl, probe = probeUrl) {
|
|
40
|
+
return async (url) => {
|
|
41
|
+
const result = await probe(url, headers);
|
|
42
|
+
const cliCookiesApply = Boolean(cliCookies?.length && cookieUrl && hostOf(cookieUrl) === hostOf(url));
|
|
43
|
+
if (!result.signIn || (!cliCookiesApply && !cookiesForUrls([url]).length))
|
|
44
|
+
return result;
|
|
45
|
+
const { signIn: _deferred, ...rest } = result;
|
|
46
|
+
return rest;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
23
49
|
/**
|
|
24
50
|
* What ends up on the assets branch. The diff overlay is an intermediate used
|
|
25
51
|
* to locate the changed region; Pre beside Post is the comparison a reviewer
|
|
@@ -54,6 +80,10 @@ export async function runPr(opts = {}) {
|
|
|
54
80
|
// PR's branch in GITHUB_HEAD_REF.
|
|
55
81
|
const branch = currentBranch(root) ?? (process.env.GITHUB_HEAD_REF?.trim() || null);
|
|
56
82
|
const head = headSha(root);
|
|
83
|
+
// Validated before anything slow: a typo in a step should cost a second,
|
|
84
|
+
// not a whole capture pass.
|
|
85
|
+
const { run: moments, skipped: momentsSkipped } = selectMoments(opts.video === false ? []
|
|
86
|
+
: opts.moments ?? (config.moments ? parseMoments(config.moments, '.pre-post.json "moments"') : []));
|
|
57
87
|
/** Tears down anything resolution started (a local dev server). */
|
|
58
88
|
let cleanupComparison = async () => undefined;
|
|
59
89
|
// --- GitHub access (checked before any time is spent) -----------------------
|
|
@@ -144,23 +174,33 @@ export async function runPr(opts = {}) {
|
|
|
144
174
|
// still needs a sample URL gets that answer in a second, not after a browser
|
|
145
175
|
// and two dev servers have started for nothing.
|
|
146
176
|
const explicitRoutes = Boolean(opts.routes?.length);
|
|
147
|
-
|
|
177
|
+
// A Moment names its page, so a branch whose changes detection cannot place
|
|
178
|
+
// (a shared component, a style) still has something to capture.
|
|
179
|
+
const momentRoutes = [...new Set(moments.map(m => m.route))];
|
|
180
|
+
const detected = detection.routes.map(r => r.path);
|
|
181
|
+
const routes = explicitRoutes ? opts.routes : detected.length ? detected : momentRoutes;
|
|
148
182
|
const skippedDynamic = explicitRoutes ? [] : detection.skippedDynamic;
|
|
149
183
|
const omitted = !explicitRoutes && detection.omitted.length
|
|
150
184
|
? { routes: detection.omitted.map(r => r.path), cap: settings.maxRoutes }
|
|
151
185
|
: undefined;
|
|
152
186
|
if (!explicitRoutes) {
|
|
153
|
-
log(`Routes (${detection.framework}, ${detection.durationMs}ms): ${
|
|
187
|
+
log(`Routes (${detection.framework}, ${detection.durationMs}ms): ${detected.length ? detected.join(', ') : 'none detected'}`);
|
|
154
188
|
for (const r of detection.routes)
|
|
155
189
|
log(` ${r.path.padEnd(28)} ${r.confidence.padEnd(6)} ${r.reason}`);
|
|
156
190
|
if (omitted)
|
|
157
191
|
log(` ${capNotice(omitted.routes, omitted.cap)}`);
|
|
158
|
-
if (!routes.length) {
|
|
192
|
+
if (!detected.length && routes.length) {
|
|
193
|
+
log(`Capturing the pages the Moments use: ${routes.join(', ')}`);
|
|
194
|
+
}
|
|
195
|
+
else if (!routes.length) {
|
|
159
196
|
log(skippedDynamic.length
|
|
160
197
|
? `Nothing to capture until ${skippedDynamic.join(', ')} ${skippedDynamic.length === 1 ? 'has' : 'have'} a sample URL.`
|
|
161
198
|
: 'Nothing this branch changed renders on a page; nothing to capture.');
|
|
162
199
|
}
|
|
163
200
|
}
|
|
201
|
+
const momentsSkippedNote = skippedNote(momentsSkipped);
|
|
202
|
+
if (momentsSkippedNote)
|
|
203
|
+
log(momentsSkippedNote);
|
|
164
204
|
// --- Start the slow, independent things now; they overlap resolution -------
|
|
165
205
|
// Only after the --require-pr answer and only with a page to capture: a
|
|
166
206
|
// fresh runner would otherwise download and launch Chromium for nothing.
|
|
@@ -214,6 +254,7 @@ export async function runPr(opts = {}) {
|
|
|
214
254
|
repo: ownerRepo,
|
|
215
255
|
prNumber: pr?.number,
|
|
216
256
|
...captured,
|
|
257
|
+
momentsSkipped: momentsSkipped.length ? momentsSkipped : undefined,
|
|
217
258
|
skippedDynamic,
|
|
218
259
|
omitted,
|
|
219
260
|
durationMs: Date.now() - started,
|
|
@@ -259,6 +300,8 @@ export async function runPr(opts = {}) {
|
|
|
259
300
|
return finish({ outcomes: [], beforeBase: '', afterBase: '', outputDir: '' });
|
|
260
301
|
// --- What are we comparing? ---------------------------------------------------
|
|
261
302
|
const headers = headersFor(config, opts);
|
|
303
|
+
// Only a baseline named up front is known before resolution picks one.
|
|
304
|
+
const probe = probeForCapture(headers, opts.cookies, opts.before ?? config.before);
|
|
262
305
|
// Resolution can throw (no baseline, an install that failed): the browser was
|
|
263
306
|
// launched before this and nothing else would close it, so its teardown has
|
|
264
307
|
// to cover the throw as well as the happy path.
|
|
@@ -273,7 +316,7 @@ export async function runPr(opts = {}) {
|
|
|
273
316
|
// PR open yet — the host builds on push, not on PR.
|
|
274
317
|
headSha: head ?? undefined,
|
|
275
318
|
before: opts.before, after: explicitAfter,
|
|
276
|
-
devServer, probe
|
|
319
|
+
devServer, probe,
|
|
277
320
|
allowLocalBaseline: opts.localBaseline, localOnly: opts.local, log, timings,
|
|
278
321
|
}), { contains: ['pre', 'post'] }).catch(async (err) => { await stopEverything(); throw err; });
|
|
279
322
|
cleanupComparison = comparison.stop;
|
|
@@ -292,17 +335,19 @@ export async function runPr(opts = {}) {
|
|
|
292
335
|
await stopEverything();
|
|
293
336
|
throw new NeedsHumanError(message);
|
|
294
337
|
};
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
338
|
+
// Now Pre is known, `--cookie` goes to the URL `resolveAuth` will attach it to.
|
|
339
|
+
const probeResolved = probeForCapture(headers, opts.cookies, before);
|
|
340
|
+
const [beforeProbe, afterProbe] = await Promise.all([
|
|
341
|
+
comparison.before.probe ?? probeResolved(before),
|
|
342
|
+
comparison.after.probe ?? probeResolved(after),
|
|
298
343
|
]);
|
|
299
|
-
if (
|
|
344
|
+
if (beforeProbe.status === null)
|
|
300
345
|
await fail(`Cannot reach ${before} (Pre — ${comparison.before.detail}).`);
|
|
301
|
-
if (
|
|
302
|
-
await fail(authHint({ url: before, vercel:
|
|
346
|
+
if (beforeProbe.status === 401 || beforeProbe.status === 403 || beforeProbe.signIn)
|
|
347
|
+
await fail(authHint({ url: before, vercel: beforeProbe.vercel }));
|
|
303
348
|
if (afterProbe.status === null)
|
|
304
349
|
await fail(`Cannot reach ${after} (Post — ${comparison.after.detail}).`);
|
|
305
|
-
if (afterProbe.status === 401 || afterProbe.status === 403)
|
|
350
|
+
if (afterProbe.status === 401 || afterProbe.status === 403 || afterProbe.signIn)
|
|
306
351
|
await fail(authHint({ url: after, vercel: afterProbe.vercel }));
|
|
307
352
|
const auth = resolveAuth({ configHeaders: config.headers, headers: opts.headers, cookies: opts.cookies, cookieUrl: before, urls: [before, after] });
|
|
308
353
|
// --- Capture -------------------------------------------------------------------
|
|
@@ -320,6 +365,7 @@ export async function runPr(opts = {}) {
|
|
|
320
365
|
await browserReady;
|
|
321
366
|
let run;
|
|
322
367
|
let sheetPath;
|
|
368
|
+
let momentOutcomes;
|
|
323
369
|
try {
|
|
324
370
|
run = await timings.time('capture', runTasks(tasks, {
|
|
325
371
|
outputDir, ...settings, wait: opts.wait, auth, log,
|
|
@@ -327,11 +373,18 @@ export async function runPr(opts = {}) {
|
|
|
327
373
|
sides: { before: comparison.before, after: comparison.after },
|
|
328
374
|
}));
|
|
329
375
|
// Drawn while the browser is still open. A convenience, so a failure to
|
|
330
|
-
// draw it is logged and never costs the run its result.
|
|
376
|
+
// draw it is logged and never costs the run its result. The clips follow
|
|
377
|
+
// the same rule, and run beside it: neither needs the other.
|
|
331
378
|
if (!run.verdict) {
|
|
332
|
-
sheetPath = await
|
|
333
|
-
.
|
|
334
|
-
|
|
379
|
+
[sheetPath, momentOutcomes] = await Promise.all([
|
|
380
|
+
timings.time('sheet', buildSheet(run.outcomes, outputDir))
|
|
381
|
+
.then(p => p ?? undefined)
|
|
382
|
+
.catch(err => { log(`Could not draw the summary sheet (${err instanceof Error ? err.message : err}).`); return undefined; }),
|
|
383
|
+
moments.length
|
|
384
|
+
? timings.time('video', recordMoments(moments, { before, after, auth, outputDir, log }))
|
|
385
|
+
.catch(err => { log(`Could not record the Moments (${err instanceof Error ? err.message : err}).`); return undefined; })
|
|
386
|
+
: Promise.resolve(undefined),
|
|
387
|
+
]);
|
|
335
388
|
}
|
|
336
389
|
}
|
|
337
390
|
finally {
|
|
@@ -350,31 +403,43 @@ export async function runPr(opts = {}) {
|
|
|
350
403
|
// leads its group in the PR; the rest would be images nothing links to.
|
|
351
404
|
const leads = new Set(groupChanges(outcomes).map(g => g.lead));
|
|
352
405
|
const changed = isBrokenVerdict(verdict) ? [] : outcomes.filter(o => (leads.has(o) || o.status === 'added' || o.status === 'removed') && o.files);
|
|
353
|
-
|
|
406
|
+
const clips = (momentOutcomes ?? []).filter(m => m.status === 'recorded');
|
|
407
|
+
const placed = writeGh && clips.length
|
|
408
|
+
? await timings.time('attach', attachClips(clips, { gh: writeGh, ownerRepo, pr: pr?.number, token: found?.token, log }))
|
|
409
|
+
: { linked: [] };
|
|
410
|
+
if (writeGh && (changed.length || placed.linked.length)) {
|
|
354
411
|
const folder = pr ? `pr-${pr.number}/${id}` : `branch/${routeSlug(branch || 'detached')}/${id}`;
|
|
355
|
-
|
|
356
|
-
|
|
412
|
+
// One list for everything this run publishes: where it goes, what it
|
|
413
|
+
// is, and where its URL lands once GitHub has it.
|
|
414
|
+
const uploads = [];
|
|
357
415
|
for (const o of changed) {
|
|
358
416
|
for (const kind of PUBLISHED_KINDS) {
|
|
359
417
|
const local = o.files[kind];
|
|
360
418
|
if (local)
|
|
361
|
-
|
|
419
|
+
uploads.push({ path: `${folder}/${routeSlug(o.route)}-${o.viewport}-${artifactSuffix(kind)}.png`, local, assign: url => { o.urls = { ...o.urls, [kind]: url }; } });
|
|
362
420
|
}
|
|
363
421
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
422
|
+
// A clip at a blob URL downloads instead of playing, so it is linked
|
|
423
|
+
// through jsDelivr, which only public repos can use. A private repo
|
|
424
|
+
// gets the poster alone.
|
|
425
|
+
const playable = placed.linked.length > 0 && await isPublicRepo(writeGh, ownerRepo);
|
|
426
|
+
for (const m of placed.linked) {
|
|
427
|
+
const clipPath = `${folder}/${path.basename(m.file)}`;
|
|
428
|
+
if (playable)
|
|
429
|
+
uploads.push({ path: clipPath, local: m.file, assign: (_, sha) => { m.videoUrl = jsdelivrUrl(ownerRepo, sha, clipPath); } });
|
|
430
|
+
uploads.push({ path: `${folder}/${path.basename(m.poster)}`, local: m.poster, assign: url => { m.posterUrl = url; } });
|
|
372
431
|
}
|
|
432
|
+
const files = uploads.map(u => ({ path: u.path, content: fs.readFileSync(u.local) }));
|
|
433
|
+
log(`Publishing ${files.length} file(s) to ${ownerRepo}@${settings.assetsBranch} ...`);
|
|
434
|
+
const published = await timings.time('publish', () => publishAssets(writeGh, ownerRepo, settings.assetsBranch, files, pr ? `Screenshots for #${pr.number} (${id})` : `Screenshots for ${branch || 'detached'} (${id})`));
|
|
435
|
+
for (const u of uploads)
|
|
436
|
+
u.assign(published.urls.get(u.path), published.sha);
|
|
373
437
|
}
|
|
374
438
|
return finish({
|
|
375
439
|
outcomes, beforeBase: before, afterBase: after,
|
|
376
440
|
beforeLabel: comparison.before.label, afterLabel: comparison.after.label,
|
|
377
441
|
outputDir, sheetPath, verdict: verdict ?? undefined,
|
|
442
|
+
moments: momentOutcomes?.length ? momentOutcomes : undefined, momentsHint: placed.hint,
|
|
378
443
|
});
|
|
379
444
|
}
|
|
380
445
|
//# sourceMappingURL=pr.js.map
|