webloom-framework 0.2.0 → 0.3.0
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 +11 -8
- package/dist/{chunk-URY3E6UH.js → chunk-76BGPI6M.js} +771 -312
- package/dist/chunk-76BGPI6M.js.map +1 -0
- package/dist/{createPluginHost-ChJNBTsX.d.ts → createPluginHost-BVsUCDKN.d.ts} +67 -88
- package/dist/index.d.ts +15 -200
- package/dist/index.js +276 -884
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/resourceRegistry-BFnjmeGE.d.ts +267 -0
- package/dist/testing.d.ts +3 -3
- package/dist/testing.js +2 -2
- package/docs/api.md +20 -19
- package/docs/migration-baseline.md +2 -2
- package/docs/proposals/browser-runtime-v1/implementation-plan.md +7 -1
- package/docs/proposals/browser-runtime-v1/requirements.md +6 -1
- package/docs/proposals/browser-runtime-v1/verification.md +20 -13
- package/docs/proposals/shared-worker-call-first/SWCF-009-typed-transfer-follow-up.md +34 -0
- package/docs/proposals/shared-worker-call-first/implementation-plan.md +567 -0
- package/package.json +1 -1
- package/dist/chunk-URY3E6UH.js.map +0 -1
- package/dist/resourceRegistry-MNM1c7od.d.ts +0 -157
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# WebLoom
|
|
2
2
|
|
|
3
|
-
WebLoom 是一个只面向浏览器的插件 Runtime 框架。
|
|
3
|
+
WebLoom 是一个只面向浏览器的插件 Runtime 框架。0.3.0 管理真实的
|
|
4
4
|
`window-main` 和 `shared-worker` JavaScript realm、插件运行单元、实例、
|
|
5
5
|
依赖图、ResourceScope、权限租约、服务桥和资源缓存;路由、存储、日志、
|
|
6
6
|
国际化等产品能力由插件或下游应用注入。
|
|
@@ -75,7 +75,7 @@ Window 侧只连接 Worker,不创建第二套 Worker 插件生命周期:
|
|
|
75
75
|
import coordinatorWorkerUrl from "./coordinator.worker.ts?sharedworker&url";
|
|
76
76
|
import { connectSharedWorker } from "webloom-framework";
|
|
77
77
|
|
|
78
|
-
const runtime =
|
|
78
|
+
const runtime = connectSharedWorker({
|
|
79
79
|
id: "coordinator",
|
|
80
80
|
url: coordinatorWorkerUrl,
|
|
81
81
|
});
|
|
@@ -83,9 +83,11 @@ const service = runtime.capability("coordinator.service");
|
|
|
83
83
|
await service.call({ type: "health" });
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
`connectSharedWorker()` 同步返回本地句柄;Worker 通过完整 `RuntimeSnapshot` 发布
|
|
87
|
+
状态和服务目录,代理的第一次 `call()` 在有限 deadline 内等待精确匹配。协议不兼容、
|
|
88
|
+
断线、超时和服务撤销都从调用 Promise 返回;框架不自动重连或重放调用。旧代理不会
|
|
89
|
+
静默换绑到新 Worker;Worker 重启后 `runtimeInstanceId`、服务的
|
|
90
|
+
`serviceInstanceId` 和运行单元实例都会变化。
|
|
89
91
|
|
|
90
92
|
Vite 项目必须把 Worker 入口交给 Vite 的 Worker importer(例如
|
|
91
93
|
`?sharedworker&url`),再把构建后导出的 URL 传给框架。框架内部的
|
|
@@ -97,7 +99,7 @@ Rollup entry。仓库的 `pnpm run test:browser` 会先执行生产构建,再
|
|
|
97
99
|
Window 插件依赖 Worker capability 时,把已连接的 `RuntimeHandle` 传给
|
|
98
100
|
`createWindowApp({ remoteRuntime: runtime, plugins })`,并在 setup 中通过
|
|
99
101
|
`ctx.serviceBridge.requireProxy()` 获取精确版本的远程代理。Worker 断线时,Window
|
|
100
|
-
Host 会把相关单元置为 `blocked
|
|
102
|
+
Host 会把相关单元置为 `blocked`;新的完整快照到达后按原启用意图重新协调。
|
|
101
103
|
|
|
102
104
|
## 公共字段中文语义
|
|
103
105
|
|
|
@@ -106,9 +108,10 @@ Host 会把相关单元置为 `blocked`;新 baseline 到达后按原启用意
|
|
|
106
108
|
| `pluginId` | 插件产品的稳定标识;用于用户启停和依赖图身份。 |
|
|
107
109
|
| `unitId` | 产品在一个 Runtime 中的稳定运行单元标识。 |
|
|
108
110
|
| `instanceId` | 某运行单元一次启动生成的唯一实例标识;重启不得复用。 |
|
|
109
|
-
| `runtime` | 真实 JavaScript
|
|
111
|
+
| `runtime` | 真实 JavaScript 运行空间;当前版本仅为 `window-main/shared-worker`。 |
|
|
110
112
|
| `runtimeInstanceId` | 某个 Window 或 SharedWorker 启动生成的不可复用身份。 |
|
|
111
|
-
| `
|
|
113
|
+
| `serviceInstanceId` | 某个服务实例的不可复用身份;服务撤销或重建后必须变化。 |
|
|
114
|
+
| `revision` | 完整 RuntimeSnapshot 的单调修订号;只用于观察和目录收敛。 |
|
|
112
115
|
| `scopeId` | 本次生命周期 Scope 的唯一标识。 |
|
|
113
116
|
| `capability` | 插件提供或依赖的服务契约标识。 |
|
|
114
117
|
| `contractVersion` | capability 的精确契约版本。 |
|