@m3hti/commit-genie 1.2.3 → 1.2.5

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 (102) hide show
  1. package/package.json +1 -1
  2. package/dist/commands/config.d.ts +0 -3
  3. package/dist/commands/config.d.ts.map +0 -1
  4. package/dist/commands/config.js +0 -31
  5. package/dist/commands/config.js.map +0 -1
  6. package/dist/commands/generate.d.ts +0 -12
  7. package/dist/commands/generate.d.ts.map +0 -1
  8. package/dist/commands/generate.js +0 -550
  9. package/dist/commands/generate.js.map +0 -1
  10. package/dist/commands/generate.test.d.ts +0 -2
  11. package/dist/commands/generate.test.d.ts.map +0 -1
  12. package/dist/commands/generate.test.js +0 -168
  13. package/dist/commands/generate.test.js.map +0 -1
  14. package/dist/commands/hook.d.ts +0 -4
  15. package/dist/commands/hook.d.ts.map +0 -1
  16. package/dist/commands/hook.js +0 -62
  17. package/dist/commands/hook.js.map +0 -1
  18. package/dist/commands/stats.d.ts +0 -6
  19. package/dist/commands/stats.d.ts.map +0 -1
  20. package/dist/commands/stats.js +0 -39
  21. package/dist/commands/stats.js.map +0 -1
  22. package/dist/data/wordlist.d.ts +0 -11
  23. package/dist/data/wordlist.d.ts.map +0 -1
  24. package/dist/data/wordlist.js +0 -170
  25. package/dist/data/wordlist.js.map +0 -1
  26. package/dist/index.d.ts +0 -3
  27. package/dist/index.d.ts.map +0 -1
  28. package/dist/index.js +0 -81
  29. package/dist/index.js.map +0 -1
  30. package/dist/services/aiService.d.ts +0 -42
  31. package/dist/services/aiService.d.ts.map +0 -1
  32. package/dist/services/aiService.js +0 -224
  33. package/dist/services/aiService.js.map +0 -1
  34. package/dist/services/analyzerService.d.ts +0 -124
  35. package/dist/services/analyzerService.d.ts.map +0 -1
  36. package/dist/services/analyzerService.js +0 -1595
  37. package/dist/services/analyzerService.js.map +0 -1
  38. package/dist/services/analyzerService.test.d.ts +0 -2
  39. package/dist/services/analyzerService.test.d.ts.map +0 -1
  40. package/dist/services/analyzerService.test.js +0 -483
  41. package/dist/services/analyzerService.test.js.map +0 -1
  42. package/dist/services/configService.d.ts +0 -25
  43. package/dist/services/configService.d.ts.map +0 -1
  44. package/dist/services/configService.js +0 -228
  45. package/dist/services/configService.js.map +0 -1
  46. package/dist/services/configService.test.d.ts +0 -2
  47. package/dist/services/configService.test.d.ts.map +0 -1
  48. package/dist/services/configService.test.js +0 -165
  49. package/dist/services/configService.test.js.map +0 -1
  50. package/dist/services/gitService.d.ts +0 -64
  51. package/dist/services/gitService.d.ts.map +0 -1
  52. package/dist/services/gitService.js +0 -303
  53. package/dist/services/gitService.js.map +0 -1
  54. package/dist/services/gitService.test.d.ts +0 -2
  55. package/dist/services/gitService.test.d.ts.map +0 -1
  56. package/dist/services/gitService.test.js +0 -140
  57. package/dist/services/gitService.test.js.map +0 -1
  58. package/dist/services/historyService.d.ts +0 -39
  59. package/dist/services/historyService.d.ts.map +0 -1
  60. package/dist/services/historyService.js +0 -195
  61. package/dist/services/historyService.js.map +0 -1
  62. package/dist/services/historyService.test.d.ts +0 -2
  63. package/dist/services/historyService.test.d.ts.map +0 -1
  64. package/dist/services/historyService.test.js +0 -157
  65. package/dist/services/historyService.test.js.map +0 -1
  66. package/dist/services/hookService.d.ts +0 -29
  67. package/dist/services/hookService.d.ts.map +0 -1
  68. package/dist/services/hookService.js +0 -164
  69. package/dist/services/hookService.js.map +0 -1
  70. package/dist/services/lintService.d.ts +0 -32
  71. package/dist/services/lintService.d.ts.map +0 -1
  72. package/dist/services/lintService.js +0 -191
  73. package/dist/services/lintService.js.map +0 -1
  74. package/dist/services/spellService.d.ts +0 -42
  75. package/dist/services/spellService.d.ts.map +0 -1
  76. package/dist/services/spellService.js +0 -175
  77. package/dist/services/spellService.js.map +0 -1
  78. package/dist/services/splitService.d.ts +0 -32
  79. package/dist/services/splitService.d.ts.map +0 -1
  80. package/dist/services/splitService.js +0 -184
  81. package/dist/services/splitService.js.map +0 -1
  82. package/dist/services/statsService.d.ts +0 -28
  83. package/dist/services/statsService.d.ts.map +0 -1
  84. package/dist/services/statsService.js +0 -204
  85. package/dist/services/statsService.js.map +0 -1
  86. package/dist/types/index.d.ts +0 -217
  87. package/dist/types/index.d.ts.map +0 -1
  88. package/dist/types/index.js +0 -3
  89. package/dist/types/index.js.map +0 -1
  90. package/dist/utils/filePatterns.d.ts +0 -5
  91. package/dist/utils/filePatterns.d.ts.map +0 -1
  92. package/dist/utils/filePatterns.js +0 -77
  93. package/dist/utils/filePatterns.js.map +0 -1
  94. package/dist/utils/filePatterns.test.d.ts +0 -2
  95. package/dist/utils/filePatterns.test.d.ts.map +0 -1
  96. package/dist/utils/filePatterns.test.js +0 -51
  97. package/dist/utils/filePatterns.test.js.map +0 -1
  98. package/dist/utils/prompt.d.ts +0 -4
  99. package/dist/utils/prompt.d.ts.map +0 -1
  100. package/dist/utils/prompt.js +0 -60
  101. package/dist/utils/prompt.js.map +0 -1
  102. package/npm-output.txt +0 -0
@@ -1,303 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GitService = void 0;
4
- const child_process_1 = require("child_process");
5
- class GitService {
6
- /**
7
- * Check if current directory is a git repository
8
- */
9
- static isGitRepository() {
10
- try {
11
- (0, child_process_1.execSync)('git rev-parse --git-dir', { stdio: 'pipe' });
12
- return true;
13
- }
14
- catch {
15
- return false;
16
- }
17
- }
18
- /**
19
- * Get current git status with staged and unstaged files
20
- */
21
- static getStatus() {
22
- try {
23
- const output = (0, child_process_1.execSync)('git status --porcelain', {
24
- encoding: 'utf-8',
25
- });
26
- const staged = [];
27
- const unstaged = [];
28
- const lines = output.split('\n').filter((line) => line.trim());
29
- for (const line of lines) {
30
- if (line.length < 3)
31
- continue;
32
- const stagedStatus = line[0];
33
- const unstagedStatus = line[1];
34
- const path = line.substring(3).trim();
35
- // Staged changes (first character)
36
- if (stagedStatus !== ' ' && stagedStatus !== '?') {
37
- staged.push({ status: stagedStatus, path });
38
- }
39
- // Unstaged changes (second character)
40
- if (unstagedStatus !== ' ' && stagedStatus === ' ') {
41
- unstaged.push({ status: unstagedStatus, path });
42
- }
43
- }
44
- return {
45
- staged,
46
- unstaged,
47
- hasStagedChanges: staged.length > 0,
48
- };
49
- }
50
- catch (error) {
51
- throw new Error(`Failed to get git status: ${error}`);
52
- }
53
- }
54
- /**
55
- * Get diff statistics for staged changes
56
- */
57
- static getDiffStats() {
58
- try {
59
- const output = (0, child_process_1.execSync)('git diff --cached --shortstat', {
60
- encoding: 'utf-8',
61
- });
62
- let filesChanged = 0;
63
- let insertions = 0;
64
- let deletions = 0;
65
- if (output.trim()) {
66
- const filesMatch = output.match(/(\d+) files? changed/);
67
- const insertionsMatch = output.match(/(\d+) insertions?/);
68
- const deletionsMatch = output.match(/(\d+) deletions?/);
69
- if (filesMatch)
70
- filesChanged = parseInt(filesMatch[1], 10);
71
- if (insertionsMatch)
72
- insertions = parseInt(insertionsMatch[1], 10);
73
- if (deletionsMatch)
74
- deletions = parseInt(deletionsMatch[1], 10);
75
- }
76
- return { filesChanged, insertions, deletions };
77
- }
78
- catch (error) {
79
- throw new Error(`Failed to get diff stats: ${error}`);
80
- }
81
- }
82
- /**
83
- * Get the actual diff content for staged changes
84
- */
85
- static getDiff() {
86
- try {
87
- const output = (0, child_process_1.execSync)('git diff --cached', {
88
- encoding: 'utf-8',
89
- maxBuffer: 1024 * 1024 * 10, // 10MB buffer
90
- });
91
- return output;
92
- }
93
- catch (error) {
94
- throw new Error(`Failed to get diff: ${error}`);
95
- }
96
- }
97
- /**
98
- * Get list of staged files with their status
99
- */
100
- static getStagedFiles() {
101
- const status = this.getStatus();
102
- return status.staged;
103
- }
104
- /**
105
- * Commit staged changes with the given message (supports multi-line)
106
- */
107
- static commit(message) {
108
- try {
109
- // Use -F - to read message from stdin (supports multi-line)
110
- const result = (0, child_process_1.spawnSync)('git', ['commit', '-F', '-'], {
111
- input: message,
112
- encoding: 'utf-8',
113
- stdio: ['pipe', 'pipe', 'pipe'],
114
- });
115
- if (result.status !== 0) {
116
- const errorMsg = result.stderr?.trim() || result.stdout?.trim() || 'Unknown error';
117
- throw new Error(errorMsg);
118
- }
119
- }
120
- catch (error) {
121
- if (error.message) {
122
- throw new Error(`Failed to commit: ${error.message}`);
123
- }
124
- throw new Error('Failed to commit: Unknown error');
125
- }
126
- }
127
- /**
128
- * Amend the last commit with a new message
129
- */
130
- static amendCommit(message) {
131
- try {
132
- const result = (0, child_process_1.spawnSync)('git', ['commit', '--amend', '-F', '-'], {
133
- input: message,
134
- encoding: 'utf-8',
135
- stdio: ['pipe', 'pipe', 'pipe'],
136
- });
137
- if (result.status !== 0) {
138
- const errorMsg = result.stderr?.trim() || result.stdout?.trim() || 'Unknown error';
139
- throw new Error(errorMsg);
140
- }
141
- }
142
- catch (error) {
143
- if (error.message) {
144
- throw new Error(`Failed to amend commit: ${error.message}`);
145
- }
146
- throw new Error('Failed to amend commit: Unknown error');
147
- }
148
- }
149
- /**
150
- * Get the last commit's message
151
- */
152
- static getLastCommitMessage() {
153
- try {
154
- const output = (0, child_process_1.execSync)('git log -1 --format=%B', {
155
- encoding: 'utf-8',
156
- });
157
- return output.trim() || null;
158
- }
159
- catch {
160
- return null;
161
- }
162
- }
163
- /**
164
- * Get files changed in the last commit
165
- */
166
- static getLastCommitFiles() {
167
- try {
168
- const output = (0, child_process_1.execSync)('git diff-tree --no-commit-id --name-status -r HEAD', {
169
- encoding: 'utf-8',
170
- });
171
- const files = [];
172
- const lines = output.split('\n').filter(l => l.trim());
173
- for (const line of lines) {
174
- const parts = line.split('\t');
175
- if (parts.length >= 2) {
176
- const status = parts[0].charAt(0);
177
- const path = parts[1];
178
- files.push({ status, path });
179
- }
180
- }
181
- return files;
182
- }
183
- catch {
184
- return [];
185
- }
186
- }
187
- /**
188
- * Get diff of the last commit
189
- */
190
- static getLastCommitDiff() {
191
- try {
192
- return (0, child_process_1.execSync)('git diff HEAD~1 HEAD', {
193
- encoding: 'utf-8',
194
- maxBuffer: 1024 * 1024 * 10,
195
- });
196
- }
197
- catch {
198
- return '';
199
- }
200
- }
201
- /**
202
- * Check if there are any commits in the repository
203
- */
204
- static hasCommits() {
205
- try {
206
- (0, child_process_1.execSync)('git rev-parse HEAD', { stdio: 'pipe' });
207
- return true;
208
- }
209
- catch {
210
- return false;
211
- }
212
- }
213
- /**
214
- * Get the root directory of the git repository
215
- */
216
- static getGitRoot() {
217
- try {
218
- const output = (0, child_process_1.execSync)('git rev-parse --show-toplevel', {
219
- encoding: 'utf-8',
220
- });
221
- return output.trim();
222
- }
223
- catch (error) {
224
- throw new Error('Failed to get git root directory');
225
- }
226
- }
227
- /**
228
- * Get the .git directory path (works reliably on Windows)
229
- */
230
- static getGitDir() {
231
- try {
232
- const output = (0, child_process_1.execSync)('git rev-parse --git-dir', {
233
- encoding: 'utf-8',
234
- });
235
- const gitDir = output.trim();
236
- // If relative path, resolve from cwd
237
- if (gitDir === '.git' || !gitDir.startsWith('/')) {
238
- return require('path').resolve(process.cwd(), gitDir);
239
- }
240
- // Handle Unix-style absolute paths on Windows (from Git Bash)
241
- if (process.platform === 'win32' && gitDir.match(/^\/[a-zA-Z]\//)) {
242
- // Convert /d/path to D:/path
243
- return gitDir.replace(/^\/([a-zA-Z])\//, '$1:/').replace(/\//g, '\\');
244
- }
245
- return gitDir;
246
- }
247
- catch (error) {
248
- throw new Error('Failed to get git directory');
249
- }
250
- }
251
- /**
252
- * Get the current branch name
253
- */
254
- static getCurrentBranch() {
255
- try {
256
- const output = (0, child_process_1.execSync)('git rev-parse --abbrev-ref HEAD', {
257
- encoding: 'utf-8',
258
- });
259
- const branch = output.trim();
260
- return branch === 'HEAD' ? null : branch; // Detached HEAD state
261
- }
262
- catch {
263
- return null;
264
- }
265
- }
266
- /**
267
- * Get recent commit history
268
- */
269
- static getCommitHistory(count = 50) {
270
- try {
271
- // Use %x00 as delimiter to handle multi-line messages
272
- const format = '%H%x00%s%x00%b%x00';
273
- const output = (0, child_process_1.execSync)(`git log -${count} --format="${format}"`, {
274
- encoding: 'utf-8',
275
- maxBuffer: 1024 * 1024 * 5, // 5MB buffer
276
- });
277
- const commits = [];
278
- const entries = output.split('\x00\x00').filter(e => e.trim());
279
- for (const entry of entries) {
280
- const parts = entry.split('\x00');
281
- if (parts.length >= 2) {
282
- const hash = parts[0].trim();
283
- const subject = parts[1].trim();
284
- const body = parts[2]?.trim() || undefined;
285
- if (hash && subject) {
286
- commits.push({
287
- hash,
288
- subject,
289
- message: body ? `${subject}\n\n${body}` : subject,
290
- body,
291
- });
292
- }
293
- }
294
- }
295
- return commits;
296
- }
297
- catch {
298
- return [];
299
- }
300
- }
301
- }
302
- exports.GitService = GitService;
303
- //# sourceMappingURL=gitService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitService.js","sourceRoot":"","sources":["../../src/services/gitService.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gitService.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitService.test.d.ts","sourceRoot":"","sources":["../../src/services/gitService.test.ts"],"names":[],"mappings":""}
@@ -1,140 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const child_process_1 = require("child_process");
4
- const gitService_1 = require("./gitService");
5
- // Mock child_process
6
- jest.mock('child_process', () => ({
7
- execSync: jest.fn(),
8
- spawnSync: jest.fn(),
9
- }));
10
- const mockedExecSync = child_process_1.execSync;
11
- const mockedSpawnSync = child_process_1.spawnSync;
12
- describe('GitService', () => {
13
- beforeEach(() => {
14
- jest.clearAllMocks();
15
- });
16
- describe('isGitRepository', () => {
17
- it('should return true when in a git repository', () => {
18
- mockedExecSync.mockReturnValueOnce(Buffer.from('.git'));
19
- expect(gitService_1.GitService.isGitRepository()).toBe(true);
20
- });
21
- it('should return false when not in a git repository', () => {
22
- mockedExecSync.mockImplementationOnce(() => {
23
- throw new Error('Not a git repository');
24
- });
25
- expect(gitService_1.GitService.isGitRepository()).toBe(false);
26
- });
27
- });
28
- describe('getStatus', () => {
29
- it('should parse staged files correctly', () => {
30
- mockedExecSync.mockReturnValueOnce('A src/newFile.ts\nM src/modified.ts\nD src/deleted.ts\n');
31
- const status = gitService_1.GitService.getStatus();
32
- expect(status.hasStagedChanges).toBe(true);
33
- expect(status.staged).toHaveLength(3);
34
- expect(status.staged[0]).toEqual({ status: 'A', path: 'src/newFile.ts' });
35
- expect(status.staged[1]).toEqual({ status: 'M', path: 'src/modified.ts' });
36
- expect(status.staged[2]).toEqual({ status: 'D', path: 'src/deleted.ts' });
37
- });
38
- it('should return empty arrays when no changes', () => {
39
- mockedExecSync.mockReturnValueOnce('');
40
- const status = gitService_1.GitService.getStatus();
41
- expect(status.hasStagedChanges).toBe(false);
42
- expect(status.staged).toHaveLength(0);
43
- expect(status.unstaged).toHaveLength(0);
44
- });
45
- it('should handle renamed files', () => {
46
- mockedExecSync.mockReturnValueOnce('R old.ts -> new.ts\n');
47
- const status = gitService_1.GitService.getStatus();
48
- expect(status.staged[0].status).toBe('R');
49
- });
50
- });
51
- describe('getDiffStats', () => {
52
- it('should parse diff stats correctly', () => {
53
- mockedExecSync.mockReturnValueOnce(' 3 files changed, 45 insertions(+), 10 deletions(-)\n');
54
- const stats = gitService_1.GitService.getDiffStats();
55
- expect(stats.filesChanged).toBe(3);
56
- expect(stats.insertions).toBe(45);
57
- expect(stats.deletions).toBe(10);
58
- });
59
- it('should handle empty diff', () => {
60
- mockedExecSync.mockReturnValueOnce('');
61
- const stats = gitService_1.GitService.getDiffStats();
62
- expect(stats.filesChanged).toBe(0);
63
- expect(stats.insertions).toBe(0);
64
- expect(stats.deletions).toBe(0);
65
- });
66
- it('should handle single file change', () => {
67
- mockedExecSync.mockReturnValueOnce(' 1 file changed, 5 insertions(+)\n');
68
- const stats = gitService_1.GitService.getDiffStats();
69
- expect(stats.filesChanged).toBe(1);
70
- expect(stats.insertions).toBe(5);
71
- expect(stats.deletions).toBe(0);
72
- });
73
- });
74
- describe('getDiff', () => {
75
- it('should return diff content', () => {
76
- const mockDiff = `diff --git a/file.ts b/file.ts
77
- +++ b/file.ts
78
- +const newLine = true;`;
79
- mockedExecSync.mockReturnValueOnce(mockDiff);
80
- const diff = gitService_1.GitService.getDiff();
81
- expect(diff).toBe(mockDiff);
82
- });
83
- });
84
- describe('commit', () => {
85
- it('should execute git commit with message', () => {
86
- mockedSpawnSync.mockReturnValueOnce({
87
- status: 0,
88
- stdout: '',
89
- stderr: '',
90
- pid: 123,
91
- output: [],
92
- signal: null,
93
- });
94
- expect(() => gitService_1.GitService.commit('feat: add new feature')).not.toThrow();
95
- expect(mockedSpawnSync).toHaveBeenCalledWith('git', ['commit', '-F', '-'], expect.objectContaining({
96
- input: 'feat: add new feature',
97
- }));
98
- });
99
- it('should handle multi-line commit messages', () => {
100
- mockedSpawnSync.mockReturnValueOnce({
101
- status: 0,
102
- stdout: '',
103
- stderr: '',
104
- pid: 123,
105
- output: [],
106
- signal: null,
107
- });
108
- const multiLineMessage = 'feat: add new feature\n\nThis is the body\nwith multiple lines';
109
- gitService_1.GitService.commit(multiLineMessage);
110
- expect(mockedSpawnSync).toHaveBeenCalledWith('git', ['commit', '-F', '-'], expect.objectContaining({
111
- input: multiLineMessage,
112
- }));
113
- });
114
- it('should throw error when commit fails', () => {
115
- mockedSpawnSync.mockReturnValueOnce({
116
- status: 1,
117
- stdout: '',
118
- stderr: 'nothing to commit',
119
- pid: 123,
120
- output: [],
121
- signal: null,
122
- });
123
- expect(() => gitService_1.GitService.commit('test')).toThrow('Failed to commit');
124
- });
125
- });
126
- describe('getGitDir', () => {
127
- it('should resolve relative .git path', () => {
128
- mockedExecSync.mockReturnValueOnce('.git\n');
129
- const result = gitService_1.GitService.getGitDir();
130
- // Should resolve to absolute path ending with .git
131
- expect(result.endsWith('.git')).toBe(true);
132
- });
133
- it('should handle absolute paths', () => {
134
- mockedExecSync.mockReturnValueOnce('/home/user/project/.git\n');
135
- const result = gitService_1.GitService.getGitDir();
136
- expect(result).toBe('/home/user/project/.git');
137
- });
138
- });
139
- });
140
- //# sourceMappingURL=gitService.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitService.test.js","sourceRoot":"","sources":["../../src/services/gitService.test.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { TicketInfo, CommitHistoryAnalysis, CommitType } from '../types';
2
- export declare class HistoryService {
3
- private static cachedAnalysis;
4
- private static cacheTimestamp;
5
- private static CACHE_TTL;
6
- /**
7
- * Detect ticket/issue reference from branch name
8
- */
9
- static detectTicketFromBranch(): TicketInfo | null;
10
- /**
11
- * Analyze commit history to learn project patterns
12
- */
13
- static analyzeCommitHistory(): CommitHistoryAnalysis;
14
- /**
15
- * Perform the actual analysis on commits
16
- */
17
- private static performAnalysis;
18
- /**
19
- * Get default analysis when no history is available
20
- */
21
- private static getDefaultAnalysis;
22
- /**
23
- * Get the most common commit type from history
24
- */
25
- static getMostCommonType(): CommitType | null;
26
- /**
27
- * Check if project historically uses emojis
28
- */
29
- static projectUsesEmojis(): boolean;
30
- /**
31
- * Get suggested scope based on history
32
- */
33
- static getSuggestedScope(filePaths: string[]): string | undefined;
34
- /**
35
- * Clear the cached analysis
36
- */
37
- static clearCache(): void;
38
- }
39
- //# sourceMappingURL=historyService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"historyService.d.ts","sourceRoot":"","sources":["../../src/services/historyService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAoB,UAAU,EAAE,MAAM,UAAU,CAAC;AAe3F,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAsC;IACnE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAa;IAC1C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAS;IAEjC;;OAEG;IACH,MAAM,CAAC,sBAAsB,IAAI,UAAU,GAAG,IAAI;IA8BlD;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,qBAAqB;IA+BpD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAqE9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAYjC;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,UAAU,GAAG,IAAI;IAU7C;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,OAAO;IAKnC;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS;IAkBjE;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;CAI1B"}