tailwind-canonical 0.1.9 → 0.2.1
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/README.md +101 -4
- package/dist/cli/index.js +126 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/core/analyzer.d.ts.map +1 -1
- package/dist/core/analyzer.js +14 -19
- package/dist/core/analyzer.js.map +1 -1
- package/dist/core/class-strings.d.ts +3 -0
- package/dist/core/class-strings.d.ts.map +1 -1
- package/dist/core/class-strings.js +17 -5
- package/dist/core/class-strings.js.map +1 -1
- package/dist/core/consistency.d.ts +46 -0
- package/dist/core/consistency.d.ts.map +1 -0
- package/dist/core/consistency.js +251 -0
- package/dist/core/consistency.js.map +1 -0
- package/dist/core/deduplicator.d.ts.map +1 -1
- package/dist/core/deduplicator.js +53 -3
- package/dist/core/deduplicator.js.map +1 -1
- package/dist/core/fixer.d.ts.map +1 -1
- package/dist/core/fixer.js +1 -0
- package/dist/core/fixer.js.map +1 -1
- package/dist/core/rules.d.ts +3 -0
- package/dist/core/rules.d.ts.map +1 -1
- package/dist/core/rules.js +0 -1
- package/dist/core/rules.js.map +1 -1
- package/dist/core/scanner.d.ts +1 -0
- package/dist/core/scanner.d.ts.map +1 -1
- package/dist/core/scanner.js +69 -39
- package/dist/core/scanner.js.map +1 -1
- package/dist/core/sorter.d.ts +4 -2
- package/dist/core/sorter.d.ts.map +1 -1
- package/dist/core/sorter.js +49 -20
- package/dist/core/sorter.js.map +1 -1
- package/dist/eslint/plugin.d.ts.map +1 -1
- package/dist/eslint/plugin.js +4 -5
- package/dist/eslint/plugin.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/package.json +12 -15
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ npx tailwind-canonical ./src
|
|
|
19
19
|
# Glob patterns (quote to prevent shell expansion)
|
|
20
20
|
npx tailwind-canonical 'src/**/*.tsx'
|
|
21
21
|
npx tailwind-canonical 'src/**/*.{tsx,ts}'
|
|
22
|
+
npx tailwind-canonical 'src/**/*.tsx' '!src/generated/**'
|
|
22
23
|
|
|
23
24
|
# Auto-fix: arbitrary → canonical
|
|
24
25
|
npx tailwind-canonical --fix ./src
|
|
@@ -35,6 +36,12 @@ npx tailwind-canonical --merge ./src
|
|
|
35
36
|
# Combine: fix → dedup → merge → sort
|
|
36
37
|
npx tailwind-canonical --fix --dedup --merge --sort ./src
|
|
37
38
|
|
|
39
|
+
# Cross-file consistency analysis
|
|
40
|
+
npx tailwind-canonical --analyze ./src
|
|
41
|
+
|
|
42
|
+
# Watch mode: re-run on every file save
|
|
43
|
+
npx tailwind-canonical --watch --fix --sort ./src
|
|
44
|
+
|
|
38
45
|
# Structured output for CI (check mode only)
|
|
39
46
|
npx tailwind-canonical --reporter json ./src
|
|
40
47
|
npx tailwind-canonical --reporter sarif ./src
|
|
@@ -45,10 +52,11 @@ npx tailwind-canonical --reporter sarif ./src
|
|
|
45
52
|
| Flag | What it fixes | Example |
|
|
46
53
|
|---|---|---|
|
|
47
54
|
| `--fix` | Arbitrary values → canonical tokens | `text-[12px]` → `text-xs` |
|
|
48
|
-
| `--dedup` | Redundant
|
|
49
|
-
| `--dedup` | Directional shorthand collapse | `border-t-2 border-b-2` → `border-y-2`, `top-4 bottom-4` → `inset-y-4` |
|
|
55
|
+
| `--dedup` | Redundant classes, conflicts, shorthand collapse | `flex block` → `block`, `px-4 py-4` → `p-4`, `border-t-2 border-b-2` → `border-y-2` |
|
|
50
56
|
| `--sort` | Canonical class order | `text-sm flex p-4` → `flex p-4 text-sm` |
|
|
51
57
|
| `--merge` | tailwind-merge conflict resolution | `bg-red-500 bg-blue-500` → `bg-blue-500` |
|
|
58
|
+
| `--analyze` | Cross-file consistency (color variants, scale drift, repeated patterns) | `Warning: 3 red color variants used for text: text-red-500, text-rose-500, text-red-600` |
|
|
59
|
+
| `--watch` | Re-run on every file save (debounced 50ms) | `[12:34:01] src/Button.tsx — 2 changes applied` |
|
|
52
60
|
| `--reporter json` | JSON output (check mode) or fix summary | machine-readable for CI pipelines |
|
|
53
61
|
| `--reporter sarif` | SARIF 2.1.0 output (check mode) | GitHub Code Scanning / VS Code |
|
|
54
62
|
|
|
@@ -81,6 +89,51 @@ npx tailwind-canonical --fix --reporter json ./src
|
|
|
81
89
|
npx tailwind-canonical --reporter sarif ./src > results.sarif
|
|
82
90
|
```
|
|
83
91
|
|
|
92
|
+
## Cross-file consistency (`--analyze`)
|
|
93
|
+
|
|
94
|
+
Detects semantic inconsistencies visible only at project scale — it never modifies files.
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npx tailwind-canonical --analyze ./src
|
|
98
|
+
# Warning: 3 red color variants used for text: text-red-500 (4), text-rose-500 (1), text-red-600 (2)
|
|
99
|
+
# Warning: px inconsistency: px-4 (8 files) vs px-3 (2 files)
|
|
100
|
+
# Warning: z inconsistency: z-[100] (3 files) vs z-[200] (1 file) vs z-[50] (2 files)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Three detectors:
|
|
104
|
+
|
|
105
|
+
| Detector | What it flags |
|
|
106
|
+
|---|---|
|
|
107
|
+
| Color variants | Multiple shades/colors of the same hue family used for one property (`text`, `bg`, `border`, …) |
|
|
108
|
+
| Scale inconsistency | Competing values for the same spacing / `gap` / `z` property across files |
|
|
109
|
+
| Repeated patterns | Identical class combinations recurring across 3+ files |
|
|
110
|
+
|
|
111
|
+
Pairs with `--reporter json` for machine-readable output. Exits `1` when any inconsistency is found.
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npx tailwind-canonical --analyze --reporter json ./src
|
|
115
|
+
```
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"filesAnalyzed": 42,
|
|
119
|
+
"colorVariants": [
|
|
120
|
+
{ "property": "text", "family": "red",
|
|
121
|
+
"variants": [
|
|
122
|
+
{ "token": "red-500", "count": 4, "files": ["src/Alert.tsx"] },
|
|
123
|
+
{ "token": "rose-500", "count": 1, "files": ["src/Toast.tsx"] }
|
|
124
|
+
] }
|
|
125
|
+
],
|
|
126
|
+
"scaleInconsistencies": [
|
|
127
|
+
{ "property": "px",
|
|
128
|
+
"values": [
|
|
129
|
+
{ "value": "4", "count": 8, "files": ["src/Button.tsx"] },
|
|
130
|
+
{ "value": "3", "count": 2, "files": ["src/IconButton.tsx"] }
|
|
131
|
+
] }
|
|
132
|
+
],
|
|
133
|
+
"combinations": []
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
84
137
|
## Canonical class order (`--sort`)
|
|
85
138
|
|
|
86
139
|
`layout → position → display → flex/grid → sizing → border → spacing → typography → colors → effects → transitions → transforms → interactivity → a11y → variants`
|
|
@@ -95,6 +148,28 @@ className="flex h-10 w-full rounded p-4 text-sm bg-red-500"
|
|
|
95
148
|
|
|
96
149
|
Variants (`hover:`, `sm:`, `focus:`) are sorted after base classes, with responsive breakpoints before state variants.
|
|
97
150
|
|
|
151
|
+
### Custom order (`sortOrder`)
|
|
152
|
+
|
|
153
|
+
Override the category order via config. Categories you omit (and unknown classes) sort to the end, preserving their original relative order. Variants are always sorted after base classes regardless of order.
|
|
154
|
+
|
|
155
|
+
```js
|
|
156
|
+
// tailwind-canonical.config.js
|
|
157
|
+
export default {
|
|
158
|
+
sortOrder: [
|
|
159
|
+
'display',
|
|
160
|
+
'position',
|
|
161
|
+
'sizing',
|
|
162
|
+
'spacing',
|
|
163
|
+
'border',
|
|
164
|
+
'typography',
|
|
165
|
+
'colors',
|
|
166
|
+
'effects',
|
|
167
|
+
],
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Valid category names: `layout`, `position`, `inset`, `display`, `flex-grid`, `sizing`, `border`, `spacing`, `typography`, `colors`, `effects`, `transitions`, `transforms`, `interactivity`, `accessibility`. Omit `sortOrder` to use the default order above.
|
|
172
|
+
|
|
98
173
|
## Deduplication (`--dedup`)
|
|
99
174
|
|
|
100
175
|
### Exact duplicates and conflicts
|
|
@@ -158,11 +233,19 @@ export default {
|
|
|
158
233
|
customSpacingTokens: {
|
|
159
234
|
14: '3.5',
|
|
160
235
|
},
|
|
236
|
+
// Support non-React attribute patterns (default: ['className'])
|
|
237
|
+
attributeNames: ['className', 'class', ':class', 'tw'],
|
|
238
|
+
// Support utility function wrappers
|
|
239
|
+
functionNames: ['cn', 'clsx', 'cva'],
|
|
161
240
|
}
|
|
162
241
|
```
|
|
163
242
|
|
|
164
243
|
`customTextTokens` merges with the built-in text size map. `customSpacingTokens` supplements the default ÷4 spacing logic.
|
|
165
244
|
|
|
245
|
+
`attributeNames` controls which HTML/JSX attributes are scanned (default: `['className']`). Use `['class']` for plain HTML/PHP/Jinja templates, `[':class']` for Vue, `['tw']` for styled-components.
|
|
246
|
+
|
|
247
|
+
`functionNames` enables scanning inside utility function calls like `cn(...)` and `clsx(...)`.
|
|
248
|
+
|
|
166
249
|
## ESLint plugin
|
|
167
250
|
|
|
168
251
|
```js
|
|
@@ -183,14 +266,19 @@ export default [
|
|
|
183
266
|
|
|
184
267
|
## Pre-commit hook (Husky / Lefthook)
|
|
185
268
|
|
|
186
|
-
```
|
|
269
|
+
```yaml
|
|
187
270
|
# Lefthook: lefthook.yml
|
|
188
271
|
pre-commit:
|
|
272
|
+
parallel: true
|
|
189
273
|
commands:
|
|
190
274
|
tailwind:
|
|
191
275
|
glob: "src/**/*.{tsx,jsx}"
|
|
192
276
|
run: npx tailwind-canonical --fix --dedup --sort {staged_files}
|
|
193
277
|
stage_fixed: true
|
|
278
|
+
lint:
|
|
279
|
+
glob: "src/**/*.{ts,tsx,js,jsx,json}"
|
|
280
|
+
run: npx biome check --write --no-errors-on-unmatched {staged_files}
|
|
281
|
+
stage_fixed: true
|
|
194
282
|
```
|
|
195
283
|
|
|
196
284
|
```bash
|
|
@@ -198,6 +286,14 @@ pre-commit:
|
|
|
198
286
|
npx tailwind-canonical --fix --dedup --sort ./src ./app
|
|
199
287
|
```
|
|
200
288
|
|
|
289
|
+
## Dead code detection (knip)
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
pnpm knip
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Detects unused exports, files, and dependencies. Config in `knip.json`.
|
|
296
|
+
|
|
201
297
|
## Programmatic API
|
|
202
298
|
|
|
203
299
|
```ts
|
|
@@ -210,6 +306,7 @@ import {
|
|
|
210
306
|
sortClasses, // pure: sort a class string
|
|
211
307
|
sortFile, // apply --sort in-place
|
|
212
308
|
mergeFile, // apply --merge in-place (requires tailwind-merge)
|
|
213
|
-
scanFiles, // recursive file scanner
|
|
309
|
+
scanFiles, // recursive file scanner (sync, dir/file targets)
|
|
310
|
+
resolveTargets, // async glob resolver with negation + brace expansion
|
|
214
311
|
} from 'tailwind-canonical'
|
|
215
312
|
```
|
package/dist/cli/index.js
CHANGED
|
@@ -1,27 +1,39 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { watch as fsWatch } from 'node:fs';
|
|
3
|
+
import { dirname, resolve } from 'node:path';
|
|
2
4
|
import { analyzeFile } from '../core/analyzer.js';
|
|
5
|
+
import { analyzeConsistencyFiles } from '../core/consistency.js';
|
|
3
6
|
import { dedupeFile } from '../core/deduplicator.js';
|
|
4
7
|
import { fixFile } from '../core/fixer.js';
|
|
5
8
|
import { mergeFile } from '../core/merger.js';
|
|
6
|
-
import {
|
|
9
|
+
import { resolveTargets } from '../core/scanner.js';
|
|
7
10
|
import { sortFile } from '../core/sorter.js';
|
|
8
11
|
function pluralize(n, word) {
|
|
9
12
|
return `${n} ${word}${n !== 1 ? 's' : ''}`;
|
|
10
13
|
}
|
|
14
|
+
function timestamp() {
|
|
15
|
+
const d = new Date();
|
|
16
|
+
return `[${d.getHours().toString().padStart(2, '0')}:${d.getMinutes().toString().padStart(2, '0')}:${d.getSeconds().toString().padStart(2, '0')}]`;
|
|
17
|
+
}
|
|
11
18
|
const SARIF_SCHEMA = 'https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json';
|
|
12
19
|
const args = process.argv.slice(2);
|
|
13
20
|
const fix = args.includes('--fix');
|
|
14
21
|
const merge = args.includes('--merge');
|
|
15
22
|
const dedup = args.includes('--dedup');
|
|
16
23
|
const sort = args.includes('--sort');
|
|
24
|
+
const watch = args.includes('--watch');
|
|
25
|
+
const analyze = args.includes('--analyze');
|
|
17
26
|
const reporterIdx = args.indexOf('--reporter');
|
|
18
27
|
const reporter = reporterIdx !== -1 &&
|
|
19
28
|
(args[reporterIdx + 1] === 'json' || args[reporterIdx + 1] === 'sarif')
|
|
20
29
|
? args[reporterIdx + 1]
|
|
21
30
|
: 'text';
|
|
22
|
-
const targets = args.filter((a, i) => !a.startsWith('--') &&
|
|
31
|
+
const targets = args.filter((a, i) => !a.startsWith('--') &&
|
|
32
|
+
args[i - 1] !== '--reporter' &&
|
|
33
|
+
a !== 'json' &&
|
|
34
|
+
a !== 'sarif');
|
|
23
35
|
if (targets.length === 0) {
|
|
24
|
-
console.error('Usage: tailwind-canonical [--fix] [--merge] [--dedup] [--sort] [--reporter json|sarif] <dir|file> [dir|file...]');
|
|
36
|
+
console.error('Usage: tailwind-canonical [--fix] [--merge] [--dedup] [--sort] [--analyze] [--watch] [--reporter json|sarif] <dir|file> [dir|file...]');
|
|
25
37
|
process.exit(1);
|
|
26
38
|
}
|
|
27
39
|
if (merge) {
|
|
@@ -37,9 +49,66 @@ let config = {};
|
|
|
37
49
|
try {
|
|
38
50
|
const { default: userConfig } = await import(new URL(`file://${process.cwd()}/tailwind-canonical.config.js`).href);
|
|
39
51
|
config = userConfig;
|
|
52
|
+
// biome-ignore lint/suspicious/noEmptyBlockStatements: config file is optional
|
|
40
53
|
}
|
|
41
54
|
catch { }
|
|
42
|
-
|
|
55
|
+
async function processFile(file) {
|
|
56
|
+
let count = 0;
|
|
57
|
+
if (fix)
|
|
58
|
+
count += fixFile(file, config);
|
|
59
|
+
if (dedup)
|
|
60
|
+
count += dedupeFile(file, {
|
|
61
|
+
functionNames: config.functionNames,
|
|
62
|
+
attributeNames: config.attributeNames,
|
|
63
|
+
});
|
|
64
|
+
if (merge)
|
|
65
|
+
count += await mergeFile(file, {
|
|
66
|
+
functionNames: config.functionNames,
|
|
67
|
+
attributeNames: config.attributeNames,
|
|
68
|
+
});
|
|
69
|
+
if (sort)
|
|
70
|
+
count += sortFile(file, {
|
|
71
|
+
functionNames: config.functionNames,
|
|
72
|
+
attributeNames: config.attributeNames,
|
|
73
|
+
}, config.sortOrder);
|
|
74
|
+
return count;
|
|
75
|
+
}
|
|
76
|
+
const files = await resolveTargets(targets);
|
|
77
|
+
if (analyze) {
|
|
78
|
+
const report = analyzeConsistencyFiles(files, config);
|
|
79
|
+
const issueCount = report.colorVariants.length +
|
|
80
|
+
report.scaleInconsistencies.length +
|
|
81
|
+
report.combinations.length;
|
|
82
|
+
if (reporter === 'json') {
|
|
83
|
+
process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
for (const group of report.colorVariants) {
|
|
87
|
+
const tokens = group.variants
|
|
88
|
+
.map((v) => `${group.property}-${v.token} (${v.count})`)
|
|
89
|
+
.join(', ');
|
|
90
|
+
console.log(` Warning: ${group.variants.length} ${group.family} color variants used for ${group.property}: ${tokens}`);
|
|
91
|
+
}
|
|
92
|
+
for (const scale of report.scaleInconsistencies) {
|
|
93
|
+
const values = scale.values
|
|
94
|
+
.map((v) => `${scale.property}-${v.value} (${pluralize(v.files.length, 'file')})`)
|
|
95
|
+
.join(' vs ');
|
|
96
|
+
console.log(` Warning: ${scale.property} inconsistency: ${values}`);
|
|
97
|
+
}
|
|
98
|
+
for (const combo of report.combinations) {
|
|
99
|
+
console.log(` Pattern: "${combo.classes.join(' ')}" repeated in ${pluralize(combo.files.length, 'file')}`);
|
|
100
|
+
}
|
|
101
|
+
if (issueCount === 0) {
|
|
102
|
+
console.log('✓ No cross-file inconsistencies found');
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
console.log(`\n✖ Found ${pluralize(issueCount, 'consistency issue')} across ${pluralize(report.filesAnalyzed, 'file')}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (issueCount > 0)
|
|
109
|
+
process.exit(1);
|
|
110
|
+
process.exit(0);
|
|
111
|
+
}
|
|
43
112
|
let totalFindings = 0;
|
|
44
113
|
let totalFixed = 0;
|
|
45
114
|
let totalMerged = 0;
|
|
@@ -59,7 +128,10 @@ for (const file of files) {
|
|
|
59
128
|
}
|
|
60
129
|
}
|
|
61
130
|
if (dedup) {
|
|
62
|
-
const count = dedupeFile(file, {
|
|
131
|
+
const count = dedupeFile(file, {
|
|
132
|
+
functionNames: config.functionNames,
|
|
133
|
+
attributeNames: config.attributeNames,
|
|
134
|
+
});
|
|
63
135
|
if (count > 0) {
|
|
64
136
|
totalDeduped += count;
|
|
65
137
|
if (!changedFiles.includes(file))
|
|
@@ -72,6 +144,7 @@ for (const file of files) {
|
|
|
72
144
|
if (merge) {
|
|
73
145
|
const count = await mergeFile(file, {
|
|
74
146
|
functionNames: config.functionNames,
|
|
147
|
+
attributeNames: config.attributeNames,
|
|
75
148
|
});
|
|
76
149
|
if (count > 0) {
|
|
77
150
|
totalMerged += count;
|
|
@@ -83,7 +156,10 @@ for (const file of files) {
|
|
|
83
156
|
}
|
|
84
157
|
}
|
|
85
158
|
if (sort) {
|
|
86
|
-
const count = sortFile(file, {
|
|
159
|
+
const count = sortFile(file, {
|
|
160
|
+
functionNames: config.functionNames,
|
|
161
|
+
attributeNames: config.attributeNames,
|
|
162
|
+
}, config.sortOrder);
|
|
87
163
|
if (count > 0) {
|
|
88
164
|
totalSorted += count;
|
|
89
165
|
if (!changedFiles.includes(file))
|
|
@@ -93,11 +169,11 @@ for (const file of files) {
|
|
|
93
169
|
}
|
|
94
170
|
}
|
|
95
171
|
}
|
|
96
|
-
if (!fix
|
|
172
|
+
if (!(fix || dedup || merge || sort)) {
|
|
97
173
|
const findings = analyzeFile(file, config);
|
|
98
174
|
allFindings.push(...findings);
|
|
99
175
|
totalFindings += findings.length;
|
|
100
|
-
if (reporter === 'text') {
|
|
176
|
+
if (reporter === 'text' && !watch) {
|
|
101
177
|
for (const f of findings) {
|
|
102
178
|
const tag = f.suggestion.isCustomToken ? ' [custom token]' : '';
|
|
103
179
|
console.log(` ${f.file}:${f.line}:${f.col} ${f.suggestion.original} → ${f.suggestion.canonical}${tag}`);
|
|
@@ -105,7 +181,48 @@ for (const file of files) {
|
|
|
105
181
|
}
|
|
106
182
|
}
|
|
107
183
|
}
|
|
108
|
-
if (
|
|
184
|
+
if (watch) {
|
|
185
|
+
const fileSet = new Set(files);
|
|
186
|
+
const timers = new Map();
|
|
187
|
+
const dirs = new Set(files.map((f) => dirname(f)));
|
|
188
|
+
console.log(`Watching ${pluralize(files.length, 'file')}... (Ctrl+C to stop)`);
|
|
189
|
+
for (const dir of dirs) {
|
|
190
|
+
fsWatch(dir, { recursive: true }, (_, filename) => {
|
|
191
|
+
if (!filename)
|
|
192
|
+
return;
|
|
193
|
+
const full = resolve(dir, filename);
|
|
194
|
+
if (!fileSet.has(full))
|
|
195
|
+
return;
|
|
196
|
+
clearTimeout(timers.get(full));
|
|
197
|
+
timers.set(full, setTimeout(() => {
|
|
198
|
+
if (fix || dedup || merge || sort) {
|
|
199
|
+
processFile(full)
|
|
200
|
+
.then((count) => {
|
|
201
|
+
if (count > 0)
|
|
202
|
+
console.log(`${timestamp()} ${full} — ${pluralize(count, 'change')} applied`);
|
|
203
|
+
})
|
|
204
|
+
// biome-ignore lint/suspicious/noEmptyBlockStatements: watcher errors are silent by design
|
|
205
|
+
.catch(() => { });
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
const findings = analyzeFile(full, config);
|
|
209
|
+
if (findings.length > 0) {
|
|
210
|
+
console.log(`${timestamp()} ${full} — ${pluralize(findings.length, 'finding')}`);
|
|
211
|
+
for (const f of findings) {
|
|
212
|
+
const tag = f.suggestion.isCustomToken ? ' [custom token]' : '';
|
|
213
|
+
console.log(` ${f.line}:${f.col} ${f.suggestion.original} → ${f.suggestion.canonical}${tag}`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}, 50));
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
process.on('SIGINT', () => {
|
|
221
|
+
console.log('\nWatcher stopped.');
|
|
222
|
+
process.exit(0);
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
else if (fix || dedup || merge || sort) {
|
|
109
226
|
if (reporter === 'json') {
|
|
110
227
|
process.stdout.write(`${JSON.stringify({
|
|
111
228
|
files: files.length,
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,SAAS,SAAS,CAAC,CAAS,EAAE,IAAY;IACxC,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,YAAY,GAChB,gGAAgG,CAAC;AAEnG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAErC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC/C,MAAM,QAAQ,GACZ,WAAW,KAAK,CAAC,CAAC;IAClB,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC;IACrE,CAAC,CAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAsB;IAC7C,CAAC,CAAC,MAAM,CAAC;AAEb,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,YAAY,CAC9D,CAAC;AAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACzB,OAAO,CAAC,KAAK,CACX,iHAAiH,CAClH,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,KAAK,EAAE,CAAC;IACV,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,6DAA6D,CAC9D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,MAAM,GAAW,EAAE,CAAC;AACxB,IAAI,CAAC;IACH,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAC1C,IAAI,GAAG,CAAC,UAAU,OAAO,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC,IAAI,CACrE,CAAC;IACF,MAAM,GAAG,UAAU,CAAC;AACtB,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AAEV,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,IAAI,YAAY,GAAG,CAAC,CAAC;AACrB,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,MAAM,WAAW,GAAc,EAAE,CAAC;AAClC,MAAM,YAAY,GAAa,EAAE,CAAC;AAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;IACzB,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,UAAU,IAAI,KAAK,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACxE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,YAAY,IAAI,KAAK,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE;YAClC,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;QACH,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,WAAW,IAAI,KAAK,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACtE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,WAAW,IAAI,KAAK,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC9B,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC;QACjC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,EAAE,CAC7F,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;IAClC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CACf;YACE,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,YAAY;YACZ,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,WAAW;SACpB,EACD,IAAI,EACJ,CAAC,CACF,IAAI,CACN,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;QAC1D,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,SAAS,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CACT,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;KAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CACf;QACE,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ;YAC/B,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS;YACjC,aAAa,EAAE,CAAC,CAAC,UAAU,CAAC,aAAa;SAC1C,CAAC,CAAC;KACJ,EACD,IAAI,EACJ,CAAC,CACF,IAAI,CACN,CAAC;IACF,IAAI,aAAa,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;KAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG;QAClB,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE;oBACJ,MAAM,EAAE;wBACN,IAAI,EAAE,oBAAoB;wBAC1B,cAAc,EAAE,gDAAgD;wBAChE,KAAK,EAAE;4BACL;gCACE,EAAE,EAAE,wBAAwB;gCAC5B,IAAI,EAAE,sBAAsB;gCAC5B,gBAAgB,EAAE;oCAChB,IAAI,EAAE,qDAAqD;iCAC5D;6BACF;yBACF;qBACF;iBACF;gBACD,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/B,MAAM,EAAE,wBAAwB;oBAChC,OAAO,EAAE;wBACP,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;qBAC7D;oBACD,SAAS,EAAE;wBACT;4BACE,gBAAgB,EAAE;gCAChB,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE;gCACjC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE;6BAClD;yBACF;qBACF;iBACF,CAAC,CAAC;aACJ;SACF;KACF,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,aAAa,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;KAAM,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;IAC7B,OAAO,CAAC,GAAG,CACT,aAAa,aAAa,uBAAuB,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACnF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AAClD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAoB,MAAM,YAAY,CAAC;AAE5E,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAYF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,EAAE,CAmB5E"}
|
package/dist/core/analyzer.js
CHANGED
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { extractClassStrings, SINGLE_CLASS_REGEX, } from './class-strings.js';
|
|
2
3
|
import { suggestCanonical } from './rules.js';
|
|
3
|
-
const CLASS_REGEX = /className(?:Name)?\s*=\s*(?:"([^"]+)"|'([^']+)'|`([^`]+)`|\{([^}]+)\})/g;
|
|
4
|
-
const SINGLE_CLASS_REGEX = /[^\s"'`{}]+/g;
|
|
5
|
-
function extractClasses(content) {
|
|
6
|
-
const found = [];
|
|
7
|
-
for (const match of content.matchAll(CLASS_REGEX)) {
|
|
8
|
-
const raw = match[1] ?? match[2] ?? match[3] ?? match[4] ?? '';
|
|
9
|
-
const rawStart = (match.index ?? 0) + match[0].indexOf(raw);
|
|
10
|
-
for (const clsMatch of raw.matchAll(SINGLE_CLASS_REGEX)) {
|
|
11
|
-
found.push({ cls: clsMatch[0], index: rawStart + (clsMatch.index ?? 0) });
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return found;
|
|
15
|
-
}
|
|
16
4
|
function indexToLineCol(content, index) {
|
|
17
5
|
const before = content.slice(0, index);
|
|
18
6
|
const line = before.split('\n').length;
|
|
@@ -22,12 +10,19 @@ function indexToLineCol(content, index) {
|
|
|
22
10
|
export function analyzeFile(filePath, config = {}) {
|
|
23
11
|
const content = readFileSync(filePath, 'utf8');
|
|
24
12
|
const findings = [];
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
13
|
+
const opts = {
|
|
14
|
+
functionNames: config.functionNames,
|
|
15
|
+
attributeNames: config.attributeNames,
|
|
16
|
+
};
|
|
17
|
+
for (const { value, start } of extractClassStrings(content, opts)) {
|
|
18
|
+
for (const clsMatch of value.matchAll(SINGLE_CLASS_REGEX)) {
|
|
19
|
+
const suggestion = suggestCanonical(clsMatch[0], config);
|
|
20
|
+
if (!suggestion)
|
|
21
|
+
continue;
|
|
22
|
+
const index = start + (clsMatch.index ?? 0);
|
|
23
|
+
const { line, col } = indexToLineCol(content, index);
|
|
24
|
+
findings.push({ file: filePath, line, col, suggestion });
|
|
25
|
+
}
|
|
31
26
|
}
|
|
32
27
|
return findings;
|
|
33
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAEL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAgC,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS5E,SAAS,cAAc,CACrB,OAAe,EACf,KAAa;IAEb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAE;IAC/D,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAoB;QAC5B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC;IAEF,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QAClE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export type ClassStringOpts = {
|
|
2
2
|
functionNames?: string[];
|
|
3
|
+
attributeNames?: string[];
|
|
3
4
|
};
|
|
5
|
+
export declare const SINGLE_CLASS_REGEX: RegExp;
|
|
6
|
+
export declare function escapeRegex(s: string): string;
|
|
4
7
|
export declare function replaceClassStrings(content: string, transform: (s: string) => string, opts?: ClassStringOpts): {
|
|
5
8
|
result: string;
|
|
6
9
|
count: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-strings.d.ts","sourceRoot":"","sources":["../../src/core/class-strings.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"class-strings.d.ts","sourceRoot":"","sources":["../../src/core/class-strings.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAIF,eAAO,MAAM,kBAAkB,QAAiB,CAAC;AAEjD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAmDD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAChC,IAAI,GAAE,eAAoB,GACzB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA6CnC;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,eAAoB,GACzB,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA+CtD"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
const DEFAULT_ATTR_NAMES = ['className'];
|
|
2
|
+
export const SINGLE_CLASS_REGEX = /[^\s"'`{}]+/g;
|
|
3
|
+
export function escapeRegex(s) {
|
|
2
4
|
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
3
5
|
}
|
|
6
|
+
function buildAttrRegex(names) {
|
|
7
|
+
const alts = names.map(escapeRegex).join('|');
|
|
8
|
+
return new RegExp(`(${alts})\\s*=\\s*(?:"([^"]+)"|'([^']+)'|\`([^\`]+)\`)`, 'g');
|
|
9
|
+
}
|
|
4
10
|
function transformCallContent(content, start, transform) {
|
|
5
11
|
const parts = [];
|
|
6
12
|
let i = start;
|
|
@@ -41,15 +47,18 @@ function transformCallContent(content, start, transform) {
|
|
|
41
47
|
return { processed: parts.join(''), consumed: i - start, count };
|
|
42
48
|
}
|
|
43
49
|
export function replaceClassStrings(content, transform, opts = {}) {
|
|
50
|
+
const attrNames = opts.attributeNames?.length
|
|
51
|
+
? opts.attributeNames
|
|
52
|
+
: DEFAULT_ATTR_NAMES;
|
|
44
53
|
let result = content;
|
|
45
54
|
let count = 0;
|
|
46
|
-
result = result.replace(
|
|
55
|
+
result = result.replace(buildAttrRegex(attrNames), (_full, attr, dq, sq, bt) => {
|
|
47
56
|
const raw = dq ?? sq ?? bt ?? '';
|
|
48
57
|
const q = dq !== undefined ? '"' : sq !== undefined ? "'" : '`';
|
|
49
58
|
const out = transform(raw);
|
|
50
59
|
if (out !== raw)
|
|
51
60
|
count++;
|
|
52
|
-
return
|
|
61
|
+
return `${attr}=${q}${out}${q}`;
|
|
53
62
|
});
|
|
54
63
|
const funcNames = opts.functionNames;
|
|
55
64
|
if (!funcNames?.length)
|
|
@@ -72,9 +81,12 @@ export function replaceClassStrings(content, transform, opts = {}) {
|
|
|
72
81
|
return { result: buf.join(''), count };
|
|
73
82
|
}
|
|
74
83
|
export function extractClassStrings(content, opts = {}) {
|
|
84
|
+
const attrNames = opts.attributeNames?.length
|
|
85
|
+
? opts.attributeNames
|
|
86
|
+
: DEFAULT_ATTR_NAMES;
|
|
75
87
|
const results = [];
|
|
76
|
-
for (const m of content.matchAll(
|
|
77
|
-
const raw = m[
|
|
88
|
+
for (const m of content.matchAll(buildAttrRegex(attrNames))) {
|
|
89
|
+
const raw = m[2] ?? m[3] ?? m[4] ?? '';
|
|
78
90
|
const start = (m.index ?? 0) + m[0].length - raw.length - 1;
|
|
79
91
|
results.push({ value: raw, start, end: start + raw.length });
|
|
80
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-strings.js","sourceRoot":"","sources":["../../src/core/class-strings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"class-strings.js","sourceRoot":"","sources":["../../src/core/class-strings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ClassStringOpts } from './class-strings.js';
|
|
2
|
+
import type { Config } from './rules.js';
|
|
3
|
+
export type FileClasses = {
|
|
4
|
+
file: string;
|
|
5
|
+
classes: string[];
|
|
6
|
+
};
|
|
7
|
+
export type ColorVariant = {
|
|
8
|
+
token: string;
|
|
9
|
+
count: number;
|
|
10
|
+
files: string[];
|
|
11
|
+
};
|
|
12
|
+
export type ColorVariantGroup = {
|
|
13
|
+
property: string;
|
|
14
|
+
family: string;
|
|
15
|
+
variants: ColorVariant[];
|
|
16
|
+
};
|
|
17
|
+
export type ScaleValue = {
|
|
18
|
+
value: string;
|
|
19
|
+
count: number;
|
|
20
|
+
files: string[];
|
|
21
|
+
};
|
|
22
|
+
export type ScaleInconsistency = {
|
|
23
|
+
property: string;
|
|
24
|
+
values: ScaleValue[];
|
|
25
|
+
};
|
|
26
|
+
export type ClassCombination = {
|
|
27
|
+
classes: string[];
|
|
28
|
+
count: number;
|
|
29
|
+
files: string[];
|
|
30
|
+
};
|
|
31
|
+
export type ConsistencyReport = {
|
|
32
|
+
filesAnalyzed: number;
|
|
33
|
+
colorVariants: ColorVariantGroup[];
|
|
34
|
+
scaleInconsistencies: ScaleInconsistency[];
|
|
35
|
+
combinations: ClassCombination[];
|
|
36
|
+
};
|
|
37
|
+
export type ConsistencyOptions = {
|
|
38
|
+
minCombinationSize?: number;
|
|
39
|
+
minCombinationFiles?: number;
|
|
40
|
+
maxCombinations?: number;
|
|
41
|
+
minScaleOccurrences?: number;
|
|
42
|
+
};
|
|
43
|
+
export declare function analyzeConsistency(input: FileClasses[], options?: ConsistencyOptions): ConsistencyReport;
|
|
44
|
+
export declare function collectClasses(content: string, opts?: ClassStringOpts): string[];
|
|
45
|
+
export declare function analyzeConsistencyFiles(filePaths: string[], config?: Config, options?: ConsistencyOptions): ConsistencyReport;
|
|
46
|
+
//# sourceMappingURL=consistency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consistency.d.ts","sourceRoot":"","sources":["../../src/core/consistency.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAC3C,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AA+PF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAAE,EACpB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAoBnB;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,eAAoB,GACzB,MAAM,EAAE,CAQV;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,GAAE,MAAW,EACnB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAUnB"}
|