@newpeak/barista-cli 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/bin/barista.js +0 -0
  2. package/dist/commands/liberica/clients/create.d.ts +3 -0
  3. package/dist/commands/liberica/clients/create.d.ts.map +1 -0
  4. package/dist/commands/liberica/clients/create.js +125 -0
  5. package/dist/commands/liberica/clients/create.js.map +1 -0
  6. package/dist/commands/liberica/clients/delete.d.ts +3 -0
  7. package/dist/commands/liberica/clients/delete.d.ts.map +1 -0
  8. package/dist/commands/liberica/clients/delete.js +125 -0
  9. package/dist/commands/liberica/clients/delete.js.map +1 -0
  10. package/dist/commands/liberica/clients/get.d.ts +3 -0
  11. package/dist/commands/liberica/clients/get.d.ts.map +1 -0
  12. package/dist/commands/liberica/clients/get.js +77 -0
  13. package/dist/commands/liberica/clients/get.js.map +1 -0
  14. package/dist/commands/liberica/clients/index.d.ts +3 -0
  15. package/dist/commands/liberica/clients/index.d.ts.map +1 -0
  16. package/dist/commands/liberica/clients/index.js +17 -0
  17. package/dist/commands/liberica/clients/index.js.map +1 -0
  18. package/dist/commands/liberica/clients/list.d.ts +3 -0
  19. package/dist/commands/liberica/clients/list.d.ts.map +1 -0
  20. package/dist/commands/liberica/clients/list.js +92 -0
  21. package/dist/commands/liberica/clients/list.js.map +1 -0
  22. package/dist/commands/liberica/clients/update.d.ts +3 -0
  23. package/dist/commands/liberica/clients/update.d.ts.map +1 -0
  24. package/dist/commands/liberica/clients/update.js +106 -0
  25. package/dist/commands/liberica/clients/update.js.map +1 -0
  26. package/dist/commands/liberica/index.d.ts.map +1 -1
  27. package/dist/commands/liberica/index.js +3 -0
  28. package/dist/commands/liberica/index.js.map +1 -1
  29. package/dist/core/api/client.d.ts +6 -0
  30. package/dist/core/api/client.d.ts.map +1 -1
  31. package/dist/core/api/client.js +125 -0
  32. package/dist/core/api/client.js.map +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/types/client.d.ts +100 -0
  35. package/dist/types/client.d.ts.map +1 -0
  36. package/dist/types/client.js +2 -0
  37. package/dist/types/client.js.map +1 -0
  38. package/dist/types/index.d.ts +2 -0
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/docs/commands/REFERENCE.md +21 -15
  41. package/package.json +1 -1
  42. package/src/commands/liberica/clients/create.ts +122 -0
  43. package/src/commands/liberica/clients/delete.ts +125 -0
  44. package/src/commands/liberica/clients/get.ts +88 -0
  45. package/src/commands/liberica/clients/index.ts +19 -0
  46. package/src/commands/liberica/clients/list.ts +123 -0
  47. package/src/commands/liberica/clients/update.ts +103 -0
  48. package/src/commands/liberica/index.ts +3 -0
  49. package/src/core/api/client.ts +152 -0
  50. package/src/index.ts +1 -1
  51. package/src/types/client.ts +115 -0
  52. package/src/types/index.ts +3 -0
package/bin/barista.js CHANGED
File without changes
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createClientCreateCommand(): Command;
3
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,yBAAyB,IAAI,OAAO,CAmHnD"}
@@ -0,0 +1,125 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../core/config/manager.js';
4
+ import { apiClient } from '../../../core/api/client.js';
5
+ export function createClientCreateCommand() {
6
+ const cmd = new Command('create');
7
+ cmd.description('Create a new client (auto-generates client code if not provided)');
8
+ cmd
9
+ .option('--client-code <code>', 'Client code (auto-generated if not provided)')
10
+ .option('--client-name <name>', 'Client name')
11
+ .option('--follower <name>', 'Follower/salesperson')
12
+ .option('--office-address <address>', 'Office address')
13
+ .option('--office-telephone <phone>', 'Office telephone')
14
+ .option('--status <status>', 'Status (1=enable, 2=disable)')
15
+ .option('--remark <remark>', 'Remark')
16
+ .option('--dry-run', 'Preview the operation without executing')
17
+ .option('--json', 'Output as JSON')
18
+ .action(async (options) => {
19
+ const context = configManager.getCurrentContext();
20
+ const environment = context.environment;
21
+ const tenant = context.tenant;
22
+ const jsonOutput = options.json === true;
23
+ let clientCode = options.clientCode;
24
+ const clientName = options.clientName;
25
+ const follower = options.follower;
26
+ const officeAddress = options.officeAddress;
27
+ const officeTelephone = options.officeTelephone;
28
+ const status = options.status;
29
+ const remark = options.remark;
30
+ if (!clientCode) {
31
+ const codeResponse = await apiClient.getCodeByType(environment, tenant, 'TenantClientCode');
32
+ if (codeResponse.success && codeResponse.data) {
33
+ clientCode = codeResponse.data;
34
+ }
35
+ else {
36
+ const errMsg = codeResponse.error?.message || 'Failed to generate client code';
37
+ if (jsonOutput) {
38
+ console.log(JSON.stringify({ success: false, error: { code: 'CODE_GENERATION_ERROR', message: errMsg } }));
39
+ }
40
+ else {
41
+ console.error(chalk.red(`\nāœ— Failed to generate client code: ${errMsg}\n`));
42
+ }
43
+ process.exit(1);
44
+ }
45
+ }
46
+ const data = {
47
+ clientCode,
48
+ clientName,
49
+ follower,
50
+ officeAddress,
51
+ officeTelephone,
52
+ statusFlag: status ? parseInt(status) : undefined,
53
+ remark,
54
+ };
55
+ Object.keys(data).forEach(key => {
56
+ if (data[key] === undefined) {
57
+ delete data[key];
58
+ }
59
+ });
60
+ if (options.dryRun) {
61
+ if (jsonOutput) {
62
+ console.log(JSON.stringify({ success: true, dryRun: true, data }));
63
+ }
64
+ else {
65
+ console.log(chalk.cyan('\nšŸ” Dry-Run Mode: No actual API call will be made\n'));
66
+ console.log(chalk.gray(' This operation will create the following client:'));
67
+ console.log(` ${chalk.gray('Client Code:')} ${clientCode}`);
68
+ if (clientName)
69
+ console.log(` ${chalk.gray('Client Name:')} ${clientName}`);
70
+ if (follower)
71
+ console.log(` ${chalk.gray('Follower:')} ${follower}`);
72
+ if (officeAddress)
73
+ console.log(` ${chalk.gray('Office:')} ${officeAddress}`);
74
+ console.log();
75
+ }
76
+ return;
77
+ }
78
+ try {
79
+ const response = await apiClient.createClient(environment, tenant, data);
80
+ if (response.success) {
81
+ if (jsonOutput) {
82
+ console.log(JSON.stringify({ success: true, data: response.data }));
83
+ }
84
+ else {
85
+ console.log(chalk.green('\nāœ“ Client created successfully\n'));
86
+ if (response.data && typeof response.data === 'object' && 'clientId' in response.data) {
87
+ console.log(` ${chalk.gray('Client ID:')} ${chalk.green(String(response.data.clientId))}`);
88
+ }
89
+ if (clientCode)
90
+ console.log(` ${chalk.gray('Client Code:')} ${chalk.green(clientCode)}`);
91
+ if (clientName)
92
+ console.log(` ${chalk.gray('Client Name:')} ${clientName}`);
93
+ console.log();
94
+ }
95
+ }
96
+ else {
97
+ const errorMsg = response.error?.message || 'Failed to create client';
98
+ const errorCode = response.error?.code || 'CREATE_CLIENT_ERROR';
99
+ if (jsonOutput) {
100
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
101
+ }
102
+ else {
103
+ console.error(chalk.red(`\nāœ— Failed to create client: ${errorMsg}`));
104
+ if (response.error?.code) {
105
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
106
+ }
107
+ console.error();
108
+ }
109
+ process.exit(1);
110
+ }
111
+ }
112
+ catch (error) {
113
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
114
+ if (jsonOutput) {
115
+ console.log(JSON.stringify({ success: false, error: { code: 'ERROR', message: errMsg } }));
116
+ }
117
+ else {
118
+ console.error(chalk.red(`\nāœ— Error: ${errMsg}\n`));
119
+ }
120
+ process.exit(1);
121
+ }
122
+ });
123
+ return cmd;
124
+ }
125
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGxD,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,GAAG,CAAC,WAAW,CAAC,kEAAkE,CAAC,CAAC;IAEpF,GAAG;SACA,MAAM,CAAC,sBAAsB,EAAE,8CAA8C,CAAC;SAC9E,MAAM,CAAC,sBAAsB,EAAE,aAAa,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,4BAA4B,EAAE,gBAAgB,CAAC;SACtD,MAAM,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;SACxD,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC;SACrC,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;SAC9D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;QAEzC,IAAI,UAAU,GAAG,OAAO,CAAC,UAAgC,CAAC;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAgC,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA8B,CAAC;QACxD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAmC,CAAC;QAClE,MAAM,eAAe,GAAG,OAAO,CAAC,eAAqC,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAA4B,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,MAA4B,CAAC;QAEpD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAC5F,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC9C,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,IAAI,gCAAgC,CAAC;gBAC/E,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC7G,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,MAAM,IAAI,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAwB;YAChC,UAAU;YACV,UAAU;YACV,QAAQ;YACR,aAAa;YACb,eAAe;YACf,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAe,CAAC,CAAC,CAAC,SAAS;YAC/D,MAAM;SACP,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC9B,IAAI,IAAI,CAAC,GAAgC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzD,OAAO,IAAI,CAAC,GAAgC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;gBAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;gBAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;gBAC7D,IAAI,UAAU;oBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;gBAC7E,IAAI,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACtE,IAAI,aAAa;oBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAEzE,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;oBAC9D,IAAI,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACtF,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,CAAE,QAAQ,CAAC,IAA6B,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzH,CAAC;oBACD,IAAI,UAAU;wBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC1F,IAAI,UAAU;wBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;oBAC7E,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBACtE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,qBAAqB,CAAC;gBAChE,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjG,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACrE,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;wBACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACpE,CAAC;oBACD,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACxE,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,MAAM,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createClientDeleteCommand(): Command;
3
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,yBAAyB,IAAI,OAAO,CAqHnD"}
@@ -0,0 +1,125 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../core/config/manager.js';
4
+ import { apiClient } from '../../../core/api/client.js';
5
+ export function createClientDeleteCommand() {
6
+ const deleteCommand = new Command('delete');
7
+ deleteCommand
8
+ .description('Delete a client')
9
+ .argument('<id>', 'Client ID')
10
+ .option('--force', 'Skip confirmation prompt')
11
+ .option('--dry-run', 'Preview the operation without executing')
12
+ .option('--json', 'Output as JSON')
13
+ .action(async (id, options) => {
14
+ const context = configManager.getCurrentContext();
15
+ const environment = context.environment;
16
+ const tenant = context.tenant;
17
+ const jsonOutput = options.json === true;
18
+ const clientId = id;
19
+ if (!clientId) {
20
+ if (jsonOutput) {
21
+ console.log(JSON.stringify({ success: false, error: { code: 'VALIDATION_ERROR', message: 'Client ID is required' } }));
22
+ }
23
+ else {
24
+ console.error(chalk.red('\nāœ— Client ID is required\n'));
25
+ }
26
+ process.exit(1);
27
+ }
28
+ if (!jsonOutput) {
29
+ console.log(chalk.bold(`\nšŸ—‘ļø Delete Client (${environment})\n`));
30
+ console.log(chalk.gray(` Client ID: ${clientId}`));
31
+ }
32
+ if (options.dryRun) {
33
+ if (jsonOutput) {
34
+ console.log(JSON.stringify({ success: true, dryRun: true, clientId }));
35
+ }
36
+ else {
37
+ console.log(chalk.cyan('\nšŸ” Dry-Run Mode: No actual API call will be made\n'));
38
+ console.log(chalk.gray(' This operation will delete the client.'));
39
+ console.log();
40
+ }
41
+ return;
42
+ }
43
+ let client;
44
+ try {
45
+ const clientResponse = await apiClient.getClient(environment, tenant, clientId);
46
+ if (!clientResponse.success || !clientResponse.data) {
47
+ const errMsg = `Client not found: ${clientId}`;
48
+ if (jsonOutput) {
49
+ console.log(JSON.stringify({ success: false, error: { code: 'NOT_FOUND', message: errMsg } }));
50
+ }
51
+ else {
52
+ console.error(chalk.red(`\nāœ— ${errMsg}\n`));
53
+ }
54
+ process.exit(1);
55
+ }
56
+ client = clientResponse.data;
57
+ }
58
+ catch (error) {
59
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
60
+ if (jsonOutput) {
61
+ console.log(JSON.stringify({ success: false, error: { code: 'FETCH_ERROR', message: `Failed to fetch client: ${errMsg}` } }));
62
+ }
63
+ else {
64
+ console.error(chalk.red(`\nāœ— Failed to fetch client: ${errMsg}\n`));
65
+ }
66
+ process.exit(1);
67
+ }
68
+ if (!options.force) {
69
+ if (!jsonOutput) {
70
+ console.log(chalk.gray(` Client Name: ${client.clientName}`));
71
+ console.log(chalk.gray(` Client Code: ${client.clientCode}`));
72
+ console.log(chalk.yellow(`\nāš ļø This action cannot be undone.`));
73
+ console.log(chalk.gray(' Use --force to skip this confirmation.\n'));
74
+ }
75
+ else {
76
+ console.log(JSON.stringify({
77
+ success: false,
78
+ error: {
79
+ code: 'CONFIRMATION_REQUIRED',
80
+ message: `Delete client "${client.clientName}"? Use --force to confirm.`
81
+ }
82
+ }));
83
+ }
84
+ process.exit(1);
85
+ }
86
+ try {
87
+ const response = await apiClient.deleteClient(environment, tenant, clientId);
88
+ if (response.success) {
89
+ if (jsonOutput) {
90
+ console.log(JSON.stringify({ success: true, clientId, name: client.clientName }));
91
+ }
92
+ else {
93
+ console.log(chalk.green(`\nāœ“ Client "${client.clientName}" (ID: ${clientId}) deleted\n`));
94
+ }
95
+ }
96
+ else {
97
+ const errorMsg = response.error?.message || 'Unknown error';
98
+ const errorCode = response.error?.code || 'DELETE_ERROR';
99
+ if (jsonOutput) {
100
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
101
+ }
102
+ else {
103
+ console.error(chalk.red(`\nāœ— Failed to delete client: ${errorMsg}`));
104
+ if (response.error?.code) {
105
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
106
+ }
107
+ console.error();
108
+ }
109
+ process.exit(1);
110
+ }
111
+ }
112
+ catch (error) {
113
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
114
+ if (jsonOutput) {
115
+ console.log(JSON.stringify({ success: false, error: { code: 'ERROR', message: errMsg } }));
116
+ }
117
+ else {
118
+ console.error(chalk.red(`\nāœ— Error: ${errMsg}\n`));
119
+ }
120
+ process.exit(1);
121
+ }
122
+ });
123
+ return deleteCommand;
124
+ }
125
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/delete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createClientGetCommand(): Command;
3
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,sBAAsB,IAAI,OAAO,CAgFhD"}
@@ -0,0 +1,77 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../core/config/manager.js';
4
+ import { apiClient } from '../../../core/api/client.js';
5
+ export function createClientGetCommand() {
6
+ const getCommand = new Command('get');
7
+ getCommand.description('Get client details by ID');
8
+ getCommand.arguments('<id>');
9
+ getCommand.option('--json', 'Output as JSON');
10
+ getCommand.action(async (id, options) => {
11
+ const context = configManager.getCurrentContext();
12
+ const environment = options.env || context.environment;
13
+ const tenant = options.tenant || context.tenant;
14
+ if (!id) {
15
+ console.error(chalk.red('\nāœ— Client ID is required\n'));
16
+ process.exit(1);
17
+ }
18
+ const clientId = id;
19
+ if (!clientId || clientId.trim() === '') {
20
+ console.error(chalk.red('\nāœ— Invalid client ID.\n'));
21
+ process.exit(1);
22
+ }
23
+ try {
24
+ const response = await apiClient.getClient(environment, tenant, clientId);
25
+ if (!response.success) {
26
+ const errorCode = response.error?.code || 'UNKNOWN_ERROR';
27
+ const errorMessage = response.error?.message || 'Unknown error';
28
+ if (errorCode === '01001150001' || errorMessage.includes('äøå­˜åœØ')) {
29
+ console.error(chalk.red(`\nāœ— Client not found: ${clientId}\n`));
30
+ }
31
+ else {
32
+ console.error(chalk.red(`\nāœ— Error: ${errorMessage} (${errorCode})\n`));
33
+ }
34
+ process.exit(1);
35
+ }
36
+ const client = response.data;
37
+ if (!client) {
38
+ console.error(chalk.red('\nāœ— Client not found\n'));
39
+ process.exit(1);
40
+ }
41
+ if (options.json) {
42
+ console.log(JSON.stringify({
43
+ success: true,
44
+ data: client,
45
+ }, null, 2));
46
+ return;
47
+ }
48
+ console.log(chalk.bold('\nšŸ¢ Client Details\n'));
49
+ console.log(` ${chalk.gray('Client ID:')} ${client.clientId}`);
50
+ console.log(` ${chalk.gray('Client Code:')} ${client.clientCode}`);
51
+ console.log(` ${chalk.gray('Client Name:')} ${client.clientName}`);
52
+ if (client.follower) {
53
+ console.log(` ${chalk.gray('Follower:')} ${client.follower}`);
54
+ }
55
+ if (client.officeAddress) {
56
+ console.log(` ${chalk.gray('Office:')} ${client.officeAddress}`);
57
+ }
58
+ if (client.officeTelephone) {
59
+ console.log(` ${chalk.gray('Telephone:')} ${client.officeTelephone}`);
60
+ }
61
+ if (client.statusFlag !== undefined) {
62
+ const statusText = client.statusFlag === 1 ? chalk.green('Enable') : chalk.red('Disable');
63
+ console.log(` ${chalk.gray('Status:')} ${statusText}`);
64
+ }
65
+ if (client.remark) {
66
+ console.log(` ${chalk.gray('Remark:')} ${client.remark}`);
67
+ }
68
+ console.log();
69
+ }
70
+ catch (error) {
71
+ console.error(chalk.red(`\nāœ— Unexpected error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
72
+ process.exit(1);
73
+ }
74
+ });
75
+ return getCommand;
76
+ }
77
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createClientsCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,oBAAoB,IAAI,OAAO,CAW9C"}
@@ -0,0 +1,17 @@
1
+ import { Command } from 'commander';
2
+ import { createClientListCommand } from './list.js';
3
+ import { createClientGetCommand } from './get.js';
4
+ import { createClientCreateCommand } from './create.js';
5
+ import { createClientUpdateCommand } from './update.js';
6
+ import { createClientDeleteCommand } from './delete.js';
7
+ export function createClientsCommand() {
8
+ const clientsCommand = new Command('clients');
9
+ clientsCommand.description('Manage clients');
10
+ clientsCommand.addCommand(createClientListCommand());
11
+ clientsCommand.addCommand(createClientGetCommand());
12
+ clientsCommand.addCommand(createClientCreateCommand());
13
+ clientsCommand.addCommand(createClientUpdateCommand());
14
+ clientsCommand.addCommand(createClientDeleteCommand());
15
+ return clientsCommand;
16
+ }
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,UAAU,oBAAoB;IAClC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAE7C,cAAc,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACrD,cAAc,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACpD,cAAc,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACvD,cAAc,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACvD,cAAc,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAEvD,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createClientListCommand(): Command;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,uBAAuB,IAAI,OAAO,CAkHjD"}
@@ -0,0 +1,92 @@
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 createClientListCommand() {
7
+ const listCommand = new Command('list');
8
+ listCommand.description('List clients with pagination');
9
+ listCommand
10
+ .option('-p, --page <number>', 'Page number', '1')
11
+ .option('-s, --size <number>', 'Page size', '20')
12
+ .option('--status <number>', 'Status filter (1=enable, 2=disable)')
13
+ .option('--json', 'Output as JSON')
14
+ .action(async (options) => {
15
+ const context = configManager.getCurrentContext();
16
+ const environment = options.env || context.environment;
17
+ const tenant = options.tenant || context.tenant;
18
+ const page = parseInt(options.page, 10) - 1; // API uses 0-based pagination
19
+ const size = parseInt(options.size, 10);
20
+ const params = { pageNo: page, pageSize: size };
21
+ if (options.status !== undefined) {
22
+ const statusNum = parseInt(options.status, 10);
23
+ if (statusNum === 1 || statusNum === 2) {
24
+ params.status = statusNum;
25
+ }
26
+ }
27
+ const response = await apiClient.listClients(environment, tenant, params);
28
+ if (!response.success) {
29
+ console.error(chalk.red(`\nāœ— Failed to list clients: ${response.error?.message || 'Unknown error'}`));
30
+ if (response.error?.code) {
31
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
32
+ }
33
+ console.error();
34
+ process.exit(1);
35
+ }
36
+ const data = response.data;
37
+ if (!data) {
38
+ if (options.json) {
39
+ console.log(JSON.stringify({ success: true, data: { items: [], pagination: { pageNo: 0, pageSize: 20, totalRows: 0 } } }, null, 2));
40
+ }
41
+ else {
42
+ console.log(chalk.bold('\nšŸ“‹ Client List\n'));
43
+ console.log(chalk.gray(' No clients found\n'));
44
+ }
45
+ return;
46
+ }
47
+ if (options.json) {
48
+ console.log(JSON.stringify({
49
+ success: true,
50
+ data: {
51
+ items: data.rows || [],
52
+ pagination: {
53
+ pageNo: data.pageNo,
54
+ pageSize: data.pageSize,
55
+ totalRows: data.totalRows,
56
+ },
57
+ },
58
+ }, null, 2));
59
+ return;
60
+ }
61
+ const records = data.rows || [];
62
+ if (records.length === 0) {
63
+ console.log(chalk.bold('\nšŸ“‹ Client List\n'));
64
+ console.log(chalk.gray(' No clients found\n'));
65
+ return;
66
+ }
67
+ console.log(chalk.bold('\nšŸ“‹ Client List\n'));
68
+ const table = new Table({
69
+ head: [chalk.bold('CLIENT CODE'), chalk.bold('CLIENT NAME'), chalk.bold('FOLLOWER'), chalk.bold('STATUS')],
70
+ colWidths: [15, 25, 20, 10],
71
+ style: {
72
+ head: [],
73
+ border: [],
74
+ },
75
+ });
76
+ for (const client of records) {
77
+ const statusText = client.statusFlag === 1 ? chalk.green('Enable') : chalk.red('Disable');
78
+ table.push([
79
+ client.clientCode,
80
+ client.clientName || '-',
81
+ client.follower || '-',
82
+ statusText,
83
+ ]);
84
+ }
85
+ console.log(table.toString());
86
+ console.log();
87
+ console.log(chalk.gray(` Total: ${data.totalRows} | Page: ${data.pageNo + 1} / ${Math.ceil(data.totalRows / data.pageSize) || 1} | Size: ${data.pageSize}`));
88
+ console.log();
89
+ });
90
+ return listCommand;
91
+ }
92
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createClientUpdateCommand(): Command;
3
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/clients/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,yBAAyB,IAAI,OAAO,CA+FnD"}