@treza/cli 1.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 (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +353 -0
  3. package/dist/commands/config.d.ts +3 -0
  4. package/dist/commands/config.d.ts.map +1 -0
  5. package/dist/commands/config.js +149 -0
  6. package/dist/commands/config.js.map +1 -0
  7. package/dist/commands/enclave.d.ts +3 -0
  8. package/dist/commands/enclave.d.ts.map +1 -0
  9. package/dist/commands/enclave.js +535 -0
  10. package/dist/commands/enclave.js.map +1 -0
  11. package/dist/commands/kyc.d.ts +3 -0
  12. package/dist/commands/kyc.d.ts.map +1 -0
  13. package/dist/commands/kyc.js +158 -0
  14. package/dist/commands/kyc.js.map +1 -0
  15. package/dist/commands/provider.d.ts +3 -0
  16. package/dist/commands/provider.d.ts.map +1 -0
  17. package/dist/commands/provider.js +49 -0
  18. package/dist/commands/provider.js.map +1 -0
  19. package/dist/commands/task.d.ts +3 -0
  20. package/dist/commands/task.d.ts.map +1 -0
  21. package/dist/commands/task.js +220 -0
  22. package/dist/commands/task.js.map +1 -0
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +59 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/utils/api.d.ts +125 -0
  28. package/dist/utils/api.d.ts.map +1 -0
  29. package/dist/utils/api.js +104 -0
  30. package/dist/utils/api.js.map +1 -0
  31. package/dist/utils/config.d.ts +13 -0
  32. package/dist/utils/config.d.ts.map +1 -0
  33. package/dist/utils/config.js +39 -0
  34. package/dist/utils/config.js.map +1 -0
  35. package/dist/utils/output.d.ts +12 -0
  36. package/dist/utils/output.d.ts.map +1 -0
  37. package/dist/utils/output.js +64 -0
  38. package/dist/utils/output.js.map +1 -0
  39. package/package.json +59 -0
@@ -0,0 +1,158 @@
1
+ import { Command } from 'commander';
2
+ import ora from 'ora';
3
+ import chalk from 'chalk';
4
+ import * as api from '../utils/api.js';
5
+ import * as output from '../utils/output.js';
6
+ export const kycCommand = new Command('kyc')
7
+ .description('KYC proof verification commands');
8
+ kycCommand
9
+ .command('verify <proofId>')
10
+ .description('Verify a KYC proof')
11
+ .option('--json', 'Output as JSON')
12
+ .action(async (proofId, options) => {
13
+ const spinner = ora('Verifying proof...').start();
14
+ try {
15
+ const result = await api.verifyProof(proofId);
16
+ spinner.stop();
17
+ if (options.json) {
18
+ output.json(result);
19
+ return;
20
+ }
21
+ if (result.isValid) {
22
+ output.success('Proof is valid!');
23
+ }
24
+ else {
25
+ output.error('Proof is invalid or expired');
26
+ }
27
+ console.log('');
28
+ output.keyValue('Proof ID', result.proofId);
29
+ output.keyValue('Valid', result.isValid ? chalk.green('Yes') : chalk.red('No'));
30
+ output.keyValue('Chain Verified', result.chainVerified ? chalk.green('Yes') : chalk.gray('No'));
31
+ output.keyValue('Verified At', new Date(result.verifiedAt).toLocaleString());
32
+ output.keyValue('Expires At', new Date(result.expiresAt).toLocaleString());
33
+ if (result.publicInputs && result.publicInputs.length > 0) {
34
+ console.log('');
35
+ output.heading('Public Inputs');
36
+ result.publicInputs.forEach((input, i) => {
37
+ output.keyValue(`Input ${i + 1}`, input.slice(0, 20) + '...');
38
+ });
39
+ }
40
+ }
41
+ catch (err) {
42
+ spinner.stop();
43
+ if (err instanceof api.ApiError) {
44
+ if (err.statusCode === 404) {
45
+ output.error(`Proof not found: ${proofId}`);
46
+ }
47
+ else if (err.statusCode === 410) {
48
+ output.error('Proof has expired');
49
+ }
50
+ else {
51
+ output.error(`Verification failed: ${err.message}`);
52
+ }
53
+ }
54
+ else {
55
+ output.error(`Verification failed: ${err.message}`);
56
+ }
57
+ process.exit(1);
58
+ }
59
+ });
60
+ kycCommand
61
+ .command('get <proofId>')
62
+ .description('Get proof details')
63
+ .option('--json', 'Output as JSON')
64
+ .action(async (proofId, options) => {
65
+ const spinner = ora('Fetching proof...').start();
66
+ try {
67
+ const proof = await api.getProof(proofId);
68
+ spinner.stop();
69
+ if (options.json) {
70
+ output.json(proof);
71
+ return;
72
+ }
73
+ output.heading('Proof Details');
74
+ output.keyValue('Proof ID', proof.proofId);
75
+ output.keyValue('Algorithm', proof.algorithm);
76
+ output.keyValue('Commitment', proof.commitment.slice(0, 16) + '...' + proof.commitment.slice(-8));
77
+ output.keyValue('Verified At', new Date(proof.verifiedAt).toLocaleString());
78
+ output.keyValue('Expires At', new Date(proof.expiresAt).toLocaleString());
79
+ // Check if expired
80
+ const now = new Date();
81
+ const expiresAt = new Date(proof.expiresAt);
82
+ if (expiresAt < now) {
83
+ console.log('');
84
+ output.warn('This proof has expired');
85
+ }
86
+ else {
87
+ const daysLeft = Math.ceil((expiresAt.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
88
+ console.log('');
89
+ output.info(`Expires in ${daysLeft} day${daysLeft === 1 ? '' : 's'}`);
90
+ }
91
+ if (proof.publicInputs && proof.publicInputs.length > 0) {
92
+ console.log('');
93
+ output.heading('Public Inputs');
94
+ proof.publicInputs.forEach((input, i) => {
95
+ console.log(chalk.gray(` ${i + 1}.`) + ` ${input}`);
96
+ });
97
+ }
98
+ }
99
+ catch (err) {
100
+ spinner.stop();
101
+ if (err instanceof api.ApiError) {
102
+ if (err.statusCode === 404) {
103
+ output.error(`Proof not found: ${proofId}`);
104
+ }
105
+ else {
106
+ output.error(`Failed to fetch proof: ${err.message}`);
107
+ }
108
+ }
109
+ else {
110
+ output.error(`Failed to fetch proof: ${err.message}`);
111
+ }
112
+ process.exit(1);
113
+ }
114
+ });
115
+ kycCommand
116
+ .command('status <proofId>')
117
+ .description('Quick status check for a proof')
118
+ .action(async (proofId) => {
119
+ const spinner = ora('Checking status...').start();
120
+ try {
121
+ const result = await api.verifyProof(proofId);
122
+ spinner.stop();
123
+ const now = new Date();
124
+ const expiresAt = new Date(result.expiresAt);
125
+ const isExpired = expiresAt < now;
126
+ if (isExpired) {
127
+ console.log(chalk.red('✗') + ' ' + chalk.red('EXPIRED'));
128
+ }
129
+ else if (result.isValid) {
130
+ console.log(chalk.green('✓') + ' ' + chalk.green('VALID'));
131
+ if (result.chainVerified) {
132
+ console.log(chalk.green('⛓') + ' ' + chalk.gray('Blockchain verified'));
133
+ }
134
+ }
135
+ else {
136
+ console.log(chalk.red('✗') + ' ' + chalk.red('INVALID'));
137
+ }
138
+ }
139
+ catch (err) {
140
+ spinner.stop();
141
+ if (err instanceof api.ApiError) {
142
+ if (err.statusCode === 404) {
143
+ console.log(chalk.gray('?') + ' ' + chalk.gray('NOT FOUND'));
144
+ }
145
+ else if (err.statusCode === 410) {
146
+ console.log(chalk.red('✗') + ' ' + chalk.red('EXPIRED'));
147
+ }
148
+ else {
149
+ output.error(err.message);
150
+ }
151
+ }
152
+ else {
153
+ output.error(err.message);
154
+ }
155
+ process.exit(1);
156
+ }
157
+ });
158
+ //# sourceMappingURL=kyc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kyc.js","sourceRoot":"","sources":["../../src/commands/kyc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const providerCommand: Command;
3
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/commands/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,eAAe,SACsB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { Command } from 'commander';
2
+ import ora from 'ora';
3
+ import chalk from 'chalk';
4
+ import * as api from '../utils/api.js';
5
+ import * as output from '../utils/output.js';
6
+ export const providerCommand = new Command('provider')
7
+ .description('List available enclave providers');
8
+ providerCommand
9
+ .command('list')
10
+ .alias('ls')
11
+ .description('List all available providers')
12
+ .option('--json', 'Output as JSON')
13
+ .action(async (options) => {
14
+ const spinner = ora('Fetching providers...').start();
15
+ try {
16
+ const { providers } = await api.getProviders();
17
+ spinner.stop();
18
+ if (options.json) {
19
+ output.json(providers);
20
+ return;
21
+ }
22
+ if (providers.length === 0) {
23
+ output.info('No providers available');
24
+ return;
25
+ }
26
+ output.heading(`Available Providers (${providers.length})`);
27
+ for (const provider of providers) {
28
+ console.log('');
29
+ console.log(chalk.bold.cyan(provider.name) + chalk.gray(` (${provider.id})`));
30
+ console.log(chalk.gray(' ' + provider.description));
31
+ console.log(chalk.gray(' Regions: ') + provider.regions.join(', '));
32
+ }
33
+ }
34
+ catch (err) {
35
+ spinner.stop();
36
+ if (err instanceof api.ApiError) {
37
+ output.error(`Failed to fetch providers: ${err.message}`);
38
+ }
39
+ else {
40
+ output.error(`Failed to fetch providers: ${err.message}`);
41
+ }
42
+ process.exit(1);
43
+ }
44
+ });
45
+ // Make list the default command
46
+ providerCommand.action(async () => {
47
+ await providerCommand.commands.find(c => c.name() === 'list')?.parseAsync([]);
48
+ });
49
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/commands/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACnD,WAAW,CAAC,kCAAkC,CAAC,CAAC;AAEnD,eAAe;KACZ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,wBAAwB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,GAAG,YAAY,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,8BAA+B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,gCAAgC;AAChC,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IAChC,MAAM,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const taskCommand: Command;
3
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,WAAW,SACgB,CAAC"}
@@ -0,0 +1,220 @@
1
+ import { Command } from 'commander';
2
+ import ora from 'ora';
3
+ import prompts from 'prompts';
4
+ import chalk from 'chalk';
5
+ import { isConfigured } from '../utils/config.js';
6
+ import * as api from '../utils/api.js';
7
+ import * as output from '../utils/output.js';
8
+ export const taskCommand = new Command('task')
9
+ .description('Manage scheduled tasks');
10
+ function requireConfig() {
11
+ if (!isConfigured()) {
12
+ output.error('Not configured. Run: treza config init');
13
+ process.exit(1);
14
+ }
15
+ }
16
+ taskCommand
17
+ .command('list')
18
+ .alias('ls')
19
+ .description('List all tasks')
20
+ .option('-e, --enclave <id>', 'Filter by enclave ID')
21
+ .option('--json', 'Output as JSON')
22
+ .action(async (options) => {
23
+ requireConfig();
24
+ const spinner = ora('Fetching tasks...').start();
25
+ try {
26
+ const { tasks } = await api.getTasks(options.enclave);
27
+ spinner.stop();
28
+ if (options.json) {
29
+ output.json(tasks);
30
+ return;
31
+ }
32
+ if (tasks.length === 0) {
33
+ output.info('No tasks found. Create one with: treza task create');
34
+ return;
35
+ }
36
+ output.heading(`Tasks (${tasks.length})`);
37
+ output.printTable(['ID', 'Name', 'Status', 'Schedule', 'Enclave', 'Last Run'], tasks.map((t) => [
38
+ t.id.slice(0, 12) + '...',
39
+ t.name,
40
+ output.statusColor(t.status),
41
+ t.schedule,
42
+ t.enclaveId.slice(0, 12) + '...',
43
+ t.lastRun ? new Date(t.lastRun).toLocaleString() : 'Never',
44
+ ]));
45
+ }
46
+ catch (err) {
47
+ spinner.stop();
48
+ if (err instanceof api.ApiError) {
49
+ output.error(`Failed to fetch tasks: ${err.message}`);
50
+ }
51
+ else {
52
+ output.error(`Failed to fetch tasks: ${err.message}`);
53
+ }
54
+ process.exit(1);
55
+ }
56
+ });
57
+ taskCommand
58
+ .command('create')
59
+ .description('Create a new scheduled task')
60
+ .option('-n, --name <name>', 'Task name')
61
+ .option('-d, --description <desc>', 'Task description')
62
+ .option('-e, --enclave <id>', 'Enclave ID')
63
+ .option('-s, --schedule <cron>', 'Cron schedule (e.g., "0 * * * *")')
64
+ .option('--json', 'Output as JSON')
65
+ .action(async (options) => {
66
+ requireConfig();
67
+ let { name, description, enclave, schedule } = options;
68
+ // Interactive prompts
69
+ if (!name || !enclave || !schedule) {
70
+ // Fetch enclaves for selection
71
+ const spinner = ora('Loading enclaves...').start();
72
+ let enclaves = [];
73
+ try {
74
+ const result = await api.getEnclaves();
75
+ enclaves = result.enclaves.filter((e) => e.status === 'DEPLOYED');
76
+ spinner.stop();
77
+ }
78
+ catch {
79
+ spinner.stop();
80
+ output.warn('Could not load enclaves');
81
+ }
82
+ if (enclaves.length === 0 && !enclave) {
83
+ output.error('No deployed enclaves available. Create one first: treza enclave create');
84
+ process.exit(1);
85
+ }
86
+ const response = await prompts([
87
+ {
88
+ type: name ? null : 'text',
89
+ name: 'name',
90
+ message: 'Task name',
91
+ validate: (v) => (v ? true : 'Name is required'),
92
+ },
93
+ {
94
+ type: description ? null : 'text',
95
+ name: 'description',
96
+ message: 'Description (optional)',
97
+ },
98
+ {
99
+ type: enclave ? null : 'select',
100
+ name: 'enclave',
101
+ message: 'Target enclave',
102
+ choices: enclaves.map((e) => ({
103
+ title: `${e.name} (${e.id.slice(0, 12)}...)`,
104
+ value: e.id,
105
+ })),
106
+ },
107
+ {
108
+ type: schedule ? null : 'select',
109
+ name: 'schedule',
110
+ message: 'Schedule',
111
+ choices: [
112
+ { title: 'Every minute', value: '* * * * *' },
113
+ { title: 'Every 5 minutes', value: '*/5 * * * *' },
114
+ { title: 'Every hour', value: '0 * * * *' },
115
+ { title: 'Every 6 hours', value: '0 */6 * * *' },
116
+ { title: 'Daily at midnight', value: '0 0 * * *' },
117
+ { title: 'Daily at 9am', value: '0 9 * * *' },
118
+ { title: 'Weekly (Sunday midnight)', value: '0 0 * * 0' },
119
+ { title: 'Custom', value: 'custom' },
120
+ ],
121
+ },
122
+ {
123
+ type: (prev) => (prev === 'custom' ? 'text' : null),
124
+ name: 'customSchedule',
125
+ message: 'Enter cron expression',
126
+ initial: '0 * * * *',
127
+ },
128
+ ]);
129
+ name = name || response.name;
130
+ description = description || response.description;
131
+ enclave = enclave || response.enclave;
132
+ schedule = schedule || response.customSchedule || response.schedule;
133
+ if (!name || !enclave || !schedule) {
134
+ output.error('Cancelled');
135
+ process.exit(1);
136
+ }
137
+ }
138
+ const spinner = ora('Creating task...').start();
139
+ try {
140
+ const { task } = await api.createTask({
141
+ name,
142
+ description: description || '',
143
+ enclaveId: enclave,
144
+ schedule,
145
+ });
146
+ spinner.succeed('Task created!');
147
+ if (options.json) {
148
+ output.json(task);
149
+ return;
150
+ }
151
+ console.log('');
152
+ output.keyValue('ID', task.id);
153
+ output.keyValue('Schedule', task.schedule);
154
+ output.keyValue('Status', output.statusColor(task.status));
155
+ }
156
+ catch (err) {
157
+ spinner.stop();
158
+ if (err instanceof api.ApiError) {
159
+ output.error(`Failed to create task: ${err.message}`);
160
+ }
161
+ else {
162
+ output.error(`Failed to create task: ${err.message}`);
163
+ }
164
+ process.exit(1);
165
+ }
166
+ });
167
+ taskCommand
168
+ .command('delete <id>')
169
+ .description('Delete a task')
170
+ .option('-f, --force', 'Skip confirmation')
171
+ .action(async (id, options) => {
172
+ requireConfig();
173
+ if (!options.force) {
174
+ const response = await prompts({
175
+ type: 'confirm',
176
+ name: 'confirm',
177
+ message: `Delete task ${id}?`,
178
+ initial: false,
179
+ });
180
+ if (!response.confirm) {
181
+ output.info('Cancelled');
182
+ return;
183
+ }
184
+ }
185
+ const spinner = ora('Deleting task...').start();
186
+ try {
187
+ await api.deleteTask(id);
188
+ spinner.succeed('Task deleted');
189
+ }
190
+ catch (err) {
191
+ spinner.stop();
192
+ if (err instanceof api.ApiError) {
193
+ output.error(`Failed to delete: ${err.message}`);
194
+ }
195
+ else {
196
+ output.error(`Failed to delete: ${err.message}`);
197
+ }
198
+ process.exit(1);
199
+ }
200
+ });
201
+ // Schedule helper command
202
+ taskCommand
203
+ .command('cron')
204
+ .description('Show common cron schedule examples')
205
+ .action(() => {
206
+ output.heading('Cron Schedule Examples');
207
+ console.log('');
208
+ console.log(chalk.cyan(' * * * * * ') + chalk.gray('Every minute'));
209
+ console.log(chalk.cyan(' */5 * * * * ') + chalk.gray('Every 5 minutes'));
210
+ console.log(chalk.cyan(' 0 * * * * ') + chalk.gray('Every hour'));
211
+ console.log(chalk.cyan(' 0 */6 * * * ') + chalk.gray('Every 6 hours'));
212
+ console.log(chalk.cyan(' 0 0 * * * ') + chalk.gray('Daily at midnight'));
213
+ console.log(chalk.cyan(' 0 9 * * * ') + chalk.gray('Daily at 9:00 AM'));
214
+ console.log(chalk.cyan(' 0 0 * * 0 ') + chalk.gray('Weekly on Sunday'));
215
+ console.log(chalk.cyan(' 0 0 1 * * ') + chalk.gray('Monthly on the 1st'));
216
+ console.log('');
217
+ console.log(chalk.gray(' Format: minute hour day month weekday'));
218
+ console.log(chalk.gray(' Use * for "every", */N for "every Nth"'));
219
+ });
220
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { configCommand } from './commands/config.js';
5
+ import { enclaveCommand } from './commands/enclave.js';
6
+ import { kycCommand } from './commands/kyc.js';
7
+ import { providerCommand } from './commands/provider.js';
8
+ import { taskCommand } from './commands/task.js';
9
+ import { getConfig } from './utils/config.js';
10
+ const VERSION = '1.0.0';
11
+ const program = new Command();
12
+ // ASCII art banner
13
+ const banner = `
14
+ ${chalk.hex('#6366f1')('╔════════════════════════════════════════╗')}
15
+ ${chalk.hex('#6366f1')('║')} ${chalk.bold.white('TREZA CLI')} ${chalk.gray('v' + VERSION)} ${chalk.hex('#6366f1')('║')}
16
+ ${chalk.hex('#6366f1')('║')} ${chalk.gray('Privacy infrastructure for finance')} ${chalk.hex('#6366f1')('║')}
17
+ ${chalk.hex('#6366f1')('╚════════════════════════════════════════╝')}
18
+ `;
19
+ program
20
+ .name('treza')
21
+ .description('Command-line interface for the Treza platform')
22
+ .version(VERSION, '-v, --version', 'Display version number')
23
+ .hook('preAction', (thisCommand) => {
24
+ // Show banner for main commands (not for help/version)
25
+ const commandName = thisCommand.args[0];
26
+ if (commandName && !['help', 'config'].includes(commandName)) {
27
+ const config = getConfig();
28
+ if (!config.get('apiUrl')) {
29
+ console.log(chalk.yellow('\n⚠️ Not configured. Run: treza config init\n'));
30
+ }
31
+ }
32
+ });
33
+ // Add commands
34
+ program.addCommand(configCommand);
35
+ program.addCommand(enclaveCommand);
36
+ program.addCommand(kycCommand);
37
+ program.addCommand(providerCommand);
38
+ program.addCommand(taskCommand);
39
+ // Custom help
40
+ program.on('--help', () => {
41
+ console.log('');
42
+ console.log('Examples:');
43
+ console.log(' $ treza config init # Configure CLI');
44
+ console.log(' $ treza enclave list # List your enclaves');
45
+ console.log(' $ treza enclave create --name "Bot" # Create an enclave');
46
+ console.log(' $ treza kyc verify <proof-id> # Verify a KYC proof');
47
+ console.log('');
48
+ console.log('Documentation:');
49
+ console.log(` ${chalk.cyan('https://docs.treza.xyz/cli')}`);
50
+ });
51
+ // Show banner on no args
52
+ if (process.argv.length === 2) {
53
+ console.log(banner);
54
+ program.outputHelp();
55
+ }
56
+ else {
57
+ program.parse(process.argv);
58
+ }
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}