@buoy-design/scanners 0.1.2 → 0.1.4

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 (108) hide show
  1. package/dist/base/scanner.d.ts +13 -0
  2. package/dist/base/scanner.d.ts.map +1 -1
  3. package/dist/base/scanner.js +91 -0
  4. package/dist/base/scanner.js.map +1 -1
  5. package/dist/cache/git-utils.d.ts +37 -0
  6. package/dist/cache/git-utils.d.ts.map +1 -0
  7. package/dist/cache/git-utils.js +130 -0
  8. package/dist/cache/git-utils.js.map +1 -0
  9. package/dist/cache/index.d.ts +4 -0
  10. package/dist/cache/index.d.ts.map +1 -0
  11. package/dist/cache/index.js +5 -0
  12. package/dist/cache/index.js.map +1 -0
  13. package/dist/cache/scan-cache.d.ts +45 -0
  14. package/dist/cache/scan-cache.d.ts.map +1 -0
  15. package/dist/cache/scan-cache.js +225 -0
  16. package/dist/cache/scan-cache.js.map +1 -0
  17. package/dist/cache/types.d.ts +55 -0
  18. package/dist/cache/types.d.ts.map +1 -0
  19. package/dist/cache/types.js +4 -0
  20. package/dist/cache/types.js.map +1 -0
  21. package/dist/css/analyzer.d.ts +57 -0
  22. package/dist/css/analyzer.d.ts.map +1 -0
  23. package/dist/css/analyzer.js +414 -0
  24. package/dist/css/analyzer.js.map +1 -0
  25. package/dist/css/index.d.ts +9 -0
  26. package/dist/css/index.d.ts.map +1 -0
  27. package/dist/css/index.js +9 -0
  28. package/dist/css/index.js.map +1 -0
  29. package/dist/css/scanner.d.ts +43 -0
  30. package/dist/css/scanner.d.ts.map +1 -0
  31. package/dist/css/scanner.js +143 -0
  32. package/dist/css/scanner.js.map +1 -0
  33. package/dist/git/angular-scanner.d.ts +31 -0
  34. package/dist/git/angular-scanner.d.ts.map +1 -1
  35. package/dist/git/angular-scanner.js +238 -19
  36. package/dist/git/angular-scanner.js.map +1 -1
  37. package/dist/git/react-scanner.d.ts +22 -0
  38. package/dist/git/react-scanner.d.ts.map +1 -1
  39. package/dist/git/react-scanner.js +109 -11
  40. package/dist/git/react-scanner.js.map +1 -1
  41. package/dist/git/svelte-scanner.d.ts +30 -0
  42. package/dist/git/svelte-scanner.d.ts.map +1 -1
  43. package/dist/git/svelte-scanner.js +170 -62
  44. package/dist/git/svelte-scanner.js.map +1 -1
  45. package/dist/git/template-scanner.d.ts +18 -1
  46. package/dist/git/template-scanner.d.ts.map +1 -1
  47. package/dist/git/template-scanner.js +65 -48
  48. package/dist/git/template-scanner.js.map +1 -1
  49. package/dist/git/token-scanner.d.ts.map +1 -1
  50. package/dist/git/token-scanner.js +38 -3
  51. package/dist/git/token-scanner.js.map +1 -1
  52. package/dist/git/vue-scanner.d.ts +30 -0
  53. package/dist/git/vue-scanner.d.ts.map +1 -1
  54. package/dist/git/vue-scanner.js +183 -66
  55. package/dist/git/vue-scanner.js.map +1 -1
  56. package/dist/git/webcomponent-scanner.d.ts +20 -1
  57. package/dist/git/webcomponent-scanner.d.ts.map +1 -1
  58. package/dist/git/webcomponent-scanner.js +59 -44
  59. package/dist/git/webcomponent-scanner.js.map +1 -1
  60. package/dist/index.d.ts +4 -0
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +8 -0
  63. package/dist/index.js.map +1 -1
  64. package/dist/signals/aggregator.d.ts +32 -0
  65. package/dist/signals/aggregator.d.ts.map +1 -0
  66. package/dist/signals/aggregator.js +64 -0
  67. package/dist/signals/aggregator.js.map +1 -0
  68. package/dist/signals/emitter.d.ts +21 -0
  69. package/dist/signals/emitter.d.ts.map +1 -0
  70. package/dist/signals/emitter.js +31 -0
  71. package/dist/signals/emitter.js.map +1 -0
  72. package/dist/signals/extractors/color.d.ts +6 -0
  73. package/dist/signals/extractors/color.d.ts.map +1 -0
  74. package/dist/signals/extractors/color.js +80 -0
  75. package/dist/signals/extractors/color.js.map +1 -0
  76. package/dist/signals/extractors/index.d.ts +4 -0
  77. package/dist/signals/extractors/index.d.ts.map +1 -0
  78. package/dist/signals/extractors/index.js +4 -0
  79. package/dist/signals/extractors/index.js.map +1 -0
  80. package/dist/signals/extractors/spacing.d.ts +6 -0
  81. package/dist/signals/extractors/spacing.d.ts.map +1 -0
  82. package/dist/signals/extractors/spacing.js +93 -0
  83. package/dist/signals/extractors/spacing.js.map +1 -0
  84. package/dist/signals/extractors/typography.d.ts +14 -0
  85. package/dist/signals/extractors/typography.d.ts.map +1 -0
  86. package/dist/signals/extractors/typography.js +146 -0
  87. package/dist/signals/extractors/typography.js.map +1 -0
  88. package/dist/signals/index.d.ts +6 -0
  89. package/dist/signals/index.d.ts.map +1 -0
  90. package/dist/signals/index.js +6 -0
  91. package/dist/signals/index.js.map +1 -0
  92. package/dist/signals/scanner-integration.d.ts +64 -0
  93. package/dist/signals/scanner-integration.d.ts.map +1 -0
  94. package/dist/signals/scanner-integration.js +225 -0
  95. package/dist/signals/scanner-integration.js.map +1 -0
  96. package/dist/signals/types.d.ts +142 -0
  97. package/dist/signals/types.d.ts.map +1 -0
  98. package/dist/signals/types.js +101 -0
  99. package/dist/signals/types.js.map +1 -0
  100. package/dist/tailwind/scanner.d.ts +18 -0
  101. package/dist/tailwind/scanner.d.ts.map +1 -1
  102. package/dist/tailwind/scanner.js +55 -0
  103. package/dist/tailwind/scanner.js.map +1 -1
  104. package/dist/utils/parser-utils.d.ts +58 -0
  105. package/dist/utils/parser-utils.d.ts.map +1 -1
  106. package/dist/utils/parser-utils.js +150 -0
  107. package/dist/utils/parser-utils.js.map +1 -1
  108. package/package.json +9 -4
@@ -1,3 +1,4 @@
1
+ import type { ScanCache } from "../cache/scan-cache.js";
1
2
  export interface ScannerConfig {
2
3
  projectRoot: string;
3
4
  include?: string[];
@@ -13,6 +14,8 @@ export interface ScannerConfig {
13
14
  * This allows users to opt out of default exclusions when explicitly needed.
14
15
  */
15
16
  overrideDefaultExcludes?: boolean;
17
+ /** Scan cache instance for incremental scanning */
18
+ cache?: ScanCache;
16
19
  }
17
20
  export interface ScanError {
18
21
  file?: string;
@@ -188,6 +191,16 @@ export declare abstract class Scanner<T, C extends ScannerConfig = ScannerConfig
188
191
  * @param options Optional configuration for progress, timeout, and retries
189
192
  */
190
193
  protected runScan(processor: (file: string) => Promise<T[]>, defaultPatterns: string[], options?: ParallelProcessOptions): Promise<ScanResult<T>>;
194
+ /**
195
+ * Run scan with caching support.
196
+ * Files that haven't changed since last scan will use cached results.
197
+ */
198
+ protected runScanWithCache(processor: (file: string) => Promise<T[]>, defaultPatterns: string[], options?: ParallelProcessOptions): Promise<ScanResult<T> & {
199
+ cacheStats?: {
200
+ hits: number;
201
+ misses: number;
202
+ };
203
+ }>;
191
204
  /**
192
205
  * Get per-pattern file match statistics.
193
206
  * Useful for debugging which patterns are matching files.
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/base/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/base/scanner.ts"],"names":[],"mappings":"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"}
@@ -408,6 +408,97 @@ export class Scanner {
408
408
  };
409
409
  return { items, errors, warnings, stats };
410
410
  }
411
+ /**
412
+ * Run scan with caching support.
413
+ * Files that haven't changed since last scan will use cached results.
414
+ */
415
+ async runScanWithCache(processor, defaultPatterns, options) {
416
+ const cache = this.config.cache;
417
+ const scannerType = this.getSourceType();
418
+ // No cache configured - fall back to regular scan
419
+ if (!cache) {
420
+ return this.runScan(processor, defaultPatterns, options);
421
+ }
422
+ const startTime = Date.now();
423
+ const { files, unmatchedPatterns } = await this.findFilesWithDetails(defaultPatterns);
424
+ const items = [];
425
+ const errors = [];
426
+ const warnings = [];
427
+ // Check cache for all files
428
+ const { filesToScan, cachedFiles, cachedEntries } = await cache.checkFiles(files, scannerType);
429
+ // Add cached results
430
+ for (const entry of cachedEntries) {
431
+ try {
432
+ const cachedItems = JSON.parse(entry.result);
433
+ items.push(...cachedItems);
434
+ }
435
+ catch {
436
+ // Corrupt cache entry - add file to scan list
437
+ const absPath = join(this.config.projectRoot, entry.path);
438
+ if (!filesToScan.includes(absPath)) {
439
+ filesToScan.push(absPath);
440
+ }
441
+ }
442
+ }
443
+ // Warn about unmatched patterns
444
+ for (const pattern of unmatchedPatterns) {
445
+ warnings.push({
446
+ code: "PATTERN_NO_MATCH",
447
+ message: `Pattern "${pattern}" matched no files`,
448
+ pattern,
449
+ });
450
+ }
451
+ if (files.length === 0 && unmatchedPatterns.length > 0) {
452
+ warnings.push({
453
+ code: "NO_FILES_MATCHED",
454
+ message: `No files found matching patterns: ${unmatchedPatterns.join(", ")}`,
455
+ });
456
+ }
457
+ // Process only files that need scanning
458
+ if (filesToScan.length > 0) {
459
+ const results = await parallelProcess(filesToScan, async (file) => {
460
+ const fileItems = await processor(file);
461
+ // Store in cache
462
+ await cache.storeResult(file, scannerType, fileItems);
463
+ return { file, items: fileItems };
464
+ }, this.concurrency, options);
465
+ const { successes } = extractResults(results);
466
+ for (const success of successes) {
467
+ items.push(...success.items);
468
+ }
469
+ // Map failures to errors
470
+ for (let i = 0; i < results.length; i++) {
471
+ const result = results[i];
472
+ if (result.status === "rejected") {
473
+ const reason = result.reason;
474
+ const message = reason instanceof Error ? reason.message : String(reason);
475
+ const code = reason && typeof reason === "object" && "code" in reason && reason.code === "TIMEOUT"
476
+ ? "TIMEOUT"
477
+ : "PARSE_ERROR";
478
+ errors.push({
479
+ file: filesToScan[i],
480
+ message,
481
+ code,
482
+ });
483
+ }
484
+ }
485
+ }
486
+ const stats = {
487
+ filesScanned: filesToScan.length,
488
+ itemsFound: items.length,
489
+ duration: Date.now() - startTime,
490
+ };
491
+ return {
492
+ items,
493
+ errors,
494
+ warnings,
495
+ stats,
496
+ cacheStats: {
497
+ hits: cachedFiles.length,
498
+ misses: filesToScan.length,
499
+ },
500
+ };
501
+ }
411
502
  /**
412
503
  * Get per-pattern file match statistics.
413
504
  * Useful for debugging which patterns are matching files.
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/base/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/base/scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Check if a directory is a git repository
3
+ */
4
+ export declare function isGitRepo(dir: string): Promise<boolean>;
5
+ /**
6
+ * Get the current HEAD commit hash
7
+ * Returns null if no commits exist
8
+ */
9
+ export declare function getCurrentCommit(dir: string): Promise<string | null>;
10
+ /**
11
+ * Get list of files changed since a specific commit
12
+ * Returns relative paths
13
+ */
14
+ export declare function getChangedFilesSince(dir: string, commitHash: string): Promise<string[]>;
15
+ /**
16
+ * Get list of files changed in the working directory (uncommitted)
17
+ * Includes both staged and unstaged changes
18
+ */
19
+ export declare function getUncommittedChanges(dir: string): Promise<string[]>;
20
+ /**
21
+ * Get list of untracked files in the repository
22
+ * Returns relative paths
23
+ */
24
+ export declare function getUntrackedFiles(dir: string): Promise<string[]>;
25
+ /**
26
+ * Check if a specific file is tracked by git
27
+ */
28
+ export declare function isFileTracked(dir: string, relativePath: string): Promise<boolean>;
29
+ /**
30
+ * Get all changed files (committed since hash + uncommitted + untracked)
31
+ * This is the main function for incremental scanning
32
+ */
33
+ export declare function getAllChangedFiles(dir: string, sinceCommit: string | null): Promise<{
34
+ changed: string[];
35
+ isFullScan: boolean;
36
+ }>;
37
+ //# sourceMappingURL=git-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-utils.d.ts","sourceRoot":"","sources":["../../src/cache/git-utils.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAa7D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAO1E;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoB1E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUtE;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CA4BrD"}
@@ -0,0 +1,130 @@
1
+ // packages/scanners/src/cache/git-utils.ts
2
+ import { exec } from "child_process";
3
+ import { promisify } from "util";
4
+ import { access } from "fs/promises";
5
+ import { join } from "path";
6
+ const execAsync = promisify(exec);
7
+ /**
8
+ * Check if a directory is a git repository
9
+ */
10
+ export async function isGitRepo(dir) {
11
+ try {
12
+ await access(join(dir, ".git"));
13
+ return true;
14
+ }
15
+ catch {
16
+ // Check if we're in a subdirectory of a git repo
17
+ try {
18
+ await execAsync("git rev-parse --git-dir", { cwd: dir });
19
+ return true;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ }
26
+ /**
27
+ * Get the current HEAD commit hash
28
+ * Returns null if no commits exist
29
+ */
30
+ export async function getCurrentCommit(dir) {
31
+ try {
32
+ const { stdout } = await execAsync("git rev-parse HEAD", { cwd: dir });
33
+ return stdout.trim();
34
+ }
35
+ catch {
36
+ return null;
37
+ }
38
+ }
39
+ /**
40
+ * Get list of files changed since a specific commit
41
+ * Returns relative paths
42
+ */
43
+ export async function getChangedFilesSince(dir, commitHash) {
44
+ try {
45
+ const { stdout } = await execAsync(`git diff --name-only ${commitHash} HEAD`, { cwd: dir });
46
+ return stdout.trim().split("\n").filter(Boolean);
47
+ }
48
+ catch {
49
+ // If commit doesn't exist or other error, return empty
50
+ return [];
51
+ }
52
+ }
53
+ /**
54
+ * Get list of files changed in the working directory (uncommitted)
55
+ * Includes both staged and unstaged changes
56
+ */
57
+ export async function getUncommittedChanges(dir) {
58
+ try {
59
+ // Get both staged and unstaged changes
60
+ const { stdout: staged } = await execAsync("git diff --name-only --cached", { cwd: dir });
61
+ const { stdout: unstaged } = await execAsync("git diff --name-only", {
62
+ cwd: dir,
63
+ });
64
+ const files = new Set([
65
+ ...staged.trim().split("\n").filter(Boolean),
66
+ ...unstaged.trim().split("\n").filter(Boolean),
67
+ ]);
68
+ return Array.from(files);
69
+ }
70
+ catch {
71
+ return [];
72
+ }
73
+ }
74
+ /**
75
+ * Get list of untracked files in the repository
76
+ * Returns relative paths
77
+ */
78
+ export async function getUntrackedFiles(dir) {
79
+ try {
80
+ const { stdout } = await execAsync("git ls-files --others --exclude-standard", { cwd: dir });
81
+ return stdout.trim().split("\n").filter(Boolean);
82
+ }
83
+ catch {
84
+ return [];
85
+ }
86
+ }
87
+ /**
88
+ * Check if a specific file is tracked by git
89
+ */
90
+ export async function isFileTracked(dir, relativePath) {
91
+ try {
92
+ await execAsync(`git ls-files --error-unmatch "${relativePath}"`, {
93
+ cwd: dir,
94
+ });
95
+ return true;
96
+ }
97
+ catch {
98
+ return false;
99
+ }
100
+ }
101
+ /**
102
+ * Get all changed files (committed since hash + uncommitted + untracked)
103
+ * This is the main function for incremental scanning
104
+ */
105
+ export async function getAllChangedFiles(dir, sinceCommit) {
106
+ // If no commit to compare against, need full scan
107
+ if (!sinceCommit) {
108
+ return { changed: [], isFullScan: true };
109
+ }
110
+ try {
111
+ // Check if the commit exists
112
+ await execAsync(`git cat-file -t ${sinceCommit}`, { cwd: dir });
113
+ }
114
+ catch {
115
+ // Commit doesn't exist (maybe rebased), need full scan
116
+ return { changed: [], isFullScan: true };
117
+ }
118
+ const [committedChanges, uncommittedChanges, untrackedFiles] = await Promise.all([
119
+ getChangedFilesSince(dir, sinceCommit),
120
+ getUncommittedChanges(dir),
121
+ getUntrackedFiles(dir),
122
+ ]);
123
+ const allChanged = new Set([
124
+ ...committedChanges,
125
+ ...uncommittedChanges,
126
+ ...untrackedFiles,
127
+ ]);
128
+ return { changed: Array.from(allChanged), isFullScan: false };
129
+ }
130
+ //# sourceMappingURL=git-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../../src/cache/git-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { ScanCache } from "./scan-cache.js";
2
+ export * from "./types.js";
3
+ export * from "./git-utils.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // packages/scanners/src/cache/index.ts
2
+ export { ScanCache } from "./scan-cache.js";
3
+ export * from "./types.js";
4
+ export * from "./git-utils.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { type CacheCheckResult } from "./types.js";
2
+ export declare class ScanCache {
3
+ private projectRoot;
4
+ private data;
5
+ private loaded;
6
+ private changedFilesCache;
7
+ private isGit;
8
+ constructor(projectRoot: string);
9
+ private createEmptyCache;
10
+ private getCachePath;
11
+ private getCacheKey;
12
+ /**
13
+ * Load cache from disk
14
+ */
15
+ load(): Promise<void>;
16
+ /**
17
+ * Save cache to disk
18
+ */
19
+ save(): Promise<void>;
20
+ /**
21
+ * Check which files need scanning vs which can use cache
22
+ */
23
+ checkFiles(absolutePaths: string[], scanner: string): Promise<CacheCheckResult>;
24
+ private needsScan;
25
+ /**
26
+ * Store scan result for a file
27
+ */
28
+ storeResult<T>(absoluteOrRelativePath: string, scanner: string, result: T[]): Promise<void>;
29
+ /**
30
+ * Get cached result for a file
31
+ */
32
+ getCachedResult<T>(absoluteOrRelativePath: string, scanner: string): T[] | null;
33
+ /**
34
+ * Clear all cache entries
35
+ */
36
+ clear(): void;
37
+ /**
38
+ * Get cache statistics
39
+ */
40
+ getStats(): {
41
+ entryCount: number;
42
+ totalSize: number;
43
+ };
44
+ }
45
+ //# sourceMappingURL=scan-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-cache.d.ts","sourceRoot":"","sources":["../../src/cache/scan-cache.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,YAAY,CAAC;AAUpB,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,KAAK,CAAwB;gBAEzB,WAAW,EAAE,MAAM;IAK/B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,WAAW;IAInB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B;;OAEG;IACG,UAAU,CACd,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC;YA0Dd,SAAS;IAuCvB;;OAEG;IACG,WAAW,CAAC,CAAC,EACjB,sBAAsB,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,CAAC,EAAE,GACV,OAAO,CAAC,IAAI,CAAC;IAiChB;;OAEG;IACH,eAAe,CAAC,CAAC,EACf,sBAAsB,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM,GACd,CAAC,EAAE,GAAG,IAAI;IAiBb;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAQtD"}