@optima-chat/commerce-cli 1.7.4 → 1.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/api/rest/commerce.d.ts +6 -2
  2. package/dist/api/rest/commerce.d.ts.map +1 -1
  3. package/dist/api/rest/commerce.js +5 -1
  4. package/dist/api/rest/commerce.js.map +1 -1
  5. package/dist/commands/product/list.js +24 -21
  6. package/dist/commands/product/list.js.map +1 -1
  7. package/dist/commands/test/smoke.js +1 -1
  8. package/dist/commands/test/smoke.js.map +1 -1
  9. package/dist/index.js +0 -0
  10. package/package.json +1 -1
  11. package/.claude/settings.local.json +0 -70
  12. package/dist/commands/address/create.d.ts +0 -3
  13. package/dist/commands/address/create.d.ts.map +0 -1
  14. package/dist/commands/address/create.js +0 -122
  15. package/dist/commands/address/create.js.map +0 -1
  16. package/dist/commands/address/delete.d.ts +0 -3
  17. package/dist/commands/address/delete.d.ts.map +0 -1
  18. package/dist/commands/address/delete.js +0 -50
  19. package/dist/commands/address/delete.js.map +0 -1
  20. package/dist/commands/address/get.d.ts +0 -3
  21. package/dist/commands/address/get.d.ts.map +0 -1
  22. package/dist/commands/address/get.js +0 -50
  23. package/dist/commands/address/get.js.map +0 -1
  24. package/dist/commands/address/index.d.ts +0 -3
  25. package/dist/commands/address/index.d.ts.map +0 -1
  26. package/dist/commands/address/index.js +0 -16
  27. package/dist/commands/address/index.js.map +0 -1
  28. package/dist/commands/address/list.d.ts +0 -3
  29. package/dist/commands/address/list.d.ts.map +0 -1
  30. package/dist/commands/address/list.js +0 -34
  31. package/dist/commands/address/list.js.map +0 -1
  32. package/dist/commands/address/set-default.d.ts +0 -3
  33. package/dist/commands/address/set-default.d.ts.map +0 -1
  34. package/dist/commands/address/set-default.js +0 -34
  35. package/dist/commands/address/set-default.js.map +0 -1
  36. package/dist/commands/address/update.d.ts +0 -3
  37. package/dist/commands/address/update.d.ts.map +0 -1
  38. package/dist/commands/address/update.js +0 -120
  39. package/dist/commands/address/update.js.map +0 -1
  40. package/dist/commands/auth/switch.d.ts +0 -3
  41. package/dist/commands/auth/switch.d.ts.map +0 -1
  42. package/dist/commands/auth/switch.js +0 -111
  43. package/dist/commands/auth/switch.js.map +0 -1
  44. package/dist/commands/auth/test-refresh.d.ts +0 -3
  45. package/dist/commands/auth/test-refresh.d.ts.map +0 -1
  46. package/dist/commands/auth/test-refresh.js +0 -43
  47. package/dist/commands/auth/test-refresh.js.map +0 -1
  48. package/dist/commands/category/create.d.ts +0 -3
  49. package/dist/commands/category/create.d.ts.map +0 -1
  50. package/dist/commands/category/create.js +0 -142
  51. package/dist/commands/category/create.js.map +0 -1
  52. package/dist/commands/category/delete.d.ts +0 -3
  53. package/dist/commands/category/delete.d.ts.map +0 -1
  54. package/dist/commands/category/delete.js +0 -98
  55. package/dist/commands/category/delete.js.map +0 -1
  56. package/dist/commands/category/get.d.ts +0 -3
  57. package/dist/commands/category/get.d.ts.map +0 -1
  58. package/dist/commands/category/get.js +0 -74
  59. package/dist/commands/category/get.js.map +0 -1
  60. package/dist/commands/category/index.d.ts +0 -3
  61. package/dist/commands/category/index.d.ts.map +0 -1
  62. package/dist/commands/category/index.js +0 -14
  63. package/dist/commands/category/index.js.map +0 -1
  64. package/dist/commands/category/list.d.ts +0 -3
  65. package/dist/commands/category/list.d.ts.map +0 -1
  66. package/dist/commands/category/list.js +0 -77
  67. package/dist/commands/category/list.js.map +0 -1
  68. package/dist/commands/category/update.d.ts +0 -3
  69. package/dist/commands/category/update.d.ts.map +0 -1
  70. package/dist/commands/category/update.js +0 -104
  71. package/dist/commands/category/update.js.map +0 -1
  72. package/dist/commands/cleanup.d.ts +0 -3
  73. package/dist/commands/cleanup.d.ts.map +0 -1
  74. package/dist/commands/cleanup.js +0 -100
  75. package/dist/commands/cleanup.js.map +0 -1
  76. package/dist/commands/i18n/category/create.d.ts +0 -3
  77. package/dist/commands/i18n/category/create.d.ts.map +0 -1
  78. package/dist/commands/i18n/category/create.js +0 -113
  79. package/dist/commands/i18n/category/create.js.map +0 -1
  80. package/dist/commands/i18n/category/delete.d.ts +0 -3
  81. package/dist/commands/i18n/category/delete.d.ts.map +0 -1
  82. package/dist/commands/i18n/category/delete.js +0 -63
  83. package/dist/commands/i18n/category/delete.js.map +0 -1
  84. package/dist/commands/i18n/category/get.d.ts +0 -3
  85. package/dist/commands/i18n/category/get.d.ts.map +0 -1
  86. package/dist/commands/i18n/category/get.js +0 -56
  87. package/dist/commands/i18n/category/get.js.map +0 -1
  88. package/dist/commands/i18n/category/index.d.ts +0 -3
  89. package/dist/commands/i18n/category/index.d.ts.map +0 -1
  90. package/dist/commands/i18n/category/index.js +0 -14
  91. package/dist/commands/i18n/category/index.js.map +0 -1
  92. package/dist/commands/i18n/category/list.d.ts +0 -3
  93. package/dist/commands/i18n/category/list.d.ts.map +0 -1
  94. package/dist/commands/i18n/category/list.js +0 -72
  95. package/dist/commands/i18n/category/list.js.map +0 -1
  96. package/dist/commands/i18n/category/update.d.ts +0 -3
  97. package/dist/commands/i18n/category/update.d.ts.map +0 -1
  98. package/dist/commands/i18n/category/update.js +0 -68
  99. package/dist/commands/i18n/category/update.js.map +0 -1
  100. package/dist/commands/i18n/merchant/get.d.ts +0 -3
  101. package/dist/commands/i18n/merchant/get.d.ts.map +0 -1
  102. package/dist/commands/i18n/merchant/get.js +0 -30
  103. package/dist/commands/i18n/merchant/get.js.map +0 -1
  104. package/dist/commands/section/create.d.ts +0 -3
  105. package/dist/commands/section/create.d.ts.map +0 -1
  106. package/dist/commands/section/create.js +0 -218
  107. package/dist/commands/section/create.js.map +0 -1
  108. package/dist/commands/section/delete.d.ts +0 -3
  109. package/dist/commands/section/delete.d.ts.map +0 -1
  110. package/dist/commands/section/delete.js +0 -86
  111. package/dist/commands/section/delete.js.map +0 -1
  112. package/dist/commands/section/hide.d.ts +0 -3
  113. package/dist/commands/section/hide.d.ts.map +0 -1
  114. package/dist/commands/section/hide.js +0 -82
  115. package/dist/commands/section/hide.js.map +0 -1
  116. package/dist/commands/section/index.d.ts +0 -4
  117. package/dist/commands/section/index.d.ts.map +0 -1
  118. package/dist/commands/section/index.js +0 -23
  119. package/dist/commands/section/index.js.map +0 -1
  120. package/dist/commands/section/list.d.ts +0 -3
  121. package/dist/commands/section/list.d.ts.map +0 -1
  122. package/dist/commands/section/list.js +0 -164
  123. package/dist/commands/section/list.js.map +0 -1
  124. package/dist/commands/section/product/create.d.ts +0 -3
  125. package/dist/commands/section/product/create.d.ts.map +0 -1
  126. package/dist/commands/section/product/create.js +0 -208
  127. package/dist/commands/section/product/create.js.map +0 -1
  128. package/dist/commands/section/product/delete.d.ts +0 -3
  129. package/dist/commands/section/product/delete.d.ts.map +0 -1
  130. package/dist/commands/section/product/delete.js +0 -85
  131. package/dist/commands/section/product/delete.js.map +0 -1
  132. package/dist/commands/section/product/hide.d.ts +0 -3
  133. package/dist/commands/section/product/hide.d.ts.map +0 -1
  134. package/dist/commands/section/product/hide.js +0 -78
  135. package/dist/commands/section/product/hide.js.map +0 -1
  136. package/dist/commands/section/product/index.d.ts +0 -4
  137. package/dist/commands/section/product/index.d.ts.map +0 -1
  138. package/dist/commands/section/product/index.js +0 -17
  139. package/dist/commands/section/product/index.js.map +0 -1
  140. package/dist/commands/section/product/list.d.ts +0 -3
  141. package/dist/commands/section/product/list.d.ts.map +0 -1
  142. package/dist/commands/section/product/list.js +0 -157
  143. package/dist/commands/section/product/list.js.map +0 -1
  144. package/dist/commands/section/product/reorder.d.ts +0 -3
  145. package/dist/commands/section/product/reorder.d.ts.map +0 -1
  146. package/dist/commands/section/product/reorder.js +0 -110
  147. package/dist/commands/section/product/reorder.js.map +0 -1
  148. package/dist/commands/section/product/update.d.ts +0 -3
  149. package/dist/commands/section/product/update.d.ts.map +0 -1
  150. package/dist/commands/section/product/update.js +0 -127
  151. package/dist/commands/section/product/update.js.map +0 -1
  152. package/dist/commands/section/reorder.d.ts +0 -3
  153. package/dist/commands/section/reorder.d.ts.map +0 -1
  154. package/dist/commands/section/reorder.js +0 -111
  155. package/dist/commands/section/reorder.js.map +0 -1
  156. package/dist/commands/section/translation/delete.d.ts +0 -3
  157. package/dist/commands/section/translation/delete.d.ts.map +0 -1
  158. package/dist/commands/section/translation/delete.js +0 -97
  159. package/dist/commands/section/translation/delete.js.map +0 -1
  160. package/dist/commands/section/translation/index.d.ts +0 -4
  161. package/dist/commands/section/translation/index.d.ts.map +0 -1
  162. package/dist/commands/section/translation/index.js +0 -11
  163. package/dist/commands/section/translation/index.js.map +0 -1
  164. package/dist/commands/section/translation/list.d.ts +0 -3
  165. package/dist/commands/section/translation/list.d.ts.map +0 -1
  166. package/dist/commands/section/translation/list.js +0 -104
  167. package/dist/commands/section/translation/list.js.map +0 -1
  168. package/dist/commands/section/translation/set.d.ts +0 -3
  169. package/dist/commands/section/translation/set.d.ts.map +0 -1
  170. package/dist/commands/section/translation/set.js +0 -151
  171. package/dist/commands/section/translation/set.js.map +0 -1
  172. package/dist/commands/section/update.d.ts +0 -3
  173. package/dist/commands/section/update.d.ts.map +0 -1
  174. package/dist/commands/section/update.js +0 -137
  175. package/dist/commands/section/update.js.map +0 -1
  176. package/dist/commands/variant/get.d.ts +0 -3
  177. package/dist/commands/variant/get.d.ts.map +0 -1
  178. package/dist/commands/variant/get.js +0 -41
  179. package/dist/commands/variant/get.js.map +0 -1
@@ -1,111 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import { commerceApi } from '../../api/rest/commerce.js';
4
- import { handleError, createApiError, ValidationError } from '../../utils/error.js';
5
- import { output } from '../../utils/output.js';
6
- import { addEnhancedHelp } from '../../utils/helpText.js';
7
- import { isInteractiveEnvironment } from '../../utils/interactive.js';
8
- const cmd = new Command('reorder')
9
- .description('Reorder product page sections (merchant-level)')
10
- .option('--sections <json>', 'JSON array of {handle, position} objects (required)')
11
- .option('--tab-group <group>', 'Only reorder within this tab group (optional)')
12
- .action(async (options) => {
13
- try {
14
- await reorderSections(options);
15
- }
16
- catch (error) {
17
- handleError(error);
18
- }
19
- });
20
- addEnhancedHelp(cmd, {
21
- examples: [
22
- '# Reorder sections globally',
23
- '$ commerce section reorder --sections \'[{"handle":"highlights","position":1},{"handle":"details","position":2},{"handle":"care","position":3}]\'',
24
- '',
25
- '# Reorder within a tab group',
26
- '$ commerce section reorder --tab-group product-info --sections \'[{"handle":"highlights","position":1},{"handle":"care","position":2}]\'',
27
- ],
28
- output: {
29
- example: JSON.stringify({
30
- success: true,
31
- message: '区块顺序已更新',
32
- }, null, 2),
33
- },
34
- relatedCommands: [
35
- { command: 'section list --resolved', description: 'View current section order' },
36
- { command: 'section update', description: 'Update individual section position' },
37
- ],
38
- notes: [
39
- 'sections must be a valid JSON array',
40
- 'Each item needs: handle (string), position (number)',
41
- 'If a section has no customization, one will be auto-created',
42
- 'Use --tab-group to only reorder sections within a specific tab',
43
- ],
44
- });
45
- export const reorderSectionsCommand = cmd;
46
- async function reorderSections(options) {
47
- const { sections, tabGroup } = options;
48
- // 验证必需参数
49
- if (!sections || sections.trim().length === 0) {
50
- if (!isInteractiveEnvironment()) {
51
- throw new ValidationError('缺少必需参数: --sections (JSON数组)', 'sections');
52
- }
53
- else {
54
- console.log(chalk.yellow('请指定 --sections 参数'));
55
- console.log(chalk.gray('格式: \'[{"handle":"highlights","position":1},{"handle":"details","position":2}]\''));
56
- return;
57
- }
58
- }
59
- // 解析 sections JSON
60
- let parsedSections;
61
- try {
62
- parsedSections = JSON.parse(sections);
63
- }
64
- catch (error) {
65
- throw new ValidationError('--sections 必须是有效的 JSON 数组', 'sections');
66
- }
67
- // 验证 sections 格式
68
- if (!Array.isArray(parsedSections)) {
69
- throw new ValidationError('--sections 必须是数组', 'sections');
70
- }
71
- for (const item of parsedSections) {
72
- if (!item.handle || typeof item.handle !== 'string') {
73
- throw new ValidationError('每个 section 必须有 handle 字段(字符串)', 'sections');
74
- }
75
- if (typeof item.position !== 'number' || item.position < 1) {
76
- throw new ValidationError('每个 section 必须有 position 字段(正整数)', 'sections');
77
- }
78
- }
79
- const spinner = output.spinner('正在更新区块顺序...');
80
- try {
81
- const data = {
82
- sections: parsedSections,
83
- };
84
- if (tabGroup !== undefined) {
85
- data.tab_group = tabGroup || null;
86
- }
87
- await commerceApi.productSections.merchant.reorder(data);
88
- spinner.succeed('区块顺序已更新!');
89
- if (output.isJson()) {
90
- output.success({ sections: parsedSections, tab_group: tabGroup || null }, '区块顺序已更新');
91
- }
92
- else {
93
- console.log();
94
- console.log(chalk.green('✓ 区块顺序已更新!'));
95
- console.log();
96
- if (tabGroup) {
97
- console.log(chalk.gray('Tab分组: ') + chalk.white(tabGroup));
98
- }
99
- console.log(chalk.gray('新顺序:'));
100
- parsedSections.forEach((item) => {
101
- console.log(chalk.gray(` ${item.position}. `) + chalk.cyan(item.handle));
102
- });
103
- console.log();
104
- }
105
- }
106
- catch (error) {
107
- spinner.fail('更新区块顺序失败');
108
- throw createApiError(error);
109
- }
110
- }
111
- //# sourceMappingURL=reorder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reorder.js","sourceRoot":"","sources":["../../../src/commands/section/reorder.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const deleteTranslationCommand: Command;
3
- //# sourceMappingURL=delete.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/commands/section/translation/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6DpC,eAAO,MAAM,wBAAwB,SAAM,CAAC"}
@@ -1,97 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import inquirer from 'inquirer';
4
- import { commerceApi } from '../../../api/rest/commerce.js';
5
- import { handleError, createApiError, ValidationError } from '../../../utils/error.js';
6
- import { output } from '../../../utils/output.js';
7
- import { addEnhancedHelp } from '../../../utils/helpText.js';
8
- import { isInteractiveEnvironment } from '../../../utils/interactive.js';
9
- const cmd = new Command('delete')
10
- .description('Delete translation for a section')
11
- .argument('<handle>', 'Section handle')
12
- .option('--lang <code>', 'Language code to delete (required)')
13
- .option('--product-id <id>', 'Product ID (for product-level translation)')
14
- .option('-y, --yes', 'Skip confirmation prompt')
15
- .action(async (handle, options) => {
16
- try {
17
- await deleteTranslation(handle, options);
18
- }
19
- catch (error) {
20
- handleError(error);
21
- }
22
- });
23
- addEnhancedHelp(cmd, {
24
- examples: [
25
- '# Delete merchant-level Chinese translation',
26
- '$ commerce section translation delete care --lang zh-CN',
27
- '',
28
- '# Delete with confirmation skip',
29
- '$ commerce section translation delete care --lang zh-CN --yes',
30
- '',
31
- '# Delete product-level translation',
32
- '$ commerce section translation delete care --lang ja-JP --product-id prod-123 --yes',
33
- ],
34
- output: {
35
- example: JSON.stringify({
36
- success: true,
37
- message: '翻译已删除',
38
- }, null, 2),
39
- },
40
- relatedCommands: [
41
- { command: 'section translation list', description: 'View translations' },
42
- { command: 'section translation set', description: 'Add translation' },
43
- ],
44
- notes: [
45
- 'Use --yes to skip confirmation in non-interactive environments',
46
- 'Without --product-id: deletes merchant-level translation',
47
- 'With --product-id: deletes product-level translation',
48
- ],
49
- });
50
- export const deleteTranslationCommand = cmd;
51
- async function deleteTranslation(handle, options) {
52
- const { lang, productId, yes } = options;
53
- if (!lang || lang.trim().length === 0) {
54
- throw new ValidationError('缺少必需参数: --lang (语言代码)', 'lang');
55
- }
56
- if (!isInteractiveEnvironment() && !yes) {
57
- throw new ValidationError('非交互模式下需要 --yes 确认删除操作', 'yes');
58
- }
59
- if (isInteractiveEnvironment() && !yes) {
60
- const { confirm } = await inquirer.prompt([
61
- {
62
- type: 'confirm',
63
- name: 'confirm',
64
- message: `确定要删除区块 "${handle}" 的 ${lang} 翻译吗?`,
65
- default: false,
66
- },
67
- ]);
68
- if (!confirm) {
69
- console.log(chalk.yellow('已取消删除操作'));
70
- return;
71
- }
72
- }
73
- const level = productId ? '商品级' : '商户级';
74
- const spinner = output.spinner(`正在删除${level}翻译...`);
75
- try {
76
- if (productId) {
77
- await commerceApi.productSections.product.translations.delete(productId, handle, lang);
78
- }
79
- else {
80
- await commerceApi.productSections.merchant.translations.delete(handle, lang);
81
- }
82
- spinner.succeed('翻译已删除!');
83
- if (output.isJson()) {
84
- output.success({ handle, language_code: lang, product_id: productId || null }, '翻译已删除');
85
- }
86
- else {
87
- console.log();
88
- console.log(chalk.green(`✓ 区块 "${handle}" 的 ${lang} 翻译已删除`));
89
- console.log();
90
- }
91
- }
92
- catch (error) {
93
- spinner.fail('删除翻译失败');
94
- throw createApiError(error);
95
- }
96
- }
97
- //# sourceMappingURL=delete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/commands/section/translation/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAQzE,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC9B,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACtC,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC;KAC7D,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,CAAC;KACzE,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAsB,EAAE,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe,CAAC,GAAG,EAAE;IACnB,QAAQ,EAAE;QACR,6CAA6C;QAC7C,yDAAyD;QACzD,EAAE;QACF,iCAAiC;QACjC,+DAA+D;QAC/D,EAAE;QACF,oCAAoC;QACpC,qFAAqF;KACtF;IACD,MAAM,EAAE;QACN,OAAO,EAAE,IAAI,CAAC,SAAS,CACrB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,OAAO;SACjB,EACD,IAAI,EACJ,CAAC,CACF;KACF;IACD,eAAe,EAAE;QACf,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,mBAAmB,EAAE;QACzE,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,iBAAiB,EAAE;KACvE;IACD,KAAK,EAAE;QACL,gEAAgE;QAChE,0DAA0D;QAC1D,sDAAsD;KACvD;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,OAAsB;IACrE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEzC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,eAAe,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,wBAAwB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACvC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY,MAAM,OAAO,IAAI,OAAO;gBAC7C,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE1B,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,MAAM,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Command } from 'commander';
2
- declare const translationCommand: Command;
3
- export { translationCommand };
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/section/translation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,QAAA,MAAM,kBAAkB,SACwB,CAAC;AAMjD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Command } from 'commander';
2
- import { listTranslationsCommand } from './list.js';
3
- import { setTranslationCommand } from './set.js';
4
- import { deleteTranslationCommand } from './delete.js';
5
- const translationCommand = new Command('translation')
6
- .description('Section translation management');
7
- translationCommand.addCommand(listTranslationsCommand);
8
- translationCommand.addCommand(setTranslationCommand);
9
- translationCommand.addCommand(deleteTranslationCommand);
10
- export { translationCommand };
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/section/translation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KAClD,WAAW,CAAC,gCAAgC,CAAC,CAAC;AAEjD,kBAAkB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AACvD,kBAAkB,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AACrD,kBAAkB,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const listTranslationsCommand: Command;
3
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/section/translation/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkEpC,eAAO,MAAM,uBAAuB,SAAM,CAAC"}
@@ -1,104 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import { commerceApi } from '../../../api/rest/commerce.js';
4
- import { handleError, createApiError } from '../../../utils/error.js';
5
- import { output } from '../../../utils/output.js';
6
- import { addEnhancedHelp } from '../../../utils/helpText.js';
7
- const cmd = new Command('list')
8
- .description('List translations for a section')
9
- .argument('<handle>', 'Section handle')
10
- .option('--product-id <id>', 'Product ID (for product-level translations)')
11
- .action(async (handle, options) => {
12
- try {
13
- await listTranslations(handle, options);
14
- }
15
- catch (error) {
16
- handleError(error);
17
- }
18
- });
19
- addEnhancedHelp(cmd, {
20
- examples: [
21
- '# List merchant-level translations for care section',
22
- '$ commerce section translation list care',
23
- '',
24
- '# List product-level translations',
25
- '$ commerce section translation list care --product-id prod-123',
26
- ],
27
- output: {
28
- example: JSON.stringify({
29
- success: true,
30
- data: {
31
- translations: [
32
- {
33
- language_code: 'en-US',
34
- title: 'Care Instructions',
35
- content: 'Machine washable, cold water.',
36
- },
37
- {
38
- language_code: 'zh-CN',
39
- title: '护理说明',
40
- content: '机洗,冷水。',
41
- },
42
- ],
43
- },
44
- }, null, 2),
45
- },
46
- relatedCommands: [
47
- { command: 'section translation set', description: 'Add or update translation' },
48
- { command: 'section translation delete', description: 'Delete translation' },
49
- { command: 'section list --resolved', description: 'View all sections with translations' },
50
- ],
51
- notes: [
52
- 'Without --product-id: lists merchant-level translations',
53
- 'With --product-id: lists product-level translations',
54
- 'The section must have a customization/override to have translations',
55
- ],
56
- });
57
- export const listTranslationsCommand = cmd;
58
- async function listTranslations(handle, options) {
59
- const { productId } = options;
60
- const level = productId ? '商品级' : '商户级';
61
- const spinner = output.spinner(`正在获取${level}翻译...`);
62
- try {
63
- let translations;
64
- if (productId) {
65
- translations = await commerceApi.productSections.product.translations.list(productId, handle);
66
- }
67
- else {
68
- translations = await commerceApi.productSections.merchant.translations.list(handle);
69
- }
70
- spinner.succeed(`${level}翻译获取成功`);
71
- if (!translations || translations.length === 0) {
72
- if (output.isJson()) {
73
- output.success({ translations: [] }, '暂无翻译');
74
- }
75
- else {
76
- console.log(chalk.yellow(`\n区块 "${handle}" 暂无翻译\n`));
77
- }
78
- return;
79
- }
80
- if (output.isJson()) {
81
- output.success({ translations });
82
- }
83
- else {
84
- console.log();
85
- console.log(chalk.bold(`区块 "${handle}" 的翻译(${level}):\n`));
86
- translations.forEach((trans, index) => {
87
- console.log(chalk.cyan(`${index + 1}. ${trans.language_code}`));
88
- console.log(chalk.gray(` 标题: ${trans.title || '(无)'}`));
89
- if (trans.content) {
90
- const preview = trans.content.length > 80 ? trans.content.substring(0, 80) + '...' : trans.content;
91
- console.log(chalk.gray(` 内容: ${preview}`));
92
- }
93
- console.log();
94
- });
95
- console.log(chalk.gray(`共 ${translations.length} 种语言`));
96
- console.log();
97
- }
98
- }
99
- catch (error) {
100
- spinner.fail('获取翻译失败');
101
- throw createApiError(error);
102
- }
103
- }
104
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/section/translation/list.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const setTranslationCommand: Command;
3
- //# sourceMappingURL=set.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../../src/commands/section/translation/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsEpC,eAAO,MAAM,qBAAqB,SAAM,CAAC"}
@@ -1,151 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import inquirer from 'inquirer';
4
- import { commerceApi } from '../../../api/rest/commerce.js';
5
- import { handleError, createApiError, ValidationError } from '../../../utils/error.js';
6
- import { output } from '../../../utils/output.js';
7
- import { addEnhancedHelp } from '../../../utils/helpText.js';
8
- import { isInteractiveEnvironment } from '../../../utils/interactive.js';
9
- const cmd = new Command('set')
10
- .description('Set (create or update) translation for a section')
11
- .argument('<handle>', 'Section handle')
12
- .option('--lang <code>', 'Language code, e.g. en-US, zh-CN, ja-JP (required)')
13
- .option('--title <title>', 'Translated title (required)')
14
- .option('--content <content>', 'Translated content in Markdown (required)')
15
- .option('--product-id <id>', 'Product ID (for product-level translation)')
16
- .action(async (handle, options) => {
17
- try {
18
- await setTranslation(handle, options);
19
- }
20
- catch (error) {
21
- handleError(error);
22
- }
23
- });
24
- addEnhancedHelp(cmd, {
25
- examples: [
26
- '# Add Chinese translation for merchant-level care section',
27
- '$ commerce section translation set care --lang zh-CN --title "护理说明" --content "机洗,30度冷水。"',
28
- '',
29
- '# Add Japanese translation for product-level section',
30
- '$ commerce section translation set care --product-id prod-123 --lang ja-JP --title "お手入れ方法" --content "洗濯機で洗えます。"',
31
- '',
32
- '# Update existing translation',
33
- '$ commerce section translation set care --lang zh-CN --title "护理说明" --content "更新后的内容"',
34
- ],
35
- output: {
36
- example: JSON.stringify({
37
- success: true,
38
- data: {
39
- language_code: 'zh-CN',
40
- title: '护理说明',
41
- content: '机洗,30度冷水。',
42
- },
43
- message: '翻译设置成功',
44
- }, null, 2),
45
- },
46
- relatedCommands: [
47
- { command: 'section translation list', description: 'View translations' },
48
- { command: 'section translation delete', description: 'Delete translation' },
49
- { command: 'i18n languages', description: 'List supported languages' },
50
- ],
51
- notes: [
52
- 'This creates a new translation or updates an existing one',
53
- 'Supported languages: en-US, zh-CN, zh-HK, zh-TW, vi-VN, es-ES, ja-JP',
54
- 'Without --product-id: sets merchant-level translation',
55
- 'With --product-id: sets product-level translation',
56
- ],
57
- });
58
- export const setTranslationCommand = cmd;
59
- async function setTranslation(handle, options) {
60
- let { lang, title, content, productId } = options;
61
- // 非交互模式验证
62
- if (!isInteractiveEnvironment()) {
63
- if (!lang || lang.trim().length === 0) {
64
- throw new ValidationError('缺少必需参数: --lang (语言代码)', 'lang');
65
- }
66
- if (!title || title.trim().length === 0) {
67
- throw new ValidationError('缺少必需参数: --title (翻译标题)', 'title');
68
- }
69
- if (!content || content.trim().length === 0) {
70
- throw new ValidationError('缺少必需参数: --content (翻译内容)', 'content');
71
- }
72
- }
73
- else {
74
- // 交互模式
75
- const answers = await inquirer.prompt([
76
- {
77
- type: 'list',
78
- name: 'lang',
79
- message: '语言:',
80
- choices: [
81
- { name: 'English (US)', value: 'en-US' },
82
- { name: '简体中文', value: 'zh-CN' },
83
- { name: '繁體中文 (香港)', value: 'zh-HK' },
84
- { name: '繁體中文 (台灣)', value: 'zh-TW' },
85
- { name: 'Tiếng Việt', value: 'vi-VN' },
86
- { name: 'Español', value: 'es-ES' },
87
- { name: '日本語', value: 'ja-JP' },
88
- ],
89
- when: !lang,
90
- },
91
- {
92
- type: 'input',
93
- name: 'title',
94
- message: '翻译标题:',
95
- when: !title,
96
- validate: (input) => (input.trim().length > 0 ? true : '标题不能为空'),
97
- },
98
- {
99
- type: 'editor',
100
- name: 'content',
101
- message: '翻译内容 (Markdown):',
102
- when: !content,
103
- },
104
- ]);
105
- lang = lang || answers.lang;
106
- title = title || answers.title;
107
- content = content || answers.content;
108
- }
109
- const level = productId ? '商品级' : '商户级';
110
- const spinner = output.spinner(`正在设置${level}翻译...`);
111
- try {
112
- let result;
113
- if (productId) {
114
- result = await commerceApi.productSections.product.translations.set(productId, handle, lang, {
115
- title: title,
116
- content: content,
117
- });
118
- }
119
- else {
120
- result = await commerceApi.productSections.merchant.translations.set(handle, lang, {
121
- title: title,
122
- content: content,
123
- });
124
- }
125
- spinner.succeed('翻译设置成功!');
126
- if (output.isJson()) {
127
- output.success(result, '翻译设置成功');
128
- }
129
- else {
130
- console.log();
131
- console.log(chalk.green('✓ 翻译设置成功!'));
132
- console.log();
133
- console.log(chalk.gray('区块: ') + chalk.cyan(handle));
134
- console.log(chalk.gray('语言: ') + chalk.white(result.language_code));
135
- console.log(chalk.gray('标题: ') + chalk.white(result.title));
136
- if (result.content) {
137
- const preview = result.content.length > 100 ? result.content.substring(0, 100) + '...' : result.content;
138
- console.log(chalk.gray('内容: ') + chalk.white(preview));
139
- }
140
- if (productId) {
141
- console.log(chalk.gray('商品ID: ') + chalk.white(productId));
142
- }
143
- console.log();
144
- }
145
- }
146
- catch (error) {
147
- spinner.fail('设置翻译失败');
148
- throw createApiError(error);
149
- }
150
- }
151
- //# sourceMappingURL=set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../src/commands/section/translation/set.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const updateSectionCommand: Command;
3
- //# sourceMappingURL=update.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/section/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiFpC,eAAO,MAAM,oBAAoB,SAAM,CAAC"}