@polishd/next 0.2.3-dev.5 → 0.2.3-dev.6

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 (84) hide show
  1. package/CHANGELOG.md +79 -14
  2. package/README.md +5 -0
  3. package/dist/ai/actions.d.ts +13 -1
  4. package/dist/ai/actions.d.ts.map +1 -1
  5. package/dist/ai/actions.js +20 -1
  6. package/dist/ai/actions.js.map +1 -1
  7. package/dist/ai/design.d.ts +5 -1
  8. package/dist/ai/design.d.ts.map +1 -1
  9. package/dist/ai/design.js +21 -4
  10. package/dist/ai/design.js.map +1 -1
  11. package/dist/ai/fix.d.ts +14 -0
  12. package/dist/ai/fix.d.ts.map +1 -0
  13. package/dist/ai/fix.js +254 -0
  14. package/dist/ai/fix.js.map +1 -0
  15. package/dist/ai/guard.d.ts.map +1 -1
  16. package/dist/ai/guard.js +8 -32
  17. package/dist/ai/guard.js.map +1 -1
  18. package/dist/ai/issues.d.ts +29 -6
  19. package/dist/ai/issues.d.ts.map +1 -1
  20. package/dist/ai/issues.js +113 -40
  21. package/dist/ai/issues.js.map +1 -1
  22. package/dist/ai/types.d.ts +52 -0
  23. package/dist/ai/types.d.ts.map +1 -1
  24. package/dist/dashboard/design-review-card.d.ts +3 -1
  25. package/dist/dashboard/design-review-card.d.ts.map +1 -1
  26. package/dist/dashboard/design-review-card.js +14 -6
  27. package/dist/dashboard/design-review-card.js.map +1 -1
  28. package/dist/dashboard/design.d.ts.map +1 -1
  29. package/dist/dashboard/design.js +75 -17
  30. package/dist/dashboard/design.js.map +1 -1
  31. package/dist/dashboard/file-bug-button.d.ts +14 -0
  32. package/dist/dashboard/file-bug-button.d.ts.map +1 -0
  33. package/dist/dashboard/file-bug-button.js +37 -0
  34. package/dist/dashboard/file-bug-button.js.map +1 -0
  35. package/dist/dashboard/index.d.ts.map +1 -1
  36. package/dist/dashboard/index.js +4 -2
  37. package/dist/dashboard/index.js.map +1 -1
  38. package/dist/dashboard/issue-list.d.ts +11 -0
  39. package/dist/dashboard/issue-list.d.ts.map +1 -0
  40. package/dist/dashboard/issue-list.js +159 -0
  41. package/dist/dashboard/issue-list.js.map +1 -0
  42. package/dist/dashboard/issues.d.ts +31 -2
  43. package/dist/dashboard/issues.d.ts.map +1 -1
  44. package/dist/dashboard/issues.js +4 -71
  45. package/dist/dashboard/issues.js.map +1 -1
  46. package/dist/dashboard/markdown-parse.d.ts +87 -0
  47. package/dist/dashboard/markdown-parse.d.ts.map +1 -0
  48. package/dist/dashboard/markdown-parse.js +244 -0
  49. package/dist/dashboard/markdown-parse.js.map +1 -0
  50. package/dist/dashboard/markdown.d.ts +5 -0
  51. package/dist/dashboard/markdown.d.ts.map +1 -0
  52. package/dist/dashboard/markdown.js +65 -0
  53. package/dist/dashboard/markdown.js.map +1 -0
  54. package/dist/dashboard/snapshot-actions.d.ts.map +1 -1
  55. package/dist/dashboard/snapshot-actions.js +22 -54
  56. package/dist/dashboard/snapshot-actions.js.map +1 -1
  57. package/dist/dashboard/snapshots.d.ts.map +1 -1
  58. package/dist/dashboard/snapshots.js +7 -20
  59. package/dist/dashboard/snapshots.js.map +1 -1
  60. package/dist/dashboard/summary.d.ts.map +1 -1
  61. package/dist/dashboard/summary.js +8 -36
  62. package/dist/dashboard/summary.js.map +1 -1
  63. package/dist/dashboard/ui.d.ts +1 -0
  64. package/dist/dashboard/ui.d.ts.map +1 -1
  65. package/dist/dashboard/ui.js +1 -0
  66. package/dist/dashboard/ui.js.map +1 -1
  67. package/dist/dashboard/value-preview.d.ts +47 -0
  68. package/dist/dashboard/value-preview.d.ts.map +1 -0
  69. package/dist/dashboard/value-preview.js +138 -0
  70. package/dist/dashboard/value-preview.js.map +1 -0
  71. package/dist/dashboard.css +234 -62
  72. package/dist/server/snapshots.d.ts +32 -4
  73. package/dist/server/snapshots.d.ts.map +1 -1
  74. package/dist/server/snapshots.js +146 -24
  75. package/dist/server/snapshots.js.map +1 -1
  76. package/dist/server/value-previews.d.ts +47 -0
  77. package/dist/server/value-previews.d.ts.map +1 -0
  78. package/dist/server/value-previews.js +313 -0
  79. package/dist/server/value-previews.js.map +1 -0
  80. package/dist/shared/design-values.d.ts +71 -0
  81. package/dist/shared/design-values.d.ts.map +1 -0
  82. package/dist/shared/design-values.js +98 -0
  83. package/dist/shared/design-values.js.map +1 -0
  84. package/package.json +1 -1
@@ -20,6 +20,13 @@
20
20
  * failure degrades to a message, never a crash — the same contract as the
21
21
  * rest of the server layer.
22
22
  *
23
+ * Alongside the full shots, each route call also pictures the Design tab's
24
+ * flagged values in place — a ringed crop of the element carrying a one-off
25
+ * type style, color, radius or off-grid padding (server/value-previews.ts) —
26
+ * stored beside the shots under the same disk-or-Blob rule, and listed in the
27
+ * snapshot as `previews` so hovering the value on the dashboard shows where
28
+ * it renders.
29
+ *
23
30
  * Capture is chunked into one server call per route: begin → one
24
31
  * `captureSnapshotRoute` per route → finish, with the in-flight state parked
25
32
  * in the store between calls. A whole-site capture in a single request would
@@ -29,9 +36,10 @@
29
36
  * result at all. One route per request keeps every call short enough to fit.
30
37
  */
31
38
  import { isAbsolute, join } from "node:path";
32
- import { copyFile, mkdir, mkdtemp, readFile, rm } from "node:fs/promises";
39
+ import { copyFile, mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
33
40
  import { tmpdir } from "node:os";
34
41
  import { getMeta, setMeta, storeReady } from "./store";
42
+ import { captureValuePreviews } from "./value-previews";
35
43
  const INDEX_KEY = "design_snapshots";
36
44
  /** Snapshots kept before the oldest is pruned (files and index entry both). */
37
45
  const MAX_SNAPSHOTS = 6;
@@ -40,6 +48,19 @@ export const MAX_SNAPSHOT_ROUTES = 12;
40
48
  /** The device/theme matrix every snapshot shoots. */
41
49
  const SNAPSHOT_DEVICES = ["phone", "desktop"];
42
50
  const SNAPSHOT_THEMES = ["light", "dark"];
51
+ /**
52
+ * Where a flagged value is looked for, in order: the gallery's default view
53
+ * first, so most pictures match the shot the user is already looking at.
54
+ */
55
+ const PREVIEW_RENDERINGS = [
56
+ { device: "desktop", theme: "light" },
57
+ { device: "desktop", theme: "dark" },
58
+ { device: "phone", theme: "light" },
59
+ { device: "phone", theme: "dark" },
60
+ ];
61
+ /** Values pictured per route, and the time the pass may add to its call. */
62
+ const MAX_PREVIEWS_PER_ROUTE = 16;
63
+ const PREVIEW_BUDGET_MS = 15_000;
43
64
  /**
44
65
  * True when shots should upload to Vercel Blob rather than land on disk.
45
66
  * `BLOB_READ_WRITE_TOKEN` is injected automatically once a Blob store is
@@ -76,26 +97,32 @@ export async function listSnapshots() {
76
97
  return (await loadIndex()).snapshots;
77
98
  }
78
99
  /**
79
- * Read one shot's image as a data URL, or null when it doesn't exist. The
80
- * filename is only accepted when the index lists it for that snapshot, so a
81
- * caller can never read outside a snapshot directory — and Blob-stored shots
82
- * are only ever fetched from the URL the index recorded at capture time.
100
+ * Read one shot's — or one value preview's — image as a data URL, or null
101
+ * when it doesn't exist. The filename is only accepted when the index lists it
102
+ * for that snapshot, so a caller can never read outside a snapshot directory —
103
+ * and Blob-stored images are only ever fetched from the URL the index recorded
104
+ * at capture time.
83
105
  */
84
106
  export async function readSnapshotImage(snapshotId, file) {
85
107
  const index = await loadIndex();
86
108
  const snapshot = index.snapshots.find((s) => s.id === snapshotId);
87
- const shot = snapshot?.shots.find((s) => s.file === file && s.file.length > 0);
88
- if (!snapshot || !shot)
109
+ if (!snapshot || file.length === 0)
110
+ return null;
111
+ const shot = snapshot.shots.find((s) => s.file === file);
112
+ const preview = shot ? undefined : snapshot.previews?.find((p) => p.file === file);
113
+ const image = shot ?? preview;
114
+ if (!image)
89
115
  return null;
90
116
  try {
91
- if (shot.url) {
92
- const res = await fetch(shot.url);
117
+ if (image.url) {
118
+ const res = await fetch(image.url);
93
119
  if (!res.ok)
94
120
  return null;
95
121
  const bytes = Buffer.from(await res.arrayBuffer());
96
122
  return `data:image/png;base64,${bytes.toString("base64")}`;
97
123
  }
98
- const bytes = await readFile(join(snapshotsRoot(), snapshot.id, "shots", shot.file));
124
+ const dir = shot ? "shots" : "previews";
125
+ const bytes = await readFile(join(snapshotsRoot(), snapshot.id, dir, image.file));
99
126
  return `data:image/png;base64,${bytes.toString("base64")}`;
100
127
  }
101
128
  catch {
@@ -137,17 +164,9 @@ async function storeRouteShots(id, routeIndex, stageDir, captured) {
137
164
  }
138
165
  return { shots };
139
166
  }
140
- let blob;
141
- try {
142
- blob = await import("@vercel/blob");
143
- }
144
- catch {
145
- return {
146
- message: "Blob storage is configured (BLOB_READ_WRITE_TOKEN is set) but @vercel/blob " +
147
- "isn't installed. It ships as an optional dependency of @polishd/next — " +
148
- "reinstall without `--omit=optional`.",
149
- };
150
- }
167
+ const blob = await loadBlobSdk();
168
+ if ("message" in blob)
169
+ return blob;
151
170
  const uploaded = [];
152
171
  try {
153
172
  for (const s of captured) {
@@ -174,6 +193,69 @@ async function storeRouteShots(id, routeIndex, stageDir, captured) {
174
193
  };
175
194
  }
176
195
  }
196
+ /** The Blob SDK, or why it couldn't load. */
197
+ async function loadBlobSdk() {
198
+ try {
199
+ return await import("@vercel/blob");
200
+ }
201
+ catch {
202
+ return {
203
+ message: "Blob storage is configured (BLOB_READ_WRITE_TOKEN is set) but @vercel/blob " +
204
+ "isn't installed. It ships as an optional dependency of @polishd/next — " +
205
+ "reinstall without `--omit=optional`.",
206
+ };
207
+ }
208
+ }
209
+ /**
210
+ * Store one route's value previews next to its shots — the snapshot's
211
+ * `previews/` directory, or Blob under the same rules as the shots. Names are
212
+ * `v-r<route>-<n>-<device>-<theme>.png`, unique within the snapshot and never
213
+ * mistakable for a shot's. All or nothing, like the shots: a failed upload
214
+ * deletes the pieces already sent.
215
+ */
216
+ async function storeRoutePreviews(id, routeIndex, route, crops) {
217
+ const named = crops.map((c, n) => ({
218
+ ...c,
219
+ file: `v-r${routeIndex}-${n}-${c.device}-${c.theme}.png`,
220
+ }));
221
+ const toPreview = (c, url) => ({
222
+ key: c.key,
223
+ route,
224
+ device: c.device,
225
+ theme: c.theme,
226
+ file: c.file,
227
+ ...(url ? { url } : {}),
228
+ });
229
+ if (!blobConfigured()) {
230
+ const dir = join(snapshotsRoot(), id, "previews");
231
+ await mkdir(dir, { recursive: true });
232
+ for (const c of named)
233
+ await writeFile(join(dir, c.file), c.bytes);
234
+ return named.map((c) => toPreview(c));
235
+ }
236
+ const blob = await loadBlobSdk();
237
+ if ("message" in blob)
238
+ return [];
239
+ const uploaded = [];
240
+ try {
241
+ const previews = [];
242
+ for (const c of named) {
243
+ const { url } = await blob.put(`polishd/snapshots/${id}/previews/${c.file}`, c.bytes, {
244
+ access: "public",
245
+ contentType: "image/png",
246
+ addRandomSuffix: true,
247
+ });
248
+ uploaded.push(url);
249
+ previews.push(toPreview(c, url));
250
+ }
251
+ return previews;
252
+ }
253
+ catch {
254
+ if (uploaded.length > 0)
255
+ await blob.del(uploaded).catch(() => { });
256
+ return [];
257
+ }
258
+ }
177
259
  /**
178
260
  * Best-effort removal of a snapshot's images, wherever they were stored.
179
261
  * Blob-stored shots carry their URLs in the index; disk-stored ones sit in a
@@ -181,7 +263,7 @@ async function storeRouteShots(id, routeIndex, stageDir, captured) {
181
263
  * blob costs cents, a prune that crashed the capture would cost the feature.
182
264
  */
183
265
  async function deleteSnapshotImages(snapshot) {
184
- const urls = snapshot.shots.flatMap((s) => (s.url ? [s.url] : []));
266
+ const urls = [...snapshot.shots, ...(snapshot.previews ?? [])].flatMap((s) => s.url ? [s.url] : []);
185
267
  if (urls.length > 0) {
186
268
  try {
187
269
  const { del } = await import("@vercel/blob");
@@ -200,8 +282,13 @@ async function loadPending() {
200
282
  return null;
201
283
  try {
202
284
  const parsed = JSON.parse(raw);
203
- if (parsed?.v === 1 && typeof parsed.id === "string")
285
+ if (parsed?.v === 1 && typeof parsed.id === "string") {
286
+ // Records parked by a version without value previews.
287
+ parsed.targets ??= [];
288
+ parsed.previews ??= [];
289
+ parsed.previewMisses ??= [];
204
290
  return parsed;
291
+ }
205
292
  }
206
293
  catch {
207
294
  // A corrupt pending record is simply abandoned.
@@ -252,6 +339,9 @@ export async function beginSnapshot(input) {
252
339
  shots: [],
253
340
  authWalled: [],
254
341
  noDarkMode: true,
342
+ targets: input.targets ?? [],
343
+ previews: [],
344
+ previewMisses: [],
255
345
  };
256
346
  if (!(await savePending(pending))) {
257
347
  return { ok: false, message: "The store refused to record the capture in progress." };
@@ -321,8 +411,11 @@ export async function captureSnapshotRoute(id, route) {
321
411
  const stored = await storeRouteShots(id, pending.routes.indexOf(route), stageDir, result.shots);
322
412
  if ("message" in stored)
323
413
  return { ok: false, message: stored.message };
414
+ const pictured = await pictureRouteValues(launched.browser, pending, route, stored.shots);
324
415
  pending.done.push(route);
325
416
  pending.shots.push(...stored.shots);
417
+ pending.previews.push(...pictured.previews);
418
+ pending.previewMisses.push(...pictured.missed);
326
419
  for (const walled of result.authWalled) {
327
420
  if (!pending.authWalled.includes(walled))
328
421
  pending.authWalled.push(walled);
@@ -332,7 +425,7 @@ export async function captureSnapshotRoute(id, route) {
332
425
  pending.noDarkMode = pending.noDarkMode && result.noDarkMode;
333
426
  }
334
427
  if (!(await savePending(pending))) {
335
- await deleteSnapshotImages({ id, shots: stored.shots });
428
+ await deleteSnapshotImages({ id, shots: stored.shots, previews: pictured.previews });
336
429
  return { ok: false, message: "The route was shot but the store refused to record it." };
337
430
  }
338
431
  return { ok: true, shots: stored.shots };
@@ -348,6 +441,32 @@ export async function captureSnapshotRoute(id, route) {
348
441
  await rm(stageDir, { recursive: true, force: true }).catch(() => { });
349
442
  }
350
443
  }
444
+ /**
445
+ * Picture the capture's flagged values that were measured on `route` and
446
+ * aren't pictured yet, in the renderings this route actually produced shots
447
+ * for (an auth-walled or failed route has none, so it's skipped). Never fails
448
+ * the route: any error leaves the route with its full shots and no previews.
449
+ */
450
+ async function pictureRouteValues(browser, pending, route, shots) {
451
+ const none = { previews: [], missed: [] };
452
+ const pictured = new Set(pending.previews.map((p) => p.key));
453
+ const targets = pending.targets
454
+ .filter((t) => t.pages.includes(route) && !pictured.has(t.key))
455
+ .slice(0, MAX_PREVIEWS_PER_ROUTE);
456
+ const renderings = PREVIEW_RENDERINGS.filter((r) => shots.some((s) => s.file && s.device === r.device && s.theme === r.theme));
457
+ if (targets.length === 0 || renderings.length === 0)
458
+ return none;
459
+ try {
460
+ const result = await captureValuePreviews(browser, pending.origin, route, targets, renderings, PREVIEW_BUDGET_MS);
461
+ const previews = result.crops.length > 0
462
+ ? await storeRoutePreviews(pending.id, pending.routes.indexOf(route), route, result.crops)
463
+ : [];
464
+ return { previews, missed: result.missed };
465
+ }
466
+ catch {
467
+ return none;
468
+ }
469
+ }
351
470
  /**
352
471
  * Close out the capture: record the accumulated shots in the snapshot index
353
472
  * and prune old snapshots past `MAX_SNAPSHOTS`, images included. Called once
@@ -370,6 +489,9 @@ export async function finishSnapshot(id) {
370
489
  shots: pending.shots,
371
490
  authWalled: pending.authWalled,
372
491
  noDarkMode: pending.noDarkMode,
492
+ previews: pending.previews,
493
+ // A value missed on one of its pages may have been pictured on another.
494
+ previewMisses: [...new Set(pending.previewMisses)].filter((key) => !pending.previews.some((p) => p.key === key)),
373
495
  };
374
496
  if (snapshot.shots.every((s) => !s.file)) {
375
497
  await deleteSnapshotImages(snapshot);
@@ -1 +1 @@
1
- {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/server/snapshots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/server/snapshots.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Polishd — pictures of where a flagged design value renders (server only).
3
+ *
4
+ * The Design tab knows a one-off 17px type style exists and which page it was
5
+ * measured on; this finds the element that carries it and photographs it in
6
+ * place. It runs inside a snapshot capture, right after a route's full shots,
7
+ * on the browser that capture already launched: load the route, find each
8
+ * target value's element with the same rules the client scanner tallies by,
9
+ * scroll it into view, ring it, and screenshot a crop around it.
10
+ *
11
+ * Matching is by value, not by selector. The visitor's scan never recorded
12
+ * *which* element carried a value — only that one did — and a selector shot
13
+ * at a different viewport would often point at nothing anyway. Re-measuring
14
+ * the page as the capture browser renders it means every picture shows the
15
+ * value genuinely there, at the size and theme it was shot in.
16
+ *
17
+ * Best-effort throughout: a value that never turns up (only shown after a
18
+ * click, only at a width we don't shoot) is reported as missed, and any
19
+ * failure ends the pass with whatever was already pictured. The route's full
20
+ * shots never depend on it.
21
+ */
22
+ import type { Browser } from "playwright-core";
23
+ import { type DesignPreviewTarget } from "../shared/design-values";
24
+ /** One rendering a pass can look in: an allpages device name and a theme. */
25
+ export interface PreviewRendering {
26
+ device: string;
27
+ theme: "light" | "dark";
28
+ }
29
+ export interface ValuePreviewCrop {
30
+ key: string;
31
+ device: string;
32
+ theme: string;
33
+ bytes: Buffer;
34
+ }
35
+ export interface ValuePreviewResult {
36
+ crops: ValuePreviewCrop[];
37
+ /** Keys looked for in every rendering and not found on screen in any. */
38
+ missed: string[];
39
+ }
40
+ /**
41
+ * Picture each target on one route. Renderings are tried in order — the
42
+ * gallery's default view first — and a value found in an earlier one isn't
43
+ * looked for again, so the usual cost is a single extra page load. Stops early
44
+ * when `budgetMs` runs out, reporting the rest as neither found nor missed.
45
+ */
46
+ export declare function captureValuePreviews(browser: Browser, origin: string, route: string, targets: DesignPreviewTarget[], renderings: PreviewRendering[], budgetMs: number): Promise<ValuePreviewResult>;
47
+ //# sourceMappingURL=value-previews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-previews.d.ts","sourceRoot":"","sources":["../../src/server/value-previews.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAe,KAAK,mBAAmB,EAAuB,MAAM,yBAAyB,CAAC;AAErG,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,yEAAyE;IACzE,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAiRD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,EAAE,EAC9B,UAAU,EAAE,gBAAgB,EAAE,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CA0D7B"}