@vcp-dev/site-edit-bridge 0.9.6 → 0.10.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/dist/auto-bootstrap.js +4 -4
- package/dist/client.d.ts +59 -5
- package/dist/client.js +1 -1
- package/dist/index.js +15 -15
- package/dist/next-dev-server.js +3 -3
- package/dist/property-preview.d.ts +26 -0
- package/dist/protocol.d.ts +8 -3
- package/dist/protocol.js +29 -1
- package/dist/server.js +2 -2
- package/dist/window-message.d.ts +12 -1
- package/dist/window-message.js +1 -1
- package/package.json +3 -3
package/dist/window-message.js
CHANGED
|
@@ -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
|
+
import{SiteEditOperationSelectionRefSchema as te}from"@vcp-dev/contracts";function I(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}import{SiteEditSetPropsParamsSchema as Y,classifySiteEditPropertyName as N}from"@vcp-dev/contracts";var Z={allowFullScreen:"allowfullscreen",acceptCharset:"accept-charset",autoComplete:"autocomplete",autoFocus:"autofocus",autoPlay:"autoplay",cellPadding:"cellpadding",cellSpacing:"cellspacing",charSet:"charset",colSpan:"colspan",crossOrigin:"crossorigin",dateTime:"datetime",encType:"enctype",formAction:"formaction",formEncType:"formenctype",formMethod:"formmethod",formNoValidate:"formnovalidate",formTarget:"formtarget",hrefLang:"hreflang",htmlFor:"for",httpEquiv:"http-equiv",inputMode:"inputmode",itemID:"itemid",itemProp:"itemprop",itemRef:"itemref",itemScope:"itemscope",itemType:"itemtype",keyParams:"keyparams",keyType:"keytype",noModule:"nomodule",playsInline:"playsinline",readOnly:"readonly",rowSpan:"rowspan",srcDoc:"srcdoc",srcLang:"srclang",srcSet:"srcset",tabIndex:"tabindex",useMap:"usemap"},P=new Set(["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","formNoValidate","hidden","inert","itemScope","loop","multiple","muted","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless"]),F=new Set(["checked","selected","value"]),C=new Set(["accept","alt","action","cite","color","content","coords","crossOrigin","dateTime","formAction","formMethod","formTarget","headers","href","hrefLang","id","kind","label","lang","list","max","media","method","min","name","pattern","poster","property","referrerPolicy","rel","role","scope","slot","src","srcDoc","srcLang","srcSet","step","target","title","type","useMap","width","height"]);function $(e){let n=Y.safeParse({kind:"set-props",scope:e.scope,changes:e.changes});if(!n.success)return _("Typed property changes are not previewable");if(e.element.kind!=="host")return _(`The '${e.element.tagName}' component may transform its props before rendering`);let t={};for(let i of n.data.changes){let c=J(i);if(!c)return _(`The DOM result for '${i.name}' cannot be proven equivalent`);t[c.name]=c.value}return e.runtimeAttributes,{mode:"dom",patch:{attributes:t}}}function J(e){if(N(e.name).owner!=="generic")return null;let t=e.name,i=D(t);if(!i||F.has(t))return null;if(e.operation==="remove")return{name:i,value:null};let c=e.value;return t==="download"?v(i,c):P.has(t)?Q(i,c):/^(aria|data)-[A-Za-z0-9_.:-]+$/u.test(t)?ee(i,c):C.has(t)?typeof c=="string"?{name:i,value:c}:typeof c=="number"&&Number.isFinite(c)?{name:i,value:String(c)}:c===null?{name:i,value:null}:null:null}function D(e){return N(e).owner!=="generic"?null:e==="download"||F.has(e)||P.has(e)||C.has(e)||/^(aria|data)-[A-Za-z0-9_.:-]+$/u.test(e)?Z[e]??e:null}function Q(e,n){return n===null||n===!1?{name:e,value:null}:n===!0?{name:e,value:""}:null}function v(e,n){return n===null||n===!1?{name:e,value:null}:n===!0?{name:e,value:""}:typeof n=="string"?{name:e,value:n}:null}function ee(e,n){return n===null?{name:e,value:null}:typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n)?{name:e,value:String(n)}:null}function _(e){return{mode:"after-render",reason:e}}var L="vcp-window-message",B=1;function K(e){return{source:L,version:B,namespace:e.namespace,channel:e.channel,...e.sessionKey?{sessionKey:e.sessionKey}:{},body:e.body}}function W(e){try{return o(e)?d(e,"source",L)&&d(e,"version",B)&&s(e,"namespace")&&s(e,"channel")&&f(e,"body")&&(!y(e,"sessionKey")||s(e,"sessionKey")):!1}catch{return!1}}var O="site-edit",k="frame-runtime",q="frame-announce",ne=1,M=1,V=1,Me=24;function Ve(e,n={}){return K({namespace:O,channel:k,sessionKey:n.sessionKey,body:e})}function Le(){return K({namespace:O,channel:q,body:{type:"announce"}})}function Be(e){try{return!W(e)||e.namespace!==O||e.channel!==q?!1:o(e.body)&&d(e.body,"type","announce")&&u(e.body,["type"])}catch{return!1}}function Ke(e){try{return!W(e)||e.namespace!==O||e.channel!==k?!1:xe(e.body)}catch{return!1}}function m(e){return o(e)&&s(e,"routeId")&&h(e,"templateId")&&u(e,["routeId","templateId"])}function w(e){return o(e)&&s(e,"routeId")&&h(e,"effectiveTemplateId")&&u(e,["routeId","effectiveTemplateId"])}function u(e,n){let t=new Set(n);return Reflect.ownKeys(e).every(i=>typeof i=="string"&&t.has(i))}var y=(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 d(e,n,t){return f(e,n)&&r(e,n)===t}function s(e,n){return f(e,n)&&typeof r(e,n)=="string"}function A(e,n){return f(e,n)&&typeof r(e,n)=="boolean"}function a(e,n){let t=r(e,n);return f(e,n)&&typeof t=="number"&&Number.isFinite(t)}function re(e,n){let t=r(e,n);return f(e,n)&&typeof t=="number"&&Number.isInteger(t)&&t>0}function h(e,n){return!y(e,n)||r(e,n)===void 0||s(e,n)}function b(e,n){return!y(e,n)||r(e,n)===void 0||a(e,n)}function R(e,n){let t=r(e,n);return!y(e,n)||t===void 0||f(e,n)&&typeof t=="number"&&Number.isInteger(t)&&t>=0}function p(e,n){return!y(e,n)||r(e,n)===void 0}function o(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function oe(e){return o(e)&&Reflect.ownKeys(e).length===0}function T(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 l(e){return o(e)&&s(e,"key")&&R(e,"instanceIndex")&&R(e,"instanceCount")&&R(e,"textSegmentIndex")}function ie(e){return o(e)&&s(e,"blockId")&&l(r(e,"ref"))&&E(r(e,"rect"))&&A(e,"targetIsSectionRoot")}function se(e){if(!o(e))return!1;let n=r(e,"placement"),t=r(e,"boundary");return s(e,"anchorBlockId")&&l(r(e,"anchorRef"))&&(n==="before"||n==="after")&&o(t)&&a(t,"top")&&a(t,"left")&&a(t,"width")}function E(e){return o(e)&&["top","left","width","height"].every(n=>a(e,n))}function G(e){if(!o(e))return!1;let n=r(e,"rect"),t=r(e,"layout"),i=o(t)?r(t,"containingBlock"):null,c=r(e,"scrollContext"),g=o(i)&&(d(i,"kind","viewport")&&Reflect.ownKeys(i).length===1||d(i,"kind","document")&&Reflect.ownKeys(i).length===1||d(i,"kind","element")&&s(i,"runtimeNodeId"));return d(e,"version",ne)&&s(e,"runtimeNodeId")&&o(n)&&E(r(n,"viewport"))&&E(r(n,"document"))&&o(t)&&s(t,"position")&&s(t,"transform")&&g&&o(c)&&["scrollX","scrollY","viewportWidth","viewportHeight"].every(S=>a(c,S))&&f(c,"scrollContainers")&&ce(r(c,"scrollContainers"))}function ce(e){return Array.isArray(e)&&e.every(n=>o(n)&&s(n,"runtimeNodeId")&&a(n,"scrollLeft")&&a(n,"scrollTop"))}function x(e){return o(e)&&(p(e,"layoutSnapshot")||G(r(e,"layoutSnapshot")))}function ae(e){return o(e)&&l(r(e,"ref"))&&f(e,"layoutSnapshot")&&G(r(e,"layoutSnapshot"))&&(p(e,"childBoxes")||ue(r(e,"childBoxes")))&&(p(e,"childRects")||pe(r(e,"childRects")))&&(p(e,"layout")||de(r(e,"layout")))&&(p(e,"spacing")||fe(r(e,"spacing")))}function de(e){if(!o(e))return!1;let n=r(e,"indicatorOrientation");return s(e,"display")&&(n==="horizontal"||n==="vertical")&&h(e,"flexDirection")&&h(e,"gridAutoFlow")}function pe(e){return Array.isArray(e)&&e.every(n=>E(n))}function ue(e){return Array.isArray(e)&&e.every(n=>o(n)&&E(r(n,"rect"))&&U(r(n,"margin")))}function U(e){return o(e)&&["marginTop","marginRight","marginBottom","marginLeft"].every(n=>a(e,n))}function fe(e){return U(e)&&["paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","columnGap","rowGap"].every(n=>a(e,n))}function le(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)||!ae(t.value))return!1}return!0}function me(e){return o(e)&&Reflect.ownKeys(e).every(n=>typeof n=="string"&&f(e,n)&&(typeof r(e,n)=="string"||r(e,n)===null))}function z(e){return e==null||typeof e=="string"||typeof e=="number"&&Number.isFinite(e)}function ye(e){return o(e)&&Reflect.ownKeys(e).every(n=>typeof n=="string"&&f(e,n)&&z(r(e,n)))}function ge(e){if(!o(e))return!1;let n=r(e,"priority");return s(e,"property")&&f(e,"value")&&z(r(e,"value"))&&(!y(e,"priority")||n===void 0||n==="important")}function he(e){return o(e)?(p(e,"attributes")||me(r(e,"attributes")))&&h(e,"className")&&(p(e,"style")||ye(r(e,"style")))&&(p(e,"styleDeclarations")||Array.isArray(r(e,"styleDeclarations"))&&r(e,"styleDeclarations").every(ge)):!1}function be(e){return o(e)&&a(e,"x")&&a(e,"y")&&(p(e,"detailLevel")||d(e,"detailLevel","summary")||d(e,"detailLevel","full"))}function Se(e){return o(e)&&l(r(e,"ref"))}function Ie(e){if(!o(e)||!o(r(e,"variables")))return!1;let n=r(e,"variables");return Reflect.ownKeys(n).every(t=>typeof t=="string"&&s(n,t))?p(e,"stylesheets")||T(r(e,"stylesheets")):!1}function Ee(e){if(!d(e,"type","request")||!s(e,"id")||!s(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 be(t);case"bridge-get-source-tree":return o(t)&&m(r(t,"composition"))&&u(t,["composition"]);case"get-scroll-metrics":case"clear-theme-override":return oe(t);case"bridge-get-history-status":case"bridge-undo":case"bridge-redo":return o(t)&&m(r(t,"composition"))&&u(t,["composition"]);case"bridge-get-source-file":return o(t)&&s(t,"path")&&m(r(t,"composition"))&&u(t,["path","composition"]);case"bridge-get-object-edit-context":return o(t)&&s(t,"key")&&m(r(t,"composition"))&&_e(r(t,"selectionRef"))&&u(t,["key","composition","selectionRef"]);case"bridge-resolve-source-location":case"bridge-get-class-name-source":return o(t)&&s(t,"key")&&m(r(t,"composition"))&&u(t,["key","composition"]);case"scroll-to":return o(t)&&a(t,"x")&&a(t,"y");case"scroll-by":return o(t)&&a(t,"deltaX")&&a(t,"deltaY");case"set-interaction-mode":return o(t)&&A(t,"enabled");case"set-selection-visual":return o(t)&&d(t,"version",M)&&l(r(t,"ref"))&&d(t,"visible",!0);case"clear-selection-visual":return o(t)&&d(t,"version",M);case"set-resize-visual":return o(t)&&d(t,"version",V)&&l(r(t,"ref"))&&d(t,"visible",!0);case"clear-resize-visual":return o(t)&&d(t,"version",V);case"set-theme-override":return Ie(t);case"get-theme-variables":return o(t)&&T(r(t,"names"));case"compute-drop-target-at-point":return o(t)&&a(t,"x")&&a(t,"y")&&(d(t,"dragKind","insert")||d(t,"dragKind","move"))&&(p(t,"movingRef")||l(r(t,"movingRef")));case"observe-node-bounds":case"clear-node-bounds-observer":return o(t)&&(p(t,"ref")||l(r(t,"ref")));case"apply-node-patch":return o(t)&&l(r(t,"ref"))&&he(r(t,"patch"))&&(p(t,"preview")||o(r(t,"preview"))&&s(r(t,"preview"),"sessionId")&&R(r(t,"preview"),"revision")&&y(r(t,"preview"),"revision"));case"get-hit-by-ref":case"get-path-by-ref":case"restore-text-edit":case"clear-text-edit-rollback":return Se(t);case"bridge-initialize-session":case"bridge-get-style-context":return o(t)&&m(r(t,"composition"))&&u(t,["composition"]);case"bridge-get-document":case"bridge-ensure-document-version":case"bridge-acknowledge-document-version":return o(t)&&m(r(t,"composition"))&&b(t,"minVersion")&&b(t,"version")&&u(t,["composition","minVersion","version"]);case"bridge-execute":{if(!o(t))return!1;let i=r(t,"request"),c=r(t,"composition"),g=o(i)?r(i,"composition"):null;return!m(c)||!o(i)||!m(g)?!1:I({routeId:c.routeId,...c.templateId?{effectiveTemplateId:c.templateId}:{}})===I({routeId:g.routeId,...g.templateId?{effectiveTemplateId:g.templateId}:{}})&&u(t,["composition","request"])}case"bridge-subscribe":case"bridge-unsubscribe":return o(t)&&s(t,"subscriptionId")&&m(r(t,"composition"))&&u(t,["subscriptionId","composition"]);default:return!1}}function we(e){return d(e,"type","response")&&s(e,"id")&&A(e,"ok")&&(p(e,"error")||s(e,"error"))}function Re(e){if(!o(e))return!1;let n=r(e,"type");if(typeof n!="string"||!w(r(e,"composition"))||!s(e,"siteId")||!s(e,"at"))return!1;switch(n){case"site-edit.document.changed":return s(e,"snapshotId")&&a(e,"version");case"site-edit.operation.planned":return s(e,"operationId")&&s(e,"baseSnapshotId")&&T(r(e,"changedFiles"));case"site-edit.operation.completed":return o(r(e,"result"));case"site-edit.operation.failed":return s(e,"requestId")&&o(r(e,"error"));case"site-edit.capability.changed":return T(r(e,"keys"));case"site-edit.graph.invalidated":return!0;case"site-edit.graph.ready":return a(e,"version");case"site-edit.graph.error":return s(e,"message");default:return!1}}var Te=new Set(["pointer-down","pointer-move","pointer-leave","pointer-up","pointer-cancel","pointer-click","pointer-double-click"]),j=new Set(["e","s","se"]);function Oe(e,n){if(p(e,"resizeSession"))return!0;let t=r(e,"resizeSession");if(!o(t))return!1;let i=r(e,"pointerId"),c=r(t,"pointerId"),g=r(t,"phase"),S=r(t,"edge"),H=n==="pointer-down"?"start":n==="pointer-up"?"commit":n==="pointer-cancel"?"cancel":null;return r(t,"version")===1&&g===H&&s(t,"sessionId")&&String(r(t,"sessionId")).length>0&&typeof i=="number"&&Number.isInteger(i)&&typeof c=="number"&&Number.isInteger(c)&&i===c&&typeof S=="string"&&j.has(S)&&r(e,"resizeEdge")===S&&l(r(t,"ref"))&&["startWidth","startHeight","width","height"].every(X=>a(t,X))}function Ae(e){if(!d(e,"type","event")||!s(e,"kind")||!o(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 l(r(t,"ref"))&&h(t,"value")&&(p(t,"hit")||x(r(t,"hit")));case"node-bounds-change":return x(r(t,"hit"));case"geometry-batch":{let i=r(t,"reason");return re(t,"sequence")&&a(t,"sourceEventAt")&&a(t,"captureStartedAt")&&a(t,"capturedAt")&&(i==="scroll"||i==="resize"||i==="mutation")&&le(r(t,"snapshots"))}case"bridge-event":{let i=r(t,"event"),c=r(t,"composition");return!Re(i)||!w(c)?!1:s(t,"subscriptionId")&&I(c)===I(i.composition)}case"route-ready":return w(r(t,"composition"))&&s(t,"editEngineVersion")&&a(t,"sequence")&&a(t,"version");case"bridge-status":{let i=r(t,"state");return(i==="connecting"||i==="ready"||i==="reconnecting"||i==="failed"||i==="reload-required")&&w(r(t,"composition"))&&a(t,"sequence")&&b(t,"attempt")&&b(t,"retryInMs")&&h(t,"messageKey")}case"scroll":{let i=r(t,"metrics");return o(i)&&["scrollX","scrollY","scrollWidth","scrollHeight","viewportWidth","viewportHeight"].every(c=>a(i,c))}default:return Te.has(n)&&a(t,"clientX")&&a(t,"clientY")&&b(t,"buttons")&&b(t,"pointerId")&&(p(t,"hoverVisualOwned")||A(t,"hoverVisualOwned"))&&(p(t,"resizeEdge")||s(t,"resizeEdge")&&j.has(r(t,"resizeEdge")))&&Oe(t,n)&&(r(t,"hit")===null||x(r(t,"hit")))&&(p(t,"section")||r(t,"section")===null||ie(r(t,"section")))&&(p(t,"sectionGap")||r(t,"sectionGap")===null||se(r(t,"sectionGap")))}}function _e(e){if(e===void 0)return!0;if(!o(e)||!u(e,["key","instanceIndex","instanceCount"]))return!1;let n={key:r(e,"key"),...y(e,"instanceIndex")?{instanceIndex:r(e,"instanceIndex")}:{},...y(e,"instanceCount")?{instanceCount:r(e,"instanceCount")}:{}};if(!te.safeParse(n).success)return!1;let t=r(e,"instanceIndex"),i=r(e,"instanceCount");return!(typeof t=="number"&&typeof i=="number"&&t>=i)}function xe(e){if(!o(e))return!1;switch(r(e,"type")){case"request":return Ee(e);case"response":return we(e);case"event":return Ae(e);default:return!1}}export{q as SITE_EDIT_FRAME_ANNOUNCE_CHANNEL,k as SITE_EDIT_FRAME_RUNTIME_CHANNEL,ne as SITE_EDIT_FRAME_RUNTIME_LAYOUT_SNAPSHOT_VERSION,V as SITE_EDIT_FRAME_RUNTIME_RESIZE_VISUAL_VERSION,M as SITE_EDIT_FRAME_RUNTIME_SELECTION_VISUAL_VERSION,Me as SITE_EDIT_FRAME_SECTION_GAP_RADIUS_PX,O as SITE_EDIT_WINDOW_MESSAGE_NAMESPACE,L as VCP_WINDOW_MESSAGE_SOURCE,B as VCP_WINDOW_MESSAGE_VERSION,Le as createSiteEditFrameAnnounceMessage,Ve as createSiteEditFrameRuntimeMessage,K as createVcpWindowMessageEnvelope,D as getPropertyPreviewDomAttributeName,Be as isSiteEditFrameAnnounceMessage,G as isSiteEditFrameRuntimeLayoutSnapshot,Ke as isSiteEditFrameRuntimeMessage,W as isVcpWindowMessageEnvelope,$ as planPropertyPreview};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vcp-dev/site-edit-bridge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
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.
|
|
78
|
-
"@vcp-dev/site-edit-engine": "0.
|
|
77
|
+
"@vcp-dev/contracts": "0.10.0",
|
|
78
|
+
"@vcp-dev/site-edit-engine": "0.10.0",
|
|
79
79
|
"@types/ws": "^8.18.1",
|
|
80
80
|
"ws": "^8.20.1"
|
|
81
81
|
},
|