@buoy-design/core 0.1.0 → 0.1.2

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 (117) 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/config.d.ts +66 -0
  6. package/dist/analysis/config.d.ts.map +1 -0
  7. package/dist/analysis/config.js +68 -0
  8. package/dist/analysis/config.js.map +1 -0
  9. package/dist/analysis/index.d.ts +5 -1
  10. package/dist/analysis/index.d.ts.map +1 -1
  11. package/dist/analysis/index.js +9 -1
  12. package/dist/analysis/index.js.map +1 -1
  13. package/dist/analysis/semantic-diff.d.ts +50 -4
  14. package/dist/analysis/semantic-diff.d.ts.map +1 -1
  15. package/dist/analysis/semantic-diff.js +454 -212
  16. package/dist/analysis/semantic-diff.js.map +1 -1
  17. package/dist/analysis/string-utils.d.ts +18 -0
  18. package/dist/analysis/string-utils.d.ts.map +1 -0
  19. package/dist/analysis/string-utils.js +47 -0
  20. package/dist/analysis/string-utils.js.map +1 -0
  21. package/dist/analysis/token-suggestions.d.ts +66 -0
  22. package/dist/analysis/token-suggestions.d.ts.map +1 -0
  23. package/dist/analysis/token-suggestions.js +270 -0
  24. package/dist/analysis/token-suggestions.js.map +1 -0
  25. package/dist/extraction/css-parser.d.ts +51 -0
  26. package/dist/extraction/css-parser.d.ts.map +1 -0
  27. package/dist/extraction/css-parser.js +303 -0
  28. package/dist/extraction/css-parser.js.map +1 -0
  29. package/dist/extraction/index.d.ts +2 -0
  30. package/dist/extraction/index.d.ts.map +1 -0
  31. package/dist/extraction/index.js +2 -0
  32. package/dist/extraction/index.js.map +1 -0
  33. package/dist/graph/builder.d.ts +118 -0
  34. package/dist/graph/builder.d.ts.map +1 -0
  35. package/dist/graph/builder.js +328 -0
  36. package/dist/graph/builder.js.map +1 -0
  37. package/dist/graph/collectors/git.d.ts +90 -0
  38. package/dist/graph/collectors/git.d.ts.map +1 -0
  39. package/dist/graph/collectors/git.js +253 -0
  40. package/dist/graph/collectors/git.js.map +1 -0
  41. package/dist/graph/collectors/imports.d.ts +55 -0
  42. package/dist/graph/collectors/imports.d.ts.map +1 -0
  43. package/dist/graph/collectors/imports.js +230 -0
  44. package/dist/graph/collectors/imports.js.map +1 -0
  45. package/dist/graph/collectors/index.d.ts +9 -0
  46. package/dist/graph/collectors/index.d.ts.map +1 -0
  47. package/dist/graph/collectors/index.js +12 -0
  48. package/dist/graph/collectors/index.js.map +1 -0
  49. package/dist/graph/collectors/usages.d.ts +68 -0
  50. package/dist/graph/collectors/usages.d.ts.map +1 -0
  51. package/dist/graph/collectors/usages.js +244 -0
  52. package/dist/graph/collectors/usages.js.map +1 -0
  53. package/dist/graph/index.d.ts +11 -0
  54. package/dist/graph/index.d.ts.map +1 -0
  55. package/dist/graph/index.js +29 -0
  56. package/dist/graph/index.js.map +1 -0
  57. package/dist/graph/queries.d.ts +81 -0
  58. package/dist/graph/queries.d.ts.map +1 -0
  59. package/dist/graph/queries.js +379 -0
  60. package/dist/graph/queries.js.map +1 -0
  61. package/dist/graph/types.d.ts +135 -0
  62. package/dist/graph/types.d.ts.map +1 -0
  63. package/dist/graph/types.js +8 -0
  64. package/dist/graph/types.js.map +1 -0
  65. package/dist/index.d.ts +4 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +8 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/models/drift.d.ts +15 -18
  70. package/dist/models/drift.d.ts.map +1 -1
  71. package/dist/models/drift.js +83 -58
  72. package/dist/models/drift.js.map +1 -1
  73. package/dist/models/index.d.ts +4 -4
  74. package/dist/models/index.d.ts.map +1 -1
  75. package/dist/models/index.js +2 -2
  76. package/dist/models/index.js.map +1 -1
  77. package/dist/models/token.d.ts +57 -0
  78. package/dist/models/token.d.ts.map +1 -1
  79. package/dist/models/token.js +9 -0
  80. package/dist/models/token.js.map +1 -1
  81. package/dist/tokenization/generator.d.ts +49 -0
  82. package/dist/tokenization/generator.d.ts.map +1 -0
  83. package/dist/tokenization/generator.js +886 -0
  84. package/dist/tokenization/generator.js.map +1 -0
  85. package/dist/tokenization/index.d.ts +2 -0
  86. package/dist/tokenization/index.d.ts.map +1 -0
  87. package/dist/tokenization/index.js +2 -0
  88. package/dist/tokenization/index.js.map +1 -0
  89. package/dist/tokens/comparison.d.ts +30 -0
  90. package/dist/tokens/comparison.d.ts.map +1 -0
  91. package/dist/tokens/comparison.js +142 -0
  92. package/dist/tokens/comparison.js.map +1 -0
  93. package/dist/tokens/index.d.ts +3 -0
  94. package/dist/tokens/index.d.ts.map +1 -0
  95. package/dist/tokens/index.js +5 -0
  96. package/dist/tokens/index.js.map +1 -0
  97. package/dist/tokens/parser.d.ts +11 -0
  98. package/dist/tokens/parser.d.ts.map +1 -0
  99. package/dist/tokens/parser.js +268 -0
  100. package/dist/tokens/parser.js.map +1 -0
  101. package/package.json +15 -3
  102. package/dist/analysis/semantic-diff.test.d.ts +0 -2
  103. package/dist/analysis/semantic-diff.test.d.ts.map +0 -1
  104. package/dist/analysis/semantic-diff.test.js +0 -188
  105. package/dist/analysis/semantic-diff.test.js.map +0 -1
  106. package/dist/models/component.test.d.ts +0 -2
  107. package/dist/models/component.test.d.ts.map +0 -1
  108. package/dist/models/component.test.js +0 -55
  109. package/dist/models/component.test.js.map +0 -1
  110. package/dist/models/drift.test.d.ts +0 -2
  111. package/dist/models/drift.test.d.ts.map +0 -1
  112. package/dist/models/drift.test.js +0 -38
  113. package/dist/models/drift.test.js.map +0 -1
  114. package/dist/models/token.test.d.ts +0 -2
  115. package/dist/models/token.test.d.ts.map +0 -1
  116. package/dist/models/token.test.js +0 -168
  117. package/dist/models/token.test.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/graph/collectors/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Import Collector
3
+ *
4
+ * Extracts ES module import relationships between files.
5
+ * Creates a dependency graph for impact analysis.
6
+ */
7
+ export type ImportType = 'default' | 'named' | 'namespace' | 'side-effect' | 'dynamic';
8
+ export interface FileImport {
9
+ sourceFile: string;
10
+ targetFile: string;
11
+ importType: ImportType;
12
+ importedNames: string[];
13
+ rawSpecifier: string;
14
+ isExternal: boolean;
15
+ lineNumber: number;
16
+ }
17
+ export interface ImportCollectorOptions {
18
+ projectRoot: string;
19
+ include?: string[];
20
+ exclude?: string[];
21
+ /** Resolve paths to actual files (slower but more accurate) */
22
+ resolvePaths?: boolean;
23
+ /** Include node_modules imports */
24
+ includeExternal?: boolean;
25
+ }
26
+ export interface ImportCollectorResult {
27
+ imports: FileImport[];
28
+ externalDependencies: Set<string>;
29
+ stats: {
30
+ filesScanned: number;
31
+ importsFound: number;
32
+ externalPackages: number;
33
+ };
34
+ }
35
+ /**
36
+ * Collect import relationships from the codebase
37
+ */
38
+ export declare function collectImports(options: ImportCollectorOptions): Promise<ImportCollectorResult>;
39
+ /**
40
+ * Get all files that import a specific file
41
+ */
42
+ export declare function findImportersOf(projectRoot: string, targetFile: string): Promise<FileImport[]>;
43
+ /**
44
+ * Get all files imported by a specific file
45
+ */
46
+ export declare function findImportsOf(projectRoot: string, sourceFile: string): Promise<FileImport[]>;
47
+ /**
48
+ * Build a dependency graph from imports
49
+ */
50
+ export declare function buildDependencyGraph(projectRoot: string): Promise<Map<string, Set<string>>>;
51
+ /**
52
+ * Find circular dependencies
53
+ */
54
+ export declare function findCircularDependencies(projectRoot: string): Promise<string[][]>;
55
+ //# sourceMappingURL=imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../src/graph/collectors/imports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAEvF,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AA8CD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA2KhC;AAiHD;;GAEG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CAWvB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CAGvB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAcnC;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAgCrB"}
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Import Collector
3
+ *
4
+ * Extracts ES module import relationships between files.
5
+ * Creates a dependency graph for impact analysis.
6
+ */
7
+ import { readFile } from 'fs/promises';
8
+ import { glob } from 'glob';
9
+ import { join, dirname, resolve, relative } from 'path';
10
+ import { existsSync } from 'fs';
11
+ // ============================================================================
12
+ // Patterns
13
+ // ============================================================================
14
+ // ES import patterns
15
+ const IMPORT_PATTERNS = {
16
+ // import defaultExport from 'module'
17
+ default: /import\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s+from\s+['"]([^'"]+)['"]/g,
18
+ // import { named1, named2 } from 'module'
19
+ named: /import\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g,
20
+ // import * as namespace from 'module'
21
+ namespace: /import\s*\*\s*as\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s+from\s+['"]([^'"]+)['"]/g,
22
+ // import 'module' (side effect)
23
+ sideEffect: /import\s+['"]([^'"]+)['"]/g,
24
+ // import defaultExport, { named } from 'module'
25
+ mixed: /import\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*,\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g,
26
+ // const x = await import('module') or import('module')
27
+ dynamic: /import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
28
+ // require('module') - CommonJS
29
+ require: /require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
30
+ };
31
+ // Re-export patterns
32
+ const REEXPORT_PATTERNS = {
33
+ // export { named } from 'module'
34
+ named: /export\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g,
35
+ // export * from 'module'
36
+ all: /export\s*\*\s*from\s*['"]([^'"]+)['"]/g,
37
+ // export { default } from 'module'
38
+ default: /export\s*\{\s*default\s*(?:as\s+[a-zA-Z_$][a-zA-Z0-9_$]*)?\s*\}\s*from\s*['"]([^'"]+)['"]/g,
39
+ };
40
+ // ============================================================================
41
+ // Collector
42
+ // ============================================================================
43
+ /**
44
+ * Collect import relationships from the codebase
45
+ */
46
+ export async function collectImports(options) {
47
+ const { projectRoot, include = ['**/*.{ts,tsx,js,jsx,mjs,cjs}'], exclude = ['**/node_modules/**', '**/dist/**', '**/build/**'], resolvePaths = true, includeExternal = false, } = options;
48
+ const files = await glob(include, {
49
+ cwd: projectRoot,
50
+ ignore: exclude,
51
+ absolute: false,
52
+ });
53
+ const imports = [];
54
+ const externalDependencies = new Set();
55
+ for (const file of files) {
56
+ const fullPath = join(projectRoot, file);
57
+ let content;
58
+ try {
59
+ content = await readFile(fullPath, 'utf-8');
60
+ }
61
+ catch {
62
+ continue;
63
+ }
64
+ const lines = content.split('\n');
65
+ const fileDir = dirname(fullPath);
66
+ // Collect all import types
67
+ collectImportPattern(content, lines, file, fileDir, projectRoot, IMPORT_PATTERNS.default, 'default', imports, externalDependencies, resolvePaths, includeExternal, (match) => [match[1] ?? 'default'], (match) => match[2] ?? '');
68
+ collectImportPattern(content, lines, file, fileDir, projectRoot, IMPORT_PATTERNS.named, 'named', imports, externalDependencies, resolvePaths, includeExternal, (match) => parseNamedImports(match[1] ?? ''), (match) => match[2] ?? '');
69
+ collectImportPattern(content, lines, file, fileDir, projectRoot, IMPORT_PATTERNS.namespace, 'namespace', imports, externalDependencies, resolvePaths, includeExternal, (match) => [match[1] ?? '*'], (match) => match[2] ?? '');
70
+ collectImportPattern(content, lines, file, fileDir, projectRoot, IMPORT_PATTERNS.sideEffect, 'side-effect', imports, externalDependencies, resolvePaths, includeExternal, () => [], (match) => match[1] ?? '');
71
+ collectImportPattern(content, lines, file, fileDir, projectRoot, IMPORT_PATTERNS.mixed, 'named', imports, externalDependencies, resolvePaths, includeExternal, (match) => [match[1] ?? 'default', ...parseNamedImports(match[2] ?? '')], (match) => match[3] ?? '');
72
+ collectImportPattern(content, lines, file, fileDir, projectRoot, IMPORT_PATTERNS.dynamic, 'dynamic', imports, externalDependencies, resolvePaths, includeExternal, () => ['*'], (match) => match[1] ?? '');
73
+ // Collect re-exports
74
+ collectImportPattern(content, lines, file, fileDir, projectRoot, REEXPORT_PATTERNS.named, 'named', imports, externalDependencies, resolvePaths, includeExternal, (match) => parseNamedImports(match[1] ?? ''), (match) => match[2] ?? '');
75
+ collectImportPattern(content, lines, file, fileDir, projectRoot, REEXPORT_PATTERNS.all, 'namespace', imports, externalDependencies, resolvePaths, includeExternal, () => ['*'], (match) => match[1] ?? '');
76
+ }
77
+ return {
78
+ imports,
79
+ externalDependencies,
80
+ stats: {
81
+ filesScanned: files.length,
82
+ importsFound: imports.length,
83
+ externalPackages: externalDependencies.size,
84
+ },
85
+ };
86
+ }
87
+ // ============================================================================
88
+ // Helpers
89
+ // ============================================================================
90
+ function collectImportPattern(content, _lines, sourceFile, fileDir, projectRoot, pattern, importType, imports, externalDependencies, resolvePaths, includeExternal, getNames, getSpecifier) {
91
+ // Reset pattern
92
+ pattern.lastIndex = 0;
93
+ let match;
94
+ while ((match = pattern.exec(content)) !== null) {
95
+ const rawSpecifier = getSpecifier(match);
96
+ if (!rawSpecifier)
97
+ continue;
98
+ const isExternal = !rawSpecifier.startsWith('.') && !rawSpecifier.startsWith('/');
99
+ // Track external dependencies
100
+ if (isExternal) {
101
+ const packageName = getPackageName(rawSpecifier);
102
+ externalDependencies.add(packageName);
103
+ if (!includeExternal)
104
+ continue;
105
+ }
106
+ // Resolve target file
107
+ let targetFile = rawSpecifier;
108
+ if (!isExternal && resolvePaths) {
109
+ targetFile = resolveImportPath(rawSpecifier, fileDir, projectRoot);
110
+ }
111
+ // Get line number
112
+ const lineNumber = getLineNumber(content, match.index);
113
+ imports.push({
114
+ sourceFile,
115
+ targetFile,
116
+ importType,
117
+ importedNames: getNames(match),
118
+ rawSpecifier,
119
+ isExternal,
120
+ lineNumber,
121
+ });
122
+ }
123
+ }
124
+ function parseNamedImports(namedString) {
125
+ return namedString
126
+ .split(',')
127
+ .map((s) => s.trim())
128
+ .filter((s) => s.length > 0)
129
+ .map((s) => {
130
+ // Handle "original as alias"
131
+ const parts = s.split(/\s+as\s+/);
132
+ return parts[0]?.trim() ?? s;
133
+ });
134
+ }
135
+ function getPackageName(specifier) {
136
+ // Handle scoped packages: @scope/package/path -> @scope/package
137
+ if (specifier.startsWith('@')) {
138
+ const parts = specifier.split('/');
139
+ return parts.slice(0, 2).join('/');
140
+ }
141
+ // Regular packages: package/path -> package
142
+ return specifier.split('/')[0] ?? specifier;
143
+ }
144
+ function resolveImportPath(specifier, fromDir, projectRoot) {
145
+ // Resolve the path
146
+ const absolutePath = resolve(fromDir, specifier);
147
+ // Try common extensions
148
+ const extensions = ['', '.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '/index.ts', '/index.tsx', '/index.js'];
149
+ for (const ext of extensions) {
150
+ const tryPath = absolutePath + ext;
151
+ if (existsSync(tryPath)) {
152
+ return relative(projectRoot, tryPath);
153
+ }
154
+ }
155
+ // Return as-is if not found
156
+ return relative(projectRoot, absolutePath);
157
+ }
158
+ function getLineNumber(content, index) {
159
+ const before = content.slice(0, index);
160
+ return (before.match(/\n/g) ?? []).length + 1;
161
+ }
162
+ // ============================================================================
163
+ // Specialized Functions
164
+ // ============================================================================
165
+ /**
166
+ * Get all files that import a specific file
167
+ */
168
+ export async function findImportersOf(projectRoot, targetFile) {
169
+ const result = await collectImports({ projectRoot });
170
+ const normalizedTarget = targetFile.replace(/\.(ts|tsx|js|jsx)$/, '');
171
+ return result.imports.filter((imp) => {
172
+ const normalizedImport = imp.targetFile.replace(/\.(ts|tsx|js|jsx)$/, '');
173
+ return (normalizedImport === normalizedTarget ||
174
+ normalizedImport.endsWith('/' + normalizedTarget));
175
+ });
176
+ }
177
+ /**
178
+ * Get all files imported by a specific file
179
+ */
180
+ export async function findImportsOf(projectRoot, sourceFile) {
181
+ const result = await collectImports({ projectRoot });
182
+ return result.imports.filter((imp) => imp.sourceFile === sourceFile);
183
+ }
184
+ /**
185
+ * Build a dependency graph from imports
186
+ */
187
+ export async function buildDependencyGraph(projectRoot) {
188
+ const result = await collectImports({ projectRoot });
189
+ const graph = new Map();
190
+ for (const imp of result.imports) {
191
+ if (imp.isExternal)
192
+ continue;
193
+ if (!graph.has(imp.sourceFile)) {
194
+ graph.set(imp.sourceFile, new Set());
195
+ }
196
+ graph.get(imp.sourceFile)?.add(imp.targetFile);
197
+ }
198
+ return graph;
199
+ }
200
+ /**
201
+ * Find circular dependencies
202
+ */
203
+ export async function findCircularDependencies(projectRoot) {
204
+ const graph = await buildDependencyGraph(projectRoot);
205
+ const cycles = [];
206
+ const visited = new Set();
207
+ const stack = new Set();
208
+ function dfs(node, path) {
209
+ if (stack.has(node)) {
210
+ // Found a cycle
211
+ const cycleStart = path.indexOf(node);
212
+ cycles.push(path.slice(cycleStart));
213
+ return;
214
+ }
215
+ if (visited.has(node))
216
+ return;
217
+ visited.add(node);
218
+ stack.add(node);
219
+ const deps = graph.get(node) ?? new Set();
220
+ for (const dep of deps) {
221
+ dfs(dep, [...path, node]);
222
+ }
223
+ stack.delete(node);
224
+ }
225
+ for (const node of graph.keys()) {
226
+ dfs(node, []);
227
+ }
228
+ return cycles;
229
+ }
230
+ //# sourceMappingURL=imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../src/graph/collectors/imports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAsChC,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,qBAAqB;AACrB,MAAM,eAAe,GAAG;IACtB,qCAAqC;IACrC,OAAO,EAAE,gEAAgE;IAEzE,0CAA0C;IAC1C,KAAK,EAAE,iDAAiD;IAExD,sCAAsC;IACtC,SAAS,EAAE,0EAA0E;IAErF,gCAAgC;IAChC,UAAU,EAAE,4BAA4B;IAExC,gDAAgD;IAChD,KAAK,EAAE,kFAAkF;IAEzF,uDAAuD;IACvD,OAAO,EAAE,sCAAsC;IAE/C,+BAA+B;IAC/B,OAAO,EAAE,uCAAuC;CACjD,CAAC;AAEF,qBAAqB;AACrB,MAAM,iBAAiB,GAAG;IACxB,iCAAiC;IACjC,KAAK,EAAE,iDAAiD;IAExD,yBAAyB;IACzB,GAAG,EAAE,wCAAwC;IAE7C,mCAAmC;IACnC,OAAO,EAAE,4FAA4F;CACtG,CAAC;AAEF,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA+B;IAE/B,MAAM,EACJ,WAAW,EACX,OAAO,GAAG,CAAC,8BAA8B,CAAC,EAC1C,OAAO,GAAG,CAAC,oBAAoB,EAAE,YAAY,EAAE,aAAa,CAAC,EAC7D,YAAY,GAAG,IAAI,EACnB,eAAe,GAAG,KAAK,GACxB,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;QAChC,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,OAAe,CAAC;QAEpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAElC,2BAA2B;QAC3B,oBAAoB,CAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,eAAe,CAAC,OAAO,EACvB,SAAS,EACT,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAClC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1B,CAAC;QAEF,oBAAoB,CAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,eAAe,CAAC,KAAK,EACrB,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1B,CAAC;QAEF,oBAAoB,CAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,eAAe,CAAC,SAAS,EACzB,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAC5B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1B,CAAC;QAEF,oBAAoB,CAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,eAAe,CAAC,UAAU,EAC1B,aAAa,EACb,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,GAAG,EAAE,CAAC,EAAE,EACR,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1B,CAAC;QAEF,oBAAoB,CAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,eAAe,CAAC,KAAK,EACrB,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EACxE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1B,CAAC;QAEF,oBAAoB,CAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,eAAe,CAAC,OAAO,EACvB,SAAS,EACT,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EACX,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1B,CAAC;QAEF,qBAAqB;QACrB,oBAAoB,CAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,iBAAiB,CAAC,KAAK,EACvB,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1B,CAAC;QAEF,oBAAoB,CAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,iBAAiB,CAAC,GAAG,EACrB,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EACX,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO;QACP,oBAAoB;QACpB,KAAK,EAAE;YACL,YAAY,EAAE,KAAK,CAAC,MAAM;YAC1B,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,gBAAgB,EAAE,oBAAoB,CAAC,IAAI;SAC5C;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,SAAS,oBAAoB,CAC3B,OAAe,EACf,MAAgB,EAChB,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,OAAe,EACf,UAAsB,EACtB,OAAqB,EACrB,oBAAiC,EACjC,YAAqB,EACrB,eAAwB,EACxB,QAA8C,EAC9C,YAAgD;IAEhD,gBAAgB;IAChB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IAEtB,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY;YAAE,SAAS;QAE5B,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAElF,8BAA8B;QAC9B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YACjD,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAEtC,IAAI,CAAC,eAAe;gBAAE,SAAS;QACjC,CAAC;QAED,sBAAsB;QACtB,IAAI,UAAU,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,UAAU,IAAI,YAAY,EAAE,CAAC;YAChC,UAAU,GAAG,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACrE,CAAC;QAED,kBAAkB;QAClB,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEvD,OAAO,CAAC,IAAI,CAAC;YACX,UAAU;YACV,UAAU;YACV,UAAU;YACV,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC;YAC9B,YAAY;YACZ,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAmB;IAC5C,OAAO,WAAW;SACf,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,6BAA6B;QAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,gEAAgE;IAChE,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,4CAA4C;IAC5C,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,iBAAiB,CACxB,SAAiB,EACjB,OAAe,EACf,WAAmB;IAEnB,mBAAmB;IACnB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEjD,wBAAwB;IACxB,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAE9G,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,YAAY,GAAG,GAAG,CAAC;QACnC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,OAAO,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,KAAa;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAEtE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,MAAM,gBAAgB,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAC1E,OAAO,CACL,gBAAgB,KAAK,gBAAgB;YACrC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAClD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB;IAEnB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,UAAU;YAAE,SAAS;QAE7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,SAAS,GAAG,CAAC,IAAY,EAAE,IAAc;QACvC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,gBAAgB;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QAE9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Graph Collectors
3
+ *
4
+ * Extract data from various sources to populate the knowledge graph.
5
+ */
6
+ export { collectGitHistory, collectDesignSystemHistory, getFileHistory, getFileBlame, isGitRepository, getCurrentBranch, getRemoteUrl, type CollectedCommit, type CollectedDeveloper, type FileChange, type GitCollectorOptions, type GitCollectorResult, } from './git.js';
7
+ export { collectUsages, findHardcodedColors, findCSSVariableUsages, findTokenUsagesInFiles, findComponentUsagesInFiles, type TokenUsage, type ComponentUsage, type UsageType, type UsageCollectorOptions, type UsageCollectorResult, } from './usages.js';
8
+ export { collectImports, findImportersOf, findImportsOf, buildDependencyGraph, findCircularDependencies, type FileImport, type ImportType, type ImportCollectorOptions, type ImportCollectorResult, } from './imports.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graph/collectors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Graph Collectors
3
+ *
4
+ * Extract data from various sources to populate the knowledge graph.
5
+ */
6
+ // Git history
7
+ export { collectGitHistory, collectDesignSystemHistory, getFileHistory, getFileBlame, isGitRepository, getCurrentBranch, getRemoteUrl, } from './git.js';
8
+ // Token and component usages
9
+ export { collectUsages, findHardcodedColors, findCSSVariableUsages, findTokenUsagesInFiles, findComponentUsagesInFiles, } from './usages.js';
10
+ // Import relationships
11
+ export { collectImports, findImportersOf, findImportsOf, buildDependencyGraph, findCircularDependencies, } from './imports.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/collectors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc;AACd,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,GAMb,MAAM,UAAU,CAAC;AAElB,6BAA6B;AAC7B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,GAM3B,MAAM,aAAa,CAAC;AAErB,uBAAuB;AACvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,wBAAwB,GAKzB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Usage Collector
3
+ *
4
+ * Finds where tokens and components are used across the codebase.
5
+ * Detects CSS variables, Tailwind classes, and hardcoded values.
6
+ */
7
+ export type UsageType = 'css-var' | 'tailwind' | 'js-import' | 'hardcoded' | 'scss-var';
8
+ export interface TokenUsage {
9
+ tokenName: string;
10
+ filePath: string;
11
+ lineNumber: number;
12
+ columnNumber: number;
13
+ usageType: UsageType;
14
+ context: string;
15
+ rawValue?: string;
16
+ }
17
+ export interface ComponentUsage {
18
+ componentName: string;
19
+ filePath: string;
20
+ lineNumber: number;
21
+ propsUsed: string[];
22
+ hasChildren: boolean;
23
+ context: string;
24
+ }
25
+ export interface UsageCollectorOptions {
26
+ /** Root directory to scan */
27
+ projectRoot: string;
28
+ /** File patterns to include */
29
+ include?: string[];
30
+ /** File patterns to exclude */
31
+ exclude?: string[];
32
+ /** Known token names to match against */
33
+ knownTokens?: string[];
34
+ /** Known component names to match against */
35
+ knownComponents?: string[];
36
+ }
37
+ export interface UsageCollectorResult {
38
+ tokenUsages: TokenUsage[];
39
+ componentUsages: ComponentUsage[];
40
+ hardcodedValues: TokenUsage[];
41
+ stats: {
42
+ filesScanned: number;
43
+ tokenUsagesFound: number;
44
+ componentUsagesFound: number;
45
+ hardcodedValuesFound: number;
46
+ };
47
+ }
48
+ /**
49
+ * Collect token and component usages from the codebase
50
+ */
51
+ export declare function collectUsages(options: UsageCollectorOptions): Promise<UsageCollectorResult>;
52
+ /**
53
+ * Find all hardcoded color values in the codebase
54
+ */
55
+ export declare function findHardcodedColors(projectRoot: string): Promise<TokenUsage[]>;
56
+ /**
57
+ * Find all CSS variable usages
58
+ */
59
+ export declare function findCSSVariableUsages(projectRoot: string): Promise<TokenUsage[]>;
60
+ /**
61
+ * Find usages of a specific token
62
+ */
63
+ export declare function findTokenUsagesInFiles(projectRoot: string, tokenName: string): Promise<TokenUsage[]>;
64
+ /**
65
+ * Find usages of a specific component
66
+ */
67
+ export declare function findComponentUsagesInFiles(projectRoot: string, componentName: string): Promise<ComponentUsage[]>;
68
+ //# sourceMappingURL=usages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usages.d.ts","sourceRoot":"","sources":["../../../src/graph/collectors/usages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAExF,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AA+BD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAiI/B;AA4JD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CAQvB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CAGvB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,EAAE,CAAC,CAMvB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,EAAE,CAAC,CAM3B"}