@vcp-dev/site-edit-bridge 0.10.31 → 0.10.32

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.
@@ -1 +1 @@
1
- function E(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}var $={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"},x=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"]),P=new Set(["checked","selected","value"]),Z=new Set(["children","key","ref","dangerouslysetinnerhtml"]),J=new Set(["data-designer-hover-outline","data-designer-select-outline"]),Q=/^[A-Za-z_$][A-Za-z0-9_$:-]*$/u,F=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 v(e){if(!te(e))return O("Typed property changes are not previewable");if(e.element.kind!=="host")return O(`The '${e.element.tagName}' component may transform its props before rendering`);let n={};for(let t of e.changes){let i=ee(t);if(!i)return O(`The DOM result for '${t.name}' cannot be proven equivalent`);n[i.name]=i.value}return e.runtimeAttributes,{mode:"dom",patch:{attributes:n}}}function ee(e){if(!D(e.name))return null;let n=e.name,t=C(n);if(!t||P.has(n))return null;if(e.operation==="remove")return{name:t,value:null};let i=e.value;return n==="download"?re(t,i):x.has(n)?ne(t,i):/^(aria|data)-[A-Za-z0-9_.:-]+$/u.test(n)?oe(t,i):F.has(n)?typeof i=="string"?{name:t,value:i}:typeof i=="number"&&Number.isFinite(i)?{name:t,value:String(i)}:i===null?{name:t,value:null}:null:null}function C(e){return D(e)&&(e==="download"||P.has(e)||x.has(e)||F.has(e)||/^(aria|data)-[A-Za-z0-9_.:-]+$/u.test(e))?$[e]??e:null}function te(e){if(e.scope!=="selection"&&e.scope!=="template"||!Array.isArray(e.changes)||e.changes.length===0)return!1;let n=new Set;for(let t of e.changes){if(!t||typeof t!="object"||typeof t.name!="string"||t.name.length===0||t.operation!=="set"&&t.operation!=="remove"||n.has(t.name))return!1;n.add(t.name)}return!0}function D(e){if(!Q.test(e))return!1;let n=e.toLowerCase();return Z.has(n)||n.startsWith("data-vcp-")||J.has(n)||/^on[a-z]/iu.test(e)?!1:n!=="classname"&&n!=="class"&&n!=="style"}function ne(e,n){return n===null||n===!1?{name:e,value:null}:n===!0?{name:e,value:""}:null}function re(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 oe(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 O(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 z(e){try{return o(e)?d(e,"source",L)&&d(e,"version",B)&&s(e,"namespace")&&s(e,"channel")&&f(e,"body")&&(!b(e,"sessionKey")||s(e,"sessionKey")):!1}catch{return!1}}var A="site-edit",W="frame-runtime",k="frame-announce",ie=1,M=1,V=1,Me=24;function Ve(e,n={}){return K({namespace:A,channel:W,sessionKey:n.sessionKey,body:e})}function Le(){return K({namespace:A,channel:k,body:{type:"announce"}})}function Be(e){try{return!z(e)||e.namespace!==A||e.channel!==k?!1:o(e.body)&&d(e.body,"type","announce")&&u(e.body,["type"])}catch{return!1}}function Ke(e){try{return!z(e)||e.namespace!==A||e.channel!==W?!1:Pe(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 b=(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 _(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 G(e,n){let t=r(e,n);return f(e,n)&&typeof t=="number"&&Number.isInteger(t)&&t>0}function h(e,n){return!b(e,n)||r(e,n)===void 0||s(e,n)}function S(e,n){return!b(e,n)||r(e,n)===void 0||c(e,n)}function g(e,n){let t=r(e,n);return!b(e,n)||t===void 0||f(e,n)&&typeof t=="number"&&Number.isInteger(t)&&t>=0}function a(e,n){return!b(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 se(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")&&g(e,"instanceIndex")&&g(e,"instanceCount")&&g(e,"textSegmentIndex")}function ce(e){return o(e)&&s(e,"blockId")&&g(e,"blockIndex")&&l(r(e,"ref"))&&R(r(e,"rect"))&&_(e,"targetIsSectionRoot")}function ae(e){if(!o(e))return!1;let n=r(e,"placement"),t=r(e,"boundary");return s(e,"anchorBlockId")&&g(e,"positionIndex")&&l(r(e,"anchorRef"))&&(n==="before"||n==="after")&&o(t)&&c(t,"top")&&c(t,"left")&&c(t,"width")}function R(e){return o(e)&&["top","left","width","height"].every(n=>c(e,n))}function U(e){if(!o(e))return!1;let n=r(e,"rect"),t=r(e,"layout"),i=o(t)?r(t,"containingBlock"):null,p=r(e,"scrollContext"),y=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",ie)&&s(e,"runtimeNodeId")&&o(n)&&R(r(n,"viewport"))&&R(r(n,"document"))&&o(t)&&s(t,"position")&&s(t,"transform")&&y&&o(p)&&["scrollX","scrollY","viewportWidth","viewportHeight"].every(I=>c(p,I))&&f(p,"scrollContainers")&&de(r(p,"scrollContainers"))}function de(e){return Array.isArray(e)&&e.every(n=>o(n)&&s(n,"runtimeNodeId")&&c(n,"scrollLeft")&&c(n,"scrollTop"))}function N(e){return o(e)&&(a(e,"layoutSnapshot")||U(r(e,"layoutSnapshot")))}function pe(e){return o(e)&&l(r(e,"ref"))&&f(e,"layoutSnapshot")&&U(r(e,"layoutSnapshot"))&&(a(e,"childBoxes")||le(r(e,"childBoxes")))&&(a(e,"childRects")||fe(r(e,"childRects")))&&(a(e,"layout")||ue(r(e,"layout")))&&(a(e,"spacing")||me(r(e,"spacing")))}function ue(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 fe(e){return Array.isArray(e)&&e.every(n=>R(n))}function le(e){return Array.isArray(e)&&e.every(n=>o(n)&&R(r(n,"rect"))&&q(r(n,"margin")))}function q(e){return o(e)&&["marginTop","marginRight","marginBottom","marginLeft"].every(n=>c(e,n))}function me(e){return q(e)&&["paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","columnGap","rowGap"].every(n=>c(e,n))}function ye(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)||!pe(t.value))return!1}return!0}function ge(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 j(e){return e==null||typeof e=="string"||typeof e=="number"&&Number.isFinite(e)}function he(e){return o(e)&&Reflect.ownKeys(e).every(n=>typeof n=="string"&&f(e,n)&&j(r(e,n)))}function be(e){if(!o(e))return!1;let n=r(e,"priority");return s(e,"property")&&f(e,"value")&&j(r(e,"value"))&&(!b(e,"priority")||n===void 0||n==="important")}function Se(e){return o(e)?(a(e,"attributes")||ge(r(e,"attributes")))&&h(e,"className")&&(a(e,"style")||he(r(e,"style")))&&(a(e,"styleDeclarations")||Array.isArray(r(e,"styleDeclarations"))&&r(e,"styleDeclarations").every(be)):!1}function Ie(e){return o(e)&&c(e,"x")&&c(e,"y")&&(a(e,"detailLevel")||d(e,"detailLevel","summary")||d(e,"detailLevel","full"))}function Ee(e){return o(e)&&l(r(e,"ref"))}function Re(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))?a(e,"stylesheets")||T(r(e,"stylesheets")):!1}function we(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 Ie(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 se(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"))&&xe(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)&&c(t,"x")&&c(t,"y");case"scroll-by":return o(t)&&c(t,"deltaX")&&c(t,"deltaY");case"set-interaction-mode":return o(t)&&_(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 Re(t);case"get-theme-variables":return o(t)&&T(r(t,"names"));case"compute-drop-target-at-point":return o(t)&&c(t,"x")&&c(t,"y")&&(d(t,"dragKind","insert")||d(t,"dragKind","move"))&&(a(t,"movingRef")||l(r(t,"movingRef")));case"observe-node-bounds":case"clear-node-bounds-observer":return o(t)&&(a(t,"ref")||l(r(t,"ref")));case"apply-node-patch":return o(t)&&l(r(t,"ref"))&&Se(r(t,"patch"))&&(a(t,"preview")||o(r(t,"preview"))&&s(r(t,"preview"),"sessionId")&&g(r(t,"preview"),"revision")&&b(r(t,"preview"),"revision"));case"get-hit-by-ref":case"get-path-by-ref":case"restore-text-edit":case"clear-text-edit-rollback":return Ee(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"))&&S(t,"minVersion")&&S(t,"version")&&u(t,["composition","minVersion","version"]);case"bridge-execute":case"bridge-get-operation-result":{if(!o(t))return!1;let i=r(t,"request"),p=r(t,"composition"),y=o(i)?r(i,"composition"):null;return!m(p)||!o(i)||!m(y)?!1:E({routeId:p.routeId,...p.templateId?{effectiveTemplateId:p.templateId}:{}})===E({routeId:y.routeId,...y.templateId?{effectiveTemplateId:y.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 Te(e){return d(e,"type","response")&&s(e,"id")&&_(e,"ok")&&(a(e,"error")||s(e,"error"))}function Ae(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")&&c(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 c(e,"version");case"site-edit.graph.error":return s(e,"message");default:return!1}}var _e=new Set(["pointer-down","pointer-move","pointer-leave","pointer-up","pointer-cancel","pointer-click","pointer-double-click"]),H=new Set(["e","s","se"]);function Oe(e,n){if(a(e,"resizeSession"))return!0;let t=r(e,"resizeSession");if(!o(t))return!1;let i=r(e,"pointerId"),p=r(t,"pointerId"),y=r(t,"phase"),I=r(t,"edge"),X=n==="pointer-down"?"start":n==="pointer-up"?"commit":n==="pointer-cancel"?"cancel":null;return r(t,"version")===1&&y===X&&s(t,"sessionId")&&String(r(t,"sessionId")).length>0&&typeof i=="number"&&Number.isInteger(i)&&typeof p=="number"&&Number.isInteger(p)&&i===p&&typeof I=="string"&&H.has(I)&&r(e,"resizeEdge")===I&&l(r(t,"ref"))&&["startWidth","startHeight","width","height"].every(Y=>c(t,Y))}function Ne(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")&&(a(t,"hit")||N(r(t,"hit")));case"node-bounds-change":return N(r(t,"hit"));case"geometry-batch":{let i=r(t,"reason");return G(t,"sequence")&&c(t,"sourceEventAt")&&c(t,"captureStartedAt")&&c(t,"capturedAt")&&(i==="scroll"||i==="resize"||i==="mutation")&&ye(r(t,"snapshots"))}case"bridge-event":{let i=r(t,"event"),p=r(t,"composition");return!Ae(i)||!w(p)?!1:s(t,"subscriptionId")&&E(p)===E(i.composition)}case"route-ready":return w(r(t,"composition"))&&s(t,"editEngineVersion")&&c(t,"sequence")&&c(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"))&&c(t,"sequence")&&S(t,"attempt")&&S(t,"retryInMs")&&h(t,"messageKey")}case"scroll":{let i=r(t,"metrics");return o(i)&&["scrollX","scrollY","scrollWidth","scrollHeight","viewportWidth","viewportHeight"].every(p=>c(i,p))}default:return _e.has(n)&&c(t,"clientX")&&c(t,"clientY")&&S(t,"buttons")&&S(t,"pointerId")&&(a(t,"hoverVisualOwned")||_(t,"hoverVisualOwned"))&&(a(t,"resizeEdge")||s(t,"resizeEdge")&&H.has(r(t,"resizeEdge")))&&Oe(t,n)&&(r(t,"hit")===null||N(r(t,"hit")))&&(a(t,"section")||r(t,"section")===null||ce(r(t,"section")))&&(a(t,"sectionGap")||r(t,"sectionGap")===null||ae(r(t,"sectionGap")))}}function xe(e){if(e===void 0)return!0;if(!o(e)||!u(e,["key","instanceIndex","instanceCount"])||!s(e,"key")||r(e,"key").length===0||!g(e,"instanceIndex")||!a(e,"instanceCount")&&!G(e,"instanceCount"))return!1;let n=r(e,"instanceIndex"),t=r(e,"instanceCount");return!(typeof n=="number"&&typeof t=="number"&&n>=t)}function Pe(e){if(!o(e))return!1;switch(r(e,"type")){case"request":return we(e);case"response":return Te(e);case"event":return Ne(e);default:return!1}}export{k as SITE_EDIT_FRAME_ANNOUNCE_CHANNEL,W as SITE_EDIT_FRAME_RUNTIME_CHANNEL,ie 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,A 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,C as getPropertyPreviewDomAttributeName,Be as isSiteEditFrameAnnounceMessage,U as isSiteEditFrameRuntimeLayoutSnapshot,Ke as isSiteEditFrameRuntimeMessage,z as isVcpWindowMessageEnvelope,v as planPropertyPreview};
1
+ function E(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}var $={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"},x=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"]),P=new Set(["checked","selected","value"]),Z=new Set(["children","key","ref","dangerouslysetinnerhtml"]),J=new Set(["data-designer-hover-outline","data-designer-select-outline"]),Q=/^[A-Za-z_$][A-Za-z0-9_$:-]*$/u,F=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 v(e){if(!te(e))return O("Typed property changes are not previewable");if(e.element.kind!=="host")return O(`The '${e.element.tagName}' component may transform its props before rendering`);let n={};for(let t of e.changes){let i=ee(t);if(!i)return O(`The DOM result for '${t.name}' cannot be proven equivalent`);n[i.name]=i.value}return e.runtimeAttributes,{mode:"dom",patch:{attributes:n}}}function ee(e){if(!D(e.name))return null;let n=e.name,t=C(n);if(!t||P.has(n))return null;if(e.operation==="remove")return{name:t,value:null};let i=e.value;return n==="download"?re(t,i):x.has(n)?ne(t,i):/^(aria|data)-[A-Za-z0-9_.:-]+$/u.test(n)?oe(t,i):F.has(n)?typeof i=="string"?{name:t,value:i}:typeof i=="number"&&Number.isFinite(i)?{name:t,value:String(i)}:i===null?{name:t,value:null}:null:null}function C(e){return D(e)&&(e==="download"||P.has(e)||x.has(e)||F.has(e)||/^(aria|data)-[A-Za-z0-9_.:-]+$/u.test(e))?$[e]??e:null}function te(e){if(e.scope!=="selection"&&e.scope!=="template"||!Array.isArray(e.changes)||e.changes.length===0)return!1;let n=new Set;for(let t of e.changes){if(!t||typeof t!="object"||typeof t.name!="string"||t.name.length===0||t.operation!=="set"&&t.operation!=="remove"||n.has(t.name))return!1;n.add(t.name)}return!0}function D(e){if(!Q.test(e))return!1;let n=e.toLowerCase();return Z.has(n)||n.startsWith("data-vcp-")||J.has(n)||/^on[a-z]/iu.test(e)?!1:n!=="classname"&&n!=="class"&&n!=="style"}function ne(e,n){return n===null||n===!1?{name:e,value:null}:n===!0?{name:e,value:""}:null}function re(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 oe(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 O(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 z(e){try{return o(e)?d(e,"source",L)&&d(e,"version",B)&&s(e,"namespace")&&s(e,"channel")&&f(e,"body")&&(!b(e,"sessionKey")||s(e,"sessionKey")):!1}catch{return!1}}var A="site-edit",W="frame-runtime",k="frame-announce",ie=1,M=1,V=1,Me=24;function Ve(e,n={}){return K({namespace:A,channel:W,sessionKey:n.sessionKey,body:e})}function Le(){return K({namespace:A,channel:k,body:{type:"announce"}})}function Be(e){try{return!z(e)||e.namespace!==A||e.channel!==k?!1:o(e.body)&&d(e.body,"type","announce")&&u(e.body,["type"])}catch{return!1}}function Ke(e){try{return!z(e)||e.namespace!==A||e.channel!==W?!1:Pe(e.body)}catch{return!1}}function m(e){return o(e)&&s(e,"routeId")&&g(e,"templateId")&&u(e,["routeId","templateId"])}function w(e){return o(e)&&s(e,"routeId")&&g(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 b=(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 _(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 G(e,n){let t=r(e,n);return f(e,n)&&typeof t=="number"&&Number.isInteger(t)&&t>0}function g(e,n){return!b(e,n)||r(e,n)===void 0||s(e,n)}function S(e,n){return!b(e,n)||r(e,n)===void 0||c(e,n)}function h(e,n){let t=r(e,n);return!b(e,n)||t===void 0||f(e,n)&&typeof t=="number"&&Number.isInteger(t)&&t>=0}function a(e,n){return!b(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 se(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")&&h(e,"instanceIndex")&&h(e,"instanceCount")&&h(e,"textSegmentIndex")}function ce(e){return o(e)&&s(e,"blockId")&&h(e,"blockIndex")&&l(r(e,"ref"))&&R(r(e,"rect"))&&_(e,"targetIsSectionRoot")}function ae(e){if(!o(e))return!1;let n=r(e,"placement"),t=r(e,"boundary");return s(e,"anchorBlockId")&&h(e,"positionIndex")&&l(r(e,"anchorRef"))&&(n==="before"||n==="after")&&o(t)&&c(t,"top")&&c(t,"left")&&c(t,"width")}function R(e){return o(e)&&["top","left","width","height"].every(n=>c(e,n))}function U(e){if(!o(e))return!1;let n=r(e,"rect"),t=r(e,"layout"),i=o(t)?r(t,"containingBlock"):null,p=r(e,"scrollContext"),y=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",ie)&&s(e,"runtimeNodeId")&&o(n)&&R(r(n,"viewport"))&&R(r(n,"document"))&&o(t)&&s(t,"position")&&s(t,"transform")&&y&&o(p)&&["scrollX","scrollY","viewportWidth","viewportHeight"].every(I=>c(p,I))&&f(p,"scrollContainers")&&de(r(p,"scrollContainers"))}function de(e){return Array.isArray(e)&&e.every(n=>o(n)&&s(n,"runtimeNodeId")&&c(n,"scrollLeft")&&c(n,"scrollTop"))}function N(e){return o(e)&&(a(e,"layoutSnapshot")||U(r(e,"layoutSnapshot")))}function pe(e){return o(e)&&l(r(e,"ref"))&&f(e,"layoutSnapshot")&&U(r(e,"layoutSnapshot"))&&(a(e,"childBoxes")||le(r(e,"childBoxes")))&&(a(e,"childRects")||fe(r(e,"childRects")))&&(a(e,"layout")||ue(r(e,"layout")))&&(a(e,"spacing")||me(r(e,"spacing")))}function ue(e){if(!o(e))return!1;let n=r(e,"indicatorOrientation");return s(e,"display")&&(n==="horizontal"||n==="vertical")&&g(e,"flexDirection")&&g(e,"gridAutoFlow")}function fe(e){return Array.isArray(e)&&e.every(n=>R(n))}function le(e){return Array.isArray(e)&&e.every(n=>o(n)&&R(r(n,"rect"))&&q(r(n,"margin")))}function q(e){return o(e)&&["marginTop","marginRight","marginBottom","marginLeft"].every(n=>c(e,n))}function me(e){return q(e)&&["paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","columnGap","rowGap"].every(n=>c(e,n))}function ye(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)||!pe(t.value))return!1}return!0}function ge(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 j(e){return e==null||typeof e=="string"||typeof e=="number"&&Number.isFinite(e)}function he(e){return o(e)&&Reflect.ownKeys(e).every(n=>typeof n=="string"&&f(e,n)&&j(r(e,n)))}function be(e){if(!o(e))return!1;let n=r(e,"priority");return s(e,"property")&&f(e,"value")&&j(r(e,"value"))&&(!b(e,"priority")||n===void 0||n==="important")}function Se(e){return o(e)?(a(e,"attributes")||ge(r(e,"attributes")))&&g(e,"className")&&(a(e,"style")||he(r(e,"style")))&&(a(e,"styleDeclarations")||Array.isArray(r(e,"styleDeclarations"))&&r(e,"styleDeclarations").every(be)):!1}function Ie(e){return o(e)&&c(e,"x")&&c(e,"y")&&(a(e,"detailLevel")||d(e,"detailLevel","summary")||d(e,"detailLevel","full"))}function Ee(e){return o(e)&&l(r(e,"ref"))}function Re(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))?a(e,"stylesheets")||T(r(e,"stylesheets")):!1}function we(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 Ie(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 se(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"))&&xe(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)&&c(t,"x")&&c(t,"y");case"scroll-by":return o(t)&&c(t,"deltaX")&&c(t,"deltaY");case"set-interaction-mode":return o(t)&&_(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 Re(t);case"get-theme-variables":return o(t)&&T(r(t,"names"));case"compute-drop-target-at-point":return o(t)&&c(t,"x")&&c(t,"y")&&(d(t,"dragKind","insert")||d(t,"dragKind","move"))&&(a(t,"movingRef")||l(r(t,"movingRef")));case"observe-node-bounds":case"clear-node-bounds-observer":return o(t)&&(a(t,"ref")||l(r(t,"ref")));case"apply-node-patch":return o(t)&&l(r(t,"ref"))&&Se(r(t,"patch"))&&(a(t,"preview")||o(r(t,"preview"))&&s(r(t,"preview"),"sessionId")&&h(r(t,"preview"),"revision")&&b(r(t,"preview"),"revision"));case"get-hit-by-ref":case"get-path-by-ref":case"restore-text-edit":case"clear-text-edit-rollback":return Ee(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"))&&S(t,"minVersion")&&S(t,"version")&&u(t,["composition","minVersion","version"]);case"bridge-execute":case"bridge-get-operation-result":{if(!o(t))return!1;let i=r(t,"request"),p=r(t,"composition"),y=o(i)?r(i,"composition"):null;return!m(p)||!o(i)||!m(y)?!1:E({routeId:p.routeId,...p.templateId?{effectiveTemplateId:p.templateId}:{}})===E({routeId:y.routeId,...y.templateId?{effectiveTemplateId:y.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 Te(e){return d(e,"type","response")&&s(e,"id")&&_(e,"ok")&&(a(e,"error")||s(e,"error"))}function Ae(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")&&c(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 c(e,"version");case"site-edit.graph.error":return s(e,"message");default:return!1}}var _e=new Set(["pointer-down","pointer-move","pointer-leave","pointer-up","pointer-cancel","pointer-click","pointer-double-click"]),H=new Set(["e","s","se"]);function Oe(e,n){if(a(e,"resizeSession"))return!0;let t=r(e,"resizeSession");if(!o(t))return!1;let i=r(e,"pointerId"),p=r(t,"pointerId"),y=r(t,"phase"),I=r(t,"edge"),X=n==="pointer-down"?"start":n==="pointer-up"?"commit":n==="pointer-cancel"?"cancel":null;return r(t,"version")===1&&y===X&&s(t,"sessionId")&&String(r(t,"sessionId")).length>0&&typeof i=="number"&&Number.isInteger(i)&&typeof p=="number"&&Number.isInteger(p)&&i===p&&typeof I=="string"&&H.has(I)&&r(e,"resizeEdge")===I&&l(r(t,"ref"))&&["startWidth","startHeight","width","height"].every(Y=>c(t,Y))}function Ne(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"))&&g(t,"value")&&(a(t,"hit")||N(r(t,"hit")));case"node-bounds-change":return N(r(t,"hit"));case"geometry-batch":{let i=r(t,"reason");return G(t,"sequence")&&c(t,"sourceEventAt")&&c(t,"captureStartedAt")&&c(t,"capturedAt")&&(i==="scroll"||i==="resize"||i==="mutation")&&ye(r(t,"snapshots"))}case"bridge-event":{let i=r(t,"event"),p=r(t,"composition");return!Ae(i)||!w(p)?!1:s(t,"subscriptionId")&&E(p)===E(i.composition)}case"route-ready":return w(r(t,"composition"))&&s(t,"editEngineVersion")&&c(t,"sequence")&&c(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"))&&c(t,"sequence")&&S(t,"attempt")&&S(t,"retryInMs")&&g(t,"messageKey")&&g(t,"failureCode")}case"scroll":{let i=r(t,"metrics");return o(i)&&["scrollX","scrollY","scrollWidth","scrollHeight","viewportWidth","viewportHeight"].every(p=>c(i,p))}default:return _e.has(n)&&c(t,"clientX")&&c(t,"clientY")&&S(t,"buttons")&&S(t,"pointerId")&&(a(t,"hoverVisualOwned")||_(t,"hoverVisualOwned"))&&(a(t,"resizeEdge")||s(t,"resizeEdge")&&H.has(r(t,"resizeEdge")))&&Oe(t,n)&&(r(t,"hit")===null||N(r(t,"hit")))&&(a(t,"section")||r(t,"section")===null||ce(r(t,"section")))&&(a(t,"sectionGap")||r(t,"sectionGap")===null||ae(r(t,"sectionGap")))}}function xe(e){if(e===void 0)return!0;if(!o(e)||!u(e,["key","instanceIndex","instanceCount"])||!s(e,"key")||r(e,"key").length===0||!h(e,"instanceIndex")||!a(e,"instanceCount")&&!G(e,"instanceCount"))return!1;let n=r(e,"instanceIndex"),t=r(e,"instanceCount");return!(typeof n=="number"&&typeof t=="number"&&n>=t)}function Pe(e){if(!o(e))return!1;switch(r(e,"type")){case"request":return we(e);case"response":return Te(e);case"event":return Ne(e);default:return!1}}export{k as SITE_EDIT_FRAME_ANNOUNCE_CHANNEL,W as SITE_EDIT_FRAME_RUNTIME_CHANNEL,ie 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,A 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,C as getPropertyPreviewDomAttributeName,Be as isSiteEditFrameAnnounceMessage,U as isSiteEditFrameRuntimeLayoutSnapshot,Ke as isSiteEditFrameRuntimeMessage,z as isVcpWindowMessageEnvelope,v as planPropertyPreview};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcp-dev/site-edit-bridge",
3
- "version": "0.10.31",
3
+ "version": "0.10.32",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -79,8 +79,8 @@
79
79
  "typecheck": "tsc -p tsconfig.json --noEmit"
80
80
  },
81
81
  "dependencies": {
82
- "@vcp-dev/contracts": "0.10.31",
83
- "@vcp-dev/site-edit-engine": "0.10.31",
82
+ "@vcp-dev/contracts": "0.10.32",
83
+ "@vcp-dev/site-edit-engine": "0.10.32",
84
84
  "@types/ws": "^8.18.1",
85
85
  "ws": "^8.20.1"
86
86
  },