@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.
- package/package.json +1 -1
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -31
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/generate.d.ts +0 -12
- package/dist/commands/generate.d.ts.map +0 -1
- package/dist/commands/generate.js +0 -550
- package/dist/commands/generate.js.map +0 -1
- package/dist/commands/generate.test.d.ts +0 -2
- package/dist/commands/generate.test.d.ts.map +0 -1
- package/dist/commands/generate.test.js +0 -168
- package/dist/commands/generate.test.js.map +0 -1
- package/dist/commands/hook.d.ts +0 -4
- package/dist/commands/hook.d.ts.map +0 -1
- package/dist/commands/hook.js +0 -62
- package/dist/commands/hook.js.map +0 -1
- package/dist/commands/stats.d.ts +0 -6
- package/dist/commands/stats.d.ts.map +0 -1
- package/dist/commands/stats.js +0 -39
- package/dist/commands/stats.js.map +0 -1
- package/dist/data/wordlist.d.ts +0 -11
- package/dist/data/wordlist.d.ts.map +0 -1
- package/dist/data/wordlist.js +0 -170
- package/dist/data/wordlist.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -81
- package/dist/index.js.map +0 -1
- package/dist/services/aiService.d.ts +0 -42
- package/dist/services/aiService.d.ts.map +0 -1
- package/dist/services/aiService.js +0 -224
- package/dist/services/aiService.js.map +0 -1
- package/dist/services/analyzerService.d.ts +0 -124
- package/dist/services/analyzerService.d.ts.map +0 -1
- package/dist/services/analyzerService.js +0 -1595
- package/dist/services/analyzerService.js.map +0 -1
- package/dist/services/analyzerService.test.d.ts +0 -2
- package/dist/services/analyzerService.test.d.ts.map +0 -1
- package/dist/services/analyzerService.test.js +0 -483
- package/dist/services/analyzerService.test.js.map +0 -1
- package/dist/services/configService.d.ts +0 -25
- package/dist/services/configService.d.ts.map +0 -1
- package/dist/services/configService.js +0 -228
- package/dist/services/configService.js.map +0 -1
- package/dist/services/configService.test.d.ts +0 -2
- package/dist/services/configService.test.d.ts.map +0 -1
- package/dist/services/configService.test.js +0 -165
- package/dist/services/configService.test.js.map +0 -1
- package/dist/services/gitService.d.ts +0 -64
- package/dist/services/gitService.d.ts.map +0 -1
- package/dist/services/gitService.js +0 -303
- package/dist/services/gitService.js.map +0 -1
- package/dist/services/gitService.test.d.ts +0 -2
- package/dist/services/gitService.test.d.ts.map +0 -1
- package/dist/services/gitService.test.js +0 -140
- package/dist/services/gitService.test.js.map +0 -1
- package/dist/services/historyService.d.ts +0 -39
- package/dist/services/historyService.d.ts.map +0 -1
- package/dist/services/historyService.js +0 -195
- package/dist/services/historyService.js.map +0 -1
- package/dist/services/historyService.test.d.ts +0 -2
- package/dist/services/historyService.test.d.ts.map +0 -1
- package/dist/services/historyService.test.js +0 -157
- package/dist/services/historyService.test.js.map +0 -1
- package/dist/services/hookService.d.ts +0 -29
- package/dist/services/hookService.d.ts.map +0 -1
- package/dist/services/hookService.js +0 -164
- package/dist/services/hookService.js.map +0 -1
- package/dist/services/lintService.d.ts +0 -32
- package/dist/services/lintService.d.ts.map +0 -1
- package/dist/services/lintService.js +0 -191
- package/dist/services/lintService.js.map +0 -1
- package/dist/services/spellService.d.ts +0 -42
- package/dist/services/spellService.d.ts.map +0 -1
- package/dist/services/spellService.js +0 -175
- package/dist/services/spellService.js.map +0 -1
- package/dist/services/splitService.d.ts +0 -32
- package/dist/services/splitService.d.ts.map +0 -1
- package/dist/services/splitService.js +0 -184
- package/dist/services/splitService.js.map +0 -1
- package/dist/services/statsService.d.ts +0 -28
- package/dist/services/statsService.d.ts.map +0 -1
- package/dist/services/statsService.js +0 -204
- package/dist/services/statsService.js.map +0 -1
- package/dist/types/index.d.ts +0 -217
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/utils/filePatterns.d.ts +0 -5
- package/dist/utils/filePatterns.d.ts.map +0 -1
- package/dist/utils/filePatterns.js +0 -77
- package/dist/utils/filePatterns.js.map +0 -1
- package/dist/utils/filePatterns.test.d.ts +0 -2
- package/dist/utils/filePatterns.test.d.ts.map +0 -1
- package/dist/utils/filePatterns.test.js +0 -51
- package/dist/utils/filePatterns.test.js.map +0 -1
- package/dist/utils/prompt.d.ts +0 -4
- package/dist/utils/prompt.d.ts.map +0 -1
- package/dist/utils/prompt.js +0 -60
- package/dist/utils/prompt.js.map +0 -1
- package/npm-output.txt +0 -0
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,SAoBhC;AAED,wBAAgB,iBAAiB,SAIhC"}
|
package/dist/commands/config.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.configInitCommand = configInitCommand;
|
|
4
|
-
exports.configShowCommand = configShowCommand;
|
|
5
|
-
const configService_1 = require("../services/configService");
|
|
6
|
-
function configInitCommand() {
|
|
7
|
-
console.log('Creating CommitGenie config file...\n');
|
|
8
|
-
const result = configService_1.ConfigService.initConfig();
|
|
9
|
-
if (result.success) {
|
|
10
|
-
console.log(`ā ${result.message}`);
|
|
11
|
-
if (result.path) {
|
|
12
|
-
console.log(` Location: ${result.path}`);
|
|
13
|
-
}
|
|
14
|
-
console.log('\nYou can customize:');
|
|
15
|
-
console.log(' - scopes: Map file patterns to scope names');
|
|
16
|
-
console.log(' - defaultType: Default commit type (feat, fix, etc.)');
|
|
17
|
-
console.log(' - maxMessageLength: Maximum commit message length');
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
console.log(`ā ${result.message}`);
|
|
21
|
-
if (result.path) {
|
|
22
|
-
console.log(` Existing file: ${result.path}`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function configShowCommand() {
|
|
27
|
-
const config = configService_1.ConfigService.getConfig();
|
|
28
|
-
console.log('Current CommitGenie configuration:\n');
|
|
29
|
-
console.log(JSON.stringify(config, null, 2));
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":";;AAEA,8CAoBC;AAED,8CAIC;AA5BD,6DAA0D;AAE1D,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,6BAAa,CAAC,UAAU,EAAE,CAAC;IAE1C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB;IAC/B,MAAM,MAAM,GAAG,6BAAa,CAAC,SAAS,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export interface GenerateOptions {
|
|
2
|
-
commit?: boolean;
|
|
3
|
-
dryRun?: boolean;
|
|
4
|
-
amend?: boolean;
|
|
5
|
-
ai?: boolean;
|
|
6
|
-
interactive?: boolean;
|
|
7
|
-
lint?: boolean;
|
|
8
|
-
messageOnly?: boolean;
|
|
9
|
-
single?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare function generateCommand(options?: GenerateOptions): Promise<void>;
|
|
12
|
-
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,eAAoB,iBAsJlE"}
|
|
@@ -1,550 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateCommand = generateCommand;
|
|
4
|
-
const gitService_1 = require("../services/gitService");
|
|
5
|
-
const analyzerService_1 = require("../services/analyzerService");
|
|
6
|
-
const lintService_1 = require("../services/lintService");
|
|
7
|
-
const spellService_1 = require("../services/spellService");
|
|
8
|
-
const splitService_1 = require("../services/splitService");
|
|
9
|
-
const prompt_1 = require("../utils/prompt");
|
|
10
|
-
async function generateCommand(options = {}) {
|
|
11
|
-
try {
|
|
12
|
-
// Check if in a git repository
|
|
13
|
-
if (!gitService_1.GitService.isGitRepository()) {
|
|
14
|
-
console.error('Error: Not a git repository');
|
|
15
|
-
console.log('Please run this command inside a git repository.');
|
|
16
|
-
process.exit(1);
|
|
17
|
-
}
|
|
18
|
-
// Handle amend mode
|
|
19
|
-
if (options.amend) {
|
|
20
|
-
return await handleAmendMode(options);
|
|
21
|
-
}
|
|
22
|
-
// Get git status
|
|
23
|
-
const status = gitService_1.GitService.getStatus();
|
|
24
|
-
// Check if there are staged changes
|
|
25
|
-
if (!status.hasStagedChanges) {
|
|
26
|
-
console.error('Error: No staged changes found');
|
|
27
|
-
console.log('\nPlease stage your changes first using:');
|
|
28
|
-
console.log(' git add <files>');
|
|
29
|
-
console.log('\nOr stage all changes:');
|
|
30
|
-
console.log(' git add .');
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
// Check for split opportunity (warning only)
|
|
34
|
-
const diff = gitService_1.GitService.getDiff();
|
|
35
|
-
const splitSuggestion = splitService_1.SplitService.analyzeSplitOpportunity(status.staged, diff);
|
|
36
|
-
if (splitSuggestion?.shouldSplit && !options.messageOnly) {
|
|
37
|
-
displaySplitWarning(splitSuggestion);
|
|
38
|
-
}
|
|
39
|
-
// Generate suggestions (with optional AI enhancement)
|
|
40
|
-
let suggestions;
|
|
41
|
-
if (options.ai) {
|
|
42
|
-
console.log('\nUsing AI to enhance commit message...');
|
|
43
|
-
suggestions = await analyzerService_1.AnalyzerService.generateSuggestionsWithAI(true);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
suggestions = analyzerService_1.AnalyzerService.generateMultipleSuggestions();
|
|
47
|
-
}
|
|
48
|
-
const defaultMessage = suggestions[0].message;
|
|
49
|
-
// Check spelling in the description
|
|
50
|
-
const spellResult = spellService_1.SpellService.check(defaultMessage.description);
|
|
51
|
-
if (!spellResult.valid && !options.messageOnly) {
|
|
52
|
-
displaySpellWarning(spellResult);
|
|
53
|
-
}
|
|
54
|
-
// Message-only mode for scripts and hooks (silent, just output the message)
|
|
55
|
-
if (options.messageOnly) {
|
|
56
|
-
console.log(defaultMessage.full);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
// Dry run mode - show detailed preview without committing
|
|
60
|
-
if (options.dryRun) {
|
|
61
|
-
displayDryRun(status, suggestions, defaultMessage);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
// Show what files are being analyzed
|
|
65
|
-
console.log('\nAnalyzing staged changes...\n');
|
|
66
|
-
console.log('Staged files:');
|
|
67
|
-
for (const file of status.staged) {
|
|
68
|
-
const statusSymbol = getStatusSymbol(file.status);
|
|
69
|
-
console.log(` ${statusSymbol} ${file.path}`);
|
|
70
|
-
}
|
|
71
|
-
// Get diff statistics
|
|
72
|
-
const stats = gitService_1.GitService.getDiffStats();
|
|
73
|
-
console.log(`\n${stats.filesChanged} file(s) changed, ${stats.insertions} insertion(s)(+), ${stats.deletions} deletion(s)(-)\n`);
|
|
74
|
-
// Show suggestions
|
|
75
|
-
if (suggestions.length > 1 && !options.single) {
|
|
76
|
-
// Multiple suggestions mode
|
|
77
|
-
console.log('Suggested commit messages:');
|
|
78
|
-
console.log('ā'.repeat(50));
|
|
79
|
-
for (const suggestion of suggestions) {
|
|
80
|
-
console.log(`\n [${suggestion.id}] ${suggestion.label}`);
|
|
81
|
-
displayMessage(suggestion.message, ' ');
|
|
82
|
-
}
|
|
83
|
-
console.log('\n' + 'ā'.repeat(50));
|
|
84
|
-
// Handle commit based on options
|
|
85
|
-
if (options.commit) {
|
|
86
|
-
// Auto-commit with first suggestion
|
|
87
|
-
await commitWithMessage(defaultMessage.full, options);
|
|
88
|
-
}
|
|
89
|
-
else if (options.interactive !== false) {
|
|
90
|
-
// Interactive mode with selection
|
|
91
|
-
console.log('\nOptions:');
|
|
92
|
-
console.log(` [1-${suggestions.length}] Select a message`);
|
|
93
|
-
console.log(' [e] Edit and write your own');
|
|
94
|
-
console.log(' [n] Cancel\n');
|
|
95
|
-
const choice = await (0, prompt_1.prompt)('Your choice: ');
|
|
96
|
-
await handleMultipleChoice(choice, suggestions, options);
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
// Non-interactive mode
|
|
100
|
-
console.log('\nTo commit with the recommended message, run:');
|
|
101
|
-
console.log(` git commit -m "${escapeForShell(defaultMessage.full)}"`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
// Single suggestion mode
|
|
106
|
-
console.log('Suggested commit message:');
|
|
107
|
-
console.log('ā'.repeat(50));
|
|
108
|
-
displayMessage(defaultMessage, '');
|
|
109
|
-
console.log('ā'.repeat(50));
|
|
110
|
-
console.log('\nBreakdown:');
|
|
111
|
-
console.log(` Type: ${defaultMessage.type}`);
|
|
112
|
-
if (defaultMessage.scope) {
|
|
113
|
-
console.log(` Scope: ${defaultMessage.scope}`);
|
|
114
|
-
}
|
|
115
|
-
console.log(` Description: ${defaultMessage.description}`);
|
|
116
|
-
if (defaultMessage.body) {
|
|
117
|
-
console.log(' Body: (see above)');
|
|
118
|
-
}
|
|
119
|
-
// Handle commit based on options
|
|
120
|
-
if (options.commit) {
|
|
121
|
-
await commitWithMessage(defaultMessage.full, options);
|
|
122
|
-
}
|
|
123
|
-
else if (options.interactive !== false) {
|
|
124
|
-
// Interactive mode (default)
|
|
125
|
-
console.log('\nWhat would you like to do?');
|
|
126
|
-
console.log(' [c] Commit with this message');
|
|
127
|
-
console.log(' [e] Edit the message');
|
|
128
|
-
console.log(' [n] Cancel\n');
|
|
129
|
-
const choice = await (0, prompt_1.prompt)('Your choice (c/e/n): ');
|
|
130
|
-
await handleSingleChoice(choice, defaultMessage.full, options);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
// Non-interactive mode (just show the message)
|
|
134
|
-
console.log('\nTo commit with this message, run:');
|
|
135
|
-
console.log(` git commit -m "${escapeForShell(defaultMessage.full)}"`);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
if (error instanceof Error) {
|
|
141
|
-
console.error(`Error: ${error.message}`);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
console.error('An unexpected error occurred');
|
|
145
|
-
}
|
|
146
|
-
process.exit(1);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
function getStatusSymbol(status) {
|
|
150
|
-
switch (status) {
|
|
151
|
-
case 'A':
|
|
152
|
-
return '+';
|
|
153
|
-
case 'M':
|
|
154
|
-
return '~';
|
|
155
|
-
case 'D':
|
|
156
|
-
return '-';
|
|
157
|
-
case 'R':
|
|
158
|
-
return 'ā';
|
|
159
|
-
default:
|
|
160
|
-
return '?';
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
function displayMessage(message, indent) {
|
|
164
|
-
const lines = message.full.split('\n');
|
|
165
|
-
const subject = lines[0];
|
|
166
|
-
console.log(`${indent}${subject}`);
|
|
167
|
-
// If there's a body, display it with proper indentation
|
|
168
|
-
if (message.body) {
|
|
169
|
-
console.log('');
|
|
170
|
-
const bodyLines = message.body.split('\n');
|
|
171
|
-
for (const line of bodyLines) {
|
|
172
|
-
console.log(`${indent}${line}`);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
function escapeForShell(message) {
|
|
177
|
-
// For multi-line messages, suggest using -F flag
|
|
178
|
-
if (message.includes('\n')) {
|
|
179
|
-
return message.split('\n')[0] + '" (use -F for full body)';
|
|
180
|
-
}
|
|
181
|
-
return message.replace(/"/g, '\\"');
|
|
182
|
-
}
|
|
183
|
-
async function commitWithMessage(message, options = {}) {
|
|
184
|
-
try {
|
|
185
|
-
// Run lint check unless disabled
|
|
186
|
-
if (options.lint !== false) {
|
|
187
|
-
const parsedMessage = parseMessageForLint(message);
|
|
188
|
-
const lintResult = lintService_1.LintService.lint(parsedMessage);
|
|
189
|
-
if (!lintResult.valid) {
|
|
190
|
-
displayLintViolations(lintResult);
|
|
191
|
-
if (lintService_1.LintService.shouldBlockCommit(lintResult)) {
|
|
192
|
-
console.error('\nCommit blocked due to lint errors.');
|
|
193
|
-
console.log('Use --no-lint to skip linting.\n');
|
|
194
|
-
process.exit(1);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
gitService_1.GitService.commit(message);
|
|
199
|
-
console.log('\nā Changes committed successfully!');
|
|
200
|
-
}
|
|
201
|
-
catch (err) {
|
|
202
|
-
console.error(`\nFailed to commit: ${err instanceof Error ? err.message : err}`);
|
|
203
|
-
process.exit(1);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
async function amendWithMessage(message, options = {}) {
|
|
207
|
-
try {
|
|
208
|
-
// Run lint check unless disabled
|
|
209
|
-
if (options.lint !== false) {
|
|
210
|
-
const parsedMessage = parseMessageForLint(message);
|
|
211
|
-
const lintResult = lintService_1.LintService.lint(parsedMessage);
|
|
212
|
-
if (!lintResult.valid) {
|
|
213
|
-
displayLintViolations(lintResult);
|
|
214
|
-
if (lintService_1.LintService.shouldBlockCommit(lintResult)) {
|
|
215
|
-
console.error('\nAmend blocked due to lint errors.');
|
|
216
|
-
console.log('Use --no-lint to skip linting.\n');
|
|
217
|
-
process.exit(1);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
gitService_1.GitService.amendCommit(message);
|
|
222
|
-
console.log('\nā Commit amended successfully!');
|
|
223
|
-
}
|
|
224
|
-
catch (err) {
|
|
225
|
-
console.error(`\nFailed to amend: ${err instanceof Error ? err.message : err}`);
|
|
226
|
-
process.exit(1);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
function parseMessageForLint(message) {
|
|
230
|
-
const lines = message.split('\n');
|
|
231
|
-
const subject = lines[0];
|
|
232
|
-
const body = lines.slice(2).join('\n').trim() || undefined;
|
|
233
|
-
// Parse the subject line: "type(scope): description" or "emoji type(scope): description"
|
|
234
|
-
const match = subject.match(/^(?:[\p{Emoji}\s]*)?(\w+)(?:\(([^)]+)\))?!?:\s*(.+)$/u);
|
|
235
|
-
if (match) {
|
|
236
|
-
return {
|
|
237
|
-
type: match[1],
|
|
238
|
-
scope: match[2] || undefined,
|
|
239
|
-
description: match[3],
|
|
240
|
-
body,
|
|
241
|
-
full: message,
|
|
242
|
-
isBreaking: subject.includes('!:'),
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
// Fallback for non-conventional messages
|
|
246
|
-
return {
|
|
247
|
-
type: 'chore',
|
|
248
|
-
description: subject,
|
|
249
|
-
body,
|
|
250
|
-
full: message,
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
async function handleSingleChoice(choice, message, options) {
|
|
254
|
-
switch (choice.toLowerCase()) {
|
|
255
|
-
case 'c':
|
|
256
|
-
case 'commit':
|
|
257
|
-
await commitWithMessage(message, options);
|
|
258
|
-
break;
|
|
259
|
-
case 'e':
|
|
260
|
-
case 'edit':
|
|
261
|
-
const editedMessage = await (0, prompt_1.prompt)('\nEnter your commit message: ');
|
|
262
|
-
if (editedMessage) {
|
|
263
|
-
await commitWithMessage(editedMessage, options);
|
|
264
|
-
}
|
|
265
|
-
else {
|
|
266
|
-
console.log('\nCommit cancelled - empty message provided.');
|
|
267
|
-
}
|
|
268
|
-
break;
|
|
269
|
-
case 'n':
|
|
270
|
-
case 'no':
|
|
271
|
-
case 'cancel':
|
|
272
|
-
console.log('\nCommit cancelled.');
|
|
273
|
-
break;
|
|
274
|
-
default:
|
|
275
|
-
console.log('\nNo action taken. To commit manually, run:');
|
|
276
|
-
console.log(` git commit -m "${escapeForShell(message)}"`);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
async function handleMultipleChoice(choice, suggestions, options) {
|
|
280
|
-
const choiceLower = choice.toLowerCase();
|
|
281
|
-
// Check if it's a number selection
|
|
282
|
-
const num = parseInt(choice, 10);
|
|
283
|
-
if (!isNaN(num) && num >= 1 && num <= suggestions.length) {
|
|
284
|
-
const selected = suggestions[num - 1];
|
|
285
|
-
console.log(`\nSelected: ${selected.label}`);
|
|
286
|
-
await commitWithMessage(selected.message.full, options);
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
// Handle other choices
|
|
290
|
-
switch (choiceLower) {
|
|
291
|
-
case 'e':
|
|
292
|
-
case 'edit':
|
|
293
|
-
const editedMessage = await (0, prompt_1.prompt)('\nEnter your commit message: ');
|
|
294
|
-
if (editedMessage) {
|
|
295
|
-
await commitWithMessage(editedMessage, options);
|
|
296
|
-
}
|
|
297
|
-
else {
|
|
298
|
-
console.log('\nCommit cancelled - empty message provided.');
|
|
299
|
-
}
|
|
300
|
-
break;
|
|
301
|
-
case 'n':
|
|
302
|
-
case 'no':
|
|
303
|
-
case 'cancel':
|
|
304
|
-
console.log('\nCommit cancelled.');
|
|
305
|
-
break;
|
|
306
|
-
default:
|
|
307
|
-
console.log('\nInvalid choice. No action taken.');
|
|
308
|
-
console.log('\nTo commit with the recommended message, run:');
|
|
309
|
-
console.log(` git commit -m "${escapeForShell(suggestions[0].message.full)}"`);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
function displayDryRun(status, suggestions, defaultMessage) {
|
|
313
|
-
const stats = gitService_1.GitService.getDiffStats();
|
|
314
|
-
console.log('\n' + 'ā'.repeat(60));
|
|
315
|
-
console.log(' DRY RUN - No changes will be made');
|
|
316
|
-
console.log('ā'.repeat(60));
|
|
317
|
-
// Show files that would be committed
|
|
318
|
-
console.log('\nš Files to be committed:');
|
|
319
|
-
console.log('ā'.repeat(40));
|
|
320
|
-
for (const file of status.staged) {
|
|
321
|
-
const statusSymbol = getStatusSymbol(file.status);
|
|
322
|
-
const statusLabel = getStatusLabel(file.status);
|
|
323
|
-
console.log(` ${statusSymbol} ${file.path} (${statusLabel})`);
|
|
324
|
-
}
|
|
325
|
-
console.log(`\n Total: ${stats.filesChanged} file(s), +${stats.insertions}/-${stats.deletions} lines`);
|
|
326
|
-
// Show commit message details
|
|
327
|
-
console.log('\nš Commit message:');
|
|
328
|
-
console.log('ā'.repeat(40));
|
|
329
|
-
const lines = defaultMessage.full.split('\n');
|
|
330
|
-
for (const line of lines) {
|
|
331
|
-
console.log(` ${line}`);
|
|
332
|
-
}
|
|
333
|
-
// Show message breakdown
|
|
334
|
-
console.log('\nš Breakdown:');
|
|
335
|
-
console.log('ā'.repeat(40));
|
|
336
|
-
console.log(` Type: ${defaultMessage.type}`);
|
|
337
|
-
if (defaultMessage.scope) {
|
|
338
|
-
console.log(` Scope: ${defaultMessage.scope}`);
|
|
339
|
-
}
|
|
340
|
-
console.log(` Description: ${defaultMessage.description}`);
|
|
341
|
-
if (defaultMessage.isBreaking) {
|
|
342
|
-
console.log(` Breaking: Yes`);
|
|
343
|
-
}
|
|
344
|
-
if (defaultMessage.body) {
|
|
345
|
-
console.log(` Body: Yes (multi-line)`);
|
|
346
|
-
}
|
|
347
|
-
// Show alternative suggestions if available
|
|
348
|
-
if (suggestions.length > 1) {
|
|
349
|
-
console.log('\nš Alternative suggestions available:');
|
|
350
|
-
console.log('ā'.repeat(40));
|
|
351
|
-
for (let i = 1; i < suggestions.length; i++) {
|
|
352
|
-
const s = suggestions[i];
|
|
353
|
-
const subjectLine = s.message.full.split('\n')[0];
|
|
354
|
-
console.log(` [${s.id}] ${s.label}: ${subjectLine}`);
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
// Show the command that would be executed
|
|
358
|
-
console.log('\nā” Command that would be executed:');
|
|
359
|
-
console.log('ā'.repeat(40));
|
|
360
|
-
if (defaultMessage.full.includes('\n')) {
|
|
361
|
-
console.log(' git commit -m "...(multi-line message)"');
|
|
362
|
-
console.log('\n Message content:');
|
|
363
|
-
console.log(' ā' + 'ā'.repeat(38));
|
|
364
|
-
for (const line of defaultMessage.full.split('\n')) {
|
|
365
|
-
console.log(` ā ${line}`);
|
|
366
|
-
}
|
|
367
|
-
console.log(' ā' + 'ā'.repeat(38));
|
|
368
|
-
}
|
|
369
|
-
else {
|
|
370
|
-
console.log(` git commit -m "${escapeForShell(defaultMessage.full)}"`);
|
|
371
|
-
}
|
|
372
|
-
console.log('\n' + 'ā'.repeat(60));
|
|
373
|
-
console.log(' To commit, run: commit-genie -c');
|
|
374
|
-
console.log(' Or interactively: commit-genie');
|
|
375
|
-
console.log('ā'.repeat(60) + '\n');
|
|
376
|
-
}
|
|
377
|
-
function getStatusLabel(status) {
|
|
378
|
-
switch (status) {
|
|
379
|
-
case 'A':
|
|
380
|
-
return 'added';
|
|
381
|
-
case 'M':
|
|
382
|
-
return 'modified';
|
|
383
|
-
case 'D':
|
|
384
|
-
return 'deleted';
|
|
385
|
-
case 'R':
|
|
386
|
-
return 'renamed';
|
|
387
|
-
default:
|
|
388
|
-
return 'unknown';
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
function displaySplitWarning(suggestion) {
|
|
392
|
-
console.log('\nā Split Suggestion');
|
|
393
|
-
console.log('ā'.repeat(50));
|
|
394
|
-
console.log(`Reason: ${suggestion.reason}`);
|
|
395
|
-
console.log('\nSuggested commits:');
|
|
396
|
-
for (let i = 0; i < suggestion.groups.length; i++) {
|
|
397
|
-
const group = suggestion.groups[i];
|
|
398
|
-
const fileList = group.files.slice(0, 3).map(f => f.path).join(', ');
|
|
399
|
-
const moreFiles = group.files.length > 3 ? ` +${group.files.length - 3} more` : '';
|
|
400
|
-
console.log(`\n ${i + 1}. ${group.suggestedMessage}`);
|
|
401
|
-
console.log(` Files: ${fileList}${moreFiles}`);
|
|
402
|
-
}
|
|
403
|
-
console.log('\n' + 'ā'.repeat(50));
|
|
404
|
-
console.log('You can proceed with a combined commit or split manually.\n');
|
|
405
|
-
}
|
|
406
|
-
function displaySpellWarning(result) {
|
|
407
|
-
console.log('\nā Spelling Issues');
|
|
408
|
-
console.log('ā'.repeat(40));
|
|
409
|
-
for (const error of result.errors) {
|
|
410
|
-
const suggestionText = error.suggestions.length > 0
|
|
411
|
-
? ` (suggestions: ${error.suggestions.join(', ')})`
|
|
412
|
-
: '';
|
|
413
|
-
console.log(` - "${error.word}"${suggestionText}`);
|
|
414
|
-
}
|
|
415
|
-
console.log('ā'.repeat(40) + '\n');
|
|
416
|
-
}
|
|
417
|
-
function displayLintViolations(result) {
|
|
418
|
-
console.log('\nā Lint Issues');
|
|
419
|
-
console.log('ā'.repeat(50));
|
|
420
|
-
for (const violation of result.violations) {
|
|
421
|
-
const icon = violation.severity === 'error' ? 'ā' : 'ā ';
|
|
422
|
-
console.log(` ${icon} [${violation.ruleId}] ${violation.message}`);
|
|
423
|
-
if (violation.suggestion) {
|
|
424
|
-
console.log(` ā ${violation.suggestion}`);
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
console.log('ā'.repeat(50));
|
|
428
|
-
}
|
|
429
|
-
async function handleAmendMode(options) {
|
|
430
|
-
// Check if there are commits to amend
|
|
431
|
-
if (!gitService_1.GitService.hasCommits()) {
|
|
432
|
-
console.error('Error: No commits to amend');
|
|
433
|
-
process.exit(1);
|
|
434
|
-
}
|
|
435
|
-
const lastMessage = gitService_1.GitService.getLastCommitMessage();
|
|
436
|
-
if (!lastMessage) {
|
|
437
|
-
console.error('Error: Could not retrieve last commit message');
|
|
438
|
-
process.exit(1);
|
|
439
|
-
}
|
|
440
|
-
// Get last commit's files for analysis
|
|
441
|
-
const lastCommitFiles = gitService_1.GitService.getLastCommitFiles();
|
|
442
|
-
// Also check for currently staged changes
|
|
443
|
-
const status = gitService_1.GitService.getStatus();
|
|
444
|
-
const hasNewStagedChanges = status.hasStagedChanges;
|
|
445
|
-
console.log('\nā'.repeat(50));
|
|
446
|
-
console.log(' AMEND MODE');
|
|
447
|
-
console.log('ā'.repeat(50));
|
|
448
|
-
// Show current message
|
|
449
|
-
console.log('\nCurrent commit message:');
|
|
450
|
-
console.log('ā'.repeat(40));
|
|
451
|
-
const currentLines = lastMessage.split('\n');
|
|
452
|
-
for (const line of currentLines) {
|
|
453
|
-
console.log(` ${line}`);
|
|
454
|
-
}
|
|
455
|
-
console.log('ā'.repeat(40));
|
|
456
|
-
// Show files from last commit
|
|
457
|
-
console.log('\nFiles in last commit:');
|
|
458
|
-
for (const file of lastCommitFiles) {
|
|
459
|
-
const statusSymbol = getStatusSymbol(file.status);
|
|
460
|
-
console.log(` ${statusSymbol} ${file.path}`);
|
|
461
|
-
}
|
|
462
|
-
// Show newly staged changes if any
|
|
463
|
-
if (hasNewStagedChanges) {
|
|
464
|
-
console.log('\nNewly staged changes (will be included):');
|
|
465
|
-
for (const file of status.staged) {
|
|
466
|
-
const statusSymbol = getStatusSymbol(file.status);
|
|
467
|
-
console.log(` ${statusSymbol} ${file.path}`);
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
// Generate new suggestions based on the changes
|
|
471
|
-
// Use last commit's diff for analysis
|
|
472
|
-
let suggestions;
|
|
473
|
-
if (options.ai) {
|
|
474
|
-
console.log('\nUsing AI to enhance amended commit message...');
|
|
475
|
-
suggestions = await analyzerService_1.AnalyzerService.generateSuggestionsWithAI(true);
|
|
476
|
-
}
|
|
477
|
-
else {
|
|
478
|
-
suggestions = analyzerService_1.AnalyzerService.generateMultipleSuggestions();
|
|
479
|
-
}
|
|
480
|
-
const defaultMessage = suggestions[0].message;
|
|
481
|
-
// Check spelling
|
|
482
|
-
const spellResult = spellService_1.SpellService.check(defaultMessage.description);
|
|
483
|
-
if (!spellResult.valid) {
|
|
484
|
-
displaySpellWarning(spellResult);
|
|
485
|
-
}
|
|
486
|
-
// Dry run mode
|
|
487
|
-
if (options.dryRun) {
|
|
488
|
-
console.log('\nš Suggested new message:');
|
|
489
|
-
console.log('ā'.repeat(40));
|
|
490
|
-
displayMessage(defaultMessage, ' ');
|
|
491
|
-
console.log('ā'.repeat(40));
|
|
492
|
-
console.log('\nā'.repeat(50));
|
|
493
|
-
console.log(' DRY RUN - No changes made');
|
|
494
|
-
console.log(' To amend, run: commit-genie --amend');
|
|
495
|
-
console.log('ā'.repeat(50) + '\n');
|
|
496
|
-
return;
|
|
497
|
-
}
|
|
498
|
-
// Show suggestions
|
|
499
|
-
console.log('\nSuggested new message:');
|
|
500
|
-
console.log('ā'.repeat(40));
|
|
501
|
-
displayMessage(defaultMessage, ' ');
|
|
502
|
-
console.log('ā'.repeat(40));
|
|
503
|
-
// Handle based on options
|
|
504
|
-
if (options.commit) {
|
|
505
|
-
await amendWithMessage(defaultMessage.full, options);
|
|
506
|
-
}
|
|
507
|
-
else if (options.interactive !== false) {
|
|
508
|
-
console.log('\nWhat would you like to do?');
|
|
509
|
-
console.log(' [a] Amend with this message');
|
|
510
|
-
console.log(' [e] Edit the message');
|
|
511
|
-
console.log(' [k] Keep original message');
|
|
512
|
-
console.log(' [n] Cancel\n');
|
|
513
|
-
const choice = await (0, prompt_1.prompt)('Your choice (a/e/k/n): ');
|
|
514
|
-
await handleAmendChoice(choice, defaultMessage.full, lastMessage, options);
|
|
515
|
-
}
|
|
516
|
-
else {
|
|
517
|
-
console.log('\nTo amend with this message, run:');
|
|
518
|
-
console.log(' git commit --amend -m "' + escapeForShell(defaultMessage.full) + '"');
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
async function handleAmendChoice(choice, newMessage, originalMessage, options) {
|
|
522
|
-
switch (choice.toLowerCase()) {
|
|
523
|
-
case 'a':
|
|
524
|
-
case 'amend':
|
|
525
|
-
await amendWithMessage(newMessage, options);
|
|
526
|
-
break;
|
|
527
|
-
case 'e':
|
|
528
|
-
case 'edit':
|
|
529
|
-
const editedMessage = await (0, prompt_1.prompt)('\nEnter your commit message: ');
|
|
530
|
-
if (editedMessage) {
|
|
531
|
-
await amendWithMessage(editedMessage, options);
|
|
532
|
-
}
|
|
533
|
-
else {
|
|
534
|
-
console.log('\nAmend cancelled - empty message provided.');
|
|
535
|
-
}
|
|
536
|
-
break;
|
|
537
|
-
case 'k':
|
|
538
|
-
case 'keep':
|
|
539
|
-
console.log('\nKept original message. No changes made.');
|
|
540
|
-
break;
|
|
541
|
-
case 'n':
|
|
542
|
-
case 'no':
|
|
543
|
-
case 'cancel':
|
|
544
|
-
console.log('\nAmend cancelled.');
|
|
545
|
-
break;
|
|
546
|
-
default:
|
|
547
|
-
console.log('\nNo action taken.');
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
//# sourceMappingURL=generate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":";;AAoBA,0CAsJC;AA1KD,uDAAoD;AACpD,iEAA8D;AAC9D,yDAAsD;AACtD,2DAAwD;AACxD,2DAAwD;AAExD,4CAAyC;AAclC,KAAK,UAAU,eAAe,CAAC,UAA2B,EAAE;IACjE,IAAI,CAAC;QACH,+BAA+B;QAC/B,IAAI,CAAC,uBAAU,CAAC,eAAe,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAG,uBAAU,CAAC,SAAS,EAAE,CAAC;QAEtC,oCAAoC;QACpC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,6CAA6C;QAC7C,MAAM,IAAI,GAAG,uBAAU,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,2BAAY,CAAC,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClF,IAAI,eAAe,EAAE,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzD,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACvC,CAAC;QAED,sDAAsD;QACtD,IAAI,WAAgC,CAAC;QACrC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACvD,WAAW,GAAG,MAAM,iCAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,iCAAe,CAAC,2BAA2B,EAAE,CAAC;QAC9D,CAAC;QACD,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE9C,oCAAoC;QACpC,MAAM,WAAW,GAAG,2BAAY,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC/C,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAED,4EAA4E;QAC5E,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,qCAAqC;QACrC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,sBAAsB;QACtB,MAAM,KAAK,GAAG,uBAAU,CAAC,YAAY,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,YAAY,qBAAqB,KAAK,CAAC,UAAU,qBAAqB,KAAK,CAAC,SAAS,mBAAmB,CACpH,CAAC;QAEF,mBAAmB;QACnB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9C,4BAA4B;YAC5B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAE5B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC1D,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAEnC,iCAAiC;YACjC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,oCAAoC;gBACpC,MAAM,iBAAiB,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBACzC,kCAAkC;gBAClC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,WAAW,CAAC,MAAM,oBAAoB,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAE9B,MAAM,MAAM,GAAG,MAAM,IAAA,eAAM,EAAC,eAAe,CAAC,CAAC;gBAC7C,MAAM,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,uBAAuB;gBACvB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,oBAAoB,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,cAAc,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAE5B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,YAAY,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5D,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACrC,CAAC;YAED,iCAAiC;YACjC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,iBAAiB,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBACzC,6BAA6B;gBAC7B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAE9B,MAAM,MAAM,GAAG,MAAM,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAC;gBACrD,MAAM,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,+CAA+C;gBAC/C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,oBAAoB,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAwC,EAAE,MAAc;IAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEzB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC;IAEnC,wDAAwD;IACxD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,iDAAiD;IACjD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC;IAC7D,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,UAA2B,EAAE;IAC7E,IAAI,CAAC;QACH,iCAAiC;QACjC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,yBAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEnD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,qBAAqB,CAAC,UAAU,CAAC,CAAC;gBAElC,IAAI,yBAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9C,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;oBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,UAA2B,EAAE;IAC5E,IAAI,CAAC;QACH,iCAAiC;QACjC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,yBAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEnD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,qBAAqB,CAAC,UAAU,CAAC,CAAC;gBAElC,IAAI,yBAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9C,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;oBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IAE3D,yFAAyF;IACzF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAErF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAQ;YACrB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;YAC5B,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACrB,IAAI;YACJ,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;SACnC,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,OAAO;QACL,IAAI,EAAE,OAAc;QACpB,WAAW,EAAE,OAAO;QACpB,IAAI;QACJ,IAAI,EAAE,OAAO;KACd,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,OAAe,EAAE,OAAwB;IACzF,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7B,KAAK,GAAG,CAAC;QACT,KAAK,QAAQ;YACX,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,GAAG,CAAC;QACT,KAAK,MAAM;YACT,MAAM,aAAa,GAAG,MAAM,IAAA,eAAM,EAAC,+BAA+B,CAAC,CAAC;YACpE,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM;QAER,KAAK,GAAG,CAAC;QACT,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,MAAM;QAER;YACE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,oBAAoB,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAgC,EAAE,OAAwB;IAC5G,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEzC,mCAAmC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,MAAM,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,GAAG,CAAC;QACT,KAAK,MAAM;YACT,MAAM,aAAa,GAAG,MAAM,IAAA,eAAM,EAAC,+BAA+B,CAAC,CAAC;YACpE,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM;QAER,KAAK,GAAG,CAAC;QACT,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,MAAM;QAER;YACE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,oBAAoB,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,MAAsD,EACtD,WAAgC,EAChC,cAAwH;IAExH,MAAM,KAAK,GAAG,uBAAU,CAAC,YAAY,EAAE,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,qCAAqC;IACrC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,YAAY,cAAc,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,QAAQ,CAAC,CAAC;IAExG,8BAA8B;IAC9B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,yBAAyB;IACzB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;IAED,4CAA4C;IAC5C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,oBAAoB,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,UAAU,CAAC;QACpB,KAAK,GAAG;YACN,OAAO,SAAS,CAAC;QACnB,KAAK,GAAG;YACN,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA2B;IACtD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,GAAG,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAwB;IACnD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YACjD,CAAC,CAAC,kBAAkB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACnD,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAkB;IAC/C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAwB;IACrD,sCAAsC;IACtC,IAAI,CAAC,uBAAU,CAAC,UAAU,EAAE,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,uBAAU,CAAC,oBAAoB,EAAE,CAAC;IACtD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,MAAM,eAAe,GAAG,uBAAU,CAAC,kBAAkB,EAAE,CAAC;IAExD,0CAA0C;IAC1C,MAAM,MAAM,GAAG,uBAAU,CAAC,SAAS,EAAE,CAAC;IACtC,MAAM,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAEpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,8BAA8B;IAC9B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,mCAAmC;IACnC,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,sCAAsC;IACtC,IAAI,WAAgC,CAAC;IACrC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,WAAW,GAAG,MAAM,iCAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,iCAAe,CAAC,2BAA2B,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAE9C,iBAAiB;IACjB,MAAM,WAAW,GAAG,2BAAY,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACnE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACvB,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,eAAe;IACf,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,0BAA0B;IAC1B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAA,eAAM,EAAC,yBAAyB,CAAC,CAAC;QACvD,MAAM,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAAc,EACd,UAAkB,EAClB,eAAuB,EACvB,OAAwB;IAExB,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7B,KAAK,GAAG,CAAC;QACT,KAAK,OAAO;YACV,MAAM,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM;QAER,KAAK,GAAG,CAAC;QACT,KAAK,MAAM;YACT,MAAM,aAAa,GAAG,MAAM,IAAA,eAAM,EAAC,+BAA+B,CAAC,CAAC;YACpE,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM;QAER,KAAK,GAAG,CAAC;QACT,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YACzD,MAAM;QAER,KAAK,GAAG,CAAC;QACT,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,MAAM;QAER;YACE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate.test.d.ts","sourceRoot":"","sources":["../../src/commands/generate.test.ts"],"names":[],"mappings":""}
|