@optima-chat/commerce-cli 1.12.7 → 1.12.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/easyship/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,eAAe,SAQQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/easyship/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,eAAe,SAOQ,CAAC"}
@@ -4,7 +4,6 @@ import { trackCommand } from './track.js';
4
4
  import { validateAddressCommand } from './validate-address.js';
5
5
  import { couriersCommand } from './couriers.js';
6
6
  import { getOriginCommand } from './get-origin.js';
7
- import { updateOriginCommand } from './update-origin.js';
8
7
  import { validateOriginCommand } from './validate-origin.js';
9
8
  export const easyshipCommand = new Command('easyship')
10
9
  .description('Easyship integration for international shipping')
@@ -13,6 +12,5 @@ export const easyshipCommand = new Command('easyship')
13
12
  .addCommand(validateAddressCommand)
14
13
  .addCommand(couriersCommand)
15
14
  .addCommand(getOriginCommand)
16
- .addCommand(updateOriginCommand)
17
15
  .addCommand(validateOriginCommand);
18
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/easyship/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACnD,WAAW,CAAC,iDAAiD,CAAC;KAC9D,UAAU,CAAC,qBAAqB,CAAC;KACjC,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,sBAAsB,CAAC;KAClC,UAAU,CAAC,eAAe,CAAC;KAC3B,UAAU,CAAC,gBAAgB,CAAC;KAC5B,UAAU,CAAC,mBAAmB,CAAC;KAC/B,UAAU,CAAC,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/easyship/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACnD,WAAW,CAAC,iDAAiD,CAAC;KAC9D,UAAU,CAAC,qBAAqB,CAAC;KACjC,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,sBAAsB,CAAC;KAClC,UAAU,CAAC,eAAe,CAAC;KAC3B,UAAU,CAAC,gBAAgB,CAAC;KAC5B,UAAU,CAAC,qBAAqB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optima-chat/commerce-cli",
3
- "version": "1.12.7",
3
+ "version": "1.12.8",
4
4
  "description": "用自然语言管理电商店铺 - 专为 Claude Code 设计的对话式 CLI 工具,支持多环境和功能测试",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const updateOriginCommand: Command;
3
- //# sourceMappingURL=update-origin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-origin.d.ts","sourceRoot":"","sources":["../../../src/commands/easyship/update-origin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiFpC,eAAO,MAAM,mBAAmB,SAAM,CAAC"}
@@ -1,228 +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('update-origin')
10
- .description('Update Easyship origin address')
11
- .option('--line1 <string>', 'Address line 1 (required)')
12
- .option('--line2 <string>', 'Address line 2')
13
- .option('--city <string>', 'City (required)')
14
- .option('--state <string>', 'State/Province')
15
- .option('--postal-code <string>', 'Postal code (required)')
16
- .option('--country <code>', 'Country code (ISO 3166-1 alpha-2, required)')
17
- .option('--contact-name <string>', 'Contact name')
18
- .option('--contact-phone <string>', 'Contact phone')
19
- .option('--contact-email <string>', 'Contact email')
20
- .action(async (options) => {
21
- try {
22
- await updateOrigin(options);
23
- }
24
- catch (error) {
25
- handleError(error);
26
- }
27
- });
28
- addEnhancedHelp(cmd, {
29
- examples: [
30
- '# Update origin address (minimum required fields)',
31
- '$ commerce easyship update-origin \\',
32
- ' --line1 "123 Warehouse St" --city "Los Angeles" \\',
33
- ' --postal-code "90001" --country US',
34
- '',
35
- '# Update with full details',
36
- '$ commerce easyship update-origin \\',
37
- ' --line1 "456 Shipping Blvd" --line2 "Unit 10" \\',
38
- ' --city "San Francisco" --state "CA" \\',
39
- ' --postal-code "94102" --country US \\',
40
- ' --contact-name "Shipping Dept" \\',
41
- ' --contact-phone "+14155551234" \\',
42
- ' --contact-email "shipping@example.com"',
43
- ],
44
- output: {
45
- example: JSON.stringify({
46
- success: true,
47
- data: {
48
- line_1: '123 Warehouse St',
49
- city: 'Los Angeles',
50
- postal_code: '90001',
51
- country_alpha2: 'US',
52
- },
53
- message: 'Origin address updated',
54
- }, null, 2),
55
- },
56
- relatedCommands: [
57
- { command: 'easyship get-origin', description: 'View current origin address' },
58
- { command: 'easyship validate-address', description: 'Validate an address' },
59
- { command: 'easyship get-mode', description: 'View shipping mode' },
60
- ],
61
- notes: [
62
- 'Origin address is where shipments are sent from',
63
- 'Required fields: line1, city, postal-code, country',
64
- 'Country code must be ISO 3166-1 alpha-2 (e.g., US, GB, CN)',
65
- 'Contact info is recommended for shipping labels',
66
- ],
67
- });
68
- export const updateOriginCommand = cmd;
69
- async function updateOrigin(options) {
70
- let line1 = options.line1;
71
- let city = options.city;
72
- let postalCode = options.postalCode;
73
- let country = options.country;
74
- // Interactive mode if required fields are missing
75
- if (isInteractiveEnvironment() && (!line1 || !city || !postalCode || !country)) {
76
- console.log(chalk.cyan('\n📍 更新 Easyship 发货地址\n'));
77
- // Try to fetch current origin for defaults
78
- let currentOrigin = {};
79
- try {
80
- currentOrigin = await commerceApi.easyship.getOrigin() || {};
81
- }
82
- catch {
83
- // Ignore error
84
- }
85
- const answers = await inquirer.prompt([
86
- {
87
- type: 'input',
88
- name: 'line1',
89
- message: '地址行 1:',
90
- default: options.line1 || currentOrigin.line_1 || '',
91
- validate: (input) => input.trim() ? true : '地址行 1 不能为空',
92
- },
93
- {
94
- type: 'input',
95
- name: 'line2',
96
- message: '地址行 2 (可选):',
97
- default: options.line2 || currentOrigin.line_2 || '',
98
- },
99
- {
100
- type: 'input',
101
- name: 'city',
102
- message: '城市:',
103
- default: options.city || currentOrigin.city || '',
104
- validate: (input) => input.trim() ? true : '城市不能为空',
105
- },
106
- {
107
- type: 'input',
108
- name: 'state',
109
- message: '州/省 (可选):',
110
- default: options.state || currentOrigin.state || '',
111
- },
112
- {
113
- type: 'input',
114
- name: 'postalCode',
115
- message: '邮政编码:',
116
- default: options.postalCode || currentOrigin.postal_code || '',
117
- validate: (input) => input.trim() ? true : '邮政编码不能为空',
118
- },
119
- {
120
- type: 'input',
121
- name: 'country',
122
- message: '国家代码 (如 US, CN):',
123
- default: options.country || currentOrigin.country_alpha2 || '',
124
- validate: (input) => {
125
- if (!input.trim())
126
- return '国家代码不能为空';
127
- if (input.trim().length !== 2)
128
- return '请输入 2 位国家代码';
129
- return true;
130
- },
131
- },
132
- {
133
- type: 'input',
134
- name: 'contactName',
135
- message: '联系人姓名 (可选):',
136
- default: options.contactName || currentOrigin.contact_name || '',
137
- },
138
- {
139
- type: 'input',
140
- name: 'contactPhone',
141
- message: '联系电话 (可选):',
142
- default: options.contactPhone || currentOrigin.contact_phone || '',
143
- },
144
- {
145
- type: 'input',
146
- name: 'contactEmail',
147
- message: '联系邮箱 (可选):',
148
- default: options.contactEmail || currentOrigin.contact_email || '',
149
- },
150
- ]);
151
- line1 = answers.line1;
152
- city = answers.city;
153
- postalCode = answers.postalCode;
154
- country = answers.country;
155
- options.line2 = answers.line2 || options.line2;
156
- options.state = answers.state || options.state;
157
- options.contactName = answers.contactName || options.contactName;
158
- options.contactPhone = answers.contactPhone || options.contactPhone;
159
- options.contactEmail = answers.contactEmail || options.contactEmail;
160
- }
161
- // Validate required fields (non-interactive mode)
162
- if (!line1) {
163
- throw new ValidationError('Address line 1 is required (--line1)', 'line1');
164
- }
165
- if (!city) {
166
- throw new ValidationError('City is required (--city)', 'city');
167
- }
168
- if (!postalCode) {
169
- throw new ValidationError('Postal code is required (--postal-code)', 'postal-code');
170
- }
171
- if (!country) {
172
- throw new ValidationError('Country code is required (--country)', 'country');
173
- }
174
- const spinner = output.spinner('Updating origin address...');
175
- try {
176
- const data = {
177
- line_1: line1,
178
- city: city,
179
- postal_code: postalCode,
180
- country_alpha2: country.toUpperCase(),
181
- };
182
- if (options.line2)
183
- data.line_2 = options.line2;
184
- if (options.state)
185
- data.state = options.state;
186
- if (options.contactName)
187
- data.contact_name = options.contactName;
188
- if (options.contactPhone)
189
- data.contact_phone = options.contactPhone;
190
- if (options.contactEmail)
191
- data.contact_email = options.contactEmail;
192
- const result = await commerceApi.easyship.updateOrigin(data);
193
- spinner.succeed('Origin address updated');
194
- if (output.isJson()) {
195
- output.success(result, 'Origin address updated');
196
- }
197
- else {
198
- console.log();
199
- console.log(chalk.green('✓ 发货地址已更新'));
200
- console.log();
201
- console.log(chalk.white(line1));
202
- if (options.line2) {
203
- console.log(chalk.white(options.line2));
204
- }
205
- console.log(chalk.white([city, options.state, postalCode].filter(Boolean).join(', ')));
206
- console.log(chalk.white(country.toUpperCase()));
207
- if (options.contactName || options.contactPhone || options.contactEmail) {
208
- console.log();
209
- console.log(chalk.gray('联系信息:'));
210
- if (options.contactName) {
211
- console.log(chalk.gray(' 姓名: ') + chalk.white(options.contactName));
212
- }
213
- if (options.contactPhone) {
214
- console.log(chalk.gray(' 电话: ') + chalk.white(options.contactPhone));
215
- }
216
- if (options.contactEmail) {
217
- console.log(chalk.gray(' 邮箱: ') + chalk.white(options.contactEmail));
218
- }
219
- }
220
- console.log();
221
- }
222
- }
223
- catch (error) {
224
- spinner.fail('Failed to update origin address');
225
- throw createApiError(error);
226
- }
227
- }
228
- //# sourceMappingURL=update-origin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-origin.js","sourceRoot":"","sources":["../../../src/commands/easyship/update-origin.ts"],"names":[],"mappings":"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"}