@newpeak/barista-cli 0.1.27 → 0.1.29

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 (143) hide show
  1. package/dist/commands/liberica/bom/copy.d.ts +3 -0
  2. package/dist/commands/liberica/bom/copy.d.ts.map +1 -0
  3. package/dist/commands/liberica/bom/copy.js +121 -0
  4. package/dist/commands/liberica/bom/copy.js.map +1 -0
  5. package/dist/commands/liberica/bom/create.d.ts +3 -0
  6. package/dist/commands/liberica/bom/create.d.ts.map +1 -0
  7. package/dist/commands/liberica/bom/create.js +242 -0
  8. package/dist/commands/liberica/bom/create.js.map +1 -0
  9. package/dist/commands/liberica/bom/delete.d.ts +3 -0
  10. package/dist/commands/liberica/bom/delete.d.ts.map +1 -0
  11. package/dist/commands/liberica/bom/delete.js +114 -0
  12. package/dist/commands/liberica/bom/delete.js.map +1 -0
  13. package/dist/commands/liberica/bom/disable.d.ts +3 -0
  14. package/dist/commands/liberica/bom/disable.d.ts.map +1 -0
  15. package/dist/commands/liberica/bom/disable.js +141 -0
  16. package/dist/commands/liberica/bom/disable.js.map +1 -0
  17. package/dist/commands/liberica/bom/enable.d.ts +3 -0
  18. package/dist/commands/liberica/bom/enable.d.ts.map +1 -0
  19. package/dist/commands/liberica/bom/enable.js +141 -0
  20. package/dist/commands/liberica/bom/enable.js.map +1 -0
  21. package/dist/commands/liberica/bom/get.d.ts +3 -0
  22. package/dist/commands/liberica/bom/get.d.ts.map +1 -0
  23. package/dist/commands/liberica/bom/get.js +79 -0
  24. package/dist/commands/liberica/bom/get.js.map +1 -0
  25. package/dist/commands/liberica/bom/history.d.ts +3 -0
  26. package/dist/commands/liberica/bom/history.d.ts.map +1 -0
  27. package/dist/commands/liberica/bom/history.js +101 -0
  28. package/dist/commands/liberica/bom/history.js.map +1 -0
  29. package/dist/commands/liberica/bom/index.d.ts +3 -0
  30. package/dist/commands/liberica/bom/index.d.ts.map +1 -0
  31. package/dist/commands/liberica/bom/index.js +29 -0
  32. package/dist/commands/liberica/bom/index.js.map +1 -0
  33. package/dist/commands/liberica/bom/list.d.ts +3 -0
  34. package/dist/commands/liberica/bom/list.d.ts.map +1 -0
  35. package/dist/commands/liberica/bom/list.js +104 -0
  36. package/dist/commands/liberica/bom/list.js.map +1 -0
  37. package/dist/commands/liberica/bom/review.d.ts +3 -0
  38. package/dist/commands/liberica/bom/review.d.ts.map +1 -0
  39. package/dist/commands/liberica/bom/review.js +141 -0
  40. package/dist/commands/liberica/bom/review.js.map +1 -0
  41. package/dist/commands/liberica/bom/unReview.d.ts +3 -0
  42. package/dist/commands/liberica/bom/unReview.d.ts.map +1 -0
  43. package/dist/commands/liberica/bom/unReview.js +141 -0
  44. package/dist/commands/liberica/bom/unReview.js.map +1 -0
  45. package/dist/commands/liberica/bom/update.d.ts +3 -0
  46. package/dist/commands/liberica/bom/update.d.ts.map +1 -0
  47. package/dist/commands/liberica/bom/update.js +171 -0
  48. package/dist/commands/liberica/bom/update.js.map +1 -0
  49. package/dist/commands/liberica/index.d.ts.map +1 -1
  50. package/dist/commands/liberica/index.js +6 -0
  51. package/dist/commands/liberica/index.js.map +1 -1
  52. package/dist/commands/liberica/materials/create.d.ts.map +1 -1
  53. package/dist/commands/liberica/materials/create.js +53 -0
  54. package/dist/commands/liberica/materials/create.js.map +1 -1
  55. package/dist/commands/liberica/materials/update.d.ts.map +1 -1
  56. package/dist/commands/liberica/materials/update.js +34 -0
  57. package/dist/commands/liberica/materials/update.js.map +1 -1
  58. package/dist/commands/liberica/routing/compute.d.ts +3 -0
  59. package/dist/commands/liberica/routing/compute.d.ts.map +1 -0
  60. package/dist/commands/liberica/routing/compute.js +117 -0
  61. package/dist/commands/liberica/routing/compute.js.map +1 -0
  62. package/dist/commands/liberica/routing/copy.d.ts +3 -0
  63. package/dist/commands/liberica/routing/copy.d.ts.map +1 -0
  64. package/dist/commands/liberica/routing/copy.js +130 -0
  65. package/dist/commands/liberica/routing/copy.js.map +1 -0
  66. package/dist/commands/liberica/routing/create.d.ts +3 -0
  67. package/dist/commands/liberica/routing/create.d.ts.map +1 -0
  68. package/dist/commands/liberica/routing/create.js +116 -0
  69. package/dist/commands/liberica/routing/create.js.map +1 -0
  70. package/dist/commands/liberica/routing/delete.d.ts +3 -0
  71. package/dist/commands/liberica/routing/delete.d.ts.map +1 -0
  72. package/dist/commands/liberica/routing/delete.js +129 -0
  73. package/dist/commands/liberica/routing/delete.js.map +1 -0
  74. package/dist/commands/liberica/routing/disable.d.ts +3 -0
  75. package/dist/commands/liberica/routing/disable.d.ts.map +1 -0
  76. package/dist/commands/liberica/routing/disable.js +101 -0
  77. package/dist/commands/liberica/routing/disable.js.map +1 -0
  78. package/dist/commands/liberica/routing/enable.d.ts +3 -0
  79. package/dist/commands/liberica/routing/enable.d.ts.map +1 -0
  80. package/dist/commands/liberica/routing/enable.js +93 -0
  81. package/dist/commands/liberica/routing/enable.js.map +1 -0
  82. package/dist/commands/liberica/routing/get.d.ts +3 -0
  83. package/dist/commands/liberica/routing/get.d.ts.map +1 -0
  84. package/dist/commands/liberica/routing/get.js +119 -0
  85. package/dist/commands/liberica/routing/get.js.map +1 -0
  86. package/dist/commands/liberica/routing/history.d.ts +3 -0
  87. package/dist/commands/liberica/routing/history.d.ts.map +1 -0
  88. package/dist/commands/liberica/routing/history.js +90 -0
  89. package/dist/commands/liberica/routing/history.js.map +1 -0
  90. package/dist/commands/liberica/routing/index.d.ts +3 -0
  91. package/dist/commands/liberica/routing/index.d.ts.map +1 -0
  92. package/dist/commands/liberica/routing/index.js +31 -0
  93. package/dist/commands/liberica/routing/index.js.map +1 -0
  94. package/dist/commands/liberica/routing/list.d.ts +3 -0
  95. package/dist/commands/liberica/routing/list.d.ts.map +1 -0
  96. package/dist/commands/liberica/routing/list.js +119 -0
  97. package/dist/commands/liberica/routing/list.js.map +1 -0
  98. package/dist/commands/liberica/routing/review.d.ts +3 -0
  99. package/dist/commands/liberica/routing/review.d.ts.map +1 -0
  100. package/dist/commands/liberica/routing/review.js +101 -0
  101. package/dist/commands/liberica/routing/review.js.map +1 -0
  102. package/dist/commands/liberica/routing/unReview.d.ts +3 -0
  103. package/dist/commands/liberica/routing/unReview.d.ts.map +1 -0
  104. package/dist/commands/liberica/routing/unReview.js +101 -0
  105. package/dist/commands/liberica/routing/unReview.js.map +1 -0
  106. package/dist/commands/liberica/routing/update.d.ts +3 -0
  107. package/dist/commands/liberica/routing/update.d.ts.map +1 -0
  108. package/dist/commands/liberica/routing/update.js +137 -0
  109. package/dist/commands/liberica/routing/update.js.map +1 -0
  110. package/dist/commands/liberica/teams/issues/create.d.ts.map +1 -1
  111. package/dist/commands/liberica/teams/issues/create.js +3 -4
  112. package/dist/commands/liberica/teams/issues/create.js.map +1 -1
  113. package/dist/commands/liberica/teams/projects/update.d.ts.map +1 -1
  114. package/dist/commands/liberica/teams/projects/update.js +6 -1
  115. package/dist/commands/liberica/teams/projects/update.js.map +1 -1
  116. package/dist/commands/liberica/teams/tasks/create.d.ts.map +1 -1
  117. package/dist/commands/liberica/teams/tasks/create.js +9 -5
  118. package/dist/commands/liberica/teams/tasks/create.js.map +1 -1
  119. package/dist/commands/liberica/teams/work-logs/create.d.ts.map +1 -1
  120. package/dist/commands/liberica/teams/work-logs/create.js +15 -1
  121. package/dist/commands/liberica/teams/work-logs/create.js.map +1 -1
  122. package/dist/core/api/client.d.ts +27 -0
  123. package/dist/core/api/client.d.ts.map +1 -1
  124. package/dist/core/api/client.js +485 -0
  125. package/dist/core/api/client.js.map +1 -1
  126. package/dist/index.js +1 -1
  127. package/dist/types/bom.d.ts +91 -0
  128. package/dist/types/bom.d.ts.map +1 -0
  129. package/dist/types/bom.js +2 -0
  130. package/dist/types/bom.js.map +1 -0
  131. package/dist/types/index.d.ts +2 -0
  132. package/dist/types/index.d.ts.map +1 -1
  133. package/dist/types/routing.d.ts +69 -0
  134. package/dist/types/routing.d.ts.map +1 -0
  135. package/dist/types/routing.js +2 -0
  136. package/dist/types/routing.js.map +1 -0
  137. package/dist/types/team-issue.d.ts +1 -1
  138. package/dist/types/team-issue.d.ts.map +1 -1
  139. package/dist/types/team-project.d.ts +1 -0
  140. package/dist/types/team-project.d.ts.map +1 -1
  141. package/dist/types/team-task.d.ts +1 -1
  142. package/dist/types/team-task.d.ts.map +1 -1
  143. package/package.json +1 -1
@@ -0,0 +1,104 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import Table from 'cli-table3';
4
+ import { configManager } from '../../../core/config/manager.js';
5
+ import { apiClient } from '../../../core/api/client.js';
6
+ export function createBomListCommand() {
7
+ const cmd = new Command('list');
8
+ cmd.description('List BOMs with pagination');
9
+ cmd
10
+ .option('-p, --page <number>', 'Page number', '1')
11
+ .option('-s, --size <number>', 'Page size', '20')
12
+ .option('--bom-code <string>', 'Filter by BOM code')
13
+ .option('--material-code <string>', 'Filter by material code')
14
+ .option('--material-name <string>', 'Filter by material name')
15
+ .option('--status <number>', 'Filter by status (1=Enabled, 2=Disabled)')
16
+ .option('--keyword <string>', 'Keyword search')
17
+ .option('--json', 'Output as JSON')
18
+ .action(async (options) => {
19
+ const outputJson = options.json === true || process.argv.includes('--json');
20
+ const context = configManager.getCurrentContext();
21
+ const environment = options.env || context.environment;
22
+ const tenant = options.tenant || context.tenant;
23
+ const page = parseInt(options.page, 10) - 1;
24
+ const size = parseInt(options.size, 10);
25
+ const params = { pageNo: page, pageSize: size };
26
+ if (options.bomCode)
27
+ params.bomCode = options.bomCode;
28
+ if (options.materialCode)
29
+ params.materialCode = options.materialCode;
30
+ if (options.materialName)
31
+ params.materialName = options.materialName;
32
+ if (options.status !== undefined)
33
+ params.statusFlag = parseInt(options.status, 10);
34
+ if (options.keyword)
35
+ params.keyword = options.keyword;
36
+ const response = await apiClient.listBoms(environment, tenant, params);
37
+ if (!response.success) {
38
+ console.error(chalk.red(`\n✗ Failed to list BOMs: ${response.error?.message || 'Unknown error'}`));
39
+ if (response.error?.code) {
40
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
41
+ }
42
+ console.error();
43
+ process.exit(1);
44
+ }
45
+ const data = response.data;
46
+ if (!data || !data.rows || data.rows.length === 0) {
47
+ if (outputJson) {
48
+ console.log(JSON.stringify({
49
+ success: true,
50
+ data: {
51
+ items: [],
52
+ pagination: { pageNo: 0, pageSize: size, totalRows: 0 },
53
+ },
54
+ }, null, 2));
55
+ }
56
+ else {
57
+ console.log(chalk.yellow('\nNo BOMs found\n'));
58
+ }
59
+ return;
60
+ }
61
+ if (outputJson) {
62
+ console.log(JSON.stringify({
63
+ success: true,
64
+ data: {
65
+ items: data.rows,
66
+ pagination: {
67
+ pageNo: data.pageNo,
68
+ pageSize: data.pageSize,
69
+ totalRows: data.totalRows,
70
+ },
71
+ },
72
+ }, null, 2));
73
+ return;
74
+ }
75
+ console.log(chalk.bold('\n📋 BOM List\n'));
76
+ const table = new Table({
77
+ head: [
78
+ chalk.bold('BOM Code'),
79
+ chalk.bold('Version'),
80
+ chalk.bold('Material Code'),
81
+ chalk.bold('Material Name'),
82
+ chalk.bold('UOM'),
83
+ chalk.bold('Status'),
84
+ ],
85
+ colWidths: [20, 12, 18, 25, 10, 12],
86
+ });
87
+ for (const bom of data.rows) {
88
+ const statusText = bom.statusFlag === 1 ? chalk.green('ENABLED') : chalk.gray('DISABLED');
89
+ table.push([
90
+ bom.bomCode || '-',
91
+ bom.bomVersion || '-',
92
+ bom.materialCode || '-',
93
+ bom.materialName || '-',
94
+ bom.materialUomCode || '-',
95
+ statusText,
96
+ ]);
97
+ }
98
+ console.log(table.toString());
99
+ console.log(chalk.gray(` Total: ${data.totalRows} | Page: ${data.pageNo + 1} / ${Math.ceil(data.totalRows / data.pageSize) || 1}`));
100
+ console.log();
101
+ });
102
+ return cmd;
103
+ }
104
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/liberica/bom/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createBomReviewCommand(): Command;
3
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/bom/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,sBAAsB,IAAI,OAAO,CA2IhD"}
@@ -0,0 +1,141 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../core/config/manager.js';
4
+ import { apiClient } from '../../../core/api/client.js';
5
+ export function createBomReviewCommand() {
6
+ const cmd = new Command('review');
7
+ cmd
8
+ .description('Review (approve) BOM(s)')
9
+ .option('--ids <ids>', 'Comma-separated BOM IDs for batch operation')
10
+ .option('--force', 'Execute the operation (skip dry-run preview)')
11
+ .option('--dry-run', 'Preview without executing')
12
+ .option('--json', 'Output as JSON')
13
+ .action(async (options) => {
14
+ const context = configManager.getCurrentContext();
15
+ const environment = options.env || context.environment;
16
+ const tenant = options.tenant || context.tenant;
17
+ const force = options.force === true;
18
+ const dryRun = options.dryRun === true;
19
+ const outputJson = options.json === true || process.argv.includes('--json');
20
+ const ids = options.ids
21
+ ? options.ids.split(',').map((id) => id.trim()).filter((id) => id !== '')
22
+ : [];
23
+ if (ids.length === 0) {
24
+ const errMsg = 'No BOM IDs provided. Use --ids with comma-separated IDs.';
25
+ if (outputJson) {
26
+ console.log(JSON.stringify({ success: false, error: { code: 'MISSING_IDS', message: errMsg } }));
27
+ }
28
+ else {
29
+ console.error(chalk.red(`\n✗ ${errMsg}\n`));
30
+ }
31
+ process.exit(1);
32
+ }
33
+ if (!outputJson) {
34
+ console.log(chalk.bold(`\n📝 Review BOM(s) (${environment})\n`));
35
+ console.log(chalk.gray(` BOM IDs: ${ids.join(', ')}`));
36
+ }
37
+ if (dryRun || !force) {
38
+ if (outputJson) {
39
+ console.log(JSON.stringify({
40
+ success: true,
41
+ dryRun: true,
42
+ bomIds: ids.map((id) => parseInt(id, 10)),
43
+ message: 'No actual API call will be made',
44
+ }));
45
+ }
46
+ else {
47
+ console.log(chalk.cyan('\n🔍 Dry-Run Mode: No actual API call will be made\n'));
48
+ console.log(chalk.gray(` This will review ${ids.length} BOM(s).`));
49
+ console.log(chalk.gray(' To execute, add --force flag.\n'));
50
+ }
51
+ return;
52
+ }
53
+ // Fetch BOMs for confirmation display
54
+ const boms = [];
55
+ for (const id of ids) {
56
+ try {
57
+ const response = await apiClient.getBom(environment, tenant, id);
58
+ if (!response.success || !response.data) {
59
+ const errMsg = `BOM not found: ${id}`;
60
+ if (outputJson) {
61
+ console.log(JSON.stringify({ success: false, error: { code: 'NOT_FOUND', message: errMsg } }));
62
+ }
63
+ else {
64
+ console.error(chalk.red(`\n✗ ${errMsg}\n`));
65
+ }
66
+ process.exit(1);
67
+ }
68
+ boms.push(response.data);
69
+ }
70
+ catch (error) {
71
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
72
+ if (outputJson) {
73
+ console.log(JSON.stringify({ success: false, error: { code: 'FETCH_ERROR', message: `Failed to fetch BOM ${id}: ${errMsg}` } }));
74
+ }
75
+ else {
76
+ console.error(chalk.red(`\n✗ Failed to fetch BOM ${id}: ${errMsg}\n`));
77
+ }
78
+ process.exit(1);
79
+ }
80
+ }
81
+ const allAlreadyReviewed = boms.every((b) => b.reviewFlag === 'Y');
82
+ if (allAlreadyReviewed) {
83
+ const names = boms.map((b) => `"${b.bomCode || b.bomVersion}"`).join(', ');
84
+ const errMsg = `BOM(s) ${names} ${boms.length === 1 ? 'is' : 'are'} already reviewed`;
85
+ if (outputJson) {
86
+ console.log(JSON.stringify({ success: false, error: { code: 'ALREADY_REVIEWED', message: errMsg } }));
87
+ }
88
+ else {
89
+ console.error(chalk.yellow(`\n⚠ ${errMsg}\n`));
90
+ }
91
+ process.exit(1);
92
+ }
93
+ if (!outputJson) {
94
+ for (const [i, b] of boms.entries()) {
95
+ console.log(chalk.gray(` [${i + 1}] ${b.bomCode || b.bomVersion} — ${b.materialCode} ${b.materialName} (${b.reviewFlag === 'Y' ? 'Reviewed' : 'Unreviewed'})`));
96
+ }
97
+ console.log();
98
+ }
99
+ const idList = ids.map((id) => parseInt(id, 10));
100
+ const data = { bomIdList: idList };
101
+ try {
102
+ const response = await apiClient.batchReviewBom(environment, tenant, data);
103
+ if (response.success) {
104
+ if (outputJson) {
105
+ console.log(JSON.stringify({ success: true, bomIds: idList }));
106
+ }
107
+ else {
108
+ const names = boms.map((b) => b.bomCode || b.bomVersion).join(', ');
109
+ console.log(chalk.green(`\n✓ BOM(s) ${names} reviewed\n`));
110
+ }
111
+ }
112
+ else {
113
+ const errorMsg = response.error?.message || 'Unknown error';
114
+ const errorCode = response.error?.code || 'REVIEW_ERROR';
115
+ if (outputJson) {
116
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
117
+ }
118
+ else {
119
+ console.error(chalk.red(`\n✗ Failed to review BOM(s): ${errorMsg}`));
120
+ if (response.error?.code) {
121
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
122
+ }
123
+ console.error();
124
+ }
125
+ process.exit(1);
126
+ }
127
+ }
128
+ catch (error) {
129
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
130
+ if (outputJson) {
131
+ console.log(JSON.stringify({ success: false, error: { code: 'ERROR', message: errMsg } }));
132
+ }
133
+ else {
134
+ console.error(chalk.red(`\n✗ Error: ${errMsg}\n`));
135
+ }
136
+ process.exit(1);
137
+ }
138
+ });
139
+ return cmd;
140
+ }
141
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../../src/commands/liberica/bom/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAIxD,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,GAAG;SACA,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,aAAa,EAAE,6CAA6C,CAAC;SACpE,MAAM,CAAC,SAAS,EAAE,8CAA8C,CAAC;SACjE,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG;YACrB,CAAC,CAAE,OAAO,CAAC,GAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;YACrF,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,0DAA0D,CAAC;YAC1E,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACnG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,WAAW,KAAK,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;oBACb,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACzC,OAAO,EAAE,iCAAiC;iBAC3C,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;gBAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO;QACT,CAAC;QAED,sCAAsC;QACtC,MAAM,IAAI,GAAmB,EAAE,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACxC,MAAM,MAAM,GAAG,kBAAkB,EAAE,EAAE,CAAC;oBACtC,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;oBACjG,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC;oBAC9C,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAoB,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBACxE,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACnI,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;QACnE,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC;YACtF,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACxG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CACpJ,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAqB,EAAE,SAAS,EAAE,MAAM,EAAsB,CAAC;QAEzE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAE3E,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;gBAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,cAAc,CAAC;gBACzD,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjG,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACrE,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;wBACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACpE,CAAC;oBACD,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACxE,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,MAAM,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createBomUnReviewCommand(): Command;
3
+ //# sourceMappingURL=unReview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unReview.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/bom/unReview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,wBAAwB,IAAI,OAAO,CA6IlD"}
@@ -0,0 +1,141 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../core/config/manager.js';
4
+ import { apiClient } from '../../../core/api/client.js';
5
+ export function createBomUnReviewCommand() {
6
+ const cmd = new Command('unReview');
7
+ cmd
8
+ .description('Un-review (cancel review) BOM(s)')
9
+ .option('--ids <ids>', 'Comma-separated BOM IDs for batch operation')
10
+ .option('--force', 'Execute the operation (skip dry-run preview)')
11
+ .option('--dry-run', 'Preview without executing')
12
+ .option('--json', 'Output as JSON')
13
+ .action(async (options) => {
14
+ const context = configManager.getCurrentContext();
15
+ const environment = options.env || context.environment;
16
+ const tenant = options.tenant || context.tenant;
17
+ const force = options.force === true;
18
+ const dryRun = options.dryRun === true;
19
+ const outputJson = options.json === true || process.argv.includes('--json');
20
+ const ids = options.ids
21
+ ? options.ids.split(',').map((id) => id.trim()).filter((id) => id !== '')
22
+ : [];
23
+ if (ids.length === 0) {
24
+ const errMsg = 'No BOM IDs provided. Use --ids with comma-separated IDs.';
25
+ if (outputJson) {
26
+ console.log(JSON.stringify({ success: false, error: { code: 'MISSING_IDS', message: errMsg } }));
27
+ }
28
+ else {
29
+ console.error(chalk.red(`\n✗ ${errMsg}\n`));
30
+ }
31
+ process.exit(1);
32
+ }
33
+ if (!outputJson) {
34
+ console.log(chalk.bold(`\n📝 Un-review BOM(s) (${environment})\n`));
35
+ console.log(chalk.gray(` BOM IDs: ${ids.join(', ')}`));
36
+ }
37
+ if (dryRun || !force) {
38
+ if (outputJson) {
39
+ console.log(JSON.stringify({
40
+ success: true,
41
+ dryRun: true,
42
+ bomIds: ids.map((id) => parseInt(id, 10)),
43
+ message: 'No actual API call will be made',
44
+ }));
45
+ }
46
+ else {
47
+ console.log(chalk.cyan('\n🔍 Dry-Run Mode: No actual API call will be made\n'));
48
+ console.log(chalk.gray(` This will un-review ${ids.length} BOM(s).`));
49
+ console.log(chalk.gray(' To execute, add --force flag.\n'));
50
+ }
51
+ return;
52
+ }
53
+ // Fetch BOMs for confirmation display
54
+ const boms = [];
55
+ for (const id of ids) {
56
+ try {
57
+ const response = await apiClient.getBom(environment, tenant, id);
58
+ if (!response.success || !response.data) {
59
+ const errMsg = `BOM not found: ${id}`;
60
+ if (outputJson) {
61
+ console.log(JSON.stringify({ success: false, error: { code: 'NOT_FOUND', message: errMsg } }));
62
+ }
63
+ else {
64
+ console.error(chalk.red(`\n✗ ${errMsg}\n`));
65
+ }
66
+ process.exit(1);
67
+ }
68
+ boms.push(response.data);
69
+ }
70
+ catch (error) {
71
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
72
+ if (outputJson) {
73
+ console.log(JSON.stringify({ success: false, error: { code: 'FETCH_ERROR', message: `Failed to fetch BOM ${id}: ${errMsg}` } }));
74
+ }
75
+ else {
76
+ console.error(chalk.red(`\n✗ Failed to fetch BOM ${id}: ${errMsg}\n`));
77
+ }
78
+ process.exit(1);
79
+ }
80
+ }
81
+ const allAlreadyUnreviewed = boms.every((b) => b.reviewFlag !== 'Y');
82
+ if (allAlreadyUnreviewed) {
83
+ const names = boms.map((b) => `"${b.bomCode || b.bomVersion}"`).join(', ');
84
+ const errMsg = `BOM(s) ${names} ${boms.length === 1 ? 'is' : 'are'} already unreviewed`;
85
+ if (outputJson) {
86
+ console.log(JSON.stringify({ success: false, error: { code: 'ALREADY_UNREVIEWED', message: errMsg } }));
87
+ }
88
+ else {
89
+ console.error(chalk.yellow(`\n⚠ ${errMsg}\n`));
90
+ }
91
+ process.exit(1);
92
+ }
93
+ if (!outputJson) {
94
+ for (const [i, b] of boms.entries()) {
95
+ console.log(chalk.gray(` [${i + 1}] ${b.bomCode || b.bomVersion} — ${b.materialCode} ${b.materialName} (${b.reviewFlag === 'Y' ? 'Reviewed' : 'Unreviewed'})`));
96
+ }
97
+ console.log();
98
+ }
99
+ const idList = ids.map((id) => parseInt(id, 10));
100
+ const data = { bomIdList: idList };
101
+ try {
102
+ const response = await apiClient.batchUnReviewBom(environment, tenant, data);
103
+ if (response.success) {
104
+ if (outputJson) {
105
+ console.log(JSON.stringify({ success: true, bomIds: idList }));
106
+ }
107
+ else {
108
+ const names = boms.map((b) => b.bomCode || b.bomVersion).join(', ');
109
+ console.log(chalk.green(`\n✓ BOM(s) ${names} un-reviewed\n`));
110
+ }
111
+ }
112
+ else {
113
+ const errorMsg = response.error?.message || 'Unknown error';
114
+ const errorCode = response.error?.code || 'UNREVIEW_ERROR';
115
+ if (outputJson) {
116
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
117
+ }
118
+ else {
119
+ console.error(chalk.red(`\n✗ Failed to un-review BOM(s): ${errorMsg}`));
120
+ if (response.error?.code) {
121
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
122
+ }
123
+ console.error();
124
+ }
125
+ process.exit(1);
126
+ }
127
+ }
128
+ catch (error) {
129
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
130
+ if (outputJson) {
131
+ console.log(JSON.stringify({ success: false, error: { code: 'ERROR', message: errMsg } }));
132
+ }
133
+ else {
134
+ console.error(chalk.red(`\n✗ Error: ${errMsg}\n`));
135
+ }
136
+ process.exit(1);
137
+ }
138
+ });
139
+ return cmd;
140
+ }
141
+ //# sourceMappingURL=unReview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unReview.js","sourceRoot":"","sources":["../../../../src/commands/liberica/bom/unReview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createBomUpdateCommand(): Command;
3
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/bom/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,sBAAsB,IAAI,OAAO,CAyJhD"}
@@ -0,0 +1,171 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../core/config/manager.js';
4
+ import { apiClient } from '../../../core/api/client.js';
5
+ export function createBomUpdateCommand() {
6
+ const cmd = new Command('update');
7
+ cmd
8
+ .description('Update BOM information')
9
+ .argument('<bomId>', 'BOM ID')
10
+ .option('--bom-code <code>', 'BOM code')
11
+ .option('--bom-version <version>', 'BOM version')
12
+ .option('--material-code <code>', 'Material code')
13
+ .option('--material-name <name>', 'Material name')
14
+ .option('--material-uom-code <code>', 'Material UOM code')
15
+ .option('--material-no <no>', 'Material number')
16
+ .option('--material-type <type>', 'Material type')
17
+ .option('--material-yield-rate <rate>', 'Material yield rate')
18
+ .option('--color <color>', 'Color')
19
+ .option('--long-x <length>', 'Length (X dimension)')
20
+ .option('--wide-y <width>', 'Width (Y dimension)')
21
+ .option('--high-z <height>', 'Height (Z dimension)')
22
+ .option('--volume <volume>', 'Volume')
23
+ .option('--remark <text>', 'Remarks')
24
+ .option('--dry-run', 'Preview changes without making API call')
25
+ .option('--json', 'Output as JSON')
26
+ .action(async (bomId, options) => {
27
+ const context = configManager.getCurrentContext();
28
+ const environment = options.env || context.environment;
29
+ const tenant = options.tenant || context.tenant;
30
+ const dryRun = options.dryRun === true;
31
+ const outputJson = options.json === true || process.argv.includes('--json');
32
+ const fields = {};
33
+ if (options.bomCode)
34
+ fields.bomCode = options.bomCode;
35
+ if (options.bomVersion)
36
+ fields.bomVersion = options.bomVersion;
37
+ if (options.materialCode)
38
+ fields.materialCode = options.materialCode;
39
+ if (options.materialName)
40
+ fields.materialName = options.materialName;
41
+ if (options.materialUomCode)
42
+ fields.materialUomCode = options.materialUomCode;
43
+ if (options.materialNo)
44
+ fields.materialNo = options.materialNo;
45
+ if (options.materialType)
46
+ fields.materialType = options.materialType;
47
+ if (options.materialYieldRate)
48
+ fields.materialYieldRate = options.materialYieldRate;
49
+ if (options.color)
50
+ fields.color = options.color;
51
+ if (options.longX)
52
+ fields.longX = parseFloat(options.longX);
53
+ if (options.wideY)
54
+ fields.wideY = parseFloat(options.wideY);
55
+ if (options.highZ)
56
+ fields.highZ = parseFloat(options.highZ);
57
+ if (options.volume)
58
+ fields.volume = options.volume;
59
+ if (options.remark)
60
+ fields.remark = options.remark;
61
+ const providedFields = Object.keys(fields).filter((k) => fields[k] !== undefined);
62
+ if (providedFields.length === 0) {
63
+ const errMsg = 'No fields to update. Provide at least one update option.';
64
+ if (outputJson) {
65
+ console.log(JSON.stringify({ success: false, error: { code: 'NO_FIELDS', message: errMsg } }));
66
+ }
67
+ else {
68
+ console.error(chalk.red(`\n✗ ${errMsg}\n`));
69
+ }
70
+ process.exit(1);
71
+ }
72
+ // Fetch current BOM for dry-run display
73
+ let currentBom;
74
+ try {
75
+ const bomResponse = await apiClient.getBom(environment, tenant, bomId);
76
+ if (!bomResponse.success || !bomResponse.data) {
77
+ const errMsg = `BOM not found: ${bomId}`;
78
+ if (outputJson) {
79
+ console.log(JSON.stringify({ success: false, error: { code: 'NOT_FOUND', message: errMsg } }));
80
+ }
81
+ else {
82
+ console.error(chalk.red(`\n✗ ${errMsg}\n`));
83
+ }
84
+ process.exit(1);
85
+ }
86
+ currentBom = bomResponse.data;
87
+ }
88
+ catch (error) {
89
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
90
+ if (outputJson) {
91
+ console.log(JSON.stringify({ success: false, error: { code: 'FETCH_ERROR', message: `Failed to fetch BOM: ${errMsg}` } }));
92
+ }
93
+ else {
94
+ console.error(chalk.red(`\n✗ Failed to fetch BOM: ${errMsg}\n`));
95
+ }
96
+ process.exit(1);
97
+ }
98
+ if (dryRun) {
99
+ if (outputJson) {
100
+ console.log(JSON.stringify({ success: true, dryRun: true, bomId, changes: fields }));
101
+ }
102
+ else {
103
+ console.log(chalk.bold(`\n📋 Update BOM — Dry Run (${environment})\n`));
104
+ console.log(chalk.gray(` BOM ID: ${bomId}`));
105
+ console.log(chalk.gray(` Current: ${currentBom.bomCode || '-'} v${currentBom.bomVersion}`));
106
+ console.log(chalk.gray('\n Changes to be applied:'));
107
+ for (const field of providedFields) {
108
+ const currentVal = currentBom[field] ?? '(not set)';
109
+ const newVal = fields[field];
110
+ const label = field.replace(/([A-Z])/g, (m) => ` ${m.toLowerCase()}`).trim();
111
+ console.log(chalk.cyan(` ${label}: "${currentVal}" → "${newVal}"`));
112
+ }
113
+ console.log();
114
+ }
115
+ return;
116
+ }
117
+ console.log(chalk.bold(`\n📋 Update BOM (${environment})\n`));
118
+ console.log(chalk.gray(` BOM ID: ${bomId}`));
119
+ console.log(chalk.gray(` Current: ${currentBom.bomCode || '-'} v${currentBom.bomVersion}`));
120
+ console.log(chalk.gray('\n Changes:'));
121
+ for (const field of providedFields) {
122
+ const currentVal = currentBom[field] ?? '(not set)';
123
+ const newVal = fields[field];
124
+ const label = field.replace(/([A-Z])/g, (m) => ` ${m.toLowerCase()}`).trim();
125
+ console.log(chalk.cyan(` ${label}: "${currentVal}" → "${newVal}"`));
126
+ }
127
+ const updateData = {
128
+ bomId: parseInt(bomId, 10),
129
+ ...currentBom,
130
+ ...fields,
131
+ };
132
+ try {
133
+ const response = await apiClient.updateBom(environment, tenant, updateData);
134
+ if (response.success) {
135
+ if (outputJson) {
136
+ console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
137
+ }
138
+ else {
139
+ console.log(chalk.green(`\n✓ BOM updated successfully\n`));
140
+ }
141
+ }
142
+ else {
143
+ const errorMsg = response.error?.message || 'Unknown error';
144
+ const errorCode = response.error?.code || 'UPDATE_ERROR';
145
+ if (outputJson) {
146
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
147
+ }
148
+ else {
149
+ console.error(chalk.red(`\n✗ Update failed: ${errorMsg}`));
150
+ if (response.error?.code) {
151
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
152
+ }
153
+ console.error();
154
+ }
155
+ process.exit(1);
156
+ }
157
+ }
158
+ catch (error) {
159
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
160
+ if (outputJson) {
161
+ console.log(JSON.stringify({ success: false, error: { message: errMsg } }));
162
+ }
163
+ else {
164
+ console.error(chalk.red(`\n✗ Error: ${errMsg}\n`));
165
+ }
166
+ process.exit(1);
167
+ }
168
+ });
169
+ return cmd;
170
+ }
171
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/liberica/bom/update.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/liberica/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BpC,wBAAgB,qBAAqB,IAAI,OAAO,CA0D/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/liberica/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,wBAAgB,qBAAqB,IAAI,OAAO,CA8D/C"}