cross-tab-worker-databus 0.11.0 → 0.20.6
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 +209 -0
- package/dist/centrifuge.js +1 -1
- package/dist/centrifuge.shared.worker.js +4 -2
- package/dist/centrifuge.shared.worker.js.map +2 -2
- package/dist/centrifuge.worker.js +4 -2
- package/dist/centrifuge.worker.js.map +2 -2
- package/dist/{chunk-NX76TAV3.js → chunk-LPS4XOK4.js} +152 -20
- package/dist/{chunk-NX76TAV3.js.map → chunk-LPS4XOK4.js.map} +2 -2
- package/dist/cjs/centrifuge.cjs +151 -19
- package/dist/cjs/centrifuge.cjs.map +2 -2
- package/dist/cjs/hooks.cjs +4 -1
- package/dist/cjs/hooks.cjs.map +2 -2
- package/dist/cjs/index.cjs +301 -68
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/cjs/vue.cjs +7 -1
- package/dist/cjs/vue.cjs.map +2 -2
- package/dist/core/data-bus.d.ts +32 -0
- package/dist/core/data-bus.d.ts.map +1 -1
- package/dist/core/publication.d.ts.map +1 -1
- package/dist/core/replay-persistence.d.ts.map +1 -1
- package/dist/core/trace.d.ts +4 -1
- package/dist/core/trace.d.ts.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +4 -1
- package/dist/hooks.js.map +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +151 -50
- package/dist/index.js.map +2 -2
- package/dist/vue.d.ts.map +1 -1
- package/dist/vue.js +7 -1
- package/dist/vue.js.map +2 -2
- package/dist/websocket.d.ts.map +1 -1
- package/docs/README.md +1 -0
- package/docs/api.md +10 -3
- package/docs/configuration.md +21 -1
- package/docs/release-checklist.md +20 -0
- package/docs/roadmap.md +131 -3
- package/docs/zh/README.md +1 -0
- package/docs/zh/api.md +10 -3
- package/docs/zh/configuration.md +21 -1
- package/docs/zh/release-checklist.md +20 -0
- package/docs/zh/roadmap.md +132 -2
- package/package.json +2 -1
package/docs/zh/roadmap.md
CHANGED
|
@@ -1,8 +1,138 @@
|
|
|
1
1
|
# 路线图
|
|
2
2
|
|
|
3
|
-
0.6
|
|
3
|
+
0.20.6 正在推进。项目会先持续完成可靠性与协议兼容性的中版本迭代,再进入 1.0.0 稳定性冻结。
|
|
4
4
|
|
|
5
|
-
## 0.
|
|
5
|
+
## 0.20.6 已完成范围
|
|
6
|
+
|
|
7
|
+
- 新增中英文发布检查清单,覆盖本地验证、打包消费者、打 tag、手动 npm 发布和发布后验证。
|
|
8
|
+
- 明确 npm 历史版本不可覆盖;缺失的历史版本必须从对应 git tag 重建。
|
|
9
|
+
|
|
10
|
+
## 0.20.5 已完成范围
|
|
11
|
+
|
|
12
|
+
- 新增公开消费者冻结覆盖:主入口、hooks、Vue、Centrifuge 子路径的 ESM 与 CommonJS 双格式消费。
|
|
13
|
+
- 校验发布包中的声明文件存在,并包含 replay、dedup 和 publication metadata 等关键类型。
|
|
14
|
+
|
|
15
|
+
## 0.20.4 已完成范围
|
|
16
|
+
|
|
17
|
+
- 新增真实 Chromium 多 Tab soak 场景,覆盖重复 fan-out、owner migration、BFCache 往返、reload 恢复和无重复投递。
|
|
18
|
+
- 将浏览器生命周期转换串成一个连续会话,能够捕获孤立用例难以发现的 timer 与 route 清理回归。
|
|
19
|
+
|
|
20
|
+
## 0.20.3 已完成范围
|
|
21
|
+
|
|
22
|
+
- 新增 React 动态 topic 生命周期覆盖。
|
|
23
|
+
- 验证 topic 替换会移除旧订阅后再接收新 topic,且通过 WebSocket hook 链路生效。
|
|
24
|
+
|
|
25
|
+
## 0.20.2 已完成范围
|
|
26
|
+
|
|
27
|
+
- 新增协议恢复回归:malformed binary/text frame 之后,合法 WebSocket publication 仍可继续投递。
|
|
28
|
+
- 将二进制截断、JSON 解析失败、nested envelope 和错误隔离串成一个兼容性序列验证。
|
|
29
|
+
|
|
30
|
+
## 0.20.1 已完成范围
|
|
31
|
+
|
|
32
|
+
- 新增 persistence mutation sequence soak 覆盖:hydration、重试恢复、topic 清理、后续 append 和全量清理。
|
|
33
|
+
- 验证串行 persistence 操作在瞬时失败后仍可继续使用。
|
|
34
|
+
|
|
35
|
+
## 0.20.0 已完成范围
|
|
36
|
+
|
|
37
|
+
- publication envelope 兼容性已覆盖 legacy、嵌套、fallback topic、原始 payload、metadata 和未知字段帧。
|
|
38
|
+
- 缺失或空 topic 会统一拒绝,同时继续支持 transport 提供的 fallback channel。
|
|
39
|
+
|
|
40
|
+
## 0.19.9 已完成范围
|
|
41
|
+
|
|
42
|
+
- 新增 dedup 与 replay/persistence 组合回归覆盖。
|
|
43
|
+
- 被 dedup 抑制的 publication 不会污染 replay 历史;TTL 到期后同一 message ID 可以再次被接受。
|
|
44
|
+
|
|
45
|
+
## 0.19.8 已完成范围
|
|
46
|
+
|
|
47
|
+
- IndexedDB replay adapter 在事务或请求失败后会使缓存连接失效。
|
|
48
|
+
- 已关闭或不可用的连接可沿用现有 persistence retry 路径恢复,不需要重建 adapter。
|
|
49
|
+
|
|
50
|
+
## 0.19.7 已完成范围
|
|
51
|
+
|
|
52
|
+
- IndexedDB replay adapter 在 open 失败后会丢弃 rejected promise,下一次操作可重新打开并恢复。
|
|
53
|
+
- 与既有跨 tab `versionchange` 连接重置行为保持兼容。
|
|
54
|
+
|
|
55
|
+
## 0.19.6 已完成范围
|
|
56
|
+
|
|
57
|
+
- IndexedDB replay adapter 遇到跨 tab `versionchange` 时会关闭旧连接,并在下一次操作时重新打开。
|
|
58
|
+
- schema 变化后不会继续复用失效数据库连接。
|
|
59
|
+
|
|
60
|
+
## 0.19.5 已完成范围
|
|
61
|
+
|
|
62
|
+
- React bus effect 在 StrictMode 和快速依赖切换下使用 generation 保护。
|
|
63
|
+
- 过期的异步清理不会覆盖最新的 active bus。
|
|
64
|
+
|
|
65
|
+
## 0.19.4 已完成范围
|
|
66
|
+
|
|
67
|
+
- Vue bus 在快速 reactive 依赖切换时使用 generation 保护重建流程。
|
|
68
|
+
- 过期的异步生命周期完成不会重新挂回旧 bus 实例。
|
|
69
|
+
|
|
70
|
+
## 0.19.3 已完成范围
|
|
71
|
+
|
|
72
|
+
- 新增可选 `dedup.sweepMs`,在安静期间定时删除过期 message ID。
|
|
73
|
+
- sweep 定时器遵循 DataBus 生命周期,默认关闭。
|
|
74
|
+
|
|
75
|
+
## 0.19.2 已完成范围
|
|
76
|
+
|
|
77
|
+
- `stop()` 和 pagehide 挂起边界会取消待执行的 persistence retry。
|
|
78
|
+
- 已取消的 retry 不会再次调用 adapter,也不会被当作持久化失败上报。
|
|
79
|
+
|
|
80
|
+
## 0.19.1 已完成范围
|
|
81
|
+
|
|
82
|
+
- WebSocket 二进制 publication 除 `ArrayBuffer` 外,也支持浏览器常见的 `Blob` 帧。
|
|
83
|
+
- Blob 转换失败会通过 transport error callback 隔离报告,不会打崩消息回调。
|
|
84
|
+
|
|
85
|
+
## 0.19.0 已完成范围
|
|
86
|
+
|
|
87
|
+
- persistence retry 会发出有界、可选开启的 `persistence_retry` reliability 事件,包含操作名和尝试次数。
|
|
88
|
+
- 诊断覆盖 hydration、append、全量/Topic 清理以及 retention 清理,不暴露 payload 或错误正文。
|
|
89
|
+
- 保持既有重试时序、默认单次尝试、adapter 契约和最终错误处理兼容。
|
|
90
|
+
|
|
91
|
+
## 0.18.0 已完成范围
|
|
92
|
+
|
|
93
|
+
- 新增可选 replay persistence retry,支持有限尝试次数和指数退避。
|
|
94
|
+
- append、hydration、手动清理、topic 清理和 retention 清理统一使用恢复路径。
|
|
95
|
+
- 导出公开 retry 配置类型,同时保持 persistence adapter 契约兼容。
|
|
96
|
+
|
|
97
|
+
## 0.17.0 已完成范围
|
|
98
|
+
|
|
99
|
+
- 新增可选的周期性 replay retention sweep,即使没有新 publication 也能清理 durable history。
|
|
100
|
+
- sweep 定时器遵循 start/resume 与 pagehide/stop 生命周期边界。
|
|
101
|
+
- 补充 fake-timer 覆盖,保护清理调度、销毁和非法配置行为。
|
|
102
|
+
|
|
103
|
+
## 0.16.0 已完成范围
|
|
104
|
+
|
|
105
|
+
- publication burst 期间会合并 retention cleanup,并以最新 cutoff 串行执行持久化 mutation。
|
|
106
|
+
- WebSocket binary 协议边界新增截断帧和非法帧回归覆盖。
|
|
107
|
+
- 继续保留并明确 legacy replay、JSON metadata 和手动清理的兼容保证。
|
|
108
|
+
|
|
109
|
+
## 0.15.0 已完成范围
|
|
110
|
+
|
|
111
|
+
- replay retention 会保留没有显式 timestamp 的 legacy 消息,只清理早于 cutoff 且带显式 timestamp 的记录。
|
|
112
|
+
- trace 时间戳支持注入 `trace.now`,与已有的 dedup 时钟注入保持一致。
|
|
113
|
+
- 补充 replay 清理、诊断和适配器行为的兼容性与生命周期回归覆盖。
|
|
114
|
+
|
|
115
|
+
## 0.14.0 已完成范围
|
|
116
|
+
|
|
117
|
+
- Vue composable 在同一个 bus 上切换 reactive topic 时会正确重绑。
|
|
118
|
+
- 跨页面 replay mutation 顺序与生命周期保证已写入文档并有回归测试。
|
|
119
|
+
|
|
120
|
+
## 0.13.0 已完成范围
|
|
121
|
+
|
|
122
|
+
- IndexedDB replay mutation 按 adapter 串行化,避免并发 append 的读改写丢历史。
|
|
123
|
+
- 完整 stop/restart 边界会清空 dedup 状态。
|
|
124
|
+
- 补充持久化失败诊断和生命周期回归覆盖。
|
|
125
|
+
|
|
126
|
+
## 0.12.0 已完成范围
|
|
127
|
+
|
|
128
|
+
- dedup TTL 支持可注入时钟,生命周期与过期测试不再依赖墙上时间。
|
|
129
|
+
- replay 持久化 append、hydration、退订和 retention 清理失败均有结构化诊断。
|
|
130
|
+
- publication metadata 做兼容性归一化:只接受非空 ID 与有限 timestamp。
|
|
131
|
+
- 补充 legacy、嵌套、fallback topic 和坏 metadata 协议夹具测试。
|
|
132
|
+
|
|
133
|
+
## 0.13.0 候选
|
|
134
|
+
|
|
135
|
+
## 更长期候选
|
|
6
136
|
|
|
7
137
|
1. **Replay 生命周期与留存**:增加持久化 `clear`/`clearTopic`,退订/替换时清理旧历史,并通过 trace 与 error handler 暴露持久化失败;
|
|
8
138
|
2. **可靠性诊断**:增加恢复/重试、owner ack、路由迁移结构化事件,元数据有界且默认关闭 trace;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cross-tab-worker-databus",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.6",
|
|
4
4
|
"description": "Framework-agnostic cross-tab data bus with Dedicated/Shared Worker clustering and Centrifuge support.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"test:coverage": "vitest run --coverage",
|
|
78
78
|
"bench": "vitest bench --run",
|
|
79
79
|
"bench:browser": "pnpm build && node scripts/bench-browser.mjs",
|
|
80
|
+
"verify:pack": "node scripts/verify-packed-consumer.mjs",
|
|
80
81
|
"test:e2e": "pnpm build && playwright test",
|
|
81
82
|
"typecheck": "tsc --noEmit",
|
|
82
83
|
"prepublishOnly": "pnpm check"
|