@newpeak/barista-cli 0.1.10 → 0.1.12
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/dist/index.js +1 -1
- package/package.json +7 -3
- package/docs/ARCHITECTURE.md +0 -184
- package/docs/COMMANDS.md +0 -352
- package/docs/COMMAND_DESIGN_SPEC.md +0 -840
- package/docs/INTEGRATION_NOTES.md +0 -270
- package/docs/commands/REFERENCE.md +0 -323
- package/docs/commands/arabica/auth/index.md +0 -296
- package/docs/commands/liberica/auth/index.md +0 -133
- package/docs/commands/liberica/calendar/DESIGN.md +0 -333
- package/docs/commands/liberica/client-contacts/create.md +0 -152
- package/docs/commands/liberica/client-contacts/delete.md +0 -123
- package/docs/commands/liberica/client-contacts/get.md +0 -133
- package/docs/commands/liberica/client-contacts/list.md +0 -143
- package/docs/commands/liberica/client-contacts/update.md +0 -158
- package/docs/commands/liberica/context/index.md +0 -60
- package/docs/commands/liberica/currency/create.md +0 -145
- package/docs/commands/liberica/currency/delete.md +0 -121
- package/docs/commands/liberica/currency/disable.md +0 -119
- package/docs/commands/liberica/currency/enable.md +0 -115
- package/docs/commands/liberica/currency/get.md +0 -118
- package/docs/commands/liberica/currency/list.md +0 -149
- package/docs/commands/liberica/currency/update.md +0 -141
- package/docs/commands/liberica/employees/create.md +0 -185
- package/docs/commands/liberica/employees/disable.md +0 -138
- package/docs/commands/liberica/employees/enable.md +0 -137
- package/docs/commands/liberica/employees/get.md +0 -153
- package/docs/commands/liberica/employees/list.md +0 -168
- package/docs/commands/liberica/employees/update.md +0 -180
- package/docs/commands/liberica/locations/create.md +0 -195
- package/docs/commands/liberica/locations/list.md +0 -171
- package/docs/commands/liberica/materials/create.md +0 -293
- package/docs/commands/liberica/materials/delete.md +0 -240
- package/docs/commands/liberica/materials/disable.md +0 -150
- package/docs/commands/liberica/materials/enable.md +0 -146
- package/docs/commands/liberica/materials/get.md +0 -188
- package/docs/commands/liberica/materials/list.md +0 -198
- package/docs/commands/liberica/materials/update.md +0 -250
- package/docs/commands/liberica/orgs/list.md +0 -62
- package/docs/commands/liberica/positions/list.md +0 -61
- package/docs/commands/liberica/roles/list.md +0 -67
- package/docs/commands/liberica/stock/ledger.md +0 -209
- package/docs/commands/liberica/stock/list.md +0 -165
- package/docs/commands/liberica/supplier-contacts/create.md +0 -152
- package/docs/commands/liberica/supplier-contacts/delete.md +0 -123
- package/docs/commands/liberica/supplier-contacts/get.md +0 -133
- package/docs/commands/liberica/supplier-contacts/list.md +0 -143
- package/docs/commands/liberica/supplier-contacts/update.md +0 -158
- package/docs/commands/liberica/teams/issues/close.md +0 -161
- package/docs/commands/liberica/teams/issues/create.md +0 -212
- package/docs/commands/liberica/teams/issues/delete.md +0 -179
- package/docs/commands/liberica/teams/issues/get.md +0 -167
- package/docs/commands/liberica/teams/issues/list.md +0 -182
- package/docs/commands/liberica/teams/issues/tests-design.md +0 -341
- package/docs/commands/liberica/teams/issues/update.md +0 -202
- package/docs/commands/liberica/teams/projects/create.md +0 -174
- package/docs/commands/liberica/teams/projects/delete.md +0 -180
- package/docs/commands/liberica/teams/projects/get.md +0 -150
- package/docs/commands/liberica/teams/projects/list.md +0 -179
- package/docs/commands/liberica/teams/projects/update.md +0 -175
- package/docs/commands/liberica/teams/tasks/create.md +0 -163
- package/docs/commands/liberica/teams/tasks/delete.md +0 -109
- package/docs/commands/liberica/teams/tasks/get.md +0 -121
- package/docs/commands/liberica/teams/tasks/list.md +0 -148
- package/docs/commands/liberica/teams/tasks/update.md +0 -158
- package/docs/commands/liberica/teams/work-logs/create.md +0 -151
- package/docs/commands/liberica/teams/work-logs/delete.md +0 -130
- package/docs/commands/liberica/teams/work-logs/get.md +0 -131
- package/docs/commands/liberica/teams/work-logs/list.md +0 -153
- package/docs/commands/liberica/teams/work-logs/update.md +0 -150
- package/docs/commands/liberica/transfer-in-forms/batch-delete.md +0 -157
- package/docs/commands/liberica/transfer-in-forms/batch-review.md +0 -157
- package/docs/commands/liberica/transfer-in-forms/batch-unreview.md +0 -157
- package/docs/commands/liberica/transfer-in-forms/create.md +0 -220
- package/docs/commands/liberica/transfer-in-forms/get.md +0 -221
- package/docs/commands/liberica/transfer-in-forms/list.md +0 -242
- package/docs/commands/liberica/transfer-in-forms/update.md +0 -185
- package/docs/commands/liberica/transfer-out-forms/batch-delete.md +0 -187
- package/docs/commands/liberica/transfer-out-forms/batch-review.md +0 -157
- package/docs/commands/liberica/transfer-out-forms/batch-unreview.md +0 -157
- package/docs/commands/liberica/transfer-out-forms/create.md +0 -280
- package/docs/commands/liberica/transfer-out-forms/get.md +0 -211
- package/docs/commands/liberica/transfer-out-forms/list.md +0 -233
- package/docs/commands/liberica/transfer-out-forms/update.md +0 -286
- package/docs/commands/liberica/uoms/create.md +0 -136
- package/docs/commands/liberica/uoms/delete.md +0 -119
- package/docs/commands/liberica/uoms/disable.md +0 -117
- package/docs/commands/liberica/uoms/enable.md +0 -115
- package/docs/commands/liberica/uoms/get.md +0 -119
- package/docs/commands/liberica/uoms/list.md +0 -155
- package/docs/commands/liberica/uoms/update.md +0 -148
- package/docs/commands/liberica/users/create.md +0 -170
- package/docs/commands/liberica/users/get.md +0 -151
- package/docs/commands/liberica/users/list.md +0 -175
- package/docs/commands/liberica/warehouses/create.md +0 -222
- package/docs/commands/liberica/warehouses/list.md +0 -184
- package/src/commands/arabica/auth/index.ts +0 -277
- package/src/commands/arabica/auth/login.ts +0 -5
- package/src/commands/arabica/auth/logout.ts +0 -5
- package/src/commands/arabica/auth/register.ts +0 -5
- package/src/commands/arabica/auth/status.ts +0 -5
- package/src/commands/arabica/index.ts +0 -23
- package/src/commands/auth.ts +0 -107
- package/src/commands/context.ts +0 -60
- package/src/commands/liberica/auth/index.ts +0 -176
- package/src/commands/liberica/calendar/index.ts +0 -13
- package/src/commands/liberica/calendar/list.ts +0 -214
- package/src/commands/liberica/calendar/set.ts +0 -130
- package/src/commands/liberica/client-contacts/create.ts +0 -115
- package/src/commands/liberica/client-contacts/delete.ts +0 -140
- package/src/commands/liberica/client-contacts/get.ts +0 -103
- package/src/commands/liberica/client-contacts/index.ts +0 -19
- package/src/commands/liberica/client-contacts/list.ts +0 -118
- package/src/commands/liberica/client-contacts/update.ts +0 -137
- package/src/commands/liberica/clients/create.ts +0 -122
- package/src/commands/liberica/clients/delete.ts +0 -125
- package/src/commands/liberica/clients/get.ts +0 -88
- package/src/commands/liberica/clients/index.ts +0 -19
- package/src/commands/liberica/clients/list.ts +0 -123
- package/src/commands/liberica/clients/update.ts +0 -103
- package/src/commands/liberica/context/index.ts +0 -43
- package/src/commands/liberica/currency/create.ts +0 -183
- package/src/commands/liberica/currency/delete.ts +0 -124
- package/src/commands/liberica/currency/disable.ts +0 -147
- package/src/commands/liberica/currency/enable.ts +0 -128
- package/src/commands/liberica/currency/get.ts +0 -91
- package/src/commands/liberica/currency/index.ts +0 -23
- package/src/commands/liberica/currency/list.ts +0 -140
- package/src/commands/liberica/currency/update.ts +0 -129
- package/src/commands/liberica/dict-types/get.ts +0 -74
- package/src/commands/liberica/dict-types/index.ts +0 -15
- package/src/commands/liberica/dict-types/list.ts +0 -118
- package/src/commands/liberica/dict-types/update.ts +0 -134
- package/src/commands/liberica/dicts/create.ts +0 -175
- package/src/commands/liberica/dicts/delete.ts +0 -107
- package/src/commands/liberica/dicts/get.ts +0 -80
- package/src/commands/liberica/dicts/index.ts +0 -19
- package/src/commands/liberica/dicts/list.ts +0 -114
- package/src/commands/liberica/dicts/update.ts +0 -116
- package/src/commands/liberica/employees/create.ts +0 -275
- package/src/commands/liberica/employees/delete.ts +0 -122
- package/src/commands/liberica/employees/disable.ts +0 -97
- package/src/commands/liberica/employees/enable.ts +0 -97
- package/src/commands/liberica/employees/get.ts +0 -115
- package/src/commands/liberica/employees/index.ts +0 -23
- package/src/commands/liberica/employees/list.ts +0 -131
- package/src/commands/liberica/employees/update.ts +0 -157
- package/src/commands/liberica/index.ts +0 -81
- package/src/commands/liberica/materials/create.ts +0 -199
- package/src/commands/liberica/materials/delete.ts +0 -105
- package/src/commands/liberica/materials/disable.ts +0 -148
- package/src/commands/liberica/materials/enable.ts +0 -129
- package/src/commands/liberica/materials/get.ts +0 -83
- package/src/commands/liberica/materials/index.ts +0 -23
- package/src/commands/liberica/materials/list.ts +0 -142
- package/src/commands/liberica/materials/update.ts +0 -125
- package/src/commands/liberica/mould/get.ts +0 -111
- package/src/commands/liberica/mould/index.ts +0 -17
- package/src/commands/liberica/mould/list.ts +0 -157
- package/src/commands/liberica/mould/set-status.ts +0 -99
- package/src/commands/liberica/mould/stock-in.ts +0 -165
- package/src/commands/liberica/operations/active.ts +0 -153
- package/src/commands/liberica/operations/batch-delete.ts +0 -131
- package/src/commands/liberica/operations/copy.ts +0 -138
- package/src/commands/liberica/operations/create.ts +0 -223
- package/src/commands/liberica/operations/deactive.ts +0 -152
- package/src/commands/liberica/operations/delete.ts +0 -128
- package/src/commands/liberica/operations/design.md +0 -587
- package/src/commands/liberica/operations/get.ts +0 -112
- package/src/commands/liberica/operations/index.ts +0 -27
- package/src/commands/liberica/operations/list.ts +0 -180
- package/src/commands/liberica/operations/update.ts +0 -218
- package/src/commands/liberica/orgs/index.ts +0 -34
- package/src/commands/liberica/positions/index.ts +0 -30
- package/src/commands/liberica/roles/index.ts +0 -59
- package/src/commands/liberica/stock/index.ts +0 -13
- package/src/commands/liberica/stock/ledger.ts +0 -159
- package/src/commands/liberica/stock/list.ts +0 -128
- package/src/commands/liberica/supplier-contacts/create.ts +0 -120
- package/src/commands/liberica/supplier-contacts/delete.ts +0 -88
- package/src/commands/liberica/supplier-contacts/get.ts +0 -94
- package/src/commands/liberica/supplier-contacts/index.ts +0 -19
- package/src/commands/liberica/supplier-contacts/list.ts +0 -130
- package/src/commands/liberica/supplier-contacts/update.ts +0 -127
- package/src/commands/liberica/suppliers/create.ts +0 -149
- package/src/commands/liberica/suppliers/delete.ts +0 -102
- package/src/commands/liberica/suppliers/disable.ts +0 -145
- package/src/commands/liberica/suppliers/enable.ts +0 -126
- package/src/commands/liberica/suppliers/get.ts +0 -86
- package/src/commands/liberica/suppliers/index.ts +0 -23
- package/src/commands/liberica/suppliers/list.ts +0 -134
- package/src/commands/liberica/suppliers/update.ts +0 -128
- package/src/commands/liberica/teams/index.ts +0 -17
- package/src/commands/liberica/teams/issues/close.ts +0 -104
- package/src/commands/liberica/teams/issues/create.ts +0 -254
- package/src/commands/liberica/teams/issues/delete.ts +0 -58
- package/src/commands/liberica/teams/issues/get.ts +0 -78
- package/src/commands/liberica/teams/issues/index.ts +0 -21
- package/src/commands/liberica/teams/issues/list.ts +0 -144
- package/src/commands/liberica/teams/issues/update.ts +0 -141
- package/src/commands/liberica/teams/projects/create.ts +0 -159
- package/src/commands/liberica/teams/projects/delete.ts +0 -58
- package/src/commands/liberica/teams/projects/get.ts +0 -87
- package/src/commands/liberica/teams/projects/index.ts +0 -19
- package/src/commands/liberica/teams/projects/list.ts +0 -147
- package/src/commands/liberica/teams/projects/update.ts +0 -117
- package/src/commands/liberica/teams/tasks/create.ts +0 -102
- package/src/commands/liberica/teams/tasks/delete.ts +0 -92
- package/src/commands/liberica/teams/tasks/get.ts +0 -64
- package/src/commands/liberica/teams/tasks/index.ts +0 -19
- package/src/commands/liberica/teams/tasks/list.ts +0 -102
- package/src/commands/liberica/teams/tasks/update.ts +0 -122
- package/src/commands/liberica/teams/work-logs/create.ts +0 -204
- package/src/commands/liberica/teams/work-logs/delete.ts +0 -58
- package/src/commands/liberica/teams/work-logs/get.ts +0 -87
- package/src/commands/liberica/teams/work-logs/index.ts +0 -19
- package/src/commands/liberica/teams/work-logs/list.ts +0 -141
- package/src/commands/liberica/teams/work-logs/update.ts +0 -120
- package/src/commands/liberica/transfer-in-forms/batch-delete.ts +0 -152
- package/src/commands/liberica/transfer-in-forms/batch-review.ts +0 -151
- package/src/commands/liberica/transfer-in-forms/batch-unreview.ts +0 -152
- package/src/commands/liberica/transfer-in-forms/create.ts +0 -179
- package/src/commands/liberica/transfer-in-forms/get.ts +0 -107
- package/src/commands/liberica/transfer-in-forms/index.ts +0 -23
- package/src/commands/liberica/transfer-in-forms/list.ts +0 -97
- package/src/commands/liberica/transfer-in-forms/update.ts +0 -213
- package/src/commands/liberica/transfer-out-forms/batch-delete.ts +0 -83
- package/src/commands/liberica/transfer-out-forms/batch-review.ts +0 -148
- package/src/commands/liberica/transfer-out-forms/batch-unreview.ts +0 -56
- package/src/commands/liberica/transfer-out-forms/create.ts +0 -194
- package/src/commands/liberica/transfer-out-forms/get.ts +0 -114
- package/src/commands/liberica/transfer-out-forms/index.ts +0 -23
- package/src/commands/liberica/transfer-out-forms/list.ts +0 -125
- package/src/commands/liberica/transfer-out-forms/update.ts +0 -197
- package/src/commands/liberica/uoms/create.ts +0 -134
- package/src/commands/liberica/uoms/delete.ts +0 -105
- package/src/commands/liberica/uoms/disable.ts +0 -148
- package/src/commands/liberica/uoms/enable.ts +0 -129
- package/src/commands/liberica/uoms/get.ts +0 -83
- package/src/commands/liberica/uoms/index.ts +0 -23
- package/src/commands/liberica/uoms/list.ts +0 -129
- package/src/commands/liberica/uoms/update.ts +0 -124
- package/src/commands/liberica/users/create.ts +0 -133
- package/src/commands/liberica/users/delete.ts +0 -49
- package/src/commands/liberica/users/disable.ts +0 -41
- package/src/commands/liberica/users/enable.ts +0 -30
- package/src/commands/liberica/users/get.ts +0 -46
- package/src/commands/liberica/users/index.ts +0 -27
- package/src/commands/liberica/users/list.ts +0 -68
- package/src/commands/liberica/users/me.ts +0 -42
- package/src/commands/liberica/users/reset-password.ts +0 -42
- package/src/commands/liberica/users/update.ts +0 -48
- package/src/commands/liberica/warehouses/create.ts +0 -204
- package/src/commands/liberica/warehouses/delete.ts +0 -112
- package/src/commands/liberica/warehouses/disable.ts +0 -174
- package/src/commands/liberica/warehouses/enable.ts +0 -174
- package/src/commands/liberica/warehouses/get.ts +0 -101
- package/src/commands/liberica/warehouses/index.ts +0 -25
- package/src/commands/liberica/warehouses/list.ts +0 -136
- package/src/commands/liberica/warehouses/locations/create.ts +0 -209
- package/src/commands/liberica/warehouses/locations/delete.ts +0 -116
- package/src/commands/liberica/warehouses/locations/disable.ts +0 -174
- package/src/commands/liberica/warehouses/locations/enable.ts +0 -174
- package/src/commands/liberica/warehouses/locations/get.ts +0 -84
- package/src/commands/liberica/warehouses/locations/index.ts +0 -23
- package/src/commands/liberica/warehouses/locations/list.ts +0 -140
- package/src/commands/liberica/warehouses/locations/update.ts +0 -135
- package/src/commands/liberica/warehouses/update.ts +0 -142
- package/src/core/api/client.ts +0 -4443
- package/src/core/auth/token-manager.ts +0 -183
- package/src/core/config/manager.ts +0 -164
- package/src/index.ts +0 -35
- package/src/types/calendar.ts +0 -36
- package/src/types/client-contact.ts +0 -78
- package/src/types/client.ts +0 -115
- package/src/types/currency.ts +0 -90
- package/src/types/dict.ts +0 -121
- package/src/types/employee.ts +0 -102
- package/src/types/index.ts +0 -93
- package/src/types/location.ts +0 -66
- package/src/types/material.ts +0 -61
- package/src/types/mould-stock-in.ts +0 -82
- package/src/types/mould.ts +0 -74
- package/src/types/operation.ts +0 -72
- package/src/types/org.ts +0 -25
- package/src/types/position.ts +0 -24
- package/src/types/stock.ts +0 -161
- package/src/types/supplier-contact.ts +0 -78
- package/src/types/supplier.ts +0 -66
- package/src/types/team-issue.ts +0 -94
- package/src/types/team-project.ts +0 -74
- package/src/types/team-task.ts +0 -98
- package/src/types/team-work-log.ts +0 -87
- package/src/types/transfer-in-form.ts +0 -265
- package/src/types/transfer-out-form.ts +0 -290
- package/src/types/uom.ts +0 -60
- package/src/types/user.ts +0 -64
- package/src/types/warehouse.ts +0 -82
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { createArabicaAuthCommand } from './auth/index.js';
|
|
4
|
-
|
|
5
|
-
export function createArabicaCommand(): Command {
|
|
6
|
-
const arabicaCommand = new Command('arabica');
|
|
7
|
-
arabicaCommand.description('Arabica SaaS platform operations');
|
|
8
|
-
|
|
9
|
-
arabicaCommand.addCommand(createArabicaAuthCommand());
|
|
10
|
-
|
|
11
|
-
arabicaCommand.action(() => {
|
|
12
|
-
console.log(chalk.bold('\n🛒 Arabica Commands\n'));
|
|
13
|
-
console.log(' Use "barista arabica auth <command>" for authentication');
|
|
14
|
-
console.log(' Use "barista arabica members <command>" for member operations');
|
|
15
|
-
console.log(' Use "barista arabica enterprises <command>" for enterprise operations');
|
|
16
|
-
console.log(' Use "barista arabica products <command>" for product operations');
|
|
17
|
-
console.log(' Use "barista arabica subscriptions <command>" for subscription operations');
|
|
18
|
-
console.log(' Use "barista arabica access <command>" for access management');
|
|
19
|
-
console.log('\n Run "barista arabica <command> --help" for more details\n');
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
return arabicaCommand;
|
|
23
|
-
}
|
package/src/commands/auth.ts
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import inquirer from 'inquirer';
|
|
4
|
-
import { configManager } from '../core/config/manager.js';
|
|
5
|
-
import { tokenManager } from '../core/auth/token-manager.js';
|
|
6
|
-
import { Service } from '../types/index.js';
|
|
7
|
-
|
|
8
|
-
export function createAuthCommand(): Command {
|
|
9
|
-
const authCommand = new Command('auth');
|
|
10
|
-
authCommand.description('Manage authentication tokens');
|
|
11
|
-
|
|
12
|
-
authCommand.action(async () => {
|
|
13
|
-
await authCommand.help();
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
authCommand
|
|
17
|
-
.command('login')
|
|
18
|
-
.description('Login with token')
|
|
19
|
-
.option('--service <service>', 'Service (liberica|arabica)')
|
|
20
|
-
.option('--env <environment>', 'Environment (dev|test|prod-cn|prod-jp)')
|
|
21
|
-
.action(async (options) => {
|
|
22
|
-
const context = configManager.getCurrentContext();
|
|
23
|
-
const service = (options.service as Service) || context.service;
|
|
24
|
-
const environment = options.env || context.environment;
|
|
25
|
-
|
|
26
|
-
console.log(chalk.bold(`\n🔐 Login to ${service} (${environment})\n`));
|
|
27
|
-
|
|
28
|
-
const answers = await inquirer.prompt([
|
|
29
|
-
{
|
|
30
|
-
type: 'password',
|
|
31
|
-
name: 'token',
|
|
32
|
-
message: 'Enter your token:',
|
|
33
|
-
validate: (input: string) => input.length > 0 || 'Token is required',
|
|
34
|
-
},
|
|
35
|
-
]);
|
|
36
|
-
|
|
37
|
-
await tokenManager.setToken(
|
|
38
|
-
{
|
|
39
|
-
service,
|
|
40
|
-
environment: environment as 'dev' | 'test' | 'prod-cn' | 'prod-jp',
|
|
41
|
-
tenant: context.tenant,
|
|
42
|
-
},
|
|
43
|
-
answers.token
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
console.log(chalk.green('\n✓ Token saved successfully\n'));
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
authCommand
|
|
50
|
-
.command('status')
|
|
51
|
-
.description('Check authentication status')
|
|
52
|
-
.action(async () => {
|
|
53
|
-
const services: Service[] = ['liberica', 'arabica'];
|
|
54
|
-
const environments = ['dev', 'test', 'prod-cn', 'prod-jp'] as const;
|
|
55
|
-
|
|
56
|
-
console.log(chalk.bold('\n🔐 Authentication Status\n'));
|
|
57
|
-
|
|
58
|
-
for (const service of services) {
|
|
59
|
-
for (const env of environments) {
|
|
60
|
-
const token = await tokenManager.getToken({ service, environment: env });
|
|
61
|
-
const statusIcon = token ? chalk.green('✓') : chalk.red('✗');
|
|
62
|
-
const statusText = token ? 'Logged in' : 'Not logged in';
|
|
63
|
-
console.log(` ${statusIcon} ${chalk.gray(service)} (${env}): ${statusText}`);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
console.log();
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
authCommand
|
|
70
|
-
.command('logout')
|
|
71
|
-
.description('Logout and clear token')
|
|
72
|
-
.option('--service <service>', 'Service (liberica|arabica)')
|
|
73
|
-
.option('--env <environment>', 'Environment (dev|test|prod-cn|prod-jp)')
|
|
74
|
-
.option('--all', 'Clear all tokens')
|
|
75
|
-
.action(async (options) => {
|
|
76
|
-
if (options.all) {
|
|
77
|
-
const allTokens = await tokenManager.findAllTokens();
|
|
78
|
-
for (const cred of allTokens) {
|
|
79
|
-
const parts = cred.account.split(':');
|
|
80
|
-
await tokenManager.deleteToken({
|
|
81
|
-
service: parts[0] as Service,
|
|
82
|
-
environment: parts[1] as 'dev' | 'test' | 'prod-cn' | 'prod-jp',
|
|
83
|
-
tenant: parts[2],
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
console.log(chalk.green('\n✓ All tokens cleared\n'));
|
|
87
|
-
} else {
|
|
88
|
-
const context = configManager.getCurrentContext();
|
|
89
|
-
const service = (options.service as Service) || context.service;
|
|
90
|
-
const environment = options.env || context.environment;
|
|
91
|
-
|
|
92
|
-
const deleted = await tokenManager.deleteToken({
|
|
93
|
-
service,
|
|
94
|
-
environment: environment as 'dev' | 'test' | 'prod-cn' | 'prod-jp',
|
|
95
|
-
tenant: context.tenant,
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
if (deleted) {
|
|
99
|
-
console.log(chalk.green(`\n✓ Token cleared for ${service} (${environment})\n`));
|
|
100
|
-
} else {
|
|
101
|
-
console.log(chalk.gray(`\nNo token found for ${service} (${environment})\n`));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
return authCommand;
|
|
107
|
-
}
|
package/src/commands/context.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { configManager } from '../core/config/manager.js';
|
|
4
|
-
import { tokenManager } from '../core/auth/token-manager.js';
|
|
5
|
-
import { Environment } from '../types/index.js';
|
|
6
|
-
|
|
7
|
-
export function createContextCommand(): Command {
|
|
8
|
-
const contextCommand = new Command('context');
|
|
9
|
-
contextCommand.description('Manage CLI context (environment, service, tenant)');
|
|
10
|
-
|
|
11
|
-
contextCommand.action(async () => {
|
|
12
|
-
await contextCommand.help();
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
contextCommand
|
|
16
|
-
.command('show')
|
|
17
|
-
.description('Show current context')
|
|
18
|
-
.action(async () => {
|
|
19
|
-
const context = configManager.getCurrentContext();
|
|
20
|
-
const token = await tokenManager.getToken({
|
|
21
|
-
service: context.service,
|
|
22
|
-
environment: context.environment,
|
|
23
|
-
tenant: context.tenant,
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
console.log(chalk.bold('\n📋 Current Context\n'));
|
|
27
|
-
console.log(` ${chalk.gray('Environment:')} ${chalk.green(context.environment)}`);
|
|
28
|
-
console.log(` ${chalk.gray('Service:')} ${chalk.green(context.service)}`);
|
|
29
|
-
console.log(` ${chalk.gray('Tenant:')} ${chalk.green(context.tenant)}`);
|
|
30
|
-
console.log(
|
|
31
|
-
` ${chalk.gray('Token Status:')} ${token ? chalk.green('✓ Logged in') : chalk.red('✗ Not logged in')}`
|
|
32
|
-
);
|
|
33
|
-
console.log();
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
contextCommand
|
|
37
|
-
.command('use-env <environment>')
|
|
38
|
-
.description('Switch environment (dev|test|prod-cn|prod-jp)')
|
|
39
|
-
.action(async (env: string) => {
|
|
40
|
-
const validEnvs: Environment[] = ['dev', 'test', 'prod-cn', 'prod-jp'];
|
|
41
|
-
if (!validEnvs.includes(env as Environment)) {
|
|
42
|
-
console.error(chalk.red(`Invalid environment: ${env}`));
|
|
43
|
-
console.log(chalk.gray(`Valid environments: ${validEnvs.join(', ')}`));
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
await configManager.setEnvironment(env as Environment);
|
|
48
|
-
console.log(chalk.green(`✓ Environment set to ${env}`));
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
contextCommand
|
|
52
|
-
.command('use-tenant <tenant>')
|
|
53
|
-
.description('Switch tenant')
|
|
54
|
-
.action(async (tenant: string) => {
|
|
55
|
-
await configManager.setTenant(tenant);
|
|
56
|
-
console.log(chalk.green(`✓ Tenant set to ${tenant}`));
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
return contextCommand;
|
|
60
|
-
}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import inquirer from 'inquirer';
|
|
4
|
-
import { configManager } from '../../../core/config/manager.js';
|
|
5
|
-
import { tokenManager } from '../../../core/auth/token-manager.js';
|
|
6
|
-
import { apiClient } from '../../../core/api/client.js';
|
|
7
|
-
import { Environment } from '../../../types/index.js';
|
|
8
|
-
|
|
9
|
-
export function createLibericaAuthCommand(): Command {
|
|
10
|
-
const authCommand = new Command('auth');
|
|
11
|
-
authCommand.description('Manage Liberica authentication');
|
|
12
|
-
|
|
13
|
-
authCommand.action(async () => {
|
|
14
|
-
await authCommand.help();
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
authCommand
|
|
18
|
-
.command('login')
|
|
19
|
-
.description('Login to Liberica')
|
|
20
|
-
.arguments('<env> [tenant] [username] [password]')
|
|
21
|
-
.option('--env <environment>', 'Environment (dev|test|prod-cn|prod-jp)')
|
|
22
|
-
.option('--tenant <tenant>', 'Tenant name')
|
|
23
|
-
.option('--username <username>', 'Username')
|
|
24
|
-
.option('--password <password>', 'Password')
|
|
25
|
-
.action(async (env: string, tenant: string, username: string, password: string, options: Record<string, any>) => {
|
|
26
|
-
const context = configManager.getCurrentContext();
|
|
27
|
-
const environment = (options.env as Environment) || env || context.environment;
|
|
28
|
-
let resolvedTenant = options.tenant || tenant || context.tenant;
|
|
29
|
-
|
|
30
|
-
console.log(chalk.bold(`\n🔐 Login to Liberica (${environment})\n`));
|
|
31
|
-
|
|
32
|
-
if (!resolvedTenant) {
|
|
33
|
-
const { tenant: inputTenant } = await inquirer.prompt([
|
|
34
|
-
{
|
|
35
|
-
type: 'input',
|
|
36
|
-
name: 'tenant',
|
|
37
|
-
message: 'Enter tenant name:',
|
|
38
|
-
validate: (input: string) => input.length > 0 || 'Tenant is required',
|
|
39
|
-
},
|
|
40
|
-
]);
|
|
41
|
-
resolvedTenant = inputTenant;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
let resolvedUsername = options.username || username;
|
|
45
|
-
let resolvedPassword = options.password || password;
|
|
46
|
-
|
|
47
|
-
if (!resolvedUsername) {
|
|
48
|
-
const { username: inputUsername } = await inquirer.prompt([
|
|
49
|
-
{
|
|
50
|
-
type: 'input',
|
|
51
|
-
name: 'username',
|
|
52
|
-
message: 'Enter username:',
|
|
53
|
-
validate: (input: string) => input.length > 0 || 'Username is required',
|
|
54
|
-
},
|
|
55
|
-
]);
|
|
56
|
-
resolvedUsername = inputUsername;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (!resolvedPassword) {
|
|
60
|
-
const { password: inputPassword } = await inquirer.prompt([
|
|
61
|
-
{
|
|
62
|
-
type: 'password',
|
|
63
|
-
name: 'password',
|
|
64
|
-
message: 'Enter password:',
|
|
65
|
-
validate: (input: string) => input.length > 0 || 'Password is required',
|
|
66
|
-
},
|
|
67
|
-
]);
|
|
68
|
-
resolvedPassword = inputPassword;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
try {
|
|
72
|
-
const response = await apiClient.login('liberica', environment, resolvedTenant, resolvedUsername, resolvedPassword);
|
|
73
|
-
|
|
74
|
-
if (response.success && response.data) {
|
|
75
|
-
try {
|
|
76
|
-
await tokenManager.setToken(
|
|
77
|
-
{
|
|
78
|
-
service: 'liberica',
|
|
79
|
-
environment,
|
|
80
|
-
tenant: resolvedTenant,
|
|
81
|
-
},
|
|
82
|
-
response.data.token
|
|
83
|
-
);
|
|
84
|
-
} catch (keytarError) {
|
|
85
|
-
console.error(chalk.red(`\n✗ Failed to save token to keychain: ${keytarError instanceof Error ? keytarError.message : 'Unknown error'}`));
|
|
86
|
-
console.error(chalk.gray(' This may occur in headless environments without D-Bus/X11.'));
|
|
87
|
-
console.error(chalk.gray(' The login was successful but the token could not be persisted.\n'));
|
|
88
|
-
process.exit(1);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
await configManager.setTenant(resolvedTenant);
|
|
92
|
-
|
|
93
|
-
const indexInfo = await apiClient.getUserIndexInfo(environment, resolvedTenant);
|
|
94
|
-
if (!indexInfo.success) {
|
|
95
|
-
console.error(chalk.yellow(`\n⚠ Warning: Failed to refresh permissions cache: ${indexInfo.error?.message || 'Unknown error'}`));
|
|
96
|
-
console.error(chalk.gray(' You may need to relogin to refresh permissions.\n'));
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
console.log(chalk.green('\n✓ Login successful'));
|
|
100
|
-
if (response.data.expiresAt) {
|
|
101
|
-
console.log(chalk.gray(` Token expires: ${response.data.expiresAt}`));
|
|
102
|
-
}
|
|
103
|
-
console.log();
|
|
104
|
-
} else {
|
|
105
|
-
console.error(chalk.red(`\n✗ Login failed: ${response.error?.message || 'Unknown error'}`));
|
|
106
|
-
if (response.error?.code) {
|
|
107
|
-
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
108
|
-
}
|
|
109
|
-
console.error();
|
|
110
|
-
process.exit(1);
|
|
111
|
-
}
|
|
112
|
-
} catch (error) {
|
|
113
|
-
console.error(chalk.red(`\n✗ Login error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
|
|
114
|
-
process.exit(1);
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
authCommand
|
|
119
|
-
.command('status')
|
|
120
|
-
.description('Check Liberica authentication status')
|
|
121
|
-
.action(async () => {
|
|
122
|
-
const environments: Environment[] = ['dev', 'test', 'prod-cn', 'prod-jp'];
|
|
123
|
-
const context = configManager.getCurrentContext();
|
|
124
|
-
|
|
125
|
-
console.log(chalk.bold('\n🔐 Liberica Authentication Status\n'));
|
|
126
|
-
|
|
127
|
-
for (const env of environments) {
|
|
128
|
-
const token = await tokenManager.getToken({ service: 'liberica', environment: env, tenant: context.tenant });
|
|
129
|
-
const statusIcon = token ? chalk.green('✓') : chalk.red('✗');
|
|
130
|
-
const statusText = token ? 'Logged in' : 'Not logged in';
|
|
131
|
-
const tenantText = context.tenant ? ` (${context.tenant})` : '';
|
|
132
|
-
console.log(` ${statusIcon} ${chalk.gray('liberica')}${tenantText} (${env}): ${statusText}`);
|
|
133
|
-
}
|
|
134
|
-
console.log();
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
authCommand
|
|
138
|
-
.command('logout')
|
|
139
|
-
.description('Logout from Liberica and clear token')
|
|
140
|
-
.option('--env <environment>', 'Environment (dev|test|prod-cn|prod-jp)')
|
|
141
|
-
.option('--all', 'Clear all Liberica tokens')
|
|
142
|
-
.action(async (options) => {
|
|
143
|
-
const context = configManager.getCurrentContext();
|
|
144
|
-
|
|
145
|
-
if (options.all) {
|
|
146
|
-
const allTokens = await tokenManager.findAllTokens();
|
|
147
|
-
for (const cred of allTokens) {
|
|
148
|
-
const parts = cred.account.split(':');
|
|
149
|
-
if (parts[0] === 'liberica') {
|
|
150
|
-
await tokenManager.deleteToken({
|
|
151
|
-
service: 'liberica',
|
|
152
|
-
environment: parts[1] as Environment,
|
|
153
|
-
tenant: parts[2],
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
console.log(chalk.green('\n✓ All Liberica tokens cleared\n'));
|
|
158
|
-
} else {
|
|
159
|
-
const environment = (options.env as Environment) || context.environment;
|
|
160
|
-
|
|
161
|
-
const deleted = await tokenManager.deleteToken({
|
|
162
|
-
service: 'liberica',
|
|
163
|
-
environment,
|
|
164
|
-
tenant: context.tenant,
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
if (deleted) {
|
|
168
|
-
console.log(chalk.green(`\n✓ Token cleared for Liberica (${environment})\n`));
|
|
169
|
-
} else {
|
|
170
|
-
console.log(chalk.gray(`\nNo token found for Liberica (${environment})\n`));
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
return authCommand;
|
|
176
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import { createCalendarSetCommand } from './set.js';
|
|
3
|
-
import { createCalendarListCommand } from './list.js';
|
|
4
|
-
|
|
5
|
-
export function createCalendarCommand(): Command {
|
|
6
|
-
const calendarCommand = new Command('calendar');
|
|
7
|
-
calendarCommand.description('Manage calendar (workdays, holidays)');
|
|
8
|
-
|
|
9
|
-
calendarCommand.addCommand(createCalendarSetCommand());
|
|
10
|
-
calendarCommand.addCommand(createCalendarListCommand());
|
|
11
|
-
|
|
12
|
-
return calendarCommand;
|
|
13
|
-
}
|
|
@@ -1,214 +0,0 @@
|
|
|
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
|
-
import { CalendarQueryParams, CalendarItem } from '../../../types/calendar.js';
|
|
7
|
-
import { Environment } from '../../../types/index.js';
|
|
8
|
-
|
|
9
|
-
function getCurrentYear(): number {
|
|
10
|
-
return new Date().getFullYear();
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function getCurrentMonth(): number {
|
|
14
|
-
return new Date().getMonth() + 1;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function formatDate(dateStr: string): string {
|
|
18
|
-
return dateStr;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function getDayOfWeek(dateStr: string): string {
|
|
22
|
-
const date = new Date(dateStr);
|
|
23
|
-
const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
24
|
-
return days[date.getDay()];
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function renderCalendarGrid(data: { [yearMonth: string]: CalendarItem[] }): void {
|
|
28
|
-
const yearMonths = Object.keys(data).sort();
|
|
29
|
-
|
|
30
|
-
for (const yearMonth of yearMonths) {
|
|
31
|
-
const items = data[yearMonth] || [];
|
|
32
|
-
const [year, month] = yearMonth.split('-').map(Number);
|
|
33
|
-
const monthName = new Date(year, month - 1).toLocaleString('default', { month: 'long' });
|
|
34
|
-
|
|
35
|
-
console.log(chalk.bold(`\n📅 ${year} ${monthName}\n`));
|
|
36
|
-
|
|
37
|
-
// Build calendar grid
|
|
38
|
-
const calendarGrid: string[][] = [];
|
|
39
|
-
const dayMap: { [day: string]: CalendarItem } = {};
|
|
40
|
-
|
|
41
|
-
for (const item of items) {
|
|
42
|
-
const day = item.calendarDate.split('-')[2];
|
|
43
|
-
dayMap[day] = item;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Header
|
|
47
|
-
calendarGrid.push(['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'].map(d => chalk.gray(d)));
|
|
48
|
-
|
|
49
|
-
// Find first day of month
|
|
50
|
-
const firstDay = new Date(year, month - 1, 1).getDay();
|
|
51
|
-
const daysInMonth = new Date(year, month, 0).getDate();
|
|
52
|
-
|
|
53
|
-
let currentRow: string[] = [];
|
|
54
|
-
|
|
55
|
-
// Add empty cells for days before the first day
|
|
56
|
-
for (let i = 0; i < firstDay; i++) {
|
|
57
|
-
currentRow.push(' ');
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Add days
|
|
61
|
-
for (let day = 1; day <= daysInMonth; day++) {
|
|
62
|
-
const dayStr = day.toString().padStart(2, '0');
|
|
63
|
-
const item = dayMap[dayStr];
|
|
64
|
-
|
|
65
|
-
if (item) {
|
|
66
|
-
if (item.dateType === 'WORKDAY') {
|
|
67
|
-
currentRow.push(chalk.green('·'));
|
|
68
|
-
} else if (item.dateType === 'HOLIDAY' || item.dateType === 'WEEKEND') {
|
|
69
|
-
currentRow.push(chalk.red('H'));
|
|
70
|
-
} else {
|
|
71
|
-
currentRow.push(' ');
|
|
72
|
-
}
|
|
73
|
-
} else {
|
|
74
|
-
currentRow.push(' ');
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (currentRow.length === 7) {
|
|
78
|
-
calendarGrid.push(currentRow);
|
|
79
|
-
currentRow = [];
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Add remaining empty cells
|
|
84
|
-
while (currentRow.length > 0 && currentRow.length < 7) {
|
|
85
|
-
currentRow.push(' ');
|
|
86
|
-
}
|
|
87
|
-
if (currentRow.length > 0) {
|
|
88
|
-
calendarGrid.push(currentRow);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Print grid
|
|
92
|
-
const gridTable = new Table({
|
|
93
|
-
style: { border: [], compact: true },
|
|
94
|
-
colWidths: Array(7).fill(4),
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
for (const row of calendarGrid) {
|
|
98
|
-
gridTable.push(row);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
console.log(gridTable.toString());
|
|
102
|
-
console.log();
|
|
103
|
-
console.log(chalk.gray(' · ') + chalk.green('Workday') + chalk.gray(' H ') + chalk.red('Holiday/Weekend'));
|
|
104
|
-
console.log();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export function createCalendarListCommand(): Command {
|
|
109
|
-
const listCommand = new Command('list');
|
|
110
|
-
listCommand.description('List calendar entries (workdays, holidays)');
|
|
111
|
-
|
|
112
|
-
listCommand
|
|
113
|
-
.option('-y, --year <number>', 'Year (required for query)')
|
|
114
|
-
.option('-m, --month <number>', 'Month (required for query)')
|
|
115
|
-
.option('--months <number>', 'Number of months to query', '12')
|
|
116
|
-
.option('--grid', 'Calendar grid view mode')
|
|
117
|
-
.option('--json', 'Output as JSON')
|
|
118
|
-
.action(async (options) => {
|
|
119
|
-
const context = configManager.getCurrentContext();
|
|
120
|
-
const environment = (options.env as Environment) || context.environment;
|
|
121
|
-
const tenant = options.tenant || context.tenant;
|
|
122
|
-
|
|
123
|
-
// Default to current year/month if not provided
|
|
124
|
-
const year = options.year ? parseInt(options.year as string, 10) : getCurrentYear();
|
|
125
|
-
const month = options.month ? parseInt(options.month as string, 10) : getCurrentMonth();
|
|
126
|
-
const months = parseInt(options.months as string, 10);
|
|
127
|
-
|
|
128
|
-
const params: CalendarQueryParams = { year, month, months };
|
|
129
|
-
|
|
130
|
-
const response = await apiClient.listCalendar(environment, tenant, params);
|
|
131
|
-
|
|
132
|
-
if (!response.success) {
|
|
133
|
-
console.error(chalk.red(`\n✗ Failed to list calendar: ${response.error?.message || 'Unknown error'}`));
|
|
134
|
-
if (response.error?.code) {
|
|
135
|
-
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
136
|
-
}
|
|
137
|
-
console.error();
|
|
138
|
-
process.exit(1);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const data = response.data;
|
|
142
|
-
|
|
143
|
-
if (!data) {
|
|
144
|
-
if (options.json) {
|
|
145
|
-
console.log(JSON.stringify({ success: true, data: {} }, null, 2));
|
|
146
|
-
} else {
|
|
147
|
-
console.log(chalk.bold('\n📅 Calendar\n'));
|
|
148
|
-
console.log(chalk.gray(' No calendar data found\n'));
|
|
149
|
-
}
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (options.json) {
|
|
154
|
-
console.log(JSON.stringify({ success: true, data }, null, 2));
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
if (options.grid) {
|
|
159
|
-
renderCalendarGrid(data);
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Table output mode
|
|
164
|
-
const allItems: CalendarItem[] = [];
|
|
165
|
-
for (const yearMonth of Object.keys(data)) {
|
|
166
|
-
const items = data[yearMonth] || [];
|
|
167
|
-
allItems.push(...items);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
if (allItems.length === 0) {
|
|
171
|
-
console.log(chalk.bold('\n📅 Calendar\n'));
|
|
172
|
-
console.log(chalk.gray(' No calendar data found\n'));
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
console.log(chalk.bold('\n📅 Calendar\n'));
|
|
177
|
-
|
|
178
|
-
const table = new Table({
|
|
179
|
-
head: [chalk.bold('Date'), chalk.bold('Day'), chalk.bold('Type'), chalk.bold('Remark')],
|
|
180
|
-
colWidths: [12, 8, 12, 30],
|
|
181
|
-
style: {
|
|
182
|
-
head: [],
|
|
183
|
-
border: [],
|
|
184
|
-
},
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
for (const item of allItems) {
|
|
188
|
-
const dayType = item.dateType;
|
|
189
|
-
let typeText: string;
|
|
190
|
-
|
|
191
|
-
if (dayType === 'WORKDAY') {
|
|
192
|
-
typeText = chalk.green('WORKDAY');
|
|
193
|
-
} else if (dayType === 'HOLIDAY') {
|
|
194
|
-
typeText = chalk.red('HOLIDAY');
|
|
195
|
-
} else if (dayType === 'WEEKEND') {
|
|
196
|
-
typeText = chalk.red('WEEKEND');
|
|
197
|
-
} else {
|
|
198
|
-
typeText = dayType;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
table.push([
|
|
202
|
-
formatDate(item.calendarDate),
|
|
203
|
-
getDayOfWeek(item.calendarDate),
|
|
204
|
-
typeText,
|
|
205
|
-
item.remark || '-',
|
|
206
|
-
]);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
console.log(table.toString());
|
|
210
|
-
console.log();
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
return listCommand;
|
|
214
|
-
}
|