@vcp-dev/site-edit-bridge 0.8.4 → 0.8.5

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.
@@ -19,12 +19,6 @@ export declare function createVcpWindowMessageEnvelope<TNamespace extends string
19
19
  export declare function isVcpWindowMessageEnvelope(value: unknown): value is VcpWindowMessageEnvelope;
20
20
  export declare const SITE_EDIT_WINDOW_MESSAGE_NAMESPACE = "site-edit";
21
21
  export declare const SITE_EDIT_FRAME_RUNTIME_CHANNEL = "frame-runtime";
22
- /**
23
- * 嵌入运行时用来喊「我起来了」的独立通道。它不带 sessionKey,父页只能把它当
24
- * 作「重发探针」的信号,绝不能当数据用——所以它必须与已认证的 frame-runtime
25
- * 协议分开,两边的 type guard 互不接受对方通道的消息。
26
- */
27
- export declare const SITE_EDIT_FRAME_ANNOUNCE_CHANNEL = "frame-announce";
28
22
  export declare const SITE_EDIT_FRAME_RUNTIME_LAYOUT_SNAPSHOT_VERSION = 1;
29
23
  export declare const SITE_EDIT_FRAME_RUNTIME_SELECTION_VISUAL_VERSION = 1;
30
24
  export declare const SITE_EDIT_FRAME_RUNTIME_RESIZE_VISUAL_VERSION = 1;
@@ -570,11 +564,5 @@ export type SiteEditFrameRuntimeEventMessage = SiteEditFrameRuntimeMessage & {
570
564
  export declare function createSiteEditFrameRuntimeMessage(body: SiteEditFrameRuntimeBody, options?: {
571
565
  sessionKey?: string;
572
566
  }): SiteEditFrameRuntimeMessage;
573
- export type SiteEditFrameAnnounceBody = {
574
- type: "announce";
575
- };
576
- export type SiteEditFrameAnnounceMessage = VcpWindowMessageEnvelope<typeof SITE_EDIT_WINDOW_MESSAGE_NAMESPACE, typeof SITE_EDIT_FRAME_ANNOUNCE_CHANNEL, SiteEditFrameAnnounceBody>;
577
- export declare function createSiteEditFrameAnnounceMessage(): SiteEditFrameAnnounceMessage;
578
- export declare function isSiteEditFrameAnnounceMessage(value: unknown): value is SiteEditFrameAnnounceMessage;
579
567
  export declare function isSiteEditFrameRuntimeMessage(value: unknown): value is SiteEditFrameRuntimeMessage;
580
568
  export declare function isSiteEditFrameRuntimeLayoutSnapshot(value: unknown): value is SiteEditFrameRuntimeLayoutSnapshot;
@@ -1 +1 @@
1
- function S(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}var F="vcp-window-message",C=1;function V(e){return{source:F,version:C,namespace:e.namespace,channel:e.channel,...e.sessionKey?{sessionKey:e.sessionKey}:{},body:e.body}}function D(e){try{return i(e)?a(e,"source",F)&&a(e,"version",C)&&o(e,"namespace")&&o(e,"channel")&&f(e,"body")&&(!h(e,"sessionKey")||o(e,"sessionKey")):!1}catch{return!1}}var _="site-edit",P="frame-runtime",M="frame-announce",q=1,N=1,T=1,le=24;function he(e,n={}){return V({namespace:_,channel:P,sessionKey:n.sessionKey,body:e})}function be(){return V({namespace:_,channel:M,body:{type:"announce"}})}function Ie(e){try{return!D(e)||e.namespace!==_||e.channel!==M?!1:i(e.body)&&a(e.body,"type","announce")&&u(e.body,["type"])}catch{return!1}}function Se(e){try{return!D(e)||e.namespace!==_||e.channel!==P?!1:me(e.body)}catch{return!1}}function y(e){return i(e)&&o(e,"routeId")&&l(e,"templateId")&&u(e,["routeId","templateId"])}function R(e){return i(e)&&o(e,"routeId")&&l(e,"effectiveTemplateId")&&u(e,["routeId","effectiveTemplateId"])}function u(e,n){let t=new Set(n);return Reflect.ownKeys(e).every(s=>typeof s=="string"&&t.has(s))}var h=(e,n)=>Object.prototype.hasOwnProperty.call(e,n);function f(e,n){let t=Object.getOwnPropertyDescriptor(e,n);return t!==void 0&&"value"in t}function r(e,n){return Object.getOwnPropertyDescriptor(e,n)?.value}function a(e,n,t){return f(e,n)&&r(e,n)===t}function o(e,n){return f(e,n)&&typeof r(e,n)=="string"}function x(e,n){return f(e,n)&&typeof r(e,n)=="boolean"}function c(e,n){let t=r(e,n);return f(e,n)&&typeof t=="number"&&Number.isFinite(t)}function U(e,n){let t=r(e,n);return f(e,n)&&typeof t=="number"&&Number.isInteger(t)&&t>0}function l(e,n){return!h(e,n)||r(e,n)===void 0||o(e,n)}function b(e,n){return!h(e,n)||r(e,n)===void 0||c(e,n)}function w(e,n){let t=r(e,n);return!h(e,n)||t===void 0||f(e,n)&&typeof t=="number"&&Number.isInteger(t)&&t>=0}function d(e,n){return!h(e,n)||r(e,n)===void 0}function i(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function j(e){return i(e)&&Reflect.ownKeys(e).length===0}function O(e){if(!Array.isArray(e))return!1;for(let n=0;n<e.length;n+=1){let t=Object.getOwnPropertyDescriptor(e,String(n));if(t===void 0||!("value"in t)||typeof t.value!="string")return!1}return!0}function m(e){return i(e)&&o(e,"key")&&w(e,"instanceIndex")&&w(e,"instanceCount")&&w(e,"textSegmentIndex")}function H(e){return i(e)&&o(e,"blockId")&&m(r(e,"ref"))&&E(r(e,"rect"))&&x(e,"targetIsSectionRoot")}function X(e){if(!i(e))return!1;let n=r(e,"placement"),t=r(e,"boundary");return o(e,"anchorBlockId")&&m(r(e,"anchorRef"))&&(n==="before"||n==="after")&&i(t)&&c(t,"top")&&c(t,"left")&&c(t,"width")}function E(e){return i(e)&&["top","left","width","height"].every(n=>c(e,n))}function K(e){if(!i(e))return!1;let n=r(e,"rect"),t=r(e,"layout"),s=i(t)?r(t,"containingBlock"):null,p=r(e,"scrollContext"),g=i(s)&&(a(s,"kind","viewport")&&Reflect.ownKeys(s).length===1||a(s,"kind","document")&&Reflect.ownKeys(s).length===1||a(s,"kind","element")&&o(s,"runtimeNodeId"));return a(e,"version",q)&&o(e,"runtimeNodeId")&&i(n)&&E(r(n,"viewport"))&&E(r(n,"document"))&&i(t)&&o(t,"position")&&o(t,"transform")&&g&&i(p)&&["scrollX","scrollY","viewportWidth","viewportHeight"].every(I=>c(p,I))&&f(p,"scrollContainers")&&Y(r(p,"scrollContainers"))}function Y(e){return Array.isArray(e)&&e.every(n=>i(n)&&o(n,"runtimeNodeId")&&c(n,"scrollLeft")&&c(n,"scrollTop"))}function A(e){return i(e)&&(d(e,"layoutSnapshot")||K(r(e,"layoutSnapshot")))}function k(e){return i(e)&&m(r(e,"ref"))&&f(e,"layoutSnapshot")&&K(r(e,"layoutSnapshot"))&&(d(e,"childBoxes")||Q(r(e,"childBoxes")))&&(d(e,"childRects")||J(r(e,"childRects")))&&(d(e,"layout")||Z(r(e,"layout")))&&(d(e,"spacing")||$(r(e,"spacing")))}function Z(e){if(!i(e))return!1;let n=r(e,"indicatorOrientation");return o(e,"display")&&(n==="horizontal"||n==="vertical")&&l(e,"flexDirection")&&l(e,"gridAutoFlow")}function J(e){return Array.isArray(e)&&e.every(n=>E(n))}function Q(e){return Array.isArray(e)&&e.every(n=>i(n)&&E(r(n,"rect"))&&L(r(n,"margin")))}function L(e){return i(e)&&["marginTop","marginRight","marginBottom","marginLeft"].every(n=>c(e,n))}function $(e){return L(e)&&["paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","columnGap","rowGap"].every(n=>c(e,n))}function v(e){if(!Array.isArray(e))return!1;for(let n=0;n<e.length;n+=1){let t=Object.getOwnPropertyDescriptor(e,String(n));if(t===void 0||!("value"in t)||!k(t.value))return!1}return!0}function ee(e){return i(e)&&Reflect.ownKeys(e).every(n=>typeof n=="string"&&f(e,n)&&(typeof r(e,n)=="string"||r(e,n)===null))}function W(e){return e==null||typeof e=="string"||typeof e=="number"&&Number.isFinite(e)}function te(e){return i(e)&&Reflect.ownKeys(e).every(n=>typeof n=="string"&&f(e,n)&&W(r(e,n)))}function ne(e){if(!i(e))return!1;let n=r(e,"priority");return o(e,"property")&&f(e,"value")&&W(r(e,"value"))&&(!h(e,"priority")||n===void 0||n==="important")}function re(e){return i(e)?(d(e,"attributes")||ee(r(e,"attributes")))&&l(e,"className")&&(d(e,"style")||te(r(e,"style")))&&(d(e,"styleDeclarations")||Array.isArray(r(e,"styleDeclarations"))&&r(e,"styleDeclarations").every(ne)):!1}function ie(e){return i(e)&&c(e,"x")&&c(e,"y")&&(d(e,"detailLevel")||a(e,"detailLevel","summary")||a(e,"detailLevel","full"))}function oe(e){return i(e)&&m(r(e,"ref"))}function se(e){if(!i(e)||!i(r(e,"variables")))return!1;let n=r(e,"variables");return Reflect.ownKeys(n).every(t=>typeof t=="string"&&o(n,t))?d(e,"stylesheets")||O(r(e,"stylesheets")):!1}function ce(e){if(!a(e,"type","request")||!o(e,"id")||!o(e,"kind")||!f(e,"payload"))return!1;let n=r(e,"kind"),t=r(e,"payload");switch(n){case"hit-test-at-point":case"start-text-edit-at-point":return ie(t);case"bridge-get-source-tree":return i(t)&&y(r(t,"composition"))&&u(t,["composition"]);case"get-scroll-metrics":case"clear-theme-override":return j(t);case"bridge-get-history-status":case"bridge-undo":case"bridge-redo":return i(t)&&y(r(t,"composition"))&&u(t,["composition"]);case"bridge-get-source-file":return i(t)&&o(t,"path")&&y(r(t,"composition"))&&u(t,["path","composition"]);case"bridge-resolve-source-location":case"bridge-get-object-edit-context":case"bridge-get-class-name-source":return i(t)&&o(t,"key")&&y(r(t,"composition"))&&u(t,["key","composition"]);case"scroll-to":return i(t)&&c(t,"x")&&c(t,"y");case"scroll-by":return i(t)&&c(t,"deltaX")&&c(t,"deltaY");case"set-interaction-mode":return i(t)&&x(t,"enabled");case"set-selection-visual":return i(t)&&a(t,"version",N)&&m(r(t,"ref"))&&a(t,"visible",!0);case"clear-selection-visual":return i(t)&&a(t,"version",N);case"set-resize-visual":return i(t)&&a(t,"version",T)&&m(r(t,"ref"))&&a(t,"visible",!0);case"clear-resize-visual":return i(t)&&a(t,"version",T);case"set-theme-override":return se(t);case"get-theme-variables":return i(t)&&O(r(t,"names"));case"compute-drop-target-at-point":return i(t)&&c(t,"x")&&c(t,"y")&&(a(t,"dragKind","insert")||a(t,"dragKind","move"))&&(d(t,"movingRef")||m(r(t,"movingRef")));case"observe-node-bounds":case"clear-node-bounds-observer":return i(t)&&(d(t,"ref")||m(r(t,"ref")));case"apply-node-patch":return i(t)&&m(r(t,"ref"))&&re(r(t,"patch"))&&(d(t,"preview")||i(r(t,"preview"))&&o(r(t,"preview"),"sessionId")&&w(r(t,"preview"),"revision")&&h(r(t,"preview"),"revision"));case"get-hit-by-ref":case"get-path-by-ref":case"restore-text-edit":case"clear-text-edit-rollback":return oe(t);case"bridge-initialize-session":case"bridge-get-style-context":return i(t)&&y(r(t,"composition"))&&u(t,["composition"]);case"bridge-get-document":case"bridge-ensure-document-version":case"bridge-acknowledge-document-version":return i(t)&&y(r(t,"composition"))&&b(t,"minVersion")&&b(t,"version")&&u(t,["composition","minVersion","version"]);case"bridge-execute":{if(!i(t))return!1;let s=r(t,"request"),p=r(t,"composition"),g=i(s)?r(s,"composition"):null;return!y(p)||!i(s)||!y(g)?!1:S({routeId:p.routeId,...p.templateId?{effectiveTemplateId:p.templateId}:{}})===S({routeId:g.routeId,...g.templateId?{effectiveTemplateId:g.templateId}:{}})&&u(t,["composition","request"])}case"bridge-subscribe":case"bridge-unsubscribe":return i(t)&&o(t,"subscriptionId")&&y(r(t,"composition"))&&u(t,["subscriptionId","composition"]);default:return!1}}function ae(e){return a(e,"type","response")&&o(e,"id")&&x(e,"ok")&&(d(e,"error")||o(e,"error"))}function de(e){if(!i(e))return!1;let n=r(e,"type");if(typeof n!="string"||!R(r(e,"composition"))||!o(e,"siteId")||!o(e,"at"))return!1;switch(n){case"site-edit.document.changed":return o(e,"snapshotId")&&c(e,"version");case"site-edit.operation.planned":return o(e,"operationId")&&o(e,"baseSnapshotId")&&O(r(e,"changedFiles"));case"site-edit.operation.completed":return i(r(e,"result"));case"site-edit.operation.failed":return o(e,"requestId")&&i(r(e,"error"));case"site-edit.capability.changed":return O(r(e,"keys"));case"site-edit.graph.invalidated":return!0;case"site-edit.graph.ready":return c(e,"version");case"site-edit.graph.error":return o(e,"message");default:return!1}}var pe=new Set(["pointer-down","pointer-move","pointer-leave","pointer-up","pointer-cancel","pointer-click","pointer-double-click"]),B=new Set(["e","s","se"]);function fe(e,n){if(d(e,"resizeSession"))return!0;let t=r(e,"resizeSession");if(!i(t))return!1;let s=r(e,"pointerId"),p=r(t,"pointerId"),g=r(t,"phase"),I=r(t,"edge"),G=n==="pointer-down"?"start":n==="pointer-up"?"commit":n==="pointer-cancel"?"cancel":null;return r(t,"version")===1&&g===G&&o(t,"sessionId")&&String(r(t,"sessionId")).length>0&&typeof s=="number"&&Number.isInteger(s)&&typeof p=="number"&&Number.isInteger(p)&&s===p&&typeof I=="string"&&B.has(I)&&r(e,"resizeEdge")===I&&m(r(t,"ref"))&&["startWidth","startHeight","width","height"].every(z=>c(t,z))}function ue(e){if(!a(e,"type","event")||!o(e,"kind")||!i(r(e,"payload")))return!1;let n=r(e,"kind"),t=r(e,"payload");switch(n){case"text-edit-commit":case"text-edit-cancel":case"text-edit-exit":case"text-edit-input":return m(r(t,"ref"))&&l(t,"value")&&(d(t,"hit")||A(r(t,"hit")));case"node-bounds-change":return A(r(t,"hit"));case"geometry-batch":{let s=r(t,"reason");return U(t,"sequence")&&c(t,"sourceEventAt")&&c(t,"captureStartedAt")&&c(t,"capturedAt")&&(s==="scroll"||s==="resize"||s==="mutation")&&v(r(t,"snapshots"))}case"bridge-event":{let s=r(t,"event"),p=r(t,"composition");return!de(s)||!R(p)?!1:o(t,"subscriptionId")&&S(p)===S(s.composition)}case"route-ready":return R(r(t,"composition"))&&o(t,"editEngineVersion")&&c(t,"sequence")&&c(t,"version");case"bridge-status":{let s=r(t,"state");return(s==="connecting"||s==="ready"||s==="reconnecting"||s==="failed"||s==="reload-required")&&R(r(t,"composition"))&&c(t,"sequence")&&b(t,"attempt")&&b(t,"retryInMs")&&l(t,"messageKey")}case"scroll":{let s=r(t,"metrics");return i(s)&&["scrollX","scrollY","scrollWidth","scrollHeight","viewportWidth","viewportHeight"].every(p=>c(s,p))}default:return pe.has(n)&&c(t,"clientX")&&c(t,"clientY")&&b(t,"buttons")&&b(t,"pointerId")&&(d(t,"hoverVisualOwned")||x(t,"hoverVisualOwned"))&&(d(t,"resizeEdge")||o(t,"resizeEdge")&&B.has(r(t,"resizeEdge")))&&fe(t,n)&&(r(t,"hit")===null||A(r(t,"hit")))&&(d(t,"section")||r(t,"section")===null||H(r(t,"section")))&&(d(t,"sectionGap")||r(t,"sectionGap")===null||X(r(t,"sectionGap")))}}function me(e){if(!i(e))return!1;switch(r(e,"type")){case"request":return ce(e);case"response":return ae(e);case"event":return ue(e);default:return!1}}export{M as SITE_EDIT_FRAME_ANNOUNCE_CHANNEL,P as SITE_EDIT_FRAME_RUNTIME_CHANNEL,q as SITE_EDIT_FRAME_RUNTIME_LAYOUT_SNAPSHOT_VERSION,T as SITE_EDIT_FRAME_RUNTIME_RESIZE_VISUAL_VERSION,N as SITE_EDIT_FRAME_RUNTIME_SELECTION_VISUAL_VERSION,le as SITE_EDIT_FRAME_SECTION_GAP_RADIUS_PX,_ as SITE_EDIT_WINDOW_MESSAGE_NAMESPACE,F as VCP_WINDOW_MESSAGE_SOURCE,C as VCP_WINDOW_MESSAGE_VERSION,be as createSiteEditFrameAnnounceMessage,he as createSiteEditFrameRuntimeMessage,V as createVcpWindowMessageEnvelope,Ie as isSiteEditFrameAnnounceMessage,K as isSiteEditFrameRuntimeLayoutSnapshot,Se as isSiteEditFrameRuntimeMessage,D as isVcpWindowMessageEnvelope};
1
+ function S(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}var T="vcp-window-message",F=1;function B(e){return{source:T,version:F,namespace:e.namespace,channel:e.channel,...e.sessionKey?{sessionKey:e.sessionKey}:{},body:e.body}}function G(e){try{return i(e)?d(e,"source",T)&&d(e,"version",F)&&o(e,"namespace")&&o(e,"channel")&&f(e,"body")&&(!h(e,"sessionKey")||o(e,"sessionKey")):!1}catch{return!1}}var V="site-edit",C="frame-runtime",z=1,A=1,N=1,le=24;function ge(e,r={}){return B({namespace:V,channel:C,sessionKey:r.sessionKey,body:e})}function he(e){try{return!G(e)||e.namespace!==V||e.channel!==C?!1:ue(e.body)}catch{return!1}}function y(e){return i(e)&&o(e,"routeId")&&g(e,"templateId")&&m(e,["routeId","templateId"])}function R(e){return i(e)&&o(e,"routeId")&&g(e,"effectiveTemplateId")&&m(e,["routeId","effectiveTemplateId"])}function m(e,r){let t=new Set(r);return Reflect.ownKeys(e).every(s=>typeof s=="string"&&t.has(s))}var h=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);function f(e,r){let t=Object.getOwnPropertyDescriptor(e,r);return t!==void 0&&"value"in t}function n(e,r){return Object.getOwnPropertyDescriptor(e,r)?.value}function d(e,r,t){return f(e,r)&&n(e,r)===t}function o(e,r){return f(e,r)&&typeof n(e,r)=="string"}function _(e,r){return f(e,r)&&typeof n(e,r)=="boolean"}function c(e,r){let t=n(e,r);return f(e,r)&&typeof t=="number"&&Number.isFinite(t)}function q(e,r){let t=n(e,r);return f(e,r)&&typeof t=="number"&&Number.isInteger(t)&&t>0}function g(e,r){return!h(e,r)||n(e,r)===void 0||o(e,r)}function b(e,r){return!h(e,r)||n(e,r)===void 0||c(e,r)}function w(e,r){let t=n(e,r);return!h(e,r)||t===void 0||f(e,r)&&typeof t=="number"&&Number.isInteger(t)&&t>=0}function a(e,r){return!h(e,r)||n(e,r)===void 0}function i(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let r=Object.getPrototypeOf(e);return r===Object.prototype||r===null}function U(e){return i(e)&&Reflect.ownKeys(e).length===0}function O(e){if(!Array.isArray(e))return!1;for(let r=0;r<e.length;r+=1){let t=Object.getOwnPropertyDescriptor(e,String(r));if(t===void 0||!("value"in t)||typeof t.value!="string")return!1}return!0}function u(e){return i(e)&&o(e,"key")&&w(e,"instanceIndex")&&w(e,"instanceCount")&&w(e,"textSegmentIndex")}function j(e){return i(e)&&o(e,"blockId")&&u(n(e,"ref"))&&E(n(e,"rect"))&&_(e,"targetIsSectionRoot")}function H(e){if(!i(e))return!1;let r=n(e,"placement"),t=n(e,"boundary");return o(e,"anchorBlockId")&&u(n(e,"anchorRef"))&&(r==="before"||r==="after")&&i(t)&&c(t,"top")&&c(t,"left")&&c(t,"width")}function E(e){return i(e)&&["top","left","width","height"].every(r=>c(e,r))}function P(e){if(!i(e))return!1;let r=n(e,"rect"),t=n(e,"layout"),s=i(t)?n(t,"containingBlock"):null,p=n(e,"scrollContext"),l=i(s)&&(d(s,"kind","viewport")&&Reflect.ownKeys(s).length===1||d(s,"kind","document")&&Reflect.ownKeys(s).length===1||d(s,"kind","element")&&o(s,"runtimeNodeId"));return d(e,"version",z)&&o(e,"runtimeNodeId")&&i(r)&&E(n(r,"viewport"))&&E(n(r,"document"))&&i(t)&&o(t,"position")&&o(t,"transform")&&l&&i(p)&&["scrollX","scrollY","viewportWidth","viewportHeight"].every(I=>c(p,I))&&f(p,"scrollContainers")&&X(n(p,"scrollContainers"))}function X(e){return Array.isArray(e)&&e.every(r=>i(r)&&o(r,"runtimeNodeId")&&c(r,"scrollLeft")&&c(r,"scrollTop"))}function x(e){return i(e)&&(a(e,"layoutSnapshot")||P(n(e,"layoutSnapshot")))}function Y(e){return i(e)&&u(n(e,"ref"))&&f(e,"layoutSnapshot")&&P(n(e,"layoutSnapshot"))&&(a(e,"childBoxes")||J(n(e,"childBoxes")))&&(a(e,"childRects")||Z(n(e,"childRects")))&&(a(e,"layout")||k(n(e,"layout")))&&(a(e,"spacing")||Q(n(e,"spacing")))}function k(e){if(!i(e))return!1;let r=n(e,"indicatorOrientation");return o(e,"display")&&(r==="horizontal"||r==="vertical")&&g(e,"flexDirection")&&g(e,"gridAutoFlow")}function Z(e){return Array.isArray(e)&&e.every(r=>E(r))}function J(e){return Array.isArray(e)&&e.every(r=>i(r)&&E(n(r,"rect"))&&D(n(r,"margin")))}function D(e){return i(e)&&["marginTop","marginRight","marginBottom","marginLeft"].every(r=>c(e,r))}function Q(e){return D(e)&&["paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","columnGap","rowGap"].every(r=>c(e,r))}function $(e){if(!Array.isArray(e))return!1;for(let r=0;r<e.length;r+=1){let t=Object.getOwnPropertyDescriptor(e,String(r));if(t===void 0||!("value"in t)||!Y(t.value))return!1}return!0}function v(e){return i(e)&&Reflect.ownKeys(e).every(r=>typeof r=="string"&&f(e,r)&&(typeof n(e,r)=="string"||n(e,r)===null))}function K(e){return e==null||typeof e=="string"||typeof e=="number"&&Number.isFinite(e)}function ee(e){return i(e)&&Reflect.ownKeys(e).every(r=>typeof r=="string"&&f(e,r)&&K(n(e,r)))}function te(e){if(!i(e))return!1;let r=n(e,"priority");return o(e,"property")&&f(e,"value")&&K(n(e,"value"))&&(!h(e,"priority")||r===void 0||r==="important")}function re(e){return i(e)?(a(e,"attributes")||v(n(e,"attributes")))&&g(e,"className")&&(a(e,"style")||ee(n(e,"style")))&&(a(e,"styleDeclarations")||Array.isArray(n(e,"styleDeclarations"))&&n(e,"styleDeclarations").every(te)):!1}function ne(e){return i(e)&&c(e,"x")&&c(e,"y")&&(a(e,"detailLevel")||d(e,"detailLevel","summary")||d(e,"detailLevel","full"))}function ie(e){return i(e)&&u(n(e,"ref"))}function oe(e){if(!i(e)||!i(n(e,"variables")))return!1;let r=n(e,"variables");return Reflect.ownKeys(r).every(t=>typeof t=="string"&&o(r,t))?a(e,"stylesheets")||O(n(e,"stylesheets")):!1}function se(e){if(!d(e,"type","request")||!o(e,"id")||!o(e,"kind")||!f(e,"payload"))return!1;let r=n(e,"kind"),t=n(e,"payload");switch(r){case"hit-test-at-point":case"start-text-edit-at-point":return ne(t);case"bridge-get-source-tree":return i(t)&&y(n(t,"composition"))&&m(t,["composition"]);case"get-scroll-metrics":case"clear-theme-override":return U(t);case"bridge-get-history-status":case"bridge-undo":case"bridge-redo":return i(t)&&y(n(t,"composition"))&&m(t,["composition"]);case"bridge-get-source-file":return i(t)&&o(t,"path")&&y(n(t,"composition"))&&m(t,["path","composition"]);case"bridge-resolve-source-location":case"bridge-get-object-edit-context":case"bridge-get-class-name-source":return i(t)&&o(t,"key")&&y(n(t,"composition"))&&m(t,["key","composition"]);case"scroll-to":return i(t)&&c(t,"x")&&c(t,"y");case"scroll-by":return i(t)&&c(t,"deltaX")&&c(t,"deltaY");case"set-interaction-mode":return i(t)&&_(t,"enabled");case"set-selection-visual":return i(t)&&d(t,"version",A)&&u(n(t,"ref"))&&d(t,"visible",!0);case"clear-selection-visual":return i(t)&&d(t,"version",A);case"set-resize-visual":return i(t)&&d(t,"version",N)&&u(n(t,"ref"))&&d(t,"visible",!0);case"clear-resize-visual":return i(t)&&d(t,"version",N);case"set-theme-override":return oe(t);case"get-theme-variables":return i(t)&&O(n(t,"names"));case"compute-drop-target-at-point":return i(t)&&c(t,"x")&&c(t,"y")&&(d(t,"dragKind","insert")||d(t,"dragKind","move"))&&(a(t,"movingRef")||u(n(t,"movingRef")));case"observe-node-bounds":case"clear-node-bounds-observer":return i(t)&&(a(t,"ref")||u(n(t,"ref")));case"apply-node-patch":return i(t)&&u(n(t,"ref"))&&re(n(t,"patch"))&&(a(t,"preview")||i(n(t,"preview"))&&o(n(t,"preview"),"sessionId")&&w(n(t,"preview"),"revision")&&h(n(t,"preview"),"revision"));case"get-hit-by-ref":case"get-path-by-ref":case"restore-text-edit":case"clear-text-edit-rollback":return ie(t);case"bridge-initialize-session":case"bridge-get-style-context":return i(t)&&y(n(t,"composition"))&&m(t,["composition"]);case"bridge-get-document":case"bridge-ensure-document-version":case"bridge-acknowledge-document-version":return i(t)&&y(n(t,"composition"))&&b(t,"minVersion")&&b(t,"version")&&m(t,["composition","minVersion","version"]);case"bridge-execute":{if(!i(t))return!1;let s=n(t,"request"),p=n(t,"composition"),l=i(s)?n(s,"composition"):null;return!y(p)||!i(s)||!y(l)?!1:S({routeId:p.routeId,...p.templateId?{effectiveTemplateId:p.templateId}:{}})===S({routeId:l.routeId,...l.templateId?{effectiveTemplateId:l.templateId}:{}})&&m(t,["composition","request"])}case"bridge-subscribe":case"bridge-unsubscribe":return i(t)&&o(t,"subscriptionId")&&y(n(t,"composition"))&&m(t,["subscriptionId","composition"]);default:return!1}}function ce(e){return d(e,"type","response")&&o(e,"id")&&_(e,"ok")&&(a(e,"error")||o(e,"error"))}function ae(e){if(!i(e))return!1;let r=n(e,"type");if(typeof r!="string"||!R(n(e,"composition"))||!o(e,"siteId")||!o(e,"at"))return!1;switch(r){case"site-edit.document.changed":return o(e,"snapshotId")&&c(e,"version");case"site-edit.operation.planned":return o(e,"operationId")&&o(e,"baseSnapshotId")&&O(n(e,"changedFiles"));case"site-edit.operation.completed":return i(n(e,"result"));case"site-edit.operation.failed":return o(e,"requestId")&&i(n(e,"error"));case"site-edit.capability.changed":return O(n(e,"keys"));case"site-edit.graph.invalidated":return!0;case"site-edit.graph.ready":return c(e,"version");case"site-edit.graph.error":return o(e,"message");default:return!1}}var de=new Set(["pointer-down","pointer-move","pointer-leave","pointer-up","pointer-cancel","pointer-click","pointer-double-click"]),M=new Set(["e","s","se"]);function pe(e,r){if(a(e,"resizeSession"))return!0;let t=n(e,"resizeSession");if(!i(t))return!1;let s=n(e,"pointerId"),p=n(t,"pointerId"),l=n(t,"phase"),I=n(t,"edge"),L=r==="pointer-down"?"start":r==="pointer-up"?"commit":r==="pointer-cancel"?"cancel":null;return n(t,"version")===1&&l===L&&o(t,"sessionId")&&String(n(t,"sessionId")).length>0&&typeof s=="number"&&Number.isInteger(s)&&typeof p=="number"&&Number.isInteger(p)&&s===p&&typeof I=="string"&&M.has(I)&&n(e,"resizeEdge")===I&&u(n(t,"ref"))&&["startWidth","startHeight","width","height"].every(W=>c(t,W))}function fe(e){if(!d(e,"type","event")||!o(e,"kind")||!i(n(e,"payload")))return!1;let r=n(e,"kind"),t=n(e,"payload");switch(r){case"text-edit-commit":case"text-edit-cancel":case"text-edit-exit":case"text-edit-input":return u(n(t,"ref"))&&g(t,"value")&&(a(t,"hit")||x(n(t,"hit")));case"node-bounds-change":return x(n(t,"hit"));case"geometry-batch":{let s=n(t,"reason");return q(t,"sequence")&&c(t,"sourceEventAt")&&c(t,"captureStartedAt")&&c(t,"capturedAt")&&(s==="scroll"||s==="resize"||s==="mutation")&&$(n(t,"snapshots"))}case"bridge-event":{let s=n(t,"event"),p=n(t,"composition");return!ae(s)||!R(p)?!1:o(t,"subscriptionId")&&S(p)===S(s.composition)}case"route-ready":return R(n(t,"composition"))&&o(t,"editEngineVersion")&&c(t,"sequence")&&c(t,"version");case"bridge-status":{let s=n(t,"state");return(s==="connecting"||s==="ready"||s==="reconnecting"||s==="failed"||s==="reload-required")&&R(n(t,"composition"))&&c(t,"sequence")&&b(t,"attempt")&&b(t,"retryInMs")&&g(t,"messageKey")}case"scroll":{let s=n(t,"metrics");return i(s)&&["scrollX","scrollY","scrollWidth","scrollHeight","viewportWidth","viewportHeight"].every(p=>c(s,p))}default:return de.has(r)&&c(t,"clientX")&&c(t,"clientY")&&b(t,"buttons")&&b(t,"pointerId")&&(a(t,"hoverVisualOwned")||_(t,"hoverVisualOwned"))&&(a(t,"resizeEdge")||o(t,"resizeEdge")&&M.has(n(t,"resizeEdge")))&&pe(t,r)&&(n(t,"hit")===null||x(n(t,"hit")))&&(a(t,"section")||n(t,"section")===null||j(n(t,"section")))&&(a(t,"sectionGap")||n(t,"sectionGap")===null||H(n(t,"sectionGap")))}}function ue(e){if(!i(e))return!1;switch(n(e,"type")){case"request":return se(e);case"response":return ce(e);case"event":return fe(e);default:return!1}}export{C as SITE_EDIT_FRAME_RUNTIME_CHANNEL,z as SITE_EDIT_FRAME_RUNTIME_LAYOUT_SNAPSHOT_VERSION,N as SITE_EDIT_FRAME_RUNTIME_RESIZE_VISUAL_VERSION,A as SITE_EDIT_FRAME_RUNTIME_SELECTION_VISUAL_VERSION,le as SITE_EDIT_FRAME_SECTION_GAP_RADIUS_PX,V as SITE_EDIT_WINDOW_MESSAGE_NAMESPACE,T as VCP_WINDOW_MESSAGE_SOURCE,F as VCP_WINDOW_MESSAGE_VERSION,ge as createSiteEditFrameRuntimeMessage,B as createVcpWindowMessageEnvelope,P as isSiteEditFrameRuntimeLayoutSnapshot,he as isSiteEditFrameRuntimeMessage,G as isVcpWindowMessageEnvelope};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcp-dev/site-edit-bridge",
3
- "version": "0.8.4",
3
+ "version": "0.8.5",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -74,8 +74,8 @@
74
74
  "typecheck": "tsc -p tsconfig.json --noEmit"
75
75
  },
76
76
  "dependencies": {
77
- "@vcp-dev/contracts": "0.8.4",
78
- "@vcp-dev/site-edit-engine": "0.8.4",
77
+ "@vcp-dev/contracts": "0.8.5",
78
+ "@vcp-dev/site-edit-engine": "0.8.5",
79
79
  "@types/ws": "^8.18.1",
80
80
  "ws": "^8.20.1"
81
81
  },