豫言 / 豫言操作系统持久事务适配 @ 0.2.0

以当前云工持久仓事务实现豫言持久事务接口。

源码浏览已生成;不能解析的文件以纯文本展示,不表示通过类型检查。

说明.汉语.md

# 云工持久事务适配

`键值。豫` 用当前 Durable Object 的存储实现[持久事务接口](../../../豫言操作系统接口/持久事务/规范.汉语.md) 0.2.0。

- **事务**:`执行持久事务` 先在豫言里规范化参数 JSON,再经宿主 `云工持久事务执行安全` 在 `storage.transaction` 回调里以 `durable-transaction` 事件重入 `_start`;宿主把回调或平台的失败作为值返回,适配转成可捕获的豫言异常(消息 `持久事务失败:…`)。事务函数只在该入口内可用,读、写、删除、列举都作用于平台事务对象。
- **直接访问**:`读取持久仓键值` 等五个函数调用 `storage.get/put/delete/list/deleteAll`,只在持久对象的普通事件里可用,在 `durable-transaction` 入口内一律拒绝。
- **值的处理**:写入经宿主原生 `JSON.parse` 校验并以结构化值存储(`云工持久写入值安全`:键 1–2048 字节、值 ≤ 2 MiB、嵌套 ≤ 32 层、拒绝宿主保留的单键对象,失败作为值返回再转成可捕获异常);读取直接返回宿主序列化的 JSON 文字,不在豫言里解析再表示(因此控制字符、增补平面字符不会被豫言 JSON 编解码器影响);列举经 `云工持久列举值安全` 规整选项(空字符串视同未指定)并限制结果 ≤ 8 MiB。0.2.0 起 `读取持久事务键值`、`写入持久事务键值` 也走这两条路径,签名与语义不变。
- **不做**:适配不保存状态,不解释应用的键与业务规则;不暴露 `allowConcurrency`、`noCache`、`allowUnconfirmed`,也不提供 SQL 与同步事务(另见`云工宿主`)。

一致性验证用例见 `豫言操作系统/宿主/云工/一致性验证/`(含持久事务、持久告警、持久独占三个接口与宿主壳的 Node 测试和试验应用)。

说明.文言.md

# 云工持久事务适配

`键值。豫` 借当前 Durable Object 之存,以承[持久事务之约](../../../豫言操作系统接口/持久事务/规范.文言.md)二版。

- **事务**:`执行持久事务` 先于豫言中规整参 JSON,复经宿主 `云工持久事务执行安全`,于 `storage.transaction` 回调中以 `durable-transaction` 之事重入 `_start`;宿主以回调或平台之败为值而返,适配转为可捕之豫言异(辞曰 `持久事务失败:…`)。事务之术惟于此入口内可用,读、写、删、列皆施于平台之事务对象。
- **直读写**:`读取持久仓键值` 等五术,呼 `storage.get/put/delete/list/deleteAll`,惟持久对象之寻常事中可用,于 `durable-transaction` 入口内一概拒之。
- **值之理**:书则经宿主原生 `JSON.parse` 验之而以结构化值存(`云工持久写入值安全`:键一至二千零四十八字节、值不逾二 MiB、嵌套不逾三十二层、拒宿主所留之单键对象,败则归为值而转为可捕之异);读则径返宿主所书之 JSON 文,不于豫言中析而复书(故控制字符与增补平面字皆不为豫言 JSON 编解码之器所扰);列举经 `云工持久列举值安全` 规整其选(空串视同未指),而限果不逾八 MiB。二版起,`读取持久事务键值`、`写入持久事务键值` 亦循此二径,签与义不易。
- **不为**:适配不存其态,不释客之键与业务之规;不露 `allowConcurrency`、`noCache`、`allowUnconfirmed`,亦不供 SQL 与同步事务(另见`云工宿主`)。

一致性验证之例,见 `豫言操作系统/宿主/云工/一致性验证/`(含持久事务、持久告警、持久独占三接口与宿主壳之 Node 测试及试验应用)。