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
@@ -0,0 +1,51 @@
1
+ # `fmc` command reference
2
+
3
+ > BPortal Merchant CLI — 跨境物流商家命令行工具。
4
+
5
+ Command **details** are in sibling `<group>.md` files in this directory.
6
+
7
+ ## Quick index
8
+
9
+ | Command | Description | Detail |
10
+ | --- | --- | --- |
11
+ | `fmc auth login` | 配置 API Key | [auth.md](auth.md) |
12
+ | `fmc auth status` | 查看当前认证状态 | [auth.md](auth.md) |
13
+ | `fmc config set` | 设置配置项 | [config.md](config.md) |
14
+ | `fmc config list` | 查看当前配置 | [config.md](config.md) |
15
+ | `fmc config export-schema` | 导出命令的 JSON tool schema | [config.md](config.md) |
16
+ | `fmc track get` | 查询物流轨迹 | [track.md](track.md) |
17
+ | `fmc label get` | 获取面单打印信息(PDF 链接) | [label.md](label.md) |
18
+ | `fmc order get` | 获取订单详情 | [order.md](order.md) |
19
+ | `fmc product recommend` | 获取推荐物流产品及报价 | [product.md](product.md) |
20
+ | `fmc claim list` | 查询理赔列表 | [claim.md](claim.md) |
21
+ | `fmc update` | 升级 CLI 及对应 skill 到最新版本 | [update.md](update.md) |
22
+
23
+ ## By group
24
+
25
+ | Group | Commands | Reference |
26
+ | --- | --- | --- |
27
+ | `auth` | `login`, `status` | [auth.md](auth.md) |
28
+ | `config` | `set`, `list`, `export-schema` | [config.md](config.md) |
29
+ | `track` | `get` | [track.md](track.md) |
30
+ | `label` | `get` | [label.md](label.md) |
31
+ | `order` | `get` | [order.md](order.md) |
32
+ | `product` | `recommend` | [product.md](product.md) |
33
+ | `claim` | `list` | [claim.md](claim.md) |
34
+ | `update` | (no subcommand) | [update.md](update.md) |
35
+
36
+ ## Global flags
37
+
38
+ | Flag | Description |
39
+ | --- | --- |
40
+ | `--output <format>` | 输出格式: text \| json(TTY 默认 text,管道默认 json) |
41
+ | `--verbose` | 打印请求详情(URL、Headers、状态码) |
42
+ | `--dry-run` | 仅打印请求信息,不实际发送 |
43
+ | `--help` | 查看帮助 |
44
+ | `--version` | 打印版本号 |
45
+
46
+ ## Notes
47
+
48
+ - `track get` 命令无需认证即可使用。
49
+ - `label get`、`order get`、`product recommend`、`claim list` 命令需要先配置 API Key:`fmc auth login --api-key <SK_xxx>`。
50
+ - 配置文件位于 `~/.bportal/config.json`;升级状态缓存位于 `~/.bportal/update-state.json`。
51
+ - 当检测到新版本可用时,stderr 会输出 `{"_notice":{"type":"update",...}}`;设置环境变量 `BPORTAL_NO_UPDATE_NOTIFIER=1` 可关闭。
@@ -0,0 +1,51 @@
1
+ # `fmc label` command
2
+
3
+ ## Command details
4
+
5
+ ### `fmc label get`
6
+
7
+ | Field | Value |
8
+ | --- | --- |
9
+ | **Name** | `label get` |
10
+ | **Description** | 获取面单打印信息(PDF 链接) |
11
+ | **Usage** | `fmc label get <orderNo> [flags]` |
12
+
13
+ 需要 API Key 认证。
14
+
15
+ #### Options
16
+
17
+ | Flag | Type | Required | Description |
18
+ | --- | --- | --- | --- |
19
+ | `<orderNo>` | string | yes | 运单号 |
20
+
21
+ 支持全局选项: `--output`, `--verbose`, `--dry-run`
22
+
23
+ #### Examples
24
+
25
+ ```bash
26
+ fmc label get FPX12345678
27
+ ```
28
+
29
+ ```bash
30
+ fmc label get FPX12345678 --output json
31
+ ```
32
+
33
+ ```bash
34
+ fmc label get FPX12345678 --dry-run
35
+ ```
36
+
37
+ #### Output (text mode)
38
+
39
+ ```
40
+ 标签打印信息
41
+ ──────────────────────────────────────────────────
42
+ PDF 链接 https://xxx.com/label.pdf
43
+
44
+ 订单基础信息
45
+ 运单号 FPX12345678
46
+ FPX单号 FPX12345678
47
+ 产品代码 STANDARD
48
+ 起运国 CN
49
+ 目的国 US
50
+ 状态 已签收
51
+ ```
@@ -0,0 +1,68 @@
1
+ # `fmc order` command
2
+
3
+ ## Command details
4
+
5
+ ### `fmc order get`
6
+
7
+ | Field | Value |
8
+ | --- | --- |
9
+ | **Name** | `order get` |
10
+ | **Description** | 获取订单详情(含收件人信息、申报信息、费用明细) |
11
+ | **Usage** | `fmc order get <orderNo> [flags]` |
12
+
13
+ 需要 API Key 认证。
14
+
15
+ #### Options
16
+
17
+ | Flag | Type | Required | Description |
18
+ | --- | --- | --- | --- |
19
+ | `<orderNo>` | string | yes | 运单号 |
20
+
21
+ 支持全局选项: `--output`, `--verbose`, `--dry-run`
22
+
23
+ #### Examples
24
+
25
+ ```bash
26
+ fmc order get FPX12345678
27
+ ```
28
+
29
+ ```bash
30
+ fmc order get FPX12345678 --output json
31
+ ```
32
+
33
+ ```bash
34
+ fmc order get FPX12345678 --verbose
35
+ ```
36
+
37
+ #### Output (text mode)
38
+
39
+ ```
40
+ 订单详情
41
+ ──────────────────────────────────────────────────
42
+ 基础信息
43
+ 运单号 FPX12345678
44
+ FPX单号 FPX12345678
45
+ 产品代码 STANDARD
46
+ 起运国 CN
47
+ 目的国 US
48
+ 状态 已签收
49
+ 实重(g) 500
50
+ 计费重(g) 600
51
+
52
+ 收件人信息
53
+ 姓名 John Doe
54
+ 国家 US
55
+ 城市 New York
56
+ 地址 123 Main St
57
+ 邮编 10001
58
+ 电话 +1234567890
59
+
60
+ 申报信息
61
+ 1 T-Shirt 10.00 USD
62
+
63
+ 费用明细
64
+ 运费 应付: 25.00 USD
65
+ 燃油附加费 应付: 5.00 USD
66
+ ────────────────────────────────────────
67
+ 合计 30.00 USD
68
+ ```
@@ -0,0 +1,70 @@
1
+ # `fmc product` command
2
+
3
+ ## Command details
4
+
5
+ ### `fmc product recommend`
6
+
7
+ | Field | Value |
8
+ | --- | --- |
9
+ | **Name** | `product recommend` |
10
+ | **Description** | 根据条件获取推荐物流产品及报价 |
11
+ | **Usage** | `fmc product recommend --country <code> [flags]` |
12
+
13
+ 需要 API Key 认证。
14
+
15
+ #### Options
16
+
17
+ | Flag | Type | Required | Description |
18
+ | --- | --- | --- | --- |
19
+ | `--country <code>` | string | yes | 目的国家二字码,如 US、GB、JP |
20
+ | `--start-city <city>` | string | no | 起运城市中文名,默认深圳 |
21
+ | `--weight <kg>` | number | no | 重量(kg),默认 1 |
22
+ | `--post-code <code>` | string | no | 目的地邮编 |
23
+ | `--is-battery <flag>` | string | no | 是否带电:1-带电 2-普货 |
24
+ | `--declare-value <amount>` | number | no | 申报总价值 |
25
+
26
+ 支持全局选项: `--output`, `--verbose`, `--dry-run`
27
+
28
+ #### Examples
29
+
30
+ ```bash
31
+ fmc product recommend --country US
32
+ ```
33
+
34
+ ```bash
35
+ fmc product recommend --country US --weight 2.5 --start-city 广州
36
+ ```
37
+
38
+ ```bash
39
+ fmc product recommend --country GB --is-battery 1 --post-code SW1A1AA
40
+ ```
41
+
42
+ ```bash
43
+ fmc product recommend --country JP --output json
44
+ ```
45
+
46
+ #### Output (text mode)
47
+
48
+ ```
49
+ 产品推荐
50
+ ──────────────────────────────────────────────────
51
+ 目的国 US (美国)
52
+
53
+ 推荐产品(共 3 个)
54
+
55
+ 4PX经济小包 ★推荐
56
+ 产品代码 ECO-PKG
57
+ 服务等级 经济
58
+ 跟踪类型 全程跟踪
59
+ 时效 7-15工作日
60
+ 总费用(RMB) 35.00
61
+ 计费重 1000g
62
+
63
+ 4PX标准快递
64
+ 产品代码 STD-EXP
65
+ 服务等级 标准
66
+ 跟踪类型 全程跟踪
67
+ 时效 5-8工作日
68
+ 总费用(RMB) 58.00
69
+ 计费重 1000g
70
+ ```
@@ -0,0 +1,57 @@
1
+ # `fmc track` command
2
+
3
+ ## Command details
4
+
5
+ ### `fmc track get`
6
+
7
+ | Field | Value |
8
+ | --- | --- |
9
+ | **Name** | `track get` |
10
+ | **Description** | 查询物流轨迹 |
11
+ | **Usage** | `fmc track get <orderNo> [flags]` |
12
+
13
+ 无需认证即可使用。
14
+
15
+ #### Options
16
+
17
+ | Flag | Type | Required | Description |
18
+ | --- | --- | --- | --- |
19
+ | `<orderNo>` | string | yes | 运单号 |
20
+
21
+ 支持全局选项: `--output`, `--verbose`, `--dry-run`
22
+
23
+ #### Examples
24
+
25
+ ```bash
26
+ fmc track get FPX12345678
27
+ ```
28
+
29
+ ```bash
30
+ fmc track get FPX12345678 --output json
31
+ ```
32
+
33
+ ```bash
34
+ fmc track get FPX12345678 --verbose
35
+ ```
36
+
37
+ ```bash
38
+ fmc track get FPX12345678 --dry-run
39
+ ```
40
+
41
+ #### Output (text mode)
42
+
43
+ ```
44
+ 物流轨迹查询
45
+ ──────────────────────────────────────────────────
46
+ 单号 FPX12345678
47
+ 起运地 中国
48
+ 目的地 美国
49
+
50
+ 最新轨迹
51
+ 2024-01-15 10:30 纽约 已签收
52
+
53
+ 全部轨迹
54
+ 2024-01-15 10:30 纽约 已签收
55
+ 2024-01-14 08:00 洛杉矶 海关放行
56
+ 2024-01-10 14:20 深圳 已发出
57
+ ```
@@ -0,0 +1,102 @@
1
+ # `fmc update`
2
+
3
+ 升级 CLI 到最新版本,并自动同步对应的 AI skill。
4
+
5
+ ## Synopsis
6
+
7
+ ```bash
8
+ fmc update [--check] [--tag <tag>] [--force] [-y] [--output <format>]
9
+ ```
10
+
11
+ ## Description
12
+
13
+ `fmc update` 通过 npm 全局安装机制,将 CLI 升级到 npm registry 上的最新版本。
14
+ 升级后由 npm postinstall 自动把新版 SKILL.md 同步到所有已检测到的 AI 工具目录
15
+ (`~/.qoder/skills/`, `~/.claude/skills/`, `~/.cursor/skills/` 等)。
16
+
17
+ **升级目标**:当前 site 的 npm 包 `cbs-4px-merchant-cli` 在 registry `{{ "https://registry.anpm.alibaba-inc.com" }}` 上。
18
+
19
+ ## Options
20
+
21
+ | Flag | Description |
22
+ | --- | --- |
23
+ | `--check` | 只检查是否有新版本,不执行升级 |
24
+ | `--tag <tag>` | npm dist-tag(默认 `latest`,可选 `pre` / `test`) |
25
+ | `--force` | 强制重装当前版本(修复 skill 损坏) |
26
+ | `-y, --yes` | 跳过交互式确认 |
27
+ | `--output <format>` | 输出格式: `text` \| `json`(TTY 默认 text,管道默认 json) |
28
+
29
+ ## Environment variables
30
+
31
+ | Variable | Description |
32
+ | --- | --- |
33
+ | `BPORTAL_REGISTRY` | 临时覆盖默认 registry(开发/镜像调试用) |
34
+ | `BPORTAL_NO_UPDATE_NOTIFIER` | 设为任意值即关闭被动 `_notice.update` 提示 |
35
+
36
+ ## Examples
37
+
38
+ ```bash
39
+ # 检查是否有新版本(不执行升级)
40
+ fmc update --check
41
+
42
+ # 检查并以 JSON 输出(适合 AI Agent 解析)
43
+ fmc update --check --output json
44
+
45
+ # 升级到 latest(交互确认)
46
+ fmc update
47
+
48
+ # 升级到预发布版本
49
+ fmc update --tag pre
50
+
51
+ # 重装当前版本(修复 skill)
52
+ fmc update --force -y
53
+
54
+ # 临时切换 registry 后升级(不修改 ~/.npmrc)
55
+ BPORTAL_REGISTRY=https://registry.npmjs.org fmc update --check
56
+ ```
57
+
58
+ ## JSON envelope (`--output json`)
59
+
60
+ ```json
61
+ {
62
+ "ok": true,
63
+ "action": "updated",
64
+ "package": "cbs-4px-merchant-cli",
65
+ "registry": "https://registry.anpm.alibaba-inc.com",
66
+ "tag": "latest",
67
+ "previous_version": "1.0.10",
68
+ "current_version": "1.0.11",
69
+ "latest_version": "1.0.11",
70
+ "install_method": "npm",
71
+ "message": "已升级到 v1.0.11(skill 已通过 postinstall 自动同步)。重新打开终端使生效。"
72
+ }
73
+ ```
74
+
75
+ `action` 取值:
76
+
77
+ | Value | Meaning |
78
+ | --- | --- |
79
+ | `updated` | 升级成功 |
80
+ | `already_up_to_date` | 已是最新版本(包括本地版本领先 registry 的情况) |
81
+ | `update_available` | 仅在 `--check` 模式下:发现新版本 |
82
+ | `manual_required` | CLI 非 npm 全局安装,需手动升级 |
83
+ | `error` | 失败(详见 `error.code`:`NETWORK` / `NPM_NOT_FOUND` / `NPM_INSTALL_FAILED` / `EACCES`) |
84
+
85
+ ## Passive update notifier
86
+
87
+ 普通命令运行后(如 `fmc track get ...`),若本地缓存(`~/.bportal/update-state.json`,
88
+ TTL 24 小时)发现 registry 上有新版本,stderr 会输出一条 JSON 通知:
89
+
90
+ ```json
91
+ {"_notice":{"type":"update","package":"cbs-4px-merchant-cli","current":"1.0.10","latest":"1.0.11","hint":"Run: fmc update to upgrade"}}
92
+ ```
93
+
94
+ AI Agent 可据此提示用户升级。设置 `BPORTAL_NO_UPDATE_NOTIFIER=1` 即可关闭。
95
+
96
+ ## Failure handling
97
+
98
+ - **EACCES 权限错误**:通常发生在 `/usr/local/lib/node_modules` 等目录。建议修复 npm prefix
99
+ 让全局安装无需特权(参见 [npm 官方指南](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally)),
100
+ 或使用 `sudo`。
101
+ - **网络/registry 不可达**:检查 VPN,或用 `BPORTAL_REGISTRY` 临时切换。
102
+ - **非 npm 安装**:`action=manual_required`,envelope 内 `upgrade_command` 字段给出确切的手动升级命令。