New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@netless/app-embedded-page

Package Overview
Dependencies
Maintainers
10
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@netless/app-embedded-page - npm Package Compare versions

Comparing version

to
0.0.5

4

dist/main.cjs.js

@@ -1,3 +0,3 @@

"use strict";var F=Object.defineProperty;var G=(o,i,s)=>i in o?F(o,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[i]=s;var j=(o,i,s)=>(G(o,typeof i!="symbol"?i+"":i,s),s);Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";class W{constructor(){this.disposers=new Map,this.disposerIDGenCount=-1}add(i,s=this.genDisposerID()){return this.flush(s),this.disposers.set(s,i()),s}addEventListener(i,s,l,c,y=this.genDisposerID()){return this.add(()=>(i.addEventListener(s,l,c),()=>i.removeEventListener(s,l,c)),y),y}setTimeout(i,s,l=this.genDisposerID()){return this.add(()=>{const c=window.setTimeout(()=>{this.remove(l),i()},s);return()=>window.clearTimeout(c)},l)}setInterval(i,s,l=this.genDisposerID()){return this.add(()=>{const c=window.setInterval(i,s);return()=>window.clearInterval(c)},l)}remove(i){const s=this.disposers.get(i);return this.disposers.delete(i),s}flush(i){const s=this.remove(i);if(s)try{s()}catch(l){console.error(l)}}flushAll(){this.disposers.forEach(i=>{try{i()}catch(s){console.error(s)}}),this.disposers.clear()}genDisposerID(){const{MAX_SAFE_INTEGER:i=9007199254740991}=Number;return this.disposerIDGenCount=(this.disposerIDGenCount+1)%i,`disposer-${this.disposerIDGenCount}`}}function B(o){return o!=null&&typeof o=="object"&&!Array.isArray(o)}function H(o,i){let s=o.getAttributes();if(s||(o.setAttributes(i),s=o.getAttributes()),!s)throw new Error("[NetlessAppMonaco] No attributes");return B(i)&&Object.keys(i).forEach(l=>{Object.prototype.hasOwnProperty.call(s,l)||o.updateAttributes([l],i[l])}),s}var V=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},U={exports:{}};(function(o,i){(function(s,l){{var c=l();o&&o.exports&&(i=o.exports=c),i.randomColor=c}})(V,function(){var s=null,l={};L();var c=[],y=function(r){if(r=r||{},r.seed!==void 0&&r.seed!==null&&r.seed===parseInt(r.seed,10))s=r.seed;else if(typeof r.seed=="string")s=E(r.seed);else{if(r.seed!==void 0&&r.seed!==null)throw new TypeError("The seed value must be an integer or string");s=null}var n,e,t;if(r.count!==null&&r.count!==void 0){for(var a=r.count,d=[],u=0;u<r.count;u++)c.push(!1);for(r.count=null;a>d.length;){var v=y(r);s!==null&&(r.seed=s),d.push(v)}return r.count=a,d}return n=D(r),e=T(n,r),t=g(n,e,r),b([n,e,t],r)};function D(r){if(c.length>0){var n=$(r.hue),e=p(n),t=(n[1]-n[0])/c.length,a=parseInt((e-n[0])/t);c[a]===!0?a=(a+2)%c.length:c[a]=!0;var d=(n[0]+a*t)%359,u=(n[0]+(a+1)*t)%359;return n=[d,u],e=p(n),e<0&&(e=360+e),e}else{var n=M(r.hue);return e=p(n),e<0&&(e=360+e),e}}function T(r,n){if(n.hue==="monochrome")return 0;if(n.luminosity==="random")return p([0,100]);var e=S(r),t=e[0],a=e[1];switch(n.luminosity){case"bright":t=55;break;case"dark":t=a-10;break;case"light":a=55;break}return p([t,a])}function g(r,n,e){var t=h(r,n),a=100;switch(e.luminosity){case"dark":a=t+20;break;case"light":t=(a+t)/2;break;case"random":t=0,a=100;break}return p([t,a])}function b(r,n){switch(n.format){case"hsvArray":return r;case"hslArray":return P(r);case"hsl":var e=P(r);return"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)";case"hsla":var t=P(r),a=n.alpha||Math.random();return"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+a+")";case"rgbArray":return C(r);case"rgb":var d=C(r);return"rgb("+d.join(", ")+")";case"rgba":var u=C(r),a=n.alpha||Math.random();return"rgba("+u.join(", ")+", "+a+")";default:return N(r)}}function h(r,n){for(var e=m(r).lowerBounds,t=0;t<e.length-1;t++){var a=e[t][0],d=e[t][1],u=e[t+1][0],v=e[t+1][1];if(n>=a&&n<=u){var A=(v-d)/(u-a),w=d-A*a;return A*n+w}}return 0}function M(r){if(typeof parseInt(r)=="number"){var n=parseInt(r);if(n<360&&n>0)return[n,n]}if(typeof r=="string"){if(l[r]){var e=l[r];if(e.hueRange)return e.hueRange}else if(r.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)){var t=O(r)[0];return[t,t]}}return[0,360]}function S(r){return m(r).saturationRange}function m(r){r>=334&&r<=360&&(r-=360);for(var n in l){var e=l[n];if(e.hueRange&&r>=e.hueRange[0]&&r<=e.hueRange[1])return l[n]}return"Color not found"}function p(r){if(s===null){var n=.618033988749895,e=Math.random();return e+=n,e%=1,Math.floor(r[0]+e*(r[1]+1-r[0]))}else{var t=r[1]||1,a=r[0]||0;s=(s*9301+49297)%233280;var d=s/233280;return Math.floor(a+d*(t-a))}}function N(r){var n=C(r);function e(a){var d=a.toString(16);return d.length==1?"0"+d:d}var t="#"+e(n[0])+e(n[1])+e(n[2]);return t}function f(r,n,e){var t=e[0][0],a=e[e.length-1][0],d=e[e.length-1][1],u=e[0][1];l[r]={hueRange:n,lowerBounds:e,saturationRange:[t,a],brightnessRange:[d,u]}}function L(){f("monochrome",null,[[0,0],[100,0]]),f("red",[-26,18],[[20,100],[30,92],[40,89],[50,85],[60,78],[70,70],[80,60],[90,55],[100,50]]),f("orange",[18,46],[[20,100],[30,93],[40,88],[50,86],[60,85],[70,70],[100,70]]),f("yellow",[46,62],[[25,100],[40,94],[50,89],[60,86],[70,84],[80,82],[90,80],[100,75]]),f("green",[62,178],[[30,100],[40,90],[50,85],[60,81],[70,74],[80,64],[90,50],[100,40]]),f("blue",[178,257],[[20,100],[30,86],[40,80],[50,74],[60,60],[70,52],[80,44],[90,39],[100,35]]),f("purple",[257,282],[[20,100],[30,87],[40,79],[50,70],[60,65],[70,59],[80,52],[90,45],[100,42]]),f("pink",[282,334],[[20,100],[30,90],[40,86],[60,84],[80,80],[90,75],[100,73]])}function C(r){var n=r[0];n===0&&(n=1),n===360&&(n=359),n=n/360;var e=r[1]/100,t=r[2]/100,a=Math.floor(n*6),d=n*6-a,u=t*(1-e),v=t*(1-d*e),A=t*(1-(1-d)*e),w=256,k=256,I=256;switch(a){case 0:w=t,k=A,I=u;break;case 1:w=v,k=t,I=u;break;case 2:w=u,k=t,I=A;break;case 3:w=u,k=v,I=t;break;case 4:w=A,k=u,I=t;break;case 5:w=t,k=u,I=v;break}var _=[Math.floor(w*255),Math.floor(k*255),Math.floor(I*255)];return _}function O(r){r=r.replace(/^#/,""),r=r.length===3?r.replace(/(.)/g,"$1$1"):r;var n=parseInt(r.substr(0,2),16)/255,e=parseInt(r.substr(2,2),16)/255,t=parseInt(r.substr(4,2),16)/255,a=Math.max(n,e,t),d=a-Math.min(n,e,t),u=a?d/a:0;switch(a){case n:return[60*((e-t)/d%6)||0,u,a];case e:return[60*((t-n)/d+2)||0,u,a];case t:return[60*((n-e)/d+4)||0,u,a]}}function P(r){var n=r[0],e=r[1]/100,t=r[2]/100,a=(2-e)*t;return[n,Math.round(e*t/(a<1?a:2-a)*1e4)/100,a/2*100]}function E(r){for(var n=0,e=0;e!==r.length&&!(n>=Number.MAX_SAFE_INTEGER);e++)n+=r.charCodeAt(e);return n}function $(r){if(isNaN(r)){if(typeof r=="string"){if(l[r]){var e=l[r];if(e.hueRange)return e.hueRange}else if(r.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)){var t=O(r)[0];return m(t).hueRange}}}else{var n=parseInt(r);if(n<360&&n>0)return m(r).hueRange}return[0,360]}return y})})(U,U.exports);var J=U.exports;class K{constructor(i="NetlessApp",s="error"){j(this,"kind");j(this,"debug");j(this,"color",J({luminosity:"dark"}));this.kind=i,this.debug=s}log(...i){if(this.debug===!0||this.debug==="log")return this._log("log",i)}warn(...i){if(this.debug&&this.debug!=="error")return this._log("warn",i)}error(...i){if(this.debug)return this._log("error",i)}_log(i,s){console[i](`%c[${this.kind}]:`,`color: ${this.color}; font-weight: bold;`,...s)}}function R(o){return typeof o=="object"&&o!==null}var X=`.netless-app-embedded-page{width:100%;height:100%;position:relative}.netless-app-embedded-page iframe{width:100%;height:100%;border:none;display:block}.netless-app-embedded-page-wb-view{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}
`;const q=new Set(["clicker","selector"]),Y={kind:"EmbeddedPage",setup(o){var n;const i=o.getDisplayer(),s=o.getRoom(),l=o.getBox(),c=o.getView(),y=(n=o.getAppOptions())==null?void 0:n.debug,D={mainId:"state",nsPrefix:"$scope-"},T=D.nsPrefix+D.mainId,g=H(o,{src:"https://example.org",store:{[T]:{}},page:""}),b=new W,h=new K("EmbeddedPage",y),M=e=>{try{return R(e)?JSON.parse(JSON.stringify(e)):e}catch(t){throw h.error("Cannot parse to JSON object",e),t}},S=document.createElement("div");S.dataset.appKind="EmbeddedPage",S.classList.add("netless-app-embedded-page");const m=document.createElement("iframe");S.appendChild(m),l.mountStyles(X),l.mountContent(S);const p=e=>e.map(({memberId:t,payload:a})=>({sessionUID:t,uid:(s==null?void 0:s.uid)||(a==null?void 0:a.uid)||"",userPayload:M(a)})),N=(e,t)=>{let a=null;const d=o.mobxUtils.reaction(e,()=>{a&&(a(),a=null);const u=e();a=()=>o.objectUtils.unlistenUpdated(u,t),o.objectUtils.listenUpdated(u,t)},{fireImmediately:!0});return()=>{a==null||a(),d()}},f=e=>{var t;h.log("Message to SDK",e),(t=m.contentWindow)==null||t.postMessage(e,"*")};if(c){const e=document.createElement("div");if(e.classList.add("netless-app-embedded-page-wb-view"),S.appendChild(e),o.mountView(e),s){const t=a=>{e.style.pointerEvents=!a||q.has(a)?"none":"auto"};t(s.state.memberState.currentApplianceName),b.add(()=>{const a=d=>{d.memberState&&t(d.memberState.currentApplianceName)};return i.callbacks.on("onRoomStateChanged",a),()=>i.callbacks.off("onRoomStateChanged",a)})}}const L=e=>{c&&R(e)&&c.moveCamera({centerX:e.x,centerY:e.y,scale:e.scale,animationMode:"immediately"})},C=e=>{R(e)&&Object.keys(e).forEach(t=>{if(t!==T){const a=e[t];o.updateAttributes(["store",t],a)}})},O=e=>{if(R(e)&&e.namespace&&R(e.state)){const{namespace:t,state:a}=e;if(!o.getIsWritable()){h.error(`Cannot setState on store ${t} without writable access`,a);return}Object.keys(a).forEach(d=>{o.updateAttributes(["store",t,d],a[d])})}};b.add(()=>{const e=new W,t=d=>{e.add(()=>N(()=>g.store[d],u=>{f({type:"StateChanged",payload:{namespace:d,actions:M(u)}})}),d)};Object.keys(g.store).forEach(t);const a=N(()=>g.store,d=>{f({type:"StoreChanged",payload:M(d)}),g.store&&d.forEach(({key:u,kind:v})=>{switch(v){case 2:{e.flush(u);break}default:{t(u);break}}})});return()=>{e.flushAll(),a()}}),b.add(()=>{const e=t=>{(t==null?void 0:t.roomMembers)&&f({type:"RoomMembersChanged",payload:p(t.roomMembers)})};return i.callbacks.on("onRoomStateChanged",e),()=>i.callbacks.off("onRoomStateChanged",e)});const P=e=>{if(!c)h.warn("SetPage: page api is only available with 'scenePath' options enabled.");else{const t=o.getInitScenePath();if(typeof e=="string"&&o.getIsWritable()&&t&&s){const a=[t,e].join("/");s.scenePathType(a)==="none"&&s.putScenes(t,[{name:e}]),o.setScenePath(a),o.updateAttributes(["page"],e)}}};b.add(()=>{const e=(t,a)=>{f({type:"PageChanged",payload:{oldValue:a,newValue:t}})};return o.mobxUtils.reaction(()=>g.page,e)}),b.add(()=>{const e=()=>{const t=o.getIsWritable();f({type:"WritableChanged",payload:t}),h.log(`WritableChange changed to ${t}`)};return o.emitter.on("writableChange",e),()=>o.emitter.off("writableChange",e)});const E=`channel-${o.appId}`,$=e=>{o.getIsWritable()&&s&&s.dispatchMagixEvent(E,e)};b.add(()=>{const e=t=>{t.event===E&&t.authorId!==i.observerId&&f({type:"ReceiveMagixMessage",payload:t.payload})};return i.addMagixEventListener(E,e),()=>i.removeMagixEventListener(E,e)});const r=()=>{var a;const e=i.observerId,t=(a=i.state.roomMembers.find(d=>d.memberId===e))==null?void 0:a.payload;f({type:"Init",payload:{page:g.page,writable:o.getIsWritable(),roomMembers:p(i.state.roomMembers),debug:y,store:M(g.store),storeConfig:D,meta:{sessionUID:e,uid:(s==null?void 0:s.uid)||(t==null?void 0:t.uid)||"",roomUUID:s==null?void 0:s.uuid,userPayload:M(t)}}})};b.addEventListener(window,"message",e=>{if(e.source!==m.contentWindow)return;if(!R(e.data)){h.error("window message data should be object, instead got",e.data);return}const t=e.data;switch(h.log("Message From SDK",t),t.type){case"Init":{r();break}case"SetState":{O(t.payload);break}case"SetStore":{C(t.payload);break}case"SetPage":{P(t.payload);break}case"SendMagixMessage":{$(t.payload);break}case"MoveCamera":{L(t.payload);break}}}),o.emitter.on("destroy",()=>{h.log("destroy"),b.flushAll()}),m.src=g.src}};exports.default=Y;
"use strict";var F=Object.defineProperty;var G=(o,i,s)=>i in o?F(o,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[i]=s;var O=(o,i,s)=>(G(o,typeof i!="symbol"?i+"":i,s),s);Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";class _{constructor(){this.disposers=new Map,this.disposerIDGenCount=-1}add(i,s=this.genDisposerID()){return this.flush(s),this.disposers.set(s,i()),s}addEventListener(i,s,u,c,w=this.genDisposerID()){return this.add(()=>(i.addEventListener(s,u,c),()=>i.removeEventListener(s,u,c)),w),w}setTimeout(i,s,u=this.genDisposerID()){return this.add(()=>{const c=window.setTimeout(()=>{this.remove(u),i()},s);return()=>window.clearTimeout(c)},u)}setInterval(i,s,u=this.genDisposerID()){return this.add(()=>{const c=window.setInterval(i,s);return()=>window.clearInterval(c)},u)}remove(i){const s=this.disposers.get(i);return this.disposers.delete(i),s}flush(i){const s=this.remove(i);if(s)try{s()}catch(u){console.error(u)}}flushAll(){this.disposers.forEach(i=>{try{i()}catch(s){console.error(s)}}),this.disposers.clear()}genDisposerID(){const{MAX_SAFE_INTEGER:i=9007199254740991}=Number;return this.disposerIDGenCount=(this.disposerIDGenCount+1)%i,`disposer-${this.disposerIDGenCount}`}}function B(o){return o!=null&&typeof o=="object"&&!Array.isArray(o)}function H(o,i){let s=o.getAttributes();if(s||(o.setAttributes(i),s=o.getAttributes()),!s)throw new Error("[NetlessAppMonaco] No attributes");return B(i)&&Object.keys(i).forEach(u=>{Object.prototype.hasOwnProperty.call(s,u)||o.updateAttributes([u],i[u])}),s}var V=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},W={exports:{}};(function(o,i){(function(s,u){{var c=u();o&&o.exports&&(i=o.exports=c),i.randomColor=c}})(V,function(){var s=null,u={};j();var c=[],w=function(r){if(r=r||{},r.seed!==void 0&&r.seed!==null&&r.seed===parseInt(r.seed,10))s=r.seed;else if(typeof r.seed=="string")s=L(r.seed);else{if(r.seed!==void 0&&r.seed!==null)throw new TypeError("The seed value must be an integer or string");s=null}var e,t,a;if(r.count!==null&&r.count!==void 0){for(var n=r.count,d=[],l=0;l<r.count;l++)c.push(!1);for(r.count=null;n>d.length;){var I=w(r);s!==null&&(r.seed=s),d.push(I)}return r.count=n,d}return e=T(r),t=f(e,r),a=g(e,t,r),b([e,t,a],r)};function T(r){if(c.length>0){var e=U(r.hue),t=m(e),a=(e[1]-e[0])/c.length,n=parseInt((t-e[0])/a);c[n]===!0?n=(n+2)%c.length:c[n]=!0;var d=(e[0]+n*a)%359,l=(e[0]+(n+1)*a)%359;return e=[d,l],t=m(e),t<0&&(t=360+t),t}else{var e=S(r.hue);return t=m(e),t<0&&(t=360+t),t}}function f(r,e){if(e.hue==="monochrome")return 0;if(e.luminosity==="random")return m([0,100]);var t=A(r),a=t[0],n=t[1];switch(e.luminosity){case"bright":a=55;break;case"dark":a=n-10;break;case"light":n=55;break}return m([a,n])}function g(r,e,t){var a=M(r,e),n=100;switch(t.luminosity){case"dark":n=a+20;break;case"light":a=(n+a)/2;break;case"random":a=0,n=100;break}return m([a,n])}function b(r,e){switch(e.format){case"hsvArray":return r;case"hslArray":return y(r);case"hsl":var t=y(r);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)";case"hsla":var a=y(r),n=e.alpha||Math.random();return"hsla("+a[0]+", "+a[1]+"%, "+a[2]+"%, "+n+")";case"rgbArray":return R(r);case"rgb":var d=R(r);return"rgb("+d.join(", ")+")";case"rgba":var l=R(r),n=e.alpha||Math.random();return"rgba("+l.join(", ")+", "+n+")";default:return p(r)}}function M(r,e){for(var t=k(r).lowerBounds,a=0;a<t.length-1;a++){var n=t[a][0],d=t[a][1],l=t[a+1][0],I=t[a+1][1];if(e>=n&&e<=l){var D=(I-d)/(l-n),v=d-D*n;return D*e+v}}return 0}function S(r){if(typeof parseInt(r)=="number"){var e=parseInt(r);if(e<360&&e>0)return[e,e]}if(typeof r=="string"){if(u[r]){var t=u[r];if(t.hueRange)return t.hueRange}else if(r.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)){var a=N(r)[0];return[a,a]}}return[0,360]}function A(r){return k(r).saturationRange}function k(r){r>=334&&r<=360&&(r-=360);for(var e in u){var t=u[e];if(t.hueRange&&r>=t.hueRange[0]&&r<=t.hueRange[1])return u[e]}return"Color not found"}function m(r){if(s===null){var e=.618033988749895,t=Math.random();return t+=e,t%=1,Math.floor(r[0]+t*(r[1]+1-r[0]))}else{var a=r[1]||1,n=r[0]||0;s=(s*9301+49297)%233280;var d=s/233280;return Math.floor(n+d*(a-n))}}function p(r){var e=R(r);function t(n){var d=n.toString(16);return d.length==1?"0"+d:d}var a="#"+t(e[0])+t(e[1])+t(e[2]);return a}function h(r,e,t){var a=t[0][0],n=t[t.length-1][0],d=t[t.length-1][1],l=t[0][1];u[r]={hueRange:e,lowerBounds:t,saturationRange:[a,n],brightnessRange:[d,l]}}function j(){h("monochrome",null,[[0,0],[100,0]]),h("red",[-26,18],[[20,100],[30,92],[40,89],[50,85],[60,78],[70,70],[80,60],[90,55],[100,50]]),h("orange",[18,46],[[20,100],[30,93],[40,88],[50,86],[60,85],[70,70],[100,70]]),h("yellow",[46,62],[[25,100],[40,94],[50,89],[60,86],[70,84],[80,82],[90,80],[100,75]]),h("green",[62,178],[[30,100],[40,90],[50,85],[60,81],[70,74],[80,64],[90,50],[100,40]]),h("blue",[178,257],[[20,100],[30,86],[40,80],[50,74],[60,60],[70,52],[80,44],[90,39],[100,35]]),h("purple",[257,282],[[20,100],[30,87],[40,79],[50,70],[60,65],[70,59],[80,52],[90,45],[100,42]]),h("pink",[282,334],[[20,100],[30,90],[40,86],[60,84],[80,80],[90,75],[100,73]])}function R(r){var e=r[0];e===0&&(e=1),e===360&&(e=359),e=e/360;var t=r[1]/100,a=r[2]/100,n=Math.floor(e*6),d=e*6-n,l=a*(1-t),I=a*(1-d*t),D=a*(1-(1-d)*t),v=256,C=256,E=256;switch(n){case 0:v=a,C=D,E=l;break;case 1:v=I,C=a,E=l;break;case 2:v=l,C=a,E=D;break;case 3:v=l,C=I,E=a;break;case 4:v=D,C=l,E=a;break;case 5:v=a,C=l,E=I;break}var $=[Math.floor(v*255),Math.floor(C*255),Math.floor(E*255)];return $}function N(r){r=r.replace(/^#/,""),r=r.length===3?r.replace(/(.)/g,"$1$1"):r;var e=parseInt(r.substr(0,2),16)/255,t=parseInt(r.substr(2,2),16)/255,a=parseInt(r.substr(4,2),16)/255,n=Math.max(e,t,a),d=n-Math.min(e,t,a),l=n?d/n:0;switch(n){case e:return[60*((t-a)/d%6)||0,l,n];case t:return[60*((a-e)/d+2)||0,l,n];case a:return[60*((e-t)/d+4)||0,l,n]}}function y(r){var e=r[0],t=r[1]/100,a=r[2]/100,n=(2-t)*a;return[e,Math.round(t*a/(n<1?n:2-n)*1e4)/100,n/2*100]}function L(r){for(var e=0,t=0;t!==r.length&&!(e>=Number.MAX_SAFE_INTEGER);t++)e+=r.charCodeAt(t);return e}function U(r){if(isNaN(r)){if(typeof r=="string"){if(u[r]){var t=u[r];if(t.hueRange)return t.hueRange}else if(r.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)){var a=N(r)[0];return k(a).hueRange}}}else{var e=parseInt(r);if(e<360&&e>0)return k(r).hueRange}return[0,360]}return w})})(W,W.exports);var J=W.exports;class K{constructor(i="NetlessApp",s="error"){O(this,"kind");O(this,"debug");O(this,"color",J({luminosity:"dark"}));this.kind=i,this.debug=s}log(...i){if(this.debug===!0||this.debug==="log")return this._log("log",i)}warn(...i){if(this.debug&&this.debug!=="error")return this._log("warn",i)}error(...i){if(this.debug)return this._log("error",i)}_log(i,s){console[i](`%c[${this.kind}]:`,`color: ${this.color}; font-weight: bold;`,...s)}}function P(o){return typeof o=="object"&&o!==null}var X=`.netless-app-embedded-page{width:100%;height:100%;position:relative}.netless-app-embedded-page iframe{width:100%;height:100%;border:none;display:block}.netless-app-embedded-page-wb-view{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}
`;const q=new Set(["clicker","selector"]),Y={kind:"EmbeddedPage",setup(o){var r;const i=o.getDisplayer(),s=o.getRoom(),u=o.getBox(),c=o.getView(),w=(r=o.getAppOptions())==null?void 0:r.debug,T="state",f=H(o,{src:"https://example.org",store:{[T]:{}},page:""}),g=new _,b=new K("EmbeddedPage",w),M=e=>{try{return P(e)?JSON.parse(JSON.stringify(e)):e}catch(t){throw b.error("Cannot parse to JSON object",e),t}},S=document.createElement("div");S.dataset.appKind="EmbeddedPage",S.classList.add("netless-app-embedded-page");const A=document.createElement("iframe");S.appendChild(A),u.mountStyles(X),u.mountContent(S);const k=e=>e.map(({memberId:t,payload:a})=>({sessionUID:t,uid:(s==null?void 0:s.uid)||(a==null?void 0:a.uid)||"",userPayload:M(a)})),m=(e,t)=>{let a=null;const n=o.mobxUtils.reaction(e,()=>{a&&(a(),a=null);const d=e();a=()=>o.objectUtils.unlistenUpdated(d,t),o.objectUtils.listenUpdated(d,t)},{fireImmediately:!0});return()=>{a==null||a(),n()}},p=e=>{var t;b.log("Message to SDK",e),(t=A.contentWindow)==null||t.postMessage(e,"*")};if(c){const e=document.createElement("div");if(e.classList.add("netless-app-embedded-page-wb-view"),S.appendChild(e),o.mountView(e),s){const t=a=>{e.style.pointerEvents=!a||q.has(a)?"none":"auto"};t(s.state.memberState.currentApplianceName),g.add(()=>{const a=n=>{n.memberState&&t(n.memberState.currentApplianceName)};return i.callbacks.on("onRoomStateChanged",a),()=>i.callbacks.off("onRoomStateChanged",a)})}}const h=e=>{c&&P(e)&&c.moveCamera({centerX:e.x,centerY:e.y,scale:e.scale,animationMode:"immediately"})},j=e=>{P(e)&&Object.keys(e).forEach(t=>{if(t!==T){const a=e[t];o.updateAttributes(["store",t],a)}})},R=e=>{if(P(e)&&e.storeId&&P(e.state)){const{storeId:t,state:a}=e;if(!o.getIsWritable()){b.error(`Cannot setState on store ${t} without writable access`,a);return}Object.keys(a).forEach(n=>{o.updateAttributes(["store",t,n],a[n])})}};g.add(()=>{const e=new _,t=n=>{e.add(()=>m(()=>f.store[n],d=>{p({type:"StateChanged",payload:{storeId:n,actions:M(d)}})}),n)};Object.keys(f.store).forEach(t);const a=m(()=>f.store,n=>{p({type:"StoreChanged",payload:M(n)}),f.store&&n.forEach(({key:d,kind:l})=>{switch(l){case 2:{e.flush(d);break}default:{t(d);break}}})});return()=>{e.flushAll(),a()}}),g.add(()=>{const e=t=>{(t==null?void 0:t.roomMembers)&&p({type:"RoomMembersChanged",payload:k(t.roomMembers)})};return i.callbacks.on("onRoomStateChanged",e),()=>i.callbacks.off("onRoomStateChanged",e)});const N=e=>{if(!c)b.warn("SetPage: page api is only available with 'scenePath' options enabled.");else{const t=o.getInitScenePath();if(typeof e=="string"&&o.getIsWritable()&&t&&s){const a=[t,e].join("/");s.scenePathType(a)==="none"&&s.putScenes(t,[{name:e}]),o.setScenePath(a),o.updateAttributes(["page"],e)}}};g.add(()=>{const e=(t,a)=>{p({type:"PageChanged",payload:{oldValue:a,newValue:t}})};return o.mobxUtils.reaction(()=>f.page,e)}),g.add(()=>{const e=()=>{const t=o.getIsWritable();p({type:"WritableChanged",payload:t}),b.log(`WritableChange changed to ${t}`)};return o.emitter.on("writableChange",e),()=>o.emitter.off("writableChange",e)});const y=`channel-${o.appId}`,L=e=>{o.getIsWritable()&&s&&s.dispatchMagixEvent(y,e)};g.add(()=>{const e=t=>{t.event===y&&t.authorId!==i.observerId&&p({type:"ReceiveMagixMessage",payload:t.payload})};return i.addMagixEventListener(y,e),()=>i.removeMagixEventListener(y,e)});const U=()=>{var a;const e=i.observerId,t=(a=i.state.roomMembers.find(n=>n.memberId===e))==null?void 0:a.payload;p({type:"Init",payload:{page:f.page,writable:o.getIsWritable(),roomMembers:k(i.state.roomMembers),debug:w,store:M(f.store),mainStoreId:T,meta:{sessionUID:e,uid:(s==null?void 0:s.uid)||(t==null?void 0:t.uid)||"",roomUUID:s==null?void 0:s.uuid,userPayload:M(t)}}})};g.addEventListener(window,"message",e=>{if(e.source!==A.contentWindow)return;if(!P(e.data)){b.error("window message data should be object, instead got",e.data);return}const t=e.data;switch(b.log("Message From SDK",t),t.type){case"Init":{U();break}case"SetState":{R(t.payload);break}case"SetStore":{j(t.payload);break}case"SetPage":{N(t.payload);break}case"SendMagixMessage":{L(t.payload);break}case"MoveCamera":{h(t.payload);break}}}),o.emitter.on("destroy",()=>{b.log("destroy"),g.flushAll()}),A.src=f.src}};exports.default=Y;
//# sourceMappingURL=main.cjs.js.map

@@ -450,10 +450,6 @@ var __defProp = Object.defineProperty;

const debug = (_a = context.getAppOptions()) == null ? void 0 : _a.debug;
const storeConfig = {
mainId: "state",
nsPrefix: "$scope-"
};
const stateNamespace = storeConfig.nsPrefix + storeConfig.mainId;
const mainStoreId = "state";
const attrs = ensureAttributes(context, {
src: "https://example.org",
store: { [stateNamespace]: {} },
store: { [mainStoreId]: {} },
page: ""

@@ -537,6 +533,6 @@ });

if (isObj(payload)) {
Object.keys(payload).forEach((namespace) => {
if (namespace !== stateNamespace) {
const state = payload[namespace];
context.updateAttributes(["store", namespace], state);
Object.keys(payload).forEach((id) => {
if (id !== mainStoreId) {
const state = payload[id];
context.updateAttributes(["store", id], state);
}

@@ -547,10 +543,10 @@ });

const setState = (payload) => {
if (isObj(payload) && payload.namespace && isObj(payload.state)) {
const { namespace, state } = payload;
if (isObj(payload) && payload.storeId && isObj(payload.state)) {
const { storeId, state } = payload;
if (!context.getIsWritable()) {
logger.error(`Cannot setState on store ${namespace} without writable access`, state);
logger.error(`Cannot setState on store ${storeId} without writable access`, state);
return;
}
Object.keys(state).forEach((key) => {
context.updateAttributes(["store", namespace, key], state[key]);
context.updateAttributes(["store", storeId, key], state[key]);
});

@@ -561,9 +557,9 @@ }

const storeSideEffect = new s();
const listenStateUpdated = (namespace) => {
storeSideEffect.add(() => safeListenPropsUpdated(() => attrs.store[namespace], (actions) => {
const listenStateUpdated = (storeId) => {
storeSideEffect.add(() => safeListenPropsUpdated(() => attrs.store[storeId], (actions) => {
postMessage({
type: "StateChanged",
payload: { namespace, actions: toJSON(actions) }
payload: { storeId, actions: toJSON(actions) }
});
}), namespace);
}), storeId);
};

@@ -665,3 +661,3 @@ Object.keys(attrs.store).forEach(listenStateUpdated);

store: toJSON(attrs.store),
storeConfig,
mainStoreId,
meta: {

@@ -668,0 +664,0 @@ sessionUID: memberId,

@@ -1,3 +0,3 @@

(()=>{var Y=Object.defineProperty;var z=(g,b,k)=>b in g?Y(g,b,{enumerable:!0,configurable:!0,writable:!0,value:k}):g[b]=k;var U=(g,b,k)=>(z(g,typeof b!="symbol"?b+"":b,k),k);var Z=function(g){"use strict";class b{constructor(){this.disposers=new Map,this.disposerIDGenCount=-1}add(i,s=this.genDisposerID()){return this.flush(s),this.disposers.set(s,i()),s}addEventListener(i,s,l,c,S=this.genDisposerID()){return this.add(()=>(i.addEventListener(s,l,c),()=>i.removeEventListener(s,l,c)),S),S}setTimeout(i,s,l=this.genDisposerID()){return this.add(()=>{const c=window.setTimeout(()=>{this.remove(l),i()},s);return()=>window.clearTimeout(c)},l)}setInterval(i,s,l=this.genDisposerID()){return this.add(()=>{const c=window.setInterval(i,s);return()=>window.clearInterval(c)},l)}remove(i){const s=this.disposers.get(i);return this.disposers.delete(i),s}flush(i){const s=this.remove(i);if(s)try{s()}catch(l){console.error(l)}}flushAll(){this.disposers.forEach(i=>{try{i()}catch(s){console.error(s)}}),this.disposers.clear()}genDisposerID(){const{MAX_SAFE_INTEGER:i=9007199254740991}=Number;return this.disposerIDGenCount=(this.disposerIDGenCount+1)%i,`disposer-${this.disposerIDGenCount}`}}function k(o){return o!=null&&typeof o=="object"&&!Array.isArray(o)}function G(o,i){let s=o.getAttributes();if(s||(o.setAttributes(i),s=o.getAttributes()),!s)throw new Error("[NetlessAppMonaco] No attributes");return k(i)&&Object.keys(i).forEach(l=>{Object.prototype.hasOwnProperty.call(s,l)||o.updateAttributes([l],i[l])}),s}var B=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},W={exports:{}};(function(o,i){(function(s,l){{var c=l();o&&o.exports&&(i=o.exports=c),i.randomColor=c}})(B,function(){var s=null,l={};_();var c=[],S=function(r){if(r=r||{},r.seed!==void 0&&r.seed!==null&&r.seed===parseInt(r.seed,10))s=r.seed;else if(typeof r.seed=="string")s=P(r.seed);else{if(r.seed!==void 0&&r.seed!==null)throw new TypeError("The seed value must be an integer or string");s=null}var n,e,t;if(r.count!==null&&r.count!==void 0){for(var a=r.count,d=[],u=0;u<r.count;u++)c.push(!1);for(r.count=null;a>d.length;){var y=S(r);s!==null&&(r.seed=s),d.push(y)}return r.count=a,d}return n=T(r),e=j(n,r),t=h(n,e,r),m([n,e,t],r)};function T(r){if(c.length>0){var n=F(r.hue),e=w(n),t=(n[1]-n[0])/c.length,a=parseInt((e-n[0])/t);c[a]===!0?a=(a+2)%c.length:c[a]=!0;var d=(n[0]+a*t)%359,u=(n[0]+(a+1)*t)%359;return n=[d,u],e=w(n),e<0&&(e=360+e),e}else{var n=I(r.hue);return e=w(n),e<0&&(e=360+e),e}}function j(r,n){if(n.hue==="monochrome")return 0;if(n.luminosity==="random")return w([0,100]);var e=C(r),t=e[0],a=e[1];switch(n.luminosity){case"bright":t=55;break;case"dark":t=a-10;break;case"light":a=55;break}return w([t,a])}function h(r,n,e){var t=p(r,n),a=100;switch(e.luminosity){case"dark":a=t+20;break;case"light":t=(a+t)/2;break;case"random":t=0,a=100;break}return w([t,a])}function m(r,n){switch(n.format){case"hsvArray":return r;case"hslArray":return O(r);case"hsl":var e=O(r);return"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)";case"hsla":var t=O(r),a=n.alpha||Math.random();return"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+a+")";case"rgbArray":return D(r);case"rgb":var d=D(r);return"rgb("+d.join(", ")+")";case"rgba":var u=D(r),a=n.alpha||Math.random();return"rgba("+u.join(", ")+", "+a+")";default:return L(r)}}function p(r,n){for(var e=v(r).lowerBounds,t=0;t<e.length-1;t++){var a=e[t][0],d=e[t][1],u=e[t+1][0],y=e[t+1][1];if(n>=a&&n<=u){var N=(y-d)/(u-a),M=d-N*a;return N*n+M}}return 0}function I(r){if(typeof parseInt(r)=="number"){var n=parseInt(r);if(n<360&&n>0)return[n,n]}if(typeof r=="string"){if(l[r]){var e=l[r];if(e.hueRange)return e.hueRange}else if(r.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)){var t=$(r)[0];return[t,t]}}return[0,360]}function C(r){return v(r).saturationRange}function v(r){r>=334&&r<=360&&(r-=360);for(var n in l){var e=l[n];if(e.hueRange&&r>=e.hueRange[0]&&r<=e.hueRange[1])return l[n]}return"Color not found"}function w(r){if(s===null){var n=.618033988749895,e=Math.random();return e+=n,e%=1,Math.floor(r[0]+e*(r[1]+1-r[0]))}else{var t=r[1]||1,a=r[0]||0;s=(s*9301+49297)%233280;var d=s/233280;return Math.floor(a+d*(t-a))}}function L(r){var n=D(r);function e(a){var d=a.toString(16);return d.length==1?"0"+d:d}var t="#"+e(n[0])+e(n[1])+e(n[2]);return t}function f(r,n,e){var t=e[0][0],a=e[e.length-1][0],d=e[e.length-1][1],u=e[0][1];l[r]={hueRange:n,lowerBounds:e,saturationRange:[t,a],brightnessRange:[d,u]}}function _(){f("monochrome",null,[[0,0],[100,0]]),f("red",[-26,18],[[20,100],[30,92],[40,89],[50,85],[60,78],[70,70],[80,60],[90,55],[100,50]]),f("orange",[18,46],[[20,100],[30,93],[40,88],[50,86],[60,85],[70,70],[100,70]]),f("yellow",[46,62],[[25,100],[40,94],[50,89],[60,86],[70,84],[80,82],[90,80],[100,75]]),f("green",[62,178],[[30,100],[40,90],[50,85],[60,81],[70,74],[80,64],[90,50],[100,40]]),f("blue",[178,257],[[20,100],[30,86],[40,80],[50,74],[60,60],[70,52],[80,44],[90,39],[100,35]]),f("purple",[257,282],[[20,100],[30,87],[40,79],[50,70],[60,65],[70,59],[80,52],[90,45],[100,42]]),f("pink",[282,334],[[20,100],[30,90],[40,86],[60,84],[80,80],[90,75],[100,73]])}function D(r){var n=r[0];n===0&&(n=1),n===360&&(n=359),n=n/360;var e=r[1]/100,t=r[2]/100,a=Math.floor(n*6),d=n*6-a,u=t*(1-e),y=t*(1-d*e),N=t*(1-(1-d)*e),M=256,E=256,A=256;switch(a){case 0:M=t,E=N,A=u;break;case 1:M=y,E=t,A=u;break;case 2:M=u,E=t,A=N;break;case 3:M=u,E=y,A=t;break;case 4:M=N,E=u,A=t;break;case 5:M=t,E=u,A=y;break}var q=[Math.floor(M*255),Math.floor(E*255),Math.floor(A*255)];return q}function $(r){r=r.replace(/^#/,""),r=r.length===3?r.replace(/(.)/g,"$1$1"):r;var n=parseInt(r.substr(0,2),16)/255,e=parseInt(r.substr(2,2),16)/255,t=parseInt(r.substr(4,2),16)/255,a=Math.max(n,e,t),d=a-Math.min(n,e,t),u=a?d/a:0;switch(a){case n:return[60*((e-t)/d%6)||0,u,a];case e:return[60*((t-n)/d+2)||0,u,a];case t:return[60*((n-e)/d+4)||0,u,a]}}function O(r){var n=r[0],e=r[1]/100,t=r[2]/100,a=(2-e)*t;return[n,Math.round(e*t/(a<1?a:2-a)*1e4)/100,a/2*100]}function P(r){for(var n=0,e=0;e!==r.length&&!(n>=Number.MAX_SAFE_INTEGER);e++)n+=r.charCodeAt(e);return n}function F(r){if(isNaN(r)){if(typeof r=="string"){if(l[r]){var e=l[r];if(e.hueRange)return e.hueRange}else if(r.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)){var t=$(r)[0];return v(t).hueRange}}}else{var n=parseInt(r);if(n<360&&n>0)return v(r).hueRange}return[0,360]}return S})})(W,W.exports);var H=W.exports;class V{constructor(i="NetlessApp",s="error"){U(this,"kind");U(this,"debug");U(this,"color",H({luminosity:"dark"}));this.kind=i,this.debug=s}log(...i){if(this.debug===!0||this.debug==="log")return this._log("log",i)}warn(...i){if(this.debug&&this.debug!=="error")return this._log("warn",i)}error(...i){if(this.debug)return this._log("error",i)}_log(i,s){console[i](`%c[${this.kind}]:`,`color: ${this.color}; font-weight: bold;`,...s)}}function R(o){return typeof o=="object"&&o!==null}var J=`.netless-app-embedded-page{width:100%;height:100%;position:relative}.netless-app-embedded-page iframe{width:100%;height:100%;border:none;display:block}.netless-app-embedded-page-wb-view{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}
`;const K=new Set(["clicker","selector"]),X={kind:"EmbeddedPage",setup(o){var n;const i=o.getDisplayer(),s=o.getRoom(),l=o.getBox(),c=o.getView(),S=(n=o.getAppOptions())==null?void 0:n.debug,T={mainId:"state",nsPrefix:"$scope-"},j=T.nsPrefix+T.mainId,h=G(o,{src:"https://example.org",store:{[j]:{}},page:""}),m=new b,p=new V("EmbeddedPage",S),I=e=>{try{return R(e)?JSON.parse(JSON.stringify(e)):e}catch(t){throw p.error("Cannot parse to JSON object",e),t}},C=document.createElement("div");C.dataset.appKind="EmbeddedPage",C.classList.add("netless-app-embedded-page");const v=document.createElement("iframe");C.appendChild(v),l.mountStyles(J),l.mountContent(C);const w=e=>e.map(({memberId:t,payload:a})=>({sessionUID:t,uid:(s==null?void 0:s.uid)||(a==null?void 0:a.uid)||"",userPayload:I(a)})),L=(e,t)=>{let a=null;const d=o.mobxUtils.reaction(e,()=>{a&&(a(),a=null);const u=e();a=()=>o.objectUtils.unlistenUpdated(u,t),o.objectUtils.listenUpdated(u,t)},{fireImmediately:!0});return()=>{a==null||a(),d()}},f=e=>{var t;p.log("Message to SDK",e),(t=v.contentWindow)==null||t.postMessage(e,"*")};if(c){const e=document.createElement("div");if(e.classList.add("netless-app-embedded-page-wb-view"),C.appendChild(e),o.mountView(e),s){const t=a=>{e.style.pointerEvents=!a||K.has(a)?"none":"auto"};t(s.state.memberState.currentApplianceName),m.add(()=>{const a=d=>{d.memberState&&t(d.memberState.currentApplianceName)};return i.callbacks.on("onRoomStateChanged",a),()=>i.callbacks.off("onRoomStateChanged",a)})}}const _=e=>{c&&R(e)&&c.moveCamera({centerX:e.x,centerY:e.y,scale:e.scale,animationMode:"immediately"})},D=e=>{R(e)&&Object.keys(e).forEach(t=>{if(t!==j){const a=e[t];o.updateAttributes(["store",t],a)}})},$=e=>{if(R(e)&&e.namespace&&R(e.state)){const{namespace:t,state:a}=e;if(!o.getIsWritable()){p.error(`Cannot setState on store ${t} without writable access`,a);return}Object.keys(a).forEach(d=>{o.updateAttributes(["store",t,d],a[d])})}};m.add(()=>{const e=new b,t=d=>{e.add(()=>L(()=>h.store[d],u=>{f({type:"StateChanged",payload:{namespace:d,actions:I(u)}})}),d)};Object.keys(h.store).forEach(t);const a=L(()=>h.store,d=>{f({type:"StoreChanged",payload:I(d)}),h.store&&d.forEach(({key:u,kind:y})=>{switch(y){case 2:{e.flush(u);break}default:{t(u);break}}})});return()=>{e.flushAll(),a()}}),m.add(()=>{const e=t=>{(t==null?void 0:t.roomMembers)&&f({type:"RoomMembersChanged",payload:w(t.roomMembers)})};return i.callbacks.on("onRoomStateChanged",e),()=>i.callbacks.off("onRoomStateChanged",e)});const O=e=>{if(!c)p.warn("SetPage: page api is only available with 'scenePath' options enabled.");else{const t=o.getInitScenePath();if(typeof e=="string"&&o.getIsWritable()&&t&&s){const a=[t,e].join("/");s.scenePathType(a)==="none"&&s.putScenes(t,[{name:e}]),o.setScenePath(a),o.updateAttributes(["page"],e)}}};m.add(()=>{const e=(t,a)=>{f({type:"PageChanged",payload:{oldValue:a,newValue:t}})};return o.mobxUtils.reaction(()=>h.page,e)}),m.add(()=>{const e=()=>{const t=o.getIsWritable();f({type:"WritableChanged",payload:t}),p.log(`WritableChange changed to ${t}`)};return o.emitter.on("writableChange",e),()=>o.emitter.off("writableChange",e)});const P=`channel-${o.appId}`,F=e=>{o.getIsWritable()&&s&&s.dispatchMagixEvent(P,e)};m.add(()=>{const e=t=>{t.event===P&&t.authorId!==i.observerId&&f({type:"ReceiveMagixMessage",payload:t.payload})};return i.addMagixEventListener(P,e),()=>i.removeMagixEventListener(P,e)});const r=()=>{var a;const e=i.observerId,t=(a=i.state.roomMembers.find(d=>d.memberId===e))==null?void 0:a.payload;f({type:"Init",payload:{page:h.page,writable:o.getIsWritable(),roomMembers:w(i.state.roomMembers),debug:S,store:I(h.store),storeConfig:T,meta:{sessionUID:e,uid:(s==null?void 0:s.uid)||(t==null?void 0:t.uid)||"",roomUUID:s==null?void 0:s.uuid,userPayload:I(t)}}})};m.addEventListener(window,"message",e=>{if(e.source!==v.contentWindow)return;if(!R(e.data)){p.error("window message data should be object, instead got",e.data);return}const t=e.data;switch(p.log("Message From SDK",t),t.type){case"Init":{r();break}case"SetState":{$(t.payload);break}case"SetStore":{D(t.payload);break}case"SetPage":{O(t.payload);break}case"SendMagixMessage":{F(t.payload);break}case"MoveCamera":{_(t.payload);break}}}),o.emitter.on("destroy",()=>{p.log("destroy"),m.flushAll()}),v.src=h.src}};return g.default=X,Object.defineProperty(g,"__esModule",{value:!0}),g[Symbol.toStringTag]="Module",g}({});})();
(()=>{var Y=Object.defineProperty;var z=(f,g,k)=>g in f?Y(f,g,{enumerable:!0,configurable:!0,writable:!0,value:k}):f[g]=k;var U=(f,g,k)=>(z(f,typeof g!="symbol"?g+"":g,k),k);var Z=function(f){"use strict";class g{constructor(){this.disposers=new Map,this.disposerIDGenCount=-1}add(i,s=this.genDisposerID()){return this.flush(s),this.disposers.set(s,i()),s}addEventListener(i,s,u,c,M=this.genDisposerID()){return this.add(()=>(i.addEventListener(s,u,c),()=>i.removeEventListener(s,u,c)),M),M}setTimeout(i,s,u=this.genDisposerID()){return this.add(()=>{const c=window.setTimeout(()=>{this.remove(u),i()},s);return()=>window.clearTimeout(c)},u)}setInterval(i,s,u=this.genDisposerID()){return this.add(()=>{const c=window.setInterval(i,s);return()=>window.clearInterval(c)},u)}remove(i){const s=this.disposers.get(i);return this.disposers.delete(i),s}flush(i){const s=this.remove(i);if(s)try{s()}catch(u){console.error(u)}}flushAll(){this.disposers.forEach(i=>{try{i()}catch(s){console.error(s)}}),this.disposers.clear()}genDisposerID(){const{MAX_SAFE_INTEGER:i=9007199254740991}=Number;return this.disposerIDGenCount=(this.disposerIDGenCount+1)%i,`disposer-${this.disposerIDGenCount}`}}function k(o){return o!=null&&typeof o=="object"&&!Array.isArray(o)}function G(o,i){let s=o.getAttributes();if(s||(o.setAttributes(i),s=o.getAttributes()),!s)throw new Error("[NetlessAppMonaco] No attributes");return k(i)&&Object.keys(i).forEach(u=>{Object.prototype.hasOwnProperty.call(s,u)||o.updateAttributes([u],i[u])}),s}var B=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},W={exports:{}};(function(o,i){(function(s,u){{var c=u();o&&o.exports&&(i=o.exports=c),i.randomColor=c}})(B,function(){var s=null,u={};_();var c=[],M=function(r){if(r=r||{},r.seed!==void 0&&r.seed!==null&&r.seed===parseInt(r.seed,10))s=r.seed;else if(typeof r.seed=="string")s=$(r.seed);else{if(r.seed!==void 0&&r.seed!==null)throw new TypeError("The seed value must be an integer or string");s=null}var e,t,a;if(r.count!==null&&r.count!==void 0){for(var n=r.count,d=[],l=0;l<r.count;l++)c.push(!1);for(r.count=null;n>d.length;){var A=M(r);s!==null&&(r.seed=s),d.push(A)}return r.count=n,d}return e=j(r),t=b(e,r),a=h(e,t,r),m([e,t,a],r)};function j(r){if(c.length>0){var e=F(r.hue),t=v(e),a=(e[1]-e[0])/c.length,n=parseInt((t-e[0])/a);c[n]===!0?n=(n+2)%c.length:c[n]=!0;var d=(e[0]+n*a)%359,l=(e[0]+(n+1)*a)%359;return e=[d,l],t=v(e),t<0&&(t=360+t),t}else{var e=C(r.hue);return t=v(e),t<0&&(t=360+t),t}}function b(r,e){if(e.hue==="monochrome")return 0;if(e.luminosity==="random")return v([0,100]);var t=T(r),a=t[0],n=t[1];switch(e.luminosity){case"bright":a=55;break;case"dark":a=n-10;break;case"light":n=55;break}return v([a,n])}function h(r,e,t){var a=I(r,e),n=100;switch(t.luminosity){case"dark":n=a+20;break;case"light":a=(n+a)/2;break;case"random":a=0,n=100;break}return v([a,n])}function m(r,e){switch(e.format){case"hsvArray":return r;case"hslArray":return S(r);case"hsl":var t=S(r);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)";case"hsla":var a=S(r),n=e.alpha||Math.random();return"hsla("+a[0]+", "+a[1]+"%, "+a[2]+"%, "+n+")";case"rgbArray":return N(r);case"rgb":var d=N(r);return"rgb("+d.join(", ")+")";case"rgba":var l=N(r),n=e.alpha||Math.random();return"rgba("+l.join(", ")+", "+n+")";default:return w(r)}}function I(r,e){for(var t=E(r).lowerBounds,a=0;a<t.length-1;a++){var n=t[a][0],d=t[a][1],l=t[a+1][0],A=t[a+1][1];if(e>=n&&e<=l){var O=(A-d)/(l-n),y=d-O*n;return O*e+y}}return 0}function C(r){if(typeof parseInt(r)=="number"){var e=parseInt(r);if(e<360&&e>0)return[e,e]}if(typeof r=="string"){if(u[r]){var t=u[r];if(t.hueRange)return t.hueRange}else if(r.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)){var a=L(r)[0];return[a,a]}}return[0,360]}function T(r){return E(r).saturationRange}function E(r){r>=334&&r<=360&&(r-=360);for(var e in u){var t=u[e];if(t.hueRange&&r>=t.hueRange[0]&&r<=t.hueRange[1])return u[e]}return"Color not found"}function v(r){if(s===null){var e=.618033988749895,t=Math.random();return t+=e,t%=1,Math.floor(r[0]+t*(r[1]+1-r[0]))}else{var a=r[1]||1,n=r[0]||0;s=(s*9301+49297)%233280;var d=s/233280;return Math.floor(n+d*(a-n))}}function w(r){var e=N(r);function t(n){var d=n.toString(16);return d.length==1?"0"+d:d}var a="#"+t(e[0])+t(e[1])+t(e[2]);return a}function p(r,e,t){var a=t[0][0],n=t[t.length-1][0],d=t[t.length-1][1],l=t[0][1];u[r]={hueRange:e,lowerBounds:t,saturationRange:[a,n],brightnessRange:[d,l]}}function _(){p("monochrome",null,[[0,0],[100,0]]),p("red",[-26,18],[[20,100],[30,92],[40,89],[50,85],[60,78],[70,70],[80,60],[90,55],[100,50]]),p("orange",[18,46],[[20,100],[30,93],[40,88],[50,86],[60,85],[70,70],[100,70]]),p("yellow",[46,62],[[25,100],[40,94],[50,89],[60,86],[70,84],[80,82],[90,80],[100,75]]),p("green",[62,178],[[30,100],[40,90],[50,85],[60,81],[70,74],[80,64],[90,50],[100,40]]),p("blue",[178,257],[[20,100],[30,86],[40,80],[50,74],[60,60],[70,52],[80,44],[90,39],[100,35]]),p("purple",[257,282],[[20,100],[30,87],[40,79],[50,70],[60,65],[70,59],[80,52],[90,45],[100,42]]),p("pink",[282,334],[[20,100],[30,90],[40,86],[60,84],[80,80],[90,75],[100,73]])}function N(r){var e=r[0];e===0&&(e=1),e===360&&(e=359),e=e/360;var t=r[1]/100,a=r[2]/100,n=Math.floor(e*6),d=e*6-n,l=a*(1-t),A=a*(1-d*t),O=a*(1-(1-d)*t),y=256,R=256,D=256;switch(n){case 0:y=a,R=O,D=l;break;case 1:y=A,R=a,D=l;break;case 2:y=l,R=a,D=O;break;case 3:y=l,R=A,D=a;break;case 4:y=O,R=l,D=a;break;case 5:y=a,R=l,D=A;break}var q=[Math.floor(y*255),Math.floor(R*255),Math.floor(D*255)];return q}function L(r){r=r.replace(/^#/,""),r=r.length===3?r.replace(/(.)/g,"$1$1"):r;var e=parseInt(r.substr(0,2),16)/255,t=parseInt(r.substr(2,2),16)/255,a=parseInt(r.substr(4,2),16)/255,n=Math.max(e,t,a),d=n-Math.min(e,t,a),l=n?d/n:0;switch(n){case e:return[60*((t-a)/d%6)||0,l,n];case t:return[60*((a-e)/d+2)||0,l,n];case a:return[60*((e-t)/d+4)||0,l,n]}}function S(r){var e=r[0],t=r[1]/100,a=r[2]/100,n=(2-t)*a;return[e,Math.round(t*a/(n<1?n:2-n)*1e4)/100,n/2*100]}function $(r){for(var e=0,t=0;t!==r.length&&!(e>=Number.MAX_SAFE_INTEGER);t++)e+=r.charCodeAt(t);return e}function F(r){if(isNaN(r)){if(typeof r=="string"){if(u[r]){var t=u[r];if(t.hueRange)return t.hueRange}else if(r.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)){var a=L(r)[0];return E(a).hueRange}}}else{var e=parseInt(r);if(e<360&&e>0)return E(r).hueRange}return[0,360]}return M})})(W,W.exports);var H=W.exports;class V{constructor(i="NetlessApp",s="error"){U(this,"kind");U(this,"debug");U(this,"color",H({luminosity:"dark"}));this.kind=i,this.debug=s}log(...i){if(this.debug===!0||this.debug==="log")return this._log("log",i)}warn(...i){if(this.debug&&this.debug!=="error")return this._log("warn",i)}error(...i){if(this.debug)return this._log("error",i)}_log(i,s){console[i](`%c[${this.kind}]:`,`color: ${this.color}; font-weight: bold;`,...s)}}function P(o){return typeof o=="object"&&o!==null}var J=`.netless-app-embedded-page{width:100%;height:100%;position:relative}.netless-app-embedded-page iframe{width:100%;height:100%;border:none;display:block}.netless-app-embedded-page-wb-view{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}
`;const K=new Set(["clicker","selector"]),X={kind:"EmbeddedPage",setup(o){var r;const i=o.getDisplayer(),s=o.getRoom(),u=o.getBox(),c=o.getView(),M=(r=o.getAppOptions())==null?void 0:r.debug,j="state",b=G(o,{src:"https://example.org",store:{[j]:{}},page:""}),h=new g,m=new V("EmbeddedPage",M),I=e=>{try{return P(e)?JSON.parse(JSON.stringify(e)):e}catch(t){throw m.error("Cannot parse to JSON object",e),t}},C=document.createElement("div");C.dataset.appKind="EmbeddedPage",C.classList.add("netless-app-embedded-page");const T=document.createElement("iframe");C.appendChild(T),u.mountStyles(J),u.mountContent(C);const E=e=>e.map(({memberId:t,payload:a})=>({sessionUID:t,uid:(s==null?void 0:s.uid)||(a==null?void 0:a.uid)||"",userPayload:I(a)})),v=(e,t)=>{let a=null;const n=o.mobxUtils.reaction(e,()=>{a&&(a(),a=null);const d=e();a=()=>o.objectUtils.unlistenUpdated(d,t),o.objectUtils.listenUpdated(d,t)},{fireImmediately:!0});return()=>{a==null||a(),n()}},w=e=>{var t;m.log("Message to SDK",e),(t=T.contentWindow)==null||t.postMessage(e,"*")};if(c){const e=document.createElement("div");if(e.classList.add("netless-app-embedded-page-wb-view"),C.appendChild(e),o.mountView(e),s){const t=a=>{e.style.pointerEvents=!a||K.has(a)?"none":"auto"};t(s.state.memberState.currentApplianceName),h.add(()=>{const a=n=>{n.memberState&&t(n.memberState.currentApplianceName)};return i.callbacks.on("onRoomStateChanged",a),()=>i.callbacks.off("onRoomStateChanged",a)})}}const p=e=>{c&&P(e)&&c.moveCamera({centerX:e.x,centerY:e.y,scale:e.scale,animationMode:"immediately"})},_=e=>{P(e)&&Object.keys(e).forEach(t=>{if(t!==j){const a=e[t];o.updateAttributes(["store",t],a)}})},N=e=>{if(P(e)&&e.storeId&&P(e.state)){const{storeId:t,state:a}=e;if(!o.getIsWritable()){m.error(`Cannot setState on store ${t} without writable access`,a);return}Object.keys(a).forEach(n=>{o.updateAttributes(["store",t,n],a[n])})}};h.add(()=>{const e=new g,t=n=>{e.add(()=>v(()=>b.store[n],d=>{w({type:"StateChanged",payload:{storeId:n,actions:I(d)}})}),n)};Object.keys(b.store).forEach(t);const a=v(()=>b.store,n=>{w({type:"StoreChanged",payload:I(n)}),b.store&&n.forEach(({key:d,kind:l})=>{switch(l){case 2:{e.flush(d);break}default:{t(d);break}}})});return()=>{e.flushAll(),a()}}),h.add(()=>{const e=t=>{(t==null?void 0:t.roomMembers)&&w({type:"RoomMembersChanged",payload:E(t.roomMembers)})};return i.callbacks.on("onRoomStateChanged",e),()=>i.callbacks.off("onRoomStateChanged",e)});const L=e=>{if(!c)m.warn("SetPage: page api is only available with 'scenePath' options enabled.");else{const t=o.getInitScenePath();if(typeof e=="string"&&o.getIsWritable()&&t&&s){const a=[t,e].join("/");s.scenePathType(a)==="none"&&s.putScenes(t,[{name:e}]),o.setScenePath(a),o.updateAttributes(["page"],e)}}};h.add(()=>{const e=(t,a)=>{w({type:"PageChanged",payload:{oldValue:a,newValue:t}})};return o.mobxUtils.reaction(()=>b.page,e)}),h.add(()=>{const e=()=>{const t=o.getIsWritable();w({type:"WritableChanged",payload:t}),m.log(`WritableChange changed to ${t}`)};return o.emitter.on("writableChange",e),()=>o.emitter.off("writableChange",e)});const S=`channel-${o.appId}`,$=e=>{o.getIsWritable()&&s&&s.dispatchMagixEvent(S,e)};h.add(()=>{const e=t=>{t.event===S&&t.authorId!==i.observerId&&w({type:"ReceiveMagixMessage",payload:t.payload})};return i.addMagixEventListener(S,e),()=>i.removeMagixEventListener(S,e)});const F=()=>{var a;const e=i.observerId,t=(a=i.state.roomMembers.find(n=>n.memberId===e))==null?void 0:a.payload;w({type:"Init",payload:{page:b.page,writable:o.getIsWritable(),roomMembers:E(i.state.roomMembers),debug:M,store:I(b.store),mainStoreId:j,meta:{sessionUID:e,uid:(s==null?void 0:s.uid)||(t==null?void 0:t.uid)||"",roomUUID:s==null?void 0:s.uuid,userPayload:I(t)}}})};h.addEventListener(window,"message",e=>{if(e.source!==T.contentWindow)return;if(!P(e.data)){m.error("window message data should be object, instead got",e.data);return}const t=e.data;switch(m.log("Message From SDK",t),t.type){case"Init":{F();break}case"SetState":{N(t.payload);break}case"SetStore":{_(t.payload);break}case"SetPage":{L(t.payload);break}case"SendMagixMessage":{$(t.payload);break}case"MoveCamera":{p(t.payload);break}}}),o.emitter.on("destroy",()=>{m.log("destroy"),h.flushAll()}),T.src=b.src}};return f.default=X,Object.defineProperty(f,"__esModule",{value:!0}),f[Symbol.toStringTag]="Module",f}({});})();
//# sourceMappingURL=main.iife.js.map

@@ -23,3 +23,3 @@ import type { AkkoObjectUpdatedProperty } from "white-web-sdk";

StateChanged: {
namespace: string;
storeId: string;
actions: ReadonlyArray<AkkoObjectUpdatedProperty<TState, Extract<keyof TState, string>>>;

@@ -40,11 +40,11 @@ };

SetState: {
namespace: string;
storeId: string;
state: Partial<TState>;
};
GetState: {
namespace: string;
storeId: string;
ensureState: TState;
};
SetStore: {
[namespace: string]: unknown;
[id: string]: unknown;
};

@@ -79,7 +79,4 @@ SetPage: string;

};
storeConfig: {
mainId: string;
nsPrefix: string;
};
mainStoreId: string;
}
export {};
{
"name": "@netless/app-embedded-page",
"version": "0.0.4",
"version": "0.0.5",
"main": "dist/main.cjs.js",

@@ -5,0 +5,0 @@ "module": "dist/main.es.js",

@@ -52,11 +52,7 @@ import type { NetlessApp } from "@netless/window-manager";

const debug = context.getAppOptions()?.debug;
const storeConfig = {
mainId: "state",
nsPrefix: "$scope-",
};
const stateNamespace = storeConfig.nsPrefix + storeConfig.mainId;
const mainStoreId = "state";
const attrs = ensureAttributes<Attributes>(context, {
src: "https://example.org",
store: { [stateNamespace]: {} },
store: { [mainStoreId]: {} },
page: "",

@@ -173,6 +169,6 @@ });

if (isObj(payload)) {
Object.keys(payload).forEach(namespace => {
if (namespace !== stateNamespace) {
const state = payload[namespace];
context.updateAttributes(["store", namespace], state);
Object.keys(payload).forEach(id => {
if (id !== mainStoreId) {
const state = payload[id];
context.updateAttributes(["store", id], state);
}

@@ -184,10 +180,10 @@ });

const setState = (payload: unknown): void => {
if (isObj(payload) && payload.namespace && isObj(payload.state)) {
const { namespace, state } = payload as FromSDKMessage<"SetState", DefaultState>["payload"];
if (isObj(payload) && payload.storeId && isObj(payload.state)) {
const { storeId, state } = payload as FromSDKMessage<"SetState", DefaultState>["payload"];
if (!context.getIsWritable()) {
logger.error(`Cannot setState on store ${namespace} without writable access`, state);
logger.error(`Cannot setState on store ${storeId} without writable access`, state);
return;
}
Object.keys(state).forEach(key => {
context.updateAttributes(["store", namespace, key], state[key]);
context.updateAttributes(["store", storeId, key], state[key]);
});

@@ -200,15 +196,15 @@ }

const listenStateUpdated = (namespace: string): void => {
const listenStateUpdated = (storeId: string): void => {
storeSideEffect.add(
() =>
safeListenPropsUpdated(
() => attrs.store[namespace],
() => attrs.store[storeId],
actions => {
postMessage({
type: "StateChanged",
payload: { namespace, actions: toJSON(actions) },
payload: { storeId, actions: toJSON(actions) },
});
}
),
namespace
storeId
);

@@ -349,3 +345,3 @@ };

store: toJSON(attrs.store),
storeConfig,
mainStoreId,
meta: {

@@ -352,0 +348,0 @@ sessionUID: memberId,

@@ -27,3 +27,3 @@ import type { AkkoObjectUpdatedProperty } from "white-web-sdk";

StateChanged: {
namespace: string;
storeId: string;
actions: ReadonlyArray<AkkoObjectUpdatedProperty<TState, Extract<keyof TState, string>>>;

@@ -49,5 +49,5 @@ };

Init: void;
SetState: { namespace: string; state: Partial<TState> };
GetState: { namespace: string; ensureState: TState };
SetStore: { [namespace: string]: unknown };
SetState: { storeId: string; state: Partial<TState> };
GetState: { storeId: string; ensureState: TState };
SetStore: { [id: string]: unknown };
SetPage: string;

@@ -84,6 +84,3 @@ SendMagixMessage: TMagix;

store: { [k: string]: TState };
storeConfig: {
mainId: string;
nsPrefix: string;
};
mainStoreId: string;
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet