tailwind-typescript-plugin 1.4.0-beta.12 → 1.4.0-beta.15

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 (67) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +212 -143
  3. package/lib/core/interfaces.d.ts +17 -12
  4. package/lib/core/interfaces.d.ts.map +1 -1
  5. package/lib/core/types.d.ts +81 -0
  6. package/lib/core/types.d.ts.map +1 -1
  7. package/lib/extractors/SvelteAttributeExtractor.d.ts +17 -0
  8. package/lib/extractors/SvelteAttributeExtractor.d.ts.map +1 -0
  9. package/lib/extractors/SvelteAttributeExtractor.js +27 -0
  10. package/lib/extractors/SvelteAttributeExtractor.js.map +1 -0
  11. package/lib/extractors/VueAttributeExtractor.d.ts +18 -0
  12. package/lib/extractors/VueAttributeExtractor.d.ts.map +1 -0
  13. package/lib/extractors/VueAttributeExtractor.js +28 -0
  14. package/lib/extractors/VueAttributeExtractor.js.map +1 -0
  15. package/lib/infrastructure/TailwindValidator.css-vars.spec.js +1 -11
  16. package/lib/infrastructure/TailwindValidator.css-vars.spec.js.map +1 -1
  17. package/lib/infrastructure/TailwindValidator.d.ts +1 -3
  18. package/lib/infrastructure/TailwindValidator.d.ts.map +1 -1
  19. package/lib/infrastructure/TailwindValidator.js +6 -26
  20. package/lib/infrastructure/TailwindValidator.js.map +1 -1
  21. package/lib/infrastructure/TailwindValidator.spec.js +7 -17
  22. package/lib/infrastructure/TailwindValidator.spec.js.map +1 -1
  23. package/lib/plugin/TailwindTypescriptPlugin.d.ts +4 -1
  24. package/lib/plugin/TailwindTypescriptPlugin.d.ts.map +1 -1
  25. package/lib/plugin/TailwindTypescriptPlugin.js +52 -62
  26. package/lib/plugin/TailwindTypescriptPlugin.js.map +1 -1
  27. package/lib/services/ClassNameExtractionService.d.ts +19 -3
  28. package/lib/services/ClassNameExtractionService.d.ts.map +1 -1
  29. package/lib/services/ClassNameExtractionService.js +74 -13
  30. package/lib/services/ClassNameExtractionService.js.map +1 -1
  31. package/lib/services/ClassNameExtractionService.spec.d.ts +2 -0
  32. package/lib/services/ClassNameExtractionService.spec.d.ts.map +1 -0
  33. package/lib/services/ClassNameExtractionService.spec.js +160 -0
  34. package/lib/services/ClassNameExtractionService.spec.js.map +1 -0
  35. package/lib/services/CodeActionService.spec.js +1 -2
  36. package/lib/services/CodeActionService.spec.js.map +1 -1
  37. package/lib/services/CompletionService.d.ts +11 -3
  38. package/lib/services/CompletionService.d.ts.map +1 -1
  39. package/lib/services/CompletionService.js +97 -12
  40. package/lib/services/CompletionService.js.map +1 -1
  41. package/lib/services/CompletionService.spec.js +155 -12
  42. package/lib/services/CompletionService.spec.js.map +1 -1
  43. package/lib/services/ConflictClassDetection.spec.js +5 -5
  44. package/lib/services/ConflictClassDetection.spec.js.map +1 -1
  45. package/lib/services/DiagnosticService.d.ts +8 -8
  46. package/lib/services/DiagnosticService.d.ts.map +1 -1
  47. package/lib/services/DiagnosticService.js +29 -13
  48. package/lib/services/DiagnosticService.js.map +1 -1
  49. package/lib/services/DuplicateClassDetection.spec.js +20 -21
  50. package/lib/services/DuplicateClassDetection.spec.js.map +1 -1
  51. package/lib/services/PluginConfigService.d.ts +38 -15
  52. package/lib/services/PluginConfigService.d.ts.map +1 -1
  53. package/lib/services/PluginConfigService.js +182 -82
  54. package/lib/services/PluginConfigService.js.map +1 -1
  55. package/lib/services/ValidationService.d.ts +5 -4
  56. package/lib/services/ValidationService.d.ts.map +1 -1
  57. package/lib/services/ValidationService.js +39 -42
  58. package/lib/services/ValidationService.js.map +1 -1
  59. package/lib/utils/FrameworkDetector.d.ts +24 -0
  60. package/lib/utils/FrameworkDetector.d.ts.map +1 -0
  61. package/lib/utils/FrameworkDetector.js +52 -0
  62. package/lib/utils/FrameworkDetector.js.map +1 -0
  63. package/lib/utils/FrameworkDetector.spec.d.ts +2 -0
  64. package/lib/utils/FrameworkDetector.spec.d.ts.map +1 -0
  65. package/lib/utils/FrameworkDetector.spec.js +75 -0
  66. package/lib/utils/FrameworkDetector.spec.js.map +1 -0
  67. package/package.json +1 -1
@@ -14,7 +14,7 @@ const DiagnosticService_1 = require("../services/DiagnosticService");
14
14
  const FileDiagnosticCache_1 = require("../services/FileDiagnosticCache");
15
15
  const PluginConfigService_1 = require("../services/PluginConfigService");
16
16
  const ValidationService_1 = require("../services/ValidationService");
17
- const Logger_1 = require("../utils/Logger");
17
+ const FrameworkDetector_1 = require("../utils/FrameworkDetector");
18
18
  class TailwindTypescriptPlugin {
19
19
  constructor(typescript) {
20
20
  this.typescript = typescript;
@@ -26,7 +26,6 @@ class TailwindTypescriptPlugin {
26
26
  * PERFORMANCE OPTIMIZED with file-level caching
27
27
  */
28
28
  this.createGetSemanticDiagnostics = (info) => (fileName) => {
29
- this.logger.log(`[getSemanticDiagnostics] Getting semantic diagnostics for ${fileName}`);
30
29
  // Get original TypeScript diagnostics
31
30
  const prior = info.languageService.getSemanticDiagnostics(fileName);
32
31
  // Skip if validator not initialized or not a JSX/TSX file
@@ -43,10 +42,8 @@ class TailwindTypescriptPlugin {
43
42
  const fileContent = sourceFile.getFullText();
44
43
  const cachedDiagnostics = this.diagnosticCache.get(fileName, fileContent);
45
44
  if (cachedDiagnostics !== undefined) {
46
- this.logger.log(`[CACHE HIT] Returning cached diagnostics for ${fileName}`);
47
45
  return [...prior, ...cachedDiagnostics];
48
46
  }
49
- this.logger.log(`[CACHE MISS] Validating ${fileName}`);
50
47
  // Get fresh type checker from current program (always up-to-date)
51
48
  const typeChecker = program.getTypeChecker();
52
49
  // Validate and get diagnostics
@@ -59,21 +56,12 @@ class TailwindTypescriptPlugin {
59
56
  * Create the getCodeFixesAtPosition method with Tailwind quick fixes
60
57
  */
61
58
  this.createGetCodeFixesAtPosition = (info) => (fileName, start, end, errorCodes, formatOptions, preferences) => {
62
- this.logger.log(`[getCodeFixesAtPosition] fileName=${fileName}, start=${start}, end=${end}, errorCodes=${errorCodes.join(',')}`);
63
59
  // Get original TypeScript code fixes
64
60
  const prior = info.languageService.getCodeFixesAtPosition(fileName, start, end, errorCodes, formatOptions, preferences);
65
61
  // Skip if code action service not initialized or not a supported file
66
62
  if (!this.codeActionService || !this.shouldValidateFile(fileName)) {
67
- this.logger.log('[getCodeFixesAtPosition] Skipping - service not initialized or unsupported file');
68
63
  return prior;
69
64
  }
70
- // Check if any of our error codes are requested
71
- const supportedCodes = this.codeActionService.getSupportedErrorCodes();
72
- const hasOurErrorCode = errorCodes.some(code => supportedCodes.includes(code));
73
- if (!hasOurErrorCode) {
74
- this.logger.log(`[getCodeFixesAtPosition] No matching error codes. Requested: ${errorCodes.join(',')}, Supported: ${supportedCodes.join(',')}`);
75
- // Still try to provide fixes - the error code check might not be necessary for all IDEs
76
- }
77
65
  // Get source file
78
66
  const program = info.languageService.getProgram();
79
67
  if (!program) {
@@ -85,10 +73,8 @@ class TailwindTypescriptPlugin {
85
73
  }
86
74
  // Get all diagnostics for this file (including cached Tailwind diagnostics)
87
75
  const allDiagnostics = this.diagnosticCache.get(fileName, sourceFile.getFullText()) || [];
88
- this.logger.log(`[getCodeFixesAtPosition] Found ${allDiagnostics.length} cached diagnostics`);
89
76
  // Get Tailwind quick fixes
90
77
  const tailwindFixes = this.codeActionService.getCodeActions(this.typescript, fileName, start, end, allDiagnostics, sourceFile);
91
- this.logger.log(`[getCodeFixesAtPosition] Generated ${tailwindFixes.length} Tailwind fixes`);
92
78
  return [...prior, ...tailwindFixes];
93
79
  };
94
80
  /**
@@ -256,11 +242,12 @@ class TailwindTypescriptPlugin {
256
242
  * Create the getCompletionsAtPosition method with Tailwind class completions
257
243
  */
258
244
  this.createGetCompletionsAtPosition = (info) => (fileName, position, options) => {
259
- this.logger.log(`[getCompletionsAtPosition] fileName=${fileName}, position=${position}`);
260
245
  // Get original TypeScript completions
261
246
  const prior = info.languageService.getCompletionsAtPosition(fileName, position, options);
262
- // Skip if completion service not initialized or not a supported file
263
- if (!this.completionService || !this.shouldValidateFile(fileName)) {
247
+ // Skip if completion service not initialized, not a supported file, or editor/autocomplete disabled
248
+ if (!this.completionService ||
249
+ !this.shouldValidateFile(fileName) ||
250
+ !this.configService.isAutocompleteEnabled()) {
264
251
  return prior;
265
252
  }
266
253
  // Get source file
@@ -283,7 +270,6 @@ class TailwindTypescriptPlugin {
283
270
  * Create the getCompletionEntryDetails method with CSS documentation
284
271
  */
285
272
  this.createGetCompletionEntryDetails = (info) => (fileName, position, entryName, formatOptions, source, preferences, data) => {
286
- this.logger.log(`[getCompletionEntryDetails] fileName=${fileName}, position=${position}, entryName=${entryName}`);
287
273
  // Get source file
288
274
  const program = info.languageService.getProgram();
289
275
  if (!program) {
@@ -294,7 +280,9 @@ class TailwindTypescriptPlugin {
294
280
  return info.languageService.getCompletionEntryDetails(fileName, position, entryName, formatOptions, source, preferences, data);
295
281
  }
296
282
  // Try to get Tailwind completion details first
297
- if (this.completionService && this.shouldValidateFile(fileName)) {
283
+ if (this.completionService &&
284
+ this.shouldValidateFile(fileName) &&
285
+ this.configService.isAutocompleteEnabled()) {
298
286
  const tailwindDetails = this.completionService.getCompletionEntryDetails(this.typescript, sourceFile, position, entryName);
299
287
  if (tailwindDetails) {
300
288
  return tailwindDetails;
@@ -303,17 +291,38 @@ class TailwindTypescriptPlugin {
303
291
  // Fall back to original TypeScript completion details
304
292
  return info.languageService.getCompletionEntryDetails(fileName, position, entryName, formatOptions, source, preferences, data);
305
293
  };
294
+ /**
295
+ * Create the getQuickInfoAtPosition method with Tailwind hover information
296
+ */
297
+ this.createGetQuickInfoAtPosition = (info) => (fileName, position) => {
298
+ // Get source file
299
+ const program = info.languageService.getProgram();
300
+ if (!program) {
301
+ return info.languageService.getQuickInfoAtPosition(fileName, position);
302
+ }
303
+ const sourceFile = program.getSourceFile(fileName);
304
+ if (!sourceFile) {
305
+ return info.languageService.getQuickInfoAtPosition(fileName, position);
306
+ }
307
+ // Try to get Tailwind hover info first (only if hover is enabled)
308
+ if (this.completionService &&
309
+ this.shouldValidateFile(fileName) &&
310
+ this.configService.isHoverEnabled()) {
311
+ const tailwindInfo = this.completionService.getQuickInfoAtPosition(this.typescript, sourceFile, position);
312
+ if (tailwindInfo) {
313
+ return tailwindInfo;
314
+ }
315
+ }
316
+ // Fall back to original TypeScript quick info
317
+ return info.languageService.getQuickInfoAtPosition(fileName, position);
318
+ };
306
319
  }
307
320
  /**
308
321
  * Create the plugin proxy for TypeScript Language Service
309
322
  */
310
323
  create(info) {
311
- // PERFORMANCE: Use NoOpLogger by default, only enable if configured
312
- const enableLogging = (info.config || {}).enableLogging === true;
313
- this.logger = enableLogging ? new Logger_1.LoggerImpl(info, true) : new Logger_1.NoOpLogger();
314
- this.logger.log('============= Plugin Starting =============');
315
324
  // Initialize configuration service
316
- this.configService = new PluginConfigService_1.PluginConfigService(info.config || {}, this.logger);
325
+ this.configService = new PluginConfigService_1.PluginConfigService(info.config || {});
317
326
  // PERFORMANCE: Initialize file-level diagnostic cache
318
327
  this.diagnosticCache = new FileDiagnosticCache_1.FileDiagnosticCache(100);
319
328
  // Initialize validator if CSS file is configured
@@ -326,23 +335,20 @@ class TailwindTypescriptPlugin {
326
335
  */
327
336
  initializeValidator(info) {
328
337
  if (!this.configService.hasValidCssPath()) {
329
- this.logger.log('No CSS file configured');
330
338
  return;
331
339
  }
332
340
  const projectRoot = info.project.getCurrentDirectory();
333
341
  const relativeCssPath = this.configService.getCssFilePath();
334
342
  const absoluteCssPath = path_1.default.resolve(projectRoot, relativeCssPath);
335
343
  if (!fs_1.default.existsSync(absoluteCssPath)) {
336
- this.logger.log(`CSS file not found at: ${absoluteCssPath}`);
337
344
  return;
338
345
  }
339
346
  this.cssFilePath = absoluteCssPath;
340
- this.logger.log(`CSS file found, initializing Tailwind validator...`);
341
- this.validator = new TailwindValidator_1.TailwindValidator(absoluteCssPath, this.logger);
347
+ this.validator = new TailwindValidator_1.TailwindValidator(absoluteCssPath);
342
348
  // Initialize services with config flags
343
349
  const extractionService = new ClassNameExtractionService_1.ClassNameExtractionService(this.configService.isTailwindVariantsEnabled(), this.configService.isClassVarianceAuthorityEnabled());
344
350
  const diagnosticService = new DiagnosticService_1.DiagnosticService();
345
- this.validationService = new ValidationService_1.ValidationService(extractionService, diagnosticService, this.validator, this.logger, this.validator // Pass as CSS provider for conflict detection
351
+ this.validationService = new ValidationService_1.ValidationService(extractionService, diagnosticService, this.validator, this.configService, this.validator // Pass as CSS provider for conflict detection
346
352
  );
347
353
  // Initialize code action service for quick fixes
348
354
  this.codeActionService = new CodeActionService_1.CodeActionService(this.validator);
@@ -352,7 +358,7 @@ class TailwindTypescriptPlugin {
352
358
  tailwindVariantsEnabled: this.configService.isTailwindVariantsEnabled(),
353
359
  classVarianceAuthorityEnabled: this.configService.isClassVarianceAuthorityEnabled()
354
360
  };
355
- this.completionService = new CompletionService_1.CompletionService(this.validator, this.logger, completionConfig);
361
+ this.completionService = new CompletionService_1.CompletionService(this.validator, completionConfig);
356
362
  // Set allowed classes from config
357
363
  const allowedClasses = this.configService.getAllowedClasses();
358
364
  if (allowedClasses.length > 0) {
@@ -362,12 +368,11 @@ class TailwindTypescriptPlugin {
362
368
  this.initializationPromise = this.validator
363
369
  .initialize()
364
370
  .then(() => {
365
- this.logger.log('Tailwind validator initialized');
366
371
  // Set up file watcher after successful initialization
367
372
  this.setupCssFileWatcher(info);
368
373
  })
369
- .catch(error => {
370
- this.logger.log(`Failed to initialize Tailwind validator: ${error}`);
374
+ .catch(() => {
375
+ // Initialization failed - validator won't be ready
371
376
  });
372
377
  }
373
378
  /**
@@ -383,29 +388,26 @@ class TailwindTypescriptPlugin {
383
388
  this.cssFileWatcher.close();
384
389
  this.cssFileWatcher = null;
385
390
  }
386
- this.logger.log(`[CSSWatcher] Setting up file watcher for: ${this.cssFilePath}`);
387
391
  // Debounce timer to avoid multiple reloads for rapid changes
388
392
  let debounceTimer = null;
389
393
  try {
390
- this.cssFileWatcher = fs_1.default.watch(this.cssFilePath, (eventType, filename) => {
394
+ this.cssFileWatcher = fs_1.default.watch(this.cssFilePath, eventType => {
391
395
  if (eventType === 'change') {
392
396
  // Debounce: wait 300ms after last change before reloading
393
397
  if (debounceTimer) {
394
398
  clearTimeout(debounceTimer);
395
399
  }
396
400
  debounceTimer = setTimeout(() => {
397
- this.logger.log(`[CSSWatcher] CSS file changed: ${filename}`);
398
401
  this.reloadDesignSystem(info);
399
402
  }, 300);
400
403
  }
401
404
  });
402
- this.cssFileWatcher.on('error', error => {
403
- this.logger.log(`[CSSWatcher] Watcher error: ${error}`);
405
+ this.cssFileWatcher.on('error', () => {
406
+ // Watcher error - silently ignore
404
407
  });
405
- this.logger.log('[CSSWatcher] File watcher set up successfully');
406
408
  }
407
- catch (error) {
408
- this.logger.log(`[CSSWatcher] Failed to set up file watcher: ${error}`);
409
+ catch {
410
+ // Failed to set up file watcher - silently ignore
409
411
  }
410
412
  }
411
413
  /**
@@ -413,20 +415,16 @@ class TailwindTypescriptPlugin {
413
415
  * Clears all caches and re-initializes the validator
414
416
  */
415
417
  reloadDesignSystem(info) {
416
- this.logger.log('[CSSWatcher] Reloading design system...');
417
418
  // Clear the diagnostic cache - all files need revalidation
418
419
  this.diagnosticCache.clear();
419
- this.logger.log('[CSSWatcher] Diagnostic cache cleared');
420
420
  // Clear the completion service cache
421
421
  if (this.completionService) {
422
422
  this.completionService.clearCache();
423
- this.logger.log('[CSSWatcher] Completion cache cleared');
424
423
  }
425
424
  // Reload the validator (this clears its internal cache too)
426
425
  this.validator
427
426
  .reload()
428
427
  .then(() => {
429
- this.logger.log('[CSSWatcher] Design system reloaded successfully');
430
428
  // Notify TypeScript that the project has changed to trigger re-validation
431
429
  try {
432
430
  // Use 'any' to access internal APIs that aren't in the public type definitions
@@ -435,12 +433,10 @@ class TailwindTypescriptPlugin {
435
433
  // Mark project as dirty - this is the most reliable way to trigger updates
436
434
  if (project && typeof project.markAsDirty === 'function') {
437
435
  project.markAsDirty();
438
- this.logger.log('[CSSWatcher] Marked project as dirty');
439
436
  }
440
437
  // Update the project graph to reflect changes
441
438
  if (project && typeof project.updateGraph === 'function') {
442
439
  project.updateGraph();
443
- this.logger.log('[CSSWatcher] Updated project graph');
444
440
  }
445
441
  // Access the project service to trigger diagnostic refresh
446
442
  // This is the internal API that actually notifies the editor
@@ -451,12 +447,10 @@ class TailwindTypescriptPlugin {
451
447
  if (typeof projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles ===
452
448
  'function') {
453
449
  projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles();
454
- this.logger.log('[CSSWatcher] Triggered delayed project update');
455
450
  }
456
451
  // Send custom event to trigger diagnostic refresh in some editors
457
452
  if (typeof projectService.sendProjectsUpdatedInBackgroundEvent === 'function') {
458
453
  projectService.sendProjectsUpdatedInBackgroundEvent();
459
- this.logger.log('[CSSWatcher] Sent projects updated event');
460
454
  }
461
455
  }
462
456
  // Try refreshDiagnostics if available (may work in some TS versions)
@@ -464,15 +458,14 @@ class TailwindTypescriptPlugin {
464
458
  if (project && typeof project.refreshDiagnostics === 'function') {
465
459
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
466
460
  project.refreshDiagnostics();
467
- this.logger.log('[CSSWatcher] Called refreshDiagnostics');
468
461
  }
469
462
  }
470
- catch (error) {
471
- this.logger.log(`[CSSWatcher] Error notifying project of changes: ${error}`);
463
+ catch {
464
+ // Error notifying project of changes - silently ignore
472
465
  }
473
466
  })
474
- .catch(error => {
475
- this.logger.log(`[CSSWatcher] Failed to reload design system: ${error}`);
467
+ .catch(() => {
468
+ // Failed to reload design system - silently ignore
476
469
  });
477
470
  }
478
471
  /**
@@ -514,6 +507,8 @@ class TailwindTypescriptPlugin {
514
507
  proxy.getCompletionsAtPosition = this.createGetCompletionsAtPosition(info);
515
508
  // Override getCompletionEntryDetails to provide CSS documentation for completions
516
509
  proxy.getCompletionEntryDetails = this.createGetCompletionEntryDetails(info);
510
+ // Override getQuickInfoAtPosition to provide hover information for Tailwind classes
511
+ proxy.getQuickInfoAtPosition = this.createGetQuickInfoAtPosition(info);
517
512
  return proxy;
518
513
  }
519
514
  /**
@@ -521,15 +516,10 @@ class TailwindTypescriptPlugin {
521
516
  */
522
517
  shouldValidateFile(fileName) {
523
518
  if (!this.validator || !this.validator.isInitialized()) {
524
- this.logger.log(`[shouldValidateFile] Validator not initialized yet for ${fileName}`);
525
519
  return false;
526
520
  }
527
- // Process .ts, .tsx, .js, and .jsx files
528
- const isSupportedFile = fileName.endsWith('.ts') ||
529
- fileName.endsWith('.tsx') ||
530
- fileName.endsWith('.js') ||
531
- fileName.endsWith('.jsx');
532
- if (!isSupportedFile) {
521
+ // Process supported framework files (.ts, .tsx, .js, .jsx, .vue, .svelte)
522
+ if (!(0, FrameworkDetector_1.isSupportedFile)(fileName)) {
533
523
  return false;
534
524
  }
535
525
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"TailwindTypescriptPlugin.js","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":";;;;;;AACA,4CAAoB;AACpB,gDAAwB;AAExB,2EAAwE;AACxE,uFAAoF;AACpF,qEAAkE;AAClE,qEAA2F;AAC3F,qEAAkE;AAClE,yEAAsE;AACtE,yEAAsE;AACtE,qEAAkE;AAClE,4CAAiE;AAEjE,MAAa,wBAAwB;IAYpC,YAA6B,UAAqB;QAArB,eAAU,GAAV,UAAU,CAAW;QAJ1C,0BAAqB,GAAyB,IAAI,CAAC;QACnD,mBAAc,GAAwB,IAAI,CAAC;QAC3C,gBAAW,GAAkB,IAAI,CAAC;QA4Q1C;;;WAGG;QACK,iCAA4B,GACnC,CAAC,IAAgC,EAAE,EAAE,CACrC,CAAC,QAAgB,EAAmB,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6DAA6D,QAAQ,EAAE,CAAC,CAAC;YAEzF,sCAAsC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YAEpE,0DAA0D;YAC1D,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACd,CAAC;YAED,+BAA+B;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAG,CAAC;YACnD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAC;YACd,CAAC;YAED,4CAA4C;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAE1E,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gDAAgD,QAAQ,EAAE,CAAC,CAAC;gBAC5E,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,iBAAiB,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;YAEvD,kEAAkE;YAClE,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAE7C,+BAA+B;YAC/B,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAC9D,IAAI,CAAC,UAAU,EACf,UAAU,EACV,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,EACxC,WAAW,CACX,CAAC;YAEF,gCAAgC;YAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;YAErE,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,mBAAmB,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEH;;WAEG;QACK,iCAA4B,GACnC,CAAC,IAAgC,EAAE,EAAE,CACrC,CACC,QAAgB,EAChB,KAAa,EACb,GAAW,EACX,UAA6B,EAC7B,aAAoC,EACpC,WAA+B,EACD,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,qCAAqC,QAAQ,WAAW,KAAK,SAAS,GAAG,gBAAgB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC/G,CAAC;YAEF,qCAAqC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,CACxD,QAAQ,EACR,KAAK,EACL,GAAG,EACH,UAAU,EACV,aAAa,EACb,WAAW,CACX,CAAC;YAEF,sEAAsE;YACtE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,iFAAiF,CACjF,CAAC;gBACF,OAAO,KAAK,CAAC;YACd,CAAC;YAED,gDAAgD;YAChD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;YACvE,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,gEAAgE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC9H,CAAC;gBACF,wFAAwF;YACzF,CAAC;YAED,kBAAkB;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC;YACd,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAC;YACd,CAAC;YAED,4EAA4E;YAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,cAAc,CAAC,MAAM,qBAAqB,CAAC,CAAC;YAE9F,2BAA2B;YAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAC1D,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,KAAK,EACL,GAAG,EACH,cAAc,EACd,UAAU,CACV,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,aAAa,CAAC,MAAM,iBAAiB,CAAC,CAAC;YAE7F,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,aAAa,CAAC,CAAC;QACrC,CAAC,CAAC;QA+BH;;;WAGG;QACK,iCAA4B,GACnC,CAAC,IAAgC,EAAE,EAAE,CACrC,CACC,QAAgB,EAChB,eAAsC,EACtC,WAA2C,EAC3C,aAAwC,EACV,EAAE;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,CACxD,QAAQ,EACR,eAAe,EACf,WAAW,EACX,aAAa,CACb,CAAC;YAEF,kDAAkD;YAClD,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnE,OAAO,KAAK,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC;YACd,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAC;YACd,CAAC;YAED,qBAAqB;YACrB,MAAM,KAAK,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;YAC1F,MAAM,GAAG,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;YAExF,yBAAyB;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YAE1F,6CAA6C;YAC7C,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,CACF,CAAyB,CAAC,MAAM,KAAK,WAAW;gBACjD,CAAC,CAAC,KAAK,KAAK,SAAS;gBACrB,CAAC,CAAC,MAAM,KAAK,SAAS;gBACtB,CAAC,CAAC,KAAK,IAAI,GAAG;gBACd,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAC5B,CAAC;YAEF,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,OAAO,KAAK,CAAC;YACd,CAAC;YAED,0BAA0B;YAC1B,MAAM,wBAAwB,GAAG,KAAK,CAAC;YACvC,MAAM,uBAAuB,GAAG,KAAK,CAAC;YAEtC,2CAA2C;YAC3C,MAAM,SAAS,GAAgC,EAAE,CAAC;YAElD,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;gBAC9C,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvE,SAAS;gBACV,CAAC;gBAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAC1C,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CACpC,CAAC;gBAEF,MAAM,OAAO,GAA4B,EAAE,CAAC;gBAE5C,kCAAkC;gBAClC,IAAI,UAAU,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;oBACjD,OAAO,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,oBAAoB,UAAU,CAAC,KAAK,EAAE;wBAC5C,WAAW,EAAE,2BAA2B,SAAS,GAAG;wBACpD,IAAI,EAAE,2CAA2C;qBACjD,CAAC,CAAC;gBACJ,CAAC;gBACD,8BAA8B;qBACzB,IAAI,UAAU,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;oBACvD,OAAO,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,UAAU,UAAU,CAAC,KAAK,EAAE;wBAClC,WAAW,EAAE,yBAAyB,SAAS,GAAG;wBAClD,IAAI,EAAE,kCAAkC;qBACxC,CAAC,CAAC;oBAEH,2CAA2C;oBAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBACnE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;wBACtC,OAAO,CAAC,IAAI,CAAC;4BACZ,IAAI,EAAE,WAAW,UAAU,CAAC,KAAK,IAAI,UAAU,EAAE;4BACjD,WAAW,EAAE,iBAAiB,UAAU,GAAG;4BAC3C,IAAI,EAAE,mCAAmC;yBACzC,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;gBAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,SAAS,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,cAAc;wBACpB,WAAW,EAAE,wBAAwB;wBACrC,OAAO;qBACP,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAED,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC;QAEH;;WAEG;QACK,8BAAyB,GAChC,CAAC,IAAgC,EAAE,EAAE,CACrC,CACC,QAAgB,EAChB,aAAoC,EACpC,eAAsC,EACtC,YAAoB,EACpB,UAAkB,EAClB,WAA2C,EACT,EAAE;YACpC,gCAAgC;YAChC,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAC9C,QAAQ,EACR,aAAa,EACb,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,CACX,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,yCAAyC;YACzC,iEAAiE;YACjE,IAAI,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC1F,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;gBAElE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACnD,OAAO;wBACN,KAAK,EAAE;4BACN;gCACC,QAAQ;gCACR,WAAW,EAAE;oCACZ;wCACC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE;wCACpD,OAAO,EAAE,EAAE;qCACX;iCACD;6BACD;yBACD;qBACD,CAAC;gBACH,CAAC;YACF,CAAC;YACD,mDAAmD;iBAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjE,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC1F,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;gBAElE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACnD,OAAO;wBACN,KAAK,EAAE;4BACN;gCACC,QAAQ;gCACR,WAAW,EAAE;oCACZ;wCACC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE;wCACpD,OAAO,EAAE,EAAE;qCACX;iCACD;6BACD;yBACD;qBACD,CAAC;gBACH,CAAC;YACF,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE7C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC1F,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;gBAElE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACnD,OAAO;wBACN,KAAK,EAAE;4BACN;gCACC,QAAQ;gCACR,WAAW,EAAE;oCACZ;wCACC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE;wCACpD,OAAO,EAAE,WAAW;qCACpB;iCACD;6BACD;yBACD;qBACD,CAAC;gBACH,CAAC;YACF,CAAC;YAED,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QAEH;;WAEG;QACK,mCAA8B,GACrC,CAAC,IAAgC,EAAE,EAAE,CACrC,CACC,QAAgB,EAChB,QAAgB,EAChB,OAAuD,EACN,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,QAAQ,cAAc,QAAQ,EAAE,CAAC,CAAC;YAEzF,sCAAsC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEzF,qEAAqE;YACrE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnE,OAAO,KAAK,CAAC;YACd,CAAC;YAED,kBAAkB;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC;YACd,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAC;YACd,CAAC;YAED,2BAA2B;YAC3B,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAC1E,IAAI,CAAC,UAAU,EACf,UAAU,EACV,QAAQ,EACR,KAAK,CACL,CAAC;YAEF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACd,CAAC;YAED,OAAO,mBAAyD,CAAC;QAClE,CAAC,CAAC;QAEH;;WAEG;QACK,oCAA+B,GACtC,CAAC,IAAgC,EAAE,EAAE,CACrC,CACC,QAAgB,EAChB,QAAgB,EAChB,SAAiB,EACjB,aAAuE,EACvE,MAA0B,EAC1B,WAA2C,EAC3C,IAAwC,EACA,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,wCAAwC,QAAQ,cAAc,QAAQ,eAAe,SAAS,EAAE,CAChG,CAAC;YAEF,kBAAkB;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,eAAe,CAAC,yBAAyB,CACpD,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,aAAa,EACb,MAAM,EACN,WAAW,EACX,IAAI,CACJ,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,eAAe,CAAC,yBAAyB,CACpD,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,aAAa,EACb,MAAM,EACN,WAAW,EACX,IAAI,CACJ,CAAC;YACH,CAAC;YAED,+CAA+C;YAC/C,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjE,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CACvE,IAAI,CAAC,UAAU,EACf,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;gBAEF,IAAI,eAAe,EAAE,CAAC;oBACrB,OAAO,eAAe,CAAC;gBACxB,CAAC;YACF,CAAC;YAED,sDAAsD;YACtD,OAAO,IAAI,CAAC,eAAe,CAAC,yBAAyB,CACpD,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,aAAa,EACb,MAAM,EACN,WAAW,EACX,IAAI,CACJ,CAAC;QACH,CAAC,CAAC;IAvvBkD,CAAC;IAEtD;;OAEG;IACH,MAAM,CAAC,IAAgC;QACtC,oEAAoE;QACpE,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,mBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAU,EAAE,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAE/D,mCAAmC;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,yCAAmB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7E,sDAAsD;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,yCAAmB,CAAC,GAAG,CAAC,CAAC;QAEpD,iDAAiD;QACjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE/B,gCAAgC;QAChC,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,IAAgC;QAC3D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAC1C,OAAO;QACR,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAG,CAAC;QAC7D,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAEnE,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,eAAe,EAAE,CAAC,CAAC;YAC7D,OAAO;QACR,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAErE,wCAAwC;QACxC,MAAM,iBAAiB,GAAG,IAAI,uDAA0B,CACvD,IAAI,CAAC,aAAa,CAAC,yBAAyB,EAAE,EAC9C,IAAI,CAAC,aAAa,CAAC,+BAA+B,EAAE,CACpD,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,qCAAiB,CAC7C,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,CAAC,8CAA8C;SAC7D,CAAC;QAEF,iDAAiD;QACjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE/D,kEAAkE;QAClE,MAAM,gBAAgB,GAA4B;YACjD,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE;YAC1D,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,yBAAyB,EAAE;YACvE,6BAA6B,EAAE,IAAI,CAAC,aAAa,CAAC,+BAA+B,EAAE;SACnF,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAE9F,kCAAkC;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAC9D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS;aACzC,UAAU,EAAE;aACZ,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAClD,sDAAsD;YACtD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4CAA4C,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,IAAgC;QAC3D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO;QACR,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6CAA6C,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAEjF,6DAA6D;QAC7D,IAAI,aAAa,GAA0B,IAAI,CAAC;QAEhD,IAAI,CAAC;YACJ,IAAI,CAAC,cAAc,GAAG,YAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;gBACxE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC5B,0DAA0D;oBAC1D,IAAI,aAAa,EAAE,CAAC;wBACnB,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC7B,CAAC;oBAED,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;wBAC9D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC/B,CAAC,EAAE,GAAG,CAAC,CAAC;gBACT,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;IACF,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,IAAgC;QAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAE3D,2DAA2D;QAC3D,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QAEzD,qCAAqC;QACrC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QAC1D,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,SAAS;aACZ,MAAM,EAAE;aACR,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAEpE,0EAA0E;YAC1E,IAAI,CAAC;gBACJ,+EAA+E;gBAC/E,8DAA8D;gBAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAc,CAAC;gBAEpC,2EAA2E;gBAC3E,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;oBAC1D,OAAO,CAAC,WAAW,EAAE,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;gBACzD,CAAC;gBAED,8CAA8C;gBAC9C,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;oBAC1D,OAAO,CAAC,WAAW,EAAE,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBACvD,CAAC;gBAED,2DAA2D;gBAC3D,6DAA6D;gBAC7D,8DAA8D;gBAC9D,MAAM,cAAc,GAAI,OAAe,CAAC,cAAc,CAAC;gBACvD,IAAI,cAAc,EAAE,CAAC;oBACpB,4DAA4D;oBAC5D,IACC,OAAO,cAAc,CAAC,4DAA4D;wBAClF,UAAU,EACT,CAAC;wBACF,cAAc,CAAC,4DAA4D,EAAE,CAAC;wBAC9E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;oBAClE,CAAC;oBAED,kEAAkE;oBAClE,IAAI,OAAO,cAAc,CAAC,oCAAoC,KAAK,UAAU,EAAE,CAAC;wBAC/E,cAAc,CAAC,oCAAoC,EAAE,CAAC;wBACtD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;oBAC7D,CAAC;gBACF,CAAC;gBAED,qEAAqE;gBACrE,8DAA8D;gBAC9D,IAAI,OAAO,IAAI,OAAQ,OAAe,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;oBAC1E,8DAA8D;oBAC7D,OAAe,CAAC,kBAAkB,EAAE,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBAC3D,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oDAAoD,KAAK,EAAE,CAAC,CAAC;YAC9E,CAAC;QACF,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,0BAA0B,CAAC,IAAgC;QAClE,MAAM,KAAK,GAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEtD,qCAAqC;QACrC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAoC,EAAE,CAAC;YACtF,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAE,CAAC;YACnC,sCAAsC;YACtC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC7E,CAAC;QAED,6DAA6D;QAC7D,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAEvE,6EAA6E;QAC7E,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAEvE,0DAA0D;QAC1D,MAAM,6BAA6B,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,IAAI,CACrF,IAAI,CAAC,eAAe,CACpB,CAAC;QACF,IAAI,6BAA6B,EAAE,CAAC;YACnC,KAAK,CAAC,qBAAqB,GAAG,GAAG,EAAE;gBAClC,MAAM,QAAQ,GAAG,6BAA6B,EAAE,CAAC;gBACjD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB;yBAC1C,sBAAsB,EAAE;yBACxB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5B,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,aAAa,CAAC,CAAC;gBACxC,CAAC;gBACD,OAAO,QAAQ,CAAC;YACjB,CAAC,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,oFAAoF;QACpF,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAEvE,uDAAuD;QACvD,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAEjE,0EAA0E;QAC1E,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;QAE3E,kFAAkF;QAClF,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;QAE7E,OAAO,KAAK,CAAC;IACd,CAAC;IAmID;;OAEG;IACK,kBAAkB,CAAC,QAAgB;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0DAA0D,QAAQ,EAAE,CAAC,CAAC;YACtF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,yCAAyC;QACzC,MAAM,eAAe,GACpB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,wBAAwB;QACvB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACnC,CAAC;IAmVD;;;OAGG;IACH,OAAO;QACN,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;IACF,CAAC;CACD;AA/wBD,4DA+wBC"}
1
+ {"version":3,"file":"TailwindTypescriptPlugin.js","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":"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"}
@@ -5,21 +5,37 @@ import { ClassNameInfo, UtilityFunction } from '../core/types';
5
5
  * OPTIMIZED: Service responsible for orchestrating class name extraction
6
6
  *
7
7
  * Performance improvements:
8
- * 1. Fast path for JSX elements (skip non-JSX nodes early)
8
+ * 1. Fast path for framework-specific elements (skip non-matching nodes early)
9
9
  * 2. Fast path for tv() calls (check only call expressions)
10
10
  * 3. Fast path for cva() calls (check only call expressions)
11
- * 4. Single extractor instance (avoid canHandle() overhead)
11
+ * 4. Lazy initialization - only creates extractors when needed (memory efficient)
12
12
  * 5. Direct node type checking (faster than polymorphic calls)
13
13
  * 6. Reduced function call overhead
14
14
  * 7. Conditional extractor execution (skip disabled extractors)
15
+ * 8. Framework detection per file (route to appropriate extractor)
16
+ *
17
+ * SOLID Principles:
18
+ * - Single Responsibility: Only orchestrates extraction, doesn't own all extractors
19
+ * - Open/Closed: Can add new frameworks without modifying constructor
20
+ * - Dependency Inversion: Uses IClassNameExtractor interface
15
21
  */
16
22
  export declare class ClassNameExtractionService {
17
23
  private readonly enableTailwindVariants;
18
24
  private readonly enableClassVarianceAuthority;
19
- private jsxExtractor;
25
+ private frameworkExtractors;
20
26
  private tvExtractor;
21
27
  private cvaExtractor;
22
28
  constructor(enableTailwindVariants?: boolean, enableClassVarianceAuthority?: boolean);
29
+ /**
30
+ * Factory method to create the appropriate extractor for a framework
31
+ * Follows Factory Pattern for object creation
32
+ */
33
+ private createFrameworkExtractor;
34
+ /**
35
+ * Gets the extractor for a framework, creating it lazily if needed
36
+ * This ensures we only instantiate extractors we actually use
37
+ */
38
+ private getFrameworkExtractor;
23
39
  /**
24
40
  * Extract all class names from a source file (OPTIMIZED)
25
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ClassNameExtractionService.d.ts","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAqB,eAAe,EAAE,MAAM,eAAe,CAAC;AAKlF;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA0B;IAMrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,4BAA4B;IAN9C,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,YAAY,CAAsB;gBAGxB,sBAAsB,GAAE,OAAc,EACtC,4BAA4B,GAAE,OAAc;IAQ9D;;OAEG;IACH,qBAAqB,CACpB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,gBAAgB,EAAE,eAAe,EAAE,EACnC,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,GAC1B,aAAa,EAAE;IAiDlB;;;OAGG;IAEH,YAAY,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI;IAMnD;;OAEG;IACH,WAAW,IAAI,IAAI;CAQnB"}
1
+ {"version":3,"file":"ClassNameExtractionService.d.ts","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAqB,eAAe,EAAE,MAAM,eAAe,CAAC;AAQlF;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,0BAA0B;IASrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,4BAA4B;IAR9C,OAAO,CAAC,mBAAmB,CAA6C;IAGxE,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,YAAY,CAAsB;gBAGxB,sBAAsB,GAAE,OAAc,EACtC,4BAA4B,GAAE,OAAc;IAQ9D;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAahC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,qBAAqB,CACpB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,gBAAgB,EAAE,eAAe,EAAE,EACnC,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,GAC1B,aAAa,EAAE;IA6ElB;;;OAGG;IAEH,YAAY,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI;IAMnD;;OAEG;IACH,WAAW,IAAI,IAAI;CAQnB"}
@@ -3,54 +3,115 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClassNameExtractionService = void 0;
4
4
  const CvaExtractor_1 = require("../extractors/CvaExtractor");
5
5
  const JsxAttributeExtractor_1 = require("../extractors/JsxAttributeExtractor");
6
+ const SvelteAttributeExtractor_1 = require("../extractors/SvelteAttributeExtractor");
6
7
  const TailwindVariantsExtractor_1 = require("../extractors/TailwindVariantsExtractor");
8
+ const VueAttributeExtractor_1 = require("../extractors/VueAttributeExtractor");
9
+ const FrameworkDetector_1 = require("../utils/FrameworkDetector");
7
10
  /**
8
11
  * OPTIMIZED: Service responsible for orchestrating class name extraction
9
12
  *
10
13
  * Performance improvements:
11
- * 1. Fast path for JSX elements (skip non-JSX nodes early)
14
+ * 1. Fast path for framework-specific elements (skip non-matching nodes early)
12
15
  * 2. Fast path for tv() calls (check only call expressions)
13
16
  * 3. Fast path for cva() calls (check only call expressions)
14
- * 4. Single extractor instance (avoid canHandle() overhead)
17
+ * 4. Lazy initialization - only creates extractors when needed (memory efficient)
15
18
  * 5. Direct node type checking (faster than polymorphic calls)
16
19
  * 6. Reduced function call overhead
17
20
  * 7. Conditional extractor execution (skip disabled extractors)
21
+ * 8. Framework detection per file (route to appropriate extractor)
22
+ *
23
+ * SOLID Principles:
24
+ * - Single Responsibility: Only orchestrates extraction, doesn't own all extractors
25
+ * - Open/Closed: Can add new frameworks without modifying constructor
26
+ * - Dependency Inversion: Uses IClassNameExtractor interface
18
27
  */
19
28
  class ClassNameExtractionService {
20
29
  constructor(enableTailwindVariants = true, enableClassVarianceAuthority = true) {
21
30
  this.enableTailwindVariants = enableTailwindVariants;
22
31
  this.enableClassVarianceAuthority = enableClassVarianceAuthority;
23
- // Create extractors once and reuse (avoid recreation overhead)
24
- this.jsxExtractor = new JsxAttributeExtractor_1.JsxAttributeExtractor();
32
+ // Cache for framework extractors (lazy initialization)
33
+ this.frameworkExtractors = new Map();
34
+ // Only create variant extractors (they work across all frameworks)
25
35
  this.tvExtractor = enableTailwindVariants ? new TailwindVariantsExtractor_1.TailwindVariantsExtractor() : null;
26
36
  this.cvaExtractor = enableClassVarianceAuthority ? new CvaExtractor_1.CvaExtractor() : null;
37
+ // Framework-specific extractors are created on-demand via getFrameworkExtractor()
38
+ }
39
+ /**
40
+ * Factory method to create the appropriate extractor for a framework
41
+ * Follows Factory Pattern for object creation
42
+ */
43
+ createFrameworkExtractor(framework) {
44
+ switch (framework) {
45
+ case FrameworkDetector_1.Framework.JSX:
46
+ return new JsxAttributeExtractor_1.JsxAttributeExtractor();
47
+ case FrameworkDetector_1.Framework.VUE:
48
+ return new VueAttributeExtractor_1.VueAttributeExtractor();
49
+ case FrameworkDetector_1.Framework.SVELTE:
50
+ return new SvelteAttributeExtractor_1.SvelteAttributeExtractor();
51
+ default:
52
+ throw new Error(`Unsupported framework: ${framework}`);
53
+ }
54
+ }
55
+ /**
56
+ * Gets the extractor for a framework, creating it lazily if needed
57
+ * This ensures we only instantiate extractors we actually use
58
+ */
59
+ getFrameworkExtractor(framework) {
60
+ if (!this.frameworkExtractors.has(framework)) {
61
+ this.frameworkExtractors.set(framework, this.createFrameworkExtractor(framework));
62
+ }
63
+ return this.frameworkExtractors.get(framework);
27
64
  }
28
65
  /**
29
66
  * Extract all class names from a source file (OPTIMIZED)
30
67
  */
31
68
  extractFromSourceFile(typescript, sourceFile, utilityFunctions, typeChecker) {
32
69
  const classNames = [];
70
+ // Detect framework from filename
71
+ const framework = (0, FrameworkDetector_1.detectFramework)(sourceFile.fileName);
72
+ // Skip unsupported files
73
+ if (!framework) {
74
+ return classNames;
75
+ }
33
76
  const context = {
34
77
  typescript,
35
78
  sourceFile,
36
79
  utilityFunctions,
37
- typeChecker
80
+ typeChecker,
81
+ framework
38
82
  };
83
+ // Get the appropriate extractor for this framework (lazy-loaded)
84
+ const frameworkExtractor = this.getFrameworkExtractor(framework);
39
85
  // OPTIMIZATION: Direct node type checking in visit function
40
86
  // Avoids canHandle() overhead for every node
41
87
  const visit = (node) => {
42
- // FAST PATH 1: Only process JSX opening/self-closing elements
43
- // This skips ~98% of nodes immediately
44
- if (typescript.isJsxOpeningElement(node) || typescript.isJsxSelfClosingElement(node)) {
45
- // Direct extraction without canHandle() check
46
- const extracted = this.jsxExtractor.extract(node, context);
47
- if (extracted.length > 0) {
48
- classNames.push(...extracted);
88
+ // FAST PATH 1: Framework-specific extraction
89
+ // For JSX, we can optimize by checking node type directly
90
+ if (framework === FrameworkDetector_1.Framework.JSX) {
91
+ // Only process JSX opening/self-closing elements
92
+ // This skips ~98% of nodes immediately
93
+ if (typescript.isJsxOpeningElement(node) || typescript.isJsxSelfClosingElement(node)) {
94
+ // Direct extraction without canHandle() check
95
+ const extracted = frameworkExtractor.extract(node, context);
96
+ if (extracted.length > 0) {
97
+ classNames.push(...extracted);
98
+ }
99
+ }
100
+ }
101
+ else {
102
+ // For Vue and Svelte, use canHandle() since we can't optimize with TS type guards
103
+ // TODO: Optimize Vue/Svelte with direct node type checks when implementing
104
+ if (frameworkExtractor.canHandle(node, context)) {
105
+ const extracted = frameworkExtractor.extract(node, context);
106
+ if (extracted.length > 0) {
107
+ classNames.push(...extracted);
108
+ }
49
109
  }
50
110
  }
51
111
  // FAST PATH 2: Check for variant library calls (tv, cva)
52
112
  // Only processes call expressions and only if extractors are enabled
53
- else if (typescript.isCallExpression(node)) {
113
+ // These work across all frameworks
114
+ if (typescript.isCallExpression(node)) {
54
115
  // Try tailwind-variants first (if enabled)
55
116
  if (this.tvExtractor) {
56
117
  const tvExtracted = this.tvExtractor.extract(node, context);
@@ -1 +1 @@
1
- {"version":3,"file":"ClassNameExtractionService.js","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClassNameExtractionService.js","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ClassNameExtractionService.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassNameExtractionService.spec.d.ts","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.spec.ts"],"names":[],"mappings":""}