@id-wispera/cli 0.1.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 +250 -0
- package/dist/commands/audit.d.ts +6 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +82 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/auth.d.ts +7 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +310 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/create.d.ts +6 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +88 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/exec.d.ts +8 -0
- package/dist/commands/exec.d.ts.map +1 -0
- package/dist/commands/exec.js +163 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/import.d.ts +7 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +1166 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +50 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +6 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +91 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/migrate.d.ts +7 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +105 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/provision.d.ts +7 -0
- package/dist/commands/provision.d.ts.map +1 -0
- package/dist/commands/provision.js +303 -0
- package/dist/commands/provision.js.map +1 -0
- package/dist/commands/revoke.d.ts +6 -0
- package/dist/commands/revoke.d.ts.map +1 -0
- package/dist/commands/revoke.js +70 -0
- package/dist/commands/revoke.js.map +1 -0
- package/dist/commands/scan.d.ts +16 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +700 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/share.d.ts +6 -0
- package/dist/commands/share.d.ts.map +1 -0
- package/dist/commands/share.js +144 -0
- package/dist/commands/share.js.map +1 -0
- package/dist/commands/show.d.ts +6 -0
- package/dist/commands/show.d.ts.map +1 -0
- package/dist/commands/show.js +64 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/display.d.ts +78 -0
- package/dist/utils/display.d.ts.map +1 -0
- package/dist/utils/display.js +290 -0
- package/dist/utils/display.js.map +1 -0
- package/dist/utils/prompts.d.ts +67 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +353 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/vault-helpers.d.ts +21 -0
- package/dist/utils/vault-helpers.d.ts.map +1 -0
- package/dist/utils/vault-helpers.js +45 -0
- package/dist/utils/vault-helpers.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal display utilities for ID Wispera CLI
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import boxen from 'boxen';
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Colors and Styling
|
|
8
|
+
// ============================================================================
|
|
9
|
+
/**
|
|
10
|
+
* Status colors
|
|
11
|
+
*/
|
|
12
|
+
export const statusColors = {
|
|
13
|
+
active: chalk.green,
|
|
14
|
+
expiring: chalk.yellow,
|
|
15
|
+
expired: chalk.red,
|
|
16
|
+
revoked: chalk.gray,
|
|
17
|
+
suspended: chalk.magenta,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Visa type colors
|
|
21
|
+
*/
|
|
22
|
+
export const visaColors = {
|
|
23
|
+
access: chalk.blue,
|
|
24
|
+
privilege: chalk.magenta,
|
|
25
|
+
data: chalk.cyan,
|
|
26
|
+
compliance: chalk.yellow,
|
|
27
|
+
ecosystem: chalk.green,
|
|
28
|
+
custom: chalk.gray,
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Format status with color
|
|
32
|
+
*/
|
|
33
|
+
export function formatStatus(status) {
|
|
34
|
+
const color = statusColors[status];
|
|
35
|
+
return color(status.toUpperCase());
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Format visa type with color
|
|
39
|
+
*/
|
|
40
|
+
export function formatVisaType(visaType) {
|
|
41
|
+
const color = visaColors[visaType];
|
|
42
|
+
return color(visaType);
|
|
43
|
+
}
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// Passport Display
|
|
46
|
+
// ============================================================================
|
|
47
|
+
/**
|
|
48
|
+
* Mask a credential for display
|
|
49
|
+
*/
|
|
50
|
+
export function maskCredential(value, visibleChars = 4) {
|
|
51
|
+
if (value.length <= visibleChars * 2) {
|
|
52
|
+
return '*'.repeat(value.length);
|
|
53
|
+
}
|
|
54
|
+
const start = value.substring(0, visibleChars);
|
|
55
|
+
const end = value.substring(value.length - visibleChars);
|
|
56
|
+
return `${start}${'*'.repeat(Math.min(20, value.length - 8))}${end}`;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Format a date for display
|
|
60
|
+
*/
|
|
61
|
+
export function formatDate(dateStr) {
|
|
62
|
+
const date = new Date(dateStr);
|
|
63
|
+
return date.toLocaleDateString('en-US', {
|
|
64
|
+
year: 'numeric',
|
|
65
|
+
month: 'short',
|
|
66
|
+
day: 'numeric',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Format a datetime for display
|
|
71
|
+
*/
|
|
72
|
+
export function formatDateTime(dateStr) {
|
|
73
|
+
const date = new Date(dateStr);
|
|
74
|
+
return date.toLocaleString('en-US', {
|
|
75
|
+
year: 'numeric',
|
|
76
|
+
month: 'short',
|
|
77
|
+
day: 'numeric',
|
|
78
|
+
hour: '2-digit',
|
|
79
|
+
minute: '2-digit',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Display a passport as a card
|
|
84
|
+
*/
|
|
85
|
+
export function displayPassportCard(passport, showCredential = false) {
|
|
86
|
+
const lines = [];
|
|
87
|
+
// Header
|
|
88
|
+
lines.push(chalk.bold(`PASSPORT: ${passport.name}`));
|
|
89
|
+
lines.push(chalk.dim(`ID: ${passport.id}`));
|
|
90
|
+
lines.push('');
|
|
91
|
+
// Type and Status
|
|
92
|
+
lines.push(`Type: ${chalk.cyan(passport.credentialType)} │ ` +
|
|
93
|
+
`Visa: ${formatVisaType(passport.visaType)} │ ` +
|
|
94
|
+
`Status: ${formatStatus(passport.status)}`);
|
|
95
|
+
// Platforms
|
|
96
|
+
lines.push(`Platforms: ${passport.platforms.map(p => chalk.blue(p)).join(', ')}`);
|
|
97
|
+
// Scope
|
|
98
|
+
if (passport.scope.length > 0) {
|
|
99
|
+
lines.push(`Scope: ${passport.scope.join(', ')}`);
|
|
100
|
+
}
|
|
101
|
+
// Validity
|
|
102
|
+
const validFrom = formatDate(passport.validFrom);
|
|
103
|
+
const validUntil = passport.validUntil ? formatDate(passport.validUntil) : 'No expiry';
|
|
104
|
+
lines.push(`Valid: ${validFrom} → ${validUntil}`);
|
|
105
|
+
// Owner
|
|
106
|
+
lines.push(`Owner: ${chalk.cyan(passport.humanOwner)}`);
|
|
107
|
+
// Delegation
|
|
108
|
+
if (passport.delegationChain && passport.delegationChain.length > 0) {
|
|
109
|
+
const chain = [passport.humanOwner, ...passport.delegationChain.map(h => h.to)].join(' → ');
|
|
110
|
+
lines.push(`Delegation: ${chalk.dim(chain)}`);
|
|
111
|
+
}
|
|
112
|
+
// Tags
|
|
113
|
+
if (passport.tags.length > 0) {
|
|
114
|
+
lines.push(`Tags: ${passport.tags.map(t => chalk.yellow(`#${t}`)).join(' ')}`);
|
|
115
|
+
}
|
|
116
|
+
// Credential (if requested)
|
|
117
|
+
if (showCredential) {
|
|
118
|
+
lines.push('');
|
|
119
|
+
lines.push(chalk.bold('Credential:'));
|
|
120
|
+
lines.push(chalk.green(passport.credentialValue));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
lines.push('');
|
|
124
|
+
lines.push(`Credential: ${chalk.dim(maskCredential(passport.credentialValue))}`);
|
|
125
|
+
}
|
|
126
|
+
return boxen(lines.join('\n'), {
|
|
127
|
+
padding: 1,
|
|
128
|
+
margin: { top: 0, bottom: 1, left: 0, right: 0 },
|
|
129
|
+
borderStyle: 'round',
|
|
130
|
+
borderColor: passport.status === 'active' ? 'green' :
|
|
131
|
+
passport.status === 'expiring' ? 'yellow' :
|
|
132
|
+
passport.status === 'revoked' ? 'gray' : 'red',
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Display a list of passports as a table
|
|
137
|
+
*/
|
|
138
|
+
export function displayPassportList(passports) {
|
|
139
|
+
if (passports.length === 0) {
|
|
140
|
+
return chalk.dim('No passports found.');
|
|
141
|
+
}
|
|
142
|
+
const lines = [];
|
|
143
|
+
// Header
|
|
144
|
+
lines.push(chalk.bold(padRight('ID', 38) +
|
|
145
|
+
padRight('Name', 25) +
|
|
146
|
+
padRight('Type', 15) +
|
|
147
|
+
padRight('Status', 12) +
|
|
148
|
+
'Platform'));
|
|
149
|
+
lines.push(chalk.dim('─'.repeat(100)));
|
|
150
|
+
// Rows
|
|
151
|
+
for (const p of passports) {
|
|
152
|
+
const statusColor = statusColors[p.status];
|
|
153
|
+
lines.push(chalk.dim(padRight(p.id, 38)) +
|
|
154
|
+
padRight(truncate(p.name, 24), 25) +
|
|
155
|
+
padRight(p.credentialType, 15) +
|
|
156
|
+
padRight(statusColor(p.status), 12 + 10) + // +10 for color codes
|
|
157
|
+
p.platforms[0] + (p.platforms.length > 1 ? ` +${p.platforms.length - 1}` : ''));
|
|
158
|
+
}
|
|
159
|
+
return lines.join('\n');
|
|
160
|
+
}
|
|
161
|
+
// ============================================================================
|
|
162
|
+
// Audit Log Display
|
|
163
|
+
// ============================================================================
|
|
164
|
+
/**
|
|
165
|
+
* Display an audit entry
|
|
166
|
+
*/
|
|
167
|
+
export function displayAuditEntry(entry) {
|
|
168
|
+
const time = formatDateTime(entry.timestamp);
|
|
169
|
+
const action = getActionColor(entry.action)(entry.action);
|
|
170
|
+
const platform = entry.platform ? chalk.dim(`[${entry.platform}]`) : '';
|
|
171
|
+
return `${chalk.dim(time)} ${action} by ${chalk.cyan(entry.actor)} ${platform}${entry.details ? '\n ' + chalk.dim(entry.details) : ''}`;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get color for audit action
|
|
175
|
+
*/
|
|
176
|
+
function getActionColor(action) {
|
|
177
|
+
switch (action) {
|
|
178
|
+
case 'created':
|
|
179
|
+
return chalk.green;
|
|
180
|
+
case 'revoked':
|
|
181
|
+
return chalk.red;
|
|
182
|
+
case 'modified':
|
|
183
|
+
return chalk.yellow;
|
|
184
|
+
case 'accessed':
|
|
185
|
+
return chalk.blue;
|
|
186
|
+
case 'shared':
|
|
187
|
+
return chalk.magenta;
|
|
188
|
+
default:
|
|
189
|
+
return chalk.white;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Display audit log
|
|
194
|
+
*/
|
|
195
|
+
export function displayAuditLog(entries) {
|
|
196
|
+
if (entries.length === 0) {
|
|
197
|
+
return chalk.dim('No audit entries found.');
|
|
198
|
+
}
|
|
199
|
+
return entries.map(displayAuditEntry).join('\n\n');
|
|
200
|
+
}
|
|
201
|
+
// ============================================================================
|
|
202
|
+
// Detection Results Display
|
|
203
|
+
// ============================================================================
|
|
204
|
+
/**
|
|
205
|
+
* Display detection results
|
|
206
|
+
*/
|
|
207
|
+
export function displayDetectionResults(results, filePath) {
|
|
208
|
+
if (results.length === 0) {
|
|
209
|
+
return chalk.green('✓ No credentials detected.');
|
|
210
|
+
}
|
|
211
|
+
const lines = [];
|
|
212
|
+
lines.push(chalk.yellow(`⚠ Found ${results.length} potential credential(s):`));
|
|
213
|
+
lines.push('');
|
|
214
|
+
for (const result of results) {
|
|
215
|
+
const location = filePath
|
|
216
|
+
? `${filePath}:${result.line}:${result.column}`
|
|
217
|
+
: `Line ${result.line}, Col ${result.column}`;
|
|
218
|
+
const confidence = result.confidence >= 0.9
|
|
219
|
+
? chalk.red('HIGH')
|
|
220
|
+
: result.confidence >= 0.7
|
|
221
|
+
? chalk.yellow('MEDIUM')
|
|
222
|
+
: chalk.dim('LOW');
|
|
223
|
+
lines.push(` ${chalk.cyan('•')} ${chalk.bold(result.pattern || result.type)}`);
|
|
224
|
+
lines.push(` Location: ${chalk.dim(location)}`);
|
|
225
|
+
lines.push(` Value: ${chalk.yellow(maskCredential(result.value))}`);
|
|
226
|
+
lines.push(` Confidence: ${confidence}`);
|
|
227
|
+
lines.push('');
|
|
228
|
+
}
|
|
229
|
+
return lines.join('\n');
|
|
230
|
+
}
|
|
231
|
+
// ============================================================================
|
|
232
|
+
// Utility Functions
|
|
233
|
+
// ============================================================================
|
|
234
|
+
/**
|
|
235
|
+
* Pad string to the right
|
|
236
|
+
*/
|
|
237
|
+
function padRight(str, length) {
|
|
238
|
+
return str.padEnd(length);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Truncate string with ellipsis
|
|
242
|
+
*/
|
|
243
|
+
function truncate(str, maxLength) {
|
|
244
|
+
if (str.length <= maxLength)
|
|
245
|
+
return str;
|
|
246
|
+
return str.substring(0, maxLength - 1) + '…';
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Print success message
|
|
250
|
+
*/
|
|
251
|
+
export function success(message) {
|
|
252
|
+
console.log(chalk.green('✓') + ' ' + message);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Print error message
|
|
256
|
+
*/
|
|
257
|
+
export function error(message) {
|
|
258
|
+
console.error(chalk.red('✗') + ' ' + message);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Print warning message
|
|
262
|
+
*/
|
|
263
|
+
export function warning(message) {
|
|
264
|
+
console.log(chalk.yellow('⚠') + ' ' + message);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Print info message
|
|
268
|
+
*/
|
|
269
|
+
export function info(message) {
|
|
270
|
+
console.log(chalk.blue('ℹ') + ' ' + message);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Print a title
|
|
274
|
+
*/
|
|
275
|
+
export function title(text) {
|
|
276
|
+
console.log('\n' + chalk.bold(text));
|
|
277
|
+
console.log(chalk.dim('─'.repeat(text.length)));
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Format bytes to human readable
|
|
281
|
+
*/
|
|
282
|
+
export function formatBytes(bytes) {
|
|
283
|
+
if (bytes === 0)
|
|
284
|
+
return '0 B';
|
|
285
|
+
const k = 1024;
|
|
286
|
+
const sizes = ['B', 'KB', 'MB', 'GB'];
|
|
287
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
288
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=display.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/utils/display.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive prompts for ID Wispera CLI
|
|
3
|
+
*/
|
|
4
|
+
import type { CredentialType, VisaType, Platform } from '@id-wispera/core';
|
|
5
|
+
/**
|
|
6
|
+
* Prompt for vault passphrase
|
|
7
|
+
*/
|
|
8
|
+
export declare function promptPassphrase(message?: string): Promise<string>;
|
|
9
|
+
/**
|
|
10
|
+
* Prompt for new passphrase with confirmation
|
|
11
|
+
*/
|
|
12
|
+
export declare function promptNewPassphrase(): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Prompt for passport creation details
|
|
15
|
+
*/
|
|
16
|
+
interface PassportDetailsAnswers {
|
|
17
|
+
name: string;
|
|
18
|
+
credentialType: CredentialType;
|
|
19
|
+
credentialValue: string;
|
|
20
|
+
visaType: VisaType;
|
|
21
|
+
platforms: Platform[];
|
|
22
|
+
scope: string[];
|
|
23
|
+
humanOwner: string;
|
|
24
|
+
setExpiry: boolean;
|
|
25
|
+
validUntil?: string;
|
|
26
|
+
tags?: string[];
|
|
27
|
+
notes?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function promptPassportDetails(): Promise<Omit<PassportDetailsAnswers, 'setExpiry'>>;
|
|
30
|
+
/**
|
|
31
|
+
* Prompt for confirmation
|
|
32
|
+
*/
|
|
33
|
+
export declare function confirm(message: string, defaultValue?: boolean): Promise<boolean>;
|
|
34
|
+
/**
|
|
35
|
+
* Prompt for dangerous action confirmation
|
|
36
|
+
*/
|
|
37
|
+
export declare function confirmDangerous(message: string): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Prompt to select a passport from a list
|
|
40
|
+
*/
|
|
41
|
+
export declare function selectPassport(passports: Array<{
|
|
42
|
+
id: string;
|
|
43
|
+
name: string;
|
|
44
|
+
status: string;
|
|
45
|
+
}>): Promise<string>;
|
|
46
|
+
/**
|
|
47
|
+
* Prompt for reason
|
|
48
|
+
*/
|
|
49
|
+
export declare function promptReason(message?: string): Promise<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Prompt for share options
|
|
52
|
+
*/
|
|
53
|
+
export declare function promptShareOptions(): Promise<{
|
|
54
|
+
scope: 'full' | 'read-only' | 'metadata-only';
|
|
55
|
+
expiresIn?: string;
|
|
56
|
+
maxViews?: number;
|
|
57
|
+
}>;
|
|
58
|
+
/**
|
|
59
|
+
* Prompt for import confirmation
|
|
60
|
+
*/
|
|
61
|
+
export declare function confirmImport(credentials: Array<{
|
|
62
|
+
name: string;
|
|
63
|
+
type: string;
|
|
64
|
+
preview: string;
|
|
65
|
+
}>): Promise<string[]>;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM3E;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,MAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBnG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAmC3D;AAiDD;;GAEG;AACH,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC,CAyGhG;AAMD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAU9F;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAexE;AAMD;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7D,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,MAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAe/E;AAMD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAsCD;AAMD;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAClE,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB"}
|