@vultisig/cli 0.1.0-alpha.1 → 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 (60) hide show
  1. package/README.md +6 -0
  2. package/dist/index.js +3185 -361
  3. package/package.json +4 -3
  4. package/dist/adapters/cli-context.js +0 -25
  5. package/dist/adapters/cli-context.js.map +0 -1
  6. package/dist/adapters/cli-runner.js +0 -47
  7. package/dist/adapters/cli-runner.js.map +0 -1
  8. package/dist/adapters/index.js +0 -6
  9. package/dist/adapters/index.js.map +0 -1
  10. package/dist/commands/balance.js +0 -65
  11. package/dist/commands/balance.js.map +0 -1
  12. package/dist/commands/chains.js +0 -46
  13. package/dist/commands/chains.js.map +0 -1
  14. package/dist/commands/index.js +0 -12
  15. package/dist/commands/index.js.map +0 -1
  16. package/dist/commands/settings.js +0 -151
  17. package/dist/commands/settings.js.map +0 -1
  18. package/dist/commands/swap.js +0 -180
  19. package/dist/commands/swap.js.map +0 -1
  20. package/dist/commands/tokens.js +0 -116
  21. package/dist/commands/tokens.js.map +0 -1
  22. package/dist/commands/transaction.js +0 -99
  23. package/dist/commands/transaction.js.map +0 -1
  24. package/dist/commands/vault-management.js +0 -360
  25. package/dist/commands/vault-management.js.map +0 -1
  26. package/dist/core/command-context.js +0 -81
  27. package/dist/core/command-context.js.map +0 -1
  28. package/dist/core/index.js +0 -7
  29. package/dist/core/index.js.map +0 -1
  30. package/dist/core/password-manager.js +0 -92
  31. package/dist/core/password-manager.js.map +0 -1
  32. package/dist/core/types.js +0 -2
  33. package/dist/core/types.js.map +0 -1
  34. package/dist/index.js.map +0 -1
  35. package/dist/interactive/completer.js +0 -170
  36. package/dist/interactive/completer.js.map +0 -1
  37. package/dist/interactive/event-buffer.js +0 -186
  38. package/dist/interactive/event-buffer.js.map +0 -1
  39. package/dist/interactive/index.js +0 -9
  40. package/dist/interactive/index.js.map +0 -1
  41. package/dist/interactive/session.js +0 -525
  42. package/dist/interactive/session.js.map +0 -1
  43. package/dist/interactive/shell-commands.js +0 -167
  44. package/dist/interactive/shell-commands.js.map +0 -1
  45. package/dist/interactive/shell-context.js +0 -112
  46. package/dist/interactive/shell-context.js.map +0 -1
  47. package/dist/lib/completion.js +0 -375
  48. package/dist/lib/completion.js.map +0 -1
  49. package/dist/lib/config.js +0 -172
  50. package/dist/lib/config.js.map +0 -1
  51. package/dist/lib/errors.js +0 -163
  52. package/dist/lib/errors.js.map +0 -1
  53. package/dist/lib/index.js +0 -9
  54. package/dist/lib/index.js.map +0 -1
  55. package/dist/lib/output.js +0 -155
  56. package/dist/lib/output.js.map +0 -1
  57. package/dist/lib/version.js +0 -210
  58. package/dist/lib/version.js.map +0 -1
  59. package/dist/ui.js +0 -286
  60. package/dist/ui.js.map +0 -1
@@ -1,81 +0,0 @@
1
- /**
2
- * Default password cache TTL (5 minutes)
3
- */
4
- export const DEFAULT_PASSWORD_CACHE_TTL = 5 * 60 * 1000;
5
- /**
6
- * Base implementation of CommandContext that can be extended
7
- * by CLI and Shell-specific implementations
8
- */
9
- export class BaseCommandContext {
10
- _sdk;
11
- _activeVault = null;
12
- passwordCache = new Map();
13
- defaultPasswordTtl;
14
- constructor(sdk, options) {
15
- this._sdk = sdk;
16
- this.defaultPasswordTtl = options?.passwordTtlMs ?? DEFAULT_PASSWORD_CACHE_TTL;
17
- }
18
- get sdk() {
19
- return this._sdk;
20
- }
21
- getActiveVault() {
22
- return this._activeVault;
23
- }
24
- async setActiveVault(vault) {
25
- this._activeVault = vault;
26
- await this._sdk.setActiveVault(vault);
27
- }
28
- async ensureActiveVault() {
29
- if (!this._activeVault) {
30
- // Try to load from SDK
31
- const vault = await this._sdk.getActiveVault();
32
- if (vault) {
33
- this._activeVault = vault;
34
- }
35
- }
36
- if (!this._activeVault) {
37
- throw new Error('No active vault. Create or import a vault first.');
38
- }
39
- return this._activeVault;
40
- }
41
- cachePassword(vaultId, password, ttlMs) {
42
- const ttl = ttlMs ?? this.defaultPasswordTtl;
43
- this.passwordCache.set(vaultId, {
44
- password,
45
- expiresAt: Date.now() + ttl,
46
- });
47
- }
48
- clearPasswordCache(vaultId) {
49
- if (vaultId) {
50
- this.passwordCache.delete(vaultId);
51
- }
52
- else {
53
- this.passwordCache.clear();
54
- }
55
- }
56
- isPasswordCached(vaultId) {
57
- const entry = this.passwordCache.get(vaultId);
58
- if (!entry)
59
- return false;
60
- if (Date.now() > entry.expiresAt) {
61
- this.passwordCache.delete(vaultId);
62
- return false;
63
- }
64
- return true;
65
- }
66
- getCachedPassword(vaultId) {
67
- const entry = this.passwordCache.get(vaultId);
68
- if (!entry)
69
- return null;
70
- if (Date.now() > entry.expiresAt) {
71
- this.passwordCache.delete(vaultId);
72
- return null;
73
- }
74
- return entry.password;
75
- }
76
- dispose() {
77
- this.passwordCache.clear();
78
- this._sdk.dispose();
79
- }
80
- }
81
- //# sourceMappingURL=command-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-context.js","sourceRoot":"","sources":["../../src/core/command-context.ts"],"names":[],"mappings":"AA4CA;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAEvD;;;GAGG;AACH,MAAM,OAAgB,kBAAkB;IAC5B,IAAI,CAAU;IACd,YAAY,GAAqB,IAAI,CAAA;IACrC,aAAa,GAAoC,IAAI,GAAG,EAAE,CAAA;IAC1D,kBAAkB,CAAQ;IAEpC,YAAY,GAAa,EAAE,OAAoC;QAC7D,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,kBAAkB,GAAG,OAAO,EAAE,aAAa,IAAI,0BAA0B,CAAA;IAChF,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAID,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAgB;QACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,uBAAuB;YACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAA;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IASD,aAAa,CAAC,OAAe,EAAE,QAAgB,EAAE,KAAc;QAC7D,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAA;QAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE;YAC9B,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;SAC5B,CAAC,CAAA;IACJ,CAAC;IAED,kBAAkB,CAAC,OAAgB;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAClC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAES,iBAAiB,CAAC,OAAe;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAA;IACvB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;IACrB,CAAC;CACF"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Core module exports
3
- */
4
- export * from './command-context';
5
- export * from './password-manager';
6
- export * from './types';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,SAAS,CAAA"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Password Manager - Handles password resolution from various sources
3
- *
4
- * Priority order:
5
- * 1. VAULT_PASSWORDS env var (format: "VaultName:password VaultId:password")
6
- * 2. VAULT_PASSWORD env var (single fallback password)
7
- * 3. Interactive prompt (if no env password found and not in silent/JSON mode)
8
- */
9
- import inquirer from 'inquirer';
10
- import { isJsonOutput, isSilent } from '../lib/output';
11
- /**
12
- * Parse VAULT_PASSWORDS env var into a Map
13
- * Format: "VaultName:password VaultId:password"
14
- */
15
- export function parseVaultPasswords() {
16
- const passwordMap = new Map();
17
- const passwordsEnv = process.env.VAULT_PASSWORDS;
18
- if (passwordsEnv) {
19
- const pairs = passwordsEnv.trim().split(/\s+/);
20
- for (const pair of pairs) {
21
- const colonIndex = pair.indexOf(':');
22
- if (colonIndex > 0) {
23
- const vaultKey = pair.substring(0, colonIndex);
24
- const password = pair.substring(colonIndex + 1);
25
- passwordMap.set(vaultKey, password);
26
- }
27
- }
28
- }
29
- return passwordMap;
30
- }
31
- /**
32
- * Get password from environment variables
33
- * Returns null if not found in env
34
- */
35
- export function getPasswordFromEnv(vaultId, vaultName) {
36
- const vaultPasswords = parseVaultPasswords();
37
- // Check by vault name first
38
- if (vaultName && vaultPasswords.has(vaultName)) {
39
- return vaultPasswords.get(vaultName);
40
- }
41
- // Check by vault ID
42
- if (vaultPasswords.has(vaultId)) {
43
- return vaultPasswords.get(vaultId);
44
- }
45
- // Check single fallback password
46
- if (process.env.VAULT_PASSWORD) {
47
- return process.env.VAULT_PASSWORD;
48
- }
49
- return null;
50
- }
51
- /**
52
- * Prompt user for password interactively
53
- */
54
- export async function promptForPassword(vaultName, vaultId) {
55
- const displayName = vaultName || vaultId || 'vault';
56
- const { password } = await inquirer.prompt([
57
- {
58
- type: 'password',
59
- name: 'password',
60
- message: `Enter password for vault "${displayName}":`,
61
- mask: '*',
62
- },
63
- ]);
64
- return password;
65
- }
66
- /**
67
- * Get password using the standard resolution order:
68
- * 1. Environment variables
69
- * 2. Interactive prompt (only if not in silent/JSON mode)
70
- */
71
- export async function getPassword(vaultId, vaultName) {
72
- // Try environment first
73
- const envPassword = getPasswordFromEnv(vaultId, vaultName);
74
- if (envPassword) {
75
- return envPassword;
76
- }
77
- // In silent/JSON mode, we can't prompt - throw an error
78
- if (isSilent() || isJsonOutput()) {
79
- throw new Error('Password required but not provided. Set VAULT_PASSWORD or VAULT_PASSWORDS environment variable.');
80
- }
81
- // Fall back to interactive prompt
82
- return promptForPassword(vaultName, vaultId);
83
- }
84
- /**
85
- * Create an onPasswordRequired callback for SDK initialization
86
- */
87
- export function createPasswordCallback() {
88
- return async (vaultId, vaultName) => {
89
- return getPassword(vaultId, vaultName);
90
- };
91
- }
92
- //# sourceMappingURL=password-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"password-manager.js","sourceRoot":"","sources":["../../src/core/password-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,QAAQ,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEtD;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;IAEhD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;gBAC/C,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,SAAkB;IACpE,MAAM,cAAc,GAAG,mBAAmB,EAAE,CAAA;IAE5C,4BAA4B;IAC5B,IAAI,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAO,cAAc,CAAC,GAAG,CAAC,SAAS,CAAE,CAAA;IACvC,CAAC;IAED,oBAAoB;IACpB,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IACrC,CAAC;IAED,iCAAiC;IACjC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;IACnC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAkB,EAAE,OAAgB;IAC1E,MAAM,WAAW,GAAG,SAAS,IAAI,OAAO,IAAI,OAAO,CAAA;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACzC;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,6BAA6B,WAAW,IAAI;YACrD,IAAI,EAAE,GAAG;SACV;KACF,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,SAAkB;IACnE,wBAAwB;IACxB,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAC1D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,wDAAwD;IACxD,IAAI,QAAQ,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAA;IACpH,CAAC;IAED,kCAAkC;IAClC,OAAO,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,KAAK,EAAE,OAAe,EAAE,SAAkB,EAAmB,EAAE;QACpE,OAAO,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACxC,CAAC,CAAA;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,170 +0,0 @@
1
- /**
2
- * Tab Completion - Provides intelligent tab completion for the shell
3
- */
4
- import { Chain } from '@vultisig/sdk';
5
- import fs from 'fs';
6
- import path from 'path';
7
- /**
8
- * All available shell commands
9
- */
10
- const COMMANDS = [
11
- // Vault management
12
- 'vaults',
13
- 'vault',
14
- 'import',
15
- 'create',
16
- 'info',
17
- 'export',
18
- // Wallet operations
19
- 'balance',
20
- 'bal',
21
- 'send',
22
- 'portfolio',
23
- 'addresses',
24
- 'chains',
25
- 'tokens',
26
- // Swap operations
27
- 'swap-chains',
28
- 'swap-quote',
29
- 'swap',
30
- // Session commands (shell-only)
31
- 'lock',
32
- 'unlock',
33
- 'status',
34
- // Settings
35
- 'currency',
36
- 'server',
37
- 'address-book',
38
- // Help
39
- 'help',
40
- '?',
41
- // REPL commands
42
- '.help',
43
- '.clear',
44
- '.exit',
45
- ];
46
- /**
47
- * Create a completer function for the REPL
48
- */
49
- export function createCompleter(ctx) {
50
- return function completer(line) {
51
- try {
52
- const parts = line.split(/\s+/);
53
- const command = parts[0]?.toLowerCase();
54
- // File path completion for import/export
55
- if ((command === 'import' || command === 'export') && parts.length > 1) {
56
- const partial = parts.slice(1).join(' ');
57
- return completeFilePath(partial, command === 'import');
58
- }
59
- // Vault name completion
60
- if (command === 'vault' && parts.length > 1) {
61
- const partial = parts.slice(1).join(' ');
62
- return completeVaultName(ctx, partial);
63
- }
64
- // Chain completion for chains --add/--remove
65
- if (command === 'chains' && parts.length >= 2) {
66
- const flag = parts[parts.length - 2]?.toLowerCase();
67
- if (flag === '--add' || flag === '--remove') {
68
- const partial = parts[parts.length - 1] || '';
69
- return completeChainName(partial);
70
- }
71
- if (parts[parts.length - 1]?.toLowerCase() === '--add' ||
72
- parts[parts.length - 1]?.toLowerCase() === '--remove') {
73
- return completeChainName('');
74
- }
75
- }
76
- // Chain completion for balance, tokens, send, swap commands
77
- if (['balance', 'bal', 'tokens', 'send', 'swap', 'swap-quote'].includes(command) && parts.length === 2) {
78
- const partial = parts[1] || '';
79
- return completeChainName(partial);
80
- }
81
- // Command completion
82
- const hits = COMMANDS.filter(c => c.startsWith(line));
83
- const show = hits.length ? hits : COMMANDS;
84
- return [show, line];
85
- }
86
- catch {
87
- return [[], line];
88
- }
89
- };
90
- }
91
- /**
92
- * Complete file paths
93
- */
94
- function completeFilePath(partial, filterVult) {
95
- try {
96
- const endsWithSeparator = partial.endsWith('/') || partial.endsWith(path.sep);
97
- let dir;
98
- let basename;
99
- if (endsWithSeparator) {
100
- dir = partial;
101
- basename = '';
102
- }
103
- else {
104
- dir = path.dirname(partial);
105
- basename = path.basename(partial);
106
- if (fs.existsSync(partial) && fs.statSync(partial).isDirectory()) {
107
- dir = partial;
108
- basename = '';
109
- }
110
- }
111
- const resolvedDir = path.resolve(dir);
112
- if (!fs.existsSync(resolvedDir) || !fs.statSync(resolvedDir).isDirectory()) {
113
- return [[], partial];
114
- }
115
- const files = fs.readdirSync(resolvedDir);
116
- const matches = files
117
- .filter((file) => file.startsWith(basename))
118
- .map((file) => {
119
- const fullPath = path.join(dir, file);
120
- const stats = fs.statSync(path.join(resolvedDir, file));
121
- if (stats.isDirectory()) {
122
- return fullPath + '/';
123
- }
124
- if (filterVult) {
125
- if (file.endsWith('.vult') || stats.isDirectory()) {
126
- return fullPath;
127
- }
128
- return null;
129
- }
130
- return fullPath;
131
- })
132
- .filter((item) => item !== null);
133
- return [matches, partial];
134
- }
135
- catch {
136
- return [[], partial];
137
- }
138
- }
139
- /**
140
- * Complete vault names (case-insensitive)
141
- */
142
- function completeVaultName(ctx, partial) {
143
- const vaultNames = Array.from(ctx.getVaults().values()).map(vault => vault.name);
144
- const partialLower = partial.toLowerCase();
145
- const matches = vaultNames.filter((name) => name.toLowerCase().startsWith(partialLower));
146
- matches.sort();
147
- const show = matches.length > 0 ? matches : vaultNames.sort();
148
- return [show, partial];
149
- }
150
- /**
151
- * Complete chain names (case-insensitive)
152
- */
153
- function completeChainName(partial) {
154
- const allChains = Object.values(Chain);
155
- const partialLower = partial.toLowerCase();
156
- const matches = allChains.filter((chain) => chain.toLowerCase().startsWith(partialLower));
157
- matches.sort();
158
- const show = matches.length > 0 ? matches : allChains.sort();
159
- return [show, partial];
160
- }
161
- /**
162
- * Find a chain by name (case-insensitive)
163
- */
164
- export function findChainByName(name) {
165
- const allChains = Object.values(Chain);
166
- const nameLower = name.toLowerCase();
167
- const found = allChains.find((chain) => chain.toLowerCase() === nameLower);
168
- return found ? found : null;
169
- }
170
- //# sourceMappingURL=completer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"completer.js","sourceRoot":"","sources":["../../src/interactive/completer.ts"],"names":[],"mappings":"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"}
@@ -1,186 +0,0 @@
1
- import chalk from 'chalk';
2
- /**
3
- * EventBuffer - Manages vault event buffering for clean REPL output
4
- */
5
- export class EventBuffer {
6
- eventBuffer = [];
7
- isCommandRunning = false;
8
- /**
9
- * Mark the start of a command execution.
10
- * Events will be buffered until endCommand() is called.
11
- */
12
- startCommand() {
13
- this.isCommandRunning = true;
14
- this.eventBuffer = [];
15
- }
16
- /**
17
- * Mark the end of a command execution.
18
- * Flushes any buffered events to the console.
19
- */
20
- endCommand() {
21
- this.isCommandRunning = false;
22
- this.flushBuffer();
23
- }
24
- /**
25
- * Handle an event - buffer if command is running, display immediately if idle.
26
- */
27
- handleEvent(message, type = 'info') {
28
- if (this.isCommandRunning) {
29
- this.eventBuffer.push({
30
- timestamp: new Date(),
31
- message,
32
- type,
33
- });
34
- }
35
- else {
36
- this.displayEvent(message, type);
37
- }
38
- }
39
- /**
40
- * Display a single event to the console with appropriate formatting.
41
- */
42
- displayEvent(message, type) {
43
- switch (type) {
44
- case 'success':
45
- console.log(chalk.green(message));
46
- break;
47
- case 'warning':
48
- console.log(chalk.yellow(message));
49
- break;
50
- case 'error':
51
- console.error(chalk.red(message));
52
- break;
53
- case 'info':
54
- default:
55
- console.log(chalk.blue(message));
56
- break;
57
- }
58
- }
59
- /**
60
- * Flush all buffered events to the console.
61
- */
62
- flushBuffer() {
63
- if (this.eventBuffer.length === 0) {
64
- return;
65
- }
66
- console.log(chalk.gray('\n--- Background Events ---'));
67
- this.eventBuffer.forEach(event => {
68
- const timeStr = event.timestamp.toLocaleTimeString();
69
- const message = `[${timeStr}] ${event.message}`;
70
- this.displayEvent(message, event.type);
71
- });
72
- console.log(chalk.gray('--- End Events ---\n'));
73
- }
74
- /**
75
- * Setup all vault event listeners
76
- */
77
- setupVaultListeners(vault) {
78
- // Balance updates
79
- vault.on('balanceUpdated', ({ chain, balance, tokenId }) => {
80
- const asset = tokenId ? `${balance.symbol} token` : balance.symbol;
81
- this.handleEvent(`i Balance updated for ${chain} (${asset}): ${balance.amount}`, 'info');
82
- });
83
- // Transaction signed
84
- vault.on('transactionSigned', () => {
85
- this.handleEvent(`+ Transaction signed successfully`, 'success');
86
- });
87
- // Transaction broadcast
88
- vault.on('transactionBroadcast', ({ chain, txHash }) => {
89
- this.handleEvent(`+ Transaction broadcast on ${chain}`, 'success');
90
- this.handleEvent(` TX Hash: ${txHash}`, 'info');
91
- });
92
- // Signing progress
93
- vault.on('signingProgress', ({ step }) => {
94
- this.handleEvent(`i Signing: ${step}`, 'info');
95
- });
96
- // Chain added
97
- vault.on('chainAdded', ({ chain }) => {
98
- this.handleEvent(`+ Chain added: ${chain}`, 'success');
99
- });
100
- // Chain removed
101
- vault.on('chainRemoved', ({ chain }) => {
102
- this.handleEvent(`i Chain removed: ${chain}`, 'warning');
103
- });
104
- // Token added
105
- vault.on('tokenAdded', ({ chain, token }) => {
106
- this.handleEvent(`+ Token added: ${token.symbol} on ${chain}`, 'success');
107
- });
108
- // Token removed
109
- vault.on('tokenRemoved', ({ chain, tokenId }) => {
110
- this.handleEvent(`i Token removed: ${tokenId} from ${chain}`, 'warning');
111
- });
112
- // Vault renamed
113
- vault.on('renamed', ({ oldName, newName }) => {
114
- this.handleEvent(`i Vault renamed: ${oldName} -> ${newName}`, 'info');
115
- });
116
- // Values updated
117
- vault.on('valuesUpdated', ({ chain }) => {
118
- if (chain === 'all') {
119
- this.handleEvent('i Portfolio values updated', 'info');
120
- }
121
- else {
122
- this.handleEvent(`i Values updated for ${chain}`, 'info');
123
- }
124
- });
125
- // Total value updated
126
- vault.on('totalValueUpdated', ({ value }) => {
127
- this.handleEvent(`i Portfolio total: ${value.formatted}`, 'info');
128
- });
129
- // Vault lifecycle events
130
- vault.on('saved', () => {
131
- this.handleEvent(`+ Vault saved`, 'success');
132
- });
133
- vault.on('loaded', () => {
134
- this.handleEvent(`i Vault loaded`, 'info');
135
- });
136
- vault.on('unlocked', () => {
137
- this.handleEvent(`+ Vault unlocked`, 'success');
138
- });
139
- vault.on('locked', () => {
140
- this.handleEvent(`i Vault locked`, 'info');
141
- });
142
- // Swap events
143
- vault.on('swapQuoteReceived', ({ quote }) => {
144
- this.handleEvent(`i Swap quote received: ${quote.fromAmount} -> ${quote.toAmount}`, 'info');
145
- });
146
- vault.on('swapApprovalRequired', ({ token, amount }) => {
147
- this.handleEvent(`! Approval required for ${token}: ${amount}`, 'warning');
148
- });
149
- vault.on('swapApprovalGranted', ({ token }) => {
150
- this.handleEvent(`+ Approval granted for ${token}`, 'success');
151
- });
152
- vault.on('swapPrepared', ({ provider, fromAmount, toAmountExpected }) => {
153
- this.handleEvent(`i Swap prepared via ${provider}: ${fromAmount} -> ${toAmountExpected}`, 'info');
154
- });
155
- // Errors
156
- vault.on('error', (error) => {
157
- this.handleEvent(`x Vault error: ${error.message}`, 'error');
158
- });
159
- }
160
- /**
161
- * Remove all event listeners from a vault.
162
- */
163
- cleanupVaultListeners(vault) {
164
- vault.removeAllListeners('balanceUpdated');
165
- vault.removeAllListeners('transactionSigned');
166
- vault.removeAllListeners('transactionBroadcast');
167
- vault.removeAllListeners('signingProgress');
168
- vault.removeAllListeners('chainAdded');
169
- vault.removeAllListeners('chainRemoved');
170
- vault.removeAllListeners('tokenAdded');
171
- vault.removeAllListeners('tokenRemoved');
172
- vault.removeAllListeners('renamed');
173
- vault.removeAllListeners('valuesUpdated');
174
- vault.removeAllListeners('totalValueUpdated');
175
- vault.removeAllListeners('saved');
176
- vault.removeAllListeners('loaded');
177
- vault.removeAllListeners('unlocked');
178
- vault.removeAllListeners('locked');
179
- vault.removeAllListeners('swapQuoteReceived');
180
- vault.removeAllListeners('swapApprovalRequired');
181
- vault.removeAllListeners('swapApprovalGranted');
182
- vault.removeAllListeners('swapPrepared');
183
- vault.removeAllListeners('error');
184
- }
185
- }
186
- //# sourceMappingURL=event-buffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-buffer.js","sourceRoot":"","sources":["../../src/interactive/event-buffer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Interactive Shell Module Exports
3
- */
4
- export { createCompleter, findChainByName } from './completer';
5
- export { EventBuffer } from './event-buffer';
6
- export { ShellSession } from './session';
7
- export { executeLock, executeStatus, executeUnlock, formatTimeRemaining, showHelp } from './shell-commands';
8
- export { createShellContext, ShellContext } from './shell-context';
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interactive/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3G,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA"}