@vcp-dev/site-edit-bridge 0.6.10 → 0.7.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 +27 -8
- package/dist/auto-bootstrap.d.ts +19 -2
- package/dist/auto-bootstrap.js +11 -11
- package/dist/client.d.ts +76 -36
- package/dist/client.js +1 -1
- package/dist/document-codec.d.ts +2 -0
- package/dist/document-codec.js +1 -1
- package/dist/index.js +8 -8
- package/dist/next-dev-server.js +3 -3
- package/dist/protocol.d.ts +71 -143
- package/dist/protocol.js +281 -182
- package/dist/server.d.ts +7 -5
- package/dist/server.js +2 -2
- package/dist/window-message.d.ts +26 -12
- package/dist/window-message.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,15 +1,34 @@
|
|
|
1
1
|
# @vcp-dev/site-edit-bridge
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
生成站点与 VCP Designer/preview 之间的受控桥接包。它在 `@vcp-dev/site-edit-engine` 合同之上提供浏览器 client、window message codec、server/Next 开发服务器适配和调试 trace;不包含平台 UI,也不持有 VCP secret。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 要求
|
|
6
|
+
|
|
7
|
+
- Node.js 24+
|
|
8
|
+
- 由生成站点或 preview 准备流程注入与当前 runtime 匹配的包版本
|
|
9
|
+
- active edit 必须通过共享 edit-engine version gate;版本不一致时刷新 runtime,不在请求中临时安装
|
|
10
|
+
|
|
11
|
+
## 导出
|
|
12
|
+
|
|
13
|
+
| Import | 用途 |
|
|
14
|
+
| --------------------------------------- | ------------------------------------ |
|
|
15
|
+
| `@vcp-dev/site-edit-bridge` | 公共类型与组合入口。 |
|
|
16
|
+
| `@vcp-dev/site-edit-bridge/client` | 浏览器端 bridge client。 |
|
|
17
|
+
| `@vcp-dev/site-edit-bridge/auto-bootstrap` | 受控的浏览器自动装配。 |
|
|
18
|
+
| `@vcp-dev/site-edit-bridge/document-codec` | 文档/消息编码与解析。 |
|
|
19
|
+
| `@vcp-dev/site-edit-bridge/designer-trace` | Designer 调试 trace 合同。 |
|
|
20
|
+
| `@vcp-dev/site-edit-bridge/window-message` | `postMessage` wire schema 与 guard。 |
|
|
21
|
+
| `@vcp-dev/site-edit-bridge/server` | Node/server 侧能力。 |
|
|
22
|
+
| `@vcp-dev/site-edit-bridge/next-dev-server` | Next preview 开发服务器适配。 |
|
|
23
|
+
|
|
24
|
+
包还发布 `vcp-site-edit-next-dev-server` CLI,供受控 preview 启动流程使用。不要把它替换成浏览器可提交的任意 shell 命令。
|
|
25
|
+
|
|
26
|
+
## 开发
|
|
6
27
|
|
|
7
28
|
```bash
|
|
8
|
-
|
|
29
|
+
corepack pnpm --filter @vcp-dev/site-edit-bridge typecheck
|
|
30
|
+
corepack pnpm --filter @vcp-dev/site-edit-bridge test
|
|
31
|
+
corepack pnpm --filter @vcp-dev/site-edit-bridge build
|
|
9
32
|
```
|
|
10
33
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- 浏览器 WebSocket client
|
|
14
|
-
- 自动接入页面桥接
|
|
15
|
-
- Node.js WebSocket bridge server
|
|
34
|
+
发布必须使用仓库的 `vcp-edit-engine-package-releaser` 流程,确保 `contracts`、engine、bridge 和模板/runtime 版本关系一起验证。
|
package/dist/auto-bootstrap.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SiteEditRenderDocument, SiteEditRenderEntry } from "@vcp-dev/contracts";
|
|
1
|
+
import type { SiteEditCompositionContext, SiteEditRenderDocument, SiteEditRenderEntry } from "@vcp-dev/contracts";
|
|
2
2
|
import { type SiteEditBridgeClient, type SiteEditBridge, type SiteEditBridgeConnectionStatus, type SiteEditBridgeConnectionState } from "./client.js";
|
|
3
3
|
import { type SiteEditFrameRuntimeBridgeStatus, type SiteEditFrameRuntimeRequestBody } from "./window-message.js";
|
|
4
4
|
declare global {
|
|
@@ -7,6 +7,8 @@ declare global {
|
|
|
7
7
|
__VCP_SITE_EDIT_AUTO_BOOTSTRAP__?: {
|
|
8
8
|
started: boolean;
|
|
9
9
|
routeId?: string;
|
|
10
|
+
composition?: SiteEditCompositionContext;
|
|
11
|
+
compositionKey?: string;
|
|
10
12
|
signature?: SiteEditAutoBootstrapSignature;
|
|
11
13
|
cleanup?: () => void;
|
|
12
14
|
syncRoute?: () => Promise<void>;
|
|
@@ -16,8 +18,17 @@ declare global {
|
|
|
16
18
|
}
|
|
17
19
|
export declare const VCP_SITE_EDIT_ROUTE_READY_EVENT = "vcp-site-edit:route-ready";
|
|
18
20
|
export declare const VCP_SITE_EDIT_BRIDGE_STATUS_EVENT = "vcp-site-edit:bridge-status";
|
|
21
|
+
export declare const VCP_PAGE_TEMPLATE_CONTEXT_MARKER_ATTRIBUTE = "data-vcp-page-template-context";
|
|
22
|
+
export declare const VCP_PAGE_TEMPLATE_CONTEXT_MARKER_VALUE = "1";
|
|
23
|
+
export declare const VCP_PAGE_TEMPLATE_ROUTE_ID_ATTRIBUTE = "data-vcp-route-id";
|
|
24
|
+
export declare const VCP_PAGE_TEMPLATE_EFFECTIVE_TEMPLATE_ID_ATTRIBUTE = "data-vcp-effective-template-id";
|
|
25
|
+
export declare const VCP_PAGE_TEMPLATE_CONTEXT_MARKER_SELECTOR = "[data-vcp-page-template-context=\"1\"]";
|
|
26
|
+
export declare const SITE_EDIT_COMPOSITION_MARKER_INVALID = "SITE_EDIT_COMPOSITION_MARKER_INVALID";
|
|
27
|
+
export declare const SITE_EDIT_COMPOSITION_RENDER_MISMATCH = "SITE_EDIT_COMPOSITION_RENDER_MISMATCH";
|
|
19
28
|
export type SiteEditRouteReadyDetail = {
|
|
20
|
-
|
|
29
|
+
composition: SiteEditCompositionContext;
|
|
30
|
+
editEngineVersion: string;
|
|
31
|
+
sequence: number;
|
|
21
32
|
version: number;
|
|
22
33
|
};
|
|
23
34
|
export type SiteEditBridgeStatusDetail = SiteEditFrameRuntimeBridgeStatus;
|
|
@@ -57,6 +68,12 @@ type BridgeFrameRuntimeRequestBody = Extract<SiteEditFrameRuntimeRequestBody, {
|
|
|
57
68
|
kind: "bridge-initialize-session" | "bridge-get-document" | "bridge-get-history-status" | "bridge-get-style-context" | "bridge-ensure-document-version" | "bridge-acknowledge-document-version" | "bridge-get-object-edit-context" | "bridge-get-class-name-source" | "bridge-get-source-tree" | "bridge-get-source-file" | "bridge-resolve-source-location" | "bridge-execute" | "bridge-undo" | "bridge-redo" | "bridge-subscribe" | "bridge-unsubscribe";
|
|
58
69
|
}>;
|
|
59
70
|
export declare function resolveSiteEditRouteId(pathname: string, basePath?: string): string;
|
|
71
|
+
export declare function readVcpPageTemplateContextMarker(documentLike: Pick<Document, "querySelectorAll">): SiteEditCompositionContext | null;
|
|
72
|
+
export declare function resolveBrowserCompositionContext(input: {
|
|
73
|
+
pathname: string;
|
|
74
|
+
document: Pick<Document, "querySelectorAll">;
|
|
75
|
+
basePath?: string;
|
|
76
|
+
}): SiteEditCompositionContext;
|
|
60
77
|
export declare function resolveSiteEditWebSocketUrl(windowLike: Pick<Window, "location">, options?: {
|
|
61
78
|
explicit_ws_url?: string;
|
|
62
79
|
port?: string;
|