@buoy-design/core 0.3.38 → 0.4.1
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 +2 -1
- 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":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAYhD,SAAS,WAAW,CAAI,CAAU;IAChC,IAAI,CAAC,YAAY,GAAG;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAsB,CAAC;IACxE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAsB,CAAC;IAC9D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAU;IACnC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAW,CAAC;QACtB,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9D,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,CAAU;IAC9B,MAAM,GAAG,GAAG,WAAW,CAAU,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAAY,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACxE,GAAG,CAAC,CAAC,CAAC,GAAI,CAAY,CAAC,GAAa,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACjC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAU;IAClC,MAAM,GAAG,GAAG,WAAW,CAAU,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CACvB,CAAU;IAEV,MAAM,GAAG,GAAG,WAAW,CAAU,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,GAAG,GAAkC,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAkB,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CACvB,CAAU;IAEV,MAAM,GAAG,GAAG,WAAW,CAAU,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,GAAG,GAA2C,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,GAAI,CAAY,EAAE,UAAU,CAAC;QACxC,MAAM,OAAO,GAAG,WAAW,CAAU,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,IAAI,OAAO,EAAE,KAAK,QAAQ;gBAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;iBACtC,CAAC;gBACJ,MAAM,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,SAAS;oBAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;qBAC9B,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAQ,EAAa,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAChF,KAAK,CAAC,EAAE,CAAC,GAAI,EAAa,CAAC,GAAa,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QACD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAY;IACzC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAW,CAAC;IAChC,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IAC3D,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAClD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;QAAE,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACvE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,UAAU;QAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;IAC5C,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,OAAO;QAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,OAAO;QAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,UAAU;QAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAW,CAAC;QAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC;QACvB,MAAM,QAAQ,GACZ,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACxE,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC9C,QAAQ;YACR,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC9C,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;SACxD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAW,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,2CAA2C;IAC3C,MAAM,OAAO,GACX,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QACxB,CAAC,CAAC,CAAC,CAAC,IAAI;QACR,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAC3B,CAAC,CAAC,CAAC,CAAC,KAAK;YACT,CAAC,CAAC,CAAC,CAAC;IACV,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAsB,CAAC;QACjD,OAAO;YACL,YAAY,EAAE,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC;YACxD,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC5C,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;SAC1C,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE;aAC9D;YACD,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;SAC7C,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -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.1",
|
|
4
4
|
"description": "Core domain models and analysis for Buoy design drift detection",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
+
"@google/design.md": "0.1.1",
|
|
48
49
|
"glob": "^11.0.0",
|
|
49
50
|
"graphology": "^0.26.0",
|
|
50
51
|
"graphology-types": "^0.24.8",
|
|
@@ -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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"}
|