@juangadm/pre-post 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -20
- package/dist/baseline.d.ts +208 -0
- package/dist/baseline.d.ts.map +1 -0
- package/dist/baseline.js +413 -0
- package/dist/baseline.js.map +1 -0
- package/dist/bin/cli.js +87 -42
- package/dist/bin/cli.js.map +1 -1
- package/dist/browser.d.ts +31 -3
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +291 -97
- package/dist/browser.js.map +1 -1
- package/dist/commands/compare.d.ts.map +1 -1
- package/dist/commands/compare.js +21 -3
- package/dist/commands/compare.js.map +1 -1
- package/dist/commands/detect.d.ts +5 -0
- package/dist/commands/detect.d.ts.map +1 -1
- package/dist/commands/detect.js +4 -1
- package/dist/commands/detect.js.map +1 -1
- package/dist/commands/doctor.d.ts +32 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +90 -9
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/pr.d.ts +4 -0
- package/dist/commands/pr.d.ts.map +1 -1
- package/dist/commands/pr.js +157 -51
- package/dist/commands/pr.js.map +1 -1
- package/dist/commands/prune.js +1 -1
- package/dist/commands/prune.js.map +1 -1
- package/dist/comparison.d.ts +104 -0
- package/dist/comparison.d.ts.map +1 -0
- package/dist/comparison.js +241 -0
- package/dist/comparison.js.map +1 -0
- package/dist/config.d.ts +12 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +25 -3
- package/dist/config.js.map +1 -1
- package/dist/deployments.d.ts +71 -0
- package/dist/deployments.d.ts.map +1 -0
- package/dist/deployments.js +204 -0
- package/dist/deployments.js.map +1 -0
- package/dist/diff-pool.d.ts.map +1 -1
- package/dist/diff-pool.js +5 -2
- package/dist/diff-pool.js.map +1 -1
- package/dist/diff-worker.d.ts +3 -0
- package/dist/diff-worker.d.ts.map +1 -1
- package/dist/diff-worker.js +1 -0
- package/dist/diff-worker.js.map +1 -1
- package/dist/diff.d.ts +10 -0
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +117 -7
- package/dist/diff.js.map +1 -1
- package/dist/doctor.d.ts +42 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +73 -7
- package/dist/doctor.js.map +1 -1
- package/dist/git.d.ts +41 -3
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +103 -7
- package/dist/git.js.map +1 -1
- package/dist/github.d.ts +92 -2
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +191 -20
- package/dist/github.js.map +1 -1
- package/dist/landing.d.ts +48 -0
- package/dist/landing.d.ts.map +1 -0
- package/dist/landing.js +93 -0
- package/dist/landing.js.map +1 -0
- package/dist/pkg.d.ts +9 -0
- package/dist/pkg.d.ts.map +1 -1
- package/dist/pkg.js +14 -0
- package/dist/pkg.js.map +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +59 -28
- package/dist/report.js.map +1 -1
- package/dist/routes.d.ts +27 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +98 -23
- package/dist/routes.js.map +1 -1
- package/dist/run.d.ts +88 -8
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +224 -28
- package/dist/run.js.map +1 -1
- package/dist/sameness.d.ts +91 -0
- package/dist/sameness.d.ts.map +1 -0
- package/dist/sameness.js +157 -0
- package/dist/sameness.js.map +1 -0
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +7 -1
- package/dist/sessions.js.map +1 -1
- package/dist/shift.d.ts +67 -0
- package/dist/shift.d.ts.map +1 -0
- package/dist/shift.js +184 -0
- package/dist/shift.js.map +1 -0
- package/dist/types.d.ts +83 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -1
- package/dist/url.d.ts +12 -0
- package/dist/url.d.ts.map +1 -0
- package/dist/url.js +30 -0
- package/dist/url.js.map +1 -0
- package/package.json +1 -1
- package/skill/SKILL.md +40 -7
package/dist/commands/pr.js
CHANGED
|
@@ -4,21 +4,27 @@
|
|
|
4
4
|
import fs from 'fs';
|
|
5
5
|
import os from 'os';
|
|
6
6
|
import path from 'path';
|
|
7
|
-
import { ARTIFACT_KINDS } from '../types.js';
|
|
7
|
+
import { ARTIFACT_KINDS, artifactSuffix } from '../types.js';
|
|
8
8
|
import { loadConfig, resolveSettings, updateConfig } from '../config.js';
|
|
9
9
|
import { currentBranch, headSha, repoRoot, resolveOwnerRepo } from '../git.js';
|
|
10
10
|
import { 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 { findOpenPr, getPr, GitHub, publishAssets, requireToken, upsertStickyComment } from '../github.js';
|
|
14
|
+
import { cannotPublishHint, checkWriteAccess, findOpenPr, findToken, getPr, GitHub, publishAssets, requireToken, upsertPrDescription, upsertStickyComment } from '../github.js';
|
|
15
15
|
import { buildComment, STICKY_MARKER } from '../report.js';
|
|
16
16
|
import { resolveAuth } from '../sessions.js';
|
|
17
|
-
import {
|
|
18
|
-
import { joinUrl
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
import { routeSlug, runTasks } from '../run.js';
|
|
18
|
+
import { joinUrl } from '../url.js';
|
|
19
|
+
import { describeComparison, resolveComparison } from '../comparison.js';
|
|
20
|
+
/**
|
|
21
|
+
* What ends up on the assets branch. The diff overlay is an intermediate used
|
|
22
|
+
* to locate the changed region; Pre beside Post is the comparison a reviewer
|
|
23
|
+
* reads, so shipping the overlay is upload time and storage for nothing.
|
|
24
|
+
*/
|
|
25
|
+
const PUBLISHED_KINDS = ARTIFACT_KINDS.filter(kind => kind !== 'diff');
|
|
26
|
+
function headersFor(config, opts) {
|
|
27
|
+
return resolveAuth({ configHeaders: config.headers, headers: opts.headers, urls: [] })?.headers ?? {};
|
|
22
28
|
}
|
|
23
29
|
function runId(now) {
|
|
24
30
|
return now.toISOString().replace(/[-:]/g, '').replace('T', '-').slice(0, 15);
|
|
@@ -31,27 +37,103 @@ export async function runPr(opts = {}) {
|
|
|
31
37
|
const settings = resolveSettings(config, opts);
|
|
32
38
|
const ownerRepo = resolveOwnerRepo(root);
|
|
33
39
|
const branch = currentBranch(root);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (!beforeRaw) {
|
|
37
|
-
throw new NeedsHumanError('No production URL known for the "before" state. Re-run with --before https://your-production-url (it is saved to .pre-post.json for next time).');
|
|
38
|
-
}
|
|
39
|
-
const before = normalizeUrl(beforeRaw);
|
|
40
|
-
if (opts.before && config.before !== before) {
|
|
41
|
-
updateConfig(root, { before });
|
|
42
|
-
log('Saved production URL to .pre-post.json');
|
|
43
|
-
}
|
|
40
|
+
/** Tears down anything resolution started (a local dev server). */
|
|
41
|
+
let cleanupComparison = async () => undefined;
|
|
44
42
|
// --- GitHub access (checked before any time is spent) -----------------------
|
|
45
|
-
|
|
43
|
+
// A dry run still has to *read* GitHub: the PR, and the deployments that
|
|
44
|
+
// decide what Pre and Post are. Only writing is off. Withholding the client
|
|
45
|
+
// entirely made --dry-run the one mode that could never use a deployment,
|
|
46
|
+
// so it always demanded a dev server — from the person least likely to have
|
|
47
|
+
// one. Reads use `gh`; publishing and commenting use `writeGh`.
|
|
48
|
+
const found = opts.dryRun ? findToken() : requireToken();
|
|
49
|
+
const gh = found ? new GitHub(found.token) : null;
|
|
50
|
+
const writeGh = opts.dryRun ? null : gh;
|
|
46
51
|
// --- Start the slow, independent things now; they overlap route detection ----
|
|
47
52
|
const browserReady = ensureBrowser();
|
|
48
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Everything this run started, in a form every early exit can call.
|
|
55
|
+
*
|
|
56
|
+
* The browser is launched from here rather than at the capture, so any throw
|
|
57
|
+
* before that block owns closing it: the CLI's `process.exit` hides the
|
|
58
|
+
* difference, but a caller using `runPr()` as a library catches the error and
|
|
59
|
+
* is left with a Chromium nothing references. Awaiting the launch first is
|
|
60
|
+
* what makes it work — `closeBrowser()` drops a pending launch and closes
|
|
61
|
+
* nothing, and the launch then resolves into an orphan.
|
|
62
|
+
*/
|
|
63
|
+
const stopEverything = async () => {
|
|
64
|
+
await browserReady.catch(() => undefined);
|
|
65
|
+
await closeBrowser();
|
|
66
|
+
await cleanupComparison();
|
|
67
|
+
};
|
|
68
|
+
// Whether the token may write, asked at the same time as the PR lookup so it
|
|
69
|
+
// costs no wall clock, and answered before anything expensive begins. A token
|
|
70
|
+
// that cannot read fails the lookup below and never reaches capture; one that
|
|
71
|
+
// reads but cannot write passes every check this run makes until the publish,
|
|
72
|
+
// which is a whole capture pass later — 22.7s for one route at one viewport,
|
|
73
|
+
// measured on a runner.
|
|
74
|
+
const writeAccess = writeGh && found
|
|
75
|
+
? checkWriteAccess(writeGh, ownerRepo).then(access => ({ access, source: found.source }))
|
|
76
|
+
: null;
|
|
77
|
+
const lookup = gh
|
|
49
78
|
? opts.pr ? getPr(gh, ownerRepo, opts.pr) : branch ? findOpenPr(gh, ownerRepo, branch) : Promise.resolve(null)
|
|
50
79
|
: Promise.resolve(null);
|
|
51
|
-
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
80
|
+
// A dry run used to touch GitHub not at all, and must still work when it
|
|
81
|
+
// cannot: it is what someone runs before anything is set up. A stale token or
|
|
82
|
+
// an unreachable API degrades it to "no PR", never ends the run. A real run
|
|
83
|
+
// needs the PR to publish against, so there the failure still surfaces.
|
|
84
|
+
const prLookup = opts.dryRun
|
|
85
|
+
? lookup.catch(err => { log(`GitHub lookup failed (${err instanceof Error ? err.message : err}); continuing without it.`); return null; })
|
|
86
|
+
: lookup;
|
|
87
|
+
// Local detection runs regardless: it is cheap, and it is the fallback when
|
|
88
|
+
// the PR has no preview deployment.
|
|
89
|
+
const explicitAfter = opts.after ?? config.after;
|
|
90
|
+
const devServer = explicitAfter ? Promise.resolve(explicitAfter) : detectDevServer();
|
|
91
|
+
// Detection is synchronous git + fs work, so run it while the PR lookup is in
|
|
92
|
+
// flight rather than after it.
|
|
93
|
+
const detection = detectRoutesForRepo({ cwd: root, config, maxRoutes: settings.maxRoutes, framework: opts.framework, diffTarget: opts.base, log });
|
|
94
|
+
const appPrefix = path.relative(root, detection.appRoot) || undefined;
|
|
95
|
+
const head = headSha(root);
|
|
96
|
+
const pr = await prLookup;
|
|
97
|
+
// Before the local baseline, which can install and build a whole app, and
|
|
98
|
+
// long before the captures. An answer that is not about access — a 500, a
|
|
99
|
+
// dropped connection — is not evidence of anything, so it says so and the run
|
|
100
|
+
// continues to fail wherever it really fails.
|
|
101
|
+
const write = await writeAccess;
|
|
102
|
+
if (write && !write.access.writable) {
|
|
103
|
+
if (write.access.reason === 'rejected') {
|
|
104
|
+
await stopEverything();
|
|
105
|
+
throw new NeedsHumanError(cannotPublishHint(ownerRepo, write.source));
|
|
106
|
+
}
|
|
107
|
+
log(`Could not check whether the token can publish (${write.access.detail}); continuing.`);
|
|
108
|
+
}
|
|
109
|
+
// --- What are we comparing? ---------------------------------------------------
|
|
110
|
+
const headers = headersFor(config, opts);
|
|
111
|
+
// Resolution can throw (no baseline, an install that failed): the browser was
|
|
112
|
+
// launched before this and nothing else would close it, so its teardown has
|
|
113
|
+
// to cover the throw as well as the happy path.
|
|
114
|
+
const comparison = await resolveComparison({
|
|
115
|
+
gh, ownerRepo, pr, repoRoot: root, appPrefix, config,
|
|
116
|
+
// Detection already established this; the baseline must be built from the
|
|
117
|
+
// same commit, or Pre and the route list disagree about what changed.
|
|
118
|
+
baseSha: detection.base?.sha,
|
|
119
|
+
// --base is a constraint on the baseline, not just on the route list.
|
|
120
|
+
baseExplicit: detection.base?.source === 'explicit',
|
|
121
|
+
// So a preview can be found for a branch that has been pushed but has no
|
|
122
|
+
// PR open yet — the host builds on push, not on PR.
|
|
123
|
+
headSha: head ?? undefined,
|
|
124
|
+
before: opts.before, after: explicitAfter,
|
|
125
|
+
devServer, probe: url => probeUrl(url, headers),
|
|
126
|
+
allowLocalBaseline: opts.localBaseline, log,
|
|
127
|
+
}).catch(async (err) => { await stopEverything(); throw err; });
|
|
128
|
+
cleanupComparison = comparison.stop;
|
|
129
|
+
for (const line of describeComparison(comparison))
|
|
130
|
+
log(line);
|
|
131
|
+
const before = comparison.before.url;
|
|
132
|
+
const after = comparison.after.url;
|
|
133
|
+
if (opts.before && config.before !== before) {
|
|
134
|
+
updateConfig(root, { before });
|
|
135
|
+
log('Saved production URL to .pre-post.json');
|
|
136
|
+
}
|
|
55
137
|
// --- Routes (sync: git + import graph) ----------------------------------------
|
|
56
138
|
const samples = config.samples || {};
|
|
57
139
|
let routes;
|
|
@@ -60,7 +142,6 @@ export async function runPr(opts = {}) {
|
|
|
60
142
|
routes = opts.routes;
|
|
61
143
|
}
|
|
62
144
|
else {
|
|
63
|
-
const detection = detectRoutesForRepo({ cwd: root, config, maxRoutes: settings.maxRoutes, framework: opts.framework });
|
|
64
145
|
routes = detection.routes.map(r => r.path);
|
|
65
146
|
skippedDynamic = detection.skippedDynamic;
|
|
66
147
|
log(`Routes (${detection.framework}, ${detection.durationMs}ms): ${routes.length ? routes.join(', ') : 'none detected'}`);
|
|
@@ -71,21 +152,25 @@ export async function runPr(opts = {}) {
|
|
|
71
152
|
log('No routes detected from the diff; capturing / only.');
|
|
72
153
|
}
|
|
73
154
|
}
|
|
74
|
-
// ---
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
155
|
+
// --- Reachability ---------------------------------------------------------------
|
|
156
|
+
// Resolution already probed whatever it chose; this catches a side that died
|
|
157
|
+
// in between, and names which one so the message is actionable.
|
|
158
|
+
const fail = async (message) => {
|
|
159
|
+
await stopEverything();
|
|
160
|
+
throw new NeedsHumanError(message);
|
|
161
|
+
};
|
|
162
|
+
const [probe, afterProbe] = await Promise.all([
|
|
163
|
+
comparison.before.probe ?? probeUrl(before, headers),
|
|
164
|
+
comparison.after.probe ?? probeUrl(after, headers),
|
|
165
|
+
]);
|
|
83
166
|
if (probe.status === null)
|
|
84
|
-
|
|
167
|
+
await fail(`Cannot reach ${before} (Pre — ${comparison.before.detail}).`);
|
|
85
168
|
if (probe.status === 401 || probe.status === 403)
|
|
86
|
-
|
|
169
|
+
await fail(authHint({ url: before, vercel: probe.vercel }));
|
|
87
170
|
if (afterProbe.status === null)
|
|
88
|
-
|
|
171
|
+
await fail(`Cannot reach ${after} (Post — ${comparison.after.detail}).`);
|
|
172
|
+
if (afterProbe.status === 401 || afterProbe.status === 403)
|
|
173
|
+
await fail(authHint({ url: after, vercel: afterProbe.vercel }));
|
|
89
174
|
const auth = resolveAuth({ configHeaders: config.headers, headers: opts.headers, cookies: opts.cookies, cookieUrl: before, urls: [before, after] });
|
|
90
175
|
// --- Capture -------------------------------------------------------------------
|
|
91
176
|
const now = new Date();
|
|
@@ -101,32 +186,42 @@ export async function runPr(opts = {}) {
|
|
|
101
186
|
}
|
|
102
187
|
log(`Capturing ${tasks.length * 2} screenshots (${routes.length} route(s) × ${viewports.length} viewport(s)) ...`);
|
|
103
188
|
await browserReady;
|
|
104
|
-
let
|
|
189
|
+
let run;
|
|
105
190
|
try {
|
|
106
|
-
|
|
191
|
+
run = await runTasks(tasks, {
|
|
192
|
+
outputDir, ...settings, wait: opts.wait, auth, log,
|
|
193
|
+
// So the verdict can name how Pre was chosen, not just where it points.
|
|
194
|
+
sides: { before: comparison.before, after: comparison.after },
|
|
195
|
+
});
|
|
107
196
|
}
|
|
108
197
|
finally {
|
|
109
|
-
await
|
|
198
|
+
await stopEverything();
|
|
110
199
|
}
|
|
200
|
+
const { outcomes } = run;
|
|
201
|
+
// The pipeline judges whether it compared the two sites or something standing
|
|
202
|
+
// in front of them — a sign-in wall, or a baseline that is a different site
|
|
203
|
+
// altogether. Either way there is no honest result to publish, so stop with
|
|
204
|
+
// the one thing a human has to do.
|
|
205
|
+
if (run.verdict)
|
|
206
|
+
throw new NeedsHumanError(run.verdict.hint);
|
|
111
207
|
// --- Publish -------------------------------------------------------------------
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
if (gh && changed.length) {
|
|
208
|
+
const changed = outcomes.filter(o => (o.status === 'changed' || o.status === 'added' || o.status === 'removed') && o.files);
|
|
209
|
+
if (writeGh && changed.length) {
|
|
115
210
|
const folder = pr ? `pr-${pr.number}/${id}` : `branch/${routeSlug(branch || 'detached')}/${id}`;
|
|
116
|
-
const keyFor = (o, kind) => `${folder}/${routeSlug(o.route)}-${o.viewport}-${kind}.png`;
|
|
211
|
+
const keyFor = (o, kind) => `${folder}/${routeSlug(o.route)}-${o.viewport}-${artifactSuffix(kind)}.png`;
|
|
117
212
|
const files = [];
|
|
118
213
|
for (const o of changed) {
|
|
119
|
-
for (const kind of
|
|
214
|
+
for (const kind of PUBLISHED_KINDS) {
|
|
120
215
|
const local = o.files[kind];
|
|
121
216
|
if (local)
|
|
122
217
|
files.push({ path: keyFor(o, kind), content: fs.readFileSync(local) });
|
|
123
218
|
}
|
|
124
219
|
}
|
|
125
220
|
log(`Publishing ${files.length} image(s) to ${ownerRepo}@${settings.assetsBranch} ...`);
|
|
126
|
-
const published = await publishAssets(
|
|
221
|
+
const published = await publishAssets(writeGh, ownerRepo, settings.assetsBranch, files, pr ? `Screenshots for #${pr.number} (${id})` : `Screenshots for ${branch || 'detached'} (${id})`);
|
|
127
222
|
for (const o of changed) {
|
|
128
223
|
const urls = {};
|
|
129
|
-
for (const kind of
|
|
224
|
+
for (const kind of PUBLISHED_KINDS)
|
|
130
225
|
if (o.files[kind])
|
|
131
226
|
urls[kind] = published.urls.get(keyFor(o, kind));
|
|
132
227
|
o.urls = urls;
|
|
@@ -143,12 +238,23 @@ export async function runPr(opts = {}) {
|
|
|
143
238
|
markdown: '',
|
|
144
239
|
outputDir,
|
|
145
240
|
};
|
|
146
|
-
result.markdown = buildComment(result, { version: opts.version, headSha:
|
|
147
|
-
if (
|
|
241
|
+
result.markdown = buildComment(result, { version: opts.version, headSha: head, now });
|
|
242
|
+
if (writeGh && (opts.comment ?? true)) {
|
|
148
243
|
if (pr) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
244
|
+
// The description is what a reviewer reads first, so put the images there
|
|
245
|
+
// and fall back to a comment only when the PR cannot be edited.
|
|
246
|
+
const described = await upsertPrDescription(writeGh, ownerRepo, pr.number, result.markdown, 'pre-post');
|
|
247
|
+
if (described.updated) {
|
|
248
|
+
result.commentUrl = described.html_url;
|
|
249
|
+
result.commentKind = 'description';
|
|
250
|
+
log(`Updated PR description: ${described.html_url}`);
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
const comment = await upsertStickyComment(writeGh, ownerRepo, pr.number, result.markdown, STICKY_MARKER);
|
|
254
|
+
result.commentUrl = comment.html_url;
|
|
255
|
+
result.commentKind = 'comment';
|
|
256
|
+
log(`Cannot edit the PR description; ${comment.created ? 'posted' : 'updated'} a comment instead: ${comment.html_url}`);
|
|
257
|
+
}
|
|
152
258
|
}
|
|
153
259
|
else {
|
|
154
260
|
log(`No open PR for branch "${branch}". Open one and re-run, or paste the markdown below.`);
|
package/dist/commands/pr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/prune.js
CHANGED
|
@@ -7,7 +7,7 @@ import { GitHub, pruneAssets, requireToken } from '../github.js';
|
|
|
7
7
|
export async function runPrune(opts = {}) {
|
|
8
8
|
const root = repoRoot(opts.cwd);
|
|
9
9
|
const settings = resolveSettings(loadConfig(root), { pruneDays: opts.days });
|
|
10
|
-
const gh = new GitHub(requireToken('prune screenshots'));
|
|
10
|
+
const gh = new GitHub(requireToken('prune screenshots').token);
|
|
11
11
|
return pruneAssets(gh, resolveOwnerRepo(root), settings.assetsBranch, settings.pruneDays, opts.dryRun);
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=prune.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/commands/prune.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAe,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAA0D,EAAE;IACzF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/commands/prune.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAe,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAA0D,EAAE;IACzF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/D,OAAO,WAAW,CAAC,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACzG,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Choosing what to compare against what.
|
|
3
|
+
*
|
|
4
|
+
* Pre and Post used to be resolved independently, which could pair a production
|
|
5
|
+
* deployment against a local dev server. Different fonts, different data,
|
|
6
|
+
* different analytics — a diff full of changes the PR did not make. Nobody
|
|
7
|
+
* reviews the raw images (the skill forbids it), so a noisy diff is believed.
|
|
8
|
+
*
|
|
9
|
+
* So a *pair* is resolved, not two URLs. Each strategy either produces both
|
|
10
|
+
* sides from the same kind of environment or yields to the next one. Mixing
|
|
11
|
+
* happens only when the caller asked for it by name, and is reported when it
|
|
12
|
+
* does.
|
|
13
|
+
*/
|
|
14
|
+
import { GitHub, PullRequestRef } from './github.js';
|
|
15
|
+
import { serveBaseCommit, serveWorkingTree } from './baseline.js';
|
|
16
|
+
import { NeedsHumanError, ProbeResult } from './doctor.js';
|
|
17
|
+
import { PrePostConfig } from './types.js';
|
|
18
|
+
export type StrategyName = 'explicit' | 'deployed' | 'local';
|
|
19
|
+
export interface Side {
|
|
20
|
+
url: string;
|
|
21
|
+
/** Human-readable provenance, e.g. "Preview deployment for 7bbb138". */
|
|
22
|
+
detail: string;
|
|
23
|
+
/** The probe resolution already took, so callers need not repeat it. */
|
|
24
|
+
probe?: ProbeResult;
|
|
25
|
+
}
|
|
26
|
+
export interface Comparison {
|
|
27
|
+
strategy: StrategyName;
|
|
28
|
+
before: Side;
|
|
29
|
+
after: Side;
|
|
30
|
+
/** True when the two sides come from different kinds of environment. */
|
|
31
|
+
mixed: boolean;
|
|
32
|
+
/** Tear down anything started to make this comparison possible. */
|
|
33
|
+
stop: () => Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
export interface ResolveContext {
|
|
36
|
+
gh: GitHub | null;
|
|
37
|
+
ownerRepo: string;
|
|
38
|
+
pr: PullRequestRef | null;
|
|
39
|
+
repoRoot: string;
|
|
40
|
+
appPrefix?: string;
|
|
41
|
+
config: PrePostConfig;
|
|
42
|
+
before?: string;
|
|
43
|
+
after?: string;
|
|
44
|
+
/** Local dev server URL, if one is already running. */
|
|
45
|
+
devServer: Promise<string | null>;
|
|
46
|
+
probe: (url: string) => Promise<ProbeResult>;
|
|
47
|
+
/**
|
|
48
|
+
* The commit detection compared against, when it resolved one.
|
|
49
|
+
*
|
|
50
|
+
* This wins over the PR's base: it is what `--base` sets, and it is the
|
|
51
|
+
* commit the route list was built from. The PR's base is the fallback for a
|
|
52
|
+
* caller that has a PR but no detection of its own.
|
|
53
|
+
*/
|
|
54
|
+
baseSha?: string;
|
|
55
|
+
/**
|
|
56
|
+
* True when `baseSha` is a ref the caller named with `--base`, which makes it
|
|
57
|
+
* a constraint rather than a starting point: no strategy may widen past it.
|
|
58
|
+
*/
|
|
59
|
+
baseExplicit?: boolean;
|
|
60
|
+
/** This checkout's HEAD, so a preview can be found before a PR is opened. */
|
|
61
|
+
headSha?: string;
|
|
62
|
+
/** Skip building the base commit locally. */
|
|
63
|
+
allowLocalBaseline?: boolean;
|
|
64
|
+
/** Injectable for tests; defaults to a real git worktree + dev server. */
|
|
65
|
+
serveBaseline?: typeof serveBaseCommit;
|
|
66
|
+
/** Injectable for tests; defaults to booting this checkout's dev server. */
|
|
67
|
+
servePost?: typeof serveWorkingTree;
|
|
68
|
+
log: (msg: string) => void;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Resolve both sides together, cheapest strategy first.
|
|
72
|
+
*
|
|
73
|
+
* `explicit` when the caller named both; then `deployed`, which needs a preview
|
|
74
|
+
* for this commit and a deployed baseline; then `local`, which needs nothing but
|
|
75
|
+
* the repository itself.
|
|
76
|
+
*/
|
|
77
|
+
export declare function resolveComparison(ctx: ResolveContext): Promise<Comparison>;
|
|
78
|
+
export declare class NoPostError extends NeedsHumanError {
|
|
79
|
+
constructor();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* A preview exists but nothing could stand beside it.
|
|
83
|
+
*
|
|
84
|
+
* Worth its own error because the generic one says "no preview deployment for
|
|
85
|
+
* this commit", which in this case is the opposite of what happened — and the
|
|
86
|
+
* person hitting it is the one least able to act on advice about dev servers.
|
|
87
|
+
*
|
|
88
|
+
* The instruction depends on *why* there was no baseline. Telling someone to
|
|
89
|
+
* pass `--before` when the baseline was found and turned them away at a login
|
|
90
|
+
* wall sends them back to the same URL for the same failure; the fix there is
|
|
91
|
+
* access, not an argument.
|
|
92
|
+
*/
|
|
93
|
+
export declare class NoDeployedBaselineError extends NeedsHumanError {
|
|
94
|
+
constructor(previewUrl: string, rejected?: {
|
|
95
|
+
side: Side;
|
|
96
|
+
probe: ProbeResult | null;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
export declare class NoBaselineError extends NeedsHumanError {
|
|
100
|
+
constructor();
|
|
101
|
+
}
|
|
102
|
+
/** The plan, for the log — an unattended tool has to say what it chose. */
|
|
103
|
+
export declare function describeComparison(c: Comparison): string[];
|
|
104
|
+
//# sourceMappingURL=comparison.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison.d.ts","sourceRoot":"","sources":["../src/comparison.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAiB,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;IACZ,wEAAwE;IACxE,KAAK,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,eAAe,CAAC;IACvC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACpC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAoLD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAKhF;AAED,qBAAa,WAAY,SAAQ,eAAe;;CAK/C;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;gBAC9C,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;KAAE;CAIrF;AAaD,qBAAa,eAAgB,SAAQ,eAAe;;CAKnD;AAED,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAU1D"}
|