dembrandt 0.20.1 → 0.23.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 +82 -38
- package/dist/index.js +30 -8
- package/dist/index.js.map +1 -1
- package/dist/lib/ci-annotations.d.ts +35 -0
- package/dist/lib/ci-annotations.js +78 -0
- package/dist/lib/ci-annotations.js.map +1 -0
- package/dist/lib/compare.js +13 -1
- package/dist/lib/compare.js.map +1 -1
- package/dist/lib/extractors/color-heuristics.d.ts +72 -0
- package/dist/lib/extractors/color-heuristics.js +133 -0
- package/dist/lib/extractors/color-heuristics.js.map +1 -0
- package/dist/lib/extractors/colors.js +198 -34
- package/dist/lib/extractors/colors.js.map +1 -1
- package/dist/lib/extractors/index.d.ts +1 -1
- package/dist/lib/extractors/index.js +211 -1
- package/dist/lib/extractors/index.js.map +1 -1
- package/dist/lib/extractors/logo-heuristics.d.ts +56 -0
- package/dist/lib/extractors/logo-heuristics.js +160 -0
- package/dist/lib/extractors/logo-heuristics.js.map +1 -0
- package/dist/lib/extractors/logo.js +213 -44
- package/dist/lib/extractors/logo.js.map +1 -1
- package/dist/lib/extractors/menu-triggers.d.ts +24 -0
- package/dist/lib/extractors/menu-triggers.js +41 -0
- package/dist/lib/extractors/menu-triggers.js.map +1 -0
- package/dist/lib/extractors/typography.d.ts +1 -0
- package/dist/lib/extractors/typography.js +75 -0
- package/dist/lib/extractors/typography.js.map +1 -1
- package/dist/lib/formatters/terminal.js +5 -2
- package/dist/lib/formatters/terminal.js.map +1 -1
- package/dist/lib/merger.js +40 -1
- package/dist/lib/merger.js.map +1 -1
- package/dist/lib/types.d.ts +6 -0
- package/dist/lib/version.d.ts +7 -1
- package/dist/lib/version.js +7 -1
- package/dist/lib/version.js.map +1 -1
- package/dist/mcp-server.js +36 -11
- package/dist/mcp-server.js.map +1 -1
- package/dist/package.json +13 -1
- package/dist/test/ci-annotations.test.d.ts +1 -0
- package/dist/test/ci-annotations.test.js +54 -0
- package/dist/test/ci-annotations.test.js.map +1 -0
- package/dist/test/cli.test.js +6 -0
- package/dist/test/cli.test.js.map +1 -1
- package/dist/test/color-heuristics.test.d.ts +1 -0
- package/dist/test/color-heuristics.test.js +82 -0
- package/dist/test/color-heuristics.test.js.map +1 -0
- package/dist/test/colors-fixture.test.d.ts +1 -0
- package/dist/test/colors-fixture.test.js +124 -0
- package/dist/test/colors-fixture.test.js.map +1 -0
- package/dist/test/compare.test.js +14 -0
- package/dist/test/compare.test.js.map +1 -1
- package/dist/test/logo-heuristics.test.d.ts +1 -0
- package/dist/test/logo-heuristics.test.js +191 -0
- package/dist/test/logo-heuristics.test.js.map +1 -0
- package/dist/test/menu-triggers.test.d.ts +1 -0
- package/dist/test/menu-triggers.test.js +33 -0
- package/dist/test/menu-triggers.test.js.map +1 -0
- package/dist/test/merger.test.js +40 -0
- package/dist/test/merger.test.js.map +1 -1
- package/dist/test/typography.test.js +27 -1
- package/dist/test/typography.test.js.map +1 -1
- package/package.json +13 -1
package/README.md
CHANGED
|
@@ -14,16 +14,16 @@ Extract a website's design system into design tokens in a few seconds: logo, col
|
|
|
14
14
|
Install globally: `npm install -g dembrandt`
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
dembrandt
|
|
17
|
+
dembrandt dembrandt.com
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
Or use npx without installing: `npx dembrandt
|
|
20
|
+
Or use npx without installing: `npx dembrandt dembrandt.com`
|
|
21
21
|
|
|
22
22
|
Requires Node.js 18+
|
|
23
23
|
|
|
24
24
|
## AI Agent Integration (MCP)
|
|
25
25
|
|
|
26
|
-
Use Dembrandt as a tool in Claude Code, Cursor, Windsurf, or any MCP-compatible client. Ask your agent to "extract the color palette from
|
|
26
|
+
Use Dembrandt as a tool in Claude Code, Cursor, Windsurf, or any MCP-compatible client. Ask your agent to "extract the color palette from dembrandt.com" and it calls Dembrandt automatically.
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
29
|
claude mcp add --transport stdio dembrandt -- npx -y --package dembrandt dembrandt-mcp
|
|
@@ -42,7 +42,7 @@ Or add to your project's `.mcp.json`:
|
|
|
42
42
|
}
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
Available tools include `get_design_tokens`, `get_color_palette`, `get_typography`, `get_component_styles`, `get_surfaces`, `get_spacing`, and `get_brand_identity`, plus
|
|
45
|
+
Available tools include `get_design_tokens`, `get_color_palette`, `get_typography`, `get_component_styles`, `get_surfaces`, `get_spacing`, and `get_brand_identity`, plus pure analysis tools (`compute_drift`, `get_findings`, `export_dtcg`, `generate_design_md`, `render_report`) and job-control tools. Extraction tools accept `mobile`, `cookie` (for authenticated pages), and `wcag` options.
|
|
46
46
|
|
|
47
47
|
Pair with **[dembrandt-skills](https://github.com/dembrandt/dembrandt-skills)** to give your agent UX intelligence on top of extracted tokens — hierarchy, accessibility, interaction states, and a full 6-stage design pipeline orchestrator.
|
|
48
48
|
|
|
@@ -82,44 +82,47 @@ Load extractions, track token drift, and compare snapshots. **[dembrandt.com/app
|
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
84
|
dembrandt <url> # Basic extraction (terminal display only)
|
|
85
|
-
dembrandt
|
|
86
|
-
dembrandt
|
|
87
|
-
dembrandt
|
|
88
|
-
dembrandt
|
|
89
|
-
dembrandt
|
|
90
|
-
dembrandt
|
|
91
|
-
dembrandt
|
|
92
|
-
dembrandt
|
|
93
|
-
dembrandt
|
|
94
|
-
dembrandt
|
|
95
|
-
dembrandt
|
|
96
|
-
dembrandt
|
|
97
|
-
dembrandt
|
|
98
|
-
dembrandt
|
|
99
|
-
|
|
100
|
-
dembrandt
|
|
101
|
-
dembrandt
|
|
102
|
-
dembrandt
|
|
103
|
-
dembrandt
|
|
104
|
-
dembrandt
|
|
105
|
-
dembrandt
|
|
85
|
+
dembrandt dembrandt.com --json-only # Output raw JSON to terminal (no formatted display, no file save)
|
|
86
|
+
dembrandt dembrandt.com --save-output # Save JSON to output/dembrandt.com/YYYY-MM-DDTHH-MM-SS.json
|
|
87
|
+
dembrandt dembrandt.com --dtcg # Export in W3C Design Tokens (DTCG) format (auto-saves as .tokens.json)
|
|
88
|
+
dembrandt dembrandt.com --dark-mode # Extract colors from dark mode variant
|
|
89
|
+
dembrandt dembrandt.com --mobile # Use mobile viewport (390x844) for responsive analysis
|
|
90
|
+
dembrandt dembrandt.com --slow # 3x longer timeouts (24s hydration) for JavaScript-heavy sites
|
|
91
|
+
dembrandt dembrandt.com --brand-guide # Generate a brand guide PDF
|
|
92
|
+
dembrandt dembrandt.com --design-md # Generate a DESIGN.md file for AI agents
|
|
93
|
+
dembrandt dembrandt.com /pricing /docs # Extract specific paths and merge results into one output
|
|
94
|
+
dembrandt dembrandt.com --crawl 5 # Analyze 5 pages (homepage + 4 discovered pages), merges results
|
|
95
|
+
dembrandt dembrandt.com --sitemap # Discover pages from sitemap.xml instead of DOM links
|
|
96
|
+
dembrandt dembrandt.com --crawl 10 --sitemap # Combine: up to 10 pages discovered via sitemap
|
|
97
|
+
dembrandt dembrandt.com --no-sandbox # Disable Chromium sandbox (required for Docker/CI)
|
|
98
|
+
dembrandt dembrandt.com --key dmb_··· # Push snapshot to your Dembrandt account; auto-scored against the previous snapshot for that domain
|
|
99
|
+
# DEMBRANDT_API_URL env var overrides the upload endpoint (default: https://www.dembrandt.com)
|
|
100
|
+
dembrandt dembrandt.com --browser=firefox # Use Firefox instead of Chromium (better for Cloudflare bypass)
|
|
101
|
+
dembrandt dembrandt.com --wcag # WCAG 2.1 contrast analysis — real DOM pairs, AA/AAA grades
|
|
102
|
+
dembrandt dembrandt.com --stealth # Opt-in anti-detection: navigator spoofing + human mouse simulation (use only when authorized)
|
|
103
|
+
dembrandt dembrandt.com --locale fi-FI --timezone Europe/Helsinki # Browser fingerprint: locale and timezone
|
|
104
|
+
dembrandt dembrandt.com --user-agent "Mozilla/5.0 ..." # Custom user agent string
|
|
105
|
+
dembrandt dembrandt.com --accept-language "fi,en;q=0.9" # Custom Accept-Language header
|
|
106
|
+
dembrandt dembrandt.com --screen-size 2560x1440 # Physical screen resolution to report
|
|
106
107
|
```
|
|
107
108
|
|
|
108
109
|
Default: formatted terminal display only. Use `--save-output` to persist results as JSON files. Browser automatically retries in visible mode if headless extraction fails.
|
|
109
110
|
|
|
111
|
+
All flags combine unless noted otherwise: see [docs/FLAGS.md](docs/FLAGS.md) for the flag compatibility tables (interactions, ignored combinations, multi-page propagation).
|
|
112
|
+
|
|
110
113
|
### Multi-Page Extraction
|
|
111
114
|
|
|
112
115
|
Analyze multiple pages to get a more complete picture of a site's design system. Results are merged into a single unified output with cross-page confidence boosting: tokens appearing on multiple pages get higher confidence scores.
|
|
113
116
|
|
|
114
117
|
```bash
|
|
115
118
|
# Analyze homepage + 4 auto-discovered pages (default: 5 total)
|
|
116
|
-
dembrandt
|
|
119
|
+
dembrandt dembrandt.com --crawl 5
|
|
117
120
|
|
|
118
121
|
# Use sitemap.xml for page discovery instead of DOM link scraping
|
|
119
|
-
dembrandt
|
|
122
|
+
dembrandt dembrandt.com --sitemap
|
|
120
123
|
|
|
121
124
|
# Combine both: up to 10 pages from sitemap
|
|
122
|
-
dembrandt
|
|
125
|
+
dembrandt dembrandt.com --crawl 10 --sitemap
|
|
123
126
|
```
|
|
124
127
|
|
|
125
128
|
**Page discovery** works two ways:
|
|
@@ -134,10 +137,10 @@ By default, dembrandt uses Chromium. If you encounter bot detection or timeouts
|
|
|
134
137
|
|
|
135
138
|
```bash
|
|
136
139
|
# Use Firefox instead of Chromium
|
|
137
|
-
dembrandt
|
|
140
|
+
dembrandt dembrandt.com --browser=firefox
|
|
138
141
|
|
|
139
142
|
# Combine with other flags
|
|
140
|
-
dembrandt
|
|
143
|
+
dembrandt dembrandt.com --browser=firefox --save-output --dtcg
|
|
141
144
|
```
|
|
142
145
|
|
|
143
146
|
**When to use Firefox:**
|
|
@@ -167,7 +170,7 @@ Run this from your home directory (outside any Node.js project) so `require` res
|
|
|
167
170
|
Skip the bundled browser entirely and drive an already-running Chromium over the DevTools Protocol. Useful in CI or containers where a browser is already up, and it needs no local browser download at all:
|
|
168
171
|
|
|
169
172
|
```bash
|
|
170
|
-
BROWSER_CDP_ENDPOINT=http://localhost:9222 dembrandt
|
|
173
|
+
BROWSER_CDP_ENDPOINT=http://localhost:9222 dembrandt dembrandt.com --browser chromium
|
|
171
174
|
```
|
|
172
175
|
|
|
173
176
|
CDP is supported only with `--browser chromium`.
|
|
@@ -177,8 +180,8 @@ CDP is supported only with `--browser chromium`.
|
|
|
177
180
|
Use `--dtcg` to export in the standardized [W3C Design Tokens Community Group](https://www.designtokens.org/) format:
|
|
178
181
|
|
|
179
182
|
```bash
|
|
180
|
-
dembrandt
|
|
181
|
-
# Saves to: output/
|
|
183
|
+
dembrandt dembrandt.com --dtcg
|
|
184
|
+
# Saves to: output/dembrandt.com/TIMESTAMP.tokens.json
|
|
182
185
|
```
|
|
183
186
|
|
|
184
187
|
The DTCG format is an industry-standard JSON schema that can be consumed by design tools and token transformation libraries like [Style Dictionary](https://styledictionary.com).
|
|
@@ -188,8 +191,8 @@ The DTCG format is an industry-standard JSON schema that can be consumed by desi
|
|
|
188
191
|
Use `--design-md` to generate a [DESIGN.md](https://stitch.withgoogle.com/docs/design-md) file, a plain-text design system document readable by AI agents. The export follows Google's DESIGN.md draft format: YAML design tokens in front matter plus ordered Markdown guidance sections.
|
|
189
192
|
|
|
190
193
|
```bash
|
|
191
|
-
dembrandt
|
|
192
|
-
# Saves to: output/
|
|
194
|
+
dembrandt dembrandt.com --design-md
|
|
195
|
+
# Saves to: output/dembrandt.com/DESIGN.md
|
|
193
196
|
```
|
|
194
197
|
|
|
195
198
|
DESIGN.md reports only what Dembrandt observed on the source site. Exact values (colors, typography, spacing, radii, shadows) live in the YAML front matter when available, and the Markdown body adds human-readable context. Sections with no extracted evidence are omitted rather than filled with invented defaults. For example, the elevation section is dropped when the site uses no box-shadow tokens.
|
|
@@ -225,7 +228,7 @@ Motion data is included in JSON output as `motion` and printed in terminal under
|
|
|
225
228
|
### ML-powered brand color detection (experimental)
|
|
226
229
|
|
|
227
230
|
```bash
|
|
228
|
-
dembrandt
|
|
231
|
+
dembrandt dembrandt.com --ai
|
|
229
232
|
# ⚡ ML primary → #533afd (score 0.93 · 68% acc)
|
|
230
233
|
```
|
|
231
234
|
|
|
@@ -236,12 +239,53 @@ Replaces the heuristic with a trained model — 2× more accurate (68% vs 32%).
|
|
|
236
239
|
Use `--brand-guide` to generate a printable PDF summarizing the extracted design system: colors, typography, components, and logo on a single document.
|
|
237
240
|
|
|
238
241
|
```bash
|
|
239
|
-
dembrandt
|
|
240
|
-
# Saves to: output/
|
|
242
|
+
dembrandt dembrandt.com --brand-guide
|
|
243
|
+
# Saves to: output/dembrandt.com/TIMESTAMP.brand-guide.pdf
|
|
241
244
|
```
|
|
242
245
|
|
|
243
246
|
## Continuous integration
|
|
244
247
|
|
|
248
|
+
### GitHub Action
|
|
249
|
+
|
|
250
|
+
The official action wraps extract → compare → gate into one step: it installs a matching Chromium, runs a pinned CLI version, fails the job on drift, and renders the drifted tokens as inline annotations on the PR.
|
|
251
|
+
|
|
252
|
+
```yaml
|
|
253
|
+
- uses: dembrandt/dembrandt@v1
|
|
254
|
+
with:
|
|
255
|
+
url: https://preview.example.com
|
|
256
|
+
baseline: .dembrandt/baseline.json
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Gating a Vercel preview needs no extra wiring — trigger on the deployment event and pass its URL:
|
|
260
|
+
|
|
261
|
+
```yaml
|
|
262
|
+
on:
|
|
263
|
+
deployment_status:
|
|
264
|
+
|
|
265
|
+
jobs:
|
|
266
|
+
drift:
|
|
267
|
+
if: github.event.deployment_status.state == 'success'
|
|
268
|
+
runs-on: ubuntu-latest
|
|
269
|
+
steps:
|
|
270
|
+
- uses: actions/checkout@v4
|
|
271
|
+
- uses: dembrandt/dembrandt@v1
|
|
272
|
+
with:
|
|
273
|
+
url: ${{ github.event.deployment_status.environment_url }}
|
|
274
|
+
baseline: .dembrandt/baseline.json
|
|
275
|
+
key: ${{ secrets.DEMBRANDT_KEY }}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
| Input | Required | Description |
|
|
279
|
+
|---|---|---|
|
|
280
|
+
| `url` | yes | URL to extract — typically the PR's preview deployment |
|
|
281
|
+
| `baseline` | no | Committed baseline JSON path, or an App baseline id. Omit to extract without gating |
|
|
282
|
+
| `key` | no | API key for cloud snapshot sync ([dembrandt.com/app/api-keys](https://www.dembrandt.com/app/api-keys)) |
|
|
283
|
+
| `args` | no | Extra CLI flags, e.g. `--wcag` or `--pages 3` |
|
|
284
|
+
|
|
285
|
+
Outputs: `report` (path to the drift/extraction JSON) and `score` (drift score, empty without a baseline). The action pins the CLI version per release, so a `@v1` gate never changes behavior under you. For a fully hand-rolled workflow (per-page PR comment, preview vs production, report artifact), see [`examples/drift-gate.yml`](examples/drift-gate.yml).
|
|
286
|
+
|
|
287
|
+
### Running the CLI directly
|
|
288
|
+
|
|
245
289
|
Dembrandt drives a real browser, so the browser revision must match `playwright-core`.
|
|
246
290
|
|
|
247
291
|
If you are not using the Playwright container image, install the browser revision that matches `playwright-core`:
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { generatePDF } from "./lib/formatters/pdf.js";
|
|
|
17
17
|
import { generateDesignMd } from "./lib/formatters/markdown.js";
|
|
18
18
|
import { generateHtmlReport } from "./lib/formatters/html.js";
|
|
19
19
|
import { resolveCompare } from "./lib/compare.js";
|
|
20
|
+
import { emitDriftAnnotations } from "./lib/ci-annotations.js";
|
|
20
21
|
import { parseSitemap } from "./lib/discovery.js";
|
|
21
22
|
import { mergeResults } from "./lib/merger.js";
|
|
22
23
|
import { writeFileSync, mkdirSync, readFileSync } from "fs";
|
|
@@ -156,6 +157,7 @@ program
|
|
|
156
157
|
verbose: !opts.jsonOnly,
|
|
157
158
|
darkMode: opts.darkMode,
|
|
158
159
|
mobile: opts.mobile,
|
|
160
|
+
reveal: !process.env.DEMBRANDT_DISABLE_REVEAL,
|
|
159
161
|
slow: opts.slow,
|
|
160
162
|
screenshotPath: opts.screenshot,
|
|
161
163
|
discoverLinks: isAutoCrawl ? crawlN - 1 : null,
|
|
@@ -219,8 +221,14 @@ program
|
|
|
219
221
|
verbose: !opts.jsonOnly,
|
|
220
222
|
darkMode: opts.darkMode,
|
|
221
223
|
mobile: opts.mobile,
|
|
224
|
+
reveal: !process.env.DEMBRANDT_DISABLE_REVEAL,
|
|
222
225
|
slow: opts.slow,
|
|
223
226
|
stealth: opts.stealth,
|
|
227
|
+
cookie: opts.cookie,
|
|
228
|
+
header: opts.header,
|
|
229
|
+
screenSize: opts.screenSize,
|
|
230
|
+
wcag: opts.wcag,
|
|
231
|
+
includeRawColors: opts.rawColors,
|
|
224
232
|
userAgent: opts.userAgent,
|
|
225
233
|
locale: opts.locale,
|
|
226
234
|
timezoneId: opts.timezone,
|
|
@@ -317,14 +325,18 @@ program
|
|
|
317
325
|
// Save to current working directory, not installation directory
|
|
318
326
|
const outputDir = join(process.cwd(), "output", domain);
|
|
319
327
|
mkdirSync(outputDir, { recursive: true });
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
: '
|
|
327
|
-
|
|
328
|
+
// The two flags are orthogonal: --save-output writes the raw
|
|
329
|
+
// extraction, --dtcg writes the tokens file. Both flags = both files.
|
|
330
|
+
const saves = [];
|
|
331
|
+
if (opts.saveOutput)
|
|
332
|
+
saves.push({ data: result, suffix: '', label: 'JSON saved (--save-output)' });
|
|
333
|
+
if (opts.dtcg)
|
|
334
|
+
saves.push({ data: outputData, suffix: '.tokens', label: 'DTCG tokens saved (--dtcg)' });
|
|
335
|
+
for (const { data, suffix, label } of saves) {
|
|
336
|
+
const filename = `${timestamp}_v${version}${suffix}.json`;
|
|
337
|
+
writeFileSync(join(outputDir, filename), JSON.stringify(data, null, 2));
|
|
338
|
+
savedNotices.push(chalk.dim(`💾 ${label}: ${color.info(`output/${domain}/${filename}`)}`));
|
|
339
|
+
}
|
|
328
340
|
}
|
|
329
341
|
catch (err) {
|
|
330
342
|
console.log(color.warning(`! Could not save JSON file: ${err.message}`));
|
|
@@ -403,9 +415,19 @@ program
|
|
|
403
415
|
// CI gate: drift fails the run, but the report still writes first.
|
|
404
416
|
process.exitCode = EXIT.DRIFT;
|
|
405
417
|
}
|
|
418
|
+
// Under GitHub Actions, surface a failing drift gate inline on the PR
|
|
419
|
+
// via workflow-command annotations (DEM-83). No-op locally. Gated on
|
|
420
|
+
// the gate actually failing, so an --approve'd local baseline (which
|
|
421
|
+
// passes despite a drift report) emits nothing.
|
|
422
|
+
if (process.exitCode === EXIT.DRIFT)
|
|
423
|
+
emitDriftAnnotations(report);
|
|
406
424
|
}
|
|
407
425
|
catch (err) {
|
|
426
|
+
// A gate that cannot evaluate its baseline must not pass: exit RUNTIME
|
|
427
|
+
// ("check broke, investigate") so CI distinguishes this from stable (0)
|
|
428
|
+
// and from real drift (1). See lib/exit-codes.ts.
|
|
408
429
|
console.log(color.warning(`! Could not compare against baseline: ${err.message}`));
|
|
430
|
+
process.exitCode = EXIT.RUNTIME;
|
|
409
431
|
}
|
|
410
432
|
}
|
|
411
433
|
// Generate self-contained HTML report
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Actions workflow-command annotations for the drift gate (DEM-83).
|
|
3
|
+
*
|
|
4
|
+
* When `dembrandt --compare` runs inside GitHub Actions and detects drift, emit
|
|
5
|
+
* `::error::`/`::warning::` workflow commands so the failure renders inline on
|
|
6
|
+
* the PR's Checks tab instead of being buried in log text. The status check
|
|
7
|
+
* (pass/fail) is already carried by the process exit code (EXIT.DRIFT), so this
|
|
8
|
+
* module only adds the inline annotations.
|
|
9
|
+
*
|
|
10
|
+
* Severity maps from the drift change kind: a baseline token that drifted
|
|
11
|
+
* (`changed`) or vanished (`removed`) is a violation against the brand baseline
|
|
12
|
+
* -> error; a token that newly appeared (`added`) is review-worthy but not
|
|
13
|
+
* itself a breach -> warning. This mirrors the example in the ticket ("color is
|
|
14
|
+
* off-palette" -> error, "new colours appeared" -> warning).
|
|
15
|
+
*
|
|
16
|
+
* Not yet wired: `file=`/`line=` source locations (needs the drift source-scan,
|
|
17
|
+
* DEM-33) and assertion-driven severity (DEM-81). Both become extra inputs here
|
|
18
|
+
* without changing the command syntax below.
|
|
19
|
+
*/
|
|
20
|
+
import type { DriftReport } from "./drift.js";
|
|
21
|
+
/** GitHub Actions sets GITHUB_ACTIONS=true on every step. Only there do workflow
|
|
22
|
+
* commands render; emitting them anywhere else is noise. */
|
|
23
|
+
export declare function isGitHubActions(env?: NodeJS.ProcessEnv): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Build the workflow-command lines for a failing drift report. Pure: returns the
|
|
26
|
+
* lines; the caller prints them to stdout (workflow commands are read from
|
|
27
|
+
* stdout). Returns an empty array for a stable report.
|
|
28
|
+
*/
|
|
29
|
+
export declare function driftAnnotations(report: DriftReport): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Emit drift annotations to stdout when running under GitHub Actions. No-op
|
|
32
|
+
* otherwise (plain CLI output already covers local runs). `log`/`env` are
|
|
33
|
+
* injectable for tests.
|
|
34
|
+
*/
|
|
35
|
+
export declare function emitDriftAnnotations(report: DriftReport, log?: (line: string) => void, env?: NodeJS.ProcessEnv): void;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Actions workflow-command annotations for the drift gate (DEM-83).
|
|
3
|
+
*
|
|
4
|
+
* When `dembrandt --compare` runs inside GitHub Actions and detects drift, emit
|
|
5
|
+
* `::error::`/`::warning::` workflow commands so the failure renders inline on
|
|
6
|
+
* the PR's Checks tab instead of being buried in log text. The status check
|
|
7
|
+
* (pass/fail) is already carried by the process exit code (EXIT.DRIFT), so this
|
|
8
|
+
* module only adds the inline annotations.
|
|
9
|
+
*
|
|
10
|
+
* Severity maps from the drift change kind: a baseline token that drifted
|
|
11
|
+
* (`changed`) or vanished (`removed`) is a violation against the brand baseline
|
|
12
|
+
* -> error; a token that newly appeared (`added`) is review-worthy but not
|
|
13
|
+
* itself a breach -> warning. This mirrors the example in the ticket ("color is
|
|
14
|
+
* off-palette" -> error, "new colours appeared" -> warning).
|
|
15
|
+
*
|
|
16
|
+
* Not yet wired: `file=`/`line=` source locations (needs the drift source-scan,
|
|
17
|
+
* DEM-33) and assertion-driven severity (DEM-81). Both become extra inputs here
|
|
18
|
+
* without changing the command syntax below.
|
|
19
|
+
*/
|
|
20
|
+
/** GitHub Actions sets GITHUB_ACTIONS=true on every step. Only there do workflow
|
|
21
|
+
* commands render; emitting them anywhere else is noise. */
|
|
22
|
+
export function isGitHubActions(env = process.env) {
|
|
23
|
+
return env.GITHUB_ACTIONS === "true";
|
|
24
|
+
}
|
|
25
|
+
// Workflow-command escaping (per actions/toolkit). Message data and property
|
|
26
|
+
// values escape different character sets; applying the wrong one lets a value
|
|
27
|
+
// containing a comma or newline corrupt the command.
|
|
28
|
+
function escapeData(s) {
|
|
29
|
+
return s.replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A");
|
|
30
|
+
}
|
|
31
|
+
function escapeProperty(s) {
|
|
32
|
+
return s
|
|
33
|
+
.replace(/%/g, "%25")
|
|
34
|
+
.replace(/\r/g, "%0D")
|
|
35
|
+
.replace(/\n/g, "%0A")
|
|
36
|
+
.replace(/:/g, "%3A")
|
|
37
|
+
.replace(/,/g, "%2C");
|
|
38
|
+
}
|
|
39
|
+
function severityForKind(kind) {
|
|
40
|
+
return kind === "added" ? "warning" : "error";
|
|
41
|
+
}
|
|
42
|
+
function changeMessage(c) {
|
|
43
|
+
const move = c.before && c.after ? ` ${c.before} -> ${c.after}`
|
|
44
|
+
: c.before ? ` ${c.before} removed`
|
|
45
|
+
: c.after ? ` ${c.after} new`
|
|
46
|
+
: "";
|
|
47
|
+
const delta = typeof c.delta === "number" ? `, delta ${Math.round(c.delta * 10) / 10}` : "";
|
|
48
|
+
return `${c.label}${move} (token-drift:${c.category}${delta})`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Build the workflow-command lines for a failing drift report. Pure: returns the
|
|
52
|
+
* lines; the caller prints them to stdout (workflow commands are read from
|
|
53
|
+
* stdout). Returns an empty array for a stable report.
|
|
54
|
+
*/
|
|
55
|
+
export function driftAnnotations(report) {
|
|
56
|
+
if (report.status !== "drift")
|
|
57
|
+
return [];
|
|
58
|
+
const lines = [];
|
|
59
|
+
const title = `Design drift ${report.score} exceeds threshold ${report.threshold}`;
|
|
60
|
+
const summary = `${report.summary.changed} changed, ${report.summary.added} added, ${report.summary.removed} removed`;
|
|
61
|
+
lines.push(`::error title=${escapeProperty(title)}::${escapeData(summary)}`);
|
|
62
|
+
for (const c of report.changes) {
|
|
63
|
+
lines.push(`::${severityForKind(c.kind)}::${escapeData(changeMessage(c))}`);
|
|
64
|
+
}
|
|
65
|
+
return lines;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Emit drift annotations to stdout when running under GitHub Actions. No-op
|
|
69
|
+
* otherwise (plain CLI output already covers local runs). `log`/`env` are
|
|
70
|
+
* injectable for tests.
|
|
71
|
+
*/
|
|
72
|
+
export function emitDriftAnnotations(report, log = console.log, env = process.env) {
|
|
73
|
+
if (!isGitHubActions(env))
|
|
74
|
+
return;
|
|
75
|
+
for (const line of driftAnnotations(report))
|
|
76
|
+
log(line);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=ci-annotations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-annotations.js","sourceRoot":"","sources":["../../lib/ci-annotations.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/compare.js
CHANGED
|
@@ -17,9 +17,21 @@ export async function resolveCompare(arg, candidate, deps = {}) {
|
|
|
17
17
|
const isFile = deps.isFile ?? existsSync;
|
|
18
18
|
const readFile = deps.readFile ?? readFileSync;
|
|
19
19
|
if (isFile(arg)) {
|
|
20
|
-
|
|
20
|
+
let baseline;
|
|
21
|
+
try {
|
|
22
|
+
baseline = JSON.parse(readFile(arg, "utf-8"));
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
throw new Error(`baseline ${arg} is not a dembrandt JSON extraction ` +
|
|
26
|
+
`(${err.message}) — create one with --save-output or --json-only`, { cause: err });
|
|
27
|
+
}
|
|
21
28
|
return { report: computeDrift(baseline, candidate), source: arg, mode: "local" };
|
|
22
29
|
}
|
|
30
|
+
// A path-looking argument that is not a file is a typo, not a baseline id —
|
|
31
|
+
// shipping it to the App would surface a confusing platform error instead.
|
|
32
|
+
if (arg.includes("/") || arg.includes("\\") || /\.(json|md)$/i.test(arg)) {
|
|
33
|
+
throw new Error(`baseline file not found: ${arg}`);
|
|
34
|
+
}
|
|
23
35
|
// Not a local file → treat as a platform baseline id.
|
|
24
36
|
const fetchFn = deps.fetchFn ?? fetch;
|
|
25
37
|
const api = (deps.api ?? "https://dembrandt.com").replace(/\/$/, "");
|
package/dist/lib/compare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../lib/compare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAqB1C,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,SAAyB,EACzB,OAAoB,EAAE;IAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAK,YAAoD,CAAC;IAExF,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../lib/compare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAqB1C,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,SAAyB,EACzB,OAAoB,EAAE;IAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAK,YAAoD,CAAC;IAExF,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,IAAI,QAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAmB,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,YAAY,GAAG,sCAAsC;gBACrD,IAAK,GAAa,CAAC,OAAO,kDAAkD,EAC5E,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACnF,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,sDAAsD;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,GAAG,gBAAgB,EAAE;QAChD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;KACrD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;YACnD,IAAI,CAAC,EAAE,KAAK;gBAAE,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,MAAM,MAAM,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2B,CAAC;IAC1D,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC5E,CAAC"}
|