fix: v0.7.1 API 修复与防御统一 — static create / 未 open 防护 / 原型污染 / lint 清零
- MetonaSqlark.create 静态工厂(README 示例在 ESM/Node 下此前 TypeError), 独立 create 函数委托静态实现 - close 未初始化防御(engine undefined 不再崩溃) - AriaEngine hasTable/getTableNames/getTableSchema 统一 ensureOpen - 事务回滚失败不掩盖原始错误 - __proto__ 列名防护:Executor 列映射 Object.create(null) + schema 校验拒绝 - lint 清零(移除 5 处未使用导入) 测试 1147 → 1155(73 套件);行覆盖率 89.8%;版本 0.7.1
This commit is contained in:
@@ -2,6 +2,38 @@
|
||||
|
||||
All notable changes to MetonaSqlark will be documented in this file.
|
||||
|
||||
## [0.7.1] - 2026-08-13
|
||||
|
||||
### API 修复 / 防御统一 / 工程质量
|
||||
|
||||
> 深度审计第四阶段:修复 README 示例 API 缺失、未 open 防护不一致、
|
||||
> 事务错误掩盖、原型污染防护,lint 清零。
|
||||
|
||||
### Fixed
|
||||
|
||||
- **`MetonaSqlark.create` 静态工厂缺失(API/文档不一致)** — create 此前仅存在于
|
||||
api 对象与 window 挂载,README/CONTRIBUTING/site 全部示例的
|
||||
`MetonaSqlark.create({...})` 在 ESM/Node 下是 undefined(TypeError)。
|
||||
类增加静态 create(与 connect/disconnect 同入口风格),独立 create 函数委托
|
||||
- **close 未初始化崩溃** — `new MetonaSqlark(cfg).close()`(init 失败/未调用)时
|
||||
`this.engine` undefined → TypeError。close 增加防御
|
||||
- **AriaEngine 未 open 防护不一致** — hasTable/getTableNames/getTableSchema 未检查
|
||||
DB_NOT_OPEN(返回空而非报错,与 KVStoreEngine 及自身其余方法不一致)。
|
||||
统一 ensureOpen
|
||||
- **事务回滚失败掩盖原始错误** — rollbackTransaction 抛错会替换掉真正导致事务
|
||||
失败的异常(定位困难)。回滚失败吞掉,保留原始错误
|
||||
- **`__proto__` 列名原型污染防护** — SQL CREATE TABLE 的列名 `__proto__` 在普通
|
||||
对象上触发原型 setter 静默丢列。Executor 列映射改用 Object.create(null)
|
||||
(键可见),schema 校验层显式拒绝该列名(SCHEMA_ERROR)
|
||||
- **lint 清零** — 移除 5 处未使用导入(backend/file_manager/kvstore_engine/parser)
|
||||
|
||||
### Changed
|
||||
|
||||
- 测试 1147 → **1155**(73 套件,+8 个 v0.7.1 回归);新增 `tests/v071-hardening.test.ts`;
|
||||
行覆盖率 89.8%;lint 0 error 0 warning
|
||||
|
||||
---
|
||||
|
||||
## [0.7.0] - 2026-08-13
|
||||
|
||||
### 参数化查询 / 事务性能 / 语义硬化
|
||||
|
||||
Reference in New Issue
Block a user