doxum 0.1.19 → 0.1.21
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/README.md +30 -11
- package/dist/{scope-d-L87NeC.js → access-BeSV5ve-.js} +114 -20
- package/dist/access-BeSV5ve-.js.map +1 -0
- package/dist/{scope-Ezs-Y3TY.cjs → access-Bienf28h.cjs} +149 -19
- package/dist/access-Bienf28h.cjs.map +1 -0
- package/dist/advanced-BRL5pN0y.cjs +1361 -0
- package/dist/advanced-BRL5pN0y.cjs.map +1 -0
- package/dist/advanced-COFJtWMT.js +1188 -0
- package/dist/advanced-COFJtWMT.js.map +1 -0
- package/dist/{advanced-C2fpjbK3.d.ts → advanced-DfKc7TZR.d.cts} +27 -22
- package/dist/{advanced-DlOYk1vi.d.cts → advanced-FgdTwu5b.d.ts} +27 -22
- package/dist/advanced.cjs +1 -1
- package/dist/advanced.d.cts +2 -2
- package/dist/advanced.d.ts +2 -2
- package/dist/advanced.js +1 -1
- package/dist/{contract-XmKnroJq.d.cts → contract-CdmDHRUq.d.cts} +8 -6
- package/dist/{contract-CATCCVu5.d.ts → contract-KG5XnQZt.d.ts} +8 -6
- package/dist/{driver-CSnhMjbP.js → driver-CLYJOGDQ.js} +2 -2
- package/dist/{driver-CSnhMjbP.js.map → driver-CLYJOGDQ.js.map} +1 -1
- package/dist/{driver-BCyfqxsl.cjs → driver-Djr3BVvo.cjs} +2 -2
- package/dist/{driver-BCyfqxsl.cjs.map → driver-Djr3BVvo.cjs.map} +1 -1
- package/dist/index.cjs +1150 -1993
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1105 -1948
- package/dist/index.js.map +1 -1
- package/dist/{integration-CxVhq-KD.js → integration-C4Isp8lJ.js} +3 -2
- package/dist/{integration-CxVhq-KD.js.map → integration-C4Isp8lJ.js.map} +1 -1
- package/dist/{integration-B7VDgAOJ.cjs → integration-Z6MsfFI7.cjs} +4 -3
- package/dist/{integration-B7VDgAOJ.cjs.map → integration-Z6MsfFI7.cjs.map} +1 -1
- package/dist/integration.cjs +3 -3
- package/dist/integration.d.cts +1 -1
- package/dist/integration.d.ts +1 -1
- package/dist/integration.js +3 -3
- package/dist/{issue-DhrNdQNg.cjs → issue-DjK1xp5K.cjs} +106 -22
- package/dist/issue-DjK1xp5K.cjs.map +1 -0
- package/dist/{issue-DVaGQGeP.js → issue-W0hT8u8D.js} +81 -15
- package/dist/issue-W0hT8u8D.js.map +1 -0
- package/dist/local-sync.cjs +2 -2
- package/dist/local-sync.d.cts +1 -1
- package/dist/local-sync.d.ts +1 -1
- package/dist/local-sync.js +2 -2
- package/dist/{notification-IQIJyH3Q.js → notification-Bkjau6B6.js} +3 -56
- package/dist/notification-Bkjau6B6.js.map +1 -0
- package/dist/{notification-CDSUfiip.cjs → notification-DJfouMEb.cjs} +2 -91
- package/dist/notification-DJfouMEb.cjs.map +1 -0
- package/dist/react.cjs +2 -2
- package/dist/react.js +2 -2
- package/package.json +1 -1
- package/skills/doxum-runtime/SKILL.md +4 -1
- package/skills/doxum-runtime/references/guide.en.md +5 -2
- package/skills/doxum-runtime/references/guide.zh-CN.md +5 -2
- package/skills/doxum-runtime/references/projections.en.md +23 -9
- package/skills/doxum-runtime/references/projections.zh-CN.md +18 -6
- package/dist/advanced-BYZCjNWL.js +0 -680
- package/dist/advanced-BYZCjNWL.js.map +0 -1
- package/dist/advanced-CMMNk49G.cjs +0 -763
- package/dist/advanced-CMMNk49G.cjs.map +0 -1
- package/dist/issue-DVaGQGeP.js.map +0 -1
- package/dist/issue-DhrNdQNg.cjs.map +0 -1
- package/dist/notification-CDSUfiip.cjs.map +0 -1
- package/dist/notification-IQIJyH3Q.js.map +0 -1
- package/dist/scope-Ezs-Y3TY.cjs.map +0 -1
- package/dist/scope-d-L87NeC.js.map +0 -1
|
@@ -20,6 +20,10 @@ runtime.get(visible);
|
|
|
20
20
|
source 通过 `kind: 'value'` 或 `kind: 'collection'` 区分语义,但调用方统一使用
|
|
21
21
|
`observe(source)`。
|
|
22
22
|
|
|
23
|
+
schema map、table 和 `list(field, { keyOf })` 都是 keyed collection path。list
|
|
24
|
+
直接使用 schema 的 `keyOf` 作为稳定 identity,并按文档顺序迭代;数组类型的普通
|
|
25
|
+
`field(...)` 仍然是 scalar value observation。
|
|
26
|
+
|
|
23
27
|
External event 不再复用 Runtime context:value event 提供新 `value` 和
|
|
24
28
|
`revision`;collection event 提供稳定的 `previous` read、`revision` 和可选的
|
|
25
29
|
`impact` hint。Runtime 自己计算精确的 `CollectionChange`,processor 不会直接收到
|
|
@@ -45,9 +49,10 @@ runtime.dispose();
|
|
|
45
49
|
`input.collection<K, V>(initial?)` 声明 Runtime 本地 keyed 状态。`update` 的借用 draft
|
|
46
50
|
提供 `get`、`has`、`set`、`remove`;单次 callback 同步且原子,Runtime batch 发布一次
|
|
47
51
|
精确的净 `CollectionChange`。scope 用 `scope.input`、`scope.derive`、
|
|
48
|
-
`scope.incremental`
|
|
52
|
+
`scope.incremental` 声明局部投影,直接依赖同一 Runtime 中的根投影;dispose 只释放
|
|
53
|
+
局部 producer、状态和订阅。
|
|
49
54
|
|
|
50
|
-
Runtime
|
|
55
|
+
Runtime 的 scheduler/output internals、item handle、rebuild、release 都是内部事实,不是应用层操作;
|
|
51
56
|
只有 `Readable` 自己的 publication revision 为 store 集成保留为公开事实。
|
|
52
57
|
Materialization、keyed storage、故障恢复和释放只有一个 owner。
|
|
53
58
|
|
|
@@ -73,6 +78,8 @@ const render = incremental.group(
|
|
|
73
78
|
content: define.collection<string, Content>(),
|
|
74
79
|
},
|
|
75
80
|
labels: define.collection<string, Label>(),
|
|
81
|
+
chrome: define.value<Chrome>(),
|
|
82
|
+
revision: define.value<number>(),
|
|
76
83
|
}),
|
|
77
84
|
({ sources, outputs }) => {
|
|
78
85
|
for (const [id, task] of sources[0]) {
|
|
@@ -80,6 +87,8 @@ const render = incremental.group(
|
|
|
80
87
|
outputs.node.content.set(id, makeContent(task));
|
|
81
88
|
outputs.labels.set(id, makeLabel(task));
|
|
82
89
|
}
|
|
90
|
+
outputs.chrome.set(makeChrome(sources[0]));
|
|
91
|
+
outputs.revision.set(sources[0].size);
|
|
83
92
|
}
|
|
84
93
|
);
|
|
85
94
|
```
|
|
@@ -97,10 +106,13 @@ build 对集合依赖报告 `reset`;一次已提交的 batch 已经合并成
|
|
|
97
106
|
只在同步 callback 内有效的 `output` draft。Draft 只有 `set`、`remove`、`order`;
|
|
98
107
|
Runtime 在 callback 返回后校验并 seal,计算 keyed transitions,发布
|
|
99
108
|
一个不可变 map-like 值。reset 或故障恢复由 Runtime 内部完成。
|
|
100
|
-
`incremental.group(...)` 是多个命名 keyed output
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
109
|
+
`incremental.group(...)` 是多个命名 value / keyed collection output 的组合边界。
|
|
110
|
+
`define.value<T>(equality?)` 声明 scalar leaf,`define.collection<K, V>(equality?)`
|
|
111
|
+
声明 keyed leaf。嵌套 namespace 只是静态 API 组织,不是新的 producer、Runtime、scheduler 或事件协议。
|
|
112
|
+
每个叶子都是指向同一个 processor producer 某个 output 的普通 `Projection`;一次 processor 执行先 seal 所有 leaf,再原子发布真正
|
|
113
|
+
变化的 leaf,下游直接依赖这些叶子。initial build / rebuild 必须 set 每个 value leaf;
|
|
114
|
+
普通增量轮次可以不触碰 value leaf,此时保留其现值和 revision。首次读取任一叶子只会
|
|
115
|
+
物化该 producer 一次;scope dispose 也只会释放该 producer 和其保留状态一次。
|
|
104
116
|
|
|
105
117
|
## React selector 追踪
|
|
106
118
|
|