cbs-4px-merchant-cli 0.0.1

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 (76) hide show
  1. package/README.4px.md +90 -0
  2. package/README.cainiao.md +90 -0
  3. package/README.md +90 -0
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.js +247 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/auth.d.ts +3 -0
  8. package/dist/commands/auth.js +39 -0
  9. package/dist/commands/auth.js.map +1 -0
  10. package/dist/commands/claim.d.ts +10 -0
  11. package/dist/commands/claim.js +69 -0
  12. package/dist/commands/claim.js.map +1 -0
  13. package/dist/commands/config.d.ts +3 -0
  14. package/dist/commands/config.js +129 -0
  15. package/dist/commands/config.js.map +1 -0
  16. package/dist/commands/error-handler.d.ts +5 -0
  17. package/dist/commands/error-handler.js +57 -0
  18. package/dist/commands/error-handler.js.map +1 -0
  19. package/dist/commands/label.d.ts +2 -0
  20. package/dist/commands/label.js +54 -0
  21. package/dist/commands/label.js.map +1 -0
  22. package/dist/commands/order.d.ts +2 -0
  23. package/dist/commands/order.js +91 -0
  24. package/dist/commands/order.js.map +1 -0
  25. package/dist/commands/product.d.ts +10 -0
  26. package/dist/commands/product.js +74 -0
  27. package/dist/commands/product.js.map +1 -0
  28. package/dist/commands/track.d.ts +2 -0
  29. package/dist/commands/track.js +54 -0
  30. package/dist/commands/track.js.map +1 -0
  31. package/dist/commands/update.d.ts +27 -0
  32. package/dist/commands/update.js +304 -0
  33. package/dist/commands/update.js.map +1 -0
  34. package/dist/errors.d.ts +31 -0
  35. package/dist/errors.js +58 -0
  36. package/dist/errors.js.map +1 -0
  37. package/dist/generated/site.d.ts +7 -0
  38. package/dist/generated/site.js +9 -0
  39. package/dist/generated/site.js.map +1 -0
  40. package/dist/index.d.ts +2 -0
  41. package/dist/index.js +5 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/services/api-client.d.ts +20 -0
  44. package/dist/services/api-client.js +141 -0
  45. package/dist/services/api-client.js.map +1 -0
  46. package/dist/services/config-manager.d.ts +10 -0
  47. package/dist/services/config-manager.js +49 -0
  48. package/dist/services/config-manager.js.map +1 -0
  49. package/dist/services/install-detector.d.ts +17 -0
  50. package/dist/services/install-detector.js +54 -0
  51. package/dist/services/install-detector.js.map +1 -0
  52. package/dist/services/update-checker.d.ts +56 -0
  53. package/dist/services/update-checker.js +242 -0
  54. package/dist/services/update-checker.js.map +1 -0
  55. package/dist/types/index.d.ts +153 -0
  56. package/dist/types/index.js +3 -0
  57. package/dist/types/index.js.map +1 -0
  58. package/dist/utils/logger.d.ts +15 -0
  59. package/dist/utils/logger.js +47 -0
  60. package/dist/utils/logger.js.map +1 -0
  61. package/dist/utils/output.d.ts +13 -0
  62. package/dist/utils/output.js +19 -0
  63. package/dist/utils/output.js.map +1 -0
  64. package/package.json +54 -0
  65. package/scripts/postinstall.js +184 -0
  66. package/site-meta.json +9 -0
  67. package/skill/SKILL.md +167 -0
  68. package/skill/reference/auth.md +62 -0
  69. package/skill/reference/claim.md +66 -0
  70. package/skill/reference/config.md +71 -0
  71. package/skill/reference/index.md +51 -0
  72. package/skill/reference/label.md +51 -0
  73. package/skill/reference/order.md +68 -0
  74. package/skill/reference/product.md +70 -0
  75. package/skill/reference/track.md +57 -0
  76. package/skill/reference/update.md +102 -0
package/README.4px.md ADDED
@@ -0,0 +1,90 @@
1
+ # cbs-4px-merchant-cli
2
+
3
+ > 跨境物流商家命令行工具(4PX 站点),支持物流轨迹查询、面单获取、订单详情查询、产品推荐、理赔查询。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install -g cbs-4px-merchant-cli
9
+ ```
10
+
11
+ 安装后命令名为 **`fmc`**。
12
+
13
+ ## 快速开始
14
+
15
+ ```bash
16
+ # 1. 获取 API Key
17
+ # https://b.4px.com/site/ak-manage
18
+
19
+ # 2. 配置认证
20
+ fmc auth login --api-key SK_xxxxx
21
+
22
+ # 3. 查询物流轨迹
23
+ fmc track get 4PX3000002316090CN
24
+
25
+ # 4. 查看订单详情
26
+ fmc order get 4PX3000002316090CN
27
+
28
+ # 5. 产品推荐
29
+ fmc product recommend --country US
30
+
31
+ # 6. 查询理赔
32
+ fmc claim list --biz-no 4PX3000002316090CN
33
+ ```
34
+
35
+ ## 命令列表
36
+
37
+ | 命令 | 说明 |
38
+ |------|------|
39
+ | `fmc auth login --api-key <key>` | 配置 API Key |
40
+ | `fmc auth status` | 查看当前认证状态 |
41
+ | `fmc config set <key> <value>` | 设置配置项 |
42
+ | `fmc config list` | 查看当前配置 |
43
+ | `fmc track get <orderNo>` | 查询物流轨迹 |
44
+ | `fmc label get <orderNo>` | 获取面单打印信息(PDF 链接) |
45
+ | `fmc order get <orderNo>` | 获取订单详情 |
46
+ | `fmc product recommend --country <code>` | 产品推荐(按目的国查询) |
47
+ | `fmc claim list` | 查询理赔列表 |
48
+ | `fmc update` | 更新到最新版本 |
49
+ | `fmc update --check` | 检查是否有新版本 |
50
+
51
+ ## 全局选项
52
+
53
+ | 选项 | 说明 |
54
+ |------|------|
55
+ | `--output <format>` | 输出格式:`text`(默认)/ `json` |
56
+ | `--verbose` | 打印请求详情 |
57
+ | `--dry-run` | 仅打印请求信息,不实际发送 |
58
+ | `--version` | 打印版本号 |
59
+ | `--help` | 查看帮助 |
60
+
61
+ ## 认证
62
+
63
+ ```bash
64
+ # 方式一:通过命令配置(持久化到 ~/.bportal/config.json)
65
+ fmc auth login --api-key SK_xxxxx
66
+
67
+ # 方式二:通过环境变量
68
+ export BPORTAL_API_KEY=SK_xxxxx
69
+ ```
70
+
71
+ 获取 API Key:https://b.4px.com/site/ak-manage
72
+
73
+ ## AI Agent 集成
74
+
75
+ 安装后会自动注册 Skill 到本地 AI 编程工具(Claude Code / Cursor / Qoder 等),Agent 可直接调用 `fmc` 命令完成物流查询任务。
76
+
77
+ 支持 JSON 输出模式,方便程序化调用:
78
+
79
+ ```bash
80
+ fmc track get FPX12345678 --output json
81
+ ```
82
+
83
+ ## 环境要求
84
+
85
+ - Node.js >= 18.0.0
86
+ - npm >= 8
87
+
88
+ ## License
89
+
90
+ MIT
@@ -0,0 +1,90 @@
1
+ # cbs-cainiao-merchant-cli
2
+
3
+ > 跨境物流商家命令行工具(菜鸟站点),支持物流轨迹查询、面单获取、订单详情查询、产品推荐、理赔查询。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install -g cbs-cainiao-merchant-cli
9
+ ```
10
+
11
+ 安装后命令名为 **`cmc`**。
12
+
13
+ ## 快速开始
14
+
15
+ ```bash
16
+ # 1. 获取 API Key
17
+ # https://cainiao.4px.com/site/ak-manage
18
+
19
+ # 2. 配置认证
20
+ cmc auth login --api-key SK_xxxxx
21
+
22
+ # 3. 查询物流轨迹
23
+ cmc track get 4PX3000002316090CN
24
+
25
+ # 4. 查看订单详情
26
+ cmc order get 4PX3000002316090CN
27
+
28
+ # 5. 产品推荐
29
+ cmc product recommend --country US
30
+
31
+ # 6. 查询理赔
32
+ cmc claim list --biz-no 4PX3000002316090CN
33
+ ```
34
+
35
+ ## 命令列表
36
+
37
+ | 命令 | 说明 |
38
+ |------|------|
39
+ | `cmc auth login --api-key <key>` | 配置 API Key |
40
+ | `cmc auth status` | 查看当前认证状态 |
41
+ | `cmc config set <key> <value>` | 设置配置项 |
42
+ | `cmc config list` | 查看当前配置 |
43
+ | `cmc track get <orderNo>` | 查询物流轨迹 |
44
+ | `cmc label get <orderNo>` | 获取面单打印信息(PDF 链接) |
45
+ | `cmc order get <orderNo>` | 获取订单详情 |
46
+ | `cmc product recommend --country <code>` | 产品推荐(按目的国查询) |
47
+ | `cmc claim list` | 查询理赔列表 |
48
+ | `cmc update` | 更新到最新版本 |
49
+ | `cmc update --check` | 检查是否有新版本 |
50
+
51
+ ## 全局选项
52
+
53
+ | 选项 | 说明 |
54
+ |------|------|
55
+ | `--output <format>` | 输出格式:`text`(默认)/ `json` |
56
+ | `--verbose` | 打印请求详情 |
57
+ | `--dry-run` | 仅打印请求信息,不实际发送 |
58
+ | `--version` | 打印版本号 |
59
+ | `--help` | 查看帮助 |
60
+
61
+ ## 认证
62
+
63
+ ```bash
64
+ # 方式一:通过命令配置(持久化到 ~/.bportal/config.json)
65
+ cmc auth login --api-key SK_xxxxx
66
+
67
+ # 方式二:通过环境变量
68
+ export BPORTAL_API_KEY=SK_xxxxx
69
+ ```
70
+
71
+ 获取 API Key:https://cainiao.4px.com/site/ak-manage
72
+
73
+ ## AI Agent 集成
74
+
75
+ 安装后会自动注册 Skill 到本地 AI 编程工具(Claude Code / Cursor / Qoder 等),Agent 可直接调用 `cmc` 命令完成物流查询任务。
76
+
77
+ 支持 JSON 输出模式,方便程序化调用:
78
+
79
+ ```bash
80
+ cmc track get FPX12345678 --output json
81
+ ```
82
+
83
+ ## 环境要求
84
+
85
+ - Node.js >= 18.0.0
86
+ - npm >= 8
87
+
88
+ ## License
89
+
90
+ MIT
package/README.md ADDED
@@ -0,0 +1,90 @@
1
+ # cbs-4px-merchant-cli
2
+
3
+ > 跨境物流商家命令行工具(4PX 站点),支持物流轨迹查询、面单获取、订单详情查询、产品推荐、理赔查询。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install -g cbs-4px-merchant-cli
9
+ ```
10
+
11
+ 安装后命令名为 **`fmc`**。
12
+
13
+ ## 快速开始
14
+
15
+ ```bash
16
+ # 1. 获取 API Key
17
+ # https://b.4px.com/site/ak-manage
18
+
19
+ # 2. 配置认证
20
+ fmc auth login --api-key SK_xxxxx
21
+
22
+ # 3. 查询物流轨迹
23
+ fmc track get 4PX3000002316090CN
24
+
25
+ # 4. 查看订单详情
26
+ fmc order get 4PX3000002316090CN
27
+
28
+ # 5. 产品推荐
29
+ fmc product recommend --country US
30
+
31
+ # 6. 查询理赔
32
+ fmc claim list --biz-no 4PX3000002316090CN
33
+ ```
34
+
35
+ ## 命令列表
36
+
37
+ | 命令 | 说明 |
38
+ |------|------|
39
+ | `fmc auth login --api-key <key>` | 配置 API Key |
40
+ | `fmc auth status` | 查看当前认证状态 |
41
+ | `fmc config set <key> <value>` | 设置配置项 |
42
+ | `fmc config list` | 查看当前配置 |
43
+ | `fmc track get <orderNo>` | 查询物流轨迹 |
44
+ | `fmc label get <orderNo>` | 获取面单打印信息(PDF 链接) |
45
+ | `fmc order get <orderNo>` | 获取订单详情 |
46
+ | `fmc product recommend --country <code>` | 产品推荐(按目的国查询) |
47
+ | `fmc claim list` | 查询理赔列表 |
48
+ | `fmc update` | 更新到最新版本 |
49
+ | `fmc update --check` | 检查是否有新版本 |
50
+
51
+ ## 全局选项
52
+
53
+ | 选项 | 说明 |
54
+ |------|------|
55
+ | `--output <format>` | 输出格式:`text`(默认)/ `json` |
56
+ | `--verbose` | 打印请求详情 |
57
+ | `--dry-run` | 仅打印请求信息,不实际发送 |
58
+ | `--version` | 打印版本号 |
59
+ | `--help` | 查看帮助 |
60
+
61
+ ## 认证
62
+
63
+ ```bash
64
+ # 方式一:通过命令配置(持久化到 ~/.bportal/config.json)
65
+ fmc auth login --api-key SK_xxxxx
66
+
67
+ # 方式二:通过环境变量
68
+ export BPORTAL_API_KEY=SK_xxxxx
69
+ ```
70
+
71
+ 获取 API Key:https://b.4px.com/site/ak-manage
72
+
73
+ ## AI Agent 集成
74
+
75
+ 安装后会自动注册 Skill 到本地 AI 编程工具(Claude Code / Cursor / Qoder 等),Agent 可直接调用 `fmc` 命令完成物流查询任务。
76
+
77
+ 支持 JSON 输出模式,方便程序化调用:
78
+
79
+ ```bash
80
+ fmc track get FPX12345678 --output json
81
+ ```
82
+
83
+ ## 环境要求
84
+
85
+ - Node.js >= 18.0.0
86
+ - npm >= 8
87
+
88
+ ## License
89
+
90
+ MIT
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function buildProgram(): Command;
package/dist/cli.js ADDED
@@ -0,0 +1,247 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { createRequire } from 'module';
4
+ import { existsSync, readFileSync } from 'fs';
5
+ import { join } from 'path';
6
+ import { homedir } from 'os';
7
+ import { authLogin, authStatus } from './commands/auth.js';
8
+ import { configSet, configList, configExportSchema } from './commands/config.js';
9
+ import { trackCommand } from './commands/track.js';
10
+ import { labelCommand } from './commands/label.js';
11
+ import { orderCommand } from './commands/order.js';
12
+ import { productCommand } from './commands/product.js';
13
+ import { claimCommand } from './commands/claim.js';
14
+ import { buildUpdateCommand } from './commands/update.js';
15
+ import { checkCachedSync, refreshCache } from './services/update-checker.js';
16
+ import { PACKAGE_NAME, BIN_NAME } from './generated/site.js';
17
+ const require = createRequire(import.meta.url);
18
+ const { version: VERSION } = require('../package.json');
19
+ /** Skill install dir name derived from package name (e.g. cbs-4px-merchant-cli). */
20
+ const SKILL_DIR_NAME = PACKAGE_NAME.replace(/^@[^/]+\//, '');
21
+ /** AI tool directories where skills may be installed. */
22
+ const SKILL_TARGET_DIRS = [
23
+ '.qoder', '.claude', '.cline', '.qwen', '.cursor',
24
+ '.qoderwork', '.codex', '.kilo', '.openclaw',
25
+ ];
26
+ /**
27
+ * Emit a structured _notice.update banner to stderr when the local cache
28
+ * indicates a newer CLI version is available. Zero network I/O — relies on
29
+ * the background refresh seeded by `refreshCache()`.
30
+ * Suppressed in CI / non-TTY / when BPORTAL_NO_UPDATE_NOTIFIER is set.
31
+ */
32
+ function checkUpdateAvailable() {
33
+ if (process.env['BPORTAL_NO_UPDATE_NOTIFIER'])
34
+ return;
35
+ if (process.env['CI'])
36
+ return;
37
+ if (!process.stderr.isTTY)
38
+ return;
39
+ const newer = checkCachedSync(VERSION);
40
+ if (!newer)
41
+ return;
42
+ const notice = {
43
+ _notice: {
44
+ type: 'update',
45
+ package: PACKAGE_NAME,
46
+ current: VERSION,
47
+ latest: newer,
48
+ hint: `Run: ${BIN_NAME} update to upgrade`,
49
+ },
50
+ };
51
+ process.stderr.write(JSON.stringify(notice) + '\n');
52
+ }
53
+ /**
54
+ * Check if installed skill version matches current CLI version.
55
+ * Outputs structured _notice.skills to stderr when drift is detected.
56
+ * Never blocks execution — purely informational for AI Agents.
57
+ */
58
+ function checkSkillDrift() {
59
+ const home = homedir();
60
+ let installedVersion = null;
61
+ for (const dir of SKILL_TARGET_DIRS) {
62
+ const versionFile = join(home, dir, 'skills', SKILL_DIR_NAME, '.skill-version');
63
+ if (existsSync(versionFile)) {
64
+ try {
65
+ installedVersion = readFileSync(versionFile, 'utf-8').trim();
66
+ break;
67
+ }
68
+ catch { /* ignore unreadable files */ }
69
+ }
70
+ }
71
+ // Cold start: skill never installed — not an error
72
+ if (installedVersion === null)
73
+ return;
74
+ if (installedVersion !== VERSION) {
75
+ const notice = {
76
+ _notice: {
77
+ type: 'skills',
78
+ current: installedVersion,
79
+ expected: VERSION,
80
+ hint: `Run: ${BIN_NAME} skill install to sync skills with CLI v${VERSION}`,
81
+ },
82
+ };
83
+ process.stderr.write(JSON.stringify(notice) + '\n');
84
+ }
85
+ }
86
+ function printBanner() {
87
+ const c = chalk.bold.hex('#5B9BD5');
88
+ const d = chalk.hex('#4A82B0');
89
+ const banner = [
90
+ '',
91
+ ` ${c('██████╗ ██████╗ ██████╗')}`,
92
+ ` ${c('██╔═══╝ ██╔══██╗ ██╔═══╝')}`,
93
+ ` ${c('██║ ██████╔╝ ╚████╗')}`,
94
+ ` ${c('██║ ██╔══██╗ ╚══██║')}`,
95
+ ` ${c('╚█████╗ ██████╔╝ █████╔╝')}`,
96
+ ` ${c('╚═════╝ ╚═════╝ ╚════╝')}`,
97
+ ` ${d('- - - - - - - - - - - - - - - - -')}`,
98
+ ` ${chalk.bold.white('🌏 跨境物流 · 商家 CLI')} ${chalk.dim(`v${VERSION}`)}`,
99
+ ` ${chalk.gray('Cross-Border Supply Chain')}`,
100
+ ` ${chalk.dim('📦 轨迹查询 · 面单获取 · 订单管理 ...')}`,
101
+ '',
102
+ ];
103
+ // Banner goes to stderr — stdout is reserved for JSON data only
104
+ process.stderr.write(banner.join('\n') + '\n');
105
+ }
106
+ /** Extract global options from the root program for sub-commands at any depth. */
107
+ function globals(cmd) {
108
+ let root = cmd;
109
+ while (root.parent) {
110
+ root = root.parent;
111
+ }
112
+ const rootOpts = root.opts();
113
+ return {
114
+ output: rootOpts.output,
115
+ verbose: rootOpts.verbose,
116
+ dryRun: rootOpts.dryRun,
117
+ };
118
+ }
119
+ export function buildProgram() {
120
+ const program = new Command();
121
+ program
122
+ .name(BIN_NAME)
123
+ .description('Cbs Merchant CLI - 商家 CLI 工具')
124
+ .version(VERSION, '-v, --version')
125
+ .option('--output <format>', '输出格式: text | json(TTY 默认 text,管道默认 json)')
126
+ .option('--verbose', '打印请求详情(URL、Headers、状态码)')
127
+ .option('--dry-run', '仅打印请求信息,不实际发送')
128
+ .addHelpText('beforeAll', '')
129
+ .hook('preAction', (thisCmd, actionCmd) => {
130
+ checkSkillDrift();
131
+ // Skip the passive update banner when the user explicitly invokes
132
+ // `mc update ...` — the command itself owns its output.
133
+ if (actionCmd.parent?.name() !== 'update' && actionCmd.name() !== 'update') {
134
+ checkUpdateAvailable();
135
+ }
136
+ // Fire-and-forget background refresh; never blocks the command.
137
+ refreshCache(VERSION);
138
+ })
139
+ .configureOutput({
140
+ outputError: (str, write) => write(str),
141
+ });
142
+ // Print banner when running with --help or no arguments
143
+ const originalHelp = program.helpInformation.bind(program);
144
+ program.helpInformation = function () {
145
+ printBanner();
146
+ return originalHelp();
147
+ };
148
+ // mc auth login / mc auth status
149
+ const auth = new Command('auth').description('认证管理');
150
+ auth
151
+ .command('login')
152
+ .description('配置 API Key')
153
+ .requiredOption('--api-key <key>', 'API Key(格式:SK_xxx)')
154
+ .action(async (opts) => {
155
+ await authLogin(opts.apiKey);
156
+ });
157
+ auth
158
+ .command('status')
159
+ .description('查看当前认证状态')
160
+ .action(async (_opts, cmd) => {
161
+ await authStatus(globals(cmd));
162
+ });
163
+ program.addCommand(auth);
164
+ // mc config set / mc config list / mc config export-schema
165
+ const config = new Command('config').description('配置管理');
166
+ config
167
+ .command('set <key> <value>')
168
+ .description('设置配置项(key: baseUrl | apiKey)')
169
+ .action(async (key, value) => {
170
+ await configSet(key, value);
171
+ });
172
+ config
173
+ .command('list')
174
+ .description('查看当前配置')
175
+ .action(async () => {
176
+ await configList();
177
+ });
178
+ config
179
+ .command('export-schema')
180
+ .description('导出命令的 JSON tool schema(供 AI Agent 使用)')
181
+ .option('--command <name>', '仅导出指定命令的 schema')
182
+ .action((opts) => {
183
+ configExportSchema(opts.command);
184
+ });
185
+ program.addCommand(config);
186
+ // mc track get <orderNo>
187
+ const track = new Command('track').description('物流轨迹');
188
+ track
189
+ .command('get <orderNo>')
190
+ .description('查询物流轨迹')
191
+ .action(async (orderNo, _opts, cmd) => {
192
+ await trackCommand(orderNo, globals(cmd));
193
+ });
194
+ program.addCommand(track);
195
+ // mc label get <orderNo>
196
+ const label = new Command('label').description('面单管理');
197
+ label
198
+ .command('get <orderNo>')
199
+ .description('获取面单打印信息(PDF 链接)')
200
+ .action(async (orderNo, _opts, cmd) => {
201
+ await labelCommand(orderNo, globals(cmd));
202
+ });
203
+ program.addCommand(label);
204
+ // mc order get <orderNo>
205
+ const order = new Command('order').description('订单管理');
206
+ order
207
+ .command('get <orderNo>')
208
+ .description('获取订单详情')
209
+ .action(async (orderNo, _opts, cmd) => {
210
+ await orderCommand(orderNo, globals(cmd));
211
+ });
212
+ program.addCommand(order);
213
+ // mc product recommend --country <code> [--start-city] [--weight] ...
214
+ const product = new Command('product').description('产品推荐');
215
+ product
216
+ .command('recommend')
217
+ .description('根据条件获取推荐物流产品及报价')
218
+ .requiredOption('--country <code>', '目的国家二字码,如 US')
219
+ .option('--start-city <city>', '起运城市中文名,默认深圳')
220
+ .option('--weight <kg>', '重量(kg),默认 1')
221
+ .option('--post-code <code>', '目的地邮编')
222
+ .option('--is-battery <flag>', '是否带电:1-带电 2-普货')
223
+ .option('--declare-value <amount>', '申报总价值')
224
+ .action(async (opts, cmd) => {
225
+ await productCommand({ ...globals(cmd), ...opts });
226
+ });
227
+ program.addCommand(product);
228
+ // mc claim list [--biz-no] [--start-time] [--end-time] [--status] [--page] [--size]
229
+ const claim = new Command('claim').description('理赔管理');
230
+ claim
231
+ .command('list')
232
+ .description('查询理赔列表')
233
+ .option('--biz-no <nos>', '业务单号,多个用逗号分隔')
234
+ .option('--start-time <time>', '起始创建时间 (yyyy-MM-dd HH:mm:ss)')
235
+ .option('--end-time <time>', '结束创建时间 (yyyy-MM-dd HH:mm:ss)')
236
+ .option('--status <code>', '理赔状态:0 全部、1 待处理、2 受理中、3 已解决、4 已退回')
237
+ .option('--page <num>', '页码,默认 1')
238
+ .option('--size <num>', '每页数量,默认 10,最大 100')
239
+ .action(async (opts, cmd) => {
240
+ await claimCommand({ ...globals(cmd), ...opts });
241
+ });
242
+ program.addCommand(claim);
243
+ // mc update [--check] [--tag] [--force] [-y] [--output json]
244
+ program.addCommand(buildUpdateCommand());
245
+ return program;
246
+ }
247
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GlobalOptions } from '../types/index.js';
2
+ export declare function authLogin(apiKey: string): Promise<void>;
3
+ export declare function authStatus(opts: GlobalOptions): Promise<void>;
@@ -0,0 +1,39 @@
1
+ import { ConfigManager } from '../services/config-manager.js';
2
+ import * as logger from '../utils/logger.js';
3
+ import { detectOutputFormat, printJson } from '../utils/output.js';
4
+ export async function authLogin(apiKey) {
5
+ const config = new ConfigManager();
6
+ await config.set('apiKey', apiKey);
7
+ logger.success(`API Key 已保存(${maskApiKey(apiKey)})`);
8
+ }
9
+ export async function authStatus(opts) {
10
+ const config = new ConfigManager();
11
+ const format = detectOutputFormat(opts.output);
12
+ const envKey = process.env['BPORTAL_API_KEY'];
13
+ const fileKey = await config.get('apiKey');
14
+ const baseUrl = await config.resolveBaseUrl();
15
+ const authenticated = !!(envKey || fileKey);
16
+ const source = envKey ? 'BPORTAL_API_KEY (env)' : fileKey ? '~/.bportal/config.json' : 'none';
17
+ const maskedKey = envKey ? maskApiKey(envKey) : fileKey ? maskApiKey(fileKey) : '(未配置)';
18
+ if (format === 'json') {
19
+ printJson({ authenticated, source, key: maskedKey, baseUrl });
20
+ return;
21
+ }
22
+ console.log('');
23
+ console.log('Authentication Status:');
24
+ console.log(` Status: ${authenticated ? '✔ 已认证' : '✖ 未认证'}`);
25
+ console.log(` Source: ${source}`);
26
+ console.log(` Key: ${maskedKey}`);
27
+ console.log(` Base URL: ${baseUrl}`);
28
+ if (!authenticated) {
29
+ console.log('');
30
+ console.log(' Run: mc auth login --api-key <SK_xxx>');
31
+ }
32
+ console.log('');
33
+ }
34
+ function maskApiKey(key) {
35
+ if (key.length <= 8)
36
+ return '****';
37
+ return key.slice(0, 4) + '*'.repeat(key.length - 8) + key.slice(-4);
38
+ }
39
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGnE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,OAAO,CAAC,eAAe,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAmB;IAClD,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;IAE9C,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9F,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAExF,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,eAAe,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IAEtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACnC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { GlobalOptions } from '../types/index.js';
2
+ export interface ClaimCommandOptions extends GlobalOptions {
3
+ startTime?: string;
4
+ endTime?: string;
5
+ status?: string;
6
+ bizNo?: string;
7
+ page?: string;
8
+ size?: string;
9
+ }
10
+ export declare function claimCommand(opts: ClaimCommandOptions): Promise<void>;
@@ -0,0 +1,69 @@
1
+ import { ConfigManager } from '../services/config-manager.js';
2
+ import { ApiClient } from '../services/api-client.js';
3
+ import { createSpinner } from '../utils/logger.js';
4
+ import { handleError } from './error-handler.js';
5
+ import chalk from 'chalk';
6
+ export async function claimCommand(opts) {
7
+ const spinner = createSpinner('正在查询理赔列表...');
8
+ try {
9
+ spinner.start();
10
+ const client = new ApiClient(new ConfigManager(), opts);
11
+ const request = {
12
+ createdStartTime: opts.startTime,
13
+ createdEndTime: opts.endTime,
14
+ claimStatus: opts.status,
15
+ bizNoList: opts.bizNo,
16
+ pageNum: opts.page ? parseInt(opts.page, 10) : undefined,
17
+ pageSize: opts.size ? parseInt(opts.size, 10) : undefined,
18
+ };
19
+ const data = await client.listClaim(request);
20
+ spinner.stop();
21
+ if (opts.output === 'json') {
22
+ console.log(JSON.stringify(data, null, 2));
23
+ return;
24
+ }
25
+ printClaimList(data);
26
+ }
27
+ catch (e) {
28
+ spinner.stop();
29
+ handleError(e);
30
+ }
31
+ }
32
+ function printClaimList(data) {
33
+ console.log('');
34
+ console.log(chalk.bold('理赔列表'));
35
+ console.log(chalk.gray('─'.repeat(50)));
36
+ console.log(` 页码 ${data.pageNum}/${Math.ceil(data.total / data.pageSize) || 1} 共 ${data.total} 条`);
37
+ if (data.list && data.list.length > 0) {
38
+ console.log('');
39
+ for (const item of data.list) {
40
+ printClaimItem(item);
41
+ }
42
+ }
43
+ else {
44
+ console.log('');
45
+ console.log(chalk.yellow(' 暂无理赔记录'));
46
+ }
47
+ console.log('');
48
+ }
49
+ function printClaimItem(item) {
50
+ const statusColor = item.claimStatus === '3' ? chalk.green : item.claimStatus === '4' ? chalk.red : chalk.yellow;
51
+ const statusText = item.claimStatusName ?? item.claimStatus ?? '-';
52
+ console.log(` ${chalk.bold(item.claimNo ?? item.claimId)} ${statusColor(statusText)}`);
53
+ if (item.bizNo)
54
+ console.log(` 业务单号 ${item.bizNo}`);
55
+ if (item.claimReasonName)
56
+ console.log(` 索赔原因 ${item.claimReasonName}`);
57
+ if (item.cargoPaymentCompensationAmount) {
58
+ console.log(` 货值赔偿 ${chalk.yellow(item.cargoPaymentCompensationAmount)} ${item.currency ?? ''}`);
59
+ }
60
+ if (item.servicePaymentCompensationAmount) {
61
+ console.log(` 服务赔偿 ${chalk.yellow(item.servicePaymentCompensationAmount)} ${item.currency ?? ''}`);
62
+ }
63
+ if (item.latestFeedback)
64
+ console.log(` 最新反馈 ${item.latestFeedback}`);
65
+ if (item.createdTime)
66
+ console.log(` 创建时间 ${chalk.gray(item.createdTime)}`);
67
+ console.log('');
68
+ }
69
+ //# sourceMappingURL=claim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"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"}