@buoy-design/scanners 0.2.0 → 0.2.26
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/LICENSE +21 -0
- package/dist/design-systems/index.d.ts +6 -0
- package/dist/design-systems/index.d.ts.map +1 -0
- package/dist/design-systems/index.js +6 -0
- package/dist/design-systems/index.js.map +1 -0
- package/dist/design-systems/library-detector.d.ts +53 -0
- package/dist/design-systems/library-detector.d.ts.map +1 -0
- package/dist/design-systems/library-detector.js +183 -0
- package/dist/design-systems/library-detector.js.map +1 -0
- package/dist/extractors/css-in-js.d.ts +20 -0
- package/dist/extractors/css-in-js.d.ts.map +1 -0
- package/dist/extractors/css-in-js.js +284 -0
- package/dist/extractors/css-in-js.js.map +1 -0
- package/dist/extractors/html-style.d.ts +1 -1
- package/dist/extractors/html-style.d.ts.map +1 -1
- package/dist/extractors/index.d.ts +1 -0
- package/dist/extractors/index.d.ts.map +1 -1
- package/dist/extractors/index.js +1 -0
- package/dist/extractors/index.js.map +1 -1
- package/dist/figma/client.d.ts +4 -0
- package/dist/figma/client.d.ts.map +1 -1
- package/dist/figma/client.js.map +1 -1
- package/dist/figma/component-scanner.d.ts +67 -1
- package/dist/figma/component-scanner.d.ts.map +1 -1
- package/dist/figma/component-scanner.js +162 -1
- package/dist/figma/component-scanner.js.map +1 -1
- package/dist/figma/index.d.ts +1 -1
- package/dist/figma/index.d.ts.map +1 -1
- package/dist/figma/index.js.map +1 -1
- package/dist/git/angular-scanner.d.ts +78 -1
- package/dist/git/angular-scanner.d.ts.map +1 -1
- package/dist/git/angular-scanner.js +249 -6
- package/dist/git/angular-scanner.js.map +1 -1
- package/dist/git/index.d.ts +4 -3
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +1 -0
- package/dist/git/index.js.map +1 -1
- package/dist/git/nextjs-scanner.d.ts +190 -0
- package/dist/git/nextjs-scanner.d.ts.map +1 -0
- package/dist/git/nextjs-scanner.js +979 -0
- package/dist/git/nextjs-scanner.js.map +1 -0
- package/dist/git/react-scanner.d.ts +74 -1
- package/dist/git/react-scanner.d.ts.map +1 -1
- package/dist/git/react-scanner.js +223 -9
- package/dist/git/react-scanner.js.map +1 -1
- package/dist/git/token-scanner.d.ts.map +1 -1
- package/dist/git/token-scanner.js +32 -2
- package/dist/git/token-scanner.js.map +1 -1
- package/dist/git/vue-scanner.d.ts +43 -1
- package/dist/git/vue-scanner.d.ts.map +1 -1
- package/dist/git/vue-scanner.js +130 -4
- package/dist/git/vue-scanner.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/signals/extractors/arbitrary-value.d.ts +7 -0
- package/dist/signals/extractors/arbitrary-value.d.ts.map +1 -0
- package/dist/signals/extractors/arbitrary-value.js +57 -0
- package/dist/signals/extractors/arbitrary-value.js.map +1 -0
- package/dist/signals/extractors/breakpoint.d.ts +6 -0
- package/dist/signals/extractors/breakpoint.d.ts.map +1 -0
- package/dist/signals/extractors/breakpoint.js +41 -0
- package/dist/signals/extractors/breakpoint.js.map +1 -0
- package/dist/signals/extractors/index.d.ts +7 -0
- package/dist/signals/extractors/index.d.ts.map +1 -1
- package/dist/signals/extractors/index.js +7 -0
- package/dist/signals/extractors/index.js.map +1 -1
- package/dist/signals/extractors/inline-style.d.ts +6 -0
- package/dist/signals/extractors/inline-style.d.ts.map +1 -0
- package/dist/signals/extractors/inline-style.js +60 -0
- package/dist/signals/extractors/inline-style.js.map +1 -0
- package/dist/signals/extractors/radius.d.ts +3 -0
- package/dist/signals/extractors/radius.d.ts.map +1 -0
- package/dist/signals/extractors/radius.js +32 -0
- package/dist/signals/extractors/radius.js.map +1 -0
- package/dist/signals/extractors/shadow.d.ts +3 -0
- package/dist/signals/extractors/shadow.d.ts.map +1 -0
- package/dist/signals/extractors/shadow.js +41 -0
- package/dist/signals/extractors/shadow.js.map +1 -0
- package/dist/signals/extractors/sizing.d.ts +6 -0
- package/dist/signals/extractors/sizing.d.ts.map +1 -0
- package/dist/signals/extractors/sizing.js +60 -0
- package/dist/signals/extractors/sizing.js.map +1 -0
- package/dist/signals/extractors/z-index.d.ts +3 -0
- package/dist/signals/extractors/z-index.d.ts.map +1 -0
- package/dist/signals/extractors/z-index.js +30 -0
- package/dist/signals/extractors/z-index.js.map +1 -0
- package/dist/signals/scanner-integration.d.ts.map +1 -1
- package/dist/signals/scanner-integration.js +35 -0
- package/dist/signals/scanner-integration.js.map +1 -1
- package/dist/signals/types.d.ts +4 -4
- package/dist/signals/types.d.ts.map +1 -1
- package/dist/signals/types.js +4 -0
- package/dist/signals/types.js.map +1 -1
- package/dist/storybook/extractor.d.ts +106 -1
- package/dist/storybook/extractor.d.ts.map +1 -1
- package/dist/storybook/extractor.js +325 -5
- package/dist/storybook/extractor.js.map +1 -1
- package/dist/storybook/index.d.ts +1 -1
- package/dist/storybook/index.d.ts.map +1 -1
- package/dist/storybook/index.js.map +1 -1
- package/dist/tailwind/index.d.ts +1 -1
- package/dist/tailwind/index.d.ts.map +1 -1
- package/dist/tailwind/index.js.map +1 -1
- package/dist/tailwind/scanner.d.ts +32 -0
- package/dist/tailwind/scanner.d.ts.map +1 -1
- package/dist/tailwind/scanner.js +105 -0
- package/dist/tailwind/scanner.js.map +1 -1
- package/package.json +12 -12
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Buoy
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design System Detection
|
|
3
|
+
* Detects which UI component libraries are in use.
|
|
4
|
+
*/
|
|
5
|
+
export { detectDesignSystemLibraries, DESIGN_SYSTEM_LIBRARIES, type DesignSystemLibrary, type LibraryDetectionResult, } from './library-detector.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/design-systems/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/design-systems/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAGxB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design System Library Detector
|
|
3
|
+
* Detects which design system libraries are in use and which components are imported.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Information about a detected design system library
|
|
7
|
+
*/
|
|
8
|
+
export interface DesignSystemLibrary {
|
|
9
|
+
/** Normalized library name */
|
|
10
|
+
name: string;
|
|
11
|
+
/** Primary package name */
|
|
12
|
+
package: string;
|
|
13
|
+
/** Version from package.json */
|
|
14
|
+
version: string;
|
|
15
|
+
/** Components imported from this library */
|
|
16
|
+
components: string[];
|
|
17
|
+
/** Count of unique components */
|
|
18
|
+
componentCount: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Result of library detection
|
|
22
|
+
*/
|
|
23
|
+
export interface LibraryDetectionResult {
|
|
24
|
+
/** Detected libraries with usage details */
|
|
25
|
+
libraries: DesignSystemLibrary[];
|
|
26
|
+
/** True if multiple UI libraries detected (potential drift) */
|
|
27
|
+
hasMultipleLibraries: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Configuration for each supported design system library
|
|
31
|
+
*/
|
|
32
|
+
interface LibraryConfig {
|
|
33
|
+
/** Package names to look for in package.json */
|
|
34
|
+
packages: string[];
|
|
35
|
+
/** Regex pattern to match package names (for scoped packages) */
|
|
36
|
+
packagePattern?: RegExp;
|
|
37
|
+
/** Regex to find imports in source files */
|
|
38
|
+
importPattern: RegExp;
|
|
39
|
+
/** Regex to extract component names from imports */
|
|
40
|
+
componentPattern: RegExp;
|
|
41
|
+
/** If true, component name comes from package name (e.g., @radix-ui/react-dialog → Dialog) */
|
|
42
|
+
componentFromPackage?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Supported design system libraries
|
|
46
|
+
*/
|
|
47
|
+
export declare const DESIGN_SYSTEM_LIBRARIES: Record<string, LibraryConfig>;
|
|
48
|
+
/**
|
|
49
|
+
* Detect design system libraries in a project
|
|
50
|
+
*/
|
|
51
|
+
export declare function detectDesignSystemLibraries(projectRoot: string): Promise<LibraryDetectionResult>;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=library-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-detector.d.ts","sourceRoot":"","sources":["../../src/design-systems/library-detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,+DAA+D;IAC/D,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAkCjE,CAAC;AAEF;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,sBAAsB,CAAC,CAwJjC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design System Library Detector
|
|
3
|
+
* Detects which design system libraries are in use and which components are imported.
|
|
4
|
+
*/
|
|
5
|
+
import { readFile } from 'fs/promises';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import { glob } from 'glob';
|
|
8
|
+
/**
|
|
9
|
+
* Supported design system libraries
|
|
10
|
+
*/
|
|
11
|
+
export const DESIGN_SYSTEM_LIBRARIES = {
|
|
12
|
+
'chakra-ui': {
|
|
13
|
+
packages: ['@chakra-ui/react', '@chakra-ui/core'],
|
|
14
|
+
importPattern: /@chakra-ui\/(react|core)/,
|
|
15
|
+
componentPattern: /import\s+\{([^}]+)\}\s+from\s+['"]@chakra-ui\/(react|core)['"]/g,
|
|
16
|
+
},
|
|
17
|
+
'radix-ui': {
|
|
18
|
+
packages: [],
|
|
19
|
+
packagePattern: /^@radix-ui\/react-/,
|
|
20
|
+
importPattern: /@radix-ui\/react-/,
|
|
21
|
+
componentPattern: /from\s+['"]@radix-ui\/react-([a-z-]+)['"]/gi,
|
|
22
|
+
componentFromPackage: true,
|
|
23
|
+
},
|
|
24
|
+
'shadcn-ui': {
|
|
25
|
+
packages: [],
|
|
26
|
+
importPattern: /@\/components\/ui\//,
|
|
27
|
+
componentPattern: /from\s+['"]@\/components\/ui\/([^'"]+)['"]/g,
|
|
28
|
+
componentFromPackage: true,
|
|
29
|
+
},
|
|
30
|
+
'mui': {
|
|
31
|
+
packages: ['@mui/material', '@mui/core', '@material-ui/core'],
|
|
32
|
+
importPattern: /@mui\/(material|core)|@material-ui\/core/,
|
|
33
|
+
componentPattern: /import\s+\{([^}]+)\}\s+from\s+['"]@mui\/(material|core)['"]/g,
|
|
34
|
+
},
|
|
35
|
+
'ant-design': {
|
|
36
|
+
packages: ['antd'],
|
|
37
|
+
importPattern: /['"]antd['"]/,
|
|
38
|
+
componentPattern: /import\s+\{([^}]+)\}\s+from\s+['"]antd['"]/g,
|
|
39
|
+
},
|
|
40
|
+
'mantine': {
|
|
41
|
+
packages: ['@mantine/core', '@mantine/hooks'],
|
|
42
|
+
importPattern: /@mantine\/(core|hooks)/,
|
|
43
|
+
componentPattern: /import\s+\{([^}]+)\}\s+from\s+['"]@mantine\/(core|hooks)['"]/g,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Detect design system libraries in a project
|
|
48
|
+
*/
|
|
49
|
+
export async function detectDesignSystemLibraries(projectRoot) {
|
|
50
|
+
// Read package.json
|
|
51
|
+
const packageJsonPath = join(projectRoot, 'package.json');
|
|
52
|
+
let packageJson;
|
|
53
|
+
try {
|
|
54
|
+
const content = await readFile(packageJsonPath, 'utf-8');
|
|
55
|
+
packageJson = JSON.parse(content);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// No package.json, return empty result
|
|
59
|
+
return { libraries: [], hasMultipleLibraries: false };
|
|
60
|
+
}
|
|
61
|
+
const allDependencies = {
|
|
62
|
+
...packageJson.dependencies,
|
|
63
|
+
...packageJson.devDependencies,
|
|
64
|
+
};
|
|
65
|
+
// Detect which libraries are installed
|
|
66
|
+
const detectedLibraries = new Map();
|
|
67
|
+
for (const [libraryName, config] of Object.entries(DESIGN_SYSTEM_LIBRARIES)) {
|
|
68
|
+
// Check explicit package names
|
|
69
|
+
for (const pkg of config.packages) {
|
|
70
|
+
if (allDependencies[pkg]) {
|
|
71
|
+
detectedLibraries.set(libraryName, {
|
|
72
|
+
package: pkg,
|
|
73
|
+
version: allDependencies[pkg],
|
|
74
|
+
});
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Check package pattern (for scoped packages like @radix-ui/react-*)
|
|
79
|
+
if (config.packagePattern && !detectedLibraries.has(libraryName)) {
|
|
80
|
+
for (const [pkg, version] of Object.entries(allDependencies)) {
|
|
81
|
+
if (config.packagePattern.test(pkg)) {
|
|
82
|
+
detectedLibraries.set(libraryName, {
|
|
83
|
+
package: pkg.replace(/-\w+$/, '-*'), // Normalize to wildcard
|
|
84
|
+
version,
|
|
85
|
+
});
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Also check for shadcn/ui by looking for the components/ui directory convention
|
|
92
|
+
// This is detected during import scanning, not package.json
|
|
93
|
+
// Scan source files for imports
|
|
94
|
+
const sourceFiles = await glob('**/*.{tsx,jsx,ts,js}', {
|
|
95
|
+
cwd: projectRoot,
|
|
96
|
+
ignore: ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.next/**'],
|
|
97
|
+
absolute: true,
|
|
98
|
+
});
|
|
99
|
+
// Track components per library
|
|
100
|
+
const libraryComponents = new Map();
|
|
101
|
+
for (const file of sourceFiles) {
|
|
102
|
+
let content;
|
|
103
|
+
try {
|
|
104
|
+
content = await readFile(file, 'utf-8');
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
for (const [libraryName, config] of Object.entries(DESIGN_SYSTEM_LIBRARIES)) {
|
|
110
|
+
// Check if this file has imports from this library
|
|
111
|
+
if (!config.importPattern.test(content)) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
// For shadcn-ui, mark as detected if we find the import pattern
|
|
115
|
+
if (libraryName === 'shadcn-ui' && !detectedLibraries.has(libraryName)) {
|
|
116
|
+
detectedLibraries.set(libraryName, {
|
|
117
|
+
package: '@/components/ui/*',
|
|
118
|
+
version: 'local',
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
// Extract component names
|
|
122
|
+
if (!libraryComponents.has(libraryName)) {
|
|
123
|
+
libraryComponents.set(libraryName, new Set());
|
|
124
|
+
}
|
|
125
|
+
const components = libraryComponents.get(libraryName);
|
|
126
|
+
// Reset regex state
|
|
127
|
+
config.componentPattern.lastIndex = 0;
|
|
128
|
+
let match;
|
|
129
|
+
while ((match = config.componentPattern.exec(content)) !== null) {
|
|
130
|
+
if (config.componentFromPackage) {
|
|
131
|
+
// Component name is in the match (e.g., "dialog" from @radix-ui/react-dialog)
|
|
132
|
+
const componentName = match[1];
|
|
133
|
+
if (componentName) {
|
|
134
|
+
// Convert kebab-case to PascalCase
|
|
135
|
+
const pascalName = componentName
|
|
136
|
+
.split('-')
|
|
137
|
+
.map(part => part.charAt(0).toUpperCase() + part.slice(1))
|
|
138
|
+
.join('');
|
|
139
|
+
components.add(pascalName);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// Components are in a destructured import
|
|
144
|
+
const importList = match[1];
|
|
145
|
+
if (importList) {
|
|
146
|
+
// Parse the import list: { Button, Box, Flex as F }
|
|
147
|
+
const names = importList.split(',').map(s => {
|
|
148
|
+
const trimmed = s.trim();
|
|
149
|
+
// Handle "Foo as Bar" → take "Foo"
|
|
150
|
+
const asIndex = trimmed.indexOf(' as ');
|
|
151
|
+
return asIndex > 0 ? trimmed.slice(0, asIndex).trim() : trimmed;
|
|
152
|
+
}).filter(name =>
|
|
153
|
+
// Filter out non-component imports (hooks, utilities)
|
|
154
|
+
name && /^[A-Z]/.test(name));
|
|
155
|
+
for (const name of names) {
|
|
156
|
+
components.add(name);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// Build result
|
|
164
|
+
const libraries = [];
|
|
165
|
+
for (const [libraryName, info] of detectedLibraries) {
|
|
166
|
+
const components = libraryComponents.get(libraryName);
|
|
167
|
+
const componentList = components ? Array.from(components).sort() : [];
|
|
168
|
+
libraries.push({
|
|
169
|
+
name: libraryName,
|
|
170
|
+
package: info.package,
|
|
171
|
+
version: info.version,
|
|
172
|
+
components: componentList,
|
|
173
|
+
componentCount: componentList.length,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
// Sort by component count (most used first)
|
|
177
|
+
libraries.sort((a, b) => b.componentCount - a.componentCount);
|
|
178
|
+
return {
|
|
179
|
+
libraries,
|
|
180
|
+
hasMultipleLibraries: libraries.length > 1,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=library-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-detector.js","sourceRoot":"","sources":["../../src/design-systems/library-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS-in-JS Style Extractor
|
|
3
|
+
* Extracts styles from styled-components, Emotion, vanilla-extract, Stitches, and Linaria.
|
|
4
|
+
*/
|
|
5
|
+
import type { StyleMatch } from './html-style.js';
|
|
6
|
+
/**
|
|
7
|
+
* Supported CSS-in-JS libraries
|
|
8
|
+
*/
|
|
9
|
+
export type CssInJsLibrary = 'styled-components' | 'emotion' | 'vanilla-extract' | 'stitches' | 'linaria';
|
|
10
|
+
/**
|
|
11
|
+
* Detect which CSS-in-JS library is used in the file
|
|
12
|
+
* Returns the first detected library or null if none found
|
|
13
|
+
*/
|
|
14
|
+
export declare function detectCssInJsLibrary(content: string): CssInJsLibrary | null;
|
|
15
|
+
/**
|
|
16
|
+
* Extract CSS-in-JS styles from file content
|
|
17
|
+
* Handles both template literal and object style patterns
|
|
18
|
+
*/
|
|
19
|
+
export declare function extractCssInJsStyles(content: string): StyleMatch[];
|
|
20
|
+
//# sourceMappingURL=css-in-js.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css-in-js.d.ts","sourceRoot":"","sources":["../../src/extractors/css-in-js.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,mBAAmB,GACnB,SAAS,GACT,iBAAiB,GACjB,UAAU,GACV,SAAS,CAAC;AA0Bd;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAS3E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAUlE"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS-in-JS Style Extractor
|
|
3
|
+
* Extracts styles from styled-components, Emotion, vanilla-extract, Stitches, and Linaria.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Import patterns for each CSS-in-JS library
|
|
7
|
+
*/
|
|
8
|
+
const IMPORT_PATTERNS = {
|
|
9
|
+
'styled-components': [
|
|
10
|
+
/import\s+.*?\bfrom\s+['"]styled-components['"]/,
|
|
11
|
+
/require\s*\(\s*['"]styled-components['"]\s*\)/,
|
|
12
|
+
],
|
|
13
|
+
'emotion': [
|
|
14
|
+
/import\s+.*?\bfrom\s+['"]@emotion\/(styled|react|css)['"]/,
|
|
15
|
+
/require\s*\(\s*['"]@emotion\//,
|
|
16
|
+
],
|
|
17
|
+
'vanilla-extract': [
|
|
18
|
+
/import\s+.*?\bfrom\s+['"]@vanilla-extract\/css['"]/,
|
|
19
|
+
],
|
|
20
|
+
'stitches': [
|
|
21
|
+
/import\s+.*?\bfrom\s+['"]@stitches\/(react|core)['"]/,
|
|
22
|
+
],
|
|
23
|
+
'linaria': [
|
|
24
|
+
/import\s+.*?\bfrom\s+['"]@linaria\/(react|core)['"]/,
|
|
25
|
+
/import\s+.*?\bfrom\s+['"]linaria['"]/,
|
|
26
|
+
],
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Detect which CSS-in-JS library is used in the file
|
|
30
|
+
* Returns the first detected library or null if none found
|
|
31
|
+
*/
|
|
32
|
+
export function detectCssInJsLibrary(content) {
|
|
33
|
+
for (const [library, patterns] of Object.entries(IMPORT_PATTERNS)) {
|
|
34
|
+
for (const pattern of patterns) {
|
|
35
|
+
if (pattern.test(content)) {
|
|
36
|
+
return library;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Extract CSS-in-JS styles from file content
|
|
44
|
+
* Handles both template literal and object style patterns
|
|
45
|
+
*/
|
|
46
|
+
export function extractCssInJsStyles(content) {
|
|
47
|
+
const matches = [];
|
|
48
|
+
// Extract template literal styles (styled-components, Emotion, Linaria)
|
|
49
|
+
matches.push(...extractTemplateLiteralStyles(content));
|
|
50
|
+
// Extract object styles (vanilla-extract, Stitches, Emotion object syntax)
|
|
51
|
+
matches.push(...extractObjectStyles(content));
|
|
52
|
+
return matches;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Extract styles from tagged template literals
|
|
56
|
+
* Handles: styled.div`...`, styled(Component)`...`, css`...`, keyframes`...`
|
|
57
|
+
*/
|
|
58
|
+
function extractTemplateLiteralStyles(content) {
|
|
59
|
+
const matches = [];
|
|
60
|
+
// Patterns for tagged template literals
|
|
61
|
+
// styled.element`...` or styled.element.attrs(...)`...`
|
|
62
|
+
const styledElementRegex = /styled\.(\w+)(?:\.attrs\([^)]*\))?\s*`([^`]*)`/gs;
|
|
63
|
+
// styled(Component)`...` or styled(Component).attrs(...)`...`
|
|
64
|
+
const styledComponentRegex = /styled\(\s*\w+\s*\)(?:\.attrs\([^)]*\))?\s*`([^`]*)`/gs;
|
|
65
|
+
// css`...` helper (negative lookbehind to avoid matching .css or other identifiers)
|
|
66
|
+
const cssHelperRegex = /(?<![.\w])css\s*`([^`]*)`/gs;
|
|
67
|
+
// keyframes`...`
|
|
68
|
+
const keyframesRegex = /keyframes\s*`([^`]*)`/gs;
|
|
69
|
+
// Process each pattern type
|
|
70
|
+
const processMatches = (regex, fileContent) => {
|
|
71
|
+
let match;
|
|
72
|
+
regex.lastIndex = 0; // Reset regex state
|
|
73
|
+
while ((match = regex.exec(fileContent)) !== null) {
|
|
74
|
+
// Get the CSS content (last capture group)
|
|
75
|
+
const cssContent = match[match.length - 1];
|
|
76
|
+
if (!cssContent)
|
|
77
|
+
continue;
|
|
78
|
+
// Clean up interpolations: replace ${...} with placeholder
|
|
79
|
+
const cleanedCss = cleanInterpolations(cssContent);
|
|
80
|
+
// Calculate line number
|
|
81
|
+
const beforeMatch = fileContent.slice(0, match.index);
|
|
82
|
+
const lineNum = beforeMatch.split('\n').length;
|
|
83
|
+
const lastNewline = beforeMatch.lastIndexOf('\n');
|
|
84
|
+
const column = match.index - lastNewline;
|
|
85
|
+
matches.push({
|
|
86
|
+
css: cleanedCss,
|
|
87
|
+
line: lineNum,
|
|
88
|
+
column,
|
|
89
|
+
context: 'css-in-js',
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
processMatches(styledElementRegex, content);
|
|
94
|
+
processMatches(styledComponentRegex, content);
|
|
95
|
+
processMatches(cssHelperRegex, content);
|
|
96
|
+
processMatches(keyframesRegex, content);
|
|
97
|
+
return matches;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Clean interpolations from template literals
|
|
101
|
+
* Replaces ${...} with (dynamic) placeholder
|
|
102
|
+
*/
|
|
103
|
+
function cleanInterpolations(css) {
|
|
104
|
+
// Replace ${...} expressions with placeholder
|
|
105
|
+
// Handle nested braces in expressions
|
|
106
|
+
let result = '';
|
|
107
|
+
let i = 0;
|
|
108
|
+
while (i < css.length) {
|
|
109
|
+
if (css[i] === '$' && css[i + 1] === '{') {
|
|
110
|
+
// Find matching closing brace
|
|
111
|
+
let depth = 1;
|
|
112
|
+
let j = i + 2;
|
|
113
|
+
while (j < css.length && depth > 0) {
|
|
114
|
+
if (css[j] === '{')
|
|
115
|
+
depth++;
|
|
116
|
+
else if (css[j] === '}')
|
|
117
|
+
depth--;
|
|
118
|
+
j++;
|
|
119
|
+
}
|
|
120
|
+
result += '(dynamic)';
|
|
121
|
+
i = j;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
result += css[i];
|
|
125
|
+
i++;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Extract styles from object syntax
|
|
132
|
+
* Handles: style({...}), styleVariants({...}), styled('div', {...}), css({...})
|
|
133
|
+
*/
|
|
134
|
+
function extractObjectStyles(content) {
|
|
135
|
+
const matches = [];
|
|
136
|
+
// Patterns for object-style CSS-in-JS
|
|
137
|
+
const patterns = [
|
|
138
|
+
// vanilla-extract: style({...})
|
|
139
|
+
/(?<![.\w])style\s*\(\s*\{/g,
|
|
140
|
+
// vanilla-extract: styleVariants({...})
|
|
141
|
+
/styleVariants\s*\(\s*\{/g,
|
|
142
|
+
// Stitches: styled('element', {...}) or styled("element", {...})
|
|
143
|
+
/styled\s*\(\s*['"`]\w+['"`]\s*,\s*\{/g,
|
|
144
|
+
// Emotion object: css({...})
|
|
145
|
+
/(?<![.\w])css\s*\(\s*\{/g,
|
|
146
|
+
];
|
|
147
|
+
for (const pattern of patterns) {
|
|
148
|
+
let match;
|
|
149
|
+
pattern.lastIndex = 0; // Reset regex state
|
|
150
|
+
while ((match = pattern.exec(content)) !== null) {
|
|
151
|
+
// Find the start of the object (the { after the pattern)
|
|
152
|
+
const objectStart = match.index + match[0].length - 1;
|
|
153
|
+
// Extract balanced braces content
|
|
154
|
+
const objectContent = extractBalancedBraces(content.slice(objectStart));
|
|
155
|
+
if (!objectContent)
|
|
156
|
+
continue;
|
|
157
|
+
// Convert object to CSS-like text
|
|
158
|
+
const css = objectToCss(objectContent);
|
|
159
|
+
if (!css)
|
|
160
|
+
continue;
|
|
161
|
+
// Calculate line number
|
|
162
|
+
const beforeMatch = content.slice(0, match.index);
|
|
163
|
+
const lineNum = beforeMatch.split('\n').length;
|
|
164
|
+
const lastNewline = beforeMatch.lastIndexOf('\n');
|
|
165
|
+
const column = match.index - lastNewline;
|
|
166
|
+
matches.push({
|
|
167
|
+
css,
|
|
168
|
+
line: lineNum,
|
|
169
|
+
column,
|
|
170
|
+
context: 'css-in-js',
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return matches;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Extract content within balanced braces
|
|
178
|
+
*/
|
|
179
|
+
function extractBalancedBraces(content) {
|
|
180
|
+
if (content[0] !== '{')
|
|
181
|
+
return null;
|
|
182
|
+
let depth = 0;
|
|
183
|
+
let i = 0;
|
|
184
|
+
let inString = null;
|
|
185
|
+
let inTemplateLiteral = false;
|
|
186
|
+
while (i < content.length) {
|
|
187
|
+
const char = content[i];
|
|
188
|
+
const prevChar = i > 0 ? content[i - 1] : '';
|
|
189
|
+
// Handle escapes
|
|
190
|
+
if (prevChar === '\\' && (inString || inTemplateLiteral)) {
|
|
191
|
+
i++;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
// Handle template literals
|
|
195
|
+
if (char === '`' && !inString) {
|
|
196
|
+
inTemplateLiteral = !inTemplateLiteral;
|
|
197
|
+
i++;
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
if (inTemplateLiteral) {
|
|
201
|
+
i++;
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
// Handle strings
|
|
205
|
+
if ((char === '"' || char === "'") && !inTemplateLiteral) {
|
|
206
|
+
if (inString === char) {
|
|
207
|
+
inString = null;
|
|
208
|
+
}
|
|
209
|
+
else if (!inString) {
|
|
210
|
+
inString = char;
|
|
211
|
+
}
|
|
212
|
+
i++;
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
if (inString) {
|
|
216
|
+
i++;
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
// Count braces
|
|
220
|
+
if (char === '{')
|
|
221
|
+
depth++;
|
|
222
|
+
else if (char === '}')
|
|
223
|
+
depth--;
|
|
224
|
+
if (depth === 0) {
|
|
225
|
+
return content.slice(1, i); // Return content without outer braces
|
|
226
|
+
}
|
|
227
|
+
i++;
|
|
228
|
+
}
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Convert JavaScript object notation to CSS-like text
|
|
233
|
+
* Simplified version - extracts property: value pairs
|
|
234
|
+
*/
|
|
235
|
+
function objectToCss(objectContent) {
|
|
236
|
+
const cssProps = [];
|
|
237
|
+
// Simple regex to find property: value pairs
|
|
238
|
+
// Handles: padding: '24px', color: '#fff', margin: 8
|
|
239
|
+
const propRegex = /(\w+)\s*:\s*(['"`]?)([^,}\n]+)\2/g;
|
|
240
|
+
let match;
|
|
241
|
+
while ((match = propRegex.exec(objectContent)) !== null) {
|
|
242
|
+
let prop = match[1];
|
|
243
|
+
let value = match[3].trim();
|
|
244
|
+
// Skip spread operators and complex expressions
|
|
245
|
+
if (prop === 'rest' || value.startsWith('...') || (value.includes('(') && !isCssFunction(value))) {
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
// Convert camelCase to kebab-case
|
|
249
|
+
prop = camelToKebab(prop);
|
|
250
|
+
// Remove quotes from value
|
|
251
|
+
value = value.replace(/^['"`]|['"`]$/g, '');
|
|
252
|
+
// Add px to numeric values for spacing properties
|
|
253
|
+
if (/^-?\d+(\.\d+)?$/.test(value) && shouldAddPxUnit(prop)) {
|
|
254
|
+
value = `${value}px`;
|
|
255
|
+
}
|
|
256
|
+
cssProps.push(`${prop}: ${value}`);
|
|
257
|
+
}
|
|
258
|
+
return cssProps.join('; ');
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Check if a value is a CSS function
|
|
262
|
+
*/
|
|
263
|
+
function isCssFunction(value) {
|
|
264
|
+
const cssFunctions = /^(calc|var|rgb|rgba|hsl|hsla|url|linear-gradient|radial-gradient|min|max|clamp)\s*\(/i;
|
|
265
|
+
return cssFunctions.test(value.trim());
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Convert camelCase to kebab-case
|
|
269
|
+
*/
|
|
270
|
+
function camelToKebab(str) {
|
|
271
|
+
return str.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Check if a property should have px units added
|
|
275
|
+
*/
|
|
276
|
+
function shouldAddPxUnit(prop) {
|
|
277
|
+
const unitlessProps = [
|
|
278
|
+
'opacity', 'z-index', 'flex', 'flex-grow', 'flex-shrink',
|
|
279
|
+
'order', 'font-weight', 'line-height', 'orphans', 'widows',
|
|
280
|
+
'column-count', 'tab-size', 'scale', 'aspect-ratio',
|
|
281
|
+
];
|
|
282
|
+
return !unitlessProps.includes(prop);
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=css-in-js.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css-in-js.js","sourceRoot":"","sources":["../../src/extractors/css-in-js.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-style.d.ts","sourceRoot":"","sources":["../../src/extractors/html-style.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"html-style.d.ts","sourceRoot":"","sources":["../../src/extractors/html-style.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;CACjD;AAyKD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CA8CxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAkChE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAKlE"}
|
|
@@ -27,5 +27,6 @@ export declare function extractCssFileStyles(content: string): StyleMatch[];
|
|
|
27
27
|
export { extractAllHtmlStyles, extractHtmlStyleAttributes, extractStyleBlocks } from './html-style.js';
|
|
28
28
|
export { extractJsxStyleObjects } from './jsx-style.js';
|
|
29
29
|
export { extractDirectiveStyles, extractAngularStyleBindings, extractVueStyleBindings, extractNgStyleBindings } from './directive-style.js';
|
|
30
|
+
export { extractCssInJsStyles, detectCssInJsLibrary, type CssInJsLibrary, } from './css-in-js.js';
|
|
30
31
|
export { extractClassPatterns, analyzePatternForTokens, extractCvaPatterns, extractSemanticTokens, extractStaticClassStrings, extractBemSemanticClasses, extractCustomPrefixClasses, extractDataAttributePatterns, extractHeadlessUIVariants, extractGroupPeerVariants, extractDataSlotAttributes, extractShortFormDataPatterns, extractDynamicDataAttributes, extractRenderPropClassNames, type ClassPatternMatch, type CvaPattern, type StaticClassStrings, type BemSemanticClass, type DataAttributePattern, type HeadlessUIVariant, type GroupPeerVariant, type DataSlotAttribute, type ShortFormDataPattern, type DynamicDataAttribute, type RenderPropClassName, type ConditionalClass, } from './class-pattern.js';
|
|
31
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extractors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAkDxE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,YAAY,GAEpB,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAChF,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAC7E,YAAY,GAAG,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAE5E,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAC7E,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAEtC,KAAK,GAAG,QAAQ,GAEhB,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAE1C,UAAU,GAAG,KAAK,GAAG,UAAU,GAE/B,KAAK,GAEL,eAAe,GAAG,eAAe,GAEjC,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErC;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CA2BxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,UAAU,EAAE,CAqCvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAOlE;AAGD,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC5I,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extractors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAkDxE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,YAAY,GAEpB,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAChF,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAC7E,YAAY,GAAG,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAE5E,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAC7E,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAEtC,KAAK,GAAG,QAAQ,GAEhB,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAE1C,UAAU,GAAG,KAAK,GAAG,UAAU,GAE/B,KAAK,GAEL,eAAe,GAAG,eAAe,GAEjC,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErC;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CA2BxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,UAAU,EAAE,CAqCvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAOlE;AAGD,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC5I,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC"}
|