@newpeak/barista-cli 0.1.14 ā 0.1.16
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.ja.md +211 -579
- package/README.md +208 -643
- package/README.vi.md +212 -586
- package/README.zh.md +340 -0
- package/dist/commands/arabica/access/index.d.ts +3 -0
- package/dist/commands/arabica/access/index.d.ts.map +1 -0
- package/dist/commands/arabica/access/index.js +15 -0
- package/dist/commands/arabica/access/index.js.map +1 -0
- package/dist/commands/arabica/access/url.d.ts +3 -0
- package/dist/commands/arabica/access/url.d.ts.map +1 -0
- package/dist/commands/arabica/access/url.js +101 -0
- package/dist/commands/arabica/access/url.js.map +1 -0
- package/dist/commands/arabica/auth/index.d.ts.map +1 -1
- package/dist/commands/arabica/auth/index.js +24 -5
- package/dist/commands/arabica/auth/index.js.map +1 -1
- package/dist/commands/arabica/enterprise/get.d.ts +3 -0
- package/dist/commands/arabica/enterprise/get.d.ts.map +1 -0
- package/dist/commands/arabica/enterprise/get.js +94 -0
- package/dist/commands/arabica/enterprise/get.js.map +1 -0
- package/dist/commands/arabica/enterprise/index.d.ts +3 -0
- package/dist/commands/arabica/enterprise/index.d.ts.map +1 -0
- package/dist/commands/arabica/enterprise/index.js +18 -0
- package/dist/commands/arabica/enterprise/index.js.map +1 -0
- package/dist/commands/arabica/enterprise/list.d.ts +3 -0
- package/dist/commands/arabica/enterprise/list.d.ts.map +1 -0
- package/dist/commands/arabica/enterprise/list.js +71 -0
- package/dist/commands/arabica/enterprise/list.js.map +1 -0
- package/dist/commands/arabica/enterprises/delete.d.ts +3 -0
- package/dist/commands/arabica/enterprises/delete.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/delete.js +89 -0
- package/dist/commands/arabica/enterprises/delete.js.map +1 -0
- package/dist/commands/arabica/enterprises/get.d.ts +3 -0
- package/dist/commands/arabica/enterprises/get.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/get.js +103 -0
- package/dist/commands/arabica/enterprises/get.js.map +1 -0
- package/dist/commands/arabica/enterprises/index.d.ts +3 -0
- package/dist/commands/arabica/enterprises/index.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/index.js +27 -0
- package/dist/commands/arabica/enterprises/index.js.map +1 -0
- package/dist/commands/arabica/enterprises/list.d.ts +3 -0
- package/dist/commands/arabica/enterprises/list.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/list.js +84 -0
- package/dist/commands/arabica/enterprises/list.js.map +1 -0
- package/dist/commands/arabica/enterprises/register.d.ts +3 -0
- package/dist/commands/arabica/enterprises/register.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/register.js +175 -0
- package/dist/commands/arabica/enterprises/register.js.map +1 -0
- package/dist/commands/arabica/enterprises/update.d.ts +3 -0
- package/dist/commands/arabica/enterprises/update.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/update.js +130 -0
- package/dist/commands/arabica/enterprises/update.js.map +1 -0
- package/dist/commands/arabica/index.d.ts.map +1 -1
- package/dist/commands/arabica/index.js +17 -4
- package/dist/commands/arabica/index.js.map +1 -1
- package/dist/commands/arabica/invoices/download.d.ts +3 -0
- package/dist/commands/arabica/invoices/download.d.ts.map +1 -0
- package/dist/commands/arabica/invoices/download.js +55 -0
- package/dist/commands/arabica/invoices/download.js.map +1 -0
- package/dist/commands/arabica/invoices/get.d.ts +3 -0
- package/dist/commands/arabica/invoices/get.d.ts.map +1 -0
- package/dist/commands/arabica/invoices/get.js +53 -0
- package/dist/commands/arabica/invoices/get.js.map +1 -0
- package/dist/commands/arabica/invoices/index.d.ts +3 -0
- package/dist/commands/arabica/invoices/index.d.ts.map +1 -0
- package/dist/commands/arabica/invoices/index.js +21 -0
- package/dist/commands/arabica/invoices/index.js.map +1 -0
- package/dist/commands/arabica/invoices/list.d.ts +3 -0
- package/dist/commands/arabica/invoices/list.d.ts.map +1 -0
- package/dist/commands/arabica/invoices/list.js +75 -0
- package/dist/commands/arabica/invoices/list.js.map +1 -0
- package/dist/commands/arabica/orders/cancel.d.ts +3 -0
- package/dist/commands/arabica/orders/cancel.d.ts.map +1 -0
- package/dist/commands/arabica/orders/cancel.js +133 -0
- package/dist/commands/arabica/orders/cancel.js.map +1 -0
- package/dist/commands/arabica/orders/get.d.ts +3 -0
- package/dist/commands/arabica/orders/get.d.ts.map +1 -0
- package/dist/commands/arabica/orders/get.js +145 -0
- package/dist/commands/arabica/orders/get.js.map +1 -0
- package/dist/commands/arabica/orders/index.d.ts +3 -0
- package/dist/commands/arabica/orders/index.d.ts.map +1 -0
- package/dist/commands/arabica/orders/index.js +24 -0
- package/dist/commands/arabica/orders/index.js.map +1 -0
- package/dist/commands/arabica/orders/list.d.ts +3 -0
- package/dist/commands/arabica/orders/list.d.ts.map +1 -0
- package/dist/commands/arabica/orders/list.js +111 -0
- package/dist/commands/arabica/orders/list.js.map +1 -0
- package/dist/commands/arabica/orders/submit.d.ts +3 -0
- package/dist/commands/arabica/orders/submit.d.ts.map +1 -0
- package/dist/commands/arabica/orders/submit.js +221 -0
- package/dist/commands/arabica/orders/submit.js.map +1 -0
- package/dist/commands/arabica/plans/compare.d.ts +3 -0
- package/dist/commands/arabica/plans/compare.d.ts.map +1 -0
- package/dist/commands/arabica/plans/compare.js +115 -0
- package/dist/commands/arabica/plans/compare.js.map +1 -0
- package/dist/commands/arabica/plans/get.d.ts +3 -0
- package/dist/commands/arabica/plans/get.d.ts.map +1 -0
- package/dist/commands/arabica/plans/get.js +94 -0
- package/dist/commands/arabica/plans/get.js.map +1 -0
- package/dist/commands/arabica/plans/index.d.ts +3 -0
- package/dist/commands/arabica/plans/index.d.ts.map +1 -0
- package/dist/commands/arabica/plans/index.js +21 -0
- package/dist/commands/arabica/plans/index.js.map +1 -0
- package/dist/commands/arabica/plans/list.d.ts +3 -0
- package/dist/commands/arabica/plans/list.d.ts.map +1 -0
- package/dist/commands/arabica/plans/list.js +69 -0
- package/dist/commands/arabica/plans/list.js.map +1 -0
- package/dist/commands/arabica/subscription/current.d.ts +3 -0
- package/dist/commands/arabica/subscription/current.d.ts.map +1 -0
- package/dist/commands/arabica/subscription/current.js +76 -0
- package/dist/commands/arabica/subscription/current.js.map +1 -0
- package/dist/commands/arabica/subscription/index.d.ts +3 -0
- package/dist/commands/arabica/subscription/index.d.ts.map +1 -0
- package/dist/commands/arabica/subscription/index.js +15 -0
- package/dist/commands/arabica/subscription/index.js.map +1 -0
- package/dist/commands/liberica/orgs/batch-delete.d.ts +3 -0
- package/dist/commands/liberica/orgs/batch-delete.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/batch-delete.js +109 -0
- package/dist/commands/liberica/orgs/batch-delete.js.map +1 -0
- package/dist/commands/liberica/orgs/create.d.ts +3 -0
- package/dist/commands/liberica/orgs/create.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/create.js +131 -0
- package/dist/commands/liberica/orgs/create.js.map +1 -0
- package/dist/commands/liberica/orgs/disable.d.ts +3 -0
- package/dist/commands/liberica/orgs/disable.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/disable.js +98 -0
- package/dist/commands/liberica/orgs/disable.js.map +1 -0
- package/dist/commands/liberica/orgs/enable.d.ts +3 -0
- package/dist/commands/liberica/orgs/enable.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/enable.js +98 -0
- package/dist/commands/liberica/orgs/enable.js.map +1 -0
- package/dist/commands/liberica/orgs/get.d.ts +3 -0
- package/dist/commands/liberica/orgs/get.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/get.js +79 -0
- package/dist/commands/liberica/orgs/get.js.map +1 -0
- package/dist/commands/liberica/orgs/index.d.ts.map +1 -1
- package/dist/commands/liberica/orgs/index.js +15 -21
- package/dist/commands/liberica/orgs/index.js.map +1 -1
- package/dist/commands/liberica/orgs/list.d.ts +3 -0
- package/dist/commands/liberica/orgs/list.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/list.js +51 -0
- package/dist/commands/liberica/orgs/list.js.map +1 -0
- package/dist/commands/liberica/orgs/update.d.ts +3 -0
- package/dist/commands/liberica/orgs/update.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/update.js +136 -0
- package/dist/commands/liberica/orgs/update.js.map +1 -0
- package/dist/core/api/client.d.ts +78 -1
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +832 -76
- package/dist/core/api/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/types/enterprise.d.ts +60 -0
- package/dist/types/enterprise.d.ts.map +1 -0
- package/dist/types/enterprise.js +5 -0
- package/dist/types/enterprise.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/invoice.d.ts +39 -0
- package/dist/types/invoice.d.ts.map +1 -0
- package/dist/types/invoice.js +5 -0
- package/dist/types/invoice.js.map +1 -0
- package/dist/types/member-product.d.ts +53 -0
- package/dist/types/member-product.d.ts.map +1 -0
- package/dist/types/member-product.js +2 -0
- package/dist/types/member-product.js.map +1 -0
- package/dist/types/order.d.ts +108 -0
- package/dist/types/order.d.ts.map +1 -0
- package/dist/types/order.js +5 -0
- package/dist/types/order.js.map +1 -0
- package/dist/types/org.d.ts +38 -0
- package/dist/types/org.d.ts.map +1 -1
- package/dist/types/subscription.d.ts +35 -0
- package/dist/types/subscription.d.ts.map +1 -0
- package/dist/types/subscription.js +5 -0
- package/dist/types/subscription.js.map +1 -0
- package/package.json +1 -1
- package/README.en.md +0 -714
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import Table from 'cli-table3';
|
|
4
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
6
|
+
export function createSubscriptionCurrentCommand() {
|
|
7
|
+
const currentCommand = new Command('current');
|
|
8
|
+
currentCommand.description('View current subscription information');
|
|
9
|
+
currentCommand
|
|
10
|
+
.option('--env <environment>', 'Environment (dev|test|prod-cn|prod-jp)')
|
|
11
|
+
.option('--output <format>', 'Output format (table|json|yaml)', 'table')
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
const context = configManager.getCurrentContext();
|
|
14
|
+
const environment = options.env || context.environment;
|
|
15
|
+
console.log(chalk.bold('\nš Current Subscription\n'));
|
|
16
|
+
try {
|
|
17
|
+
const response = await apiClient.getCurrentSubscription(environment);
|
|
18
|
+
if (!response.success) {
|
|
19
|
+
console.error(chalk.red(`\nā Failed to get subscription: ${response.error?.message || 'Unknown error'}`));
|
|
20
|
+
if (response.error?.code) {
|
|
21
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
22
|
+
}
|
|
23
|
+
console.error();
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const pageData = response.data;
|
|
27
|
+
const subscriptions = pageData?.rows || [];
|
|
28
|
+
if (!subscriptions || subscriptions.length === 0) {
|
|
29
|
+
if (options.output === 'json') {
|
|
30
|
+
console.log(JSON.stringify({ success: true, data: { items: [] } }, null, 2));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
console.log(chalk.yellow(' No active subscription found\n'));
|
|
34
|
+
console.log(chalk.gray(' Use "barista arabica plans list" to browse available plans\n'));
|
|
35
|
+
}
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (options.output === 'json') {
|
|
39
|
+
console.log(JSON.stringify({ success: true, data: { items: subscriptions } }, null, 2));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const subscription = subscriptions[0];
|
|
43
|
+
displaySubscriptionTable(subscription);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
console.error(chalk.red(`\nā Unexpected error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return currentCommand;
|
|
51
|
+
}
|
|
52
|
+
function displaySubscriptionTable(subscription) {
|
|
53
|
+
const statusIcon = subscription.status === 'active' ? 'ā
' : subscription.status === 'trial' ? 'ā³' : subscription.status === 'expired' ? 'ā' : 'ā';
|
|
54
|
+
const statusColor = subscription.status === 'active' ? chalk.green : subscription.status === 'trial' ? chalk.yellow : chalk.red;
|
|
55
|
+
const autoRenewIcon = subscription.autoRenew ? 'ā' : 'ā';
|
|
56
|
+
const autoRenewText = subscription.autoRenew ? 'Enabled' : 'Disabled';
|
|
57
|
+
const daysRemaining = calculateDaysRemaining(subscription.endDate);
|
|
58
|
+
const table = new Table({
|
|
59
|
+
style: {
|
|
60
|
+
border: [],
|
|
61
|
+
head: [],
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
table.push([chalk.bold('Enterprise'), subscription.enterpriseName], [chalk.bold('Product'), subscription.productName], [chalk.bold('Status'), statusColor(`${statusIcon} ${subscription.status.charAt(0).toUpperCase() + subscription.status.slice(1)}`)], [chalk.bold('Start Date'), subscription.startDate.split('T')[0]], [chalk.bold('End Date'), subscription.endDate.split('T')[0]], [chalk.bold('Auto-Renew'), subscription.autoRenew ? chalk.green(`${autoRenewIcon} ${autoRenewText}`) : chalk.gray(`${autoRenewIcon} ${autoRenewText}`)], [{ colSpan: 2, content: chalk.bold('\nSeats') }], [chalk.bold('Total'), subscription.seats.total.toString()], [chalk.bold('Used'), subscription.seats.used.toString()], [chalk.bold('Available'), (subscription.seats.total - subscription.seats.used).toString()]);
|
|
65
|
+
console.log(table.toString());
|
|
66
|
+
console.log();
|
|
67
|
+
console.log(chalk.bold(`Days remaining: `) + (daysRemaining > 0 ? chalk.green(daysRemaining.toString()) : chalk.red('Expired')));
|
|
68
|
+
console.log();
|
|
69
|
+
}
|
|
70
|
+
function calculateDaysRemaining(endDate) {
|
|
71
|
+
const end = new Date(endDate);
|
|
72
|
+
const now = new Date();
|
|
73
|
+
const diff = end.getTime() - now.getTime();
|
|
74
|
+
return Math.ceil(diff / (1000 * 60 * 60 * 24));
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=current.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.js","sourceRoot":"","sources":["../../../../src/commands/arabica/subscription/current.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/arabica/subscription/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,gCAAgC,IAAI,OAAO,CAa1D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { createSubscriptionCurrentCommand } from './current.js';
|
|
4
|
+
export function createArabicaSubscriptionCommand() {
|
|
5
|
+
const subscriptionCommand = new Command('subscription');
|
|
6
|
+
subscriptionCommand.description('Manage subscription status on the Arabica platform');
|
|
7
|
+
subscriptionCommand.addCommand(createSubscriptionCurrentCommand());
|
|
8
|
+
subscriptionCommand.action(() => {
|
|
9
|
+
console.log(chalk.bold('\nš Arabica Subscription Commands\n'));
|
|
10
|
+
console.log(' Use "barista arabica subscription current" to view current subscription status');
|
|
11
|
+
console.log('\n Run "barista arabica subscription <command> --help" for more details\n');
|
|
12
|
+
});
|
|
13
|
+
return subscriptionCommand;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/arabica/subscription/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,UAAU,gCAAgC;IAC9C,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,mBAAmB,CAAC,WAAW,CAAC,oDAAoD,CAAC,CAAC;IAEtF,mBAAmB,CAAC,UAAU,CAAC,gCAAgC,EAAE,CAAC,CAAC;IAEnE,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-delete.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/orgs/batch-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,oCAAoC,IAAI,OAAO,CA2G9D"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
5
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
6
|
+
export function createOrganizationBatchDeleteCommand() {
|
|
7
|
+
const deleteCommand = new Command('batch-delete');
|
|
8
|
+
deleteCommand
|
|
9
|
+
.description('Batch delete organizations')
|
|
10
|
+
.option('-i, --ids <ids>', 'Organization IDs (comma-separated, e.g., 1,2,3)')
|
|
11
|
+
.option('-f, --force', 'Skip confirmation prompt')
|
|
12
|
+
.option('--dry-run', 'Preview the operation without executing')
|
|
13
|
+
.option('--json', 'Output as JSON');
|
|
14
|
+
deleteCommand.action(async (options) => {
|
|
15
|
+
const context = configManager.getCurrentContext();
|
|
16
|
+
const environment = context.environment;
|
|
17
|
+
const tenant = context.tenant;
|
|
18
|
+
const jsonOutput = options.json === true;
|
|
19
|
+
let idsStr = options.ids;
|
|
20
|
+
if (!idsStr) {
|
|
21
|
+
const { inputIds } = await inquirer.prompt([
|
|
22
|
+
{
|
|
23
|
+
type: 'input',
|
|
24
|
+
name: 'inputIds',
|
|
25
|
+
message: 'Enter organization IDs (comma-separated):',
|
|
26
|
+
validate: (input) => input.trim().length > 0 || 'Organization IDs are required',
|
|
27
|
+
},
|
|
28
|
+
]);
|
|
29
|
+
idsStr = inputIds;
|
|
30
|
+
}
|
|
31
|
+
const orgIdList = idsStr.split(',').map(id => id.trim()).filter(id => id.length > 0);
|
|
32
|
+
if (orgIdList.length === 0) {
|
|
33
|
+
if (jsonOutput) {
|
|
34
|
+
console.log(JSON.stringify({ success: false, error: { code: 'INVALID_IDS', message: 'No valid organization IDs provided' } }));
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
console.error(chalk.red('\nā No valid organization IDs provided\n'));
|
|
38
|
+
}
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
if (!jsonOutput) {
|
|
42
|
+
console.log(chalk.bold(`\nšļø Batch Delete Organizations (${environment})\n`));
|
|
43
|
+
console.log(chalk.gray(` Organization IDs: ${orgIdList.join(', ')}`));
|
|
44
|
+
}
|
|
45
|
+
if (options.dryRun) {
|
|
46
|
+
if (jsonOutput) {
|
|
47
|
+
console.log(JSON.stringify({ success: true, dryRun: true, orgIdList }));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.log(chalk.cyan('\nš Dry-Run Mode: No actual API call will be made\n'));
|
|
51
|
+
console.log(chalk.gray(` This operation will delete ${orgIdList.length} organization(s).`));
|
|
52
|
+
console.log();
|
|
53
|
+
}
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (!options.force) {
|
|
57
|
+
const { confirm } = await inquirer.prompt([
|
|
58
|
+
{
|
|
59
|
+
type: 'confirm',
|
|
60
|
+
name: 'confirm',
|
|
61
|
+
message: `Delete ${orgIdList.length} organization(s)? This action cannot be undone.`,
|
|
62
|
+
default: false,
|
|
63
|
+
},
|
|
64
|
+
]);
|
|
65
|
+
if (!confirm) {
|
|
66
|
+
console.log(chalk.gray('\n Operation cancelled.\n'));
|
|
67
|
+
process.exit(0);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const response = await apiClient.batchDeleteOrganizations(environment, tenant, orgIdList);
|
|
72
|
+
if (response.success) {
|
|
73
|
+
if (jsonOutput) {
|
|
74
|
+
console.log(JSON.stringify({ success: true, orgIdList }));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log(chalk.green(`\nā ${orgIdList.length} organization(s) deleted successfully\n`));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const errorMsg = response.error?.message || 'Unknown error';
|
|
82
|
+
const errorCode = response.error?.code || 'DELETE_ERROR';
|
|
83
|
+
if (jsonOutput) {
|
|
84
|
+
console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
console.error(chalk.red(`\nā Failed to delete organizations: ${errorMsg}`));
|
|
88
|
+
if (response.error?.code) {
|
|
89
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
90
|
+
}
|
|
91
|
+
console.error();
|
|
92
|
+
}
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
98
|
+
if (jsonOutput) {
|
|
99
|
+
console.log(JSON.stringify({ success: false, error: { code: 'ERROR', message: errMsg } }));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.error(chalk.red(`\nā Error: ${errMsg}\n`));
|
|
103
|
+
}
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
return deleteCommand;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=batch-delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-delete.js","sourceRoot":"","sources":["../../../../src/commands/liberica/orgs/batch-delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/orgs/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,+BAA+B,IAAI,OAAO,CAuHzD"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
5
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
6
|
+
function formatTable(data) {
|
|
7
|
+
const lines = [];
|
|
8
|
+
lines.push(` ${chalk.gray('Name:')} ${data.orgName}`);
|
|
9
|
+
if (data.orgCode)
|
|
10
|
+
lines.push(` ${chalk.gray('Code:')} ${data.orgCode}`);
|
|
11
|
+
if (data.orgParentId && data.orgParentId !== '-1')
|
|
12
|
+
lines.push(` ${chalk.gray('Parent ID:')} ${data.orgParentId}`);
|
|
13
|
+
if (data.orgShortName)
|
|
14
|
+
lines.push(` ${chalk.gray('Short Name:')} ${data.orgShortName}`);
|
|
15
|
+
if (data.orgSort !== undefined)
|
|
16
|
+
lines.push(` ${chalk.gray('Sort:')} ${data.orgSort}`);
|
|
17
|
+
if (data.remark)
|
|
18
|
+
lines.push(` ${chalk.gray('Remark:')} ${data.remark}`);
|
|
19
|
+
return lines.join('\n');
|
|
20
|
+
}
|
|
21
|
+
export function createOrganizationCreateCommand() {
|
|
22
|
+
const cmd = new Command('create');
|
|
23
|
+
cmd.description('Create a new organization (department)');
|
|
24
|
+
cmd
|
|
25
|
+
.option('-n, --name <name>', 'Organization name (required)')
|
|
26
|
+
.option('-c, --code <code>', 'Organization code (auto-generated if empty)')
|
|
27
|
+
.option('-p, --parent-id <parentId>', 'Parent organization ID (-1 for top-level)')
|
|
28
|
+
.option('-s, --short-name <shortName>', 'Organization short name')
|
|
29
|
+
.option('--sort <sort>', 'Sort order number')
|
|
30
|
+
.option('-r, --remark <remark>', 'Organization remark')
|
|
31
|
+
.option('--dry-run', 'Preview without making API call')
|
|
32
|
+
.option('--json', 'Output as JSON');
|
|
33
|
+
cmd.action(async () => {
|
|
34
|
+
const context = configManager.getCurrentContext();
|
|
35
|
+
const opts = cmd.opts();
|
|
36
|
+
const environment = opts.env || context.environment;
|
|
37
|
+
const tenant = opts.tenant || context.tenant;
|
|
38
|
+
const jsonOutput = opts.json === true;
|
|
39
|
+
let name = opts.name;
|
|
40
|
+
const code = opts.code;
|
|
41
|
+
const parentId = opts.parentId;
|
|
42
|
+
const shortName = opts.shortName;
|
|
43
|
+
const sort = opts.sort;
|
|
44
|
+
const remark = opts.remark;
|
|
45
|
+
const dryRun = opts.dryRun === true;
|
|
46
|
+
if (!name) {
|
|
47
|
+
const { inputName } = await inquirer.prompt([
|
|
48
|
+
{
|
|
49
|
+
type: 'input',
|
|
50
|
+
name: 'inputName',
|
|
51
|
+
message: 'Enter organization name:',
|
|
52
|
+
validate: (input) => input.trim().length > 0 || 'Organization name is required',
|
|
53
|
+
},
|
|
54
|
+
]);
|
|
55
|
+
name = inputName;
|
|
56
|
+
}
|
|
57
|
+
const resolvedParentId = parentId || '-1';
|
|
58
|
+
const resolvedSort = sort ? parseInt(sort, 10) : 0;
|
|
59
|
+
const data = {
|
|
60
|
+
orgName: name,
|
|
61
|
+
orgCode: code,
|
|
62
|
+
orgParentId: resolvedParentId,
|
|
63
|
+
orgShortName: shortName,
|
|
64
|
+
orgSort: resolvedSort,
|
|
65
|
+
remark: remark,
|
|
66
|
+
};
|
|
67
|
+
if (dryRun) {
|
|
68
|
+
if (jsonOutput) {
|
|
69
|
+
console.log(JSON.stringify({ success: true, dryRun: true, data }));
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
console.log(chalk.bold('\nš Dry-Run Mode: No changes will be made\n'));
|
|
73
|
+
console.log(' Organization to be created:');
|
|
74
|
+
console.log(formatTable(data));
|
|
75
|
+
console.log();
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
// Auto-generate orgCode if not provided
|
|
80
|
+
let resolvedCode = code;
|
|
81
|
+
if (!resolvedCode) {
|
|
82
|
+
const codeResponse = await apiClient.getCodeByType(context.environment, context.tenant, 'TenantOrganizationCode');
|
|
83
|
+
if (codeResponse.success && codeResponse.data) {
|
|
84
|
+
resolvedCode = codeResponse.data;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const requestData = {
|
|
88
|
+
orgName: name,
|
|
89
|
+
orgCode: resolvedCode,
|
|
90
|
+
orgParentId: resolvedParentId,
|
|
91
|
+
orgShortName: shortName,
|
|
92
|
+
orgSort: resolvedSort,
|
|
93
|
+
remark: remark,
|
|
94
|
+
};
|
|
95
|
+
if (!jsonOutput) {
|
|
96
|
+
console.log(chalk.bold('\nš Creating Organization\n'));
|
|
97
|
+
}
|
|
98
|
+
const response = await apiClient.createOrganization(environment, tenant, requestData);
|
|
99
|
+
if (!response.success) {
|
|
100
|
+
const errorMsg = response.error?.message || 'Failed to create organization';
|
|
101
|
+
const errorCode = response.error?.code || 'CREATE_ORGANIZATION_ERROR';
|
|
102
|
+
if (jsonOutput) {
|
|
103
|
+
console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
console.error(chalk.red(`\nā Failed to create organization: ${errorMsg}`));
|
|
107
|
+
if (response.error?.code) {
|
|
108
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
109
|
+
}
|
|
110
|
+
console.error();
|
|
111
|
+
}
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
const org = response.data;
|
|
115
|
+
if (jsonOutput) {
|
|
116
|
+
console.log(JSON.stringify({ success: true, data: org }));
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.log(chalk.green('ā Organization created successfully\n'));
|
|
120
|
+
if (org?.orgId)
|
|
121
|
+
console.log(` ${chalk.gray('Organization ID:')} ${chalk.green(org.orgId)}`);
|
|
122
|
+
if (org?.orgName)
|
|
123
|
+
console.log(` ${chalk.gray('Name:')} ${org.orgName}`);
|
|
124
|
+
if (org?.orgCode)
|
|
125
|
+
console.log(` ${chalk.gray('Code:')} ${org.orgCode}`);
|
|
126
|
+
console.log();
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
return cmd;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/liberica/orgs/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/orgs/disable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,gCAAgC,IAAI,OAAO,CAiG1D"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
5
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
6
|
+
export function createOrganizationDisableCommand() {
|
|
7
|
+
const disableCommand = new Command('disable');
|
|
8
|
+
disableCommand
|
|
9
|
+
.description('Disable (deactivate) an organization')
|
|
10
|
+
.argument('<id>', 'Organization ID')
|
|
11
|
+
.option('--force', 'Skip confirmation prompt')
|
|
12
|
+
.option('--dry-run', 'Preview the operation without executing')
|
|
13
|
+
.option('--json', 'Output as JSON');
|
|
14
|
+
disableCommand.action(async (id, options) => {
|
|
15
|
+
const context = configManager.getCurrentContext();
|
|
16
|
+
const environment = context.environment;
|
|
17
|
+
const tenant = context.tenant;
|
|
18
|
+
const jsonOutput = options.json === true;
|
|
19
|
+
const orgId = id;
|
|
20
|
+
if (!orgId || orgId.trim() === '') {
|
|
21
|
+
console.error(chalk.red('\nā Invalid organization ID\n'));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
console.log(chalk.bold(`\nš¢ Disable Organization (${environment})\n`));
|
|
25
|
+
console.log(chalk.gray(` Organization ID: ${orgId}`));
|
|
26
|
+
if (options.dryRun) {
|
|
27
|
+
if (jsonOutput) {
|
|
28
|
+
console.log(JSON.stringify({ success: true, dryRun: true, orgId }));
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.log(chalk.cyan('\nš Dry-Run Mode: No actual API call will be made\n'));
|
|
32
|
+
console.log(chalk.gray(' This operation will disable the organization.'));
|
|
33
|
+
console.log();
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
let org;
|
|
38
|
+
try {
|
|
39
|
+
const orgResponse = await apiClient.getOrganization(environment, tenant, orgId);
|
|
40
|
+
if (!orgResponse.success || !orgResponse.data) {
|
|
41
|
+
console.error(chalk.red(`\nā Organization not found: ${orgId}`));
|
|
42
|
+
if (orgResponse.error?.message) {
|
|
43
|
+
console.error(chalk.gray(` ${orgResponse.error.message}`));
|
|
44
|
+
}
|
|
45
|
+
console.error();
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
org = orgResponse.data;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.error(chalk.red(`\nā Failed to fetch organization: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
if (!options.force) {
|
|
55
|
+
if (!jsonOutput) {
|
|
56
|
+
console.log(chalk.gray(` Name: ${org.orgName}`));
|
|
57
|
+
console.log(chalk.gray(` Code: ${org.orgCode || 'N/A'}`));
|
|
58
|
+
}
|
|
59
|
+
const { confirm } = await inquirer.prompt([
|
|
60
|
+
{
|
|
61
|
+
type: 'confirm',
|
|
62
|
+
name: 'confirm',
|
|
63
|
+
message: `Disable organization "${org.orgName}"?`,
|
|
64
|
+
default: false,
|
|
65
|
+
},
|
|
66
|
+
]);
|
|
67
|
+
if (!confirm) {
|
|
68
|
+
console.log(chalk.gray('\n Operation cancelled.\n'));
|
|
69
|
+
process.exit(0);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const response = await apiClient.disableOrganization(environment, tenant, orgId);
|
|
74
|
+
if (response.success) {
|
|
75
|
+
if (jsonOutput) {
|
|
76
|
+
console.log(JSON.stringify({ success: true, orgId, name: org.orgName }));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.log(chalk.green(`\nā Organization "${org?.orgName || orgId}" disabled\n`));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
console.error(chalk.red(`\nā Failed to disable organization: ${response.error?.message || 'Unknown error'}`));
|
|
84
|
+
if (response.error?.code) {
|
|
85
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
86
|
+
}
|
|
87
|
+
console.error();
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
console.error(chalk.red(`\nā Error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return disableCommand;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=disable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../../src/commands/liberica/orgs/disable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/orgs/enable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,+BAA+B,IAAI,OAAO,CAiGzD"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
5
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
6
|
+
export function createOrganizationEnableCommand() {
|
|
7
|
+
const enableCommand = new Command('enable');
|
|
8
|
+
enableCommand
|
|
9
|
+
.description('Enable (activate) an organization')
|
|
10
|
+
.argument('<id>', 'Organization ID')
|
|
11
|
+
.option('--force', 'Skip confirmation prompt')
|
|
12
|
+
.option('--dry-run', 'Preview the operation without executing')
|
|
13
|
+
.option('--json', 'Output as JSON');
|
|
14
|
+
enableCommand.action(async (id, options) => {
|
|
15
|
+
const context = configManager.getCurrentContext();
|
|
16
|
+
const environment = context.environment;
|
|
17
|
+
const tenant = context.tenant;
|
|
18
|
+
const jsonOutput = options.json === true;
|
|
19
|
+
const orgId = id;
|
|
20
|
+
if (!orgId || orgId.trim() === '') {
|
|
21
|
+
console.error(chalk.red('\nā Invalid organization ID\n'));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
console.log(chalk.bold(`\nš¢ Enable Organization (${environment})\n`));
|
|
25
|
+
console.log(chalk.gray(` Organization ID: ${orgId}`));
|
|
26
|
+
if (options.dryRun) {
|
|
27
|
+
if (jsonOutput) {
|
|
28
|
+
console.log(JSON.stringify({ success: true, dryRun: true, orgId }));
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.log(chalk.cyan('\nš Dry-Run Mode: No actual API call will be made\n'));
|
|
32
|
+
console.log(chalk.gray(' This operation will enable the organization.'));
|
|
33
|
+
console.log();
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
let org;
|
|
38
|
+
try {
|
|
39
|
+
const orgResponse = await apiClient.getOrganization(environment, tenant, orgId);
|
|
40
|
+
if (!orgResponse.success || !orgResponse.data) {
|
|
41
|
+
console.error(chalk.red(`\nā Organization not found: ${orgId}`));
|
|
42
|
+
if (orgResponse.error?.message) {
|
|
43
|
+
console.error(chalk.gray(` ${orgResponse.error.message}`));
|
|
44
|
+
}
|
|
45
|
+
console.error();
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
org = orgResponse.data;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.error(chalk.red(`\nā Failed to fetch organization: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
if (!options.force) {
|
|
55
|
+
if (!jsonOutput) {
|
|
56
|
+
console.log(chalk.gray(` Name: ${org.orgName}`));
|
|
57
|
+
console.log(chalk.gray(` Code: ${org.orgCode || 'N/A'}`));
|
|
58
|
+
}
|
|
59
|
+
const { confirm } = await inquirer.prompt([
|
|
60
|
+
{
|
|
61
|
+
type: 'confirm',
|
|
62
|
+
name: 'confirm',
|
|
63
|
+
message: `Enable organization "${org.orgName}"?`,
|
|
64
|
+
default: false,
|
|
65
|
+
},
|
|
66
|
+
]);
|
|
67
|
+
if (!confirm) {
|
|
68
|
+
console.log(chalk.gray('\n Operation cancelled.\n'));
|
|
69
|
+
process.exit(0);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const response = await apiClient.enableOrganization(environment, tenant, orgId);
|
|
74
|
+
if (response.success) {
|
|
75
|
+
if (jsonOutput) {
|
|
76
|
+
console.log(JSON.stringify({ success: true, orgId, name: org.orgName }));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.log(chalk.green(`\nā Organization "${org?.orgName || orgId}" enabled\n`));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
console.error(chalk.red(`\nā Failed to enable organization: ${response.error?.message || 'Unknown error'}`));
|
|
84
|
+
if (response.error?.code) {
|
|
85
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
86
|
+
}
|
|
87
|
+
console.error();
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
console.error(chalk.red(`\nā Error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return enableCommand;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=enable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enable.js","sourceRoot":"","sources":["../../../../src/commands/liberica/orgs/enable.ts"],"names":[],"mappings":"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"}
|