@newpeak/barista-cli 0.1.5 → 0.1.6

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 (79) hide show
  1. package/dist/commands/liberica/currency/create.d.ts +3 -0
  2. package/dist/commands/liberica/currency/create.d.ts.map +1 -0
  3. package/dist/commands/liberica/currency/create.js +168 -0
  4. package/dist/commands/liberica/currency/create.js.map +1 -0
  5. package/dist/commands/liberica/currency/delete.d.ts +3 -0
  6. package/dist/commands/liberica/currency/delete.d.ts.map +1 -0
  7. package/dist/commands/liberica/currency/delete.js +122 -0
  8. package/dist/commands/liberica/currency/delete.js.map +1 -0
  9. package/dist/commands/liberica/currency/disable.d.ts +3 -0
  10. package/dist/commands/liberica/currency/disable.d.ts.map +1 -0
  11. package/dist/commands/liberica/currency/disable.js +145 -0
  12. package/dist/commands/liberica/currency/disable.js.map +1 -0
  13. package/dist/commands/liberica/currency/enable.d.ts +3 -0
  14. package/dist/commands/liberica/currency/enable.d.ts.map +1 -0
  15. package/dist/commands/liberica/currency/enable.js +125 -0
  16. package/dist/commands/liberica/currency/enable.js.map +1 -0
  17. package/dist/commands/liberica/currency/get.d.ts +3 -0
  18. package/dist/commands/liberica/currency/get.d.ts.map +1 -0
  19. package/dist/commands/liberica/currency/get.js +80 -0
  20. package/dist/commands/liberica/currency/get.js.map +1 -0
  21. package/dist/commands/liberica/currency/index.d.ts +3 -0
  22. package/dist/commands/liberica/currency/index.d.ts.map +1 -0
  23. package/dist/commands/liberica/currency/index.js +21 -0
  24. package/dist/commands/liberica/currency/index.js.map +1 -0
  25. package/dist/commands/liberica/currency/list.d.ts +3 -0
  26. package/dist/commands/liberica/currency/list.d.ts.map +1 -0
  27. package/dist/commands/liberica/currency/list.js +106 -0
  28. package/dist/commands/liberica/currency/list.js.map +1 -0
  29. package/dist/commands/liberica/currency/update.d.ts +3 -0
  30. package/dist/commands/liberica/currency/update.d.ts.map +1 -0
  31. package/dist/commands/liberica/currency/update.js +123 -0
  32. package/dist/commands/liberica/currency/update.js.map +1 -0
  33. package/dist/commands/liberica/index.d.ts.map +1 -1
  34. package/dist/commands/liberica/index.js +3 -0
  35. package/dist/commands/liberica/index.js.map +1 -1
  36. package/dist/core/api/client.d.ts +10 -0
  37. package/dist/core/api/client.d.ts.map +1 -1
  38. package/dist/core/api/client.js +185 -0
  39. package/dist/core/api/client.js.map +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/types/currency.d.ts +74 -0
  42. package/dist/types/currency.d.ts.map +1 -0
  43. package/dist/types/currency.js +2 -0
  44. package/dist/types/currency.js.map +1 -0
  45. package/docs/COMMAND_DESIGN_SPEC.md +42 -13
  46. package/docs/commands/liberica/currency/create.md +145 -0
  47. package/docs/commands/liberica/currency/delete.md +121 -0
  48. package/docs/commands/liberica/currency/disable.md +119 -0
  49. package/docs/commands/liberica/currency/enable.md +115 -0
  50. package/docs/commands/liberica/currency/get.md +118 -0
  51. package/docs/commands/liberica/currency/list.md +149 -0
  52. package/docs/commands/liberica/currency/update.md +141 -0
  53. package/package.json +1 -1
  54. package/src/commands/liberica/currency/create.ts +183 -0
  55. package/src/commands/liberica/currency/delete.ts +124 -0
  56. package/src/commands/liberica/currency/disable.ts +147 -0
  57. package/src/commands/liberica/currency/enable.ts +128 -0
  58. package/src/commands/liberica/currency/get.ts +91 -0
  59. package/src/commands/liberica/currency/index.ts +23 -0
  60. package/src/commands/liberica/currency/list.ts +140 -0
  61. package/src/commands/liberica/currency/update.ts +129 -0
  62. package/src/commands/liberica/index.ts +3 -0
  63. package/src/core/api/client.ts +236 -0
  64. package/src/index.ts +1 -1
  65. package/src/types/currency.ts +90 -0
  66. /package/docs/commands/liberica/{materials-create.md → materials/create.md} +0 -0
  67. /package/docs/commands/liberica/{materials-delete.md → materials/delete.md} +0 -0
  68. /package/docs/commands/liberica/{materials-disable.md → materials/disable.md} +0 -0
  69. /package/docs/commands/liberica/{materials-enable.md → materials/enable.md} +0 -0
  70. /package/docs/commands/liberica/{materials-get.md → materials/get.md} +0 -0
  71. /package/docs/commands/liberica/{materials-list.md → materials/list.md} +0 -0
  72. /package/docs/commands/liberica/{materials-update.md → materials/update.md} +0 -0
  73. /package/docs/commands/liberica/{uoms-create.md → uoms/create.md} +0 -0
  74. /package/docs/commands/liberica/{uoms-delete.md → uoms/delete.md} +0 -0
  75. /package/docs/commands/liberica/{uoms-disable.md → uoms/disable.md} +0 -0
  76. /package/docs/commands/liberica/{uoms-enable.md → uoms/enable.md} +0 -0
  77. /package/docs/commands/liberica/{uoms-get.md → uoms/get.md} +0 -0
  78. /package/docs/commands/liberica/{uoms-list.md → uoms/list.md} +0 -0
  79. /package/docs/commands/liberica/{uoms-update.md → uoms/update.md} +0 -0
@@ -34,6 +34,13 @@ import {
34
34
  UomQueryParams,
35
35
  UomApiResponse,
36
36
  } from '../../types/uom.js';
37
+ import {
38
+ CreateCurrencyRequest,
39
+ UpdateCurrencyRequest,
40
+ CurrencyQueryParams,
41
+ CurrencyApiResponse,
42
+ CurrencyDefaultResponse,
43
+ } from '../../types/currency.js';
37
44
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
45
  import { ApiResponse, Material, MaterialApiResponse, MaterialQueryParams, MaterialRequest } from '../../types/material.js';
39
46
 
@@ -1364,6 +1371,196 @@ export const apiClient = {
1364
1371
  }
1365
1372
  },
1366
1373
 
1374
+ async listCurrencies(
1375
+ environment: Environment,
1376
+ tenant: string,
1377
+ params: CurrencyQueryParams
1378
+ ): Promise<CurrencyApiResponse> {
1379
+ try {
1380
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1381
+ if (!token) {
1382
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1383
+ }
1384
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1385
+ client.setAuthToken(token);
1386
+ const queryString = new URLSearchParams();
1387
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
1388
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
1389
+ if (params.status) queryString.append('status', params.status.toString());
1390
+ if (params.currencyCode) queryString.append('currencyCode', params.currencyCode);
1391
+ if (params.currencyName) queryString.append('currencyName', params.currencyName);
1392
+ const url = `/api/enterprise/sales/currency/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
1393
+ const response = await client.getClient().get<CurrencyApiResponse>(url);
1394
+ return response.data;
1395
+ } catch (error) {
1396
+ return handleApiErrorCurrency(error);
1397
+ }
1398
+ },
1399
+
1400
+ async getCurrency(
1401
+ environment: Environment,
1402
+ tenant: string,
1403
+ currencyId: string
1404
+ ): Promise<CurrencyApiResponse> {
1405
+ try {
1406
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1407
+ if (!token) {
1408
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1409
+ }
1410
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1411
+ client.setAuthToken(token);
1412
+ const response = await client.getClient().get<CurrencyApiResponse>(
1413
+ `/api/enterprise/sales/currency/detail?currencyId=${currencyId}`
1414
+ );
1415
+ return response.data;
1416
+ } catch (error) {
1417
+ return handleApiErrorCurrency(error);
1418
+ }
1419
+ },
1420
+
1421
+ async getAvailableCurrencies(
1422
+ environment: Environment,
1423
+ tenant: string
1424
+ ): Promise<CurrencyApiResponse> {
1425
+ try {
1426
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1427
+ if (!token) {
1428
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1429
+ }
1430
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1431
+ client.setAuthToken(token);
1432
+ const response = await client.getClient().get<CurrencyApiResponse>('/api/enterprise/master/currency/available/list');
1433
+ return response.data;
1434
+ } catch (error) {
1435
+ return handleApiErrorCurrency(error);
1436
+ }
1437
+ },
1438
+
1439
+ async getCurrencyDefault(
1440
+ environment: Environment,
1441
+ tenant: string,
1442
+ currencyCode: string
1443
+ ): Promise<CurrencyDefaultResponse> {
1444
+ try {
1445
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1446
+ if (!token) {
1447
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1448
+ }
1449
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1450
+ client.setAuthToken(token);
1451
+ const response = await client.getClient().get<CurrencyDefaultResponse>(
1452
+ `/api/enterprise/master/currency/currency/default?currencyCode=${currencyCode}`
1453
+ );
1454
+ return response.data;
1455
+ } catch (error) {
1456
+ return handleApiErrorCurrency(error) as CurrencyDefaultResponse;
1457
+ }
1458
+ },
1459
+
1460
+ async createCurrency(
1461
+ environment: Environment,
1462
+ tenant: string,
1463
+ data: CreateCurrencyRequest
1464
+ ): Promise<CurrencyApiResponse> {
1465
+ try {
1466
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1467
+ if (!token) {
1468
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1469
+ }
1470
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1471
+ client.setAuthToken(token);
1472
+ const response = await client.getClient().post<CurrencyApiResponse>('/api/enterprise/sales/currency/add', data);
1473
+ return response.data;
1474
+ } catch (error) {
1475
+ return handleApiErrorCurrency(error);
1476
+ }
1477
+ },
1478
+
1479
+ async updateCurrency(
1480
+ environment: Environment,
1481
+ tenant: string,
1482
+ data: UpdateCurrencyRequest
1483
+ ): Promise<CurrencyApiResponse> {
1484
+ try {
1485
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1486
+ if (!token) {
1487
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1488
+ }
1489
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1490
+ client.setAuthToken(token);
1491
+ const response = await client.getClient().post<CurrencyApiResponse>('/api/enterprise/sales/currency/edit', data);
1492
+ return response.data;
1493
+ } catch (error) {
1494
+ return handleApiErrorCurrency(error);
1495
+ }
1496
+ },
1497
+
1498
+ async deleteCurrency(
1499
+ environment: Environment,
1500
+ tenant: string,
1501
+ currencyId: string
1502
+ ): Promise<CurrencyApiResponse> {
1503
+ try {
1504
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1505
+ if (!token) {
1506
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1507
+ }
1508
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1509
+ client.setAuthToken(token);
1510
+ const response = await client.getClient().post<CurrencyApiResponse>(
1511
+ '/api/enterprise/sales/currency/delete',
1512
+ { currencyId }
1513
+ );
1514
+ return response.data;
1515
+ } catch (error) {
1516
+ return handleApiErrorCurrency(error);
1517
+ }
1518
+ },
1519
+
1520
+ async enableCurrencies(
1521
+ environment: Environment,
1522
+ tenant: string,
1523
+ currencyIds: string[]
1524
+ ): Promise<CurrencyApiResponse> {
1525
+ try {
1526
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1527
+ if (!token) {
1528
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1529
+ }
1530
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1531
+ client.setAuthToken(token);
1532
+ const response = await client.getClient().post<CurrencyApiResponse>(
1533
+ '/api/enterprise/sales/currency/batchActive',
1534
+ { currencyIdList: currencyIds }
1535
+ );
1536
+ return response.data;
1537
+ } catch (error) {
1538
+ return handleApiErrorCurrency(error);
1539
+ }
1540
+ },
1541
+
1542
+ async disableCurrencies(
1543
+ environment: Environment,
1544
+ tenant: string,
1545
+ currencyIds: string[]
1546
+ ): Promise<CurrencyApiResponse> {
1547
+ try {
1548
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1549
+ if (!token) {
1550
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1551
+ }
1552
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1553
+ client.setAuthToken(token);
1554
+ const response = await client.getClient().post<CurrencyApiResponse>(
1555
+ '/api/enterprise/sales/currency/batchDeActive',
1556
+ { currencyIdList: currencyIds }
1557
+ );
1558
+ return response.data;
1559
+ } catch (error) {
1560
+ return handleApiErrorCurrency(error);
1561
+ }
1562
+ },
1563
+
1367
1564
  };
1368
1565
 
1369
1566
  function handleApiError(error: unknown): EmployeeApiResponse {
@@ -1559,4 +1756,43 @@ function handleApiErrorUom(error: unknown): UomApiResponse {
1559
1756
  message: error instanceof Error ? error.message : 'Unknown error occurred',
1560
1757
  },
1561
1758
  };
1759
+ }
1760
+
1761
+ function handleApiErrorCurrency(error: unknown): CurrencyApiResponse {
1762
+ if (axios.isAxiosError(error)) {
1763
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1764
+ const responseData = axiosError.response?.data;
1765
+ if (responseData) {
1766
+ const success = responseData.success as boolean | undefined;
1767
+ if (success === false) {
1768
+ const code = responseData.code as string | undefined;
1769
+ const message = responseData.message as string | undefined;
1770
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1771
+ if (!errorObj && (code || message)) {
1772
+ return {
1773
+ success: false,
1774
+ error: {
1775
+ code: code || 'API_ERROR',
1776
+ message: message || 'API error occurred',
1777
+ },
1778
+ };
1779
+ }
1780
+ }
1781
+ return responseData as unknown as CurrencyApiResponse;
1782
+ }
1783
+ return {
1784
+ success: false,
1785
+ error: {
1786
+ code: 'NETWORK_ERROR',
1787
+ message: axiosError.message || 'Network error occurred',
1788
+ },
1789
+ };
1790
+ }
1791
+ return {
1792
+ success: false,
1793
+ error: {
1794
+ code: 'UNKNOWN_ERROR',
1795
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1796
+ },
1797
+ };
1562
1798
  }
package/src/index.ts CHANGED
@@ -15,7 +15,7 @@ async function main(): Promise<void> {
15
15
  program
16
16
  .name('barista')
17
17
  .description('Barista CLI - Bridge between AI agents and Liberica/Arabica')
18
- .version('0.1.5')
18
+ .version('0.1.6')
19
19
  .option('-e, --env <environment>', 'Target environment (dev|test|prod-cn|prod-jp)')
20
20
  .option('-t, --tenant <tenant>', 'Target tenant (for Liberica)')
21
21
  .option('--dry-run', 'Execute in dry-run mode')
@@ -0,0 +1,90 @@
1
+ // Status flag literal type
2
+ export type CurrencyStatusFlag = 1 | 2;
3
+
4
+ // Full Currency entity
5
+ export interface Currency {
6
+ currencyId: string;
7
+ currencyCode: string;
8
+ currencyName: string;
9
+ currencySign: string;
10
+ currencyRateType?: string;
11
+ currencyExchangeMethod?: string;
12
+ unitPriceFractionPlaces?: number;
13
+ amountFractionPlaces?: number;
14
+ statusFlag: CurrencyStatusFlag;
15
+ currencyRate?: string;
16
+ remark?: string;
17
+ }
18
+
19
+ // Request for creating Currency (add endpoint)
20
+ export interface CreateCurrencyRequest {
21
+ currencyCode: string;
22
+ currencyName?: string;
23
+ currencySign?: string;
24
+ currencyRate?: string;
25
+ unitPriceFractionPlaces?: number;
26
+ amountFractionPlaces?: number;
27
+ remark?: string;
28
+ }
29
+
30
+ // Request for updating Currency (edit endpoint)
31
+ export interface UpdateCurrencyRequest {
32
+ currencyId: string;
33
+ currencyName?: string;
34
+ currencySign?: string;
35
+ currencyRateType?: string;
36
+ currencyExchangeMethod?: string;
37
+ unitPriceFractionPlaces?: number;
38
+ amountFractionPlaces?: number;
39
+ statusFlag?: CurrencyStatusFlag;
40
+ currencyRate?: string;
41
+ remark?: string;
42
+ }
43
+
44
+ // Query params for list/pagination
45
+ export interface CurrencyQueryParams {
46
+ pageNo?: number;
47
+ pageSize?: number;
48
+ status?: CurrencyStatusFlag;
49
+ currencyCode?: string;
50
+ currencyName?: string;
51
+ }
52
+
53
+ // Paginated response wrapper (PageResult from Roses framework)
54
+ export interface PageResult<T> {
55
+ totalRows: number;
56
+ pageSize: number;
57
+ pageNo: number;
58
+ rows: T[];
59
+ }
60
+
61
+ // List response type
62
+ export interface CurrencyListResponse extends PageResult<Currency> {}
63
+
64
+ // API response wrapper
65
+ export interface CurrencyApiResponse {
66
+ success: boolean;
67
+ data?: Currency | CurrencyListResponse;
68
+ error?: {
69
+ code: string;
70
+ message: string;
71
+ };
72
+ }
73
+
74
+ // Default currency response (from getCurrencyDefault endpoint)
75
+ export interface CurrencyDefault {
76
+ currencyCode: string;
77
+ currencyName: string;
78
+ currencySign: string;
79
+ unitPriceFractionPlaces?: number;
80
+ amountFractionPlaces?: number;
81
+ }
82
+
83
+ export interface CurrencyDefaultResponse {
84
+ success: boolean;
85
+ data?: CurrencyDefault;
86
+ error?: {
87
+ code: string;
88
+ message: string;
89
+ };
90
+ }