tailwind-typescript-plugin 1.4.0-beta.23 → 1.4.0-beta.25

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 (94) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/lib/core/interfaces.d.ts +17 -1
  3. package/lib/core/interfaces.d.ts.map +1 -1
  4. package/lib/extractors/BaseExtractor.d.ts +7 -1
  5. package/lib/extractors/BaseExtractor.d.ts.map +1 -1
  6. package/lib/extractors/BaseExtractor.js +10 -0
  7. package/lib/extractors/BaseExtractor.js.map +1 -1
  8. package/lib/extractors/BaseExtractor.spec.d.ts +2 -0
  9. package/lib/extractors/BaseExtractor.spec.d.ts.map +1 -0
  10. package/lib/extractors/BaseExtractor.spec.js +421 -0
  11. package/lib/extractors/BaseExtractor.spec.js.map +1 -0
  12. package/lib/extractors/CvaExtractor.spec.d.ts +2 -0
  13. package/lib/extractors/CvaExtractor.spec.d.ts.map +1 -0
  14. package/lib/extractors/CvaExtractor.spec.js +1177 -0
  15. package/lib/extractors/CvaExtractor.spec.js.map +1 -0
  16. package/lib/extractors/ExpressionExtractor.spec.d.ts +2 -0
  17. package/lib/extractors/ExpressionExtractor.spec.d.ts.map +1 -0
  18. package/lib/extractors/ExpressionExtractor.spec.js +316 -0
  19. package/lib/extractors/ExpressionExtractor.spec.js.map +1 -0
  20. package/lib/extractors/JsxAttributeExtractor.d.ts +5 -0
  21. package/lib/extractors/JsxAttributeExtractor.d.ts.map +1 -1
  22. package/lib/extractors/JsxAttributeExtractor.js +6 -0
  23. package/lib/extractors/JsxAttributeExtractor.js.map +1 -1
  24. package/lib/extractors/JsxAttributeExtractor.spec.d.ts +2 -0
  25. package/lib/extractors/JsxAttributeExtractor.spec.d.ts.map +1 -0
  26. package/lib/extractors/JsxAttributeExtractor.spec.js +430 -0
  27. package/lib/extractors/JsxAttributeExtractor.spec.js.map +1 -0
  28. package/lib/extractors/TailwindVariantsExtractor.spec.d.ts +2 -0
  29. package/lib/extractors/TailwindVariantsExtractor.spec.d.ts.map +1 -0
  30. package/lib/extractors/TailwindVariantsExtractor.spec.js +1407 -0
  31. package/lib/extractors/TailwindVariantsExtractor.spec.js.map +1 -0
  32. package/lib/extractors/TemplateExpressionExtractor.spec.d.ts +2 -0
  33. package/lib/extractors/TemplateExpressionExtractor.spec.d.ts.map +1 -0
  34. package/lib/extractors/TemplateExpressionExtractor.spec.js +240 -0
  35. package/lib/extractors/TemplateExpressionExtractor.spec.js.map +1 -0
  36. package/lib/extractors/VariableReferenceExtractor.spec.d.ts +2 -0
  37. package/lib/extractors/VariableReferenceExtractor.spec.d.ts.map +1 -0
  38. package/lib/extractors/VariableReferenceExtractor.spec.js +138 -0
  39. package/lib/extractors/VariableReferenceExtractor.spec.js.map +1 -0
  40. package/lib/extractors/VueAttributeExtractor.d.ts +6 -0
  41. package/lib/extractors/VueAttributeExtractor.d.ts.map +1 -1
  42. package/lib/extractors/VueAttributeExtractor.js +7 -0
  43. package/lib/extractors/VueAttributeExtractor.js.map +1 -1
  44. package/lib/plugin/TailwindTypescriptPlugin.d.ts +9 -0
  45. package/lib/plugin/TailwindTypescriptPlugin.d.ts.map +1 -1
  46. package/lib/plugin/TailwindTypescriptPlugin.js +36 -11
  47. package/lib/plugin/TailwindTypescriptPlugin.js.map +1 -1
  48. package/lib/services/ClassNameExtractionService.d.ts +8 -3
  49. package/lib/services/ClassNameExtractionService.d.ts.map +1 -1
  50. package/lib/services/ClassNameExtractionService.js +26 -25
  51. package/lib/services/ClassNameExtractionService.js.map +1 -1
  52. package/lib/services/ClassNameExtractionService.spec.js +0 -7
  53. package/lib/services/ClassNameExtractionService.spec.js.map +1 -1
  54. package/lib/services/ConfigSchemaValidator.d.ts +40 -0
  55. package/lib/services/ConfigSchemaValidator.d.ts.map +1 -0
  56. package/lib/services/ConfigSchemaValidator.js +139 -0
  57. package/lib/services/ConfigSchemaValidator.js.map +1 -0
  58. package/lib/services/ConfigSchemaValidator.spec.d.ts +2 -0
  59. package/lib/services/ConfigSchemaValidator.spec.d.ts.map +1 -0
  60. package/lib/services/ConfigSchemaValidator.spec.js +344 -0
  61. package/lib/services/ConfigSchemaValidator.spec.js.map +1 -0
  62. package/lib/services/ConflictClassDetection.spec.js +48 -0
  63. package/lib/services/ConflictClassDetection.spec.js.map +1 -1
  64. package/lib/services/DiagnosticService.spec.d.ts +2 -0
  65. package/lib/services/DiagnosticService.spec.d.ts.map +1 -0
  66. package/lib/services/DiagnosticService.spec.js +259 -0
  67. package/lib/services/DiagnosticService.spec.js.map +1 -0
  68. package/lib/services/FileDiagnosticCache.spec.d.ts +2 -0
  69. package/lib/services/FileDiagnosticCache.spec.d.ts.map +1 -0
  70. package/lib/services/FileDiagnosticCache.spec.js +213 -0
  71. package/lib/services/FileDiagnosticCache.spec.js.map +1 -0
  72. package/lib/services/PerformanceCache.spec.d.ts +2 -0
  73. package/lib/services/PerformanceCache.spec.d.ts.map +1 -0
  74. package/lib/services/PerformanceCache.spec.js +168 -0
  75. package/lib/services/PerformanceCache.spec.js.map +1 -0
  76. package/lib/services/PluginConfigService.d.ts +19 -0
  77. package/lib/services/PluginConfigService.d.ts.map +1 -1
  78. package/lib/services/PluginConfigService.js +29 -0
  79. package/lib/services/PluginConfigService.js.map +1 -1
  80. package/lib/services/ValidationService.spec.d.ts +2 -0
  81. package/lib/services/ValidationService.spec.d.ts.map +1 -0
  82. package/lib/services/ValidationService.spec.js +289 -0
  83. package/lib/services/ValidationService.spec.js.map +1 -0
  84. package/lib/utils/FrameworkDetector.d.ts +1 -2
  85. package/lib/utils/FrameworkDetector.d.ts.map +1 -1
  86. package/lib/utils/FrameworkDetector.js +0 -5
  87. package/lib/utils/FrameworkDetector.js.map +1 -1
  88. package/lib/utils/FrameworkDetector.spec.js +1 -9
  89. package/lib/utils/FrameworkDetector.spec.js.map +1 -1
  90. package/package.json +10 -3
  91. package/lib/extractors/SvelteAttributeExtractor.d.ts +0 -17
  92. package/lib/extractors/SvelteAttributeExtractor.d.ts.map +0 -1
  93. package/lib/extractors/SvelteAttributeExtractor.js +0 -27
  94. package/lib/extractors/SvelteAttributeExtractor.js.map +0 -1
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const ts = __importStar(require("typescript/lib/tsserverlibrary"));
37
+ const FileDiagnosticCache_1 = require("./FileDiagnosticCache");
38
+ describe('FileDiagnosticCache', () => {
39
+ let cache;
40
+ // Helper to create a mock diagnostic
41
+ const createMockDiagnostic = (code) => ({
42
+ file: undefined,
43
+ start: 0,
44
+ length: 10,
45
+ messageText: `Test diagnostic ${code}`,
46
+ category: ts.DiagnosticCategory.Error,
47
+ code
48
+ });
49
+ beforeEach(() => {
50
+ cache = new FileDiagnosticCache_1.FileDiagnosticCache(3); // Small cache for testing LRU
51
+ });
52
+ describe('basic operations', () => {
53
+ it('should return undefined for uncached files', () => {
54
+ const result = cache.get('uncached.ts', 'content');
55
+ expect(result).toBeUndefined();
56
+ });
57
+ it('should cache and retrieve diagnostics', () => {
58
+ const diagnostics = [createMockDiagnostic(1)];
59
+ cache.set('file.ts', 'content', diagnostics);
60
+ const result = cache.get('file.ts', 'content');
61
+ expect(result).toEqual(diagnostics);
62
+ });
63
+ it('should return undefined when content changes', () => {
64
+ const diagnostics = [createMockDiagnostic(1)];
65
+ cache.set('file.ts', 'original content', diagnostics);
66
+ const result = cache.get('file.ts', 'modified content');
67
+ expect(result).toBeUndefined();
68
+ });
69
+ it('should update cache when content changes', () => {
70
+ const oldDiagnostics = [createMockDiagnostic(1)];
71
+ const newDiagnostics = [createMockDiagnostic(2)];
72
+ cache.set('file.ts', 'old content', oldDiagnostics);
73
+ cache.set('file.ts', 'new content', newDiagnostics);
74
+ expect(cache.get('file.ts', 'old content')).toBeUndefined();
75
+ expect(cache.get('file.ts', 'new content')).toEqual(newDiagnostics);
76
+ });
77
+ it('should cache empty diagnostics array', () => {
78
+ cache.set('file.ts', 'content', []);
79
+ const result = cache.get('file.ts', 'content');
80
+ expect(result).toEqual([]);
81
+ });
82
+ it('should handle multiple files independently', () => {
83
+ const diag1 = [createMockDiagnostic(1)];
84
+ const diag2 = [createMockDiagnostic(2)];
85
+ cache.set('file1.ts', 'content1', diag1);
86
+ cache.set('file2.ts', 'content2', diag2);
87
+ expect(cache.get('file1.ts', 'content1')).toEqual(diag1);
88
+ expect(cache.get('file2.ts', 'content2')).toEqual(diag2);
89
+ });
90
+ });
91
+ describe('LRU eviction', () => {
92
+ it('should evict oldest entry when cache is full', () => {
93
+ cache.set('file1.ts', 'content1', [createMockDiagnostic(1)]);
94
+ cache.set('file2.ts', 'content2', [createMockDiagnostic(2)]);
95
+ cache.set('file3.ts', 'content3', [createMockDiagnostic(3)]);
96
+ // Cache is now full (maxSize = 3)
97
+ // Adding a 4th entry should evict file1
98
+ cache.set('file4.ts', 'content4', [createMockDiagnostic(4)]);
99
+ expect(cache.get('file1.ts', 'content1')).toBeUndefined();
100
+ expect(cache.get('file2.ts', 'content2')).toBeDefined();
101
+ expect(cache.get('file3.ts', 'content3')).toBeDefined();
102
+ expect(cache.get('file4.ts', 'content4')).toBeDefined();
103
+ });
104
+ it('should move accessed entries to end (most recently used)', () => {
105
+ cache.set('file1.ts', 'content1', [createMockDiagnostic(1)]);
106
+ cache.set('file2.ts', 'content2', [createMockDiagnostic(2)]);
107
+ cache.set('file3.ts', 'content3', [createMockDiagnostic(3)]);
108
+ // Access file1 to make it most recently used
109
+ cache.get('file1.ts', 'content1');
110
+ // Add file4 - should evict file2 (oldest after file1 was accessed)
111
+ cache.set('file4.ts', 'content4', [createMockDiagnostic(4)]);
112
+ expect(cache.get('file1.ts', 'content1')).toBeDefined();
113
+ expect(cache.get('file2.ts', 'content2')).toBeUndefined();
114
+ expect(cache.get('file3.ts', 'content3')).toBeDefined();
115
+ expect(cache.get('file4.ts', 'content4')).toBeDefined();
116
+ });
117
+ });
118
+ describe('invalidate', () => {
119
+ it('should remove specific file from cache', () => {
120
+ cache.set('file1.ts', 'content1', [createMockDiagnostic(1)]);
121
+ cache.set('file2.ts', 'content2', [createMockDiagnostic(2)]);
122
+ cache.invalidate('file1.ts');
123
+ expect(cache.get('file1.ts', 'content1')).toBeUndefined();
124
+ expect(cache.get('file2.ts', 'content2')).toBeDefined();
125
+ });
126
+ it('should handle invalidating non-existent file', () => {
127
+ expect(() => cache.invalidate('nonexistent.ts')).not.toThrow();
128
+ });
129
+ });
130
+ describe('clear', () => {
131
+ it('should remove all entries from cache', () => {
132
+ cache.set('file1.ts', 'content1', [createMockDiagnostic(1)]);
133
+ cache.set('file2.ts', 'content2', [createMockDiagnostic(2)]);
134
+ cache.clear();
135
+ expect(cache.get('file1.ts', 'content1')).toBeUndefined();
136
+ expect(cache.get('file2.ts', 'content2')).toBeUndefined();
137
+ });
138
+ it('should reset cache size to 0', () => {
139
+ cache.set('file1.ts', 'content1', [createMockDiagnostic(1)]);
140
+ cache.clear();
141
+ expect(cache.getStats().size).toBe(0);
142
+ });
143
+ });
144
+ describe('getStats', () => {
145
+ it('should return correct size and maxSize', () => {
146
+ expect(cache.getStats()).toEqual({ size: 0, maxSize: 3 });
147
+ cache.set('file1.ts', 'content1', [createMockDiagnostic(1)]);
148
+ expect(cache.getStats()).toEqual({ size: 1, maxSize: 3 });
149
+ cache.set('file2.ts', 'content2', [createMockDiagnostic(2)]);
150
+ expect(cache.getStats()).toEqual({ size: 2, maxSize: 3 });
151
+ });
152
+ it('should not exceed maxSize', () => {
153
+ for (let i = 0; i < 10; i++) {
154
+ cache.set(`file${i}.ts`, `content${i}`, [createMockDiagnostic(i)]);
155
+ }
156
+ expect(cache.getStats().size).toBe(3);
157
+ });
158
+ });
159
+ describe('content hashing', () => {
160
+ it('should treat identical content as cache hit', () => {
161
+ const diagnostics = [createMockDiagnostic(1)];
162
+ cache.set('file.ts', 'identical content', diagnostics);
163
+ const result = cache.get('file.ts', 'identical content');
164
+ expect(result).toEqual(diagnostics);
165
+ });
166
+ it('should detect whitespace changes', () => {
167
+ const diagnostics = [createMockDiagnostic(1)];
168
+ cache.set('file.ts', 'content with spaces', diagnostics);
169
+ expect(cache.get('file.ts', 'content with spaces')).toBeUndefined();
170
+ });
171
+ it('should detect case changes', () => {
172
+ const diagnostics = [createMockDiagnostic(1)];
173
+ cache.set('file.ts', 'Content', diagnostics);
174
+ expect(cache.get('file.ts', 'content')).toBeUndefined();
175
+ });
176
+ });
177
+ describe('edge cases', () => {
178
+ it('should handle empty content', () => {
179
+ const diagnostics = [createMockDiagnostic(1)];
180
+ cache.set('file.ts', '', diagnostics);
181
+ expect(cache.get('file.ts', '')).toEqual(diagnostics);
182
+ });
183
+ it('should handle very long content', () => {
184
+ const longContent = 'x'.repeat(100000);
185
+ const diagnostics = [createMockDiagnostic(1)];
186
+ cache.set('file.ts', longContent, diagnostics);
187
+ expect(cache.get('file.ts', longContent)).toEqual(diagnostics);
188
+ });
189
+ it('should handle unicode content', () => {
190
+ const unicodeContent = 'const 变量 = "日本語"; // 中文注释';
191
+ const diagnostics = [createMockDiagnostic(1)];
192
+ cache.set('file.ts', unicodeContent, diagnostics);
193
+ expect(cache.get('file.ts', unicodeContent)).toEqual(diagnostics);
194
+ });
195
+ it('should handle special characters in file names', () => {
196
+ const diagnostics = [createMockDiagnostic(1)];
197
+ cache.set('/path/to/file with spaces.ts', 'content', diagnostics);
198
+ expect(cache.get('/path/to/file with spaces.ts', 'content')).toEqual(diagnostics);
199
+ });
200
+ it('should handle cache size of 1', () => {
201
+ const smallCache = new FileDiagnosticCache_1.FileDiagnosticCache(1);
202
+ smallCache.set('file1.ts', 'content1', [createMockDiagnostic(1)]);
203
+ smallCache.set('file2.ts', 'content2', [createMockDiagnostic(2)]);
204
+ expect(smallCache.get('file1.ts', 'content1')).toBeUndefined();
205
+ expect(smallCache.get('file2.ts', 'content2')).toBeDefined();
206
+ });
207
+ it('should use default maxSize when not specified', () => {
208
+ const defaultCache = new FileDiagnosticCache_1.FileDiagnosticCache();
209
+ expect(defaultCache.getStats().maxSize).toBe(100);
210
+ });
211
+ });
212
+ });
213
+ //# sourceMappingURL=FileDiagnosticCache.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDiagnosticCache.spec.js","sourceRoot":"","sources":["../../src/services/FileDiagnosticCache.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PerformanceCache.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerformanceCache.spec.d.ts","sourceRoot":"","sources":["../../src/services/PerformanceCache.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const PerformanceCache_1 = require("./PerformanceCache");
4
+ describe('PerformanceCache', () => {
5
+ describe('basic operations', () => {
6
+ it('should return undefined for uncached keys', () => {
7
+ const cache = new PerformanceCache_1.PerformanceCache();
8
+ expect(cache.get('uncached')).toBeUndefined();
9
+ });
10
+ it('should cache and retrieve values', () => {
11
+ const cache = new PerformanceCache_1.PerformanceCache();
12
+ cache.set('key', true);
13
+ expect(cache.get('key')).toBe(true);
14
+ });
15
+ it('should overwrite existing values', () => {
16
+ const cache = new PerformanceCache_1.PerformanceCache();
17
+ cache.set('key', 1);
18
+ cache.set('key', 2);
19
+ expect(cache.get('key')).toBe(2);
20
+ });
21
+ it('should handle different value types', () => {
22
+ const cache = new PerformanceCache_1.PerformanceCache();
23
+ const obj = { foo: 'bar' };
24
+ cache.set('key', obj);
25
+ expect(cache.get('key')).toBe(obj);
26
+ });
27
+ });
28
+ describe('has', () => {
29
+ it('should return false for uncached keys', () => {
30
+ const cache = new PerformanceCache_1.PerformanceCache();
31
+ expect(cache.has('uncached')).toBe(false);
32
+ });
33
+ it('should return true for cached keys', () => {
34
+ const cache = new PerformanceCache_1.PerformanceCache();
35
+ cache.set('key', true);
36
+ expect(cache.has('key')).toBe(true);
37
+ });
38
+ });
39
+ describe('size', () => {
40
+ it('should start at 0', () => {
41
+ const cache = new PerformanceCache_1.PerformanceCache();
42
+ expect(cache.size).toBe(0);
43
+ });
44
+ it('should increase when adding items', () => {
45
+ const cache = new PerformanceCache_1.PerformanceCache();
46
+ cache.set('key1', true);
47
+ cache.set('key2', false);
48
+ expect(cache.size).toBe(2);
49
+ });
50
+ it('should not increase when overwriting', () => {
51
+ const cache = new PerformanceCache_1.PerformanceCache();
52
+ cache.set('key', true);
53
+ cache.set('key', false);
54
+ expect(cache.size).toBe(1);
55
+ });
56
+ });
57
+ describe('clear', () => {
58
+ it('should remove all entries', () => {
59
+ const cache = new PerformanceCache_1.PerformanceCache();
60
+ cache.set('key1', true);
61
+ cache.set('key2', false);
62
+ cache.clear();
63
+ expect(cache.size).toBe(0);
64
+ expect(cache.get('key1')).toBeUndefined();
65
+ expect(cache.get('key2')).toBeUndefined();
66
+ });
67
+ });
68
+ describe('LRU eviction', () => {
69
+ it('should evict oldest entry when at capacity', () => {
70
+ const cache = new PerformanceCache_1.PerformanceCache(3);
71
+ cache.set('first', 1);
72
+ cache.set('second', 2);
73
+ cache.set('third', 3);
74
+ // Cache is full, adding fourth should evict 'first'
75
+ cache.set('fourth', 4);
76
+ expect(cache.get('first')).toBeUndefined();
77
+ expect(cache.get('second')).toBe(2);
78
+ expect(cache.get('third')).toBe(3);
79
+ expect(cache.get('fourth')).toBe(4);
80
+ });
81
+ it('should move accessed entries to end (most recently used)', () => {
82
+ const cache = new PerformanceCache_1.PerformanceCache(3);
83
+ cache.set('first', 1);
84
+ cache.set('second', 2);
85
+ cache.set('third', 3);
86
+ // Access 'first' to make it most recently used
87
+ cache.get('first');
88
+ // Adding fourth should now evict 'second'
89
+ cache.set('fourth', 4);
90
+ expect(cache.get('first')).toBe(1);
91
+ expect(cache.get('second')).toBeUndefined();
92
+ expect(cache.get('third')).toBe(3);
93
+ expect(cache.get('fourth')).toBe(4);
94
+ });
95
+ it('should handle size of 1', () => {
96
+ const cache = new PerformanceCache_1.PerformanceCache(1);
97
+ cache.set('first', 1);
98
+ cache.set('second', 2);
99
+ expect(cache.get('first')).toBeUndefined();
100
+ expect(cache.get('second')).toBe(2);
101
+ expect(cache.size).toBe(1);
102
+ });
103
+ it('should not exceed maxSize', () => {
104
+ const cache = new PerformanceCache_1.PerformanceCache(3);
105
+ for (let i = 0; i < 100; i++) {
106
+ cache.set(`key${i}`, i);
107
+ }
108
+ expect(cache.size).toBe(3);
109
+ });
110
+ });
111
+ describe('default maxSize', () => {
112
+ it('should use default maxSize of 1000', () => {
113
+ const cache = new PerformanceCache_1.PerformanceCache();
114
+ // Add 1001 items
115
+ for (let i = 0; i < 1001; i++) {
116
+ cache.set(`key${i}`, true);
117
+ }
118
+ // Should have evicted the first one
119
+ expect(cache.size).toBe(1000);
120
+ expect(cache.get('key0')).toBeUndefined();
121
+ expect(cache.get('key1000')).toBe(true);
122
+ });
123
+ });
124
+ describe('different key types', () => {
125
+ it('should work with number keys', () => {
126
+ const cache = new PerformanceCache_1.PerformanceCache();
127
+ cache.set(1, 'one');
128
+ cache.set(2, 'two');
129
+ expect(cache.get(1)).toBe('one');
130
+ expect(cache.get(2)).toBe('two');
131
+ });
132
+ it('should work with object keys', () => {
133
+ const cache = new PerformanceCache_1.PerformanceCache();
134
+ const key1 = { id: 1 };
135
+ const key2 = { id: 2 };
136
+ cache.set(key1, 'first');
137
+ cache.set(key2, 'second');
138
+ expect(cache.get(key1)).toBe('first');
139
+ expect(cache.get(key2)).toBe('second');
140
+ });
141
+ });
142
+ describe('edge cases', () => {
143
+ it('should handle null values', () => {
144
+ const cache = new PerformanceCache_1.PerformanceCache();
145
+ cache.set('key', null);
146
+ expect(cache.get('key')).toBeNull();
147
+ expect(cache.has('key')).toBe(true);
148
+ });
149
+ it('should handle undefined values', () => {
150
+ const cache = new PerformanceCache_1.PerformanceCache();
151
+ cache.set('key', undefined);
152
+ // Note: get returns undefined both for missing and stored undefined
153
+ // has() is the way to distinguish
154
+ expect(cache.has('key')).toBe(true);
155
+ });
156
+ it('should handle empty string keys', () => {
157
+ const cache = new PerformanceCache_1.PerformanceCache();
158
+ cache.set('', true);
159
+ expect(cache.get('')).toBe(true);
160
+ });
161
+ it('should handle 0 as key', () => {
162
+ const cache = new PerformanceCache_1.PerformanceCache();
163
+ cache.set(0, 'zero');
164
+ expect(cache.get(0)).toBe('zero');
165
+ });
166
+ });
167
+ });
168
+ //# sourceMappingURL=PerformanceCache.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerformanceCache.spec.js","sourceRoot":"","sources":["../../src/services/PerformanceCache.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { IPluginConfig } from '../core/interfaces';
2
2
  import { DiagnosticSeverity, EditorConfig, LintConfig, UtilitiesConfig, UtilityFunction, ValidationConfig, VariantsConfig } from '../core/types';
3
+ import { ConfigValidationError } from './ConfigSchemaValidator';
3
4
  /**
4
5
  * Service responsible for managing plugin configuration
5
6
  * Follows Single Responsibility Principle
@@ -13,6 +14,8 @@ export declare class PluginConfigService {
13
14
  private classAttributes;
14
15
  private cssFilePath?;
15
16
  private utilityFunctionsLegacy;
17
+ private readonly schemaValidator;
18
+ private configValidationResult;
16
19
  constructor(config: IPluginConfig);
17
20
  private initializeUtilities;
18
21
  private initializeVariants;
@@ -55,5 +58,21 @@ export declare class PluginConfigService {
55
58
  * Includes default attributes (className, class, classList) plus user-configured ones
56
59
  */
57
60
  getClassAttributes(): string[];
61
+ /**
62
+ * Check if the configuration is valid according to the schema
63
+ */
64
+ isConfigValid(): boolean;
65
+ /**
66
+ * Get configuration validation errors
67
+ */
68
+ getConfigValidationErrors(): ConfigValidationError[];
69
+ /**
70
+ * Get formatted validation error messages
71
+ */
72
+ getFormattedConfigErrors(): string[];
73
+ /**
74
+ * Get a summary of all validation errors for logging
75
+ */
76
+ getConfigErrorSummary(): string;
58
77
  }
59
78
  //# sourceMappingURL=PluginConfigService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginConfigService.d.ts","sourceRoot":"","sources":["../../src/services/PluginConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACN,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,MAAM,eAAe,CAAC;AAuDvB;;;GAGG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,WAAW,CAAC,CAAS;IAG7B,OAAO,CAAC,sBAAsB,CAAoB;gBAEtC,MAAM,EAAE,aAAa;IAejC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,yBAAyB;IAQjC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmB7B,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,mBAAmB,IAAI,eAAe,EAAE;IAMxC,iBAAiB,IAAI,cAAc;IAInC,yBAAyB,IAAI,OAAO;IAIpC,+BAA+B,IAAI,OAAO;IAM1C,mBAAmB,IAAI,gBAAgB;IAIvC,mBAAmB,IAAI,OAAO;IAI9B,qBAAqB,IAAI,kBAAkB;IAI3C,iBAAiB,IAAI,MAAM,EAAE;IAM7B,aAAa,IAAI,UAAU;IAI3B,aAAa,IAAI,OAAO;IAIxB,2BAA2B,IAAI,OAAO;IAItC,6BAA6B,IAAI,kBAAkB;IAInD,wBAAwB,IAAI,OAAO;IAInC,0BAA0B,IAAI,kBAAkB;IAMhD,eAAe,IAAI,YAAY;IAI/B,eAAe,IAAI,OAAO;IAI1B,qBAAqB,IAAI,OAAO;IAIhC,cAAc,IAAI,OAAO;IAMzB,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,eAAe,IAAI,OAAO;IAM1B;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;CAG9B"}
1
+ {"version":3,"file":"PluginConfigService.d.ts","sourceRoot":"","sources":["../../src/services/PluginConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACN,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAEN,qBAAqB,EAErB,MAAM,yBAAyB,CAAC;AAuDjC;;;GAGG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,WAAW,CAAC,CAAS;IAG7B,OAAO,CAAC,sBAAsB,CAAoB;IAGlD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IACxD,OAAO,CAAC,sBAAsB,CAAyB;gBAE3C,MAAM,EAAE,aAAa;IAmBjC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,yBAAyB;IAQjC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmB7B,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,mBAAmB,IAAI,eAAe,EAAE;IAMxC,iBAAiB,IAAI,cAAc;IAInC,yBAAyB,IAAI,OAAO;IAIpC,+BAA+B,IAAI,OAAO;IAM1C,mBAAmB,IAAI,gBAAgB;IAIvC,mBAAmB,IAAI,OAAO;IAI9B,qBAAqB,IAAI,kBAAkB;IAI3C,iBAAiB,IAAI,MAAM,EAAE;IAM7B,aAAa,IAAI,UAAU;IAI3B,aAAa,IAAI,OAAO;IAIxB,2BAA2B,IAAI,OAAO;IAItC,6BAA6B,IAAI,kBAAkB;IAInD,wBAAwB,IAAI,OAAO;IAInC,0BAA0B,IAAI,kBAAkB;IAMhD,eAAe,IAAI,YAAY;IAI/B,eAAe,IAAI,OAAO;IAI1B,qBAAqB,IAAI,OAAO;IAIhC,cAAc,IAAI,OAAO;IAMzB,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,eAAe,IAAI,OAAO;IAM1B;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAM9B;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,yBAAyB,IAAI,qBAAqB,EAAE;IAIpD;;OAEG;IACH,wBAAwB,IAAI,MAAM,EAAE;IAIpC;;OAEG;IACH,qBAAqB,IAAI,MAAM;CAG/B"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PluginConfigService = void 0;
4
+ const ConfigSchemaValidator_1 = require("./ConfigSchemaValidator");
4
5
  /**
5
6
  * Default utilities configuration
6
7
  * Key is function name, value is import source ("*" = any source, "off" = disabled)
@@ -53,6 +54,9 @@ const DEFAULT_CLASS_ATTRIBUTES = ['className', 'class', 'classList'];
53
54
  */
54
55
  class PluginConfigService {
55
56
  constructor(config) {
57
+ // Validate configuration schema first
58
+ this.schemaValidator = new ConfigSchemaValidator_1.ConfigSchemaValidator();
59
+ this.configValidationResult = this.schemaValidator.validate(config);
56
60
  this.cssFilePath = config.globalCss;
57
61
  // Initialize configuration with backwards compatibility
58
62
  this.utilitiesConfig = this.initializeUtilities(config);
@@ -226,6 +230,31 @@ class PluginConfigService {
226
230
  getClassAttributes() {
227
231
  return this.classAttributes;
228
232
  }
233
+ // ---- Configuration validation ----
234
+ /**
235
+ * Check if the configuration is valid according to the schema
236
+ */
237
+ isConfigValid() {
238
+ return this.configValidationResult.valid;
239
+ }
240
+ /**
241
+ * Get configuration validation errors
242
+ */
243
+ getConfigValidationErrors() {
244
+ return this.configValidationResult.errors;
245
+ }
246
+ /**
247
+ * Get formatted validation error messages
248
+ */
249
+ getFormattedConfigErrors() {
250
+ return this.schemaValidator.formatErrors(this.configValidationResult.errors);
251
+ }
252
+ /**
253
+ * Get a summary of all validation errors for logging
254
+ */
255
+ getConfigErrorSummary() {
256
+ return this.schemaValidator.getErrorSummary(this.configValidationResult.errors);
257
+ }
229
258
  }
230
259
  exports.PluginConfigService = PluginConfigService;
231
260
  //# sourceMappingURL=PluginConfigService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginConfigService.js","sourceRoot":"","sources":["../../src/services/PluginConfigService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginConfigService.js","sourceRoot":"","sources":["../../src/services/PluginConfigService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ValidationService.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationService.spec.d.ts","sourceRoot":"","sources":["../../src/services/ValidationService.spec.ts"],"names":[],"mappings":""}