@specforge/mcp 2.5.0 → 2.6.0
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 +45 -45
- package/bin/specforge-mcp +5 -0
- package/dist/cli/commands/blocked.js +6 -6
- package/dist/cli/commands/blocked.js.map +1 -1
- package/dist/cli/commands/blueprints.js +1 -1
- package/dist/cli/commands/blueprints.js.map +1 -1
- package/dist/cli/commands/configure.js +6 -6
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/debug/call.js +3 -3
- package/dist/cli/commands/debug/call.js.map +1 -1
- package/dist/cli/commands/debug/register.js +11 -11
- package/dist/cli/commands/debug/test.js +1 -1
- package/dist/cli/commands/debug/test.js.map +1 -1
- package/dist/cli/commands/debug/tools.js +1 -1
- package/dist/cli/commands/debug/tools.js.map +1 -1
- package/dist/cli/commands/docs/content/api.js +3 -3
- package/dist/cli/commands/docs/content/examples.js +12 -12
- package/dist/cli/commands/docs/content/workflow.js +2 -2
- package/dist/cli/commands/docs/display.js +4 -4
- package/dist/cli/commands/docs/display.js.map +1 -1
- package/dist/cli/commands/docs/docs.js +3 -3
- package/dist/cli/commands/docs/docs.js.map +1 -1
- package/dist/cli/commands/docs/tool-docs.js +2 -2
- package/dist/cli/commands/docs/tool-docs.js.map +1 -1
- package/dist/cli/commands/doctor.js +2 -2
- package/dist/cli/commands/doctor.types.d.ts +7 -7
- package/dist/cli/commands/doctor.types.js +7 -7
- package/dist/cli/commands/doctor.types.js.map +1 -1
- package/dist/cli/commands/feedback.js +5 -5
- package/dist/cli/commands/index.d.ts +2 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.js +8 -8
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/invitations.d.ts +31 -0
- package/dist/cli/commands/invitations.d.ts.map +1 -0
- package/dist/cli/commands/invitations.js +256 -0
- package/dist/cli/commands/invitations.js.map +1 -0
- package/dist/cli/commands/login.js +6 -6
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/members.d.ts +55 -0
- package/dist/cli/commands/members.d.ts.map +1 -0
- package/dist/cli/commands/members.js +308 -0
- package/dist/cli/commands/members.js.map +1 -0
- package/dist/cli/commands/next.js +10 -10
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/projects.js +6 -6
- package/dist/cli/commands/projects.js.map +1 -1
- package/dist/cli/commands/review/review.js +8 -8
- package/dist/cli/commands/review/review.js.map +1 -1
- package/dist/cli/commands/scaffold/scaffold.js +2 -2
- package/dist/cli/commands/scaffold/scaffold.js.map +1 -1
- package/dist/cli/commands/session/display.js +1 -1
- package/dist/cli/commands/session/display.js.map +1 -1
- package/dist/cli/commands/session/end.js +6 -6
- package/dist/cli/commands/session/end.js.map +1 -1
- package/dist/cli/commands/session/register.js +12 -12
- package/dist/cli/commands/session/start.js +6 -6
- package/dist/cli/commands/session/start.js.map +1 -1
- package/dist/cli/commands/session/status.js +1 -1
- package/dist/cli/commands/session/status.js.map +1 -1
- package/dist/cli/commands/specs.js +9 -9
- package/dist/cli/commands/specs.js.map +1 -1
- package/dist/cli/commands/status.js +11 -11
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/switch.js +10 -10
- package/dist/cli/commands/switch.js.map +1 -1
- package/dist/cli/commands/ticket/command.js +5 -5
- package/dist/cli/commands/ticket/command.js.map +1 -1
- package/dist/cli/commands/ticket/register.js +4 -4
- package/dist/cli/commands/ticket/resolver.js +1 -1
- package/dist/cli/commands/ticket/resolver.js.map +1 -1
- package/dist/cli/commands/tickets.js +11 -11
- package/dist/cli/commands/tickets.js.map +1 -1
- package/dist/cli/config/loader.d.ts +1 -1
- package/dist/cli/config/loader.js +1 -1
- package/dist/cli/config/types.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +10 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/middleware/auth-guard.js +1 -1
- package/dist/cli/middleware/auth-guard.js.map +1 -1
- package/dist/cli/middleware/error-handler.js +1 -1
- package/dist/cli/middleware/error-handler.js.map +1 -1
- package/dist/cli/ui/dashboard.js +1 -1
- package/dist/cli/ui/dashboard.js.map +1 -1
- package/dist/cli/ui/output.d.ts +2 -2
- package/dist/cli/ui/output.js +2 -2
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/core/workflow-guide.js +1 -1
- package/dist/tools/core/workflow-guide.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +136 -0
- package/dist/tools/index.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invitations Command
|
|
3
|
+
*
|
|
4
|
+
* Manage project invitations - view received, accept, decline.
|
|
5
|
+
*/
|
|
6
|
+
import ora from 'ora';
|
|
7
|
+
import Table from 'cli-table3';
|
|
8
|
+
import { resolveConfig } from '../config/index.js';
|
|
9
|
+
import { withErrorHandler, CliError, NetworkError } from '../middleware/error-handler.js';
|
|
10
|
+
import { printBlank, printHeader } from '../ui/output.js';
|
|
11
|
+
import { colors } from '../ui/colors.js';
|
|
12
|
+
import { formatRelativeTime } from '../ui/time.js';
|
|
13
|
+
import { ApiClient } from '../../client/api-client.js';
|
|
14
|
+
/**
|
|
15
|
+
* Get role badge with color
|
|
16
|
+
*/
|
|
17
|
+
function getRoleBadge(role) {
|
|
18
|
+
switch (role) {
|
|
19
|
+
case 'owner':
|
|
20
|
+
return colors.warning('owner');
|
|
21
|
+
case 'editor':
|
|
22
|
+
return colors.primary('editor');
|
|
23
|
+
case 'viewer':
|
|
24
|
+
return colors.muted('viewer');
|
|
25
|
+
default:
|
|
26
|
+
return role;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Display received invitations as table
|
|
31
|
+
*/
|
|
32
|
+
function displayReceivedInvitations(invitations) {
|
|
33
|
+
if (invitations.length === 0) {
|
|
34
|
+
console.log(colors.muted('No pending invitations.'));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
printHeader('Received Invitations');
|
|
38
|
+
printBlank();
|
|
39
|
+
const table = new Table({
|
|
40
|
+
head: [
|
|
41
|
+
colors.muted('PROJECT'),
|
|
42
|
+
colors.muted('ROLE'),
|
|
43
|
+
colors.muted('INVITED'),
|
|
44
|
+
colors.muted('ID'),
|
|
45
|
+
],
|
|
46
|
+
style: { head: [], border: [] },
|
|
47
|
+
chars: {
|
|
48
|
+
'top': '', 'top-mid': '', 'top-left': '', 'top-right': '',
|
|
49
|
+
'bottom': '', 'bottom-mid': '', 'bottom-left': '', 'bottom-right': '',
|
|
50
|
+
'left': '', 'left-mid': '', 'mid': '', 'mid-mid': '',
|
|
51
|
+
'right': '', 'right-mid': '', 'middle': ' ',
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
for (const inv of invitations) {
|
|
55
|
+
table.push([
|
|
56
|
+
inv.projectName || inv.projectId,
|
|
57
|
+
getRoleBadge(inv.role),
|
|
58
|
+
formatRelativeTime(inv.invitedAt),
|
|
59
|
+
colors.muted(inv.id.substring(0, 12) + '...'),
|
|
60
|
+
]);
|
|
61
|
+
}
|
|
62
|
+
console.log(table.toString());
|
|
63
|
+
printBlank();
|
|
64
|
+
console.log(colors.muted('Accept: specforge invitations accept <id>'));
|
|
65
|
+
console.log(colors.muted('Decline: specforge invitations decline <id>'));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Display sent invitations as table
|
|
69
|
+
*/
|
|
70
|
+
function displaySentInvitations(invitations) {
|
|
71
|
+
if (invitations.length === 0) {
|
|
72
|
+
console.log(colors.muted('No sent invitations.'));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
printBlank();
|
|
76
|
+
printHeader('Sent Invitations');
|
|
77
|
+
printBlank();
|
|
78
|
+
const table = new Table({
|
|
79
|
+
head: [
|
|
80
|
+
colors.muted('EMAIL'),
|
|
81
|
+
colors.muted('PROJECT'),
|
|
82
|
+
colors.muted('ROLE'),
|
|
83
|
+
colors.muted('STATUS'),
|
|
84
|
+
colors.muted('SENT'),
|
|
85
|
+
],
|
|
86
|
+
style: { head: [], border: [] },
|
|
87
|
+
chars: {
|
|
88
|
+
'top': '', 'top-mid': '', 'top-left': '', 'top-right': '',
|
|
89
|
+
'bottom': '', 'bottom-mid': '', 'bottom-left': '', 'bottom-right': '',
|
|
90
|
+
'left': '', 'left-mid': '', 'mid': '', 'mid-mid': '',
|
|
91
|
+
'right': '', 'right-mid': '', 'middle': ' ',
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
for (const inv of invitations) {
|
|
95
|
+
let statusBadge;
|
|
96
|
+
switch (inv.status) {
|
|
97
|
+
case 'pending':
|
|
98
|
+
statusBadge = colors.warning('pending');
|
|
99
|
+
break;
|
|
100
|
+
case 'accepted':
|
|
101
|
+
statusBadge = colors.success('accepted');
|
|
102
|
+
break;
|
|
103
|
+
case 'expired':
|
|
104
|
+
statusBadge = colors.error('expired');
|
|
105
|
+
break;
|
|
106
|
+
case 'cancelled':
|
|
107
|
+
statusBadge = colors.muted('cancelled');
|
|
108
|
+
break;
|
|
109
|
+
default:
|
|
110
|
+
statusBadge = inv.status;
|
|
111
|
+
}
|
|
112
|
+
table.push([
|
|
113
|
+
inv.email,
|
|
114
|
+
inv.projectName || inv.projectId.substring(0, 12) + '...',
|
|
115
|
+
getRoleBadge(inv.role),
|
|
116
|
+
statusBadge,
|
|
117
|
+
formatRelativeTime(inv.createdAt),
|
|
118
|
+
]);
|
|
119
|
+
}
|
|
120
|
+
console.log(table.toString());
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* List invitations action handler
|
|
124
|
+
*/
|
|
125
|
+
export async function invitationsListAction(options) {
|
|
126
|
+
const config = resolveConfig();
|
|
127
|
+
if (!config.apiKey) {
|
|
128
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
129
|
+
}
|
|
130
|
+
const spinner = ora({
|
|
131
|
+
text: 'Fetching invitations...',
|
|
132
|
+
color: 'cyan',
|
|
133
|
+
}).start();
|
|
134
|
+
try {
|
|
135
|
+
const client = new ApiClient({
|
|
136
|
+
apiKey: config.apiKey,
|
|
137
|
+
apiUrl: config.apiUrl,
|
|
138
|
+
debug: config.debug,
|
|
139
|
+
});
|
|
140
|
+
const response = await client.call('list_invitations', {
|
|
141
|
+
includeSent: options.sent,
|
|
142
|
+
});
|
|
143
|
+
spinner.stop();
|
|
144
|
+
if (options.json) {
|
|
145
|
+
console.log(JSON.stringify(response, null, 2));
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
printBlank();
|
|
149
|
+
displayReceivedInvitations(response.received);
|
|
150
|
+
if (options.sent && response.sent) {
|
|
151
|
+
displaySentInvitations(response.sent);
|
|
152
|
+
}
|
|
153
|
+
printBlank();
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
spinner.fail('Failed to fetch invitations');
|
|
157
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
158
|
+
throw new NetworkError(`Failed to fetch invitations: ${message}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Accept invitation action handler
|
|
163
|
+
*/
|
|
164
|
+
export async function invitationsAcceptAction(idOrToken) {
|
|
165
|
+
const config = resolveConfig();
|
|
166
|
+
if (!config.apiKey) {
|
|
167
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
168
|
+
}
|
|
169
|
+
const spinner = ora({
|
|
170
|
+
text: 'Accepting invitation...',
|
|
171
|
+
color: 'cyan',
|
|
172
|
+
}).start();
|
|
173
|
+
try {
|
|
174
|
+
const client = new ApiClient({
|
|
175
|
+
apiKey: config.apiKey,
|
|
176
|
+
apiUrl: config.apiUrl,
|
|
177
|
+
debug: config.debug,
|
|
178
|
+
});
|
|
179
|
+
// Determine if it's a token or invitation ID
|
|
180
|
+
const args = {};
|
|
181
|
+
if (idOrToken.startsWith('proj_inv_')) {
|
|
182
|
+
args.token = idOrToken;
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
args.invitationId = idOrToken;
|
|
186
|
+
}
|
|
187
|
+
const response = await client.call('accept_project_invitation', args);
|
|
188
|
+
spinner.succeed(`Joined ${response.projectName} as ${response.role}`);
|
|
189
|
+
printBlank();
|
|
190
|
+
console.log(colors.muted(response.message));
|
|
191
|
+
printBlank();
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
spinner.fail('Failed to accept invitation');
|
|
195
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
196
|
+
throw new NetworkError(`Failed to accept invitation: ${message}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Decline invitation action handler
|
|
201
|
+
*/
|
|
202
|
+
export async function invitationsDeclineAction(idOrToken) {
|
|
203
|
+
const config = resolveConfig();
|
|
204
|
+
if (!config.apiKey) {
|
|
205
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
206
|
+
}
|
|
207
|
+
const spinner = ora({
|
|
208
|
+
text: 'Declining invitation...',
|
|
209
|
+
color: 'cyan',
|
|
210
|
+
}).start();
|
|
211
|
+
try {
|
|
212
|
+
const client = new ApiClient({
|
|
213
|
+
apiKey: config.apiKey,
|
|
214
|
+
apiUrl: config.apiUrl,
|
|
215
|
+
debug: config.debug,
|
|
216
|
+
});
|
|
217
|
+
// Determine if it's a token or invitation ID
|
|
218
|
+
const args = {};
|
|
219
|
+
if (idOrToken.startsWith('proj_inv_')) {
|
|
220
|
+
args.token = idOrToken;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
args.invitationId = idOrToken;
|
|
224
|
+
}
|
|
225
|
+
const response = await client.call('decline_project_invitation', args);
|
|
226
|
+
spinner.succeed('Invitation declined');
|
|
227
|
+
printBlank();
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
spinner.fail('Failed to decline invitation');
|
|
231
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
232
|
+
throw new NetworkError(`Failed to decline invitation: ${message}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Register invitations command with Commander
|
|
237
|
+
*/
|
|
238
|
+
export function registerInvitationsCommand(program) {
|
|
239
|
+
const invitationsCmd = program
|
|
240
|
+
.command('invitations')
|
|
241
|
+
.description('Manage project invitations')
|
|
242
|
+
.option('--sent', 'Include sent invitations')
|
|
243
|
+
.option('--json', 'Output as JSON')
|
|
244
|
+
.action(withErrorHandler(invitationsListAction));
|
|
245
|
+
// Accept subcommand
|
|
246
|
+
invitationsCmd
|
|
247
|
+
.command('accept <id-or-token>')
|
|
248
|
+
.description('Accept a project invitation')
|
|
249
|
+
.action(withErrorHandler(invitationsAcceptAction));
|
|
250
|
+
// Decline subcommand
|
|
251
|
+
invitationsCmd
|
|
252
|
+
.command('decline <id-or-token>')
|
|
253
|
+
.description('Decline a project invitation')
|
|
254
|
+
.action(withErrorHandler(invitationsDeclineAction));
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=invitations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../../src/cli/commands/invitations.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,7 +99,7 @@ export async function loginAction(options) {
|
|
|
99
99
|
if (existingConfig.apiKey && !options.force) {
|
|
100
100
|
printBlank();
|
|
101
101
|
printWarning('You are already authenticated.');
|
|
102
|
-
console.log(`Use ${chalk.cyan('specforge
|
|
102
|
+
console.log(`Use ${chalk.cyan('specforge login --force')} to re-authenticate with a different API key.`);
|
|
103
103
|
printBlank();
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
@@ -140,8 +140,8 @@ export async function loginAction(options) {
|
|
|
140
140
|
printBlank();
|
|
141
141
|
// Next steps
|
|
142
142
|
console.log(chalk.bold('Next steps:'));
|
|
143
|
-
printHint('specforge
|
|
144
|
-
printHint('specforge
|
|
143
|
+
printHint('specforge init', 'initialize SpecForge in your project');
|
|
144
|
+
printHint('specforge status', 'check your current configuration');
|
|
145
145
|
printBlank();
|
|
146
146
|
}
|
|
147
147
|
catch (error) {
|
|
@@ -162,9 +162,9 @@ export function registerLoginCommand(program) {
|
|
|
162
162
|
.option('-f, --force', 'Overwrite existing authentication')
|
|
163
163
|
.addHelpText('after', `
|
|
164
164
|
Examples:
|
|
165
|
-
$ specforge
|
|
166
|
-
$ specforge
|
|
167
|
-
$ specforge
|
|
165
|
+
$ specforge login # Interactive login (recommended)
|
|
166
|
+
$ specforge login --api-key <key> # Non-interactive login
|
|
167
|
+
$ specforge login --force # Re-authenticate with new key
|
|
168
168
|
|
|
169
169
|
Get your API key:
|
|
170
170
|
https://specforge.com.br/settings/api-keys
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Members Command
|
|
3
|
+
*
|
|
4
|
+
* Manage project members - list, add, remove, and update roles.
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
/**
|
|
8
|
+
* Options for members command
|
|
9
|
+
*/
|
|
10
|
+
interface MembersOptions {
|
|
11
|
+
project?: string;
|
|
12
|
+
json?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Options for members add command
|
|
16
|
+
*/
|
|
17
|
+
interface MembersAddOptions {
|
|
18
|
+
project?: string;
|
|
19
|
+
role?: 'editor' | 'viewer';
|
|
20
|
+
message?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Options for members remove command
|
|
24
|
+
*/
|
|
25
|
+
interface MembersRemoveOptions {
|
|
26
|
+
project?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Options for members role command
|
|
30
|
+
*/
|
|
31
|
+
interface MembersRoleOptions {
|
|
32
|
+
project?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* List members action handler
|
|
36
|
+
*/
|
|
37
|
+
export declare function membersListAction(options: MembersOptions): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Add member action handler
|
|
40
|
+
*/
|
|
41
|
+
export declare function membersAddAction(email: string, options: MembersAddOptions): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Remove member action handler
|
|
44
|
+
*/
|
|
45
|
+
export declare function membersRemoveAction(emailOrId: string, options: MembersRemoveOptions): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Update member role action handler
|
|
48
|
+
*/
|
|
49
|
+
export declare function membersRoleAction(emailOrId: string, role: string, options: MembersRoleOptions): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Register members command with Commander
|
|
52
|
+
*/
|
|
53
|
+
export declare function registerMembersCommand(program: Command): void;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=members.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/members.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDpC;;GAEG;AACH,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkGD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD9E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAqDf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAwDf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqEf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8B7D"}
|