codeguard-testgen 1.0.7 โ†’ 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,12 +2,18 @@
2
2
 
3
3
  AI-powered unit test generator with AST analysis for TypeScript/JavaScript projects. Automatically generates comprehensive Jest tests using Claude, OpenAI, or Gemini.
4
4
 
5
+ > **โšก NEW: Auto Mode** - Automatically detect and test changed functions based on git diff! Perfect for CI/CD pipelines.
6
+ > ```bash
7
+ > testgen auto
8
+ > ```
9
+
5
10
  ## Features
6
11
 
7
12
  - ๐Ÿค– **AI-Powered**: Uses Claude, OpenAI GPT, or Google Gemini to generate intelligent tests
8
13
  - ๐Ÿ” **AST Analysis**: Deep code analysis using Babel parser for accurate test generation
9
14
  - ๐Ÿ“ฆ **Codebase Indexing**: Optional caching for 100x faster analysis on large projects
10
- - ๐ŸŽฏ **Multiple Modes**: File-wise, folder-wise, or function-wise test generation
15
+ - ๐ŸŽฏ **Multiple Modes**: File-wise, folder-wise, function-wise, or auto test generation
16
+ - โšก **Auto Mode**: Detects git changes and automatically generates tests for modified functions
11
17
  - โœ… **Smart Validation**: Detects incomplete tests, missing assertions, and legitimate failures
12
18
  - ๐Ÿ”„ **Iterative Fixing**: Automatically fixes import errors, missing mocks, and test issues
13
19
  - ๐Ÿ“‹ **TypeScript Support**: Full support for TypeScript types, interfaces, and decorators
@@ -39,9 +45,9 @@ Create a `codeguard.json` file in your project root:
39
45
  "gemini": "..."
40
46
  },
41
47
  "models": {
42
- "claude": "claude-sonnet-4-5-20250929",
43
- "openai": "gpt-5-mini",
44
- "gemini": "gemini-2.0-flash-lite"
48
+ "claude": "claude-sonnet-4-20250514",
49
+ "openai": "gpt-4o-mini",
50
+ "gemini": "gemini-2.0-flash-exp"
45
51
  },
46
52
  "testDir": "src/tests",
47
53
  "extensions": [".ts", ".tsx", ".js", ".jsx"],
@@ -66,8 +72,89 @@ Create a `codeguard.json` file in your project root:
66
72
  - **OpenAI**: https://platform.openai.com/api-keys
67
73
  - **Gemini (Google)**: https://makersuite.google.com/app/apikey
68
74
 
75
+
76
+ ## Quick Reference
77
+
78
+ | Command | Description | Use Case |
79
+ |---------|-------------|----------|
80
+ | `testgen auto` | Auto-detect and test changed functions | CI/CD, daily development |
81
+ | `testgen` | Interactive mode - choose mode manually | Exploratory testing |
82
+ | Mode 1: File-wise | Generate tests for entire file | New files, comprehensive coverage |
83
+ | Mode 2: Folder-wise | Generate tests for all files in folder | Batch processing |
84
+ | Mode 3: Function-wise | Generate tests for specific functions | Incremental testing |
85
+
69
86
  ## Usage
70
87
 
88
+ ### Auto Mode (Recommended for CI/CD)
89
+
90
+ Automatically detect and test changed functions based on git diff:
91
+
92
+ ```bash
93
+ testgen auto
94
+ ```
95
+
96
+ or
97
+
98
+ ```bash
99
+ codeguard auto
100
+ ```
101
+
102
+ **How it works:**
103
+ 1. Reads both `git diff --staged` and `git diff` to find all changes
104
+ 2. Identifies which files have been modified
105
+ 3. Uses AI to detect which exported functions have changes
106
+ 4. Automatically generates or updates tests for those functions
107
+ 5. No user interaction required - perfect for automation!
108
+
109
+ **Example workflow:**
110
+ ```bash
111
+ # Make changes to your code
112
+ vim src/services/user.service.ts
113
+
114
+ # Stage your changes
115
+ git add src/services/user.service.ts
116
+
117
+ # Auto-generate tests for changed functions
118
+ testgen auto
119
+ ```
120
+
121
+ **Output:**
122
+ ```
123
+ ๐Ÿงช AI-Powered Unit Test Generator with AST Analysis
124
+
125
+ ๐Ÿค– Auto Mode: Detecting changes via git diff
126
+
127
+ โœ… Using OPENAI (gpt-4o-mini) with AST-powered analysis
128
+
129
+ ๐Ÿ” Scanning git changes...
130
+
131
+ ๐Ÿ“ Found changes in 2 file(s)
132
+
133
+ ๐Ÿ”„ Processing: src/services/user.service.ts
134
+ ๐Ÿ“ฆ Changed functions: createUser, updateUser
135
+ โœ… Tests generated successfully
136
+
137
+ ============================================================
138
+ ๐Ÿ“Š Auto-Generation Summary
139
+ ============================================================
140
+ โœ… Successfully processed: 1 file(s)
141
+ ๐Ÿ“ Functions tested: 2
142
+ ============================================================
143
+ ```
144
+
145
+ **Benefits:**
146
+ - โšก **Fast**: Only processes changed files
147
+ - ๐ŸŽฏ **Targeted**: Generates tests only for modified functions
148
+ - ๐Ÿ”„ **CI/CD Ready**: Non-interactive, perfect for automation
149
+ - ๐Ÿ›ก๏ธ **Safe**: Preserves existing tests for unchanged functions
150
+
151
+ **What files are processed:**
152
+ - โœ… Source files with supported extensions (`.ts`, `.tsx`, `.js`, `.jsx`)
153
+ - โœ… Files with exported functions
154
+ - โŒ Test files (`.test.`, `.spec.`, `__tests__/`, `/tests/`)
155
+ - โŒ Files in `node_modules`, `dist`, `build`, etc.
156
+ - โŒ Non-source files (configs, markdown, etc.)
157
+
71
158
  ### Interactive Mode
72
159
 
73
160
  Simply run the command and follow the prompts:
@@ -108,6 +195,14 @@ Generate tests for specific functions:
108
195
  - Preserves existing tests for other functions
109
196
  - Ideal for incremental test development
110
197
 
198
+ #### 4. Auto Mode
199
+ Automatically detect and test changed functions:
200
+ - Analyzes git diff (staged and unstaged changes)
201
+ - AI identifies which functions were modified
202
+ - Generates tests only for changed exported functions
203
+ - Non-interactive - perfect for CI/CD pipelines
204
+ - Use: `testgen auto`
205
+
111
206
  ## How It Works
112
207
 
113
208
  1. **AST Analysis**: Parses your code using Babel to understand structure
@@ -139,6 +234,82 @@ The AI generates tests with:
139
234
 
140
235
  ## Advanced Features
141
236
 
237
+ ### CI/CD Integration
238
+
239
+ Auto mode is designed for continuous integration workflows:
240
+
241
+ **GitHub Actions Example:**
242
+
243
+ ```yaml
244
+ name: Auto Generate Tests
245
+
246
+ on:
247
+ push:
248
+ branches: [ main, develop ]
249
+ pull_request:
250
+ branches: [ main ]
251
+
252
+ jobs:
253
+ generate-tests:
254
+ runs-on: ubuntu-latest
255
+ steps:
256
+ - uses: actions/checkout@v3
257
+ with:
258
+ fetch-depth: 0 # Fetch full history for git diff
259
+
260
+ - name: Setup Node.js
261
+ uses: actions/setup-node@v3
262
+ with:
263
+ node-version: '18'
264
+
265
+ - name: Install dependencies
266
+ run: npm install
267
+
268
+ - name: Install CodeGuard
269
+ run: npm install -g codeguard-testgen
270
+
271
+ - name: Generate tests for changed functions
272
+ env:
273
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
274
+ run: testgen auto
275
+
276
+ - name: Commit generated tests
277
+ run: |
278
+ git config --local user.email "action@github.com"
279
+ git config --local user.name "GitHub Action"
280
+ git add src/tests/
281
+ git commit -m "๐Ÿค– Auto-generate tests for changed functions" || echo "No changes"
282
+ git push
283
+ ```
284
+
285
+ **GitLab CI Example:**
286
+
287
+ ```yaml
288
+ generate-tests:
289
+ stage: test
290
+ script:
291
+ - npm install -g codeguard-testgen
292
+ - testgen auto
293
+ artifacts:
294
+ paths:
295
+ - src/tests/
296
+ only:
297
+ - merge_requests
298
+ ```
299
+
300
+ **Pre-commit Hook:**
301
+
302
+ ```bash
303
+ #!/bin/bash
304
+ # .git/hooks/pre-commit
305
+
306
+ # Generate tests for staged changes
307
+ testgen auto
308
+
309
+ # Add generated tests to commit
310
+ git add src/tests/
311
+ ```
312
+
142
313
  ### Codebase Indexing
143
314
 
144
315
  On first run, you'll be prompted to enable codebase indexing:
@@ -175,7 +346,44 @@ When legitimate bugs are found, they're reported with details for you to fix in
175
346
 
176
347
  ## Examples
177
348
 
178
- ### Example: Testing a User Service
349
+ ### Example 1: Auto Mode Workflow
350
+
351
+ **Step 1: Make changes to a function**
352
+ ```typescript
353
+ // src/services/user.service.ts
354
+ export const createUser = async (name: string, email: string) => {
355
+ // Added email validation
356
+ if (!email.includes('@')) {
357
+ throw new Error('Invalid email');
358
+ }
359
+
360
+ return await db.users.create({ name, email });
361
+ };
362
+
363
+ export const deleteUser = async (id: string) => {
364
+ return await db.users.delete(id);
365
+ };
366
+ ```
367
+
368
+ **Step 2: Stage changes and run auto mode**
369
+ ```bash
370
+ git add src/services/user.service.ts
371
+ testgen auto
372
+ ```
373
+
374
+ **Output:**
375
+ ```
376
+ ๐Ÿ” Scanning git changes...
377
+ ๐Ÿ“ Found changes in 1 file(s)
378
+
379
+ ๐Ÿ”„ Processing: src/services/user.service.ts
380
+ ๐Ÿ“ฆ Changed functions: createUser
381
+ โœ… Tests generated successfully
382
+ ```
383
+
384
+ **Result:** Only `createUser` gets new tests, `deleteUser` tests remain unchanged!
385
+
386
+ ### Example 2: Testing a User Service
179
387
 
180
388
  ```typescript
181
389
  // src/services/user.service.ts
@@ -217,6 +425,55 @@ describe('UserService', () => {
217
425
 
218
426
  ## Troubleshooting
219
427
 
428
+ ### Auto Mode Issues
429
+
430
+ #### "Not a git repository"
431
+ Auto mode requires git to detect changes. Initialize git in your project:
432
+ ```bash
433
+ git init
434
+ ```
435
+
436
+ #### "No changes detected in source files"
437
+ This means:
438
+ - No staged or unstaged changes exist
439
+ - Only test files were modified (test files are excluded)
440
+ - Changes are in non-source files
441
+
442
+ Check your changes:
443
+ ```bash
444
+ git status
445
+ git diff
446
+ ```
447
+
448
+ #### "No exported functions changed"
449
+ Possible causes:
450
+ 1. **AI model misconfigured**: Check your `codeguard.json` has a valid model name:
451
+ ```json
452
+ {
453
+ "models": {
454
+ "openai": "gpt-4o-mini" // โœ… Correct
455
+ // NOT "gpt-5-mini" โŒ
456
+ }
457
+ }
458
+ ```
459
+ 2. **Only internal functions changed**: Auto mode only generates tests for exported functions
460
+ 3. **File has no exported functions**: Make sure functions are exported:
461
+ ```typescript
462
+ export const myFunction = () => { } // โœ… Will be tested
463
+ const internalFunc = () => { } // โŒ Will be skipped
464
+ ```
465
+
466
+ #### Debugging Auto Mode
467
+ Enable detailed logging by checking the console output:
468
+ ```bash
469
+ testgen auto
470
+ ```
471
+
472
+ Look for:
473
+ - `๐Ÿ“ฆ Found X exported function(s): ...` - Shows detected functions
474
+ - `๐Ÿค– AI response: ...` - Shows what AI detected
475
+ - `๐Ÿ“Š AST Analysis result: ...` - Shows file parsing results
476
+
220
477
  ### "Configuration Error: codeguard.json not found"
221
478
 
222
479
  Create a `codeguard.json` file in your project root. See Configuration section above.
@@ -1 +1 @@
1
- {"version":3,"file":"codebaseIndexer.d.ts","sourceRoot":"","sources":["../src/codebaseIndexer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,YAAY;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,SAAS,EAAE,GAAG,EAAE,CAAC;CAClB;AAiBD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,OAAO,CAAmB;;IASlC;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAwBnC;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EACxC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GACxE,OAAO,CAAC,IAAI,CAAC;IA8DhB;;OAEG;IACG,WAAW,CACf,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,GACvC,OAAO,CAAC,IAAI,CAAC;IAqChB;;OAEG;YACW,SAAS;IAYvB;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAQtD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAgBtC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAezB;;OAEG;IACH,QAAQ;;;;;;;;IAsBR;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;OAEG;YACW,iBAAiB;IAqD/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAkCpB;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB"}
1
+ {"version":3,"file":"codebaseIndexer.d.ts","sourceRoot":"","sources":["../src/codebaseIndexer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,YAAY;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,SAAS,EAAE,GAAG,EAAE,CAAC;CAClB;AAiBD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,OAAO,CAAmB;;IASlC;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAwBnC;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EACxC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GACxE,OAAO,CAAC,IAAI,CAAC;IA8DhB;;OAEG;IACG,WAAW,CACf,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,GACvC,OAAO,CAAC,IAAI,CAAC;IAqChB;;OAEG;YACW,SAAS;IAYvB;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAQtD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAgBtC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAezB;;OAEG;IACH,QAAQ;;;;;;;;IAsBR;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;OAEG;YACW,iBAAiB;IAyC/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAkCpB;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB"}
@@ -232,9 +232,6 @@ class CodebaseIndexer {
232
232
  'build',
233
233
  '.git',
234
234
  'coverage',
235
- '__tests__',
236
- 'tests',
237
- 'test',
238
235
  '.codeguard-cache',
239
236
  '.testgen-cache'
240
237
  ];
@@ -252,17 +249,9 @@ class CodebaseIndexer {
252
249
  }
253
250
  else if (stat.isFile()) {
254
251
  const ext = path.extname(item);
255
- // Skip test files and hidden files
256
- const isTestFile = item.endsWith('.test.ts') ||
257
- item.endsWith('.test.tsx') ||
258
- item.endsWith('.spec.ts') ||
259
- item.endsWith('.spec.tsx') ||
260
- item.endsWith('.test.js') ||
261
- item.endsWith('.test.jsx') ||
262
- item.endsWith('.spec.js') ||
263
- item.endsWith('.spec.jsx');
252
+ // Skip hidden files only (now including test files in the index)
264
253
  const isHiddenFile = item.startsWith('.');
265
- if (extensions.includes(ext) && !isTestFile && !isHiddenFile) {
254
+ if (extensions.includes(ext) && !isHiddenFile) {
266
255
  fileList.push(fullPath);
267
256
  }
268
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codebaseIndexer.js","sourceRoot":"","sources":["../src/codebaseIndexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codebaseIndexer.js","sourceRoot":"","sources":["../src/codebaseIndexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Fuzzy Matching Utilities for Search-Replace Operations
3
+ * Provides multiple matching strategies for reliable code block replacement
4
+ */
5
+ export interface MatchResult {
6
+ found: boolean;
7
+ startIndex: number;
8
+ endIndex: number;
9
+ confidence: number;
10
+ originalText: string;
11
+ matchType: 'exact' | 'normalized' | 'fuzzy' | 'context';
12
+ }
13
+ export interface SimilarBlock {
14
+ text: string;
15
+ similarity: number;
16
+ startLine: number;
17
+ endLine: number;
18
+ }
19
+ /**
20
+ * Normalize whitespace for comparison
21
+ * - Converts tabs to spaces
22
+ * - Normalizes line endings
23
+ * - Trims each line
24
+ * - Collapses multiple spaces
25
+ */
26
+ export declare function normalizeWhitespace(text: string): string;
27
+ /**
28
+ * Calculate Levenshtein distance between two strings
29
+ * Used for fuzzy matching with a threshold
30
+ */
31
+ export declare function levenshteinDistance(a: string, b: string): number;
32
+ /**
33
+ * Calculate similarity score (0-1) based on Levenshtein distance
34
+ */
35
+ export declare function similarityScore(a: string, b: string): number;
36
+ /**
37
+ * Context-aware search
38
+ * Uses surrounding lines as anchors to find the target block
39
+ */
40
+ export declare function contextAwareSearch(content: string, search: string, contextLines?: number): MatchResult | null;
41
+ /**
42
+ * Main search function that tries multiple strategies
43
+ */
44
+ export declare function smartSearch(content: string, search: string, mode?: 'exact' | 'normalized' | 'fuzzy' | 'auto'): MatchResult | null;
45
+ /**
46
+ * Find similar blocks in content to help with debugging
47
+ */
48
+ export declare function findSimilarBlocks(content: string, search: string, topN?: number): SimilarBlock[];
49
+ /**
50
+ * Get helpful error message with suggestions
51
+ */
52
+ export declare function getSearchFailureMessage(content: string, search: string): string;
53
+ //# sourceMappingURL=fuzzyMatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuzzyMatcher.d.ts","sourceRoot":"","sources":["../src/fuzzyMatcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASxD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAgChE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5D;AA2JD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,MAAU,GACvB,WAAW,GAAG,IAAI,CAkEpB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,MAAe,GACvD,WAAW,GAAG,IAAI,CA0BpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAU,GACf,YAAY,EAAE,CA8BhB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAyBR"}