youiyoux 0.1.3 → 0.1.4
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 +10 -0
- package/dist/chunks/{chunk-S7UV34H5.js → chunk-42YJX3W5.js} +1 -3
- package/dist/chunks/{chunk-74KBRI2H.js → chunk-4BBYLTZX.js} +10 -10
- package/dist/chunks/chunk-52KOKYY6.js +8710 -0
- package/dist/chunks/chunk-FJZFCAL5.js +129 -0
- package/dist/chunks/chunk-FVVL5JCY.js +24 -0
- package/dist/chunks/{chunk-UEB6MJDX.js → chunk-M5XZWCPS.js} +176 -61
- package/dist/chunks/{chunk-C3TSTYP7.js → chunk-NYDJYMID.js} +212 -26
- package/dist/chunks/{chunk-OIHNEGWH.js → chunk-RDTHHRZN.js} +96 -142
- package/dist/chunks/{chunk-E4HNK7VF.js → chunk-WNTS7ZO4.js} +1 -1
- package/dist/chunks/chunk-XAEMVEYX.js +188 -0
- package/dist/chunks/{chunk-RTOTNSOV.js → chunk-YFCMTTXS.js} +600 -506
- package/dist/chunks/chunk-YJ7WMBTT.js +13761 -0
- package/dist/chunks/src-5IP4NGKT.js +115 -0
- package/dist/chunks/{src-U5NTDPUX.js → src-6CJR547Y.js} +11 -35
- package/dist/chunks/{src-YGEZCUAO.js → src-BPETAFLW.js} +134 -77
- package/dist/chunks/{src-ZS76UD7E.js → src-LLV7IY6W.js} +27 -16
- package/dist/chunks/src-RHNZELGE.js +306 -0
- package/dist/chunks/{src-YUC5PIDK.js → src-SFKFERZ2.js} +14 -8
- package/dist/chunks/{src-DS43LCRA.js → src-VL2ZYO6X.js} +4 -4
- package/dist/hub/assets/Badge-CUJUit4d.js +1 -0
- package/dist/hub/assets/CandidatePanel-CnbK4S0j.js +1 -0
- package/dist/hub/assets/CatalogScreen-B5OVL-AR.js +1 -0
- package/dist/hub/assets/ChangesScreen-GwGqJwxN.js +1 -0
- package/dist/hub/assets/CheatSheet-BLSOq-xa.js +1 -0
- package/dist/hub/assets/CodeBlock-CsiGFgvI.js +1 -0
- package/dist/hub/assets/CommandPalette-CAWQfdXJ.js +1 -0
- package/dist/hub/assets/CopyButton-DE8drl4P.js +1 -0
- package/dist/hub/assets/Disclosure-B1kTgPgk.js +1 -0
- package/dist/hub/assets/DiscoverScreen-Tl_Z6mgY.js +2 -0
- package/dist/hub/assets/DraftEditor-yIDapXTs.js +5 -0
- package/dist/hub/assets/Field-LwrJXoOs.js +1 -0
- package/dist/hub/assets/GapsScreen-DXZAlm6v.js +1 -0
- package/dist/hub/assets/HomeScreen-CEpiVhOa.js +1 -0
- package/dist/hub/assets/InventoryScreen-CEG3Pmw_.js +1 -0
- package/dist/hub/assets/KindIcon-BJ6bz-ny.js +1 -0
- package/dist/hub/assets/LibraryScreen-IaVnxrX9.js +1 -0
- package/dist/hub/assets/LicenceBadge-CLCUMMHE.js +1 -0
- package/dist/hub/assets/Opened-DJyf4Hnj.js +1 -0
- package/dist/hub/assets/Preview-C069zVMP.js +1 -0
- package/dist/hub/assets/RuleDetail-B4g2-TRe.js +3 -0
- package/dist/hub/assets/RulesScreen-CAaXIWjO.js +3 -0
- package/dist/hub/assets/ScreenImage-DcI7_G3O.js +1 -0
- package/dist/hub/assets/ScreensScreen-DwczCjZD.js +1 -0
- package/dist/hub/assets/SearchField-DaCpNAj6.js +1 -0
- package/dist/hub/assets/Section-BTnvUq_W.js +1 -0
- package/dist/hub/assets/Segmented-Dzi1x49S.js +1 -0
- package/dist/hub/assets/ServiceDown-Bv-BPXro.js +1 -0
- package/dist/hub/assets/SpecimenCapture-DlsjshVE.js +1 -0
- package/dist/hub/assets/Specimens-C-lHp7sr.js +2 -0
- package/dist/hub/assets/StackScreen-DkmELsqR.js +1 -0
- package/dist/hub/assets/StubScreens-Bt7lWLVK.js +1 -0
- package/dist/hub/assets/StyleScreen-tq1tbRBo.js +1 -0
- package/dist/hub/assets/Swatch-KDz4qxdM.js +1 -0
- package/dist/hub/assets/Tabs-1QQDS0I6.js +1 -0
- package/dist/hub/assets/TokenDetail-DvCw6GqC.js +1 -0
- package/dist/hub/assets/TokenValue-CsPRc2ai.js +1 -0
- package/dist/hub/assets/TokensScreen-DoENV8Xy.js +1 -0
- package/dist/hub/assets/arrow-right-DcbNDzqs.js +1 -0
- package/dist/hub/assets/bot-B3gC9oUR.js +1 -0
- package/dist/hub/assets/button-6mvMVtpb.js +1 -0
- package/dist/hub/assets/button.demo-DuU0DQbv.js +1 -0
- package/dist/hub/assets/card.demo-CufAxMAA.js +1 -0
- package/dist/hub/assets/chevron-down-CzN07vMi.js +1 -0
- package/dist/hub/assets/circle-alert-DT2LC4yf.js +1 -0
- package/dist/hub/assets/circle-check-DkwBMT62.js +1 -0
- package/dist/hub/assets/client-D7whEyep.js +1 -0
- package/dist/hub/assets/clsx-DB0hHKMi.js +1 -0
- package/dist/hub/assets/compass-BkKOZPYe.js +1 -0
- package/dist/hub/assets/contrast-BkNHUAPa.js +1 -0
- package/dist/hub/assets/createLucideIcon-CGDJWtKO.js +1 -0
- package/dist/hub/assets/discover-XjJEViwk.js +1 -0
- package/dist/hub/assets/dist-BYQYaPBV.js +1 -0
- package/dist/hub/assets/dist-Bk4srtDn.js +41 -0
- package/dist/hub/assets/dist-BogNzeK9.js +1 -0
- package/dist/hub/assets/dist-D0z7Bvsy.js +1 -0
- package/dist/hub/assets/download-BQI-Si9R.js +1 -0
- package/dist/hub/assets/engine-CMmt9yEz.js +1 -0
- package/dist/hub/assets/esm-NPpg23M8.js +1 -0
- package/dist/hub/assets/family-tiles-CyTdy_cP.js +1 -0
- package/dist/hub/assets/format-DxAYNTN_.js +1 -0
- package/dist/hub/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/dist/hub/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/dist/hub/assets/geist-latin-core-vkBVTr4s.woff2 +0 -0
- package/dist/hub/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/dist/hub/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/dist/hub/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2 +0 -0
- package/dist/hub/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2 +0 -0
- package/dist/hub/assets/geist-mono-latin-core-DccGGzmg.woff2 +0 -0
- package/dist/hub/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2 +0 -0
- package/dist/hub/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
- package/dist/hub/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2 +0 -0
- package/dist/hub/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2 +0 -0
- package/dist/hub/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/dist/hub/assets/git-pull-request-arrow-RqUUIRCU.js +1 -0
- package/dist/hub/assets/input.demo-238gqWpz.js +1 -0
- package/dist/hub/assets/inventory-BI8QBdar.js +1 -0
- package/dist/hub/assets/inventory-source-lZYzcA8O.js +1 -0
- package/dist/hub/assets/jsx-runtime-D6zNwnaE.js +9 -0
- package/dist/hub/assets/layers-DfzdK_wG.js +1 -0
- package/dist/hub/assets/layout-grid-xFY9L9Oc.js +1 -0
- package/dist/hub/assets/library-W5R8GwvG.js +1 -0
- package/dist/hub/assets/main-7snyIdoi.css +2 -0
- package/dist/hub/assets/main-B9CIkk5m.js +2 -0
- package/dist/hub/assets/minus-BDifFhOo.js +1 -0
- package/dist/hub/assets/monitor-X_lELkcU.js +1 -0
- package/dist/hub/assets/mouse-pointer-click-CVJ6hWg8.js +1 -0
- package/dist/hub/assets/paintbrush-DOkEgSTO.js +1 -0
- package/dist/hub/assets/plural-BbGQPQKA.js +1 -0
- package/dist/hub/assets/preview-BA8CPsKb.css +2 -0
- package/dist/hub/assets/preview-DUm13vr1.js +3 -0
- package/dist/hub/assets/protocol-caP6umNL.js +1 -0
- package/dist/hub/assets/react-DB-4Zxce.js +1 -0
- package/dist/hub/assets/shield-check-0ka0kQct.js +1 -0
- package/dist/hub/assets/trash-B7aEfJps.js +1 -0
- package/dist/hub/assets/triangle-alert-Dkdi9eDR.js +1 -0
- package/dist/hub/assets/try-live-zX3CSd3P.js +1 -0
- package/dist/hub/assets/utils-BoaXfs8y.js +1 -0
- package/dist/hub/assets/values-DzxR_TlI.js +1 -0
- package/dist/hub/assets/worker-Bh-wSp42.js +1 -0
- package/dist/hub/assets/workflow-jpV8wh-U.js +1 -0
- package/dist/hub/assets/x-MLbFVa4v.js +1 -0
- package/dist/hub/favicon.svg +1 -0
- package/dist/hub/index.html +35 -0
- package/dist/hub/kit/candidates.json +1 -0
- package/dist/hub/kit/chunks/chunk-2NYFUOIV.js +14 -0
- package/dist/hub/kit/chunks/chunk-DCANE7XH.js +1 -0
- package/dist/hub/kit/chunks/chunk-FTGHCY4I.js +14 -0
- package/dist/hub/kit/chunks/chunk-IBF3UTJF.js +33 -0
- package/dist/hub/kit/chunks/chunk-LLXY4VSH.js +1 -0
- package/dist/hub/kit/chunks/chunk-PUPZMW4P.js +14 -0
- package/dist/hub/kit/chunks/chunk-PWLNZQET.js +1 -0
- package/dist/hub/kit/chunks/chunk-ULXWVOKJ.js +1 -0
- package/dist/hub/kit/chunks/chunk-WM4BGGMK.js +1 -0
- package/dist/hub/kit/chunks/chunk-ZQUNRK72.js +1 -0
- package/dist/hub/kit/class-variance-authority.js +1 -0
- package/dist/hub/kit/clsx.js +1 -0
- package/dist/hub/kit/fonts/geist-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/hub/kit/fonts/geist-cyrillic-wght-normal.woff2 +0 -0
- package/dist/hub/kit/fonts/geist-latin-ext-wght-normal.woff2 +0 -0
- package/dist/hub/kit/fonts/geist-latin-wght-normal.woff2 +0 -0
- package/dist/hub/kit/fonts/geist-vietnamese-wght-normal.woff2 +0 -0
- package/dist/hub/kit/frame.css.src +73 -0
- package/dist/hub/kit/frame.js +2 -0
- package/dist/hub/kit/lucide-react.js +1878 -0
- package/dist/hub/kit/preview.html +13 -0
- package/dist/hub/kit/radix-ui-react-dialog.js +41 -0
- package/dist/hub/kit/radix-ui-react-label.js +1 -0
- package/dist/hub/kit/radix-ui-react-separator.js +1 -0
- package/dist/hub/kit/radix-ui-react-slot.js +1 -0
- package/dist/hub/kit/radix-ui-react-switch.js +1 -0
- package/dist/hub/kit/radix-ui-react-tabs.js +1 -0
- package/dist/hub/kit/react-dom-client.js +1 -0
- package/dist/hub/kit/react-dom.js +1 -0
- package/dist/hub/kit/react-jsx-runtime.js +1 -0
- package/dist/hub/kit/react.js +1 -0
- package/dist/hub/kit/tailwind-merge.js +1 -0
- package/dist/hub/kit/tailwindcss/index.css +950 -0
- package/dist/hub/kit/tailwindcss/preflight.css +398 -0
- package/dist/hub/kit/tailwindcss/theme.css +510 -0
- package/dist/hub/kit/tailwindcss/utilities.css +1 -0
- package/dist/hub-demo/frame/button.demo.js +1 -0
- package/dist/hub-demo/frame/card.demo.js +1 -0
- package/dist/hub-demo/frame/demos.js +6 -0
- package/dist/hub-demo/frame/frame.css +770 -0
- package/dist/hub-demo/frame/input.demo.js +1 -0
- package/dist/hub-demo/preview/components/button.demo.tsx +47 -0
- package/dist/hub-demo/preview/components/button.tsx +31 -0
- package/dist/hub-demo/preview/components/card.demo.tsx +26 -0
- package/dist/hub-demo/preview/components/card.tsx +20 -0
- package/dist/hub-demo/preview/components/input.demo.tsx +39 -0
- package/dist/hub-demo/preview/components/input.tsx +19 -0
- package/dist/hub-demo/preview/components/utils.ts +5 -0
- package/dist/hub-demo/preview/system.css +161 -0
- package/dist/hub-demo/public/data/demo-app.usage.bedd9c82fe.json +1 -0
- package/dist/hub-demo/public/data/demo.catalog.a605de2281.json +1 -0
- package/dist/hub-demo/public/data/gaps.129a93538d.json +1 -0
- package/dist/hub-demo/public/data/inventory.165a4f6408.json +1 -0
- package/dist/hub-demo/public/data/inventory.console.badge.ad0238784e.json +1 -0
- package/dist/hub-demo/public/data/inventory.console.button.3249daff35.json +1 -0
- package/dist/hub-demo/public/data/inventory.console.card.9ea88708ac.json +1 -0
- package/dist/hub-demo/public/data/inventory.console.dialog.8b6574d93a.json +1 -0
- package/dist/hub-demo/public/data/inventory.console.input.bdffb756a7.json +1 -0
- package/dist/hub-demo/public/data/inventory.console.link-as-button.1ce7faa1f3.json +1 -0
- package/dist/hub-demo/public/data/inventory.console.tabs.813e694c44.json +1 -0
- package/dist/hub-demo/public/data/inventory.extras.e5d06c6ff4.json +1 -0
- package/dist/hub-demo/public/data/inventory.site.badge.047a68f644.json +1 -0
- package/dist/hub-demo/public/data/inventory.site.button.720938384e.json +1 -0
- package/dist/hub-demo/public/data/inventory.site.card.d8df5f6873.json +1 -0
- package/dist/hub-demo/public/data/inventory.site.link-as-button.9c1f8a55bf.json +1 -0
- package/dist/hub-demo/public/data/inventory.site.tabs.59bd0200b9.json +1 -0
- package/dist/hub-demo/public/data/manifest.json +39 -0
- package/dist/hub-demo/public/data/specimens.console.dark.046471907d.css +786 -0
- package/dist/hub-demo/public/data/specimens.console.light.aaffa2d213.css +786 -0
- package/dist/hub-demo/public/data/specimens.site.dark.94a6706908.css +92 -0
- package/dist/hub-demo/public/data/specimens.site.light.3ddbc8d28d.css +92 -0
- package/dist/hub-demo/public/previews/button.dark.webp +0 -0
- package/dist/hub-demo/public/previews/button.light.webp +0 -0
- package/dist/hub-demo/public/previews/card.dark.webp +0 -0
- package/dist/hub-demo/public/previews/card.light.webp +0 -0
- package/dist/hub-demo/public/previews/input.dark.webp +0 -0
- package/dist/hub-demo/public/previews/input.light.webp +0 -0
- package/dist/hub-previews.js +173 -0
- package/dist/hub-server.js +6329 -0
- package/dist/hub-snapshot.js +573 -0
- package/dist/schema/youi.gaps.schema.json +235 -0
- package/dist/tailwind-worker.js +3 -3
- package/dist/youi.js +10 -8
- package/dist/youiyoux.js +10 -8
- package/package.json +4 -4
- package/dist/chunks/chunk-L5BV4PI7.js +0 -22159
package/README.md
CHANGED
|
@@ -27,6 +27,16 @@ npx youiyoux hooks install # check after each Claude Code edit, and at git co
|
|
|
27
27
|
- `npx youiyoux check --diff`: after UI edits, what the change adds, each with its fix.
|
|
28
28
|
- `ui_render` (MCP) or `npx youiyoux render <file>`: screenshots light and dark, accessibility issues, a diff against base.
|
|
29
29
|
|
|
30
|
+
## The hub, screens and requests
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
npx youiyoux ui --project . # the hub: your system, where it is used, your screens
|
|
34
|
+
npx youiyoux screens login --base http://localhost:3000 # once, if the app needs a sign-in
|
|
35
|
+
npx youiyoux screens capture --base http://localhost:3000 # photograph the routes in .youi/screens/screens.json
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
On the hub's Screens page, pick any component on a screenshot and leave a comment or a change request. Your agent reads it (`requests_list`), makes the change, captures the screen again (`screens_capture`) and marks it addressed; you compare before and after and close it.
|
|
39
|
+
|
|
30
40
|
## Privacy
|
|
31
41
|
|
|
32
42
|
Runs locally; nothing is uploaded, no telemetry. The report includes relative paths, component names, class lists, counts and rendered images when available. No source lines unless `--include-code`; home paths, usernames, env values and credentials are stripped. Rendered looks need a headless Chromium (`--render` offers to download it, ~100 MB, once); specimen images are cached in `~/.cache/youiyoux/specimens`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createRequire as __youiRequire } from "node:module"; const require = __youiRequire(import.meta.url);
|
|
1
|
+
import { createRequire as __youiRequire } from "node:module"; import { dirname as __youiDir } from "node:path"; import { fileURLToPath as __youiPath } from "node:url"; const require = __youiRequire(import.meta.url); const __youiDirname = __youiDir(__youiPath(import.meta.url));
|
|
2
2
|
|
|
3
3
|
// ../scanner/src/specimens/contain.ts
|
|
4
4
|
import { lstatSync, readdirSync, realpathSync } from "node:fs";
|
|
@@ -34,7 +34,6 @@ function packageUnderRoot(root, specifier) {
|
|
|
34
34
|
}
|
|
35
35
|
return realOf(entry);
|
|
36
36
|
}
|
|
37
|
-
var isBarePackageUnderRoot = (root, specifier) => packageUnderRoot(root, specifier) !== null;
|
|
38
37
|
var inPackage = (path) => realOf(path).split(sep).includes("node_modules");
|
|
39
38
|
function relativeInside(root, path) {
|
|
40
39
|
if (isAbsolute(path) || /^[a-z]:[\\/]/i.test(path)) return { refused: `${path} is an absolute path` };
|
|
@@ -79,7 +78,6 @@ export {
|
|
|
79
78
|
within,
|
|
80
79
|
packageName,
|
|
81
80
|
packageUnderRoot,
|
|
82
|
-
isBarePackageUnderRoot,
|
|
83
81
|
inPackage,
|
|
84
82
|
relativeInside,
|
|
85
83
|
escapingLinks,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { createRequire as __youiRequire } from "node:module"; const require = __youiRequire(import.meta.url);
|
|
1
|
+
import { createRequire as __youiRequire } from "node:module"; import { dirname as __youiDir } from "node:path"; import { fileURLToPath as __youiPath } from "node:url"; const require = __youiRequire(import.meta.url); const __youiDirname = __youiDir(__youiPath(import.meta.url));
|
|
2
2
|
import {
|
|
3
3
|
DetectReport,
|
|
4
4
|
findFiles,
|
|
5
5
|
require_dist,
|
|
6
6
|
writeFileAtomic
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-NYDJYMID.js";
|
|
8
8
|
import {
|
|
9
9
|
__toESM
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WNTS7ZO4.js";
|
|
11
11
|
|
|
12
12
|
// ../detect/src/fingerprints.ts
|
|
13
13
|
var byClass = (rules) => Object.entries(rules).map(([type, selector]) => ({ type, selector }));
|
|
@@ -947,7 +947,7 @@ function buildReport(input) {
|
|
|
947
947
|
const libraries = scoreLibraries(input.signals, pagesOf);
|
|
948
948
|
return DetectReport.parse({
|
|
949
949
|
schema: "youi.detect/v1",
|
|
950
|
-
generatedAt: (
|
|
950
|
+
generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
951
951
|
detector: DETECTOR,
|
|
952
952
|
target: { kind: input.kind, inputs: [...input.inputs], name: input.name },
|
|
953
953
|
pages: [...input.pages ?? []],
|
|
@@ -959,9 +959,9 @@ function buildReport(input) {
|
|
|
959
959
|
notes: [...new Set(input.notes ?? [])]
|
|
960
960
|
});
|
|
961
961
|
}
|
|
962
|
-
async function repoReport(root
|
|
962
|
+
async function repoReport(root) {
|
|
963
963
|
const scan = await detectRepo(root);
|
|
964
|
-
return buildReport({ kind: "repo", inputs: [root], name: scan.name, coverage: scan.coverage, signals: scan.signals, hits: scan.hits, unused: scan.unused, fonts: scan.fonts, notes: scan.notes
|
|
964
|
+
return buildReport({ kind: "repo", inputs: [root], name: scan.name, coverage: scan.coverage, signals: scan.signals, hits: scan.hits, unused: scan.unused, fonts: scan.fonts, notes: scan.notes });
|
|
965
965
|
}
|
|
966
966
|
async function writeReport(report, out) {
|
|
967
967
|
const file = join3(out, REPORT_FILE);
|
|
@@ -1041,6 +1041,7 @@ function siteSignals(facts) {
|
|
|
1041
1041
|
var DOWNLOAD_NOTICE = "youiyoux detect: downloading Chromium headless shell (~100 MB, once)";
|
|
1042
1042
|
var SCREENSHOT_DIR = "screenshots";
|
|
1043
1043
|
var TRIGGER_ATTR = "data-youi-trigger";
|
|
1044
|
+
var MAX_TRIGGERS = 8;
|
|
1044
1045
|
var BrowserMissingError = class extends Error {
|
|
1045
1046
|
name = "BrowserMissingError";
|
|
1046
1047
|
};
|
|
@@ -1122,7 +1123,7 @@ async function crawl(page, url, n, options) {
|
|
|
1122
1123
|
let exposed = 0;
|
|
1123
1124
|
if (options.expose) {
|
|
1124
1125
|
const loaded = page.url();
|
|
1125
|
-
const triggers = await page.evaluate(`(${TRIGGERS_SOURCE})(${JSON.stringify({ attr: TRIGGER_ATTR, limit:
|
|
1126
|
+
const triggers = await page.evaluate(`(${TRIGGERS_SOURCE})(${JSON.stringify({ attr: TRIGGER_ATTR, limit: MAX_TRIGGERS })})`);
|
|
1126
1127
|
for (const [i] of triggers.entries()) {
|
|
1127
1128
|
try {
|
|
1128
1129
|
await page.locator(`[${TRIGGER_ATTR}="${i}"]`).first().click({ timeout: 2e3 });
|
|
@@ -1159,7 +1160,7 @@ async function siteReport(urls, options) {
|
|
|
1159
1160
|
const browser = await launchBrowser(options.executablePath);
|
|
1160
1161
|
const runs = [];
|
|
1161
1162
|
try {
|
|
1162
|
-
const context = await browser.newContext({ viewport:
|
|
1163
|
+
const context = await browser.newContext({ viewport: { width: 1280, height: 800 }, deviceScaleFactor: 1, colorScheme: "light", reducedMotion: "reduce" });
|
|
1163
1164
|
for (const [i, url] of urls.entries()) {
|
|
1164
1165
|
const page = await context.newPage();
|
|
1165
1166
|
runs.push(await crawl(page, url, i + 1, options));
|
|
@@ -1194,8 +1195,7 @@ async function siteReport(urls, options) {
|
|
|
1194
1195
|
signals,
|
|
1195
1196
|
hits,
|
|
1196
1197
|
fonts: [...fonts].map(([family, usedBy]) => ({ family, usedBy: [...usedBy] })),
|
|
1197
|
-
notes
|
|
1198
|
-
...options.now ? { now: options.now } : {}
|
|
1198
|
+
notes
|
|
1199
1199
|
});
|
|
1200
1200
|
const kept = new Set(report.elements.flatMap((e) => e.screenshot ? [e.screenshot.split("/").at(-1)] : []));
|
|
1201
1201
|
for (const name of await readdir(join4(options.out, SCREENSHOT_DIR))) if (!kept.has(name)) await rm(join4(options.out, SCREENSHOT_DIR, name), { force: true });
|