@buoy-design/core 0.3.38 → 0.4.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/dist/designmd/adapter.d.ts +7 -0
- package/dist/designmd/adapter.d.ts.map +1 -0
- package/dist/designmd/adapter.js +162 -0
- package/dist/designmd/adapter.js.map +1 -0
- package/dist/designmd/index.d.ts +4 -0
- package/dist/designmd/index.d.ts.map +1 -0
- package/dist/designmd/index.js +4 -0
- package/dist/designmd/index.js.map +1 -0
- package/dist/designmd/to-tokens.d.ts +13 -0
- package/dist/designmd/to-tokens.d.ts.map +1 -0
- package/dist/designmd/to-tokens.js +54 -0
- package/dist/designmd/to-tokens.js.map +1 -0
- package/dist/designmd/types.d.ts +35 -0
- package/dist/designmd/types.d.ts.map +1 -0
- package/dist/designmd/types.js +6 -0
- package/dist/designmd/types.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +11 -10
- package/LICENSE +0 -21
- package/dist/analysis/audit.d.sync-conflict-20260306-131742-6PCZ3ZU.ts +0 -141
- package/dist/analysis/audit.d.ts.sync-conflict-20260313-164724-6PCZ3ZU.map +0 -1
- package/dist/analysis/audit.js.sync-conflict-20260309-150631-6PCZ3ZU.map +0 -1
- package/dist/analysis/audit.sync-conflict-20260305-235746-6PCZ3ZU.js +0 -498
- package/dist/analysis/audit.sync-conflict-20260306-131031-6PCZ3ZU.d.ts +0 -141
- package/dist/analysis/audit.sync-conflict-20260306-131031-6PCZ3ZU.d.ts.map +0 -1
- package/dist/analysis/audit.sync-conflict-20260306-131031-6PCZ3ZU.js +0 -498
- package/dist/analysis/audit.sync-conflict-20260306-131031-6PCZ3ZU.js.map +0 -1
- package/dist/analysis/audit.test.sync-conflict-20260313-170321-6PCZ3ZU.d.ts +0 -2
- package/dist/analysis/audit.test.sync-conflict-20260313-170321-6PCZ3ZU.d.ts.map +0 -1
- package/dist/analysis/audit.test.sync-conflict-20260313-170321-6PCZ3ZU.js +0 -896
- package/dist/analysis/audit.test.sync-conflict-20260313-170321-6PCZ3ZU.js.map +0 -1
- package/dist/analysis/semantic-diff.d.ts.sync-conflict-20260305-144725-6PCZ3ZU.map +0 -1
- package/dist/analysis/semantic-diff.js.sync-conflict-20260307-172619-6PCZ3ZU.map +0 -1
- package/dist/analysis/semantic-diff.test.sync-conflict-20260313-111438-6PCZ3ZU.d.ts +0 -2
- package/dist/analysis/semantic-diff.test.sync-conflict-20260313-111438-6PCZ3ZU.d.ts.map +0 -1
- package/dist/analysis/semantic-diff.test.sync-conflict-20260313-111438-6PCZ3ZU.js +0 -766
- package/dist/analysis/semantic-diff.test.sync-conflict-20260313-111438-6PCZ3ZU.js.map +0 -1
- package/dist/graph/collectors/usages.sync-conflict-20260313-145408-6PCZ3ZU.js +0 -248
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DesignMdResult } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse and lint a DESIGN.md source string. Never throws — failures surface
|
|
4
|
+
* as findings with severity "error".
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseDesignMd(source: string): DesignMdResult;
|
|
7
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/designmd/adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,YAAY,CAAC;AAqIpB;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAkB5D"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { lint } from "@google/design.md/linter";
|
|
2
|
+
function mapToRecord(m) {
|
|
3
|
+
if (m instanceof Map)
|
|
4
|
+
return Object.fromEntries(m);
|
|
5
|
+
if (m && typeof m === "object")
|
|
6
|
+
return m;
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
function dimensionToString(v) {
|
|
10
|
+
if (typeof v === "string")
|
|
11
|
+
return v;
|
|
12
|
+
if (v && typeof v === "object") {
|
|
13
|
+
const o = v;
|
|
14
|
+
if (typeof o.value === "number" && typeof o.unit === "string") {
|
|
15
|
+
return `${o.value}${o.unit}`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
function colorsRecord(m) {
|
|
21
|
+
const rec = mapToRecord(m);
|
|
22
|
+
if (!rec)
|
|
23
|
+
return undefined;
|
|
24
|
+
const out = {};
|
|
25
|
+
for (const [k, v] of Object.entries(rec)) {
|
|
26
|
+
if (v && typeof v === "object" && typeof v.hex === "string") {
|
|
27
|
+
out[k] = v.hex;
|
|
28
|
+
}
|
|
29
|
+
else if (typeof v === "string") {
|
|
30
|
+
out[k] = v;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
function dimensionsRecord(m) {
|
|
36
|
+
const rec = mapToRecord(m);
|
|
37
|
+
if (!rec)
|
|
38
|
+
return undefined;
|
|
39
|
+
const out = {};
|
|
40
|
+
for (const [k, v] of Object.entries(rec)) {
|
|
41
|
+
const s = dimensionToString(v);
|
|
42
|
+
if (s !== undefined)
|
|
43
|
+
out[k] = s;
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
function typographyRecord(m) {
|
|
48
|
+
const rec = mapToRecord(m);
|
|
49
|
+
if (!rec)
|
|
50
|
+
return undefined;
|
|
51
|
+
const out = {};
|
|
52
|
+
for (const [k, v] of Object.entries(rec)) {
|
|
53
|
+
if (v && typeof v === "object")
|
|
54
|
+
out[k] = v;
|
|
55
|
+
}
|
|
56
|
+
return out;
|
|
57
|
+
}
|
|
58
|
+
function componentsRecord(m) {
|
|
59
|
+
const rec = mapToRecord(m);
|
|
60
|
+
if (!rec)
|
|
61
|
+
return undefined;
|
|
62
|
+
const out = {};
|
|
63
|
+
for (const [k, v] of Object.entries(rec)) {
|
|
64
|
+
const props = v?.properties;
|
|
65
|
+
const propRec = mapToRecord(props);
|
|
66
|
+
if (!propRec)
|
|
67
|
+
continue;
|
|
68
|
+
const inner = {};
|
|
69
|
+
for (const [pk, pv] of Object.entries(propRec)) {
|
|
70
|
+
if (typeof pv === "string")
|
|
71
|
+
inner[pk] = pv;
|
|
72
|
+
else {
|
|
73
|
+
const s = dimensionToString(pv);
|
|
74
|
+
if (s !== undefined)
|
|
75
|
+
inner[pk] = s;
|
|
76
|
+
else if (pv && typeof pv === "object" && typeof pv.hex === "string") {
|
|
77
|
+
inner[pk] = pv.hex;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
out[k] = inner;
|
|
82
|
+
}
|
|
83
|
+
return out;
|
|
84
|
+
}
|
|
85
|
+
function normalizeDesignSystem(raw) {
|
|
86
|
+
const r = (raw ?? {});
|
|
87
|
+
const sys = {};
|
|
88
|
+
if (typeof r.version === "string")
|
|
89
|
+
sys.version = r.version;
|
|
90
|
+
if (typeof r.name === "string")
|
|
91
|
+
sys.name = r.name;
|
|
92
|
+
if (typeof r.description === "string")
|
|
93
|
+
sys.description = r.description;
|
|
94
|
+
const colors = colorsRecord(r.colors);
|
|
95
|
+
if (colors)
|
|
96
|
+
sys.colors = colors;
|
|
97
|
+
const typography = typographyRecord(r.typography);
|
|
98
|
+
if (typography)
|
|
99
|
+
sys.typography = typography;
|
|
100
|
+
const rounded = dimensionsRecord(r.rounded);
|
|
101
|
+
if (rounded)
|
|
102
|
+
sys.rounded = rounded;
|
|
103
|
+
const spacing = dimensionsRecord(r.spacing);
|
|
104
|
+
if (spacing)
|
|
105
|
+
sys.spacing = spacing;
|
|
106
|
+
const components = componentsRecord(r.components);
|
|
107
|
+
if (components)
|
|
108
|
+
sys.components = components;
|
|
109
|
+
return sys;
|
|
110
|
+
}
|
|
111
|
+
function normalizeFindings(raw) {
|
|
112
|
+
if (!Array.isArray(raw))
|
|
113
|
+
return [];
|
|
114
|
+
return raw.map((f) => {
|
|
115
|
+
const o = (f ?? {});
|
|
116
|
+
const sev = o.severity;
|
|
117
|
+
const severity = sev === "error" || sev === "warning" || sev === "info" ? sev : "info";
|
|
118
|
+
return {
|
|
119
|
+
rule: typeof o.rule === "string" ? o.rule : "",
|
|
120
|
+
severity,
|
|
121
|
+
path: typeof o.path === "string" ? o.path : "",
|
|
122
|
+
message: typeof o.message === "string" ? o.message : "",
|
|
123
|
+
};
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function normalizeSummary(raw) {
|
|
127
|
+
const o = (raw ?? {});
|
|
128
|
+
const errors = typeof o.errors === "number" ? o.errors : 0;
|
|
129
|
+
const warnings = typeof o.warnings === "number" ? o.warnings : 0;
|
|
130
|
+
// Upstream uses `infos`; we expose `info`.
|
|
131
|
+
const infoVal = typeof o.info === "number"
|
|
132
|
+
? o.info
|
|
133
|
+
: typeof o.infos === "number"
|
|
134
|
+
? o.infos
|
|
135
|
+
: 0;
|
|
136
|
+
return { errors, warnings, info: infoVal };
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Parse and lint a DESIGN.md source string. Never throws — failures surface
|
|
140
|
+
* as findings with severity "error".
|
|
141
|
+
*/
|
|
142
|
+
export function parseDesignMd(source) {
|
|
143
|
+
try {
|
|
144
|
+
const report = lint(source);
|
|
145
|
+
return {
|
|
146
|
+
designSystem: normalizeDesignSystem(report.designSystem),
|
|
147
|
+
findings: normalizeFindings(report.findings),
|
|
148
|
+
summary: normalizeSummary(report.summary),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
153
|
+
return {
|
|
154
|
+
designSystem: {},
|
|
155
|
+
findings: [
|
|
156
|
+
{ rule: "parse-error", severity: "error", path: "", message },
|
|
157
|
+
],
|
|
158
|
+
summary: { errors: 1, warnings: 0, info: 0 },
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/designmd/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/designmd/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/designmd/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DesignMdSystem } from "./types.js";
|
|
2
|
+
import type { DesignToken } from "../models/token.js";
|
|
3
|
+
/**
|
|
4
|
+
* Project a DESIGN.md design system to Buoy's DesignToken[] shape.
|
|
5
|
+
*
|
|
6
|
+
* v1 supports: colors, spacing, rounded.
|
|
7
|
+
* Skipped: typography (complex shape), components (deferred).
|
|
8
|
+
*
|
|
9
|
+
* Note: rounded values are mapped to category "other" with `value: { type: "raw" }`
|
|
10
|
+
* because there is no `radius`/`rounded` category in the existing token schema.
|
|
11
|
+
*/
|
|
12
|
+
export declare function designMdToTokens(ds: DesignMdSystem): DesignToken[];
|
|
13
|
+
//# sourceMappingURL=to-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-tokens.d.ts","sourceRoot":"","sources":["../../src/designmd/to-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA4BtD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,cAAc,GAAG,WAAW,EAAE,CA2BlE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const DIMENSION_RE = /^(-?\d*\.?\d+)(px|rem|em)$/;
|
|
2
|
+
function parseDimension(input) {
|
|
3
|
+
const m = DIMENSION_RE.exec(input.trim());
|
|
4
|
+
if (!m)
|
|
5
|
+
return null;
|
|
6
|
+
return { value: parseFloat(m[1]), unit: m[2] };
|
|
7
|
+
}
|
|
8
|
+
function makeBaseToken(name, category) {
|
|
9
|
+
return {
|
|
10
|
+
id: `designmd:${category}:${name}`,
|
|
11
|
+
name,
|
|
12
|
+
category,
|
|
13
|
+
source: { type: "css", path: "DESIGN.md" },
|
|
14
|
+
aliases: [],
|
|
15
|
+
usedBy: [],
|
|
16
|
+
metadata: {},
|
|
17
|
+
scannedAt: new Date(),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Project a DESIGN.md design system to Buoy's DesignToken[] shape.
|
|
22
|
+
*
|
|
23
|
+
* v1 supports: colors, spacing, rounded.
|
|
24
|
+
* Skipped: typography (complex shape), components (deferred).
|
|
25
|
+
*
|
|
26
|
+
* Note: rounded values are mapped to category "other" with `value: { type: "raw" }`
|
|
27
|
+
* because there is no `radius`/`rounded` category in the existing token schema.
|
|
28
|
+
*/
|
|
29
|
+
export function designMdToTokens(ds) {
|
|
30
|
+
const out = [];
|
|
31
|
+
for (const [name, hex] of Object.entries(ds.colors ?? {})) {
|
|
32
|
+
out.push({
|
|
33
|
+
...makeBaseToken(name, "color"),
|
|
34
|
+
value: { type: "color", hex: String(hex) },
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
for (const [name, raw] of Object.entries(ds.spacing ?? {})) {
|
|
38
|
+
const dim = parseDimension(String(raw));
|
|
39
|
+
if (!dim)
|
|
40
|
+
continue;
|
|
41
|
+
out.push({
|
|
42
|
+
...makeBaseToken(name, "spacing"),
|
|
43
|
+
value: { type: "spacing", value: dim.value, unit: dim.unit },
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
for (const [name, raw] of Object.entries(ds.rounded ?? {})) {
|
|
47
|
+
out.push({
|
|
48
|
+
...makeBaseToken(name, "other"),
|
|
49
|
+
value: { type: "raw", value: String(raw) },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=to-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-tokens.js","sourceRoot":"","sources":["../../src/designmd/to-tokens.ts"],"names":[],"mappings":"AAGA,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAElD,SAAS,cAAc,CACrB,KAAa;IAEb,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAwB,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,aAAa,CACpB,IAAY,EACZ,QAAiC;IAEjC,OAAO;QACL,EAAE,EAAE,YAAY,QAAQ,IAAI,IAAI,EAAE;QAClC,IAAI;QACJ,QAAQ;QACR,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;QAC1C,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAkB;IACjD,MAAM,GAAG,GAAkB,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC;YACP,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,GAAG,CAAC,IAAI,CAAC;YACP,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;YACjC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC;YACP,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Buoy-facing types that mirror @google/design.md/linter shapes.
|
|
3
|
+
* Re-exported here so consumers don't import upstream directly.
|
|
4
|
+
*/
|
|
5
|
+
export interface DesignMdToken {
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface DesignMdSystem {
|
|
9
|
+
version?: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
colors?: Record<string, string>;
|
|
13
|
+
typography?: Record<string, DesignMdToken>;
|
|
14
|
+
rounded?: Record<string, string>;
|
|
15
|
+
spacing?: Record<string, string>;
|
|
16
|
+
components?: Record<string, Record<string, string>>;
|
|
17
|
+
}
|
|
18
|
+
export type DesignMdSeverity = "error" | "warning" | "info";
|
|
19
|
+
export interface DesignMdFinding {
|
|
20
|
+
rule: string;
|
|
21
|
+
severity: DesignMdSeverity;
|
|
22
|
+
path: string;
|
|
23
|
+
message: string;
|
|
24
|
+
}
|
|
25
|
+
export interface DesignMdSummary {
|
|
26
|
+
errors: number;
|
|
27
|
+
warnings: number;
|
|
28
|
+
info: number;
|
|
29
|
+
}
|
|
30
|
+
export interface DesignMdResult {
|
|
31
|
+
designSystem: DesignMdSystem;
|
|
32
|
+
findings: DesignMdFinding[];
|
|
33
|
+
summary: DesignMdSummary;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/designmd/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,cAAc,CAAC;IAC7B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,EAAE,eAAe,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/designmd/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './extraction/index.js';
|
|
|
4
4
|
export * from './tokenization/index.js';
|
|
5
5
|
export * from './plugins/index.js';
|
|
6
6
|
export * from './tokens/index.js';
|
|
7
|
+
export * from './designmd/index.js';
|
|
7
8
|
export * from './graph/index.js';
|
|
8
9
|
export * from './fix/index.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,8 @@ export * from './tokenization/index.js';
|
|
|
10
10
|
export * from './plugins/index.js';
|
|
11
11
|
// Re-export token parsing
|
|
12
12
|
export * from './tokens/index.js';
|
|
13
|
+
// Re-export DESIGN.md adapter
|
|
14
|
+
export * from './designmd/index.js';
|
|
13
15
|
// Re-export graph
|
|
14
16
|
export * from './graph/index.js';
|
|
15
17
|
// Re-export fix
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,cAAc,mBAAmB,CAAC;AAElC,qBAAqB;AACrB,cAAc,qBAAqB,CAAC;AAEpC,uBAAuB;AACvB,cAAc,uBAAuB,CAAC;AAEtC,yBAAyB;AACzB,cAAc,yBAAyB,CAAC;AAExC,oBAAoB;AACpB,cAAc,oBAAoB,CAAC;AAEnC,0BAA0B;AAC1B,cAAc,mBAAmB,CAAC;AAElC,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AAEjC,gBAAgB;AAChB,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,cAAc,mBAAmB,CAAC;AAElC,qBAAqB;AACrB,cAAc,qBAAqB,CAAC;AAEpC,uBAAuB;AACvB,cAAc,uBAAuB,CAAC;AAEtC,yBAAyB;AACzB,cAAc,yBAAyB,CAAC;AAExC,oBAAoB;AACpB,cAAc,oBAAoB,CAAC;AAEnC,0BAA0B;AAC1B,cAAc,mBAAmB,CAAC;AAElC,8BAA8B;AAC9B,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AAEjC,gBAAgB;AAChB,cAAc,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-design/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Core domain models and analysis for Buoy design drift detection",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -44,7 +44,16 @@
|
|
|
44
44
|
"import": "./dist/types.js"
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "tsc",
|
|
49
|
+
"dev": "tsc --watch",
|
|
50
|
+
"typecheck": "tsc --noEmit",
|
|
51
|
+
"clean": "rm -rf dist",
|
|
52
|
+
"test": "vitest run",
|
|
53
|
+
"test:watch": "vitest"
|
|
54
|
+
},
|
|
47
55
|
"dependencies": {
|
|
56
|
+
"@google/design.md": "0.1.1",
|
|
48
57
|
"glob": "^11.0.0",
|
|
49
58
|
"graphology": "^0.26.0",
|
|
50
59
|
"graphology-types": "^0.24.8",
|
|
@@ -53,13 +62,5 @@
|
|
|
53
62
|
},
|
|
54
63
|
"devDependencies": {
|
|
55
64
|
"typescript": "^5.7.2"
|
|
56
|
-
},
|
|
57
|
-
"scripts": {
|
|
58
|
-
"build": "tsc",
|
|
59
|
-
"dev": "tsc --watch",
|
|
60
|
-
"typecheck": "tsc --noEmit",
|
|
61
|
-
"clean": "rm -rf dist",
|
|
62
|
-
"test": "vitest run",
|
|
63
|
-
"test:watch": "vitest"
|
|
64
65
|
}
|
|
65
|
-
}
|
|
66
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 Buoy
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
export interface AuditValue {
|
|
2
|
-
category: 'color' | 'spacing' | 'typography' | 'radius';
|
|
3
|
-
value: string;
|
|
4
|
-
file: string;
|
|
5
|
-
line: number;
|
|
6
|
-
}
|
|
7
|
-
export interface CategoryStats {
|
|
8
|
-
uniqueCount: number;
|
|
9
|
-
totalUsages: number;
|
|
10
|
-
mostCommon: Array<{
|
|
11
|
-
value: string;
|
|
12
|
-
count: number;
|
|
13
|
-
}>;
|
|
14
|
-
}
|
|
15
|
-
export interface FileIssue {
|
|
16
|
-
file: string;
|
|
17
|
-
issueCount: number;
|
|
18
|
-
}
|
|
19
|
-
export interface CloseMatch {
|
|
20
|
-
value: string;
|
|
21
|
-
closeTo: string;
|
|
22
|
-
distance: number;
|
|
23
|
-
}
|
|
24
|
-
export interface AuditReport {
|
|
25
|
-
categories: Record<string, CategoryStats>;
|
|
26
|
-
worstFiles: FileIssue[];
|
|
27
|
-
totals: {
|
|
28
|
-
uniqueValues: number;
|
|
29
|
-
totalUsages: number;
|
|
30
|
-
filesAffected: number;
|
|
31
|
-
};
|
|
32
|
-
closeMatches: CloseMatch[];
|
|
33
|
-
score: number;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Metrics gathered from drift analysis for health scoring.
|
|
37
|
-
* All counts come from drift signals and scan results.
|
|
38
|
-
*/
|
|
39
|
-
export interface HealthMetrics {
|
|
40
|
-
/** Total components found in codebase */
|
|
41
|
-
componentCount: number;
|
|
42
|
-
/** Total design tokens defined */
|
|
43
|
-
tokenCount: number;
|
|
44
|
-
/** Number of hardcoded-value drift signals */
|
|
45
|
-
hardcodedValueCount: number;
|
|
46
|
-
/** Number of unused-token drift signals */
|
|
47
|
-
unusedTokenCount: number;
|
|
48
|
-
/** Number of naming-inconsistency drift signals */
|
|
49
|
-
namingInconsistencyCount: number;
|
|
50
|
-
/** Number of critical-severity drift signals */
|
|
51
|
-
criticalCount: number;
|
|
52
|
-
/** Whether a utility CSS framework (Tailwind) is detected */
|
|
53
|
-
hasUtilityFramework: boolean;
|
|
54
|
-
/** Whether a design system library (MUI, Chakra, shadcn, etc.) is detected */
|
|
55
|
-
hasDesignSystemLibrary: boolean;
|
|
56
|
-
/** Total drift signals of ALL types (hardcoded-value, naming-inconsistency, repeated-pattern, etc.) */
|
|
57
|
-
totalDriftCount?: number;
|
|
58
|
-
/** Number of unused-component drift signals (dead code) */
|
|
59
|
-
unusedComponentCount?: number;
|
|
60
|
-
/** Number of repeated-pattern drift signals (extract to shared component) */
|
|
61
|
-
repeatedPatternCount?: number;
|
|
62
|
-
/** Number of orphaned-component drift signals (dead code) */
|
|
63
|
-
orphanedComponentCount?: number;
|
|
64
|
-
/** Number of semantic-mismatch drift signals (naming/structure inconsistencies) */
|
|
65
|
-
semanticMismatchCount?: number;
|
|
66
|
-
/** Number of deprecated-pattern drift signals (technical debt) */
|
|
67
|
-
deprecatedPatternCount?: number;
|
|
68
|
-
/** Number of files with >2 hardcoded values (severe maintenance burden) */
|
|
69
|
-
highDensityFileCount?: number;
|
|
70
|
-
/** Number of drift signals from vendored/template components (e.g., shadcn/ui) */
|
|
71
|
-
vendoredDriftCount?: number;
|
|
72
|
-
/** Most common hardcoded color (for suggestions) */
|
|
73
|
-
topHardcodedColor?: {
|
|
74
|
-
value: string;
|
|
75
|
-
count: number;
|
|
76
|
-
};
|
|
77
|
-
/** File with the most drift issues */
|
|
78
|
-
worstFile?: {
|
|
79
|
-
path: string;
|
|
80
|
-
issueCount: number;
|
|
81
|
-
};
|
|
82
|
-
/** Total unique spacing values found */
|
|
83
|
-
uniqueSpacingValues?: number;
|
|
84
|
-
/** Names of detected frameworks/libraries (for framework-aware suggestions) */
|
|
85
|
-
detectedFrameworkNames?: string[];
|
|
86
|
-
}
|
|
87
|
-
export interface HealthPillar {
|
|
88
|
-
name: string;
|
|
89
|
-
score: number;
|
|
90
|
-
maxScore: number;
|
|
91
|
-
description: string;
|
|
92
|
-
}
|
|
93
|
-
export interface HealthScoreResult {
|
|
94
|
-
/** Overall score 0-100, or null if no UI surface detected */
|
|
95
|
-
score: number | null;
|
|
96
|
-
/** Tier label */
|
|
97
|
-
tier: 'Great' | 'Good' | 'OK' | 'Bad' | 'Terrible' | 'N/A';
|
|
98
|
-
/** Individual pillar scores */
|
|
99
|
-
pillars: {
|
|
100
|
-
valueDiscipline: HealthPillar;
|
|
101
|
-
tokenHealth: HealthPillar;
|
|
102
|
-
consistency: HealthPillar;
|
|
103
|
-
criticalIssues: HealthPillar;
|
|
104
|
-
};
|
|
105
|
-
/** Actionable improvement suggestions */
|
|
106
|
-
suggestions: string[];
|
|
107
|
-
/** Raw metrics used for scoring */
|
|
108
|
-
metrics: HealthMetrics;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Generate an audit report from extracted values
|
|
112
|
-
*/
|
|
113
|
-
export declare function generateAuditReport(values: AuditValue[]): AuditReport;
|
|
114
|
-
/**
|
|
115
|
-
* Find values that are close to design tokens (likely typos)
|
|
116
|
-
*/
|
|
117
|
-
export declare function findCloseMatches(foundValues: string[], designTokens: string[], category: 'color' | 'spacing' | 'typography' | 'radius'): CloseMatch[];
|
|
118
|
-
/**
|
|
119
|
-
* @deprecated Use calculateHealthScorePillar() with proper HealthMetrics instead.
|
|
120
|
-
* This legacy function approximates componentCount from filesAffected which
|
|
121
|
-
* is inaccurate. Kept for backward compatibility with external callers.
|
|
122
|
-
*/
|
|
123
|
-
export declare function calculateHealthScore(report: AuditReport): number;
|
|
124
|
-
/**
|
|
125
|
-
* 4-Pillar Health Score System
|
|
126
|
-
*
|
|
127
|
-
* Measures design system health across four dimensions:
|
|
128
|
-
* - Value Discipline (0-60): Hardcoded values per component (density)
|
|
129
|
-
* - Token Health (0-20): Token system existence and adoption
|
|
130
|
-
* - Consistency (0-10): Naming convention adherence
|
|
131
|
-
* - Critical Issues (0-10): Accessibility and critical failures
|
|
132
|
-
*
|
|
133
|
-
* Tiers: 80-100 Great, 60-79 Good, 40-59 OK, 20-39 Bad, 0-19 Terrible
|
|
134
|
-
*
|
|
135
|
-
* Note: A perfect 100 requires maxing all 4 pillars simultaneously.
|
|
136
|
-
* In practice, the highest-scoring real-world apps reach ~95.
|
|
137
|
-
* A score of 95 represents near-perfect design system health.
|
|
138
|
-
*/
|
|
139
|
-
export declare function calculateHealthScorePillar(metrics: HealthMetrics): HealthScoreResult;
|
|
140
|
-
export declare function getHealthTier(score: number): 'Great' | 'Good' | 'OK' | 'Bad' | 'Terrible';
|
|
141
|
-
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/analysis/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/analysis/audit.ts"],"names":[],"mappings":"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"}
|