@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,125 @@
1
+ interface ApiOptions {
2
+ method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
3
+ body?: Record<string, unknown>;
4
+ params?: Record<string, string>;
5
+ }
6
+ export declare class ApiError extends Error {
7
+ statusCode: number;
8
+ details?: unknown | undefined;
9
+ constructor(message: string, statusCode: number, details?: unknown | undefined);
10
+ }
11
+ export declare function apiRequest<T>(endpoint: string, options?: ApiOptions): Promise<T>;
12
+ export interface Enclave {
13
+ id: string;
14
+ name: string;
15
+ description: string;
16
+ status: string;
17
+ region: string;
18
+ providerId: string;
19
+ walletAddress: string;
20
+ createdAt: string;
21
+ updatedAt: string;
22
+ sourceType?: 'registry' | 'github' | 'private-registry';
23
+ buildStatus?: string;
24
+ buildId?: string;
25
+ githubConnection?: {
26
+ isConnected: boolean;
27
+ username: string;
28
+ selectedRepo?: string;
29
+ selectedBranch?: string;
30
+ };
31
+ }
32
+ export declare function getEnclaves(): Promise<{
33
+ enclaves: Enclave[];
34
+ }>;
35
+ export declare function getEnclave(id: string): Promise<{
36
+ enclave: Enclave;
37
+ }>;
38
+ export declare function createEnclave(data: {
39
+ name: string;
40
+ description: string;
41
+ region: string;
42
+ providerId: string;
43
+ providerConfig?: Record<string, unknown>;
44
+ sourceType?: 'registry' | 'github' | 'private-registry';
45
+ githubConnection?: {
46
+ isConnected: boolean;
47
+ username: string;
48
+ selectedRepo: string;
49
+ selectedBranch: string;
50
+ accessToken?: string;
51
+ };
52
+ privateRegistry?: {
53
+ registryUrl: string;
54
+ username: string;
55
+ password: string;
56
+ };
57
+ dockerImage?: string;
58
+ }): Promise<{
59
+ enclave: Enclave;
60
+ }>;
61
+ export declare function performEnclaveAction(id: string, action: 'pause' | 'resume' | 'terminate'): Promise<{
62
+ enclave: Enclave;
63
+ message: string;
64
+ }>;
65
+ export declare function deleteEnclave(id: string): Promise<{
66
+ message: string;
67
+ }>;
68
+ export declare function getEnclaveLogs(id: string, type?: string, limit?: number): Promise<{
69
+ logs: Record<string, unknown[]>;
70
+ }>;
71
+ export interface Provider {
72
+ id: string;
73
+ name: string;
74
+ description: string;
75
+ regions: string[];
76
+ }
77
+ export declare function getProviders(): Promise<{
78
+ providers: Provider[];
79
+ }>;
80
+ export interface ProofDetails {
81
+ proofId: string;
82
+ commitment: string;
83
+ publicInputs: string[];
84
+ algorithm: string;
85
+ verifiedAt: string;
86
+ expiresAt: string;
87
+ }
88
+ export interface VerificationResult {
89
+ proofId: string;
90
+ isValid: boolean;
91
+ publicInputs: string[];
92
+ verifiedAt: string;
93
+ chainVerified: boolean;
94
+ expiresAt: string;
95
+ }
96
+ export declare function getProof(proofId: string): Promise<ProofDetails>;
97
+ export declare function verifyProof(proofId: string): Promise<VerificationResult>;
98
+ export interface Task {
99
+ id: string;
100
+ name: string;
101
+ description: string;
102
+ enclaveId: string;
103
+ status: string;
104
+ schedule: string;
105
+ walletAddress: string;
106
+ createdAt: string;
107
+ updatedAt: string;
108
+ lastRun?: string;
109
+ }
110
+ export declare function getTasks(enclaveId?: string): Promise<{
111
+ tasks: Task[];
112
+ }>;
113
+ export declare function createTask(data: {
114
+ name: string;
115
+ description: string;
116
+ enclaveId: string;
117
+ schedule: string;
118
+ }): Promise<{
119
+ task: Task;
120
+ }>;
121
+ export declare function deleteTask(id: string): Promise<{
122
+ message: string;
123
+ }>;
124
+ export {};
125
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { getApiUrl, getWalletAddress, getApiKey } from './config.js';
2
+ export class ApiError extends Error {
3
+ statusCode;
4
+ details;
5
+ constructor(message, statusCode, details) {
6
+ super(message);
7
+ this.statusCode = statusCode;
8
+ this.details = details;
9
+ this.name = 'ApiError';
10
+ }
11
+ }
12
+ export async function apiRequest(endpoint, options = {}) {
13
+ const baseUrl = getApiUrl();
14
+ const apiKey = getApiKey();
15
+ let url = `${baseUrl}${endpoint}`;
16
+ // Add query params
17
+ if (options.params) {
18
+ const searchParams = new URLSearchParams(options.params);
19
+ url += `?${searchParams.toString()}`;
20
+ }
21
+ const headers = {
22
+ 'Content-Type': 'application/json',
23
+ };
24
+ if (apiKey) {
25
+ headers['Authorization'] = `Bearer ${apiKey}`;
26
+ }
27
+ const response = await fetch(url, {
28
+ method: options.method || 'GET',
29
+ headers,
30
+ body: options.body ? JSON.stringify(options.body) : undefined,
31
+ });
32
+ const data = await response.json();
33
+ if (!response.ok) {
34
+ throw new ApiError(data.error || 'API request failed', response.status, data);
35
+ }
36
+ return data;
37
+ }
38
+ export async function getEnclaves() {
39
+ const wallet = getWalletAddress();
40
+ return apiRequest('/api/enclaves', { params: { wallet } });
41
+ }
42
+ export async function getEnclave(id) {
43
+ return apiRequest(`/api/enclaves/${id}`);
44
+ }
45
+ export async function createEnclave(data) {
46
+ const wallet = getWalletAddress();
47
+ return apiRequest('/api/enclaves', {
48
+ method: 'POST',
49
+ body: { ...data, walletAddress: wallet },
50
+ });
51
+ }
52
+ export async function performEnclaveAction(id, action) {
53
+ const wallet = getWalletAddress();
54
+ return apiRequest(`/api/enclaves/${id}`, {
55
+ method: 'PATCH',
56
+ body: { action, walletAddress: wallet },
57
+ });
58
+ }
59
+ export async function deleteEnclave(id) {
60
+ const wallet = getWalletAddress();
61
+ return apiRequest(`/api/enclaves/${id}`, {
62
+ method: 'DELETE',
63
+ params: { wallet },
64
+ });
65
+ }
66
+ export async function getEnclaveLogs(id, type, limit) {
67
+ const params = {};
68
+ if (type)
69
+ params.type = type;
70
+ if (limit)
71
+ params.limit = String(limit);
72
+ return apiRequest(`/api/enclaves/${id}/logs`, { params });
73
+ }
74
+ export async function getProviders() {
75
+ return apiRequest('/api/providers');
76
+ }
77
+ export async function getProof(proofId) {
78
+ return apiRequest(`/api/kyc/proof/${proofId}`);
79
+ }
80
+ export async function verifyProof(proofId) {
81
+ return apiRequest(`/api/kyc/proof/${proofId}/verify`);
82
+ }
83
+ export async function getTasks(enclaveId) {
84
+ const wallet = getWalletAddress();
85
+ const params = { wallet };
86
+ if (enclaveId)
87
+ params.enclave = enclaveId;
88
+ return apiRequest('/api/tasks', { params });
89
+ }
90
+ export async function createTask(data) {
91
+ const wallet = getWalletAddress();
92
+ return apiRequest('/api/tasks', {
93
+ method: 'POST',
94
+ body: { ...data, walletAddress: wallet },
95
+ });
96
+ }
97
+ export async function deleteTask(id) {
98
+ const wallet = getWalletAddress();
99
+ return apiRequest('/api/tasks', {
100
+ method: 'DELETE',
101
+ params: { id, wallet },
102
+ });
103
+ }
104
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import Conf from 'conf';
2
+ interface TrezaConfig {
3
+ apiUrl: string;
4
+ walletAddress: string;
5
+ apiKey?: string;
6
+ }
7
+ export declare function getConfig(): Conf<TrezaConfig>;
8
+ export declare function isConfigured(): boolean;
9
+ export declare function getApiUrl(): string;
10
+ export declare function getWalletAddress(): string;
11
+ export declare function getApiKey(): string | undefined;
12
+ export {};
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmBD,wBAAgB,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,CAQ7C;AAED,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C"}
@@ -0,0 +1,39 @@
1
+ import Conf from 'conf';
2
+ const schema = {
3
+ apiUrl: {
4
+ type: 'string',
5
+ default: 'https://app.trezalabs.com',
6
+ },
7
+ walletAddress: {
8
+ type: 'string',
9
+ default: '',
10
+ },
11
+ apiKey: {
12
+ type: 'string',
13
+ default: '',
14
+ },
15
+ };
16
+ let configInstance = null;
17
+ export function getConfig() {
18
+ if (!configInstance) {
19
+ configInstance = new Conf({
20
+ projectName: 'treza-cli',
21
+ schema,
22
+ });
23
+ }
24
+ return configInstance;
25
+ }
26
+ export function isConfigured() {
27
+ const config = getConfig();
28
+ return !!(config.get('walletAddress'));
29
+ }
30
+ export function getApiUrl() {
31
+ return getConfig().get('apiUrl') || 'https://app.trezalabs.com';
32
+ }
33
+ export function getWalletAddress() {
34
+ return getConfig().get('walletAddress') || '';
35
+ }
36
+ export function getApiKey() {
37
+ return getConfig().get('apiKey') || undefined;
38
+ }
39
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,MAAM,MAAM,GAAG;IACb,MAAM,EAAE;QACN,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,2BAA2B;KACrC;IACD,aAAa,EAAE;QACb,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,EAAE;KACZ;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,EAAE;KACZ;CACF,CAAC;AAEF,IAAI,cAAc,GAA6B,IAAI,CAAC;AAEpD,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,IAAI,CAAc;YACrC,WAAW,EAAE,WAAW;YACxB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,2BAA2B,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;AAChD,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare function success(message: string): void;
2
+ export declare function error(message: string): void;
3
+ export declare function warn(message: string): void;
4
+ export declare function info(message: string): void;
5
+ export declare function heading(text: string): void;
6
+ export declare function keyValue(key: string, value: string | number | boolean): void;
7
+ export declare function printTable(headers: string[], rows: (string | number)[][], options?: {
8
+ truncate?: number;
9
+ }): void;
10
+ export declare function statusColor(status: string): string;
11
+ export declare function json(data: unknown): void;
12
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAGA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG1C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAE5E;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,EAC3B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,IAAI,CAyBN;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBlD;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAExC"}
@@ -0,0 +1,64 @@
1
+ import chalk from 'chalk';
2
+ import { table, getBorderCharacters } from 'table';
3
+ export function success(message) {
4
+ console.log(chalk.green('✓') + ' ' + message);
5
+ }
6
+ export function error(message) {
7
+ console.log(chalk.red('✗') + ' ' + chalk.red(message));
8
+ }
9
+ export function warn(message) {
10
+ console.log(chalk.yellow('⚠') + ' ' + chalk.yellow(message));
11
+ }
12
+ export function info(message) {
13
+ console.log(chalk.blue('ℹ') + ' ' + message);
14
+ }
15
+ export function heading(text) {
16
+ console.log('\n' + chalk.bold.white(text));
17
+ console.log(chalk.gray('─'.repeat(text.length)));
18
+ }
19
+ export function keyValue(key, value) {
20
+ console.log(chalk.gray(` ${key}:`), chalk.white(String(value)));
21
+ }
22
+ export function printTable(headers, rows, options = {}) {
23
+ const truncate = options.truncate || 40;
24
+ const truncateStr = (str) => {
25
+ if (str.length > truncate) {
26
+ return str.slice(0, truncate - 3) + '...';
27
+ }
28
+ return str;
29
+ };
30
+ const formattedHeaders = headers.map((h) => chalk.bold.cyan(h));
31
+ const formattedRows = rows.map((row) => row.map((cell) => truncateStr(String(cell))));
32
+ const output = table([formattedHeaders, ...formattedRows], {
33
+ border: getBorderCharacters('norc'),
34
+ columnDefault: {
35
+ paddingLeft: 1,
36
+ paddingRight: 1,
37
+ },
38
+ drawHorizontalLine: (index, size) => index === 0 || index === 1 || index === size,
39
+ });
40
+ console.log(output);
41
+ }
42
+ export function statusColor(status) {
43
+ const statusLower = status.toLowerCase();
44
+ if (statusLower.includes('deploy') && !statusLower.includes('pending')) {
45
+ return chalk.green(status);
46
+ }
47
+ if (statusLower.includes('running') || statusLower === 'active') {
48
+ return chalk.green(status);
49
+ }
50
+ if (statusLower.includes('pending') || statusLower.includes('ing')) {
51
+ return chalk.yellow(status);
52
+ }
53
+ if (statusLower.includes('fail') || statusLower.includes('error') || statusLower.includes('destroy')) {
54
+ return chalk.red(status);
55
+ }
56
+ if (statusLower.includes('pause') || statusLower === 'stopped') {
57
+ return chalk.gray(status);
58
+ }
59
+ return chalk.white(status);
60
+ }
61
+ export function json(data) {
62
+ console.log(JSON.stringify(data, null, 2));
63
+ }
64
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@treza/cli",
3
+ "version": "1.1.0",
4
+ "description": "Command-line interface for the Treza platform - manage enclaves, KYC proofs, and more",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "treza": "./dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsc -w",
13
+ "start": "node dist/index.js",
14
+ "lint": "eslint src --ext .ts",
15
+ "prepublishOnly": "npm run build",
16
+ "link:local": "npm run build && npm link"
17
+ },
18
+ "keywords": [
19
+ "treza",
20
+ "cli",
21
+ "enclave",
22
+ "kyc",
23
+ "zero-knowledge",
24
+ "privacy",
25
+ "blockchain"
26
+ ],
27
+ "author": "Treza Labs",
28
+ "license": "MIT",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/treza-labs/treza-cli.git"
32
+ },
33
+ "homepage": "https://trezalabs.com",
34
+ "bugs": {
35
+ "url": "https://github.com/treza-labs/treza-cli/issues"
36
+ },
37
+ "engines": {
38
+ "node": ">=18.0.0"
39
+ },
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "files": [
44
+ "dist"
45
+ ],
46
+ "dependencies": {
47
+ "chalk": "^5.3.0",
48
+ "commander": "^12.1.0",
49
+ "conf": "^13.0.1",
50
+ "ora": "^8.0.1",
51
+ "prompts": "^2.4.2",
52
+ "table": "^6.8.2"
53
+ },
54
+ "devDependencies": {
55
+ "@types/node": "^22.10.0",
56
+ "@types/prompts": "^2.4.9",
57
+ "typescript": "^5.7.2"
58
+ }
59
+ }