@buoy-design/core 0.1.1 → 0.1.3

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.
Files changed (110) hide show
  1. package/dist/analysis/audit.d.ts +47 -0
  2. package/dist/analysis/audit.d.ts.map +1 -0
  3. package/dist/analysis/audit.js +168 -0
  4. package/dist/analysis/audit.js.map +1 -0
  5. package/dist/analysis/index.d.ts +1 -0
  6. package/dist/analysis/index.d.ts.map +1 -1
  7. package/dist/analysis/index.js +2 -0
  8. package/dist/analysis/index.js.map +1 -1
  9. package/dist/analysis/semantic-diff.d.ts +15 -0
  10. package/dist/analysis/semantic-diff.d.ts.map +1 -1
  11. package/dist/analysis/semantic-diff.js +204 -1
  12. package/dist/analysis/semantic-diff.js.map +1 -1
  13. package/dist/analysis/token-suggestions.d.ts +8 -1
  14. package/dist/analysis/token-suggestions.d.ts.map +1 -1
  15. package/dist/analysis/token-suggestions.js +116 -10
  16. package/dist/analysis/token-suggestions.js.map +1 -1
  17. package/dist/extraction/css-parser.d.ts +51 -0
  18. package/dist/extraction/css-parser.d.ts.map +1 -0
  19. package/dist/extraction/css-parser.js +303 -0
  20. package/dist/extraction/css-parser.js.map +1 -0
  21. package/dist/extraction/index.d.ts +2 -0
  22. package/dist/extraction/index.d.ts.map +1 -0
  23. package/dist/extraction/index.js +2 -0
  24. package/dist/extraction/index.js.map +1 -0
  25. package/dist/graph/builder.d.ts +118 -0
  26. package/dist/graph/builder.d.ts.map +1 -0
  27. package/dist/graph/builder.js +328 -0
  28. package/dist/graph/builder.js.map +1 -0
  29. package/dist/graph/collectors/git.d.ts +90 -0
  30. package/dist/graph/collectors/git.d.ts.map +1 -0
  31. package/dist/graph/collectors/git.js +253 -0
  32. package/dist/graph/collectors/git.js.map +1 -0
  33. package/dist/graph/collectors/imports.d.ts +55 -0
  34. package/dist/graph/collectors/imports.d.ts.map +1 -0
  35. package/dist/graph/collectors/imports.js +230 -0
  36. package/dist/graph/collectors/imports.js.map +1 -0
  37. package/dist/graph/collectors/index.d.ts +9 -0
  38. package/dist/graph/collectors/index.d.ts.map +1 -0
  39. package/dist/graph/collectors/index.js +12 -0
  40. package/dist/graph/collectors/index.js.map +1 -0
  41. package/dist/graph/collectors/usages.d.ts +68 -0
  42. package/dist/graph/collectors/usages.d.ts.map +1 -0
  43. package/dist/graph/collectors/usages.js +244 -0
  44. package/dist/graph/collectors/usages.js.map +1 -0
  45. package/dist/graph/index.d.ts +11 -0
  46. package/dist/graph/index.d.ts.map +1 -0
  47. package/dist/graph/index.js +29 -0
  48. package/dist/graph/index.js.map +1 -0
  49. package/dist/graph/queries.d.ts +81 -0
  50. package/dist/graph/queries.d.ts.map +1 -0
  51. package/dist/graph/queries.js +379 -0
  52. package/dist/graph/queries.js.map +1 -0
  53. package/dist/graph/types.d.ts +184 -0
  54. package/dist/graph/types.d.ts.map +1 -0
  55. package/dist/graph/types.js +8 -0
  56. package/dist/graph/types.js.map +1 -0
  57. package/dist/index.d.ts +4 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +8 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/models/drift.d.ts +20 -4
  62. package/dist/models/drift.d.ts.map +1 -1
  63. package/dist/models/drift.js +55 -1
  64. package/dist/models/drift.js.map +1 -1
  65. package/dist/models/index.d.ts +3 -3
  66. package/dist/models/index.d.ts.map +1 -1
  67. package/dist/models/index.js +2 -2
  68. package/dist/models/index.js.map +1 -1
  69. package/dist/models/token.d.ts +57 -0
  70. package/dist/models/token.d.ts.map +1 -1
  71. package/dist/models/token.js +9 -0
  72. package/dist/models/token.js.map +1 -1
  73. package/dist/tokenization/generator.d.ts +49 -0
  74. package/dist/tokenization/generator.d.ts.map +1 -0
  75. package/dist/tokenization/generator.js +886 -0
  76. package/dist/tokenization/generator.js.map +1 -0
  77. package/dist/tokenization/index.d.ts +2 -0
  78. package/dist/tokenization/index.d.ts.map +1 -0
  79. package/dist/tokenization/index.js +2 -0
  80. package/dist/tokenization/index.js.map +1 -0
  81. package/dist/tokens/comparison.d.ts +30 -0
  82. package/dist/tokens/comparison.d.ts.map +1 -0
  83. package/dist/tokens/comparison.js +142 -0
  84. package/dist/tokens/comparison.js.map +1 -0
  85. package/dist/tokens/index.d.ts +3 -0
  86. package/dist/tokens/index.d.ts.map +1 -0
  87. package/dist/tokens/index.js +5 -0
  88. package/dist/tokens/index.js.map +1 -0
  89. package/dist/tokens/parser.d.ts +11 -0
  90. package/dist/tokens/parser.d.ts.map +1 -0
  91. package/dist/tokens/parser.js +268 -0
  92. package/dist/tokens/parser.js.map +1 -0
  93. package/package.json +14 -10
  94. package/LICENSE +0 -21
  95. package/dist/analysis/semantic-diff.test.d.ts +0 -2
  96. package/dist/analysis/semantic-diff.test.d.ts.map +0 -1
  97. package/dist/analysis/semantic-diff.test.js +0 -188
  98. package/dist/analysis/semantic-diff.test.js.map +0 -1
  99. package/dist/models/component.test.d.ts +0 -2
  100. package/dist/models/component.test.d.ts.map +0 -1
  101. package/dist/models/component.test.js +0 -55
  102. package/dist/models/component.test.js.map +0 -1
  103. package/dist/models/drift.test.d.ts +0 -2
  104. package/dist/models/drift.test.d.ts.map +0 -1
  105. package/dist/models/drift.test.js +0 -38
  106. package/dist/models/drift.test.js.map +0 -1
  107. package/dist/models/token.test.d.ts +0 -2
  108. package/dist/models/token.test.d.ts.map +0 -1
  109. package/dist/models/token.test.js +0 -168
  110. package/dist/models/token.test.js.map +0 -1
@@ -0,0 +1,303 @@
1
+ /**
2
+ * CSS Value Parser
3
+ * Extracts design values (colors, spacing, fonts, radii) from CSS text.
4
+ * Framework-agnostic - works on any CSS string.
5
+ */
6
+ // CSS color keywords (subset of most common)
7
+ const CSS_COLORS = new Set([
8
+ 'transparent', 'currentcolor', 'inherit',
9
+ 'black', 'white', 'red', 'green', 'blue', 'yellow', 'orange', 'purple',
10
+ 'pink', 'brown', 'gray', 'grey', 'cyan', 'magenta', 'lime', 'maroon',
11
+ 'navy', 'olive', 'teal', 'aqua', 'fuchsia', 'silver',
12
+ ]);
13
+ // Properties that accept color values
14
+ const COLOR_PROPERTIES = new Set([
15
+ 'color', 'background', 'background-color', 'border-color',
16
+ 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color',
17
+ 'outline-color', 'text-decoration-color', 'fill', 'stroke',
18
+ 'box-shadow', 'text-shadow', 'caret-color', 'accent-color',
19
+ ]);
20
+ // Properties for actual spacing (padding, margin, gap)
21
+ const SPACING_PROPERTIES = new Set([
22
+ 'margin', 'margin-top', 'margin-right', 'margin-bottom', 'margin-left',
23
+ 'margin-block', 'margin-inline', 'margin-block-start', 'margin-block-end',
24
+ 'margin-inline-start', 'margin-inline-end',
25
+ 'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left',
26
+ 'padding-block', 'padding-inline', 'padding-block-start', 'padding-block-end',
27
+ 'padding-inline-start', 'padding-inline-end',
28
+ 'gap', 'row-gap', 'column-gap', 'grid-gap',
29
+ ]);
30
+ // Properties for sizing (width, height)
31
+ const SIZING_PROPERTIES = new Set([
32
+ 'width', 'height', 'min-width', 'max-width', 'min-height', 'max-height',
33
+ 'flex-basis', 'block-size', 'inline-size',
34
+ ]);
35
+ // Properties for positioning
36
+ const POSITION_PROPERTIES = new Set([
37
+ 'top', 'right', 'bottom', 'left',
38
+ 'inset', 'inset-block', 'inset-inline',
39
+ 'inset-block-start', 'inset-block-end', 'inset-inline-start', 'inset-inline-end',
40
+ ]);
41
+ // Properties for font sizes
42
+ const FONT_SIZE_PROPERTIES = new Set(['font-size', 'line-height']);
43
+ // Properties for border radius
44
+ const RADIUS_PROPERTIES = new Set([
45
+ 'border-radius',
46
+ 'border-top-left-radius', 'border-top-right-radius',
47
+ 'border-bottom-left-radius', 'border-bottom-right-radius',
48
+ ]);
49
+ /**
50
+ * Parse CSS text and extract design values
51
+ */
52
+ export function parseCssValues(cssText) {
53
+ const values = [];
54
+ const errors = [];
55
+ // Extract breakpoints from media queries
56
+ const breakpoints = extractMediaQueryBreakpoints(cssText);
57
+ values.push(...breakpoints);
58
+ // Match property: value pairs
59
+ const propertyRegex = /([a-z-]+)\s*:\s*([^;{}]+)/gi;
60
+ let match;
61
+ while ((match = propertyRegex.exec(cssText)) !== null) {
62
+ const property = match[1]?.toLowerCase().trim();
63
+ const rawValue = match[2]?.trim();
64
+ if (!property || !rawValue)
65
+ continue;
66
+ // Skip CSS variables and calc expressions for now
67
+ if (rawValue.startsWith('var(') || rawValue.startsWith('calc(')) {
68
+ continue;
69
+ }
70
+ const { category, context } = categorizeProperty(property);
71
+ if (category === 'other')
72
+ continue;
73
+ // For color properties, extract color values
74
+ if (category === 'color') {
75
+ const colors = extractColorValues(rawValue);
76
+ for (const color of colors) {
77
+ values.push({
78
+ property,
79
+ value: color,
80
+ rawValue,
81
+ category: 'color',
82
+ context: 'color',
83
+ });
84
+ }
85
+ }
86
+ // For spacing/sizing/font-size/radius, extract numeric values
87
+ else {
88
+ const numerics = extractNumericValues(rawValue);
89
+ for (const numeric of numerics) {
90
+ values.push({
91
+ property,
92
+ value: numeric,
93
+ rawValue,
94
+ category,
95
+ context,
96
+ });
97
+ }
98
+ }
99
+ }
100
+ return { values, errors };
101
+ }
102
+ /**
103
+ * Extract breakpoint values from @media queries
104
+ */
105
+ function extractMediaQueryBreakpoints(cssText) {
106
+ const breakpoints = [];
107
+ // Match @media queries with width conditions
108
+ // Matches: @media (min-width: 768px), @media screen and (max-width: 1024px), etc.
109
+ const mediaQueryRegex = /@media[^{]*\{/gi;
110
+ let match;
111
+ while ((match = mediaQueryRegex.exec(cssText)) !== null) {
112
+ const mediaQuery = match[0];
113
+ // Extract min-width values
114
+ const minWidthRegex = /min-width\s*:\s*(\d+(?:\.\d+)?)(px|rem|em)/gi;
115
+ let widthMatch;
116
+ while ((widthMatch = minWidthRegex.exec(mediaQuery)) !== null) {
117
+ const num = widthMatch[1];
118
+ const unit = widthMatch[2];
119
+ if (!num || !unit)
120
+ continue;
121
+ const value = num + unit.toLowerCase();
122
+ breakpoints.push({
123
+ property: 'min-width',
124
+ value,
125
+ rawValue: mediaQuery.trim(),
126
+ category: 'breakpoint',
127
+ context: 'breakpoint',
128
+ });
129
+ }
130
+ // Extract max-width values
131
+ const maxWidthRegex = /max-width\s*:\s*(\d+(?:\.\d+)?)(px|rem|em)/gi;
132
+ while ((widthMatch = maxWidthRegex.exec(mediaQuery)) !== null) {
133
+ const num = widthMatch[1];
134
+ const unit = widthMatch[2];
135
+ if (!num || !unit)
136
+ continue;
137
+ const value = num + unit.toLowerCase();
138
+ breakpoints.push({
139
+ property: 'max-width',
140
+ value,
141
+ rawValue: mediaQuery.trim(),
142
+ category: 'breakpoint',
143
+ context: 'breakpoint',
144
+ });
145
+ }
146
+ }
147
+ return breakpoints;
148
+ }
149
+ /**
150
+ * Categorize a CSS property by type and context
151
+ */
152
+ function categorizeProperty(property) {
153
+ if (COLOR_PROPERTIES.has(property)) {
154
+ return { category: 'color', context: 'color' };
155
+ }
156
+ if (SPACING_PROPERTIES.has(property)) {
157
+ return { category: 'spacing', context: 'spacing' };
158
+ }
159
+ if (SIZING_PROPERTIES.has(property)) {
160
+ return { category: 'sizing', context: 'sizing' };
161
+ }
162
+ if (POSITION_PROPERTIES.has(property)) {
163
+ return { category: 'spacing', context: 'position' };
164
+ }
165
+ if (FONT_SIZE_PROPERTIES.has(property)) {
166
+ return { category: 'font-size', context: 'typography' };
167
+ }
168
+ if (RADIUS_PROPERTIES.has(property)) {
169
+ return { category: 'radius', context: 'radius' };
170
+ }
171
+ if (property === 'font-family') {
172
+ return { category: 'font-family', context: 'typography' };
173
+ }
174
+ return { category: 'other', context: 'other' };
175
+ }
176
+ /**
177
+ * Extract color values from a CSS value string
178
+ */
179
+ function extractColorValues(value) {
180
+ const colors = [];
181
+ // Hex colors: #rgb, #rrggbb, #rrggbbaa
182
+ const hexRegex = /#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})\b/gi;
183
+ let match;
184
+ while ((match = hexRegex.exec(value)) !== null) {
185
+ colors.push(match[0].toLowerCase());
186
+ }
187
+ // RGB/RGBA
188
+ const rgbRegex = /rgba?\s*\([^)]+\)/gi;
189
+ while ((match = rgbRegex.exec(value)) !== null) {
190
+ colors.push(normalizeRgb(match[0]));
191
+ }
192
+ // HSL/HSLA
193
+ const hslRegex = /hsla?\s*\([^)]+\)/gi;
194
+ while ((match = hslRegex.exec(value)) !== null) {
195
+ colors.push(match[0].toLowerCase());
196
+ }
197
+ // OKLCH
198
+ const oklchRegex = /oklch\s*\([^)]+\)/gi;
199
+ while ((match = oklchRegex.exec(value)) !== null) {
200
+ colors.push(match[0].toLowerCase());
201
+ }
202
+ // Named colors (only if no other colors found)
203
+ if (colors.length === 0) {
204
+ const words = value.toLowerCase().split(/\s+/);
205
+ for (const word of words) {
206
+ if (CSS_COLORS.has(word)) {
207
+ colors.push(word);
208
+ }
209
+ }
210
+ }
211
+ return colors;
212
+ }
213
+ /**
214
+ * Extract numeric values with units from a CSS value string
215
+ */
216
+ function extractNumericValues(value) {
217
+ const numerics = [];
218
+ // Match numbers with units: 16px, 1.5rem, 0.5em, etc.
219
+ const numericRegex = /(-?\d*\.?\d+)(px|rem|em|%|vh|vw|ch|ex|vmin|vmax)\b/gi;
220
+ let match;
221
+ while ((match = numericRegex.exec(value)) !== null) {
222
+ numerics.push(match[0].toLowerCase());
223
+ }
224
+ // Also match unitless 0
225
+ if (/\b0\b/.test(value) && numerics.length === 0) {
226
+ numerics.push('0');
227
+ }
228
+ return numerics;
229
+ }
230
+ /**
231
+ * Normalize RGB color format
232
+ */
233
+ function normalizeRgb(rgb) {
234
+ return rgb.toLowerCase().replace(/\s+/g, '');
235
+ }
236
+ /**
237
+ * Normalize a hex color to 6-digit format
238
+ */
239
+ export function normalizeHexColor(hex) {
240
+ hex = hex.toLowerCase();
241
+ if (hex.length === 4) {
242
+ // #rgb → #rrggbb
243
+ return `#${hex[1]}${hex[1]}${hex[2]}${hex[2]}${hex[3]}${hex[3]}`;
244
+ }
245
+ return hex;
246
+ }
247
+ /**
248
+ * Convert hex to RGB values
249
+ */
250
+ export function hexToRgb(hex) {
251
+ hex = normalizeHexColor(hex).replace('#', '');
252
+ if (hex.length !== 6)
253
+ return null;
254
+ const r = parseInt(hex.slice(0, 2), 16);
255
+ const g = parseInt(hex.slice(2, 4), 16);
256
+ const b = parseInt(hex.slice(4, 6), 16);
257
+ return { r, g, b };
258
+ }
259
+ /**
260
+ * Parse a spacing value to pixels (approximate for rem/em)
261
+ */
262
+ export function spacingToPx(value, baseFontSize = 16) {
263
+ const match = value.match(/^(-?\d*\.?\d+)(px|rem|em)?$/i);
264
+ if (!match || !match[1])
265
+ return null;
266
+ const num = parseFloat(match[1]);
267
+ const unit = (match[2] ?? 'px').toLowerCase();
268
+ switch (unit) {
269
+ case 'px':
270
+ return num;
271
+ case 'rem':
272
+ case 'em':
273
+ return num * baseFontSize;
274
+ default:
275
+ return null;
276
+ }
277
+ }
278
+ /**
279
+ * Group extracted values by category
280
+ */
281
+ export function groupByCategory(values) {
282
+ const grouped = {};
283
+ for (const value of values) {
284
+ const category = value.category;
285
+ if (!grouped[category]) {
286
+ grouped[category] = [];
287
+ }
288
+ grouped[category].push(value);
289
+ }
290
+ return grouped;
291
+ }
292
+ /**
293
+ * Count occurrences of each unique value
294
+ */
295
+ export function countOccurrences(values) {
296
+ const counts = new Map();
297
+ for (const v of values) {
298
+ const key = `${v.category}:${v.value}`;
299
+ counts.set(key, (counts.get(key) || 0) + 1);
300
+ }
301
+ return counts;
302
+ }
303
+ //# sourceMappingURL=css-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-parser.js","sourceRoot":"","sources":["../../src/extraction/css-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './css-parser.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extraction/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './css-parser.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extraction/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Graph Builder
3
+ *
4
+ * Constructs the design system knowledge graph from SQLite data.
5
+ * Uses graphology for in-memory graph operations.
6
+ */
7
+ import type { AbstractGraph } from 'graphology-types';
8
+ import type { NodeType, EdgeType, NodeAttributes, EdgeAttributes, GraphBuildOptions, GraphStats } from './types.js';
9
+ export type DesignSystemGraph = AbstractGraph<NodeAttributes, EdgeAttributes>;
10
+ /**
11
+ * Create an empty directed multigraph for the design system
12
+ */
13
+ export declare function createGraph(): DesignSystemGraph;
14
+ /**
15
+ * Generate a unique node ID
16
+ */
17
+ export declare function nodeId(type: NodeType, id: string): string;
18
+ /**
19
+ * Generate a unique edge ID
20
+ */
21
+ export declare function edgeId(type: EdgeType, sourceId: string, targetId: string): string;
22
+ /**
23
+ * Add a node to the graph if it doesn't exist
24
+ */
25
+ export declare function addNode(graph: DesignSystemGraph, type: NodeType, id: string, attributes: Omit<NodeAttributes, 'type'>): string;
26
+ /**
27
+ * Update node attributes
28
+ */
29
+ export declare function updateNode(graph: DesignSystemGraph, nid: string, attributes: Partial<NodeAttributes>): void;
30
+ /**
31
+ * Get all nodes of a specific type
32
+ */
33
+ export declare function getNodesByType(graph: DesignSystemGraph, type: NodeType): string[];
34
+ /**
35
+ * Add an edge to the graph
36
+ */
37
+ export declare function addEdge(graph: DesignSystemGraph, type: EdgeType, sourceId: string, targetId: string, attributes?: Omit<EdgeAttributes, 'type'>): string | null;
38
+ /**
39
+ * Get all edges of a specific type
40
+ */
41
+ export declare function getEdgesByType(graph: DesignSystemGraph, type: EdgeType): string[];
42
+ /**
43
+ * Get all outgoing edges of a specific type from a node
44
+ */
45
+ export declare function getOutEdgesByType(graph: DesignSystemGraph, nid: string, type: EdgeType): string[];
46
+ /**
47
+ * Get all incoming edges of a specific type to a node
48
+ */
49
+ export declare function getInEdgesByType(graph: DesignSystemGraph, nid: string, type: EdgeType): string[];
50
+ /**
51
+ * Get statistics about the graph
52
+ */
53
+ export declare function getGraphStats(graph: DesignSystemGraph): GraphStats;
54
+ /**
55
+ * Export graph to JSON format
56
+ */
57
+ export declare function exportToJSON(graph: DesignSystemGraph): object;
58
+ /**
59
+ * Import graph from JSON format
60
+ */
61
+ export declare function importFromJSON(data: ReturnType<DesignSystemGraph['export']>): DesignSystemGraph;
62
+ /**
63
+ * Export graph to DOT format for visualization
64
+ */
65
+ export declare function exportToDOT(graph: DesignSystemGraph): string;
66
+ /**
67
+ * Export graph to Cytoscape format for web visualization
68
+ */
69
+ export declare function exportToCytoscape(graph: DesignSystemGraph): object;
70
+ /**
71
+ * Builder class for constructing the graph incrementally
72
+ */
73
+ export declare class GraphBuilder {
74
+ private graph;
75
+ readonly projectId: string;
76
+ constructor(options: GraphBuildOptions);
77
+ /**
78
+ * Add a token node
79
+ */
80
+ addToken(id: string, name: string, category: string, value: string, source: string, isW3C?: boolean): string;
81
+ /**
82
+ * Add a component node
83
+ */
84
+ addComponent(id: string, name: string, filePath: string, framework: string, props?: string[], variants?: string[]): string;
85
+ /**
86
+ * Add a file node
87
+ */
88
+ addFile(id: string, path: string, lineCount?: number): string;
89
+ /**
90
+ * Add a commit node
91
+ */
92
+ addCommit(sha: string, message: string, author: string, authorEmail: string | undefined, timestamp: Date): string;
93
+ /**
94
+ * Add a developer node
95
+ */
96
+ addDeveloper(id: string, name: string, email: string, githubLogin?: string, commitCount?: number): string;
97
+ /**
98
+ * Add a PR node
99
+ */
100
+ addPR(id: string, number: number, title: string, state: 'open' | 'closed' | 'merged', authorLogin?: string): string;
101
+ /**
102
+ * Add a drift signal node
103
+ */
104
+ addDriftSignal(id: string, driftType: string, severity: string, message: string, resolved?: boolean): string;
105
+ /**
106
+ * Add an edge between nodes
107
+ */
108
+ addEdge(type: EdgeType, sourceId: string, targetId: string, attributes?: Omit<EdgeAttributes, 'type'>): string | null;
109
+ /**
110
+ * Get the built graph
111
+ */
112
+ build(): DesignSystemGraph;
113
+ /**
114
+ * Get graph statistics
115
+ */
116
+ getStats(): GraphStats;
117
+ }
118
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/graph/builder.ts"],"names":[],"mappings":"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"}