@buoy-design/core 0.3.8 → 0.3.9
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/audit.d.ts +60 -10
- package/dist/analysis/audit.d.ts.map +1 -1
- package/dist/analysis/audit.js +112 -28
- package/dist/analysis/audit.js.map +1 -1
- package/dist/analysis/index.d.ts +1 -1
- package/dist/analysis/index.d.ts.map +1 -1
- package/dist/analysis/index.js +1 -1
- package/dist/analysis/index.js.map +1 -1
- package/package.json +1 -1
package/dist/analysis/audit.d.ts
CHANGED
|
@@ -32,6 +32,51 @@ export interface AuditReport {
|
|
|
32
32
|
closeMatches: CloseMatch[];
|
|
33
33
|
score: number;
|
|
34
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
|
+
}
|
|
57
|
+
export interface HealthPillar {
|
|
58
|
+
name: string;
|
|
59
|
+
score: number;
|
|
60
|
+
maxScore: number;
|
|
61
|
+
description: string;
|
|
62
|
+
}
|
|
63
|
+
export interface HealthScoreResult {
|
|
64
|
+
/** Overall score 0-100 */
|
|
65
|
+
score: number;
|
|
66
|
+
/** Tier label */
|
|
67
|
+
tier: 'Great' | 'Good' | 'OK' | 'Bad' | 'Terrible';
|
|
68
|
+
/** Individual pillar scores */
|
|
69
|
+
pillars: {
|
|
70
|
+
valueDiscipline: HealthPillar;
|
|
71
|
+
tokenHealth: HealthPillar;
|
|
72
|
+
consistency: HealthPillar;
|
|
73
|
+
criticalIssues: HealthPillar;
|
|
74
|
+
};
|
|
75
|
+
/** Actionable improvement suggestions */
|
|
76
|
+
suggestions: string[];
|
|
77
|
+
/** Raw metrics used for scoring */
|
|
78
|
+
metrics: HealthMetrics;
|
|
79
|
+
}
|
|
35
80
|
/**
|
|
36
81
|
* Generate an audit report from extracted values
|
|
37
82
|
*/
|
|
@@ -41,17 +86,22 @@ export declare function generateAuditReport(values: AuditValue[]): AuditReport;
|
|
|
41
86
|
*/
|
|
42
87
|
export declare function findCloseMatches(foundValues: string[], designTokens: string[], category: 'color' | 'spacing' | 'typography' | 'radius'): CloseMatch[];
|
|
43
88
|
/**
|
|
44
|
-
*
|
|
89
|
+
* @deprecated Use calculateHealthScorePillar() with proper HealthMetrics instead.
|
|
90
|
+
* This legacy function approximates componentCount from filesAffected which
|
|
91
|
+
* is inaccurate. Kept for backward compatibility with external callers.
|
|
92
|
+
*/
|
|
93
|
+
export declare function calculateHealthScore(report: AuditReport): number;
|
|
94
|
+
/**
|
|
95
|
+
* 4-Pillar Health Score System
|
|
45
96
|
*
|
|
46
|
-
*
|
|
47
|
-
* -
|
|
48
|
-
* -
|
|
97
|
+
* Measures design system health across four dimensions:
|
|
98
|
+
* - Value Discipline (0-60): Hardcoded values per component (density)
|
|
99
|
+
* - Token Health (0-20): Token system existence and adoption
|
|
100
|
+
* - Consistency (0-10): Naming convention adherence
|
|
101
|
+
* - Critical Issues (0-10): Accessibility and critical failures
|
|
49
102
|
*
|
|
50
|
-
*
|
|
51
|
-
* - Each unique hardcoded value: -3 points
|
|
52
|
-
* - Each file with issues: -1 point
|
|
53
|
-
* - Extra penalty for files with many issues: -0.5 per issue over 5
|
|
54
|
-
* - Close matches (typos): -5 points each
|
|
103
|
+
* Tiers: 80-100 Great, 60-79 Good, 40-59 OK, 20-39 Bad, 0-19 Terrible
|
|
55
104
|
*/
|
|
56
|
-
export declare function
|
|
105
|
+
export declare function calculateHealthScorePillar(metrics: HealthMetrics): HealthScoreResult;
|
|
106
|
+
export declare function getHealthTier(score: number): 'Great' | 'Good' | 'OK' | 'Bad' | 'Terrible';
|
|
57
107
|
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/analysis/audit.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAoErE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GACtD,UAAU,EAAE,CAoCd;AA0DD
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/analysis/audit.ts"],"names":[],"mappings":"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"}
|
package/dist/analysis/audit.js
CHANGED
|
@@ -138,38 +138,122 @@ function numericDistance(a, b) {
|
|
|
138
138
|
return Math.abs(numA - numB);
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
141
|
-
*
|
|
141
|
+
* @deprecated Use calculateHealthScorePillar() with proper HealthMetrics instead.
|
|
142
|
+
* This legacy function approximates componentCount from filesAffected which
|
|
143
|
+
* is inaccurate. Kept for backward compatibility with external callers.
|
|
144
|
+
*/
|
|
145
|
+
export function calculateHealthScore(report) {
|
|
146
|
+
const metrics = {
|
|
147
|
+
componentCount: report.totals.filesAffected || 1,
|
|
148
|
+
tokenCount: 0,
|
|
149
|
+
hardcodedValueCount: report.totals.uniqueValues,
|
|
150
|
+
unusedTokenCount: 0,
|
|
151
|
+
namingInconsistencyCount: 0,
|
|
152
|
+
criticalCount: 0,
|
|
153
|
+
hasUtilityFramework: false,
|
|
154
|
+
hasDesignSystemLibrary: false,
|
|
155
|
+
};
|
|
156
|
+
return calculateHealthScorePillar(metrics).score;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 4-Pillar Health Score System
|
|
142
160
|
*
|
|
143
|
-
*
|
|
144
|
-
* -
|
|
145
|
-
* -
|
|
161
|
+
* Measures design system health across four dimensions:
|
|
162
|
+
* - Value Discipline (0-60): Hardcoded values per component (density)
|
|
163
|
+
* - Token Health (0-20): Token system existence and adoption
|
|
164
|
+
* - Consistency (0-10): Naming convention adherence
|
|
165
|
+
* - Critical Issues (0-10): Accessibility and critical failures
|
|
146
166
|
*
|
|
147
|
-
*
|
|
148
|
-
* - Each unique hardcoded value: -3 points
|
|
149
|
-
* - Each file with issues: -1 point
|
|
150
|
-
* - Extra penalty for files with many issues: -0.5 per issue over 5
|
|
151
|
-
* - Close matches (typos): -5 points each
|
|
167
|
+
* Tiers: 80-100 Great, 60-79 Good, 40-59 OK, 20-39 Bad, 0-19 Terrible
|
|
152
168
|
*/
|
|
153
|
-
export function
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
if (
|
|
167
|
-
|
|
169
|
+
export function calculateHealthScorePillar(metrics) {
|
|
170
|
+
const suggestions = [];
|
|
171
|
+
// Pillar 1: Value Discipline (0-60)
|
|
172
|
+
const density = metrics.hardcodedValueCount / Math.max(metrics.componentCount, 1);
|
|
173
|
+
const valueDisciplineScore = Math.round(60 * clamp(1 - density / 3, 0, 1));
|
|
174
|
+
if (density > 0.5) {
|
|
175
|
+
suggestions.push(`${metrics.hardcodedValueCount} hardcoded values across your components — extract to design tokens`);
|
|
176
|
+
}
|
|
177
|
+
// Pillar 2: Token Health (0-20)
|
|
178
|
+
let tokenHealthScore;
|
|
179
|
+
if (metrics.tokenCount > 0) {
|
|
180
|
+
const usedTokens = metrics.tokenCount - metrics.unusedTokenCount;
|
|
181
|
+
tokenHealthScore = Math.round(20 * clamp(usedTokens / metrics.tokenCount, 0, 1));
|
|
182
|
+
if (metrics.unusedTokenCount > 0) {
|
|
183
|
+
suggestions.push(`${metrics.unusedTokenCount} tokens defined but unused — wire them into components`);
|
|
168
184
|
}
|
|
169
185
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
186
|
+
else if (metrics.hasUtilityFramework || metrics.hasDesignSystemLibrary) {
|
|
187
|
+
// Utility framework or design system library acts as token system
|
|
188
|
+
tokenHealthScore = density < 0.5 ? 15 : density < 1.0 ? 10 : 5;
|
|
189
|
+
}
|
|
190
|
+
else if (density < 0.1) {
|
|
191
|
+
// No explicit system but very few hardcoded values = implied system
|
|
192
|
+
tokenHealthScore = 10;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
tokenHealthScore = 0;
|
|
196
|
+
if (metrics.componentCount > 0) {
|
|
197
|
+
suggestions.push('No design token system detected — add tokens or a utility framework');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Pillar 3: Consistency (0-10)
|
|
201
|
+
const namingRate = metrics.namingInconsistencyCount / Math.max(metrics.componentCount, 1);
|
|
202
|
+
const consistencyScore = Math.round(10 * clamp(1 - namingRate / 0.15, 0, 1));
|
|
203
|
+
if (namingRate > 0.05) {
|
|
204
|
+
suggestions.push(`${metrics.namingInconsistencyCount} naming inconsistencies — standardize prop/component conventions`);
|
|
205
|
+
}
|
|
206
|
+
// Pillar 4: Critical Issues (0-10)
|
|
207
|
+
const criticalScore = Math.max(0, 10 - metrics.criticalCount * 5);
|
|
208
|
+
if (metrics.criticalCount > 0) {
|
|
209
|
+
suggestions.push(`${metrics.criticalCount} critical issue${metrics.criticalCount === 1 ? '' : 's'} (accessibility/contrast) — fix immediately`);
|
|
210
|
+
}
|
|
211
|
+
const total = valueDisciplineScore + tokenHealthScore + consistencyScore + criticalScore;
|
|
212
|
+
return {
|
|
213
|
+
score: total,
|
|
214
|
+
tier: getHealthTier(total),
|
|
215
|
+
pillars: {
|
|
216
|
+
valueDiscipline: {
|
|
217
|
+
name: 'Value Discipline',
|
|
218
|
+
score: valueDisciplineScore,
|
|
219
|
+
maxScore: 60,
|
|
220
|
+
description: 'Hardcoded values per component',
|
|
221
|
+
},
|
|
222
|
+
tokenHealth: {
|
|
223
|
+
name: 'Token Health',
|
|
224
|
+
score: tokenHealthScore,
|
|
225
|
+
maxScore: 20,
|
|
226
|
+
description: 'Token system adoption',
|
|
227
|
+
},
|
|
228
|
+
consistency: {
|
|
229
|
+
name: 'Consistency',
|
|
230
|
+
score: consistencyScore,
|
|
231
|
+
maxScore: 10,
|
|
232
|
+
description: 'Naming convention adherence',
|
|
233
|
+
},
|
|
234
|
+
criticalIssues: {
|
|
235
|
+
name: 'Critical Issues',
|
|
236
|
+
score: criticalScore,
|
|
237
|
+
maxScore: 10,
|
|
238
|
+
description: 'Accessibility and critical failures',
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
suggestions,
|
|
242
|
+
metrics,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
function clamp(value, min, max) {
|
|
246
|
+
return Math.min(max, Math.max(min, value));
|
|
247
|
+
}
|
|
248
|
+
export function getHealthTier(score) {
|
|
249
|
+
if (score >= 80)
|
|
250
|
+
return 'Great';
|
|
251
|
+
if (score >= 60)
|
|
252
|
+
return 'Good';
|
|
253
|
+
if (score >= 40)
|
|
254
|
+
return 'OK';
|
|
255
|
+
if (score >= 20)
|
|
256
|
+
return 'Bad';
|
|
257
|
+
return 'Terrible';
|
|
174
258
|
}
|
|
175
259
|
//# sourceMappingURL=audit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/analysis/audit.ts"],"names":[],"mappings":"AAAA,uEAAuE;
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/analysis/audit.ts"],"names":[],"mappings":"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"}
|
package/dist/analysis/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { SemanticDiffEngine, type ComponentMatch, type ComponentDifference, type
|
|
|
2
2
|
export { TokenSuggestionService, type TokenSuggestion, } from "./token-suggestions.js";
|
|
3
3
|
export { stringSimilarity, levenshteinDistance, normalizeForComparison, } from "./string-utils.js";
|
|
4
4
|
export { MATCHING_CONFIG, NAMING_CONFIG, TOKEN_SUGGESTION_CONFIG, SCANNER_CONFIG, getOutlierThreshold, } from "./config.js";
|
|
5
|
-
export { generateAuditReport, findCloseMatches, calculateHealthScore, type AuditValue, type AuditReport, type CategoryStats, type FileIssue, type CloseMatch, } from "./audit.js";
|
|
5
|
+
export { generateAuditReport, findCloseMatches, calculateHealthScore, calculateHealthScorePillar, getHealthTier, type AuditValue, type AuditReport, type CategoryStats, type FileIssue, type CloseMatch, type HealthMetrics, type HealthPillar, type HealthScoreResult, } from "./audit.js";
|
|
6
6
|
export { DriftAggregator, createStrategy, builtInStrategies, type DriftGroup, type AggregationResult, type GroupingStrategy, type AggregatorOptions, type BuiltInStrategyType, } from "./drift-aggregator.js";
|
|
7
7
|
export { detectRepeatedPatterns, normalizeClassPattern, groupPatterns, type ClassOccurrence, type PatternAnalyzerOptions, } from "./analyzers/pattern-analyzer.js";
|
|
8
8
|
export { checkVariantConsistency, groupComponentsByVariant, compareVariants, extractVariantName, type VariantGroup, type VariantDifference, } from "./analyzers/variant-analyzer.js";
|
|
@@ -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,
|
|
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,0BAA0B,EAC1B,aAAa,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,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;AAGzC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC"}
|
package/dist/analysis/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { stringSimilarity, levenshteinDistance, normalizeForComparison, } from "
|
|
|
6
6
|
// Analysis configuration
|
|
7
7
|
export { MATCHING_CONFIG, NAMING_CONFIG, TOKEN_SUGGESTION_CONFIG, SCANNER_CONFIG, getOutlierThreshold, } from "./config.js";
|
|
8
8
|
// Audit report
|
|
9
|
-
export { generateAuditReport, findCloseMatches, calculateHealthScore, } from "./audit.js";
|
|
9
|
+
export { generateAuditReport, findCloseMatches, calculateHealthScore, calculateHealthScorePillar, getHealthTier, } from "./audit.js";
|
|
10
10
|
// Drift aggregation
|
|
11
11
|
export { DriftAggregator, createStrategy, builtInStrategies, } from "./drift-aggregator.js";
|
|
12
12
|
// Pattern analyzer (experimental)
|
|
@@ -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,
|
|
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,EACpB,0BAA0B,EAC1B,aAAa,GASd,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;AAEzC,+BAA+B;AAC/B,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,GAGnB,MAAM,iCAAiC,CAAC;AAEzC,qCAAqC;AACrC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,GAGvB,MAAM,uCAAuC,CAAC;AAE/C,oCAAoC;AACpC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,UAAU,GAGX,MAAM,iCAAiC,CAAC"}
|