@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.
Files changed (70) hide show
  1. package/README.md +250 -0
  2. package/dist/commands/audit.d.ts +6 -0
  3. package/dist/commands/audit.d.ts.map +1 -0
  4. package/dist/commands/audit.js +82 -0
  5. package/dist/commands/audit.js.map +1 -0
  6. package/dist/commands/auth.d.ts +7 -0
  7. package/dist/commands/auth.d.ts.map +1 -0
  8. package/dist/commands/auth.js +310 -0
  9. package/dist/commands/auth.js.map +1 -0
  10. package/dist/commands/create.d.ts +6 -0
  11. package/dist/commands/create.d.ts.map +1 -0
  12. package/dist/commands/create.js +88 -0
  13. package/dist/commands/create.js.map +1 -0
  14. package/dist/commands/exec.d.ts +8 -0
  15. package/dist/commands/exec.d.ts.map +1 -0
  16. package/dist/commands/exec.js +163 -0
  17. package/dist/commands/exec.js.map +1 -0
  18. package/dist/commands/import.d.ts +7 -0
  19. package/dist/commands/import.d.ts.map +1 -0
  20. package/dist/commands/import.js +1166 -0
  21. package/dist/commands/import.js.map +1 -0
  22. package/dist/commands/init.d.ts +6 -0
  23. package/dist/commands/init.d.ts.map +1 -0
  24. package/dist/commands/init.js +50 -0
  25. package/dist/commands/init.js.map +1 -0
  26. package/dist/commands/list.d.ts +6 -0
  27. package/dist/commands/list.d.ts.map +1 -0
  28. package/dist/commands/list.js +91 -0
  29. package/dist/commands/list.js.map +1 -0
  30. package/dist/commands/migrate.d.ts +7 -0
  31. package/dist/commands/migrate.d.ts.map +1 -0
  32. package/dist/commands/migrate.js +105 -0
  33. package/dist/commands/migrate.js.map +1 -0
  34. package/dist/commands/provision.d.ts +7 -0
  35. package/dist/commands/provision.d.ts.map +1 -0
  36. package/dist/commands/provision.js +303 -0
  37. package/dist/commands/provision.js.map +1 -0
  38. package/dist/commands/revoke.d.ts +6 -0
  39. package/dist/commands/revoke.d.ts.map +1 -0
  40. package/dist/commands/revoke.js +70 -0
  41. package/dist/commands/revoke.js.map +1 -0
  42. package/dist/commands/scan.d.ts +16 -0
  43. package/dist/commands/scan.d.ts.map +1 -0
  44. package/dist/commands/scan.js +700 -0
  45. package/dist/commands/scan.js.map +1 -0
  46. package/dist/commands/share.d.ts +6 -0
  47. package/dist/commands/share.d.ts.map +1 -0
  48. package/dist/commands/share.js +144 -0
  49. package/dist/commands/share.js.map +1 -0
  50. package/dist/commands/show.d.ts +6 -0
  51. package/dist/commands/show.d.ts.map +1 -0
  52. package/dist/commands/show.js +64 -0
  53. package/dist/commands/show.js.map +1 -0
  54. package/dist/index.d.ts +7 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +76 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/utils/display.d.ts +78 -0
  59. package/dist/utils/display.d.ts.map +1 -0
  60. package/dist/utils/display.js +290 -0
  61. package/dist/utils/display.js.map +1 -0
  62. package/dist/utils/prompts.d.ts +67 -0
  63. package/dist/utils/prompts.d.ts.map +1 -0
  64. package/dist/utils/prompts.js +353 -0
  65. package/dist/utils/prompts.js.map +1 -0
  66. package/dist/utils/vault-helpers.d.ts +21 -0
  67. package/dist/utils/vault-helpers.d.ts.map +1 -0
  68. package/dist/utils/vault-helpers.js +45 -0
  69. package/dist/utils/vault-helpers.js.map +1 -0
  70. 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"}