@newpeak/barista-cli 0.1.334 → 0.1.346

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 (196) hide show
  1. package/dist/commands/liberica/client-price/update.js +1 -1
  2. package/dist/commands/liberica/client-price/update.js.map +1 -1
  3. package/dist/commands/liberica/finance/proceeds/create.d.ts.map +1 -1
  4. package/dist/commands/liberica/finance/proceeds/create.js +102 -31
  5. package/dist/commands/liberica/finance/proceeds/create.js.map +1 -1
  6. package/dist/commands/liberica/inventory-shortage/create.d.ts.map +1 -1
  7. package/dist/commands/liberica/inventory-shortage/create.js.map +1 -1
  8. package/dist/commands/liberica/material-issue/create.d.ts.map +1 -1
  9. package/dist/commands/liberica/material-issue/create.js +0 -5
  10. package/dist/commands/liberica/material-issue/create.js.map +1 -1
  11. package/dist/commands/liberica/material-return/batch-review.d.ts.map +1 -1
  12. package/dist/commands/liberica/material-return/batch-review.js +1 -0
  13. package/dist/commands/liberica/material-return/batch-review.js.map +1 -1
  14. package/dist/commands/liberica/material-transfers/batch-review.d.ts.map +1 -1
  15. package/dist/commands/liberica/material-transfers/batch-review.js +0 -1
  16. package/dist/commands/liberica/material-transfers/batch-review.js.map +1 -1
  17. package/dist/commands/liberica/material-transfers/create.d.ts.map +1 -1
  18. package/dist/commands/liberica/material-transfers/create.js.map +1 -1
  19. package/dist/commands/liberica/purchase-orders/create.d.ts.map +1 -1
  20. package/dist/commands/liberica/purchase-orders/create.js +17 -0
  21. package/dist/commands/liberica/purchase-orders/create.js.map +1 -1
  22. package/dist/commands/liberica/routing/history.d.ts.map +1 -1
  23. package/dist/commands/liberica/routing/history.js.map +1 -1
  24. package/dist/commands/liberica/supplier-price/update.js +1 -1
  25. package/dist/commands/liberica/supplier-price/update.js.map +1 -1
  26. package/dist/commands/liberica/teams/index.d.ts.map +1 -1
  27. package/dist/commands/liberica/teams/index.js +12 -0
  28. package/dist/commands/liberica/teams/index.js.map +1 -1
  29. package/dist/commands/liberica/teams/tasks/delete.d.ts.map +1 -1
  30. package/dist/commands/liberica/teams/tasks/delete.js +5 -3
  31. package/dist/commands/liberica/teams/tasks/delete.js.map +1 -1
  32. package/dist/commands/liberica/teams/test-cases/batch-delete.d.ts +3 -0
  33. package/dist/commands/liberica/teams/test-cases/batch-delete.d.ts.map +1 -0
  34. package/dist/commands/liberica/teams/test-cases/batch-delete.js +74 -0
  35. package/dist/commands/liberica/teams/test-cases/batch-delete.js.map +1 -0
  36. package/dist/commands/liberica/teams/test-cases/create.d.ts +3 -0
  37. package/dist/commands/liberica/teams/test-cases/create.d.ts.map +1 -0
  38. package/dist/commands/liberica/teams/test-cases/create.js +149 -0
  39. package/dist/commands/liberica/teams/test-cases/create.js.map +1 -0
  40. package/dist/commands/liberica/teams/test-cases/delete.d.ts +3 -0
  41. package/dist/commands/liberica/teams/test-cases/delete.d.ts.map +1 -0
  42. package/dist/commands/liberica/teams/test-cases/delete.js +55 -0
  43. package/dist/commands/liberica/teams/test-cases/delete.js.map +1 -0
  44. package/dist/commands/liberica/teams/test-cases/get.d.ts +3 -0
  45. package/dist/commands/liberica/teams/test-cases/get.d.ts.map +1 -0
  46. package/dist/commands/liberica/teams/test-cases/get.js +90 -0
  47. package/dist/commands/liberica/teams/test-cases/get.js.map +1 -0
  48. package/dist/commands/liberica/teams/test-cases/index.d.ts +3 -0
  49. package/dist/commands/liberica/teams/test-cases/index.d.ts.map +1 -0
  50. package/dist/commands/liberica/teams/test-cases/index.js +23 -0
  51. package/dist/commands/liberica/teams/test-cases/index.js.map +1 -0
  52. package/dist/commands/liberica/teams/test-cases/list.d.ts +3 -0
  53. package/dist/commands/liberica/teams/test-cases/list.d.ts.map +1 -0
  54. package/dist/commands/liberica/teams/test-cases/list.js +117 -0
  55. package/dist/commands/liberica/teams/test-cases/list.js.map +1 -0
  56. package/dist/commands/liberica/teams/test-cases/update.d.ts +3 -0
  57. package/dist/commands/liberica/teams/test-cases/update.d.ts.map +1 -0
  58. package/dist/commands/liberica/teams/test-cases/update.js +155 -0
  59. package/dist/commands/liberica/teams/test-cases/update.js.map +1 -0
  60. package/dist/commands/liberica/teams/test-cases/version-get.d.ts +3 -0
  61. package/dist/commands/liberica/teams/test-cases/version-get.d.ts.map +1 -0
  62. package/dist/commands/liberica/teams/test-cases/version-get.js +90 -0
  63. package/dist/commands/liberica/teams/test-cases/version-get.js.map +1 -0
  64. package/dist/commands/liberica/teams/test-cases/versions.d.ts +3 -0
  65. package/dist/commands/liberica/teams/test-cases/versions.d.ts.map +1 -0
  66. package/dist/commands/liberica/teams/test-cases/versions.js +93 -0
  67. package/dist/commands/liberica/teams/test-cases/versions.js.map +1 -0
  68. package/dist/commands/liberica/teams/test-executions/add.d.ts +3 -0
  69. package/dist/commands/liberica/teams/test-executions/add.d.ts.map +1 -0
  70. package/dist/commands/liberica/teams/test-executions/add.js +169 -0
  71. package/dist/commands/liberica/teams/test-executions/add.js.map +1 -0
  72. package/dist/commands/liberica/teams/test-executions/delete.d.ts +3 -0
  73. package/dist/commands/liberica/teams/test-executions/delete.d.ts.map +1 -0
  74. package/dist/commands/liberica/teams/test-executions/delete.js +55 -0
  75. package/dist/commands/liberica/teams/test-executions/delete.js.map +1 -0
  76. package/dist/commands/liberica/teams/test-executions/get.d.ts +3 -0
  77. package/dist/commands/liberica/teams/test-executions/get.d.ts.map +1 -0
  78. package/dist/commands/liberica/teams/test-executions/get.js +68 -0
  79. package/dist/commands/liberica/teams/test-executions/get.js.map +1 -0
  80. package/dist/commands/liberica/teams/test-executions/index.d.ts +3 -0
  81. package/dist/commands/liberica/teams/test-executions/index.d.ts.map +1 -0
  82. package/dist/commands/liberica/teams/test-executions/index.js +17 -0
  83. package/dist/commands/liberica/teams/test-executions/index.js.map +1 -0
  84. package/dist/commands/liberica/teams/test-executions/list.d.ts +3 -0
  85. package/dist/commands/liberica/teams/test-executions/list.d.ts.map +1 -0
  86. package/dist/commands/liberica/teams/test-executions/list.js +118 -0
  87. package/dist/commands/liberica/teams/test-executions/list.js.map +1 -0
  88. package/dist/commands/liberica/teams/test-executions/update.d.ts +3 -0
  89. package/dist/commands/liberica/teams/test-executions/update.d.ts.map +1 -0
  90. package/dist/commands/liberica/teams/test-executions/update.js +130 -0
  91. package/dist/commands/liberica/teams/test-executions/update.js.map +1 -0
  92. package/dist/commands/liberica/teams/test-flaky/index.d.ts +3 -0
  93. package/dist/commands/liberica/teams/test-flaky/index.d.ts.map +1 -0
  94. package/dist/commands/liberica/teams/test-flaky/index.js +9 -0
  95. package/dist/commands/liberica/teams/test-flaky/index.js.map +1 -0
  96. package/dist/commands/liberica/teams/test-flaky/list.d.ts +3 -0
  97. package/dist/commands/liberica/teams/test-flaky/list.d.ts.map +1 -0
  98. package/dist/commands/liberica/teams/test-flaky/list.js +98 -0
  99. package/dist/commands/liberica/teams/test-flaky/list.js.map +1 -0
  100. package/dist/commands/liberica/teams/test-projects/create.d.ts +3 -0
  101. package/dist/commands/liberica/teams/test-projects/create.d.ts.map +1 -0
  102. package/dist/commands/liberica/teams/test-projects/create.js +139 -0
  103. package/dist/commands/liberica/teams/test-projects/create.js.map +1 -0
  104. package/dist/commands/liberica/teams/test-projects/delete.d.ts +3 -0
  105. package/dist/commands/liberica/teams/test-projects/delete.d.ts.map +1 -0
  106. package/dist/commands/liberica/teams/test-projects/delete.js +55 -0
  107. package/dist/commands/liberica/teams/test-projects/delete.js.map +1 -0
  108. package/dist/commands/liberica/teams/test-projects/get.d.ts +3 -0
  109. package/dist/commands/liberica/teams/test-projects/get.d.ts.map +1 -0
  110. package/dist/commands/liberica/teams/test-projects/get.js +66 -0
  111. package/dist/commands/liberica/teams/test-projects/get.js.map +1 -0
  112. package/dist/commands/liberica/teams/test-projects/index.d.ts +3 -0
  113. package/dist/commands/liberica/teams/test-projects/index.d.ts.map +1 -0
  114. package/dist/commands/liberica/teams/test-projects/index.js +17 -0
  115. package/dist/commands/liberica/teams/test-projects/index.js.map +1 -0
  116. package/dist/commands/liberica/teams/test-projects/list.d.ts +3 -0
  117. package/dist/commands/liberica/teams/test-projects/list.d.ts.map +1 -0
  118. package/dist/commands/liberica/teams/test-projects/list.js +101 -0
  119. package/dist/commands/liberica/teams/test-projects/list.js.map +1 -0
  120. package/dist/commands/liberica/teams/test-projects/update.d.ts +3 -0
  121. package/dist/commands/liberica/teams/test-projects/update.d.ts.map +1 -0
  122. package/dist/commands/liberica/teams/test-projects/update.js +118 -0
  123. package/dist/commands/liberica/teams/test-projects/update.js.map +1 -0
  124. package/dist/commands/liberica/teams/test-runs/create.d.ts +3 -0
  125. package/dist/commands/liberica/teams/test-runs/create.d.ts.map +1 -0
  126. package/dist/commands/liberica/teams/test-runs/create.js +141 -0
  127. package/dist/commands/liberica/teams/test-runs/create.js.map +1 -0
  128. package/dist/commands/liberica/teams/test-runs/delete.d.ts +3 -0
  129. package/dist/commands/liberica/teams/test-runs/delete.d.ts.map +1 -0
  130. package/dist/commands/liberica/teams/test-runs/delete.js +55 -0
  131. package/dist/commands/liberica/teams/test-runs/delete.js.map +1 -0
  132. package/dist/commands/liberica/teams/test-runs/get.d.ts +3 -0
  133. package/dist/commands/liberica/teams/test-runs/get.d.ts.map +1 -0
  134. package/dist/commands/liberica/teams/test-runs/get.js +68 -0
  135. package/dist/commands/liberica/teams/test-runs/get.js.map +1 -0
  136. package/dist/commands/liberica/teams/test-runs/index.d.ts +3 -0
  137. package/dist/commands/liberica/teams/test-runs/index.d.ts.map +1 -0
  138. package/dist/commands/liberica/teams/test-runs/index.js +17 -0
  139. package/dist/commands/liberica/teams/test-runs/index.js.map +1 -0
  140. package/dist/commands/liberica/teams/test-runs/list.d.ts +3 -0
  141. package/dist/commands/liberica/teams/test-runs/list.d.ts.map +1 -0
  142. package/dist/commands/liberica/teams/test-runs/list.js +113 -0
  143. package/dist/commands/liberica/teams/test-runs/list.js.map +1 -0
  144. package/dist/commands/liberica/teams/test-runs/update.d.ts +3 -0
  145. package/dist/commands/liberica/teams/test-runs/update.d.ts.map +1 -0
  146. package/dist/commands/liberica/teams/test-runs/update.js +155 -0
  147. package/dist/commands/liberica/teams/test-runs/update.js.map +1 -0
  148. package/dist/commands/liberica/teams/test-suites/create.d.ts +3 -0
  149. package/dist/commands/liberica/teams/test-suites/create.d.ts.map +1 -0
  150. package/dist/commands/liberica/teams/test-suites/create.js +151 -0
  151. package/dist/commands/liberica/teams/test-suites/create.js.map +1 -0
  152. package/dist/commands/liberica/teams/test-suites/delete.d.ts +3 -0
  153. package/dist/commands/liberica/teams/test-suites/delete.d.ts.map +1 -0
  154. package/dist/commands/liberica/teams/test-suites/delete.js +55 -0
  155. package/dist/commands/liberica/teams/test-suites/delete.js.map +1 -0
  156. package/dist/commands/liberica/teams/test-suites/get.d.ts +3 -0
  157. package/dist/commands/liberica/teams/test-suites/get.d.ts.map +1 -0
  158. package/dist/commands/liberica/teams/test-suites/get.js +71 -0
  159. package/dist/commands/liberica/teams/test-suites/get.js.map +1 -0
  160. package/dist/commands/liberica/teams/test-suites/index.d.ts +3 -0
  161. package/dist/commands/liberica/teams/test-suites/index.d.ts.map +1 -0
  162. package/dist/commands/liberica/teams/test-suites/index.js +17 -0
  163. package/dist/commands/liberica/teams/test-suites/index.js.map +1 -0
  164. package/dist/commands/liberica/teams/test-suites/list.d.ts +3 -0
  165. package/dist/commands/liberica/teams/test-suites/list.d.ts.map +1 -0
  166. package/dist/commands/liberica/teams/test-suites/list.js +101 -0
  167. package/dist/commands/liberica/teams/test-suites/list.js.map +1 -0
  168. package/dist/commands/liberica/teams/test-suites/update.d.ts +3 -0
  169. package/dist/commands/liberica/teams/test-suites/update.d.ts.map +1 -0
  170. package/dist/commands/liberica/teams/test-suites/update.js +122 -0
  171. package/dist/commands/liberica/teams/test-suites/update.js.map +1 -0
  172. package/dist/commands/models/index.d.ts.map +1 -1
  173. package/dist/commands/models/index.js +1 -1
  174. package/dist/commands/models/index.js.map +1 -1
  175. package/dist/commands/models/models.d.ts.map +1 -1
  176. package/dist/commands/models/models.js +1 -13
  177. package/dist/commands/models/models.js.map +1 -1
  178. package/dist/core/api/client.d.ts +30 -0
  179. package/dist/core/api/client.d.ts.map +1 -1
  180. package/dist/core/api/client.js +603 -20
  181. package/dist/core/api/client.js.map +1 -1
  182. package/dist/skills/barista-cli/scripts/generate.js +0 -1
  183. package/dist/skills/barista-cli/scripts/generate.js.map +1 -1
  184. package/dist/types/finance.d.ts +1 -0
  185. package/dist/types/finance.d.ts.map +1 -1
  186. package/dist/types/index.d.ts +1 -0
  187. package/dist/types/index.d.ts.map +1 -1
  188. package/dist/types/purchase-order.d.ts +1 -0
  189. package/dist/types/purchase-order.d.ts.map +1 -1
  190. package/dist/types/test-case.d.ts +336 -0
  191. package/dist/types/test-case.d.ts.map +1 -0
  192. package/dist/types/test-case.js +2 -0
  193. package/dist/types/test-case.js.map +1 -0
  194. package/package.json +4 -1
  195. package/skills/barista-cli/data/commands.json +175 -1
  196. package/skills/barista-cli/data/commands.yaml +112 -1
@@ -16,7 +16,7 @@ export class APIClient {
16
16
  if (typeof data !== 'string')
17
17
  return data;
18
18
  try {
19
- const preserved = data.replace(/(?<=[\[,:])\s*(-?\d{16,})\s*(?=[,\]\}])/g, '"$1"');
19
+ const preserved = data.replace(/(?<=[[:,\])\s*(-?\d{16,})\s*(?=[,\]}])/g, '"$1"');
20
20
  return JSON.parse(preserved);
21
21
  }
22
22
  catch {
@@ -939,17 +939,8 @@ export const apiClient = {
939
939
  return { success: true, data: cached.items };
940
940
  }
941
941
  try {
942
- // Use dict API for richer data (dictCode, sortOrder, statusFlag).
943
- // pageSize 200 is well above typical position counts (<50).
944
- const result = await this.listDictItems(environment, tenant, {
945
- dictTypeCode: 'POSITION_TYPE',
946
- pageSize: 200,
947
- });
948
- if (!result.success) {
949
- return { success: false, error: result.error };
950
- }
951
942
  // Helper to map dict item fields to PositionListItem
952
- function mapDictItem(d) {
943
+ const mapDictItem = (d) => {
953
944
  return {
954
945
  id: String(d.dictId || ''),
955
946
  name: String(d.dictName || ''),
@@ -960,6 +951,15 @@ export const apiClient = {
960
951
  sortOrder: typeof d.sortOrder === 'number' ? d.sortOrder : 0,
961
952
  statusFlag: typeof d.statusFlag === 'number' ? d.statusFlag : 1,
962
953
  };
954
+ };
955
+ // Use dict API for richer data (dictCode, sortOrder, statusFlag).
956
+ // pageSize 200 is well above typical position counts (<50).
957
+ const result = await this.listDictItems(environment, tenant, {
958
+ dictTypeCode: 'POSITION_TYPE',
959
+ pageSize: 200,
960
+ });
961
+ if (!result.success) {
962
+ return { success: false, error: result.error };
963
963
  }
964
964
  const rawData = result.data;
965
965
  let items = [];
@@ -4230,6 +4230,558 @@ export const apiClient = {
4230
4230
  }
4231
4231
  },
4232
4232
  // ============================================
4233
+ // TestTracking: TestCase API methods
4234
+ // ============================================
4235
+ async listTestCases(environment, tenant, params) {
4236
+ try {
4237
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4238
+ if (!token) {
4239
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4240
+ }
4241
+ const client = createAPIClient('liberica', environment, tenant);
4242
+ client.setAuthToken(token);
4243
+ const queryString = new URLSearchParams();
4244
+ if (params.pageNo !== undefined)
4245
+ queryString.append('pageNo', params.pageNo.toString());
4246
+ if (params.pageSize)
4247
+ queryString.append('pageSize', params.pageSize.toString());
4248
+ if (params.suiteId)
4249
+ queryString.append('suiteId', params.suiteId);
4250
+ if (params.status)
4251
+ queryString.append('status', params.status);
4252
+ if (params.projectCode)
4253
+ queryString.append('projectCode', params.projectCode);
4254
+ if (params.moduleCode)
4255
+ queryString.append('moduleCode', params.moduleCode);
4256
+ if (params.featureArea)
4257
+ queryString.append('featureArea', params.featureArea);
4258
+ if (params.name)
4259
+ queryString.append('name', params.name);
4260
+ const url = `/api/enterprise/team/test/case/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
4261
+ const response = await client.getClient().get(url);
4262
+ return response.data;
4263
+ }
4264
+ catch (error) {
4265
+ return handleApiErrorTestCase(error);
4266
+ }
4267
+ },
4268
+ async getTestCase(environment, tenant, testCaseId) {
4269
+ try {
4270
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4271
+ if (!token) {
4272
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4273
+ }
4274
+ const client = createAPIClient('liberica', environment, tenant);
4275
+ client.setAuthToken(token);
4276
+ const response = await client.getClient().get(`/api/enterprise/team/test/case/detail?testCaseId=${testCaseId}`);
4277
+ return response.data;
4278
+ }
4279
+ catch (error) {
4280
+ return handleApiErrorTestCase(error);
4281
+ }
4282
+ },
4283
+ async createTestCase(environment, tenant, data) {
4284
+ try {
4285
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4286
+ if (!token) {
4287
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4288
+ }
4289
+ const client = createAPIClient('liberica', environment, tenant);
4290
+ client.setAuthToken(token);
4291
+ const response = await client.getClient().post('/api/enterprise/team/test/case/add', data);
4292
+ return response.data;
4293
+ }
4294
+ catch (error) {
4295
+ return handleApiErrorTestCase(error);
4296
+ }
4297
+ },
4298
+ async updateTestCase(environment, tenant, data) {
4299
+ try {
4300
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4301
+ if (!token) {
4302
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4303
+ }
4304
+ const client = createAPIClient('liberica', environment, tenant);
4305
+ client.setAuthToken(token);
4306
+ const response = await client.getClient().post('/api/enterprise/team/test/case/edit', data);
4307
+ return response.data;
4308
+ }
4309
+ catch (error) {
4310
+ return handleApiErrorTestCase(error);
4311
+ }
4312
+ },
4313
+ async deleteTestCase(environment, tenant, testCaseId) {
4314
+ try {
4315
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4316
+ if (!token) {
4317
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4318
+ }
4319
+ const client = createAPIClient('liberica', environment, tenant);
4320
+ client.setAuthToken(token);
4321
+ const response = await client.getClient().post('/api/enterprise/team/test/case/del', { testCaseId });
4322
+ return response.data;
4323
+ }
4324
+ catch (error) {
4325
+ return handleApiErrorTestCase(error);
4326
+ }
4327
+ },
4328
+ async batchDeleteTestCase(environment, tenant, data) {
4329
+ try {
4330
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4331
+ if (!token) {
4332
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4333
+ }
4334
+ const client = createAPIClient('liberica', environment, tenant);
4335
+ client.setAuthToken(token);
4336
+ const response = await client.getClient().post('/api/enterprise/team/test/case/batchDel', data);
4337
+ return response.data;
4338
+ }
4339
+ catch (error) {
4340
+ return handleApiErrorTestCase(error);
4341
+ }
4342
+ },
4343
+ // ============================================
4344
+ // TestTracking: TestProject API methods
4345
+ // ============================================
4346
+ async listTestProjects(environment, tenant, params) {
4347
+ try {
4348
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4349
+ if (!token) {
4350
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4351
+ }
4352
+ const client = createAPIClient('liberica', environment, tenant);
4353
+ client.setAuthToken(token);
4354
+ const queryString = new URLSearchParams();
4355
+ if (params.pageNo !== undefined)
4356
+ queryString.append('pageNo', params.pageNo.toString());
4357
+ if (params.pageSize)
4358
+ queryString.append('pageSize', params.pageSize.toString());
4359
+ if (params.projectCode)
4360
+ queryString.append('projectCode', params.projectCode);
4361
+ if (params.projectType)
4362
+ queryString.append('projectType', params.projectType);
4363
+ if (params.testFramework)
4364
+ queryString.append('testFramework', params.testFramework);
4365
+ const url = `/api/enterprise/team/test/project/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
4366
+ const response = await client.getClient().get(url);
4367
+ return response.data;
4368
+ }
4369
+ catch (error) {
4370
+ return handleApiErrorTestProject(error);
4371
+ }
4372
+ },
4373
+ async getTestProject(environment, tenant, testProjectId) {
4374
+ try {
4375
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4376
+ if (!token) {
4377
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4378
+ }
4379
+ const client = createAPIClient('liberica', environment, tenant);
4380
+ client.setAuthToken(token);
4381
+ const response = await client.getClient().get(`/api/enterprise/team/test/project/detail?testProjectId=${testProjectId}`);
4382
+ return response.data;
4383
+ }
4384
+ catch (error) {
4385
+ return handleApiErrorTestProject(error);
4386
+ }
4387
+ },
4388
+ async createTestProject(environment, tenant, data) {
4389
+ try {
4390
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4391
+ if (!token) {
4392
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4393
+ }
4394
+ const client = createAPIClient('liberica', environment, tenant);
4395
+ client.setAuthToken(token);
4396
+ const response = await client.getClient().post('/api/enterprise/team/test/project/add', data);
4397
+ return response.data;
4398
+ }
4399
+ catch (error) {
4400
+ return handleApiErrorTestProject(error);
4401
+ }
4402
+ },
4403
+ async updateTestProject(environment, tenant, data) {
4404
+ try {
4405
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4406
+ if (!token) {
4407
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4408
+ }
4409
+ const client = createAPIClient('liberica', environment, tenant);
4410
+ client.setAuthToken(token);
4411
+ const response = await client.getClient().post('/api/enterprise/team/test/project/edit', data);
4412
+ return response.data;
4413
+ }
4414
+ catch (error) {
4415
+ return handleApiErrorTestProject(error);
4416
+ }
4417
+ },
4418
+ async deleteTestProject(environment, tenant, testProjectId) {
4419
+ try {
4420
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4421
+ if (!token) {
4422
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4423
+ }
4424
+ const client = createAPIClient('liberica', environment, tenant);
4425
+ client.setAuthToken(token);
4426
+ const response = await client.getClient().post('/api/enterprise/team/test/project/delete', { testProjectId });
4427
+ return response.data;
4428
+ }
4429
+ catch (error) {
4430
+ return handleApiErrorTestProject(error);
4431
+ }
4432
+ },
4433
+ // ============================================
4434
+ // TestTracking: TestSuite API methods
4435
+ // ============================================
4436
+ async listTestSuites(environment, tenant, params) {
4437
+ try {
4438
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4439
+ if (!token) {
4440
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4441
+ }
4442
+ const client = createAPIClient('liberica', environment, tenant);
4443
+ client.setAuthToken(token);
4444
+ const queryString = new URLSearchParams();
4445
+ if (params.pageNo !== undefined)
4446
+ queryString.append('pageNo', params.pageNo.toString());
4447
+ if (params.pageSize)
4448
+ queryString.append('pageSize', params.pageSize.toString());
4449
+ if (params.testProjectId)
4450
+ queryString.append('testProjectId', params.testProjectId);
4451
+ if (params.moduleCode)
4452
+ queryString.append('moduleCode', params.moduleCode);
4453
+ if (params.testType)
4454
+ queryString.append('testType', params.testType);
4455
+ const url = `/api/enterprise/team/test/suite/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
4456
+ const response = await client.getClient().get(url);
4457
+ return response.data;
4458
+ }
4459
+ catch (error) {
4460
+ return handleApiErrorTestSuite(error);
4461
+ }
4462
+ },
4463
+ async getTestSuite(environment, tenant, testSuiteId) {
4464
+ try {
4465
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4466
+ if (!token) {
4467
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4468
+ }
4469
+ const client = createAPIClient('liberica', environment, tenant);
4470
+ client.setAuthToken(token);
4471
+ const response = await client.getClient().get(`/api/enterprise/team/test/suite/detail?testSuiteId=${testSuiteId}`);
4472
+ return response.data;
4473
+ }
4474
+ catch (error) {
4475
+ return handleApiErrorTestSuite(error);
4476
+ }
4477
+ },
4478
+ async createTestSuite(environment, tenant, data) {
4479
+ try {
4480
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4481
+ if (!token) {
4482
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4483
+ }
4484
+ const client = createAPIClient('liberica', environment, tenant);
4485
+ client.setAuthToken(token);
4486
+ const response = await client.getClient().post('/api/enterprise/team/test/suite/add', data);
4487
+ return response.data;
4488
+ }
4489
+ catch (error) {
4490
+ return handleApiErrorTestSuite(error);
4491
+ }
4492
+ },
4493
+ async updateTestSuite(environment, tenant, data) {
4494
+ try {
4495
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4496
+ if (!token) {
4497
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4498
+ }
4499
+ const client = createAPIClient('liberica', environment, tenant);
4500
+ client.setAuthToken(token);
4501
+ const response = await client.getClient().post('/api/enterprise/team/test/suite/edit', data);
4502
+ return response.data;
4503
+ }
4504
+ catch (error) {
4505
+ return handleApiErrorTestSuite(error);
4506
+ }
4507
+ },
4508
+ async deleteTestSuite(environment, tenant, testSuiteId) {
4509
+ try {
4510
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4511
+ if (!token) {
4512
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4513
+ }
4514
+ const client = createAPIClient('liberica', environment, tenant);
4515
+ client.setAuthToken(token);
4516
+ const response = await client.getClient().post('/api/enterprise/team/test/suite/delete', { testSuiteId });
4517
+ return response.data;
4518
+ }
4519
+ catch (error) {
4520
+ return handleApiErrorTestSuite(error);
4521
+ }
4522
+ },
4523
+ // ============================================
4524
+ // TestTracking: TestRun API methods
4525
+ // ============================================
4526
+ async listTestRuns(environment, tenant, params) {
4527
+ try {
4528
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4529
+ if (!token) {
4530
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4531
+ }
4532
+ const client = createAPIClient('liberica', environment, tenant);
4533
+ client.setAuthToken(token);
4534
+ const queryString = new URLSearchParams();
4535
+ if (params.pageNo !== undefined)
4536
+ queryString.append('pageNo', params.pageNo.toString());
4537
+ if (params.pageSize)
4538
+ queryString.append('pageSize', params.pageSize.toString());
4539
+ if (params.projectCode)
4540
+ queryString.append('projectCode', params.projectCode);
4541
+ if (params.status)
4542
+ queryString.append('status', params.status);
4543
+ if (params.suiteId)
4544
+ queryString.append('suiteId', params.suiteId);
4545
+ if (params.branch)
4546
+ queryString.append('branch', params.branch);
4547
+ if (params.triggerSource)
4548
+ queryString.append('triggerSource', params.triggerSource);
4549
+ const url = `/api/enterprise/team/test/run/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
4550
+ const response = await client.getClient().get(url);
4551
+ return response.data;
4552
+ }
4553
+ catch (error) {
4554
+ return handleApiErrorTestRun(error);
4555
+ }
4556
+ },
4557
+ async getTestRun(environment, tenant, testRunId) {
4558
+ try {
4559
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4560
+ if (!token) {
4561
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4562
+ }
4563
+ const client = createAPIClient('liberica', environment, tenant);
4564
+ client.setAuthToken(token);
4565
+ const response = await client.getClient().get(`/api/enterprise/team/test/run/detail?testRunId=${testRunId}`);
4566
+ return response.data;
4567
+ }
4568
+ catch (error) {
4569
+ return handleApiErrorTestRun(error);
4570
+ }
4571
+ },
4572
+ async createTestRun(environment, tenant, data) {
4573
+ try {
4574
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4575
+ if (!token) {
4576
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4577
+ }
4578
+ const client = createAPIClient('liberica', environment, tenant);
4579
+ client.setAuthToken(token);
4580
+ const response = await client.getClient().post('/api/enterprise/team/test/run/add', data);
4581
+ return response.data;
4582
+ }
4583
+ catch (error) {
4584
+ return handleApiErrorTestRun(error);
4585
+ }
4586
+ },
4587
+ async updateTestRun(environment, tenant, data) {
4588
+ try {
4589
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4590
+ if (!token) {
4591
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4592
+ }
4593
+ const client = createAPIClient('liberica', environment, tenant);
4594
+ client.setAuthToken(token);
4595
+ const response = await client.getClient().post('/api/enterprise/team/test/run/edit', data);
4596
+ return response.data;
4597
+ }
4598
+ catch (error) {
4599
+ return handleApiErrorTestRun(error);
4600
+ }
4601
+ },
4602
+ async deleteTestRun(environment, tenant, testRunId) {
4603
+ try {
4604
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4605
+ if (!token) {
4606
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4607
+ }
4608
+ const client = createAPIClient('liberica', environment, tenant);
4609
+ client.setAuthToken(token);
4610
+ const response = await client.getClient().post('/api/enterprise/team/test/run/delete', { testRunId });
4611
+ return response.data;
4612
+ }
4613
+ catch (error) {
4614
+ return handleApiErrorTestRun(error);
4615
+ }
4616
+ },
4617
+ // ============================================
4618
+ // TestTracking: TestExecution API methods
4619
+ // ============================================
4620
+ async listTestExecutions(environment, tenant, params) {
4621
+ try {
4622
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4623
+ if (!token) {
4624
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4625
+ }
4626
+ const client = createAPIClient('liberica', environment, tenant);
4627
+ client.setAuthToken(token);
4628
+ const queryString = new URLSearchParams();
4629
+ if (params.pageNo !== undefined)
4630
+ queryString.append('pageNo', params.pageNo.toString());
4631
+ if (params.pageSize)
4632
+ queryString.append('pageSize', params.pageSize.toString());
4633
+ if (params.runId)
4634
+ queryString.append('runId', params.runId);
4635
+ if (params.testCaseId)
4636
+ queryString.append('testCaseId', params.testCaseId);
4637
+ if (params.status)
4638
+ queryString.append('status', params.status);
4639
+ if (params.errorCategory)
4640
+ queryString.append('errorCategory', params.errorCategory);
4641
+ if (params.browser)
4642
+ queryString.append('browser', params.browser);
4643
+ if (params.os)
4644
+ queryString.append('os', params.os);
4645
+ if (params.retryNumber !== undefined)
4646
+ queryString.append('retryNumber', params.retryNumber.toString());
4647
+ const url = `/api/enterprise/team/test/execution/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
4648
+ const response = await client.getClient().get(url);
4649
+ return response.data;
4650
+ }
4651
+ catch (error) {
4652
+ return handleApiErrorTestExecution(error);
4653
+ }
4654
+ },
4655
+ async getTestExecution(environment, tenant, testExecutionId) {
4656
+ try {
4657
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4658
+ if (!token) {
4659
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4660
+ }
4661
+ const client = createAPIClient('liberica', environment, tenant);
4662
+ client.setAuthToken(token);
4663
+ const response = await client.getClient().get(`/api/enterprise/team/test/execution/detail?testExecutionId=${testExecutionId}`);
4664
+ return response.data;
4665
+ }
4666
+ catch (error) {
4667
+ return handleApiErrorTestExecution(error);
4668
+ }
4669
+ },
4670
+ async createTestExecution(environment, tenant, data) {
4671
+ try {
4672
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4673
+ if (!token) {
4674
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4675
+ }
4676
+ const client = createAPIClient('liberica', environment, tenant);
4677
+ client.setAuthToken(token);
4678
+ const response = await client.getClient().post('/api/enterprise/team/test/execution/add', data);
4679
+ return response.data;
4680
+ }
4681
+ catch (error) {
4682
+ return handleApiErrorTestExecution(error);
4683
+ }
4684
+ },
4685
+ async updateTestExecution(environment, tenant, data) {
4686
+ try {
4687
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4688
+ if (!token) {
4689
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4690
+ }
4691
+ const client = createAPIClient('liberica', environment, tenant);
4692
+ client.setAuthToken(token);
4693
+ const response = await client.getClient().post('/api/enterprise/team/test/execution/edit', data);
4694
+ return response.data;
4695
+ }
4696
+ catch (error) {
4697
+ return handleApiErrorTestExecution(error);
4698
+ }
4699
+ },
4700
+ async deleteTestExecution(environment, tenant, testExecutionId) {
4701
+ try {
4702
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4703
+ if (!token) {
4704
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4705
+ }
4706
+ const client = createAPIClient('liberica', environment, tenant);
4707
+ client.setAuthToken(token);
4708
+ const response = await client.getClient().post('/api/enterprise/team/test/execution/delete', { testExecutionId });
4709
+ return response.data;
4710
+ }
4711
+ catch (error) {
4712
+ return handleApiErrorTestExecution(error);
4713
+ }
4714
+ },
4715
+ // ============================================
4716
+ // TestTracking: TestCaseVersion API methods
4717
+ // ============================================
4718
+ async listTestCaseVersions(environment, tenant, params) {
4719
+ try {
4720
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4721
+ if (!token) {
4722
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4723
+ }
4724
+ const client = createAPIClient('liberica', environment, tenant);
4725
+ client.setAuthToken(token);
4726
+ const queryString = new URLSearchParams();
4727
+ if (params.pageNo !== undefined)
4728
+ queryString.append('pageNo', params.pageNo.toString());
4729
+ if (params.pageSize)
4730
+ queryString.append('pageSize', params.pageSize.toString());
4731
+ if (params.testCaseId)
4732
+ queryString.append('testCaseId', params.testCaseId);
4733
+ const url = `/api/enterprise/team/test/case/version/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
4734
+ const response = await client.getClient().get(url);
4735
+ return response.data;
4736
+ }
4737
+ catch (error) {
4738
+ return handleApiErrorTestCaseVersion(error);
4739
+ }
4740
+ },
4741
+ async getTestCaseVersion(environment, tenant, versionId) {
4742
+ try {
4743
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4744
+ if (!token) {
4745
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4746
+ }
4747
+ const client = createAPIClient('liberica', environment, tenant);
4748
+ client.setAuthToken(token);
4749
+ const response = await client.getClient().get(`/api/enterprise/team/test/case/version/detail?versionId=${versionId}`);
4750
+ return response.data;
4751
+ }
4752
+ catch (error) {
4753
+ return handleApiErrorTestCaseVersion(error);
4754
+ }
4755
+ },
4756
+ // ============================================
4757
+ // TestTracking: FlakyTest API methods
4758
+ // ============================================
4759
+ async listFlakyTests(environment, tenant, params) {
4760
+ try {
4761
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
4762
+ if (!token) {
4763
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
4764
+ }
4765
+ const client = createAPIClient('liberica', environment, tenant);
4766
+ client.setAuthToken(token);
4767
+ const queryString = new URLSearchParams();
4768
+ if (params.pageNo !== undefined)
4769
+ queryString.append('pageNo', params.pageNo.toString());
4770
+ if (params.pageSize)
4771
+ queryString.append('pageSize', params.pageSize.toString());
4772
+ if (params.projectCode)
4773
+ queryString.append('projectCode', params.projectCode);
4774
+ if (params.suiteId)
4775
+ queryString.append('suiteId', params.suiteId);
4776
+ const url = `/api/enterprise/team/test/flaky/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
4777
+ const response = await client.getClient().get(url);
4778
+ return response.data;
4779
+ }
4780
+ catch (error) {
4781
+ return handleApiErrorFlakyTest(error);
4782
+ }
4783
+ },
4784
+ // ============================================
4233
4785
  // TransferInForm API methods
4234
4786
  // ============================================
4235
4787
  async listTransferInForms(environment, tenant, params) {
@@ -10083,6 +10635,27 @@ export const apiClient = {
10083
10635
  }
10084
10636
  },
10085
10637
  };
10638
+ function handleApiErrorTestCase(error) {
10639
+ return extractApiError(error);
10640
+ }
10641
+ function handleApiErrorTestProject(error) {
10642
+ return extractApiError(error);
10643
+ }
10644
+ function handleApiErrorTestSuite(error) {
10645
+ return extractApiError(error);
10646
+ }
10647
+ function handleApiErrorTestRun(error) {
10648
+ return extractApiError(error);
10649
+ }
10650
+ function handleApiErrorTestExecution(error) {
10651
+ return extractApiError(error);
10652
+ }
10653
+ function handleApiErrorTestCaseVersion(error) {
10654
+ return extractApiError(error);
10655
+ }
10656
+ function handleApiErrorFlakyTest(error) {
10657
+ return extractApiError(error);
10658
+ }
10086
10659
  function handleApiErrorStockReservation(error) {
10087
10660
  return extractApiError(error);
10088
10661
  }
@@ -10150,9 +10723,17 @@ export function extractApiError(error, context) {
10150
10723
  };
10151
10724
  }
10152
10725
  const exceptionTip = responseData.exceptionTip;
10726
+ const httpStatus = axiosError.response?.status;
10727
+ const httpSuffix = httpStatus ? ` (HTTP ${httpStatus})` : '';
10728
+ const reqMethod = axiosError.config?.method ? axiosError.config.method.toUpperCase() : '';
10729
+ const reqUrl = axiosError.config?.url || '';
10730
+ const reqContext = reqMethod && reqUrl ? ` [${reqMethod} ${reqUrl}]` : '';
10731
+ const fallbackMsg = message || 'API error occurred';
10153
10732
  const enhancedMessage = exceptionTip
10154
- ? `${message || 'API error occurred'}\n Backend: ${exceptionTip}`
10155
- : (message || 'API error occurred');
10733
+ ? `${fallbackMsg}\n Backend: ${exceptionTip}`
10734
+ : (fallbackMsg === 'API error occurred' && (httpSuffix || reqContext)
10735
+ ? `${fallbackMsg}${httpSuffix}${reqContext}`
10736
+ : fallbackMsg);
10156
10737
  return {
10157
10738
  success: false,
10158
10739
  error: {
@@ -10163,6 +10744,12 @@ export function extractApiError(error, context) {
10163
10744
  }
10164
10745
  }
10165
10746
  // Fallback: passthrough for already-normalized responses
10747
+ // Include HTTP status code + request context to help diagnose backend issues (e.g. regression TYP-9747ac4b)
10748
+ const httpStatus = axiosError.response?.status;
10749
+ const httpSuffix = httpStatus ? ` (HTTP ${httpStatus})` : '';
10750
+ const reqMethod = axiosError.config?.method ? axiosError.config.method.toUpperCase() : '';
10751
+ const reqUrl = axiosError.config?.url || '';
10752
+ const reqContext = reqMethod && reqUrl ? ` [${reqMethod} ${reqUrl}]` : '';
10166
10753
  const fallbackMessage = responseData.error?.message ||
10167
10754
  responseData.message ||
10168
10755
  'API error occurred';
@@ -10175,7 +10762,9 @@ export function extractApiError(error, context) {
10175
10762
  'API_ERROR',
10176
10763
  message: exceptionTip
10177
10764
  ? `${fallbackMessage}\n Backend: ${exceptionTip}`
10178
- : fallbackMessage,
10765
+ : (fallbackMessage === 'API error occurred' && (httpSuffix || reqContext)
10766
+ ? `${fallbackMessage}${httpSuffix}${reqContext}`
10767
+ : fallbackMessage),
10179
10768
  },
10180
10769
  };
10181
10770
  }
@@ -10294,9 +10883,6 @@ function handleApiErrorOutsourcingStockIn(error) {
10294
10883
  function handleApiErrorPurchaseOrder(error) {
10295
10884
  return extractApiError(error);
10296
10885
  }
10297
- function handleApiErrorSalesOrder(error) {
10298
- return extractApiError(error);
10299
- }
10300
10886
  function handleApiErrorActualProduction(error) {
10301
10887
  return extractApiError(error);
10302
10888
  }
@@ -10315,9 +10901,6 @@ function handleApiErrorMrpTask(error) {
10315
10901
  function handleApiErrorAps(error) {
10316
10902
  return extractApiError(error);
10317
10903
  }
10318
- function handleApiErrorPlanOrder(error) {
10319
- return extractApiError(error);
10320
- }
10321
10904
  function handleApiErrorPhysicalInventory(error) {
10322
10905
  return extractApiError(error);
10323
10906
  }