@accio-ai/ecommerce-cli 0.0.3-rc.1 → 0.0.4-rc.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.
- package/CHANGELOG.md +30 -6
- package/checksums.json +7 -7
- package/package.json +7 -7
- package/postinstall.cjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,12 +6,19 @@
|
|
|
6
6
|
|
|
7
7
|
### Added
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
9
|
+
- 新增海外源发现、按日分页与快照采集,以及持久化任务状态、结果交付和失败重试;可信长驻宿主支持带提交幂等、租约与恢复的异步执行,独立 CLI 使用同步执行。
|
|
10
|
+
- 新增按作用域隔离的多连接授权和跨平台凭据批量查询,采集范围按授权店铺解析;扩展 Amazon 运营数据源与游标分页库存快照。
|
|
11
|
+
- 新增 API 调用本地 JSONL 观测,关联调用、任务与执行标识,记录耗时和安全错误信息,并支持日志轮转与保留期限。
|
|
12
|
+
- 新增 `make docs-check`,通过真实 CLI 输入契约检查当前文档示例与本地链接,并接入日常验证和原生平台 CI;开发与发布 smoke 同时执行构建后二进制契约检查。
|
|
13
|
+
- 新增按域内嵌 JSON 命令契约,覆盖当前 19 个业务及系统入口;统一驱动命令注册、简短帮助、Schema 索引/单条详情/全量发现和输入校验,单条 Schema 引用完整并可离线编译。
|
|
14
|
+
- 新增业务 `--input-json` 参数对象,与 flags/位置参数共用校验和默认值规则;支持类型、必填、枚举、互斥及条件必填检查,执行上下文单独声明。
|
|
15
|
+
- 新增统一 JSON/Excel 文件接口:collection import 支持 JSON、XLSX、XLSM 和 JSON stdin,国内查询与海外 ready 支持显式导出 JSON/XLSX,并返回路径、格式、字节数、记录数和 SHA-256 回执。
|
|
16
|
+
- 新增 `make contract-check` 构建产物验收入口,以及 [CLI 调用与新命令接入指南](docs/CLI调用指南.md),覆盖注册、JSON 输入输出、文件用法、预检与错误恢复。
|
|
17
|
+
- 新增多 Plugin SQLite 初始化 Go 接口:每份构建期内置 `init_config` 统一声明 Plugin、物理表、DDL 与 DML,Assets Loader 提供领域 Config,Storage Adapter 为 07 Core 生成内部同名表注册;使用库内初始化状态、Plugin 级 checksum、只读快速路径和 `BEGIN IMMEDIATE` 实现重复调用、并发调用与失败重试幂等,并通过 `setup`、`doctor`、写入命令初始化策略和 npm postinstall 接入。
|
|
11
18
|
- 强化跨平台发布与 SQLite 恢复:统一兼容 JSON UTF-8 BOM/CRLF、避免 Windows npm shell 转义、拒绝 SQLite UNC/设备路径,并验证异常退出后的 WAL 恢复。
|
|
12
19
|
- 新增 SQLite Core:统一多 Plugin 数据库路径与表绑定、连接池、访问模式、事务、参数化 SQL、缓存、资源释放和稳定错误边界;上层无需直接依赖 `database/sql`。
|
|
13
|
-
- 将 CGo-free SQLite 引擎直接链接进 `ecomctl`,并增加真实内存数据库验证;用户无需额外安装系统 `sqlite3`,数据库由 `setup`、npm postinstall
|
|
14
|
-
- 新增相互隔离的正式版与 RC 发布入口;RC 自动使用 `-rc.N` 版本和 npm `rc` dist-tag,正式版固定使用 `latest
|
|
20
|
+
- 将 CGo-free SQLite 引擎直接链接进 `ecomctl`,并增加真实内存数据库验证;用户无需额外安装系统 `sqlite3`,数据库由 `setup`、npm postinstall 或写入命令按策略初始化,只读查询不会建库。
|
|
21
|
+
- 新增相互隔离的正式版与 RC 发布入口;RC 自动使用 `-rc.N` 版本和 npm `rc` dist-tag,正式版固定使用 `latest`,两条通道共享构建与安装验证门禁,正式版额外强制 Windows 签名。
|
|
15
22
|
- 将根目录 `VERSION` 设为唯一发布版本源;npm staging 和 Go release build 自动注入版本,不再要求同步修改 `package.json` 与 Go 源码。
|
|
16
23
|
- 简化 Windows 签名交接:默认强制验证 Authenticode 与原始 payload,signer 证书 SHA-256 指纹改为可选加强项,不再要求每次发布手工输入。
|
|
17
24
|
- 将 Windows 替换与最终验签合并为单一 finalize 入口;正式版和 RC publish 自动执行完整门禁并固定发布到 npmjs,dry-run 降为可选步骤。
|
|
@@ -20,8 +27,16 @@
|
|
|
20
27
|
|
|
21
28
|
### Changed
|
|
22
29
|
|
|
23
|
-
-
|
|
24
|
-
-
|
|
30
|
+
- 已有数据库的初始化配置与当前 CLI 不一致时仍拒绝自动升级;升级前需备份并使用匹配版本或经过验证的迁移方案,独立测试可使用新的 `ECOMCTL_DATA_HOME`。
|
|
31
|
+
- 将单一使用方的文件提交、JSON 编码工具分别归入查询存储和导入 CLI;构建版本变量归入程序入口,源配置包更名为 `sourcecatalog`,保持版本、凭据与文件行为不变。
|
|
32
|
+
- 将 CLI 生命周期、命令树、flags、响应排版与输出交付分文件维护;源目录加载、采集规则、操作和分页校验在原包内按职责拆分,公开命令行为保持不变。
|
|
33
|
+
- 将发布测试归入 `scripts/release`,业务 smoke 测试归入 `smoke`;新增文档索引,更新当前使用与实现说明,历史方案和验收记录通过 Git 追溯,两份冻结契约基线归入 `tools/checkcontracts/testdata/`。
|
|
34
|
+
- 业务响应统一为 `ecomctl.result` V2,区分数据、文件回执、预检和任务受理;`--response-format auto|json|text` 只控制响应排版,文件编码由 `--input-format` / `--output-format` 控制,系统入口保留原生输出。
|
|
35
|
+
- 将国内外业务核心及 CLI Adapter 统一归入 Capability;下载持久化归 `storage/download`,后台执行与恢复归 Host,公共 CLI 与 SQLite Core 不再依赖具体下载业务。拆分大文件并扩展依赖方向门禁,保留数据库结构、文件提交和任务语义。
|
|
36
|
+
- 将文件输出收敛到共享 Writer:目标必须不存在,采用原子发布,失败保留已知提交状态;JSON 文件保存完整业务信封,XLSX 保留上下文、缺口或失败明细。
|
|
37
|
+
- 预检明确区分已完成检查与 `unchecked`,本地条件不足返回 `preflight_incomplete`;帮助、Schema 和预检不取凭据、不联网、不建库或启动 worker。
|
|
38
|
+
- 将 Source Import 改为按事实 scope 与规范化业务内容精确去重;四张事实表通过唯一索引跳过相同内容的重放,不同内容分别保留,事实与覆盖台账在同一事务写入。
|
|
39
|
+
- 将查数结果统一为 V2 的 `data.scopes`:按主题返回 `scopes[].topics[].dataset[]`,按指标返回 `scopes[].dataset[]`,并保留独立的 `snapshot_dataset`、缺口和分页信息。
|
|
25
40
|
- 将查数导出命令的共享 flag 和输入转换上提到 `dataquery/cli`,消除叶子 CLI Adapter 之间的横向依赖。
|
|
26
41
|
- 新增叶子 CLI、Assets 和 Storage 依赖方向门禁,防止分层在后续扩展中回退。
|
|
27
42
|
- 将六平台矩阵收敛到单一 manifest,launcher、staging、publish 和测试共享同一份目标定义。
|
|
@@ -30,6 +45,12 @@
|
|
|
30
45
|
|
|
31
46
|
### Fixed
|
|
32
47
|
|
|
48
|
+
- 修复数据库文件、目录及显式路径权限不合规被误报为初始化失败的问题;`setup` 和 `doctor` 提供权限、配置冲突及恢复指引,并覆盖修正权限后暴露配置冲突的旧环境场景。
|
|
49
|
+
- 拒绝采集响应中的重复 JSON key,避免歧义数据参与内容去重;修正 API 索引分页信息并增加生成一致性检查。
|
|
50
|
+
- 修复 Excel 导入工作表映射歧义与字段数量预算检查;XLSX 导出保留工作表有效范围,超过列数限制时提供改用 JSON 的恢复建议,并避免未受管理的临时磁盘缓存。
|
|
51
|
+
- 修复库存分页末页省略游标时的完成判定,以及只读预检意外创建 SQLite 附属文件的问题。
|
|
52
|
+
- 修复不完整 Recovery 装配及 Status 配置检查顺序可能引发的空引用错误;测试初始化失败时正确释放已打开的连接。
|
|
53
|
+
- 将并发锁重试断言与大批量写入验证分开,修复既有 race 测试受机器吞吐影响的问题;保留两批各 25 万行覆盖和生产重试预算。
|
|
33
54
|
- 修复 npm smoke 忽略 `ECOMCTL_DIST_DIR`、可能误用旧产物的问题。
|
|
34
55
|
- Windows 签名替换改为整批事务;任一文件或 receipt 失败时回滚已经替换的二进制。
|
|
35
56
|
- npm 发布支持按 tarball integrity 安全续跑,避免部分平台包发布成功后无法继续同一版本。
|
|
@@ -37,6 +58,9 @@
|
|
|
37
58
|
|
|
38
59
|
### Removed
|
|
39
60
|
|
|
61
|
+
- 停止跟踪个人 `.idea` 项目配置,继续由 `.gitignore` 排除,本地 IDE 设置不受影响。
|
|
62
|
+
- 删除迁移后的 Go 参数/条件 DSL、Schema 生成回退、旧 JSON/XLSX 输出链和生产测试兼容构造器,公开声明统一由域 JSON 维护。
|
|
63
|
+
- 删除旧 `--output` / `ECOMCTL_OUTPUT`、`--import-path`、`--data-json`、`--data-json-file`、`--node-ids`、`--source`、`--product` 和 ready 的 `--format`;迁移方式见调用指南。
|
|
40
64
|
- 下线未注册的 Dashboard Render Service、CLI Adapter、DTO、测试和文档,统一使用按节点或指标导出。
|
|
41
65
|
- 删除没有外部分发目标的 GoReleaser archive、archive checksum、GPG checksum 签名和 Windows zip 重写路径。
|
|
42
66
|
|
package/checksums.json
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.0.
|
|
2
|
+
"version": "0.0.4-rc.1",
|
|
3
3
|
"binaries": {
|
|
4
4
|
"darwin-arm64": {
|
|
5
5
|
"package": "@accio-ai/ecommerce-cli-darwin-arm64",
|
|
6
6
|
"file": "ecomctl",
|
|
7
|
-
"sha256": "
|
|
7
|
+
"sha256": "104a8cdd54b991ba8da9ff2b167eaab4c38c0b976e2fd5d1853bcec5e19f9d4b"
|
|
8
8
|
},
|
|
9
9
|
"darwin-x64": {
|
|
10
10
|
"package": "@accio-ai/ecommerce-cli-darwin-x64",
|
|
11
11
|
"file": "ecomctl",
|
|
12
|
-
"sha256": "
|
|
12
|
+
"sha256": "7461ec2ef1b3133dd6ec7ddb0573c83100794aaf71ca0fe2173e5356eb0fd841"
|
|
13
13
|
},
|
|
14
14
|
"linux-arm64": {
|
|
15
15
|
"package": "@accio-ai/ecommerce-cli-linux-arm64",
|
|
16
16
|
"file": "ecomctl",
|
|
17
|
-
"sha256": "
|
|
17
|
+
"sha256": "66d74db106e39cc7ddee017917a299e175c888d34de62ea3515dfa88265fc73d"
|
|
18
18
|
},
|
|
19
19
|
"linux-x64": {
|
|
20
20
|
"package": "@accio-ai/ecommerce-cli-linux-x64",
|
|
21
21
|
"file": "ecomctl",
|
|
22
|
-
"sha256": "
|
|
22
|
+
"sha256": "1e342462e2904426ea424a75510f069e14d37c0b95c5f1edefe776df8775576d"
|
|
23
23
|
},
|
|
24
24
|
"win32-arm64": {
|
|
25
25
|
"package": "@accio-ai/ecommerce-cli-win32-arm64",
|
|
26
26
|
"file": "ecomctl.exe",
|
|
27
|
-
"sha256": "
|
|
27
|
+
"sha256": "505bbbb398e499c161d439439c3d787924c88192e451456bffcb0ba7b33f3a5e"
|
|
28
28
|
},
|
|
29
29
|
"win32-x64": {
|
|
30
30
|
"package": "@accio-ai/ecommerce-cli-win32-x64",
|
|
31
31
|
"file": "ecomctl.exe",
|
|
32
|
-
"sha256": "
|
|
32
|
+
"sha256": "fe303267180bb4c7caf19823415188b8826e4dfbf808286de8649555c79c717b"
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@accio-ai/ecommerce-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4-rc.1",
|
|
4
4
|
"description": "Local, statically compiled ecommerce automation toolkit",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"repository": {
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"postinstall": "node postinstall.cjs"
|
|
19
19
|
},
|
|
20
20
|
"optionalDependencies": {
|
|
21
|
-
"@accio-ai/ecommerce-cli-darwin-arm64": "0.0.
|
|
22
|
-
"@accio-ai/ecommerce-cli-darwin-x64": "0.0.
|
|
23
|
-
"@accio-ai/ecommerce-cli-linux-arm64": "0.0.
|
|
24
|
-
"@accio-ai/ecommerce-cli-linux-x64": "0.0.
|
|
25
|
-
"@accio-ai/ecommerce-cli-win32-arm64": "0.0.
|
|
26
|
-
"@accio-ai/ecommerce-cli-win32-x64": "0.0.
|
|
21
|
+
"@accio-ai/ecommerce-cli-darwin-arm64": "0.0.4-rc.1",
|
|
22
|
+
"@accio-ai/ecommerce-cli-darwin-x64": "0.0.4-rc.1",
|
|
23
|
+
"@accio-ai/ecommerce-cli-linux-arm64": "0.0.4-rc.1",
|
|
24
|
+
"@accio-ai/ecommerce-cli-linux-x64": "0.0.4-rc.1",
|
|
25
|
+
"@accio-ai/ecommerce-cli-win32-arm64": "0.0.4-rc.1",
|
|
26
|
+
"@accio-ai/ecommerce-cli-win32-x64": "0.0.4-rc.1"
|
|
27
27
|
},
|
|
28
28
|
"files": [
|
|
29
29
|
"bin",
|
package/postinstall.cjs
CHANGED
|
@@ -16,7 +16,7 @@ const {
|
|
|
16
16
|
const { readJSONFile } = require("./json-file.cjs");
|
|
17
17
|
|
|
18
18
|
const DATA_HOME_ENVIRONMENT = "ECOMCTL_DATA_HOME";
|
|
19
|
-
const INIT_ARGS = Object.freeze(["setup", "--
|
|
19
|
+
const INIT_ARGS = Object.freeze(["setup", "--response-format", "json"]);
|
|
20
20
|
const INIT_TIMEOUT_MS = 30_000;
|
|
21
21
|
const INIT_MAX_BUFFER_BYTES = 1 << 20;
|
|
22
22
|
const MANUAL_INIT_COMMAND = "ecomctl setup";
|