@nevermined-io/cli 1.0.3-rc1
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 +194 -0
- package/bin/dev.js +5 -0
- package/bin/run.js +5 -0
- package/dist/base-command.d.ts +36 -0
- package/dist/base-command.d.ts.map +1 -0
- package/dist/base-command.js +161 -0
- package/dist/base-command.js.map +1 -0
- package/dist/commands/agents/add-plan-to-agent.d.ts +19 -0
- package/dist/commands/agents/add-plan-to-agent.d.ts.map +1 -0
- package/dist/commands/agents/add-plan-to-agent.js +33 -0
- package/dist/commands/agents/add-plan-to-agent.js.map +1 -0
- package/dist/commands/agents/get-agent-plans.d.ts +19 -0
- package/dist/commands/agents/get-agent-plans.d.ts.map +1 -0
- package/dist/commands/agents/get-agent-plans.js +36 -0
- package/dist/commands/agents/get-agent-plans.js.map +1 -0
- package/dist/commands/agents/get-agent.d.ts +18 -0
- package/dist/commands/agents/get-agent.d.ts.map +1 -0
- package/dist/commands/agents/get-agent.js +32 -0
- package/dist/commands/agents/get-agent.js.map +1 -0
- package/dist/commands/agents/register-agent-and-plan.d.ts +21 -0
- package/dist/commands/agents/register-agent-and-plan.d.ts.map +1 -0
- package/dist/commands/agents/register-agent-and-plan.js +44 -0
- package/dist/commands/agents/register-agent-and-plan.js.map +1 -0
- package/dist/commands/agents/register-agent.d.ts +18 -0
- package/dist/commands/agents/register-agent.d.ts.map +1 -0
- package/dist/commands/agents/register-agent.js +32 -0
- package/dist/commands/agents/register-agent.js.map +1 -0
- package/dist/commands/agents/remove-plan-from-agent.d.ts +19 -0
- package/dist/commands/agents/remove-plan-from-agent.d.ts.map +1 -0
- package/dist/commands/agents/remove-plan-from-agent.js +33 -0
- package/dist/commands/agents/remove-plan-from-agent.js.map +1 -0
- package/dist/commands/agents/update-agent-metadata.d.ts +20 -0
- package/dist/commands/agents/update-agent-metadata.d.ts.map +1 -0
- package/dist/commands/agents/update-agent-metadata.js +37 -0
- package/dist/commands/agents/update-agent-metadata.js.map +1 -0
- package/dist/commands/config/init.d.ts +15 -0
- package/dist/commands/config/init.d.ts.map +1 -0
- package/dist/commands/config/init.js +78 -0
- package/dist/commands/config/init.js.map +1 -0
- package/dist/commands/config/set.d.ts +16 -0
- package/dist/commands/config/set.d.ts.map +1 -0
- package/dist/commands/config/set.js +44 -0
- package/dist/commands/config/set.js.map +1 -0
- package/dist/commands/config/show.d.ts +13 -0
- package/dist/commands/config/show.d.ts.map +1 -0
- package/dist/commands/config/show.js +53 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/facilitator/settle-permissions.d.ts +16 -0
- package/dist/commands/facilitator/settle-permissions.d.ts.map +1 -0
- package/dist/commands/facilitator/settle-permissions.js +30 -0
- package/dist/commands/facilitator/settle-permissions.js.map +1 -0
- package/dist/commands/facilitator/verify-permissions.d.ts +16 -0
- package/dist/commands/facilitator/verify-permissions.d.ts.map +1 -0
- package/dist/commands/facilitator/verify-permissions.js +30 -0
- package/dist/commands/facilitator/verify-permissions.js.map +1 -0
- package/dist/commands/organizations/connect-stripe-account.d.ts +18 -0
- package/dist/commands/organizations/connect-stripe-account.d.ts.map +1 -0
- package/dist/commands/organizations/connect-stripe-account.js +29 -0
- package/dist/commands/organizations/connect-stripe-account.js.map +1 -0
- package/dist/commands/organizations/create-member.d.ts +20 -0
- package/dist/commands/organizations/create-member.d.ts.map +1 -0
- package/dist/commands/organizations/create-member.js +34 -0
- package/dist/commands/organizations/create-member.js.map +1 -0
- package/dist/commands/organizations/get-members.d.ts +19 -0
- package/dist/commands/organizations/get-members.d.ts.map +1 -0
- package/dist/commands/organizations/get-members.js +30 -0
- package/dist/commands/organizations/get-members.js.map +1 -0
- package/dist/commands/plans/get-agents-associated-to-a-plan.d.ts +19 -0
- package/dist/commands/plans/get-agents-associated-to-a-plan.d.ts.map +1 -0
- package/dist/commands/plans/get-agents-associated-to-a-plan.js +36 -0
- package/dist/commands/plans/get-agents-associated-to-a-plan.js.map +1 -0
- package/dist/commands/plans/get-crypto-price-config.d.ts +18 -0
- package/dist/commands/plans/get-crypto-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-crypto-price-config.js +35 -0
- package/dist/commands/plans/get-crypto-price-config.js.map +1 -0
- package/dist/commands/plans/get-dynamic-credits-config.d.ts +18 -0
- package/dist/commands/plans/get-dynamic-credits-config.d.ts.map +1 -0
- package/dist/commands/plans/get-dynamic-credits-config.js +29 -0
- package/dist/commands/plans/get-dynamic-credits-config.js.map +1 -0
- package/dist/commands/plans/get-erc20-price-config.d.ts +18 -0
- package/dist/commands/plans/get-erc20-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-erc20-price-config.js +35 -0
- package/dist/commands/plans/get-erc20-price-config.js.map +1 -0
- package/dist/commands/plans/get-expirable-duration-config.d.ts +16 -0
- package/dist/commands/plans/get-expirable-duration-config.d.ts.map +1 -0
- package/dist/commands/plans/get-expirable-duration-config.js +27 -0
- package/dist/commands/plans/get-expirable-duration-config.js.map +1 -0
- package/dist/commands/plans/get-fiat-price-config.d.ts +17 -0
- package/dist/commands/plans/get-fiat-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-fiat-price-config.js +31 -0
- package/dist/commands/plans/get-fiat-price-config.js.map +1 -0
- package/dist/commands/plans/get-fixed-credits-config.d.ts +17 -0
- package/dist/commands/plans/get-fixed-credits-config.d.ts.map +1 -0
- package/dist/commands/plans/get-fixed-credits-config.js +28 -0
- package/dist/commands/plans/get-fixed-credits-config.js.map +1 -0
- package/dist/commands/plans/get-free-price-config.d.ts +15 -0
- package/dist/commands/plans/get-free-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-free-price-config.js +25 -0
- package/dist/commands/plans/get-free-price-config.js.map +1 -0
- package/dist/commands/plans/get-native-token-price-config.d.ts +17 -0
- package/dist/commands/plans/get-native-token-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-native-token-price-config.js +31 -0
- package/dist/commands/plans/get-native-token-price-config.js.map +1 -0
- package/dist/commands/plans/get-non-expirable-duration-config.d.ts +15 -0
- package/dist/commands/plans/get-non-expirable-duration-config.d.ts.map +1 -0
- package/dist/commands/plans/get-non-expirable-duration-config.js +25 -0
- package/dist/commands/plans/get-non-expirable-duration-config.js.map +1 -0
- package/dist/commands/plans/get-pay-as-you-go-credits-config.d.ts +15 -0
- package/dist/commands/plans/get-pay-as-you-go-credits-config.d.ts.map +1 -0
- package/dist/commands/plans/get-pay-as-you-go-credits-config.js +25 -0
- package/dist/commands/plans/get-pay-as-you-go-credits-config.js.map +1 -0
- package/dist/commands/plans/get-pay-as-you-go-price-config.d.ts +18 -0
- package/dist/commands/plans/get-pay-as-you-go-price-config.d.ts.map +1 -0
- package/dist/commands/plans/get-pay-as-you-go-price-config.js +35 -0
- package/dist/commands/plans/get-pay-as-you-go-price-config.js.map +1 -0
- package/dist/commands/plans/get-plan-balance.d.ts +19 -0
- package/dist/commands/plans/get-plan-balance.d.ts.map +1 -0
- package/dist/commands/plans/get-plan-balance.js +36 -0
- package/dist/commands/plans/get-plan-balance.js.map +1 -0
- package/dist/commands/plans/get-plan.d.ts +18 -0
- package/dist/commands/plans/get-plan.d.ts.map +1 -0
- package/dist/commands/plans/get-plan.js +32 -0
- package/dist/commands/plans/get-plan.js.map +1 -0
- package/dist/commands/plans/get-plans.d.ts +19 -0
- package/dist/commands/plans/get-plans.d.ts.map +1 -0
- package/dist/commands/plans/get-plans.js +30 -0
- package/dist/commands/plans/get-plans.js.map +1 -0
- package/dist/commands/plans/mint-plan-credits.d.ts +20 -0
- package/dist/commands/plans/mint-plan-credits.d.ts.map +1 -0
- package/dist/commands/plans/mint-plan-credits.js +37 -0
- package/dist/commands/plans/mint-plan-credits.js.map +1 -0
- package/dist/commands/plans/mint-plan-expirable.d.ts +21 -0
- package/dist/commands/plans/mint-plan-expirable.d.ts.map +1 -0
- package/dist/commands/plans/mint-plan-expirable.js +38 -0
- package/dist/commands/plans/mint-plan-expirable.js.map +1 -0
- package/dist/commands/plans/order-fiat-plan.d.ts +18 -0
- package/dist/commands/plans/order-fiat-plan.d.ts.map +1 -0
- package/dist/commands/plans/order-fiat-plan.js +32 -0
- package/dist/commands/plans/order-fiat-plan.js.map +1 -0
- package/dist/commands/plans/order-plan.d.ts +18 -0
- package/dist/commands/plans/order-plan.d.ts.map +1 -0
- package/dist/commands/plans/order-plan.js +32 -0
- package/dist/commands/plans/order-plan.js.map +1 -0
- package/dist/commands/plans/redeem-credits.d.ts +21 -0
- package/dist/commands/plans/redeem-credits.d.ts.map +1 -0
- package/dist/commands/plans/redeem-credits.js +38 -0
- package/dist/commands/plans/redeem-credits.js.map +1 -0
- package/dist/commands/plans/register-credits-plan.d.ts +18 -0
- package/dist/commands/plans/register-credits-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-credits-plan.js +38 -0
- package/dist/commands/plans/register-credits-plan.js.map +1 -0
- package/dist/commands/plans/register-credits-trial-plan.d.ts +18 -0
- package/dist/commands/plans/register-credits-trial-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-credits-trial-plan.js +38 -0
- package/dist/commands/plans/register-credits-trial-plan.js.map +1 -0
- package/dist/commands/plans/register-plan.d.ts +20 -0
- package/dist/commands/plans/register-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-plan.js +40 -0
- package/dist/commands/plans/register-plan.js.map +1 -0
- package/dist/commands/plans/register-time-plan.d.ts +18 -0
- package/dist/commands/plans/register-time-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-time-plan.js +38 -0
- package/dist/commands/plans/register-time-plan.js.map +1 -0
- package/dist/commands/plans/register-time-trial-plan.d.ts +18 -0
- package/dist/commands/plans/register-time-trial-plan.d.ts.map +1 -0
- package/dist/commands/plans/register-time-trial-plan.js +38 -0
- package/dist/commands/plans/register-time-trial-plan.js.map +1 -0
- package/dist/commands/plans/set-proof-required.d.ts +17 -0
- package/dist/commands/plans/set-proof-required.d.ts.map +1 -0
- package/dist/commands/plans/set-proof-required.js +31 -0
- package/dist/commands/plans/set-proof-required.js.map +1 -0
- package/dist/commands/plans/set-redemption-type.d.ts +17 -0
- package/dist/commands/plans/set-redemption-type.d.ts.map +1 -0
- package/dist/commands/plans/set-redemption-type.js +31 -0
- package/dist/commands/plans/set-redemption-type.js.map +1 -0
- package/dist/commands/x402token/get-x402-access-token.d.ts +22 -0
- package/dist/commands/x402token/get-x402-access-token.d.ts.map +1 -0
- package/dist/commands/x402token/get-x402-access-token.js +36 -0
- package/dist/commands/x402token/get-x402-access-token.js.map +1 -0
- package/dist/generator/api-scanner.d.ts +63 -0
- package/dist/generator/api-scanner.d.ts.map +1 -0
- package/dist/generator/api-scanner.js +228 -0
- package/dist/generator/api-scanner.js.map +1 -0
- package/dist/generator/command-generator.d.ts +91 -0
- package/dist/generator/command-generator.d.ts.map +1 -0
- package/dist/generator/command-generator.js +334 -0
- package/dist/generator/command-generator.js.map +1 -0
- package/dist/generator/generate.d.ts +7 -0
- package/dist/generator/generate.d.ts.map +1 -0
- package/dist/generator/generate.js +70 -0
- package/dist/generator/generate.js.map +1 -0
- package/dist/generator/sync-check.d.ts +7 -0
- package/dist/generator/sync-check.d.ts.map +1 -0
- package/dist/generator/sync-check.js +115 -0
- package/dist/generator/sync-check.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/config-manager.d.ts +27 -0
- package/dist/utils/config-manager.d.ts.map +1 -0
- package/dist/utils/config-manager.js +120 -0
- package/dist/utils/config-manager.js.map +1 -0
- package/dist/utils/output-formatter.d.ts +46 -0
- package/dist/utils/output-formatter.d.ts.map +1 -0
- package/dist/utils/output-formatter.js +113 -0
- package/dist/utils/output-formatter.js.map +1 -0
- package/oclif.manifest.json +3136 -0
- package/package.json +111 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { cosmiconfig } from 'cosmiconfig';
|
|
2
|
+
import { writeFile, mkdir } from 'fs/promises';
|
|
3
|
+
import { dirname } from 'path';
|
|
4
|
+
import { homedir } from 'os';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
const MODULE_NAME = 'nvm';
|
|
7
|
+
const DEFAULT_CONFIG_PATH = join(homedir(), '.config', 'nvm', 'config.json');
|
|
8
|
+
export class ConfigManager {
|
|
9
|
+
static instance;
|
|
10
|
+
explorer = cosmiconfig(MODULE_NAME);
|
|
11
|
+
configCache;
|
|
12
|
+
constructor() { }
|
|
13
|
+
static getInstance() {
|
|
14
|
+
if (!ConfigManager.instance) {
|
|
15
|
+
ConfigManager.instance = new ConfigManager();
|
|
16
|
+
}
|
|
17
|
+
return ConfigManager.instance;
|
|
18
|
+
}
|
|
19
|
+
async load() {
|
|
20
|
+
try {
|
|
21
|
+
// Try to load from specific config path first
|
|
22
|
+
const configPath = process.env.NVM_CONFIG || DEFAULT_CONFIG_PATH;
|
|
23
|
+
try {
|
|
24
|
+
const { readFile } = await import('fs/promises');
|
|
25
|
+
const content = await readFile(configPath, 'utf-8');
|
|
26
|
+
this.configCache = JSON.parse(content);
|
|
27
|
+
return this.configCache;
|
|
28
|
+
}
|
|
29
|
+
catch (fileError) {
|
|
30
|
+
// Fall back to cosmiconfig search
|
|
31
|
+
const result = await this.explorer.search();
|
|
32
|
+
if (result && !result.isEmpty) {
|
|
33
|
+
this.configCache = result.config;
|
|
34
|
+
return this.configCache;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async save(config, path) {
|
|
44
|
+
const targetPath = path || process.env.NVM_CONFIG || DEFAULT_CONFIG_PATH;
|
|
45
|
+
await mkdir(dirname(targetPath), { recursive: true });
|
|
46
|
+
await writeFile(targetPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
47
|
+
this.configCache = config;
|
|
48
|
+
}
|
|
49
|
+
async get(key, profile) {
|
|
50
|
+
const config = this.configCache || (await this.load());
|
|
51
|
+
if (!config) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const profileName = profile || config.activeProfile;
|
|
55
|
+
const profileConfig = config.profiles[profileName];
|
|
56
|
+
if (!key) {
|
|
57
|
+
return profileConfig;
|
|
58
|
+
}
|
|
59
|
+
return profileConfig?.[key];
|
|
60
|
+
}
|
|
61
|
+
async set(key, value, profile) {
|
|
62
|
+
let config = this.configCache || (await this.load());
|
|
63
|
+
if (!config) {
|
|
64
|
+
// Create default config
|
|
65
|
+
config = {
|
|
66
|
+
profiles: {
|
|
67
|
+
default: {},
|
|
68
|
+
},
|
|
69
|
+
activeProfile: 'default',
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const profileName = profile || config.activeProfile;
|
|
73
|
+
if (!config.profiles[profileName]) {
|
|
74
|
+
config.profiles[profileName] = {};
|
|
75
|
+
}
|
|
76
|
+
config.profiles[profileName][key] = value;
|
|
77
|
+
await this.save(config);
|
|
78
|
+
}
|
|
79
|
+
async getActiveProfile() {
|
|
80
|
+
const config = this.configCache || (await this.load());
|
|
81
|
+
return config?.activeProfile || 'default';
|
|
82
|
+
}
|
|
83
|
+
async setActiveProfile(profileName) {
|
|
84
|
+
let config = this.configCache || (await this.load());
|
|
85
|
+
if (!config) {
|
|
86
|
+
config = {
|
|
87
|
+
profiles: {
|
|
88
|
+
[profileName]: {},
|
|
89
|
+
},
|
|
90
|
+
activeProfile: profileName,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
config.activeProfile = profileName;
|
|
95
|
+
if (!config.profiles[profileName]) {
|
|
96
|
+
config.profiles[profileName] = {};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
await this.save(config);
|
|
100
|
+
}
|
|
101
|
+
async listProfiles() {
|
|
102
|
+
const config = this.configCache || (await this.load());
|
|
103
|
+
return config ? Object.keys(config.profiles) : [];
|
|
104
|
+
}
|
|
105
|
+
async deleteProfile(profileName) {
|
|
106
|
+
const config = this.configCache || (await this.load());
|
|
107
|
+
if (!config) {
|
|
108
|
+
throw new Error('No configuration found');
|
|
109
|
+
}
|
|
110
|
+
if (profileName === config.activeProfile) {
|
|
111
|
+
throw new Error('Cannot delete active profile');
|
|
112
|
+
}
|
|
113
|
+
delete config.profiles[profileName];
|
|
114
|
+
await this.save(config);
|
|
115
|
+
}
|
|
116
|
+
getDefaultConfigPath() {
|
|
117
|
+
return DEFAULT_CONFIG_PATH;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=config-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/utils/config-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type OutputFormat = 'table' | 'json' | 'quiet';
|
|
2
|
+
export declare class OutputFormatter {
|
|
3
|
+
private format;
|
|
4
|
+
constructor(format?: OutputFormat);
|
|
5
|
+
/**
|
|
6
|
+
* Format and output data based on the configured format
|
|
7
|
+
*/
|
|
8
|
+
output(data: any, options?: TableOptions): void;
|
|
9
|
+
/**
|
|
10
|
+
* Output a table for array data
|
|
11
|
+
*/
|
|
12
|
+
private outputTable;
|
|
13
|
+
/**
|
|
14
|
+
* Output a single object in key-value format
|
|
15
|
+
*/
|
|
16
|
+
private outputObject;
|
|
17
|
+
/**
|
|
18
|
+
* Get nested value from object using dot notation
|
|
19
|
+
*/
|
|
20
|
+
private getNestedValue;
|
|
21
|
+
/**
|
|
22
|
+
* Output an error message
|
|
23
|
+
*/
|
|
24
|
+
error(message: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Output a success message
|
|
27
|
+
*/
|
|
28
|
+
success(message: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Output a warning message
|
|
31
|
+
*/
|
|
32
|
+
warning(message: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Output an info message
|
|
35
|
+
*/
|
|
36
|
+
info(message: string): void;
|
|
37
|
+
}
|
|
38
|
+
export interface TableColumn {
|
|
39
|
+
header: string;
|
|
40
|
+
key: string;
|
|
41
|
+
formatter?: (value: any) => string;
|
|
42
|
+
}
|
|
43
|
+
export interface TableOptions {
|
|
44
|
+
columns: TableColumn[];
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=output-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/output-formatter.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;AAErD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,GAAE,YAAsB;IAI1C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAmB/C;;OAEG;IACH,OAAO,CAAC,WAAW;IAyBnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAK5B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAA;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import Table from 'cli-table3';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
export class OutputFormatter {
|
|
4
|
+
format;
|
|
5
|
+
constructor(format = 'table') {
|
|
6
|
+
this.format = format;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Format and output data based on the configured format
|
|
10
|
+
*/
|
|
11
|
+
output(data, options) {
|
|
12
|
+
switch (this.format) {
|
|
13
|
+
case 'json':
|
|
14
|
+
console.log(JSON.stringify(data, null, 2));
|
|
15
|
+
break;
|
|
16
|
+
case 'quiet':
|
|
17
|
+
// No output in quiet mode
|
|
18
|
+
break;
|
|
19
|
+
case 'table':
|
|
20
|
+
default:
|
|
21
|
+
if (Array.isArray(data) && options) {
|
|
22
|
+
this.outputTable(data, options);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.outputObject(data);
|
|
26
|
+
}
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Output a table for array data
|
|
32
|
+
*/
|
|
33
|
+
outputTable(data, options) {
|
|
34
|
+
if (data.length === 0) {
|
|
35
|
+
console.log(chalk.yellow('No data found'));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const table = new Table({
|
|
39
|
+
head: options.columns.map((col) => chalk.cyan(col.header)),
|
|
40
|
+
style: {
|
|
41
|
+
head: [],
|
|
42
|
+
border: [],
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
data.forEach((item) => {
|
|
46
|
+
const row = options.columns.map((col) => {
|
|
47
|
+
const value = this.getNestedValue(item, col.key);
|
|
48
|
+
return col.formatter ? col.formatter(value) : String(value ?? '');
|
|
49
|
+
});
|
|
50
|
+
table.push(row);
|
|
51
|
+
});
|
|
52
|
+
console.log(table.toString());
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Output a single object in key-value format
|
|
56
|
+
*/
|
|
57
|
+
outputObject(data) {
|
|
58
|
+
if (typeof data !== 'object' || data === null) {
|
|
59
|
+
console.log(data);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const table = new Table({
|
|
63
|
+
style: {
|
|
64
|
+
head: [],
|
|
65
|
+
border: [],
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
Object.entries(data).forEach(([key, value]) => {
|
|
69
|
+
const formattedValue = typeof value === 'object' ? JSON.stringify(value, null, 2) : String(value);
|
|
70
|
+
table.push([chalk.cyan(key), formattedValue]);
|
|
71
|
+
});
|
|
72
|
+
console.log(table.toString());
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get nested value from object using dot notation
|
|
76
|
+
*/
|
|
77
|
+
getNestedValue(obj, path) {
|
|
78
|
+
return path.split('.').reduce((current, key) => current?.[key], obj);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Output an error message
|
|
82
|
+
*/
|
|
83
|
+
error(message) {
|
|
84
|
+
if (this.format !== 'quiet') {
|
|
85
|
+
console.error(chalk.red('Error:'), message);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Output a success message
|
|
90
|
+
*/
|
|
91
|
+
success(message) {
|
|
92
|
+
if (this.format !== 'quiet') {
|
|
93
|
+
console.log(chalk.green('✓'), message);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Output a warning message
|
|
98
|
+
*/
|
|
99
|
+
warning(message) {
|
|
100
|
+
if (this.format !== 'quiet') {
|
|
101
|
+
console.log(chalk.yellow('⚠'), message);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Output an info message
|
|
106
|
+
*/
|
|
107
|
+
info(message) {
|
|
108
|
+
if (this.format !== 'quiet') {
|
|
109
|
+
console.log(chalk.blue('ℹ'), message);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=output-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-formatter.js","sourceRoot":"","sources":["../../src/utils/output-formatter.ts"],"names":[],"mappings":"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"}
|