@newpeak/barista-cli 0.1.4 → 0.1.5

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 (169) hide show
  1. package/dist/commands/liberica/auth/index.d.ts.map +1 -1
  2. package/dist/commands/liberica/auth/index.js +5 -0
  3. package/dist/commands/liberica/auth/index.js.map +1 -1
  4. package/dist/commands/liberica/index.d.ts.map +1 -1
  5. package/dist/commands/liberica/index.js +8 -0
  6. package/dist/commands/liberica/index.js.map +1 -1
  7. package/dist/commands/liberica/materials/create.d.ts +3 -0
  8. package/dist/commands/liberica/materials/create.d.ts.map +1 -0
  9. package/dist/commands/liberica/materials/create.js +154 -0
  10. package/dist/commands/liberica/materials/create.js.map +1 -0
  11. package/dist/commands/liberica/materials/delete.d.ts +3 -0
  12. package/dist/commands/liberica/materials/delete.d.ts.map +1 -0
  13. package/dist/commands/liberica/materials/delete.js +104 -0
  14. package/dist/commands/liberica/materials/delete.js.map +1 -0
  15. package/dist/commands/liberica/materials/disable.d.ts +3 -0
  16. package/dist/commands/liberica/materials/disable.d.ts.map +1 -0
  17. package/dist/commands/liberica/materials/disable.js +146 -0
  18. package/dist/commands/liberica/materials/disable.js.map +1 -0
  19. package/dist/commands/liberica/materials/enable.d.ts +3 -0
  20. package/dist/commands/liberica/materials/enable.d.ts.map +1 -0
  21. package/dist/commands/liberica/materials/enable.js +126 -0
  22. package/dist/commands/liberica/materials/enable.js.map +1 -0
  23. package/dist/commands/liberica/materials/get.d.ts +3 -0
  24. package/dist/commands/liberica/materials/get.d.ts.map +1 -0
  25. package/dist/commands/liberica/materials/get.js +71 -0
  26. package/dist/commands/liberica/materials/get.js.map +1 -0
  27. package/dist/commands/liberica/materials/index.d.ts +3 -0
  28. package/dist/commands/liberica/materials/index.d.ts.map +1 -0
  29. package/dist/commands/liberica/materials/index.js +21 -0
  30. package/dist/commands/liberica/materials/index.js.map +1 -0
  31. package/dist/commands/liberica/materials/list.d.ts +3 -0
  32. package/dist/commands/liberica/materials/list.d.ts.map +1 -0
  33. package/dist/commands/liberica/materials/list.js +107 -0
  34. package/dist/commands/liberica/materials/list.js.map +1 -0
  35. package/dist/commands/liberica/materials/update.d.ts +3 -0
  36. package/dist/commands/liberica/materials/update.d.ts.map +1 -0
  37. package/dist/commands/liberica/materials/update.js +118 -0
  38. package/dist/commands/liberica/materials/update.js.map +1 -0
  39. package/dist/commands/liberica/suppliers/create.d.ts +3 -0
  40. package/dist/commands/liberica/suppliers/create.d.ts.map +1 -0
  41. package/dist/commands/liberica/suppliers/create.js +140 -0
  42. package/dist/commands/liberica/suppliers/create.js.map +1 -0
  43. package/dist/commands/liberica/suppliers/delete.d.ts +3 -0
  44. package/dist/commands/liberica/suppliers/delete.d.ts.map +1 -0
  45. package/dist/commands/liberica/suppliers/delete.js +102 -0
  46. package/dist/commands/liberica/suppliers/delete.js.map +1 -0
  47. package/dist/commands/liberica/suppliers/disable.d.ts +3 -0
  48. package/dist/commands/liberica/suppliers/disable.d.ts.map +1 -0
  49. package/dist/commands/liberica/suppliers/disable.js +144 -0
  50. package/dist/commands/liberica/suppliers/disable.js.map +1 -0
  51. package/dist/commands/liberica/suppliers/enable.d.ts +3 -0
  52. package/dist/commands/liberica/suppliers/enable.d.ts.map +1 -0
  53. package/dist/commands/liberica/suppliers/enable.js +124 -0
  54. package/dist/commands/liberica/suppliers/enable.js.map +1 -0
  55. package/dist/commands/liberica/suppliers/get.d.ts +3 -0
  56. package/dist/commands/liberica/suppliers/get.d.ts.map +1 -0
  57. package/dist/commands/liberica/suppliers/get.js +75 -0
  58. package/dist/commands/liberica/suppliers/get.js.map +1 -0
  59. package/dist/commands/liberica/suppliers/index.d.ts +3 -0
  60. package/dist/commands/liberica/suppliers/index.d.ts.map +1 -0
  61. package/dist/commands/liberica/suppliers/index.js +21 -0
  62. package/dist/commands/liberica/suppliers/index.js.map +1 -0
  63. package/dist/commands/liberica/suppliers/list.d.ts +3 -0
  64. package/dist/commands/liberica/suppliers/list.d.ts.map +1 -0
  65. package/dist/commands/liberica/suppliers/list.js +100 -0
  66. package/dist/commands/liberica/suppliers/list.js.map +1 -0
  67. package/dist/commands/liberica/suppliers/update.d.ts +3 -0
  68. package/dist/commands/liberica/suppliers/update.d.ts.map +1 -0
  69. package/dist/commands/liberica/suppliers/update.js +122 -0
  70. package/dist/commands/liberica/suppliers/update.js.map +1 -0
  71. package/dist/commands/liberica/uoms/create.d.ts +3 -0
  72. package/dist/commands/liberica/uoms/create.d.ts.map +1 -0
  73. package/dist/commands/liberica/uoms/create.js +120 -0
  74. package/dist/commands/liberica/uoms/create.js.map +1 -0
  75. package/dist/commands/liberica/uoms/delete.d.ts +3 -0
  76. package/dist/commands/liberica/uoms/delete.d.ts.map +1 -0
  77. package/dist/commands/liberica/uoms/delete.js +104 -0
  78. package/dist/commands/liberica/uoms/delete.js.map +1 -0
  79. package/dist/commands/liberica/uoms/disable.d.ts +3 -0
  80. package/dist/commands/liberica/uoms/disable.d.ts.map +1 -0
  81. package/dist/commands/liberica/uoms/disable.js +146 -0
  82. package/dist/commands/liberica/uoms/disable.js.map +1 -0
  83. package/dist/commands/liberica/uoms/enable.d.ts +3 -0
  84. package/dist/commands/liberica/uoms/enable.d.ts.map +1 -0
  85. package/dist/commands/liberica/uoms/enable.js +126 -0
  86. package/dist/commands/liberica/uoms/enable.js.map +1 -0
  87. package/dist/commands/liberica/uoms/get.d.ts +3 -0
  88. package/dist/commands/liberica/uoms/get.d.ts.map +1 -0
  89. package/dist/commands/liberica/uoms/get.js +71 -0
  90. package/dist/commands/liberica/uoms/get.js.map +1 -0
  91. package/dist/commands/liberica/uoms/index.d.ts +3 -0
  92. package/dist/commands/liberica/uoms/index.d.ts.map +1 -0
  93. package/dist/commands/liberica/uoms/index.js +21 -0
  94. package/dist/commands/liberica/uoms/index.js.map +1 -0
  95. package/dist/commands/liberica/uoms/list.d.ts +3 -0
  96. package/dist/commands/liberica/uoms/list.d.ts.map +1 -0
  97. package/dist/commands/liberica/uoms/list.js +98 -0
  98. package/dist/commands/liberica/uoms/list.js.map +1 -0
  99. package/dist/commands/liberica/uoms/update.d.ts +3 -0
  100. package/dist/commands/liberica/uoms/update.d.ts.map +1 -0
  101. package/dist/commands/liberica/uoms/update.js +115 -0
  102. package/dist/commands/liberica/uoms/update.js.map +1 -0
  103. package/dist/core/api/client.d.ts +24 -0
  104. package/dist/core/api/client.d.ts.map +1 -1
  105. package/dist/core/api/client.js +465 -0
  106. package/dist/core/api/client.js.map +1 -1
  107. package/dist/index.js +1 -1
  108. package/dist/types/index.d.ts +5 -1
  109. package/dist/types/index.d.ts.map +1 -1
  110. package/dist/types/material.d.ts +49 -0
  111. package/dist/types/material.d.ts.map +1 -0
  112. package/dist/types/material.js +2 -0
  113. package/dist/types/material.js.map +1 -0
  114. package/dist/types/supplier.d.ts +53 -0
  115. package/dist/types/supplier.d.ts.map +1 -0
  116. package/dist/types/supplier.js +2 -0
  117. package/dist/types/supplier.js.map +1 -0
  118. package/dist/types/uom.d.ts +47 -0
  119. package/dist/types/uom.d.ts.map +1 -0
  120. package/dist/types/uom.js +2 -0
  121. package/dist/types/uom.js.map +1 -0
  122. package/docs/commands/liberica/materials-create.md +293 -0
  123. package/docs/commands/liberica/materials-delete.md +240 -0
  124. package/docs/commands/liberica/materials-disable.md +150 -0
  125. package/docs/commands/liberica/materials-enable.md +146 -0
  126. package/docs/commands/liberica/materials-get.md +188 -0
  127. package/docs/commands/liberica/materials-list.md +198 -0
  128. package/docs/commands/liberica/materials-update.md +250 -0
  129. package/docs/commands/liberica/uoms-create.md +136 -0
  130. package/docs/commands/liberica/uoms-delete.md +119 -0
  131. package/docs/commands/liberica/uoms-disable.md +117 -0
  132. package/docs/commands/liberica/uoms-enable.md +115 -0
  133. package/docs/commands/liberica/uoms-get.md +119 -0
  134. package/docs/commands/liberica/uoms-list.md +155 -0
  135. package/docs/commands/liberica/uoms-update.md +148 -0
  136. package/package.json +2 -4
  137. package/src/commands/liberica/auth/index.ts +6 -0
  138. package/src/commands/liberica/index.ts +8 -0
  139. package/src/commands/liberica/materials/create.ts +168 -0
  140. package/src/commands/liberica/materials/delete.ts +105 -0
  141. package/src/commands/liberica/materials/disable.ts +148 -0
  142. package/src/commands/liberica/materials/enable.ts +129 -0
  143. package/src/commands/liberica/materials/get.ts +83 -0
  144. package/src/commands/liberica/materials/index.ts +23 -0
  145. package/src/commands/liberica/materials/list.ts +142 -0
  146. package/src/commands/liberica/materials/update.ts +125 -0
  147. package/src/commands/liberica/suppliers/create.ts +149 -0
  148. package/src/commands/liberica/suppliers/delete.ts +102 -0
  149. package/src/commands/liberica/suppliers/disable.ts +145 -0
  150. package/src/commands/liberica/suppliers/enable.ts +126 -0
  151. package/src/commands/liberica/suppliers/get.ts +86 -0
  152. package/src/commands/liberica/suppliers/index.ts +23 -0
  153. package/src/commands/liberica/suppliers/list.ts +134 -0
  154. package/src/commands/liberica/suppliers/update.ts +128 -0
  155. package/src/commands/liberica/uoms/create.ts +134 -0
  156. package/src/commands/liberica/uoms/delete.ts +105 -0
  157. package/src/commands/liberica/uoms/disable.ts +148 -0
  158. package/src/commands/liberica/uoms/enable.ts +129 -0
  159. package/src/commands/liberica/uoms/get.ts +83 -0
  160. package/src/commands/liberica/uoms/index.ts +23 -0
  161. package/src/commands/liberica/uoms/list.ts +129 -0
  162. package/src/commands/liberica/uoms/update.ts +124 -0
  163. package/src/core/api/client.ts +585 -0
  164. package/src/index.ts +1 -1
  165. package/src/types/index.ts +5 -2
  166. package/src/types/material.ts +61 -0
  167. package/src/types/supplier.ts +66 -0
  168. package/src/types/uom.ts +60 -0
  169. package/bin/barista.js +0 -3
@@ -20,8 +20,22 @@ import {
20
20
  ClientQueryParams,
21
21
  ClientApiResponse,
22
22
  } from '../../types/client.js';
23
+ import {
24
+ CreateSupplierRequest,
25
+ UpdateSupplierRequest,
26
+ SupplierQueryParams,
27
+ SupplierApiResponse,
28
+ } from '../../types/supplier.js';
23
29
  import { OrgListItem } from '../../types/org.js';
24
30
  import { PositionListItem } from '../../types/position.js';
31
+ import {
32
+ CreateUomRequest,
33
+ UpdateUomRequest,
34
+ UomQueryParams,
35
+ UomApiResponse,
36
+ } from '../../types/uom.js';
37
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
+ import { ApiResponse, Material, MaterialApiResponse, MaterialQueryParams, MaterialRequest } from '../../types/material.js';
25
39
 
26
40
  export interface LoginResponse {
27
41
  token: string;
@@ -896,6 +910,460 @@ export const apiClient = {
896
910
  }
897
911
  },
898
912
 
913
+ async listSuppliers(
914
+ environment: Environment,
915
+ tenant: string,
916
+ params: SupplierQueryParams
917
+ ): Promise<SupplierApiResponse> {
918
+ try {
919
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
920
+ if (!token) {
921
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
922
+ }
923
+ const client = createAPIClient('liberica' as Service, environment, tenant);
924
+ client.setAuthToken(token);
925
+ const queryString = new URLSearchParams();
926
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
927
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
928
+ if (params.status) queryString.append('status', params.status.toString());
929
+ if (params.supplierCode) queryString.append('supplierCode', params.supplierCode);
930
+ if (params.supplierName) queryString.append('supplierName', params.supplierName);
931
+ const url = `/api/enterprise/purchases/supplier/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
932
+ const response = await client.getClient().get<SupplierApiResponse>(url);
933
+ return response.data;
934
+ } catch (error) {
935
+ return handleApiErrorSupplier(error);
936
+ }
937
+ },
938
+
939
+ async getSupplier(
940
+ environment: Environment,
941
+ tenant: string,
942
+ supplierId: string
943
+ ): Promise<SupplierApiResponse> {
944
+ try {
945
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
946
+ if (!token) {
947
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
948
+ }
949
+ const client = createAPIClient('liberica' as Service, environment, tenant);
950
+ client.setAuthToken(token);
951
+ const response = await client.getClient().get<SupplierApiResponse>(
952
+ `/api/enterprise/purchases/supplier/detail?supplierId=${supplierId}`
953
+ );
954
+ return response.data;
955
+ } catch (error) {
956
+ return handleApiErrorSupplier(error);
957
+ }
958
+ },
959
+
960
+ async getMaterial(
961
+ environment: Environment,
962
+ tenant: string,
963
+ materialId: string
964
+ ): Promise<MaterialApiResponse> {
965
+ try {
966
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
967
+ if (!token) {
968
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
969
+ }
970
+ const client = createAPIClient('liberica' as Service, environment, tenant);
971
+ client.setAuthToken(token);
972
+ const response = await client.getClient().get<MaterialApiResponse>(
973
+ `/api/enterprise/sales/material/detail?materialId=${materialId}`
974
+ );
975
+ return response.data;
976
+ } catch (error) {
977
+ return handleApiErrorMaterial(error);
978
+ }
979
+ },
980
+
981
+ async listMaterials(
982
+ environment: Environment,
983
+ tenant: string,
984
+ params: MaterialQueryParams
985
+ ): Promise<MaterialApiResponse> {
986
+ try {
987
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
988
+ if (!token) {
989
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
990
+ }
991
+ const client = createAPIClient('liberica' as Service, environment, tenant);
992
+ client.setAuthToken(token);
993
+ const queryString = new URLSearchParams();
994
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
995
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
996
+ if (params.statusFlag) queryString.append('statusFlag', params.statusFlag.toString());
997
+ if (params.materialClass) queryString.append('materialClass', params.materialClass);
998
+ if (params.keyword) queryString.append('keyword', params.keyword);
999
+ const url = `/api/enterprise/sales/material/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
1000
+ const response = await client.getClient().get<MaterialApiResponse>(url);
1001
+ return response.data;
1002
+ } catch (error) {
1003
+ return handleApiErrorMaterial(error);
1004
+ }
1005
+ },
1006
+
1007
+ async deleteMaterial(
1008
+ environment: Environment,
1009
+ tenant: string,
1010
+ materialId: string
1011
+ ): Promise<ApiResponse<void>> {
1012
+ try {
1013
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1014
+ if (!token) {
1015
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1016
+ }
1017
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1018
+ client.setAuthToken(token);
1019
+ const response = await client.getClient().post<ApiResponse<void>>(
1020
+ '/api/enterprise/sales/material/delete',
1021
+ { materialId: materialId }
1022
+ );
1023
+ return response.data;
1024
+ } catch (error) {
1025
+ return handleApiErrorMaterial(error) as unknown as ApiResponse<void>;
1026
+ }
1027
+ },
1028
+
1029
+ async createSupplier(
1030
+ environment: Environment,
1031
+ tenant: string,
1032
+ data: CreateSupplierRequest
1033
+ ): Promise<SupplierApiResponse> {
1034
+ try {
1035
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1036
+ if (!token) {
1037
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1038
+ }
1039
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1040
+ client.setAuthToken(token);
1041
+ const response = await client.getClient().post<SupplierApiResponse>('/api/enterprise/purchases/supplier/add', data);
1042
+ return response.data;
1043
+ } catch (error) {
1044
+ return handleApiErrorSupplier(error);
1045
+ }
1046
+ },
1047
+
1048
+ async updateSupplier(
1049
+ environment: Environment,
1050
+ tenant: string,
1051
+ data: UpdateSupplierRequest
1052
+ ): Promise<SupplierApiResponse> {
1053
+ try {
1054
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1055
+ if (!token) {
1056
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1057
+ }
1058
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1059
+ client.setAuthToken(token);
1060
+ const response = await client.getClient().post<SupplierApiResponse>('/api/enterprise/purchases/supplier/edit', data);
1061
+ return response.data;
1062
+ } catch (error) {
1063
+ return handleApiErrorSupplier(error);
1064
+ }
1065
+ },
1066
+
1067
+ async deleteSupplier(
1068
+ environment: Environment,
1069
+ tenant: string,
1070
+ supplierId: string
1071
+ ): Promise<SupplierApiResponse> {
1072
+ try {
1073
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1074
+ if (!token) {
1075
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1076
+ }
1077
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1078
+ client.setAuthToken(token);
1079
+ const response = await client.getClient().post<SupplierApiResponse>(
1080
+ '/api/enterprise/purchases/supplier/delete',
1081
+ { supplierId }
1082
+ );
1083
+ return response.data;
1084
+ } catch (error) {
1085
+ return handleApiErrorSupplier(error);
1086
+ }
1087
+ },
1088
+
1089
+ async enableSupplier(
1090
+ environment: Environment,
1091
+ tenant: string,
1092
+ supplierId: string
1093
+ ): Promise<SupplierApiResponse> {
1094
+ try {
1095
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1096
+ if (!token) {
1097
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1098
+ }
1099
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1100
+ client.setAuthToken(token);
1101
+ const response = await client.getClient().post<SupplierApiResponse>(
1102
+ '/api/enterprise/purchases/supplier/batchActive',
1103
+ { supplierIdList: [supplierId] }
1104
+ );
1105
+ return response.data;
1106
+ } catch (error) {
1107
+ return handleApiErrorSupplier(error);
1108
+ }
1109
+ },
1110
+
1111
+ async disableSupplier(
1112
+ environment: Environment,
1113
+ tenant: string,
1114
+ supplierId: string
1115
+ ): Promise<SupplierApiResponse> {
1116
+ try {
1117
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1118
+ if (!token) {
1119
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1120
+ }
1121
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1122
+ client.setAuthToken(token);
1123
+ const response = await client.getClient().post<SupplierApiResponse>(
1124
+ '/api/enterprise/purchases/supplier/batchDeActive',
1125
+ { supplierIdList: [supplierId] }
1126
+ );
1127
+ return response.data;
1128
+ } catch (error) {
1129
+ return handleApiErrorSupplier(error);
1130
+ }
1131
+ },
1132
+
1133
+ async createMaterial(
1134
+ environment: Environment,
1135
+ tenant: string,
1136
+ data: MaterialRequest
1137
+ ): Promise<MaterialApiResponse> {
1138
+ try {
1139
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1140
+ if (!token) {
1141
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1142
+ }
1143
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1144
+ client.setAuthToken(token);
1145
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/add', data);
1146
+ return response.data;
1147
+ } catch (error) {
1148
+ return handleApiErrorMaterial(error);
1149
+ }
1150
+ },
1151
+
1152
+ async updateMaterial(
1153
+ environment: Environment,
1154
+ tenant: string,
1155
+ materialId: string,
1156
+ data: MaterialRequest
1157
+ ): Promise<MaterialApiResponse> {
1158
+ try {
1159
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1160
+ if (!token) {
1161
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1162
+ }
1163
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1164
+ client.setAuthToken(token);
1165
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/edit', { materialId, ...data });
1166
+ return response.data;
1167
+ } catch (error) {
1168
+ return handleApiErrorMaterial(error);
1169
+ }
1170
+ },
1171
+
1172
+ async disableMaterial(
1173
+ environment: Environment,
1174
+ tenant: string,
1175
+ materialId: string
1176
+ ): Promise<MaterialApiResponse> {
1177
+ try {
1178
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1179
+ if (!token) {
1180
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1181
+ }
1182
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1183
+ client.setAuthToken(token);
1184
+ const response = await client.getClient().post<MaterialApiResponse>(
1185
+ '/api/enterprise/sales/material/batchDeActive',
1186
+ { materialIdList: [materialId] }
1187
+ );
1188
+ return response.data;
1189
+ } catch (error) {
1190
+ return handleApiErrorMaterial(error);
1191
+ }
1192
+ },
1193
+
1194
+ async enableMaterial(
1195
+ environment: Environment,
1196
+ tenant: string,
1197
+ materialId: string
1198
+ ): Promise<MaterialApiResponse> {
1199
+ try {
1200
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1201
+ if (!token) {
1202
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1203
+ }
1204
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1205
+ client.setAuthToken(token);
1206
+ const response = await client.getClient().post<MaterialApiResponse>(
1207
+ '/api/enterprise/sales/material/batchActive',
1208
+ { materialIdList: [materialId] }
1209
+ );
1210
+ return response.data;
1211
+ } catch (error) {
1212
+ return handleApiErrorMaterial(error);
1213
+ }
1214
+ },
1215
+
1216
+ async listUoms(
1217
+ environment: Environment,
1218
+ tenant: string,
1219
+ params: UomQueryParams
1220
+ ): Promise<UomApiResponse> {
1221
+ try {
1222
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1223
+ if (!token) {
1224
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1225
+ }
1226
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1227
+ client.setAuthToken(token);
1228
+ const queryString = new URLSearchParams();
1229
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
1230
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
1231
+ if (params.status) queryString.append('status', params.status.toString());
1232
+ if (params.uomCode) queryString.append('uomCode', params.uomCode);
1233
+ if (params.uomName) queryString.append('uomName', params.uomName);
1234
+ const url = `/api/enterprise/sales/uom/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
1235
+ const response = await client.getClient().get<UomApiResponse>(url);
1236
+ return response.data;
1237
+ } catch (error) {
1238
+ return handleApiErrorUom(error);
1239
+ }
1240
+ },
1241
+
1242
+ async getUom(
1243
+ environment: Environment,
1244
+ tenant: string,
1245
+ uomId: string
1246
+ ): Promise<UomApiResponse> {
1247
+ try {
1248
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1249
+ if (!token) {
1250
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1251
+ }
1252
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1253
+ client.setAuthToken(token);
1254
+ const response = await client.getClient().get<UomApiResponse>(
1255
+ `/api/enterprise/sales/uom/detail?uomId=${uomId}`
1256
+ );
1257
+ return response.data;
1258
+ } catch (error) {
1259
+ return handleApiErrorUom(error);
1260
+ }
1261
+ },
1262
+
1263
+ async createUom(
1264
+ environment: Environment,
1265
+ tenant: string,
1266
+ data: CreateUomRequest
1267
+ ): Promise<UomApiResponse> {
1268
+ try {
1269
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1270
+ if (!token) {
1271
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1272
+ }
1273
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1274
+ client.setAuthToken(token);
1275
+ const response = await client.getClient().post<UomApiResponse>('/api/enterprise/sales/uom/add', data);
1276
+ return response.data;
1277
+ } catch (error) {
1278
+ return handleApiErrorUom(error);
1279
+ }
1280
+ },
1281
+
1282
+ async updateUom(
1283
+ environment: Environment,
1284
+ tenant: string,
1285
+ data: UpdateUomRequest
1286
+ ): Promise<UomApiResponse> {
1287
+ try {
1288
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1289
+ if (!token) {
1290
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1291
+ }
1292
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1293
+ client.setAuthToken(token);
1294
+ const response = await client.getClient().post<UomApiResponse>('/api/enterprise/sales/uom/edit', data);
1295
+ return response.data;
1296
+ } catch (error) {
1297
+ return handleApiErrorUom(error);
1298
+ }
1299
+ },
1300
+
1301
+ async deleteUom(
1302
+ environment: Environment,
1303
+ tenant: string,
1304
+ uomId: string
1305
+ ): Promise<UomApiResponse> {
1306
+ try {
1307
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1308
+ if (!token) {
1309
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1310
+ }
1311
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1312
+ client.setAuthToken(token);
1313
+ const response = await client.getClient().post<UomApiResponse>(
1314
+ '/api/enterprise/sales/uom/delete',
1315
+ { uomId }
1316
+ );
1317
+ return response.data;
1318
+ } catch (error) {
1319
+ return handleApiErrorUom(error);
1320
+ }
1321
+ },
1322
+
1323
+ async enableUom(
1324
+ environment: Environment,
1325
+ tenant: string,
1326
+ uomId: string
1327
+ ): Promise<UomApiResponse> {
1328
+ try {
1329
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1330
+ if (!token) {
1331
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1332
+ }
1333
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1334
+ client.setAuthToken(token);
1335
+ const response = await client.getClient().post<UomApiResponse>(
1336
+ '/api/enterprise/sales/uom/batchActive',
1337
+ { uomIdList: [uomId] }
1338
+ );
1339
+ return response.data;
1340
+ } catch (error) {
1341
+ return handleApiErrorUom(error);
1342
+ }
1343
+ },
1344
+
1345
+ async disableUom(
1346
+ environment: Environment,
1347
+ tenant: string,
1348
+ uomId: string
1349
+ ): Promise<UomApiResponse> {
1350
+ try {
1351
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1352
+ if (!token) {
1353
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1354
+ }
1355
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1356
+ client.setAuthToken(token);
1357
+ const response = await client.getClient().post<UomApiResponse>(
1358
+ '/api/enterprise/sales/uom/batchDeActive',
1359
+ { uomIdList: [uomId] }
1360
+ );
1361
+ return response.data;
1362
+ } catch (error) {
1363
+ return handleApiErrorUom(error);
1364
+ }
1365
+ },
1366
+
899
1367
  };
900
1368
 
901
1369
  function handleApiError(error: unknown): EmployeeApiResponse {
@@ -974,4 +1442,121 @@ function handleApiErrorClient(error: unknown): ClientApiResponse {
974
1442
  message: error instanceof Error ? error.message : 'Unknown error occurred',
975
1443
  },
976
1444
  };
1445
+ }
1446
+
1447
+ function handleApiErrorSupplier(error: unknown): SupplierApiResponse {
1448
+ if (axios.isAxiosError(error)) {
1449
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1450
+ const responseData = axiosError.response?.data;
1451
+ if (responseData) {
1452
+ const success = responseData.success as boolean | undefined;
1453
+ if (success === false) {
1454
+ const code = responseData.code as string | undefined;
1455
+ const message = responseData.message as string | undefined;
1456
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1457
+ if (!errorObj && (code || message)) {
1458
+ return {
1459
+ success: false,
1460
+ error: {
1461
+ code: code || 'API_ERROR',
1462
+ message: message || 'API error occurred',
1463
+ },
1464
+ };
1465
+ }
1466
+ }
1467
+ return responseData as unknown as SupplierApiResponse;
1468
+ }
1469
+ return {
1470
+ success: false,
1471
+ error: {
1472
+ code: 'NETWORK_ERROR',
1473
+ message: axiosError.message || 'Network error occurred',
1474
+ },
1475
+ };
1476
+ }
1477
+ return {
1478
+ success: false,
1479
+ error: {
1480
+ code: 'UNKNOWN_ERROR',
1481
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1482
+ },
1483
+ };
1484
+ }
1485
+
1486
+ function handleApiErrorMaterial(error: unknown): MaterialApiResponse {
1487
+ if (axios.isAxiosError(error)) {
1488
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1489
+ const responseData = axiosError.response?.data;
1490
+ if (responseData) {
1491
+ const success = responseData.success as boolean | undefined;
1492
+ if (success === false) {
1493
+ const code = responseData.code as string | undefined;
1494
+ const message = responseData.message as string | undefined;
1495
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1496
+ if (!errorObj && (code || message)) {
1497
+ return {
1498
+ success: false,
1499
+ error: {
1500
+ code: code || 'API_ERROR',
1501
+ message: message || 'API error occurred',
1502
+ },
1503
+ };
1504
+ }
1505
+ }
1506
+ return responseData as unknown as MaterialApiResponse;
1507
+ }
1508
+ return {
1509
+ success: false,
1510
+ error: {
1511
+ code: 'NETWORK_ERROR',
1512
+ message: axiosError.message || 'Network error occurred',
1513
+ },
1514
+ };
1515
+ }
1516
+ return {
1517
+ success: false,
1518
+ error: {
1519
+ code: 'UNKNOWN_ERROR',
1520
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1521
+ },
1522
+ };
1523
+ }
1524
+
1525
+ function handleApiErrorUom(error: unknown): UomApiResponse {
1526
+ if (axios.isAxiosError(error)) {
1527
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1528
+ const responseData = axiosError.response?.data;
1529
+ if (responseData) {
1530
+ const success = responseData.success as boolean | undefined;
1531
+ if (success === false) {
1532
+ const code = responseData.code as string | undefined;
1533
+ const message = responseData.message as string | undefined;
1534
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1535
+ if (!errorObj && (code || message)) {
1536
+ return {
1537
+ success: false,
1538
+ error: {
1539
+ code: code || 'API_ERROR',
1540
+ message: message || 'API error occurred',
1541
+ },
1542
+ };
1543
+ }
1544
+ }
1545
+ return responseData as unknown as UomApiResponse;
1546
+ }
1547
+ return {
1548
+ success: false,
1549
+ error: {
1550
+ code: 'NETWORK_ERROR',
1551
+ message: axiosError.message || 'Network error occurred',
1552
+ },
1553
+ };
1554
+ }
1555
+ return {
1556
+ success: false,
1557
+ error: {
1558
+ code: 'UNKNOWN_ERROR',
1559
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1560
+ },
1561
+ };
977
1562
  }
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.4')
18
+ .version('0.1.5')
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')
@@ -73,6 +73,9 @@ export interface TokenContext {
73
73
  export * from './employee.js';
74
74
  export * from './org.js';
75
75
  export * from './position.js';
76
- // Export client types explicitly to avoid conflicts with employee types
77
- export type { StatusFlag, ClientListResponse, MasterClientCompactResponse, ClientQueryParams, ClientApiResponse } from './client.js';
76
+ export type { Uom, CreateUomRequest, UpdateUomRequest, UomQueryParams, UomListResponse, UomApiResponse, UomStatusFlag } from './uom.js';
77
+ export type { Supplier, SupplierListResponse, SupplierQueryParams, SupplierApiResponse } from './supplier.js';
78
+ export type { CreateSupplierRequest, UpdateSupplierRequest } from './supplier.js';
79
+ export type { ClientListResponse, MasterClientCompactResponse, ClientQueryParams, ClientApiResponse } from './client.js';
78
80
  export type { MasterClientResponse, CreateClientRequest, UpdateClientRequest } from './client.js';
81
+ export type { ApiResponse, Material, MaterialRequest, MaterialQueryParams, MaterialListResponse, MaterialApiResponse, MaterialStatusFlag } from './material.js';
@@ -0,0 +1,61 @@
1
+ // Material status flag literal type (1=enable, 2=disable)
2
+ export type MaterialStatusFlag = 1 | 2;
3
+
4
+ // Full Material entity
5
+ export interface Material {
6
+ materialId: string;
7
+ materialCode: string;
8
+ materialNo: string;
9
+ materialName: string;
10
+ materialClass?: string;
11
+ statusFlag: MaterialStatusFlag;
12
+ }
13
+
14
+ // Request for creating/updating material
15
+ export interface MaterialRequest {
16
+ materialName: string;
17
+ materialClass: string;
18
+ materialType?: string;
19
+ materialUnit?: string;
20
+ materialCode?: string;
21
+ materialNo?: string;
22
+ }
23
+
24
+ // Query params for list/pagination
25
+ export interface MaterialQueryParams {
26
+ pageNo?: number;
27
+ pageSize?: number;
28
+ statusFlag?: MaterialStatusFlag;
29
+ materialClass?: string;
30
+ keyword?: string;
31
+ }
32
+
33
+ // Paginated response wrapper (PageResult from Roses framework)
34
+ export interface MaterialListResponse {
35
+ totalRows: number;
36
+ pageSize: number;
37
+ pageNo: number;
38
+ rows: Material[];
39
+ }
40
+
41
+ // Generic API response wrapper
42
+ export interface ApiResponse<T> {
43
+ success: boolean;
44
+ code?: string;
45
+ message?: string;
46
+ data?: T;
47
+ error?: {
48
+ code: string;
49
+ message: string;
50
+ };
51
+ }
52
+
53
+ // API response wrapper
54
+ export interface MaterialApiResponse {
55
+ success: boolean;
56
+ data?: Material | MaterialListResponse;
57
+ error?: {
58
+ code: string;
59
+ message: string;
60
+ };
61
+ }