tailwind-typescript-plugin 1.3.1-beta.5 → 1.4.0-beta.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.
- package/CHANGELOG.md +21 -0
- package/README.md +167 -0
- package/lib/core/types.d.ts +8 -0
- package/lib/core/types.d.ts.map +1 -1
- package/lib/extractors/CvaExtractor.d.ts.map +1 -1
- package/lib/extractors/CvaExtractor.js +6 -2
- package/lib/extractors/CvaExtractor.js.map +1 -1
- package/lib/extractors/TailwindVariantsExtractor.d.ts +2 -0
- package/lib/extractors/TailwindVariantsExtractor.d.ts.map +1 -1
- package/lib/extractors/TailwindVariantsExtractor.js +11 -3
- package/lib/extractors/TailwindVariantsExtractor.js.map +1 -1
- package/lib/infrastructure/TailwindConflictDetector.d.ts +73 -0
- package/lib/infrastructure/TailwindConflictDetector.d.ts.map +1 -0
- package/lib/infrastructure/TailwindConflictDetector.js +612 -0
- package/lib/infrastructure/TailwindConflictDetector.js.map +1 -0
- package/lib/services/ConflictClassDetection.spec.d.ts +2 -0
- package/lib/services/ConflictClassDetection.spec.d.ts.map +1 -0
- package/lib/services/ConflictClassDetection.spec.js +472 -0
- package/lib/services/ConflictClassDetection.spec.js.map +1 -0
- package/lib/services/DiagnosticService.d.ts +14 -0
- package/lib/services/DiagnosticService.d.ts.map +1 -1
- package/lib/services/DiagnosticService.js +32 -1
- package/lib/services/DiagnosticService.js.map +1 -1
- package/lib/services/ValidationService.d.ts +1 -0
- package/lib/services/ValidationService.d.ts.map +1 -1
- package/lib/services/ValidationService.js +12 -2
- package/lib/services/ValidationService.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationService.d.ts","sourceRoot":"","sources":["../../src/services/ValidationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ValidationService.d.ts","sourceRoot":"","sources":["../../src/services/ValidationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;GAGG;AACH,qBAAa,iBAAiB;IAI5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IANxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;gBAG1C,iBAAiB,EAAE,0BAA0B,EAC7C,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,MAAM;IAKhC;;;OAGG;IACH,YAAY,CACX,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,GAC1B,EAAE,CAAC,UAAU,EAAE;IA4ElB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAiG5B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ValidationService = void 0;
|
|
4
|
+
const TailwindConflictDetector_1 = require("../infrastructure/TailwindConflictDetector");
|
|
4
5
|
/**
|
|
5
6
|
* Service responsible for validating class names and creating diagnostics
|
|
6
7
|
* Orchestrates the validation workflow
|
|
@@ -11,6 +12,7 @@ class ValidationService {
|
|
|
11
12
|
this.diagnosticService = diagnosticService;
|
|
12
13
|
this.validator = validator;
|
|
13
14
|
this.logger = logger;
|
|
15
|
+
this.conflictDetector = new TailwindConflictDetector_1.TailwindConflictDetector();
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Validate a source file and return diagnostics
|
|
@@ -35,11 +37,16 @@ class ValidationService {
|
|
|
35
37
|
const invalidClasses = this.filterInvalidClasses(classNames);
|
|
36
38
|
// Detect duplicate classes (only for valid classes, to avoid double-reporting)
|
|
37
39
|
const { trueDuplicates, extractableClasses } = this.findDuplicateClasses(classNames);
|
|
40
|
+
// Detect conflicting classes (only for valid, non-duplicate classes)
|
|
41
|
+
const conflicts = this.conflictDetector.findConflicts(classNames);
|
|
38
42
|
// PERFORMANCE: Only log if enabled
|
|
39
43
|
if (this.logger.isEnabled()) {
|
|
40
|
-
const totalIssues = invalidClasses.length +
|
|
44
|
+
const totalIssues = invalidClasses.length +
|
|
45
|
+
trueDuplicates.length +
|
|
46
|
+
extractableClasses.length +
|
|
47
|
+
conflicts.length;
|
|
41
48
|
if (totalIssues > 0) {
|
|
42
|
-
this.logger.log(`[ValidationService] Returning ${invalidClasses.length} invalid + ${trueDuplicates.length} duplicate + ${extractableClasses.length} extractable diagnostics`);
|
|
49
|
+
this.logger.log(`[ValidationService] Returning ${invalidClasses.length} invalid + ${trueDuplicates.length} duplicate + ${extractableClasses.length} extractable + ${conflicts.length} conflict diagnostics`);
|
|
43
50
|
}
|
|
44
51
|
else {
|
|
45
52
|
this.logger.log(`[ValidationService] No issues found`);
|
|
@@ -55,6 +62,9 @@ class ValidationService {
|
|
|
55
62
|
if (extractableClasses.length > 0) {
|
|
56
63
|
diagnostics.push(...this.diagnosticService.createExtractableClassDiagnostics(extractableClasses, sourceFile));
|
|
57
64
|
}
|
|
65
|
+
if (conflicts.length > 0) {
|
|
66
|
+
diagnostics.push(...this.diagnosticService.createConflictDiagnostics(conflicts, sourceFile));
|
|
67
|
+
}
|
|
58
68
|
return diagnostics;
|
|
59
69
|
}
|
|
60
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationService.js","sourceRoot":"","sources":["../../src/services/ValidationService.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ValidationService.js","sourceRoot":"","sources":["../../src/services/ValidationService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tailwind-typescript-plugin",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0-beta.2",
|
|
4
4
|
"description": "TypeScript Language Service plugin that validates Tailwind CSS class names in JSX/TSX files. Catches typos and invalid classes in real-time with support for tailwind-variants and class-variance-authority.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|