@deepseek-ai/dsh-client-ui-slots 0.1.5-rc.2 → 0.1.6-alpha.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/README.i18n.yaml +2 -2
- package/README.md +1 -1
- package/README.zh.md +7 -7
- package/package.json +2 -2
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write packages/client/ui-slots/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: d38fe059693f7b15d060b0a52c97edd0b5e050c9
|
|
6
|
+
README.zh.md: 968470edd20d75b7c6bf8f7c8fca898764af757e
|
package/README.md
CHANGED
|
@@ -101,4 +101,4 @@ None.
|
|
|
101
101
|
|
|
102
102
|
</details>
|
|
103
103
|
|
|
104
|
-
**Runtime invariant:** No companion is published.
|
|
104
|
+
**Runtime invariant:** No companion is published. This is a zero-dependency pure registry core; it emits no Cordis events itself (the `ui-renderer` SlotRegistry owns the event bridge and its invariants); define/register/dispose sequencing is asserted directly by this package's behavior specs.
|
package/README.zh.md
CHANGED
|
@@ -29,15 +29,15 @@ kind: "package-library"
|
|
|
29
29
|
|
|
30
30
|
### 四个 props share
|
|
31
31
|
|
|
32
|
-
每个已注册组件都会收到由四个 share 组合而成的 props:运行时 share(父级 renderSlot 调用点的 `owner`,加上会话标准工具包与全局席位)、child render share(静态缩窄到已声明 children key 的 `renderSlot`)、store share
|
|
32
|
+
每个已注册组件都会收到由四个 share 组合而成的 props:运行时 share(父级 renderSlot 调用点的 `owner`,加上会话标准工具包与全局席位)、child render share(静态缩窄到已声明 children key 的 `renderSlot`)、store share(已声明句柄的 selector 钩子与移除 draft 的 actions),以及业务 share(从 `inject` factory 返回值推断)。组件引用 `ComposedProps`;它们绝不在本地重新定义任何 share 的类型。
|
|
33
33
|
|
|
34
34
|
### Store 席位
|
|
35
35
|
|
|
36
|
-
register 调用可以用 `store: defineStore(...)` 声明 store 席位:`init` 推断状态 schema,`actions` 是完整的 draft-transform 写入集合。组件经 selector 钩子读取、经烘焙回调写入;`defineStore`
|
|
36
|
+
register 调用可以用 `store: defineStore(...)` 声明 store 席位:`init` 推断状态 schema,`actions` 是完整的 draft-transform 写入集合。组件经 selector 钩子读取、经烘焙回调写入;`defineStore` 的引擎实现位于运行时包,并满足这里导出的 `DefineStore` 约定。
|
|
37
37
|
|
|
38
38
|
### 声明纪律
|
|
39
39
|
|
|
40
|
-
声明即认领:注册条目成为唯一被允许渲染该键的条目;注册未声明 slot、声明已声明过的子项、在两个 scope
|
|
40
|
+
声明即认领:注册条目成为唯一被允许渲染该键的条目;注册未声明 slot、声明已声明过的子项、在两个 scope 下挂载同一个共享句柄、或注册缺少 `select` 的 chain,都会在加载时抛出。条目的 disposer 会递归移除其声明的子 slot——账本行、贡献与 store 挂载都随同一生命周期结束而移除。
|
|
41
41
|
|
|
42
42
|
-----
|
|
43
43
|
|
|
@@ -47,7 +47,7 @@ register 调用可以用 `store: defineStore(...)` 声明 store 席位:`init`
|
|
|
47
47
|
<details>
|
|
48
48
|
<summary>实现细节——点击展开</summary>
|
|
49
49
|
|
|
50
|
-
设计就是一张表:声明 = 渲染授权 = 运行时规范。`SlotMap` 在这里声明为空,由消费方通过 `declare module` 增补合并,标准工具包接口(`SessionStandardProps`、`GlobalStandardProps
|
|
50
|
+
设计就是一张表:声明 = 渲染授权 = 运行时规范。`SlotMap` 在这里声明为空,由消费方通过 `declare module` 增补合并,标准工具包接口(`SessionStandardProps`、`GlobalStandardProps`)也是如此,由运行时包以真实成员合并。
|
|
51
51
|
|
|
52
52
|
### 注册与路由
|
|
53
53
|
|
|
@@ -55,7 +55,7 @@ register 调用可以用 `store: defineStore(...)` 声明 store 席位:`init`
|
|
|
55
55
|
|
|
56
56
|
### 渲染器约定
|
|
57
57
|
|
|
58
|
-
`renderer.ts` 携带安装约定(`SlotRenderer`、`SlotRendererHost`)以及 `StaleAuthorizationError`/`SlotOwnershipError`;ui-renderer
|
|
58
|
+
`renderer.ts` 携带安装约定(`SlotRenderer`、`SlotRendererHost`)以及 `StaleAuthorizationError`/`SlotOwnershipError`;ui-renderer 负责实现,并在其插件生命周期中完成安装。引擎产物与渲染器宿主约定携带裸快照 source(`getSnapshot`/`subscribe`),绝不携带 React 钩子——钩子绑定属于渲染机制。
|
|
59
59
|
|
|
60
60
|
</details>
|
|
61
61
|
|
|
@@ -86,7 +86,7 @@ register 调用可以用 `store: defineStore(...)` 声明 store 席位:`init`
|
|
|
86
86
|
<a id="known-limitations-and-deferred-work"></a>
|
|
87
87
|
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
这些限制定义注册表的规模扩展特性与已接受的类型噪声;它们是当前包约束。
|
|
90
90
|
|
|
91
91
|
- **`isLive` 会线性扫描所有记录**:在 UI 插件的注册规模(数十项)下没有问题;如果账本变得频繁访问,再使用条目→记录反向引用改进。
|
|
92
92
|
- **`__renders` 幻象锚点在 `PropsRenderSlots` 上可见**:这是与类型链设计的 `__accepts` 相同且已接受的噪声;泛型方法签名在 key 联合之间比较宽松,因此必须依靠逆变标记强制执行「组件 key 集合 ⊆ children 声明」。
|
|
@@ -101,4 +101,4 @@ register 调用可以用 `store: defineStore(...)` 声明 store 席位:`init`
|
|
|
101
101
|
|
|
102
102
|
</details>
|
|
103
103
|
|
|
104
|
-
**运行时不变式:**
|
|
104
|
+
**运行时不变式:** 不发布伴生入口。这是零依赖的纯注册表核心,本身不发出 Cordis 事件;`ui-renderer` SlotRegistry 负责事件桥及其不变式。本包的行为规范直接断言 define/register/dispose 的执行顺序。
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-client-ui-slots",
|
|
3
3
|
"description": "Slot registry pure core: SlotMap declaration merging, single register composition API, four-share props types, store-seat types, renderer install seam",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.6-alpha.1",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/react": "~18.3.1",
|
|
27
27
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
28
|
-
"@deepseek-ai/dsh-client-store": "^0.1.
|
|
28
|
+
"@deepseek-ai/dsh-client-store": "^0.1.6-alpha.1"
|
|
29
29
|
},
|
|
30
30
|
"files": [
|
|
31
31
|
"lib/index.js",
|