@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.
Files changed (77) hide show
  1. package/README.md +2 -1
  2. package/assets/labels/post.png +0 -0
  3. package/assets/labels/pre.png +0 -0
  4. package/dist/attach.d.ts +60 -0
  5. package/dist/attach.d.ts.map +1 -0
  6. package/dist/attach.js +138 -0
  7. package/dist/attach.js.map +1 -0
  8. package/dist/bin/cli.js +25 -17
  9. package/dist/bin/cli.js.map +1 -1
  10. package/dist/browser.d.ts +48 -2
  11. package/dist/browser.d.ts.map +1 -1
  12. package/dist/browser.js +60 -31
  13. package/dist/browser.js.map +1 -1
  14. package/dist/commands/doctor.d.ts +6 -0
  15. package/dist/commands/doctor.d.ts.map +1 -1
  16. package/dist/commands/doctor.js +14 -0
  17. package/dist/commands/doctor.js.map +1 -1
  18. package/dist/commands/pr.d.ts +20 -0
  19. package/dist/commands/pr.d.ts.map +1 -1
  20. package/dist/commands/pr.js +95 -30
  21. package/dist/commands/pr.js.map +1 -1
  22. package/dist/comparison.d.ts.map +1 -1
  23. package/dist/comparison.js +10 -4
  24. package/dist/comparison.js.map +1 -1
  25. package/dist/compose.d.ts +72 -0
  26. package/dist/compose.d.ts.map +1 -0
  27. package/dist/compose.js +237 -0
  28. package/dist/compose.js.map +1 -0
  29. package/dist/doctor.d.ts +6 -0
  30. package/dist/doctor.d.ts.map +1 -1
  31. package/dist/doctor.js +5 -1
  32. package/dist/doctor.js.map +1 -1
  33. package/dist/ffmpeg.d.ts +35 -0
  34. package/dist/ffmpeg.d.ts.map +1 -0
  35. package/dist/ffmpeg.js +143 -0
  36. package/dist/ffmpeg.js.map +1 -0
  37. package/dist/github.d.ts +7 -0
  38. package/dist/github.d.ts.map +1 -1
  39. package/dist/github.js +18 -0
  40. package/dist/github.js.map +1 -1
  41. package/dist/index.d.ts +4 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/moments.d.ts +83 -0
  46. package/dist/moments.d.ts.map +1 -0
  47. package/dist/moments.js +170 -0
  48. package/dist/moments.js.map +1 -0
  49. package/dist/record.d.ts +69 -0
  50. package/dist/record.d.ts.map +1 -0
  51. package/dist/record.js +223 -0
  52. package/dist/record.js.map +1 -0
  53. package/dist/report.d.ts +9 -0
  54. package/dist/report.d.ts.map +1 -1
  55. package/dist/report.js +60 -3
  56. package/dist/report.js.map +1 -1
  57. package/dist/run.d.ts +2 -0
  58. package/dist/run.d.ts.map +1 -1
  59. package/dist/run.js +2 -1
  60. package/dist/run.js.map +1 -1
  61. package/dist/timeline.d.ts +46 -0
  62. package/dist/timeline.d.ts.map +1 -0
  63. package/dist/timeline.js +80 -0
  64. package/dist/timeline.js.map +1 -0
  65. package/dist/types.d.ts +34 -0
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/types.js.map +1 -1
  68. package/dist/video.d.ts +19 -0
  69. package/dist/video.d.ts.map +1 -0
  70. package/dist/video.js +109 -0
  71. package/dist/video.js.map +1 -0
  72. package/dist/viewport.d.ts +13 -0
  73. package/dist/viewport.d.ts.map +1 -1
  74. package/dist/viewport.js +16 -0
  75. package/dist/viewport.js.map +1 -1
  76. package/package.json +4 -2
  77. package/skill/SKILL.md +25 -6
package/README.md CHANGED
@@ -49,7 +49,7 @@ The first run downloads a small browser (~80 MB). Stuck? Run
49
49
  ```bash
50
50
  pre-post pr # screenshot this branch's PR
51
51
  pre-post pr --routes /pricing,/docs # only these pages
52
- pre-post pr -r # desktop and mobile
52
+ pre-post pr --mobile # add mobile to desktop
53
53
  pre-post pr --before https://acme.com # set the "before" site (remembered)
54
54
  pre-post pr --dry-run # try it without posting
55
55
  pre-post login https://staging.acme.com # sign in once for protected sites
@@ -74,6 +74,7 @@ see the repo can see them. Nothing is committed to your PR branch.
74
74
  |---|---|
75
75
  | [How it works](https://github.com/juangadm/pre-post/blob/main/docs/how-it-works.md) | How Pre and Post are chosen, capture, diffing, layout shifts |
76
76
  | [GitHub Action](https://github.com/juangadm/pre-post/blob/main/docs/github-action.md) | Run on every PR with no per-person setup |
77
+ | [Video: Moments](https://github.com/juangadm/pre-post/blob/main/docs/video.md) | Record interactions (menus, hovers, transitions) as synced Pre \| Post clips |
77
78
  | [Reference](https://github.com/juangadm/pre-post/blob/main/docs/reference.md) | All commands, exit codes, `.pre-post.json`, environment variables |
78
79
  | [Screenshot storage](https://github.com/juangadm/pre-post/blob/main/docs/storage.md) | How much space it uses and how to prune it |
79
80
  | [Contributing](https://github.com/juangadm/pre-post/blob/main/CONTRIBUTING.md) | Build and test locally |
Binary file
Binary file
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Put clips where GitHub will play them.
3
+ *
4
+ * A video plays inline in a PR only from GitHub's own attachment storage
5
+ * (`github.com/user-attachments/assets/…`); a clip on the assets branch is
6
+ * only a link that plays it in the browser, from a public repo (see
7
+ * `jsdelivrUrl`). Since 2026-09-01 `gh` uploads there with `--attach`
8
+ * (gh 2.99+, a person's login or a classic PAT — the Actions GITHUB_TOKEN is
9
+ * refused), rewriting a local reference in the text it posts into the
10
+ * attachment URL.
11
+ *
12
+ * The description itself is written by the same code as always, so the clips
13
+ * are uploaded on their own first: a temporary comment carries them up, their
14
+ * URLs are read back, and the comment is deleted — the flow vercel-labs'
15
+ * before-and-after settled on. Anything that goes wrong leaves the caller to
16
+ * fall back to the assets branch. The cost: PR subscribers are notified of a
17
+ * comment that is gone by the time they look. Passing `--attach` to the
18
+ * description edit itself would avoid it, but the sticky-comment fallback
19
+ * would still need this flow.
20
+ */
21
+ import { GitHub } from './github.js';
22
+ import { MomentOutcome } from './types.js';
23
+ /** The first gh release whose `--attach` works on PRs and comments. */
24
+ export declare const MIN_GH_FOR_ATTACH: readonly [2, 99, 0];
25
+ export declare const UPDATE_GH_HINT = "Update GitHub CLI to 2.99 or newer (https://cli.github.com, or `brew upgrade gh`) to play videos inline in the PR.";
26
+ /** `gh version 2.101.0 (2026-09-20)` → [2, 101, 0]. */
27
+ export declare function parseGhVersion(output: string): number[] | null;
28
+ export declare function atLeast(version: number[], min: readonly number[]): boolean;
29
+ /** Whether this machine's gh can attach video, and if not the sentence that fixes it. */
30
+ export declare function ghAttachSupport(): {
31
+ ok: true;
32
+ } | {
33
+ ok: false;
34
+ reason: string;
35
+ };
36
+ /** The attachment URLs in a comment body, in the order they appear. */
37
+ export declare function attachmentUrls(body: string): string[];
38
+ /**
39
+ * Upload `files` (all in one folder) as PR attachments. Returns file → URL.
40
+ * Throws when any of them does not come back as an attachment.
41
+ */
42
+ export declare function uploadAttachments(gh: GitHub, ownerRepo: string, prNumber: number, files: string[], token?: string): Promise<Map<string, string>>;
43
+ export interface AttachOptions {
44
+ gh: GitHub;
45
+ ownerRepo: string;
46
+ /** No PR yet means nowhere to attach to. */
47
+ pr?: number;
48
+ token?: string;
49
+ log?: (msg: string) => void;
50
+ }
51
+ /**
52
+ * Attach recorded clips to the PR where possible, marking each one inline.
53
+ * Returns the clips left for the assets branch, and the one sentence that
54
+ * would make them play when there are any.
55
+ */
56
+ export declare function attachClips(clips: MomentOutcome[], opts: AttachOptions): Promise<{
57
+ linked: MomentOutcome[];
58
+ hint?: string;
59
+ }>;
60
+ //# sourceMappingURL=attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../src/attach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,qBAAsB,CAAC;AAErD,eAAO,MAAM,cAAc,uHAAuH,CAAC;AAKnJ,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAG9D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAK1E;AAED,yFAAyF;AACzF,wBAAgB,eAAe,IAAI;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQ9E;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAErD;AAmBD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4B9B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBlI"}
package/dist/attach.js ADDED
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Put clips where GitHub will play them.
3
+ *
4
+ * A video plays inline in a PR only from GitHub's own attachment storage
5
+ * (`github.com/user-attachments/assets/…`); a clip on the assets branch is
6
+ * only a link that plays it in the browser, from a public repo (see
7
+ * `jsdelivrUrl`). Since 2026-09-01 `gh` uploads there with `--attach`
8
+ * (gh 2.99+, a person's login or a classic PAT — the Actions GITHUB_TOKEN is
9
+ * refused), rewriting a local reference in the text it posts into the
10
+ * attachment URL.
11
+ *
12
+ * The description itself is written by the same code as always, so the clips
13
+ * are uploaded on their own first: a temporary comment carries them up, their
14
+ * URLs are read back, and the comment is deleted — the flow vercel-labs'
15
+ * before-and-after settled on. Anything that goes wrong leaves the caller to
16
+ * fall back to the assets branch. The cost: PR subscribers are notified of a
17
+ * comment that is gone by the time they look. Passing `--attach` to the
18
+ * description edit itself would avoid it, but the sticky-comment fallback
19
+ * would still need this flow.
20
+ */
21
+ import fs from 'fs';
22
+ import os from 'os';
23
+ import path from 'path';
24
+ import { spawn, spawnSync } from 'child_process';
25
+ /** The first gh release whose `--attach` works on PRs and comments. */
26
+ export const MIN_GH_FOR_ATTACH = [2, 99, 0];
27
+ export const UPDATE_GH_HINT = 'Update GitHub CLI to 2.99 or newer (https://cli.github.com, or `brew upgrade gh`) to play videos inline in the PR.';
28
+ const ATTACHMENT_URL = /https:\/\/github\.com\/user-attachments\/assets\/[\w-]+/g;
29
+ const UPLOAD_MARKER = '<!-- pre-post:upload (temporary; deleted once the clips are uploaded) -->';
30
+ /** `gh version 2.101.0 (2026-09-20)` → [2, 101, 0]. */
31
+ export function parseGhVersion(output) {
32
+ const m = /gh version (\d+)\.(\d+)\.(\d+)/.exec(output);
33
+ return m ? [Number(m[1]), Number(m[2]), Number(m[3])] : null;
34
+ }
35
+ export function atLeast(version, min) {
36
+ for (let i = 0; i < min.length; i++) {
37
+ if ((version[i] ?? 0) !== min[i])
38
+ return (version[i] ?? 0) > min[i];
39
+ }
40
+ return true;
41
+ }
42
+ /** Whether this machine's gh can attach video, and if not the sentence that fixes it. */
43
+ export function ghAttachSupport() {
44
+ const probe = spawnSync('gh', ['--version'], { encoding: 'utf-8' });
45
+ if (probe.error || probe.status !== 0) {
46
+ return { ok: false, reason: 'Install GitHub CLI 2.99 or newer (https://cli.github.com) to play videos inline in the PR.' };
47
+ }
48
+ const version = parseGhVersion(probe.stdout);
49
+ if (!version || !atLeast(version, MIN_GH_FOR_ATTACH))
50
+ return { ok: false, reason: UPDATE_GH_HINT };
51
+ return { ok: true };
52
+ }
53
+ /** The attachment URLs in a comment body, in the order they appear. */
54
+ export function attachmentUrls(body) {
55
+ return body.match(ATTACHMENT_URL) ?? [];
56
+ }
57
+ function runGh(args, cwd, token) {
58
+ return new Promise((resolve, reject) => {
59
+ const child = spawn('gh', args, {
60
+ cwd,
61
+ // The token pre-post already uses, so gh acts as the same identity.
62
+ env: token ? { ...process.env, GH_TOKEN: token } : process.env,
63
+ stdio: ['ignore', 'pipe', 'pipe'],
64
+ });
65
+ let out = '';
66
+ let err = '';
67
+ child.stdout.on('data', d => { out += d; });
68
+ child.stderr.on('data', d => { err += d; });
69
+ child.on('error', reject);
70
+ child.on('close', code => code === 0 ? resolve(out) : reject(new Error(err.trim().split('\n').pop() || `gh exited ${code}`)));
71
+ });
72
+ }
73
+ /**
74
+ * Upload `files` (all in one folder) as PR attachments. Returns file → URL.
75
+ * Throws when any of them does not come back as an attachment.
76
+ */
77
+ export async function uploadAttachments(gh, ownerRepo, prNumber, files, token) {
78
+ if (!files.length)
79
+ return new Map();
80
+ const dir = path.dirname(files[0]);
81
+ const scratch = fs.mkdtempSync(path.join(os.tmpdir(), 'pre-post-upload-'));
82
+ const bodyFile = path.join(scratch, 'body.md');
83
+ // `--attach` rewrites references to the files it is given, resolved from
84
+ // gh's working directory, so both use the same relative spelling.
85
+ const refs = files.map(f => `./${path.basename(f)}`);
86
+ fs.writeFileSync(bodyFile, [UPLOAD_MARKER, '', ...refs.map(r => `![clip](${r})`), ''].join('\n'));
87
+ try {
88
+ const out = await runGh([
89
+ 'pr', 'comment', String(prNumber), '--repo', ownerRepo, '--body-file', bodyFile,
90
+ ...refs.flatMap(r => ['--attach', r]),
91
+ ], dir, token);
92
+ const id = /#issuecomment-(\d+)/.exec(out)?.[1];
93
+ if (!id)
94
+ throw new Error('gh did not say which comment it posted');
95
+ const comment = await gh.request('GET', `/repos/${ownerRepo}/issues/comments/${id}`);
96
+ const urls = attachmentUrls(comment.body ?? '');
97
+ if (urls.length !== files.length) {
98
+ // Kept, not deleted: the comment is the only place the uploads are listed.
99
+ throw new Error(`expected ${files.length} attachment(s), GitHub returned ${urls.length}`);
100
+ }
101
+ // The attachment outlives the comment that carried it up.
102
+ await gh.request('DELETE', `/repos/${ownerRepo}/issues/comments/${id}`).catch(() => undefined);
103
+ return new Map(files.map((f, i) => [f, urls[i]]));
104
+ }
105
+ finally {
106
+ fs.rmSync(scratch, { recursive: true, force: true });
107
+ }
108
+ }
109
+ /**
110
+ * Attach recorded clips to the PR where possible, marking each one inline.
111
+ * Returns the clips left for the assets branch, and the one sentence that
112
+ * would make them play when there are any.
113
+ */
114
+ export async function attachClips(clips, opts) {
115
+ const log = opts.log ?? (() => undefined);
116
+ if (!opts.pr)
117
+ return { linked: clips, hint: 'Open the PR and re-run to play the videos inline.' };
118
+ const support = ghAttachSupport();
119
+ if (!support.ok) {
120
+ log(`Videos will be linked, not inline: ${support.reason}`);
121
+ return { linked: clips, hint: support.reason };
122
+ }
123
+ try {
124
+ const urls = await uploadAttachments(opts.gh, opts.ownerRepo, opts.pr, clips.map(m => m.file), opts.token);
125
+ for (const m of clips) {
126
+ m.videoUrl = urls.get(m.file);
127
+ m.inline = true;
128
+ }
129
+ log(`Attached ${clips.length} video(s) to PR #${opts.pr}.`);
130
+ return { linked: [] };
131
+ }
132
+ catch (err) {
133
+ const hint = `GitHub did not take the videos as attachments (${err instanceof Error ? err.message : err}); they are linked instead. Inline video needs gh signed in as a person or with a classic token, not the Actions GITHUB_TOKEN.`;
134
+ log(hint);
135
+ return { linked: clips, hint };
136
+ }
137
+ }
138
+ //# sourceMappingURL=attach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../src/attach.ts"],"names":[],"mappings":"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"}
package/dist/bin/cli.js CHANGED
@@ -10,6 +10,8 @@ import { runDetect } from '../commands/detect.js';
10
10
  import { EXIT_BROKEN_PAGE, NeedsHumanError } from '../errors.js';
11
11
  import { buildSummary } from '../report.js';
12
12
  import { ownVersion } from '../drift.js';
13
+ import { loadMomentsFile, MomentError } from '../moments.js';
14
+ import { viewportsFromFlags } from '../viewport.js';
13
15
  const VERSION = ownVersion();
14
16
  const SUBCOMMANDS = ['pr', 'detect', 'login', 'prune', 'doctor', 'compare'];
15
17
  const argv = process.argv.slice(2);
@@ -51,7 +53,7 @@ const OPTIONS = {
51
53
  viewports: { type: 'string' },
52
54
  mobile: { type: 'boolean', short: 'm' },
53
55
  tablet: { type: 'boolean', short: 't' },
54
- responsive: { type: 'boolean', short: 'r' },
56
+ responsive: { type: 'boolean', short: 'r' }, // undocumented alias of --mobile
55
57
  size: { type: 'string' },
56
58
  full: { type: 'boolean', short: 'f' },
57
59
  'viewport-only': { type: 'boolean' },
@@ -65,6 +67,8 @@ const OPTIONS = {
65
67
  output: { type: 'string', short: 'o' },
66
68
  'dry-run': { type: 'boolean' },
67
69
  'no-comment': { type: 'boolean' },
70
+ moments: { type: 'string' },
71
+ 'no-video': { type: 'boolean' },
68
72
  'require-pr': { type: 'boolean' },
69
73
  local: { type: 'boolean' },
70
74
  pr: { type: 'string' },
@@ -91,8 +95,8 @@ OPTIONS
91
95
  --routes /a,/b Explicit routes instead of detection
92
96
  --max-routes <n> Cap on detected routes (default 6)
93
97
  --viewports desktop,mobile,1440x900 Viewports (default desktop)
94
- -r, --responsive Desktop and mobile
95
- -m, --mobile -t, --tablet --size WxH Single-viewport shorthands
98
+ --mobile Add mobile to desktop
99
+ -t, --tablet --size WxH Single-viewport shorthands
96
100
  -f, --full | --viewport-only Full page (default for pr) or first screen only
97
101
  --scale <n> Device scale factor (default 2)
98
102
  --threshold <0..1> Changed share of the canvas that counts (default 0.001)
@@ -108,6 +112,11 @@ OPTIONS
108
112
  --no-local-baseline Do not rebuild the baseline from the base commit
109
113
  --dry-run Capture and diff only; publish nothing, leave the PR alone
110
114
  --no-comment Publish images but leave the PR description alone
115
+ --moments <file> Record these interactions as Pre | Post videos
116
+ (JSON; default: "moments" in .pre-post.json).
117
+ One interaction per Moment, aim for under 15s;
118
+ the first 3 are recorded. See docs/video.md
119
+ --no-video Record no video this run
111
120
  --require-pr Do nothing, successfully, when no open PR is found
112
121
  --local Build both sides on this machine; ignore deployments
113
122
  --pr <number> Target a specific PR
@@ -119,6 +128,7 @@ ENVIRONMENT
119
128
  VERCEL_AUTOMATION_BYPASS_SECRET Bypass Vercel Deployment Protection
120
129
  PRE_POST_CONCURRENCY Parallel pages (default 6)
121
130
  PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH Use a specific Chromium binary
131
+ PRE_POST_FFMPEG Use a specific ffmpeg for Moments
122
132
  `);
123
133
  }
124
134
  function num(v, flag) {
@@ -145,19 +155,6 @@ function kv(list) {
145
155
  }
146
156
  return out;
147
157
  }
148
- function viewportsFromFlags() {
149
- if (values.viewports)
150
- return values.viewports.split(',').map(s => s.trim()).filter(Boolean);
151
- if (values.responsive)
152
- return ['desktop', 'mobile'];
153
- if (values.mobile)
154
- return ['mobile'];
155
- if (values.tablet)
156
- return ['tablet'];
157
- if (values.size)
158
- return [values.size];
159
- return undefined;
160
- }
161
158
  /** `before`/`after` come from flags for `pr` and `compare`, from positionals otherwise. */
162
159
  function resolveTargets() {
163
160
  if (subcommand === 'pr' || subcommand === 'compare')
@@ -177,6 +174,9 @@ function output(result) {
177
174
  console.log(`Files: ${result.outputDir}`);
178
175
  if (result.sheetPath)
179
176
  console.log(`Sheet: ${result.sheetPath}`);
177
+ for (const m of result.moments ?? [])
178
+ if (m.file)
179
+ console.log(`Video: ${m.file}`);
180
180
  if (result.markdown && !result.commentUrl)
181
181
  console.log('\n' + result.markdown);
182
182
  }
@@ -200,7 +200,7 @@ async function main() {
200
200
  }
201
201
  const common = {
202
202
  routes: values.routes ? values.routes.split(',').map(r => r.trim()).filter(Boolean) : undefined,
203
- viewports: viewportsFromFlags(),
203
+ viewports: viewportsFromFlags(values),
204
204
  fullPage: values['viewport-only'] ? false : values.full ? true : undefined,
205
205
  scale: num(values.scale, '--scale'),
206
206
  threshold: num(values.threshold, '--threshold'),
@@ -234,6 +234,8 @@ async function main() {
234
234
  requirePr: values['require-pr'],
235
235
  local: values.local,
236
236
  pr: num(values.pr, '--pr'),
237
+ moments: values.moments ? loadMomentsFile(values.moments) : undefined,
238
+ video: !values['no-video'],
237
239
  version: VERSION,
238
240
  });
239
241
  // Nothing ran, and the log already said why; a summary of zero routes adds nothing.
@@ -307,6 +309,12 @@ main()
307
309
  console.error(`\n${err.message}`);
308
310
  process.exit(3);
309
311
  }
312
+ // A Moment that does not parse is a usage error, and its message already
313
+ // names the Moment, the step and the fix.
314
+ if (err instanceof MomentError) {
315
+ console.error(`pre-post: ${err.message}`);
316
+ process.exit(2);
317
+ }
310
318
  console.error(err?.stack && process.env.PRE_POST_DEBUG ? err.stack : `Error: ${err?.message || err}`);
311
319
  process.exit(1);
312
320
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAa,eAAe,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAE7B,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAGrF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAe,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,EAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AAErG;;;;;;;;GAQG;AACH,SAAS,KAAK;IACZ,IAAI,CAAC;QACH,OAAO,SAAS,CAAC;YACf,IAAI,EAAE,IAAI;YACV,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,+BAA+B,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG;IACZ,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACrC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACxC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACvC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACvC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACrC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7B,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IACtC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACjC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACjC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;CAChC,CAAC;AAEX,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,CAAC;AAExC,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ChC,CAAC,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,CAAqB,EAAE,IAAY;IAC9C,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,EAAE,CAAC,IAA0B;IACpC,IAAI,CAAC,IAAI,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5F,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2FAA2F;AAC3F,SAAS,cAAc;IACrB,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3G,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;AAC1C,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK;IAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjE,SAAS,MAAM,CAAC,MAA0C;IACxD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,4FAA4F;AAC5F,SAAS,iBAAiB,CAAC,MAA0C;IACnE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO;IAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3D,SAAS,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QAC/F,SAAS,EAAE,kBAAkB,EAAE;QAC/B,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC1E,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;QACnC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC;QAC/C,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;QACrE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;QACpD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;QACpD,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;QAChC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG;KACJ,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,EAAE,CAAC;IAE3C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,4EAA4E;YAC5E,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,mDAAmD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBACtH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;gBACzB,GAAG,MAAM;gBACT,MAAM;gBACN,KAAK;gBACL,SAAS,EAAE,MAAM,CAAC,SAAkC;gBACpD,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO;gBACP,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;gBACzB,aAAa,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;gBAC3C,OAAO,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC9B,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;gBAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;gBAC1B,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;YACH,oFAAoF;YACpF,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;gBACxC,IAAI,MAAM,CAAC,IAAI;oBAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,CAAC;YACf,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChG,yEAAyE;YACzE,+DAA+D;YAC/D,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAkC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC/F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7H,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,kEAAkE;gBAClE,yDAAyD;gBACzD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;gBACpB,CAAC,CAAC,6BAA6B;gBAC/B,CAAC,CAAC,oBAAoB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/F,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,SAAS,CAAC;QACf,OAAO,CAAC,CAAC,CAAC;YACR,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjB,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,GAAG,CAAC,EAAE;IACX,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;IACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAa,eAAe,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAE7B,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAGrF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAe,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,EAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AAErG;;;;;;;;GAQG;AACH,SAAS,KAAK;IACZ,IAAI,CAAC;QACH,OAAO,SAAS,CAAC;YACf,IAAI,EAAE,IAAI;YACV,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,+BAA+B,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG;IACZ,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACrC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACxC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACvC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACvC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,iCAAiC;IAC9E,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACrC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7B,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IACtC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACjC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACjC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;CAChC,CAAC;AAEX,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,CAAC;AAExC,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDhC,CAAC,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,CAAqB,EAAE,IAAY;IAC9C,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,EAAE,CAAC,IAA0B;IACpC,IAAI,CAAC,IAAI,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2FAA2F;AAC3F,SAAS,cAAc;IACrB,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3G,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;AAC1C,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK;IAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjE,SAAS,MAAM,CAAC,MAA0C;IACxD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE;QAAE,IAAI,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,4FAA4F;AAC5F,SAAS,iBAAiB,CAAC,MAA0C;IACnE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO;IAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3D,SAAS,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QAC/F,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACrC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC1E,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;QACnC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC;QAC/C,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;QACrE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;QACpD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;QACpD,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;QAChC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG;KACJ,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,EAAE,CAAC;IAE3C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,4EAA4E;YAC5E,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,mDAAmD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBACtH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;gBACzB,GAAG,MAAM;gBACT,MAAM;gBACN,KAAK;gBACL,SAAS,EAAE,MAAM,CAAC,SAAkC;gBACpD,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO;gBACP,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;gBACzB,aAAa,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;gBAC3C,OAAO,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC9B,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;gBAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;gBAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrE,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC1B,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;YACH,oFAAoF;YACpF,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;gBACxC,IAAI,MAAM,CAAC,IAAI;oBAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,CAAC;YACf,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChG,yEAAyE;YACzE,+DAA+D;YAC/D,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAkC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC/F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7H,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,kEAAkE;gBAClE,yDAAyD;gBACzD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;gBACpB,CAAC,CAAC,6BAA6B;gBAC/B,CAAC,CAAC,oBAAoB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/F,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,SAAS,CAAC;QACf,OAAO,CAAC,CAAC,CAAC;YACR,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjB,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,GAAG,CAAC,EAAE;IACX,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,yEAAyE;IACzE,0CAA0C;IAC1C,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;IACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/dist/browser.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * advanced by a fixed budget, reduced motion, animations finished, caret
7
7
  * hidden, fonts and images settled, layout stable.
8
8
  */
9
- import { Browser } from 'playwright-core';
9
+ import { Browser, BrowserContext, Page } from 'playwright-core';
10
10
  import { AuthOptions, CaptureResult, PageError, ViewportSize } from './types.js';
11
11
  /** Every capture sees the same wall clock, so dates and "x minutes ago" never drift. */
12
12
  export declare const FIXED_TIME: Date;
@@ -44,6 +44,8 @@ export interface ScreenshotOptions {
44
44
  }
45
45
  /** Directory of the playwright-core package (for its CLI and browsers.json). */
46
46
  export declare function playwrightCoreDir(): string;
47
+ /** Where Playwright keeps the browsers (and the ffmpeg) it installs. */
48
+ export declare function playwrightCacheDir(): string;
47
49
  export interface LaunchOptions {
48
50
  headless?: boolean;
49
51
  }
@@ -73,7 +75,7 @@ export declare function proxyFromEnv(env?: NodeJS.ProcessEnv): {
73
75
  * 4. System Chrome / Edge
74
76
  */
75
77
  export declare function launchBrowser(opts?: LaunchOptions): Promise<Browser>;
76
- export type BrowserKind = 'chromium-headless-shell' | 'chromium';
78
+ export type BrowserKind = 'chromium-headless-shell' | 'chromium' | 'ffmpeg';
77
79
  /**
78
80
  * Install a browser through playwright-core's CLI. Resolves true on success.
79
81
  *
@@ -89,18 +91,62 @@ export declare function launchBrowserOrInstall(opts?: LaunchOptions): Promise<Br
89
91
  /** The process-wide headless browser, launched (and installed) on first use. */
90
92
  export declare function getBrowser(): Promise<Browser>;
91
93
  export declare function browserDescription(): string;
94
+ /**
95
+ * Hide Next's dev-tools badge without hiding its error dialog.
96
+ *
97
+ * Both render into the same `nextjs-portal` shadow root — measured against
98
+ * Next 16.0.10, a healthy page has only `#devtools-indicator` there and a
99
+ * broken one adds `[data-nextjs-dialog-overlay]` beside it — so the host
100
+ * element cannot be used to tell them apart. Reaching into the shadow root is
101
+ * what lets the badge go while the dialog stays.
102
+ *
103
+ * The badge matters because on the local strategy both sides are dev servers,
104
+ * so it ships in every image published to the PR — something production never
105
+ * shows. It is position: fixed, so a layout shift moves the page under it and
106
+ * leaves it behind, counting as residual change the branch never made.
107
+ *
108
+ * Runs once, just before the screenshot, rather than from the init script: the
109
+ * portal is mounted after hydration, so there is nothing to find at document
110
+ * start.
111
+ */
112
+ export declare function hideDevIndicator(page: Page): Promise<void>;
92
113
  /** The overlay's raw strings, turned into the error a report can phrase. */
93
114
  export declare function pageErrorFrom(raw: {
94
115
  kind: string;
95
116
  message?: string;
96
117
  text?: string;
97
118
  } | null): PageError | undefined;
119
+ /**
120
+ * Wait for everything that arrives on the *real* clock: fonts, images, the
121
+ * network, and the layout work that hydration does. The page's own timers stay
122
+ * frozen throughout, so waiting longer here — on a slow host, a cold cache, a
123
+ * busy machine — never advances an animation. Bounded by `timeout` ms.
124
+ */
125
+ export declare function settlePage(page: Page, timeout: number, options?: {
126
+ network?: boolean;
127
+ }): Promise<void>;
128
+ /**
129
+ * Run `fn` on a fresh page whose clock runs in real time and whose motion
130
+ * preferences are left alone — what a recording needs, and the opposite of a
131
+ * screenshot. Shares the page pool with captures, so a run's recordings and
132
+ * screenshots together never open more pages than the pool allows.
133
+ */
134
+ export declare function withMotionPage<T>(viewport: ViewportSize, auth: AuthOptions | undefined, fn: (page: Page, ctx: BrowserContext) => Promise<T>): Promise<T>;
98
135
  /**
99
136
  * Capture a screenshot. Safe to call concurrently — the page pool bounds parallelism.
100
137
  * Throws HttpStatusError for 401/403 (auth required); other statuses are returned
101
138
  * in the result so callers can decide (a 404 "before" for a new page is legitimate).
102
139
  */
103
140
  export declare function captureScreenshot(url: string, options: ScreenshotOptions): Promise<CaptureResult>;
141
+ /**
142
+ * Load `url`. Throws NavigationError when no document arrives and
143
+ * HttpStatusError for 401/403 (auth required); any other status is returned
144
+ * for the caller to judge — a 404 on Pre is a legitimately new page.
145
+ */
146
+ export declare function gotoChecked(page: Page, url: string): Promise<{
147
+ status?: number;
148
+ vercel: boolean;
149
+ }>;
104
150
  /**
105
151
  * How long a graceful browser shutdown may take before the run stops waiting.
106
152
  *
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAY,OAAO,EAAwB,MAAM,iBAAiB,CAAC;AAK1E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMjF,wFAAwF;AACxF,eAAO,MAAM,UAAU,MAAuC,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC;AAqCpC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAMD,gFAAgF;AAChF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AA4DD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAWlH;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CA6C9E;AAED,MAAM,MAAM,WAAW,GAAG,yBAAyB,GAAG,UAAU,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAQlE;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAcvF;AAED,gFAAgF;AAChF,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAgBnD;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAqGD,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAQlH;AAmPD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CA0GvG;AAUD;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlD"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}