@buoy-design/core 0.1.10 → 0.1.12
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/analysis/analyzers/index.d.ts +1 -0
- package/dist/analysis/analyzers/index.d.ts.map +1 -1
- package/dist/analysis/analyzers/index.js +1 -0
- package/dist/analysis/analyzers/index.js.map +1 -1
- package/dist/analysis/analyzers/pattern-analyzer.d.ts +30 -0
- package/dist/analysis/analyzers/pattern-analyzer.d.ts.map +1 -0
- package/dist/analysis/analyzers/pattern-analyzer.js +150 -0
- package/dist/analysis/analyzers/pattern-analyzer.js.map +1 -0
- package/dist/analysis/index.d.ts +1 -0
- package/dist/analysis/index.d.ts.map +1 -1
- package/dist/analysis/index.js +2 -0
- package/dist/analysis/index.js.map +1 -1
- package/dist/models/drift.d.ts +20 -4
- package/dist/models/drift.d.ts.map +1 -1
- package/dist/models/drift.js +7 -0
- package/dist/models/drift.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analysis/analyzers/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analysis/analyzers/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analysis/analyzers/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analysis/analyzers/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Analyzer
|
|
3
|
+
*
|
|
4
|
+
* Detects repeated className patterns across the codebase.
|
|
5
|
+
* Suggests extracting common patterns into components or utility classes.
|
|
6
|
+
*/
|
|
7
|
+
import type { DriftSignal } from "../../models/index.js";
|
|
8
|
+
export interface ClassOccurrence {
|
|
9
|
+
classes: string;
|
|
10
|
+
file: string;
|
|
11
|
+
line: number;
|
|
12
|
+
}
|
|
13
|
+
export interface PatternAnalyzerOptions {
|
|
14
|
+
minOccurrences?: number;
|
|
15
|
+
matching?: "exact" | "tight" | "loose";
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Normalize a className string by sorting classes alphabetically.
|
|
19
|
+
* "flex items-center gap-2" -> "flex gap-2 items-center"
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeClassPattern(classes: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Group occurrences by normalized pattern.
|
|
24
|
+
*/
|
|
25
|
+
export declare function groupPatterns(occurrences: ClassOccurrence[], matching?: "exact" | "tight" | "loose"): Map<string, ClassOccurrence[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Detect repeated patterns and generate drift signals.
|
|
28
|
+
*/
|
|
29
|
+
export declare function detectRepeatedPatterns(occurrences: ClassOccurrence[], options?: PatternAnalyzerOptions): DriftSignal[];
|
|
30
|
+
//# sourceMappingURL=pattern-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analysis/analyzers/pattern-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAyDzD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,eAAe,EAAE,EAC9B,QAAQ,GAAE,OAAO,GAAG,OAAO,GAAG,OAAiB,GAC9C,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAoBhC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,eAAe,EAAE,EAC9B,OAAO,GAAE,sBAA2B,GACnC,WAAW,EAAE,CA4Df"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Analyzer
|
|
3
|
+
*
|
|
4
|
+
* Detects repeated className patterns across the codebase.
|
|
5
|
+
* Suggests extracting common patterns into components or utility classes.
|
|
6
|
+
*/
|
|
7
|
+
import { createDriftId } from "../../models/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Variant categories for tight matching.
|
|
10
|
+
* These patterns identify Tailwind classes that represent the same concept with different values.
|
|
11
|
+
*/
|
|
12
|
+
const VARIANT_PATTERNS = {
|
|
13
|
+
shadow: /^shadow(-none|-sm|-md|-lg|-xl|-2xl)?$/,
|
|
14
|
+
rounded: /^rounded(-none|-sm|-md|-lg|-xl|-2xl|-3xl|-full)?$/,
|
|
15
|
+
gap: /^gap-(\d+|px)$/,
|
|
16
|
+
p: /^p-(\d+|px)$/,
|
|
17
|
+
px: /^px-(\d+|px)$/,
|
|
18
|
+
py: /^py-(\d+|px)$/,
|
|
19
|
+
pt: /^pt-(\d+|px)$/,
|
|
20
|
+
pr: /^pr-(\d+|px)$/,
|
|
21
|
+
pb: /^pb-(\d+|px)$/,
|
|
22
|
+
pl: /^pl-(\d+|px)$/,
|
|
23
|
+
m: /^m-(\d+|px)$/,
|
|
24
|
+
mx: /^mx-(\d+|px)$/,
|
|
25
|
+
my: /^my-(\d+|px)$/,
|
|
26
|
+
mt: /^mt-(\d+|px)$/,
|
|
27
|
+
mr: /^mr-(\d+|px)$/,
|
|
28
|
+
mb: /^mb-(\d+|px)$/,
|
|
29
|
+
ml: /^ml-(\d+|px)$/,
|
|
30
|
+
text: /^text-(xs|sm|base|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)$/,
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Normalize a class for tight matching - replace variant values with placeholders.
|
|
34
|
+
*/
|
|
35
|
+
function normalizeTight(classes) {
|
|
36
|
+
const classList = classes.trim().split(/\s+/).filter(Boolean);
|
|
37
|
+
const normalized = [];
|
|
38
|
+
const variants = [];
|
|
39
|
+
for (const cls of classList) {
|
|
40
|
+
let matched = false;
|
|
41
|
+
for (const [category, pattern] of Object.entries(VARIANT_PATTERNS)) {
|
|
42
|
+
if (pattern.test(cls)) {
|
|
43
|
+
normalized.push(`{${category}}`);
|
|
44
|
+
variants.push(cls);
|
|
45
|
+
matched = true;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (!matched) {
|
|
50
|
+
normalized.push(cls);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
normalized: normalized.sort().join(" "),
|
|
55
|
+
variants,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Normalize a className string by sorting classes alphabetically.
|
|
60
|
+
* "flex items-center gap-2" -> "flex gap-2 items-center"
|
|
61
|
+
*/
|
|
62
|
+
export function normalizeClassPattern(classes) {
|
|
63
|
+
return classes
|
|
64
|
+
.trim()
|
|
65
|
+
.split(/\s+/)
|
|
66
|
+
.filter(Boolean)
|
|
67
|
+
.sort()
|
|
68
|
+
.join(" ");
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Group occurrences by normalized pattern.
|
|
72
|
+
*/
|
|
73
|
+
export function groupPatterns(occurrences, matching = "exact") {
|
|
74
|
+
const groups = new Map();
|
|
75
|
+
for (const occ of occurrences) {
|
|
76
|
+
let normalized;
|
|
77
|
+
if (matching === "tight") {
|
|
78
|
+
normalized = normalizeTight(occ.classes).normalized;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
normalized = normalizeClassPattern(occ.classes);
|
|
82
|
+
}
|
|
83
|
+
if (!normalized)
|
|
84
|
+
continue;
|
|
85
|
+
const existing = groups.get(normalized) || [];
|
|
86
|
+
existing.push(occ);
|
|
87
|
+
groups.set(normalized, existing);
|
|
88
|
+
}
|
|
89
|
+
return groups;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Detect repeated patterns and generate drift signals.
|
|
93
|
+
*/
|
|
94
|
+
export function detectRepeatedPatterns(occurrences, options = {}) {
|
|
95
|
+
const { minOccurrences = 2, matching = "exact" } = options;
|
|
96
|
+
const groups = groupPatterns(occurrences, matching);
|
|
97
|
+
const drifts = [];
|
|
98
|
+
for (const [pattern, locations] of groups) {
|
|
99
|
+
if (locations.length < minOccurrences)
|
|
100
|
+
continue;
|
|
101
|
+
const classCount = pattern.split(" ").length;
|
|
102
|
+
const isSimple = classCount <= 3;
|
|
103
|
+
const firstLocation = locations[0];
|
|
104
|
+
// For tight matching, collect unique variants used across all locations
|
|
105
|
+
let suggestions;
|
|
106
|
+
let variants;
|
|
107
|
+
if (matching === "tight") {
|
|
108
|
+
// Collect all unique variants from the grouped occurrences
|
|
109
|
+
const variantSet = new Set();
|
|
110
|
+
for (const loc of locations) {
|
|
111
|
+
const { variants: locVariants } = normalizeTight(loc.classes);
|
|
112
|
+
for (const v of locVariants) {
|
|
113
|
+
variantSet.add(v);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
variants = Array.from(variantSet);
|
|
117
|
+
// For tight matches with variants, suggest component with props
|
|
118
|
+
suggestions = [
|
|
119
|
+
"Consider extracting this pattern into a component with props for variants",
|
|
120
|
+
`Variants found: ${variants.join(", ")}`,
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
suggestions = isSimple
|
|
125
|
+
? ["Consider creating a utility class for this pattern"]
|
|
126
|
+
: ["Consider extracting this pattern into a reusable component"];
|
|
127
|
+
}
|
|
128
|
+
drifts.push({
|
|
129
|
+
id: createDriftId("repeated-pattern", pattern.replace(/\s+/g, "-")),
|
|
130
|
+
type: "repeated-pattern",
|
|
131
|
+
severity: "info",
|
|
132
|
+
source: {
|
|
133
|
+
entityType: "component",
|
|
134
|
+
entityId: `pattern:${pattern.replace(/\s+/g, "-")}`,
|
|
135
|
+
entityName: pattern,
|
|
136
|
+
location: `${firstLocation.file}:${firstLocation.line}`,
|
|
137
|
+
},
|
|
138
|
+
message: `Pattern "${pattern}" appears ${locations.length} times across ${new Set(locations.map(l => l.file)).size} files`,
|
|
139
|
+
details: {
|
|
140
|
+
occurrences: locations.length,
|
|
141
|
+
locations: locations.map((l) => `${l.file}:${l.line}`),
|
|
142
|
+
suggestions,
|
|
143
|
+
...(variants ? { variants } : {}),
|
|
144
|
+
},
|
|
145
|
+
detectedAt: new Date(),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
return drifts;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=pattern-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-analyzer.js","sourceRoot":"","sources":["../../../src/analysis/analyzers/pattern-analyzer.ts"],"names":[],"mappings":"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"}
|
package/dist/analysis/index.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ export { stringSimilarity, levenshteinDistance, normalizeForComparison, } from "
|
|
|
4
4
|
export { MATCHING_CONFIG, NAMING_CONFIG, TOKEN_SUGGESTION_CONFIG, SCANNER_CONFIG, getOutlierThreshold, } from "./config.js";
|
|
5
5
|
export { generateAuditReport, findCloseMatches, calculateHealthScore, type AuditValue, type AuditReport, type CategoryStats, type FileIssue, type CloseMatch, } from "./audit.js";
|
|
6
6
|
export { DriftAggregator, createStrategy, builtInStrategies, type DriftGroup, type AggregationResult, type GroupingStrategy, type AggregatorOptions, type BuiltInStrategyType, } from "./drift-aggregator.js";
|
|
7
|
+
export { detectRepeatedPatterns, normalizeClassPattern, groupPatterns, type ClassOccurrence, type PatternAnalyzerOptions, } from "./analyzers/pattern-analyzer.js";
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,sBAAsB,GAC5B,MAAM,iCAAiC,CAAC"}
|
package/dist/analysis/index.js
CHANGED
|
@@ -9,4 +9,6 @@ export { MATCHING_CONFIG, NAMING_CONFIG, TOKEN_SUGGESTION_CONFIG, SCANNER_CONFIG
|
|
|
9
9
|
export { generateAuditReport, findCloseMatches, calculateHealthScore, } from "./audit.js";
|
|
10
10
|
// Drift aggregation
|
|
11
11
|
export { DriftAggregator, createStrategy, builtInStrategies, } from "./drift-aggregator.js";
|
|
12
|
+
// Pattern analyzer (experimental)
|
|
13
|
+
export { detectRepeatedPatterns, normalizeClassPattern, groupPatterns, } from "./analyzers/pattern-analyzer.js";
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAOnB,MAAM,oBAAoB,CAAC;AAE5B,6BAA6B;AAC7B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAEhC,mBAAmB;AACnB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,yBAAyB;AACzB,OAAO,EACL,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,eAAe;AACf,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GAMrB,MAAM,YAAY,CAAC;AAEpB,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,GAMlB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAOnB,MAAM,oBAAoB,CAAC;AAE5B,6BAA6B;AAC7B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAEhC,mBAAmB;AACnB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,yBAAyB;AACzB,OAAO,EACL,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,eAAe;AACf,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GAMrB,MAAM,YAAY,CAAC;AAEpB,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,GAMlB,MAAM,uBAAuB,CAAC;AAE/B,kCAAkC;AAClC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,GAGd,MAAM,iCAAiC,CAAC"}
|
package/dist/models/drift.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const DriftTypeSchema: z.ZodEnum<["deprecated-pattern", "accessibility-conflict", "semantic-mismatch", "orphaned-component", "orphaned-token", "value-divergence", "naming-inconsistency", "missing-documentation", "hardcoded-value", "framework-sprawl", "unused-component", "unused-token", "color-contrast"]>;
|
|
2
|
+
export declare const DriftTypeSchema: z.ZodEnum<["deprecated-pattern", "accessibility-conflict", "semantic-mismatch", "orphaned-component", "orphaned-token", "value-divergence", "naming-inconsistency", "missing-documentation", "hardcoded-value", "framework-sprawl", "unused-component", "unused-token", "color-contrast", "repeated-pattern"]>;
|
|
3
3
|
export declare const SeveritySchema: z.ZodEnum<["info", "warning", "critical"]>;
|
|
4
4
|
export declare const DriftSourceSchema: z.ZodObject<{
|
|
5
5
|
entityType: z.ZodEnum<["component", "token"]>;
|
|
@@ -219,6 +219,8 @@ export declare const DriftDetailsSchema: z.ZodObject<{
|
|
|
219
219
|
}[] | undefined;
|
|
220
220
|
}>>;
|
|
221
221
|
tokenSuggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
222
|
+
occurrences: z.ZodOptional<z.ZodNumber>;
|
|
223
|
+
locations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
222
224
|
}, "strip", z.ZodTypeAny, {
|
|
223
225
|
expected?: unknown;
|
|
224
226
|
actual?: unknown;
|
|
@@ -254,6 +256,8 @@ export declare const DriftDetailsSchema: z.ZodObject<{
|
|
|
254
256
|
}[] | undefined;
|
|
255
257
|
} | undefined;
|
|
256
258
|
tokenSuggestions?: string[] | undefined;
|
|
259
|
+
occurrences?: number | undefined;
|
|
260
|
+
locations?: string[] | undefined;
|
|
257
261
|
}, {
|
|
258
262
|
expected?: unknown;
|
|
259
263
|
actual?: unknown;
|
|
@@ -289,6 +293,8 @@ export declare const DriftDetailsSchema: z.ZodObject<{
|
|
|
289
293
|
}[] | undefined;
|
|
290
294
|
} | undefined;
|
|
291
295
|
tokenSuggestions?: string[] | undefined;
|
|
296
|
+
occurrences?: number | undefined;
|
|
297
|
+
locations?: string[] | undefined;
|
|
292
298
|
}>;
|
|
293
299
|
export declare const DriftResolutionTypeSchema: z.ZodEnum<["ignored", "fixed", "documented"]>;
|
|
294
300
|
export declare const DriftResolutionSchema: z.ZodObject<{
|
|
@@ -309,7 +315,7 @@ export declare const DriftResolutionSchema: z.ZodObject<{
|
|
|
309
315
|
}>;
|
|
310
316
|
export declare const DriftSignalSchema: z.ZodObject<{
|
|
311
317
|
id: z.ZodString;
|
|
312
|
-
type: z.ZodEnum<["deprecated-pattern", "accessibility-conflict", "semantic-mismatch", "orphaned-component", "orphaned-token", "value-divergence", "naming-inconsistency", "missing-documentation", "hardcoded-value", "framework-sprawl", "unused-component", "unused-token", "color-contrast"]>;
|
|
318
|
+
type: z.ZodEnum<["deprecated-pattern", "accessibility-conflict", "semantic-mismatch", "orphaned-component", "orphaned-token", "value-divergence", "naming-inconsistency", "missing-documentation", "hardcoded-value", "framework-sprawl", "unused-component", "unused-token", "color-contrast", "repeated-pattern"]>;
|
|
313
319
|
severity: z.ZodEnum<["info", "warning", "critical"]>;
|
|
314
320
|
source: z.ZodObject<{
|
|
315
321
|
entityType: z.ZodEnum<["component", "token"]>;
|
|
@@ -455,6 +461,8 @@ export declare const DriftSignalSchema: z.ZodObject<{
|
|
|
455
461
|
}[] | undefined;
|
|
456
462
|
}>>;
|
|
457
463
|
tokenSuggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
464
|
+
occurrences: z.ZodOptional<z.ZodNumber>;
|
|
465
|
+
locations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
458
466
|
}, "strip", z.ZodTypeAny, {
|
|
459
467
|
expected?: unknown;
|
|
460
468
|
actual?: unknown;
|
|
@@ -490,6 +498,8 @@ export declare const DriftSignalSchema: z.ZodObject<{
|
|
|
490
498
|
}[] | undefined;
|
|
491
499
|
} | undefined;
|
|
492
500
|
tokenSuggestions?: string[] | undefined;
|
|
501
|
+
occurrences?: number | undefined;
|
|
502
|
+
locations?: string[] | undefined;
|
|
493
503
|
}, {
|
|
494
504
|
expected?: unknown;
|
|
495
505
|
actual?: unknown;
|
|
@@ -525,6 +535,8 @@ export declare const DriftSignalSchema: z.ZodObject<{
|
|
|
525
535
|
}[] | undefined;
|
|
526
536
|
} | undefined;
|
|
527
537
|
tokenSuggestions?: string[] | undefined;
|
|
538
|
+
occurrences?: number | undefined;
|
|
539
|
+
locations?: string[] | undefined;
|
|
528
540
|
}>;
|
|
529
541
|
detectedAt: z.ZodDate;
|
|
530
542
|
resolvedAt: z.ZodOptional<z.ZodDate>;
|
|
@@ -545,7 +557,7 @@ export declare const DriftSignalSchema: z.ZodObject<{
|
|
|
545
557
|
resolvedBy?: string | undefined;
|
|
546
558
|
}>>;
|
|
547
559
|
}, "strip", z.ZodTypeAny, {
|
|
548
|
-
type: "deprecated-pattern" | "accessibility-conflict" | "semantic-mismatch" | "orphaned-component" | "orphaned-token" | "value-divergence" | "naming-inconsistency" | "missing-documentation" | "hardcoded-value" | "framework-sprawl" | "unused-component" | "unused-token" | "color-contrast";
|
|
560
|
+
type: "deprecated-pattern" | "accessibility-conflict" | "semantic-mismatch" | "orphaned-component" | "orphaned-token" | "value-divergence" | "naming-inconsistency" | "missing-documentation" | "hardcoded-value" | "framework-sprawl" | "unused-component" | "unused-token" | "color-contrast" | "repeated-pattern";
|
|
549
561
|
message: string;
|
|
550
562
|
id: string;
|
|
551
563
|
source: {
|
|
@@ -590,6 +602,8 @@ export declare const DriftSignalSchema: z.ZodObject<{
|
|
|
590
602
|
}[] | undefined;
|
|
591
603
|
} | undefined;
|
|
592
604
|
tokenSuggestions?: string[] | undefined;
|
|
605
|
+
occurrences?: number | undefined;
|
|
606
|
+
locations?: string[] | undefined;
|
|
593
607
|
};
|
|
594
608
|
detectedAt: Date;
|
|
595
609
|
resolvedAt?: Date | undefined;
|
|
@@ -606,7 +620,7 @@ export declare const DriftSignalSchema: z.ZodObject<{
|
|
|
606
620
|
resolvedBy?: string | undefined;
|
|
607
621
|
} | undefined;
|
|
608
622
|
}, {
|
|
609
|
-
type: "deprecated-pattern" | "accessibility-conflict" | "semantic-mismatch" | "orphaned-component" | "orphaned-token" | "value-divergence" | "naming-inconsistency" | "missing-documentation" | "hardcoded-value" | "framework-sprawl" | "unused-component" | "unused-token" | "color-contrast";
|
|
623
|
+
type: "deprecated-pattern" | "accessibility-conflict" | "semantic-mismatch" | "orphaned-component" | "orphaned-token" | "value-divergence" | "naming-inconsistency" | "missing-documentation" | "hardcoded-value" | "framework-sprawl" | "unused-component" | "unused-token" | "color-contrast" | "repeated-pattern";
|
|
610
624
|
message: string;
|
|
611
625
|
id: string;
|
|
612
626
|
source: {
|
|
@@ -651,6 +665,8 @@ export declare const DriftSignalSchema: z.ZodObject<{
|
|
|
651
665
|
}[] | undefined;
|
|
652
666
|
} | undefined;
|
|
653
667
|
tokenSuggestions?: string[] | undefined;
|
|
668
|
+
occurrences?: number | undefined;
|
|
669
|
+
locations?: string[] | undefined;
|
|
654
670
|
};
|
|
655
671
|
detectedAt: Date;
|
|
656
672
|
resolvedAt?: Date | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift.d.ts","sourceRoot":"","sources":["../../src/models/drift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"drift.d.ts","sourceRoot":"","sources":["../../src/models/drift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,gTAe1B,CAAC;AAGH,eAAO,MAAM,cAAc,4CAA0C,CAAC;AAGtE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgC3B,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6B7B,CAAC;AAGH,eAAO,MAAM,yBAAyB,+CAIpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5B,CAAC;AAGH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,MAAM,CAqBR;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAS5D;AAGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAoB5D;AAGD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAevD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CA6B7D,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAIpD,CAAC"}
|
package/dist/models/drift.js
CHANGED
|
@@ -14,6 +14,7 @@ export const DriftTypeSchema = z.enum([
|
|
|
14
14
|
"unused-component",
|
|
15
15
|
"unused-token",
|
|
16
16
|
"color-contrast",
|
|
17
|
+
"repeated-pattern",
|
|
17
18
|
]);
|
|
18
19
|
// Severity levels
|
|
19
20
|
export const SeveritySchema = z.enum(["info", "warning", "critical"]);
|
|
@@ -81,6 +82,9 @@ export const DriftDetailsSchema = z.object({
|
|
|
81
82
|
// Actionable token suggestions for hardcoded values
|
|
82
83
|
// Format: "hardcodedValue → tokenName (confidence% match)"
|
|
83
84
|
tokenSuggestions: z.array(z.string()).optional(),
|
|
85
|
+
// For repeated-pattern drift type
|
|
86
|
+
occurrences: z.number().optional(),
|
|
87
|
+
locations: z.array(z.string()).optional(),
|
|
84
88
|
});
|
|
85
89
|
// Drift resolution
|
|
86
90
|
export const DriftResolutionTypeSchema = z.enum([
|
|
@@ -166,6 +170,7 @@ export function getDefaultSeverity(type) {
|
|
|
166
170
|
case "naming-inconsistency":
|
|
167
171
|
case "missing-documentation":
|
|
168
172
|
case "unused-token":
|
|
173
|
+
case "repeated-pattern":
|
|
169
174
|
return "info";
|
|
170
175
|
}
|
|
171
176
|
}
|
|
@@ -184,6 +189,7 @@ export const DRIFT_TYPE_LABELS = {
|
|
|
184
189
|
"unused-component": "Unused Component",
|
|
185
190
|
"unused-token": "Unused Token",
|
|
186
191
|
"color-contrast": "Color Contrast",
|
|
192
|
+
"repeated-pattern": "Repeated Pattern",
|
|
187
193
|
};
|
|
188
194
|
/**
|
|
189
195
|
* Drift Type Descriptions
|
|
@@ -204,6 +210,7 @@ export const DRIFT_TYPE_DESCRIPTIONS = {
|
|
|
204
210
|
"unused-component": "Component is defined but never imported or used elsewhere in the codebase",
|
|
205
211
|
"unused-token": "Design token is defined but never referenced in components or stylesheets",
|
|
206
212
|
"color-contrast": "Color combinations fail WCAG accessibility contrast ratio requirements",
|
|
213
|
+
"repeated-pattern": "ClassName pattern appears multiple times across the codebase and could be extracted into a reusable component or utility class",
|
|
207
214
|
};
|
|
208
215
|
// Human-readable severity labels
|
|
209
216
|
export const SEVERITY_LABELS = {
|
package/dist/models/drift.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/models/drift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,cAAc;AACd,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,oBAAoB;IACpB,wBAAwB;IACxB,mBAAmB;IACnB,oBAAoB;IACpB,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB;IACtB,uBAAuB;IACvB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,gBAAgB;
|
|
1
|
+
{"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/models/drift.ts"],"names":[],"mappings":"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"}
|