@noya-app/noya-multiplayer-react 0.1.46 → 0.1.47

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.
@@ -7,8 +7,8 @@
7
7
  CLI Using tsup config: /Users/devinabbott/Projects/noya-core/packages/noya-multiplayer-react/bundle.config.ts
8
8
  CLI Target: es2022
9
9
  CJS Build start
10
- CJS dist/index.bundle.js 263.37 KB
11
- CJS ⚡️ Build success in 143ms
10
+ CJS dist/index.bundle.js 263.41 KB
11
+ CJS ⚡️ Build success in 66ms
12
12
  $ tsup src/index.ts --format cjs,esm --dts --sourcemap
13
13
  CLI Building entry: src/index.ts
14
14
  CLI Using tsconfig: tsconfig.json
@@ -16,13 +16,13 @@
16
16
  CLI Target: esnext
17
17
  CJS Build start
18
18
  ESM Build start
19
- CJS dist/index.js 56.35 KB
20
- CJS dist/index.js.map 97.66 KB
21
- CJS ⚡️ Build success in 128ms
22
19
  ESM dist/index.mjs 50.58 KB
23
20
  ESM dist/index.mjs.map 98.11 KB
24
- ESM ⚡️ Build success in 128ms
21
+ ESM ⚡️ Build success in 25ms
22
+ CJS dist/index.js 56.35 KB
23
+ CJS dist/index.js.map 97.66 KB
24
+ CJS ⚡️ Build success in 26ms
25
25
  DTS Build start
26
- DTS ⚡️ Build success in 5804ms
26
+ DTS ⚡️ Build success in 5023ms
27
27
  DTS dist/index.d.ts 12.39 KB
28
28
  DTS dist/index.d.mts 12.39 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @noya-app/state-manager
2
2
 
3
+ ## 0.1.47
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+ - @noya-app/state-manager@0.1.36
9
+
3
10
  ## 0.1.46
4
11
 
5
12
  ### Patch Changes
@@ -39,4 +39,4 @@ ${a.map(c=>JSON.stringify(c,null,2)).join(`
39
39
  module,
40
40
  );
41
41
 
42
- return esModuleInterop(module.exports);`}async function nm(e){let t=[];try{return{result:await new Function(e.code)()(...e.args),logs:t}}catch(r){return console.error(r),{error:r,logs:t}}finally{}}function om(e,t=globalThis.fetch){return async({code:r,args:n,env:o})=>await(await t(e,{method:"POST",body:JSON.stringify({code:r,args:n,env:o})})).json()}function im({baseUrl:e,headers:t,fetch:r=globalThis.fetch,ENCRYPTION_KEY:n,MULTIPLAYER_SHARED_TOKEN:o}){return async i=>{let c=await(await r(`${e}/api/fileVersions/${i}/secrets?includeValues=true`,{headers:{"x-noya-shared-token":o,...t}})).json();return pR(c,n)}}async function pR(e,t){let r={};for(let n of e){let{name:o,value:i}=n;if(!i){console.warn(`No value for secret ${o}`);continue}let a=JSON.parse(i),c=await rm({...a,ENCRYPTION_KEY:t});r[o]=c}return r}function fR({state:e,node:t,api:r,taskRunner:n,dependencyTaskRefs:o}){let i;switch(t.gType){case"node":{i=t.name;break}case"input":{i=`input:${t.name}`;break}case"output":{i=`output:${t.name}`;break}case"transform":{i=`transform:${t.type}:${t.value}`;break}}return n.createContext(...o).addTask({id:t.id,name:i},async(c,{log:p})=>{let f=c[0],l=d=>d.reduce((b,I)=>(b[I.name]=I.state,b),{});switch(t.gType){case"node":switch(t.type){case"file":{p(`fetching ${i} - ${t.fileVersionId}`);try{let d=await r.getFileVersionData(t.fileVersionId);return p(`fetched ${i} - ${t.fileVersionId}: ${JSON.stringify(d,null,2)}`),{state:d,inputs:l(c)}}catch(d){throw p(`error fetching ${i} - ${t.fileVersionId}`,d.message),d}}case"workflowOutput":return{state:e,inputs:l(c)};default:throw new Error(`Unknown node type: ${t.type}`)}case"input":{p(`${i} - receiving input`);let d=f;return p(`${i} - processed input:`,JSON.stringify(d,null,2)),{name:t.name,state:d}}case"output":{p(`${i} - receiving output`);let d=f?.state??f;return p(`${i} - processed output:`,JSON.stringify(d,null,2)),d}case"transform":switch(p(`${i} - ${t.type}`),t.type){case"jsonPointer":{if(p(`${i} json pointer`,t.value),!t.value.startsWith("/"))throw p(`${i} json pointer missing leading slash`,t.value),new Error(`${i} json pointer missing leading slash: ${t.value}`);let d=Ye(f.state,t.value,["/"]);return p(`${i} json pointer result`,JSON.stringify(d,null,2)),{state:d,inputs:f.inputs}}case"script":{let d;switch(t.location){case"state":{if(typeof f.state!="string")throw new Error(`Script transform requires string input, got: ${typeof f.state}`);d=f.state;break}case"url":{try{d=await(r.fetchScript??lR)(t.value)}catch(E){throw p(`${i} error fetching script: ${E.message}`),E}break}default:throw new Error(`Unknown script location: ${t.location}`)}p(`${i} loaded script`,t.value);let b=Nu({content:d}),I={};t.gFileVersionId&&(I=await r.getFileVersionEnv(t.gFileVersionId));let{result:O,logs:S,error:T}=await r.evaluateScript({code:b,args:[f],env:I});if(T)throw p(`${i} error evaluating script: ${T.message}`),new Error(T);p(`${i} evaluated script`);for(let E of S)p(E[0].toUpperCase()+": ",E.slice(1).join(" "));return{state:O,inputs:f.inputs}}default:throw new Error(`Unknown transform type: ${t.type}`)}default:throw new Error(`Unknown graph node type: ${t.gType}`)}})}async function lR(e){let t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch script ${e}: ${t.statusText}`);return t.text()}function sm({graph:e,state:t,api:r}){let n=new Mi;if(!e.isAcyclic())throw new Error("Workflow graph has cycles");let o=Array.from(e.nodes()).find(c=>c.gType==="node"&&c.type==="workflowOutput");function i(c){if(n.tasks[c.id])return Mi.toRef(n.tasks[c.id]);let f=[...e.getNodeDependencies(c.id)].map(l=>{let d=e.getNode(l);return i(d)});return fR({node:c,api:r,taskRunner:n,state:t,dependencyTaskRefs:f})}let a=i(o);return{taskRunner:n,rootTask:a}}s();s();var _u=class{constructor(t,r=new Set){this.data=t;this.dependencies=r}get id(){return this.data.id}},vu=class e{nodesById=new Map;addNode(t){return this.ensureNode(t),this}getNode(t){return this.nodesById.get(t)?.data}getNodeDependencies(t){return this.nodesById.get(t)?.dependencies||new Set}addEdge(t,r){let n=this.ensureNode(t);if(this.ensureNode(r).dependencies.add(n.id),!this.isAcyclic())throw new Error(`[${t.id}] -> [${r.id}] form a cycle`);return this}*topologicalSort(){let t=this.nodesById,r=new Set,n=function*(o){for(let i of o.dependencies||[])r.has(i)||(yield*n(t.get(i)),yield t.get(i).data,r.add(i))};for(let o of t.values())r.has(o.id)||(yield*n(o),yield o.data,r.add(o.id))}*roots(){for(let t of this.nodesById.values())t.dependencies.size===0&&(yield t.data)}*nodes(){for(let t of this.nodesById.values())yield t.data}reverse(){let t=new e;for(let r of this.nodesById.values()){t.addNode(r.data);for(let n of r.dependencies){let o=this.nodesById.get(n).data;t.addNode(o),t.addEdge(r.data,o)}}return t}ensureNode(t){let r=this.nodesById.get(t.id);return r||(r=new _u(t),this.nodesById.set(t.id,r),r)}isAcyclic(){let t=new Map;this.nodesById.forEach(o=>t.set(o.id,0)),this.nodesById.forEach(o=>o.dependencies.forEach(i=>{t.set(i,t.get(i)+1)}));let r=new Array;this.nodesById.forEach(o=>{t.get(o.id)===0&&r.push(o.id)});let n=0;for(;r.length>0;){let[o]=r.splice(0,1);n+=1,this.nodesById.get(o).dependencies.forEach(i=>{t.set(i,t.get(i)-1),t.get(i)===0&&r.push(i)})}return n===this.nodesById.size}};function am(){return new vu}function cm(e){let t=am();for(let r of e.nodes){let n=r.type==="file"?r.fileVersionId:void 0,o={gType:"node",gFileVersionId:n,...r};t.addNode(o);for(let i of r.inputs){let a={gType:"input",gFileVersionId:n,...i};t.addNode(a),t.addEdge(a,o)}for(let i of r.outputs){let a={gType:"output",gFileVersionId:n,...i};t.addNode(a);let c={gType:"node",...r};for(let p of i.transforms){let f={gType:"transform",gFileVersionId:n,...p};t.addNode(f),t.addEdge(c,f),c=f}t.addEdge(c,a)}}for(let r of e.connections){let n=t.getNode(r.sourceId),o=t.getNode(r.targetId);if(!n||!o)throw new Error(`Invalid connection: ${r.id}`);t.addEdge(n,o)}return t}function um({state:e,api:t}){let r=cm(e),{taskRunner:n,rootTask:o}=sm({graph:r,state:e,api:t});return{taskRunner:n,rootTask:o}}s();var dR=_.Object({x:_.Number(),y:_.Number(),width:_.Number(),height:_.Number()}),mR=_.Object({id:_.String({format:"uuid",default:""}),name:_.String()}),yR=_.Union([_.Object({id:_.String({format:"uuid",default:""}),type:_.Literal("script"),location:_.Union([_.Literal("state"),_.Literal("url")]),value:_.String()}),_.Object({id:_.String({format:"uuid",default:""}),type:_.Literal("jsonPointer"),value:_.String()})],{discriminator:"type"}),gR=_.Object({id:_.String({format:"uuid",default:""}),name:_.String(),transforms:_.Array(yR)}),pm={id:_.String({format:"uuid",default:""}),name:_.String(),rect:dR,inputs:_.Array(mR),outputs:_.Array(gR)},hR=_.Object({...pm,type:_.Literal("file"),fileId:_.String(),fileVersionId:_.String()}),xR=_.Object({...pm,type:_.Literal("workflowOutput")}),bR=_.Union([hR,xR],{discriminator:"type"}),SR=_.Object({id:_.String({format:"uuid",default:""}),sourceId:_.String(),targetId:_.String()}),IR=_.Array(bR),UJ=_.Object({nodes:IR,connections:_.Array(SR)},{version:14});var wi=class{constructor(t){this.rpcManager=t}status$=new B("idle");tasks$=new B([]);result$=new B(void 0);async run(t){let r=await this.rpcManager.requestRoute("POST /api/evaluate",{body:JSON.stringify(t)});return JSON.parse(r.body).result}async runScript(t,r){let n=await fetch(t);if(!n.ok)throw new Error("Failed to fetch script");let o=await n.text();return this.run({code:Nu({content:o}),args:r.args,env:r.env})}async runScriptOnFileState(t,r){return await this.runScript(t,{args:[{state:r}],env:{}})}async runWorkflow(){let t=await this.rpcManager.requestRoute("POST /api/runWorkflow"),{result:r,snapshot:n}=JSON.parse(t.body);return{result:r,snapshot:n}}async runWorkflowLocally(t){let{workflowState:r,getFileVersionData:n}=t,{taskRunner:o,rootTask:i}=um({state:r,api:{evaluateScript:t.executionEnvironment==="local"?nm:om(process.env.NEXT_PUBLIC_DEV_EVALUATE_SCRIPT_URL),getFileVersionData:n,getFileVersionEnv:t.executionEnvironment==="local"?()=>Promise.resolve({}):im({baseUrl:t.baseUrl,ENCRYPTION_KEY:process.env.NEXT_PUBLIC_DEV_ENCRYPTION_KEY,MULTIPLAYER_SHARED_TOKEN:process.env.NEXT_PUBLIC_DEV_MULTIPLAYER_SHARED_TOKEN})}});this.status$.set("running"),o.subscribe(()=>{this.tasks$.set(o.getSnapshot())});try{let a=await o.runTask(i);return this.status$.set("success"),this.result$.set(a),{result:a,snapshot:o.getSnapshot()}}catch(a){return this.status$.set("error"),{error:a,snapshot:o.getSnapshot()}}}};var Ri=class{id=ar();multiplayerStateManager;rpcManager;workflowManager;secretManager;aiManager;ephemeralUserDataManager=new Ti;assetManager=new ai;connectedUsersManager=new li;taskManager=new Pi;connectionEventManager=new di;menuManager=new xi;initialState;options;unrecoverableError=new B(void 0);constructor(...t){let[r,n={}]=t;n={mergeHistoryEntries({previous:o,next:i}){if(o.metadata.name!==void 0&&o.metadata.name===i.metadata.name&&o.metadata.timestamp+500>i.metadata.timestamp)return Bt.merge({previous:o,next:i})},...n},this.multiplayerStateManager=new Ii(r,n),this.initialState=r,this.options=n,this.rpcManager=new Oi({debug:this.options.debug}),this.workflowManager=new wi(this.rpcManager),this.secretManager=new Ei(this.rpcManager),this.aiManager=new ri(this.rpcManager),this.multiplayerStateManager.errorEmitter.addListener(o=>{switch(o.reason){case"invalidDataType":case"schemaMismatch":case"outdatedSchema":case"dataMigrationFailure":case"schemaMigration":this.unrecoverableError.set(o);break}})}forceInit=()=>{let t=this.initialState instanceof Function?this.initialState():this.initialState,r=this.options?.schema;this.multiplayerStateManager.sm.clearHistory(),this.multiplayerStateManager.sendInit({force:!0,state:t,schema:r})}};s();function TR(){return{url:"/api/workflow/run",options:{method:"POST"}}}function OR(e,t){return{url:"/api/secrets",options:{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,value:t})}}}function ER(e){return{url:"/api/secrets",options:{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})}}}s();s();s();function ku(e){return({noyaManager:t})=>{let r=e.key,n={id:"anonymous",name:"Anonymous",image:void 0};t.connectedUsersManager.connectedUsers$.set([n]),t.connectedUsersManager.currentUserId$.set(n.id),t.assetManager&&(t.assetManager.assetStore=new ci({databaseName:`noya-assets-${r}`})),t.secretManager.isInitialized$.set(!0);let o=c=>{switch(c.type){case"init":{let p=localStorage.getItem(r),f,l=c.schema?bi(c.schema):void 0;c.force||!p?(localStorage.setItem(r,JSON.stringify(c.object)),f=c.object):f=JSON.parse(p),l&&(f=fi(l,void 0,f)),t.multiplayerStateManager.incomingMessages.push({type:"object",object:f,...l?{schema:Wn(l)}:{}});break}case"patch":{let p=localStorage.getItem(r);if(!p){t.multiplayerStateManager.incomingMessages.push({id:c.id,type:"rejectPatch",reason:"serverStateNotInitialized"});break}let f=JSON.parse(p);try{f=xe(f,c.patches)}catch{t.multiplayerStateManager.incomingMessages.push({id:c.id,type:"rejectPatch",reason:"errorApplyingPatch"});break}localStorage.setItem(r,JSON.stringify(f)),t.multiplayerStateManager.incomingMessages.push({type:"acceptPatch",id:c.id,patches:c.patches})}}t.multiplayerStateManager.processIncomingMessages()},i=t.multiplayerStateManager.messageEmitter.addListener(o),a=t.multiplayerStateManager.errorEmitter.addListener(c=>{t.connectionEventManager.addEvent({type:"error",error:c})});return t.multiplayerStateManager.connect(),()=>{i(),a(),t.multiplayerStateManager.disconnect()}}}s();s();s();s();var fm=require("react");s();var zs=e=>typeof e>"u"?"key":/Mac/.test(e.platform)?"mac":/Win/.test(e.platform)?"win":/Linux|X11/.test(e.platform)?"linux":"key";var lm="ignore-global-events";var R7=typeof navigator<"u"?zs(navigator):"key";s();s();s();var Ar={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Ws={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},PR=typeof navigator<"u"&&/Mac/.test(navigator.platform),MR=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Ce=0;Ce<10;Ce++)Ar[48+Ce]=Ar[96+Ce]=String(Ce);var Ce;for(Ce=1;Ce<=24;Ce++)Ar[Ce+111]="F"+Ce;var Ce;for(Ce=65;Ce<=90;Ce++)Ar[Ce]=String.fromCharCode(Ce+32),Ws[Ce]=String.fromCharCode(Ce);var Ce;for(qs in Ar)Ws.hasOwnProperty(qs)||(Ws[qs]=Ar[qs]);var qs;function dm(e){var t=PR&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||MR&&e.shiftKey&&e.key&&e.key.length==1||e.key=="Unidentified",r=!t&&e.key||(e.shiftKey?Ws:Ar)[e.keyCode]||e.key||"Unidentified";return r=="Esc"&&(r="Escape"),r=="Del"&&(r="Delete"),r=="Left"&&(r="ArrowLeft"),r=="Up"&&(r="ArrowUp"),r=="Right"&&(r="ArrowRight"),r=="Down"&&(r="ArrowDown"),r}s();function wR(e,t){let r=e.split(/-(?!$)/),n=r[r.length-1];n==="Space"&&(n=" ");let o={altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1};if(r.length===1){if(/^(cmd|meta)$/i.test(n))return{key:"Meta",modifiers:o};if(/^alt$/i.test(n))return{key:"Alt",modifiers:o};if(/^(ctrl|control)$/i.test(n))return{key:"Ctrl",modifiers:o};if(/^shift$/i.test(n))return{key:"Shift",modifiers:o};if(/^mod$/i.test(n))return t==="mac"?{key:"Meta",modifiers:o}:{key:"Ctrl",modifiers:o}}for(let i=0;i<r.length-1;++i){let a=r[i];if(/^(cmd|meta)$/i.test(a))o.metaKey=!0;else if(/^alt$/i.test(a))o.altKey=!0;else if(/^(ctrl|control)$/i.test(a))o.ctrlKey=!0;else if(/^shift$/i.test(a))o.shiftKey=!0;else if(/^mod$/i.test(a))t==="mac"?o.metaKey=!0:o.ctrlKey=!0;else throw new Error("Unrecognized modifier name: "+a)}return{key:n,modifiers:o}}function Ai(e,t){let r=wR(e,t),n=r.key;return r.modifiers.altKey&&(n="Alt-"+n),r.modifiers.ctrlKey&&(n="Ctrl-"+n),r.modifiers.metaKey&&(n="Meta-"+n),r.modifiers.shiftKey&&(n="Shift-"+n),n}function Js(e,t,r){return t.altKey&&(e="Alt-"+e),t.ctrlKey&&(e="Ctrl-"+e),t.metaKey&&(e="Meta-"+e),r!==!1&&t.shiftKey&&(e="Shift-"+e),e}function mm(e,t){let r=e[t]||e.key;return r?Ai(r,t):void 0}var RR=new Set(["Alt","Control","Meta","Shift"]);function ym(e,t){let r=dm(e),n=r.length===1&&r!==" ",o={altKey:e.altKey,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey},i=Ai(RR.has(r)?r:Js(r,o,!n),t),a=[i],c=Ar[e.keyCode];if(n){let p;(e.shiftKey||e.altKey||e.metaKey)&&c&&c!==i?p=Ai(Js(c,o,!0),t):e.shiftKey&&(p=Ai(Js(i,o,!0),t)),p&&!a.includes(p)&&a.push(p)}return a}var ju="fallthrough";function gm(e,t){let r=Array.isArray(e)?e:Object.entries(e);return Object.fromEntries(r.flatMap(([n,o])=>{let i=mm(typeof n=="string"?{key:n}:n,t);return i?[[i,o]]:[]}))}var AR=(e,t,r,n={})=>{let o=gm(r,t),a=ym(e,t).find(f=>f in o);if(!a)return;let c=o[a],p=typeof c=="function"?{command:c}:c;if(!(n.invokedWithinInput&&!p.allowInInput))return p.command},Uu=(e,t,r,n={})=>{let o=AR(e,t,r,n);if(!o)return;o()!==ju&&(e.preventDefault(),e.stopImmediatePropagation())};function Fu(e){if(!(e instanceof HTMLElement))return!0;let t=e,r=t.closest("[contenteditable]");return r&&(t=r),t.classList.contains(lm)?!1:!!(t instanceof HTMLInputElement&&t.type!=="checkbox"&&t.type!=="radio"||t instanceof HTMLTextAreaElement||t instanceof HTMLIFrameElement||t.hasAttribute("contenteditable"))}s();var hm=Y(ou()),xm=(0,hm.defineTree)(e=>typeof e=="string"?[]:e.items??[]),bm=e=>e.flatMap(t=>xm.flat(t)).flatMap(t=>typeof t=="string"||!t.value?[]:[t]),Lu=e=>bm(e).filter(t=>!!t.shortcut);s();function Ys(){return{postMessage:(e,t)=>window.parent.postMessage(e,t),addMessageListener:e=>(window.addEventListener("message",e),()=>window.removeEventListener("message",e))}}function Sm(e){if(!e||typeof e!="object"||!("type"in e)||typeof e.type!="string")return!1;switch(e.type){case"connection":return"state"in e&&(e.state==="connected"||e.state==="disconnected");case"application.selectMenuItem":return"payload"in e&&typeof e.payload=="object";case"rpc.response":case"rpc.chunk":case"rpc.error":return"payload"in e&&typeof e.payload=="object";default:return!0}}function Im(e){if(!e||typeof e!="object"||!("type"in e))return!1;switch(e.type){case"multiplayer.ready":return!0;case"multiplayer.message":return"payload"in e;case"application.setMenuItems":return"payload"in e&&Array.isArray(e.payload?.menuItems)&&typeof e.payload.position=="string"&&(e.payload.position==="left"||e.payload.position==="right");case"rpc.request":return"payload"in e&&typeof e.payload=="object";default:return!1}}s();function Du(e){return typeof e=="string"||e instanceof URL?{url:e}:typeof e=="function"?{url:e}:e}async function CR(e){let t=typeof e=="string"||e instanceof URL?e:await e();return typeof t=="string"?new URL(t):t}async function Tm(e){let{url:t}=Du(e),r=await CR(t),n=r.searchParams.get("token");if(!n)throw new Error("No token provided in URL");let o=await Hs.decode({token:n});return{url:r,tokenString:n,tokenPayload:o.payload}}function Xn(e,t){switch(e.type){case"connectedUsers":{t.connectedUsersManager.connectedUsers$.set(e.users);break}case"ephemeralUserData":{t.ephemeralUserDataManager.merge(e.data);break}case"workflow":{t.workflowManager.status$.set(e.workflow.status),t.workflowManager.tasks$.set(e.workflow.tasks),t.workflowManager.result$.set(e.workflow.result);break}case"tasks":{t.taskManager.setTasks(e.tasks);break}case"secrets":{t.secretManager.secrets$.set(e.secrets),t.secretManager.isInitialized$.set(!0);break}case"assets":{t.assetManager.set(e.assets);break}}}function Ku(e={}){let{debug:t=!1,origin:r="*",messageHandler:n=Ys()}=e;return({noyaManager:o})=>{t&&console.info("[parentFrameSync] Initializing",o),o.assetManager.assetStore=new gn(o.rpcManager);let i=async S=>{t&&console.info("[parentFrameSync] receiving message",S.data);let E=S.data;switch(E.type){case"end":case"chunk":case"error":o.rpcManager.handleMessage(E);break;case"application.selectMenuItem":o.menuManager.emit(E.payload.value);break;case"connection":o.connectionEventManager.addEvent({type:"stateChange",state:E.state==="connected"?"OPEN":"CLOSED"});break;case"application.edit":o.multiplayerStateManager.applyPatch(E.payload);break;default:Xn(E,o),o.multiplayerStateManager.incomingMessages.push(E),o.multiplayerStateManager.processIncomingMessages(),o.connectionEventManager.addEvent({type:"receive",message:E});break}},a=o.menuManager.leftMenuItems$.subscribe(S=>{let T={type:"application.setMenuItems",payload:{menuItems:S,position:"left"}};window.parent?.postMessage(T,"*")}),c=o.menuManager.rightMenuItems$.subscribe(S=>{let T={type:"application.setMenuItems",payload:{menuItems:S,position:"right"}};window.parent?.postMessage(T,"*")}),p=S=>{let T=Lu(o.menuManager.allMenuItems$.get()).map(w=>{let A={command:()=>o.menuManager.emit(w.value)};return[w.shortcut,A]}),E=Fu(S.target);Uu(S,zs(navigator),T,{invokedWithinInput:E})};window.addEventListener("keydown",p);let f=()=>{window.removeEventListener("keydown",p)},l={type:"multiplayer.ready"};n.postMessage(l,r);let d=n.addMessageListener(i),b=o.multiplayerStateManager.messageEmitter.addListener(S=>{t&&console.info("[parentFrameSync] sending message",S),o.connectionEventManager.addEvent({type:"send",message:S});let T={type:"multiplayer.message",payload:S};n.postMessage(T,r)}),I=o.rpcManager.addListener(async S=>{if(!S.id){console.error("[parentFrameSync] RPC request has no id",S);return}let T={type:"rpc.request",payload:S};t&&console.info("[parentFrameSync] sending rpc request",T),n.postMessage(T,r)}),O=o.multiplayerStateManager.errorEmitter.addListener(S=>{o.connectionEventManager.addEvent({type:"error",error:S})});return o.multiplayerStateManager.connect(),o.rpcManager.setIsConnected(!0),()=>{t&&console.info("[parentFrameSync] Cleaning up"),d(),a(),c(),f(),b(),I(),O(),o.multiplayerStateManager.disconnect(),o.rpcManager.setIsConnected(!1)}}}s();function Ci(){return({noyaManager:e})=>{e.assetManager&&(e.assetManager.assetStore=new Kn),e.secretManager.isInitialized$.set(!0);let t=o=>{switch(o.type){case"init":{e.multiplayerStateManager.incomingMessages.push({type:"object",object:o.object,schema:o.schema}),e.multiplayerStateManager.processIncomingMessages();break}case"patch":{e.multiplayerStateManager.incomingMessages.push({type:"acceptPatch",id:o.id,patches:o.patches}),e.multiplayerStateManager.processIncomingMessages();break}}},r=e.multiplayerStateManager.messageEmitter.addListener(t),n=e.multiplayerStateManager.errorEmitter.addListener(o=>{e.connectionEventManager.addEvent({type:"error",error:o})});return e.multiplayerStateManager.connect(),()=>{r(),n(),e.multiplayerStateManager.disconnect()}}}s();s();s();async function*Xs(e,t){let{baseUrl:r,token:n,debug:o=!1}=t;try{let i=new URL(e.url,r);i.protocol=i.protocol==="ws:"?"http:":"https:",o&&console.info("Fetching RPC stream",{url:i.toString(),body:e.options.body});let a=await fetch(i,{...e.options,headers:{...e.options?.headers,...n?{Authorization:`Bearer ${n}`}:{}}});if(!a.ok)throw new Error(`RPC request failed: ${a.statusText}`);let c=a.body?.getReader(),p=new TextDecoder;if(!c)throw new Error("Stream not available");try{for(;;){let{done:f,value:l}=await c.read();if(f){yield{id:e.id,type:"end",response:{status:a.status,statusText:a.statusText,headers:Object.fromEntries(a.headers.entries()),body:""}};break}let d=p.decode(l);yield{id:e.id,type:"chunk",chunk:d}}}finally{c.releaseLock()}}catch(i){yield{id:e.id,type:"error",error:i instanceof Error?i.message:String(i)}}}async function Zs(e,t){let{baseUrl:r,token:n,debug:o=!1}=t;try{let i=new URL(e.url,r);i.protocol=i.protocol==="ws:"?"http:":"https:",o&&console.info("Fetching RPC",{url:i.toString(),body:e.options.body});let a=await fetch(i,{...e.options,headers:{...e.options?.headers,...n?{Authorization:`Bearer ${n}`}:{}}});if(!a.ok)throw new Error(`RPC request failed: ${a.statusText}`);let c=await a.text();return o&&console.info("RPC response",{text:c}),{id:e.id,type:"end",response:{status:a.status,statusText:a.statusText,headers:Object.fromEntries(a.headers.entries()),body:c}}}catch(i){return{id:e.id,type:"error",error:i instanceof Error?i.message:String(i)}}}function $u(e){let{debug:t=!1}=Du(e);return({noyaManager:r})=>{let n,o="full",i,a=Tm(e).then(({url:l,tokenString:d,tokenPayload:b})=>(n=b.id,o=b.connectionType,r.ephemeralUserDataManager.setCurrentUserId(n),r.connectedUsersManager.setCurrentUserId(n),r.assetManager&&(r.assetManager.assetStore=new gn(r.rpcManager)),i=new Zn(l,{debug:t,onConnectionEvent:I=>{switch(I.type){case"stateChange":{I.state==="OPEN"?(o==="full"&&r.multiplayerStateManager.connect(),r.rpcManager.setIsConnected(!0)):I.state==="CLOSED"&&(o==="full"&&r.multiplayerStateManager.disconnect(),r.rpcManager.setIsConnected(!1));break}case"receive":{r.connectionEventManager.addEvent(I);let O=I.message;Xn(O,r),o==="full"&&O.type!=="pong"&&(r.multiplayerStateManager.incomingMessages.push(O),r.multiplayerStateManager.processIncomingMessages());break}case"send":{r.connectionEventManager.addEvent(I);break}case"error":{r.connectionEventManager.addEvent(I);break}}}}),i.connect(),{url:l,tokenString:d,tokenPayload:b})),c=r.multiplayerStateManager.messageEmitter.addListener(l=>{o!=="rpc"&&i.send(l)}),p=r.ephemeralUserDataManager.currentUserDataEmitter.addListener(l=>{if(!n)return;let d={type:"setEphemeralUserData",userId:n,data:l};i.send(d)}),f=r.rpcManager.addListener(async l=>{let{url:d,tokenString:b}=await a;if(l.streaming){let I=Xs(l,{baseUrl:d.toString(),token:b,streaming:!0,debug:t});for await(let O of I)r.rpcManager.handleMessage(O)}else{let I=await Zs(l,{baseUrl:d.toString(),token:b,debug:t});r.rpcManager.handleMessage(I)}});return()=>{t&&console.info("Cleaning up webSocketSync"),i?i.close():a.then(()=>{i.close()}),c(),p(),f()}}}s();s();var Qn=class{constructor(t){this.onActivity=t}_activityHandler=()=>{this.onActivity?.()};addListeners(){typeof window>"u"||(window.addEventListener("mousemove",this._activityHandler),window.addEventListener("keydown",this._activityHandler),window.addEventListener("touchstart",this._activityHandler),window.addEventListener("click",this._activityHandler))}removeListeners(){typeof window>"u"||(window.removeEventListener("mousemove",this._activityHandler),window.removeEventListener("keydown",this._activityHandler),window.removeEventListener("touchstart",this._activityHandler),window.removeEventListener("click",this._activityHandler))}setOnActivity(t){this.onActivity=t}},eo=class extends we{websocket=null;timeoutHandle=null;reconnectTimeoutHandle=null;state="CONNECTING";attempt=0;options;url="";protocols;constructor(t={}){super(),this.options={reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:5e3,maxReconnectAttempts:5,...t},this.options.activityDetector&&this.options.activityDetector.setOnActivity(()=>{this.state==="MAX_ATTEMPTS_EXCEEDED"&&this.resetAndReconnect()})}transitionTo(t){switch(this.options.debug&&console.info(`Transitioning from ${this.state} to ${t}`),this.state=t,this.emit(this.state),this.state){case"CONNECTING":this.connect();break;case"OPEN":this.onOpen();break;case"CLOSING":this.onClosing();break;case"CLOSED":this.onClosed();break;case"RECONNECTING":this.onReconnecting();break;case"MAX_ATTEMPTS_EXCEEDED":this.onMaxAttemptsExceeded();break;case"SHUTDOWN":this.onShutdown();break}}connect(t=this.url,r){this.url=t,this.protocols=r,this.state==="CONNECTING"&&(this.websocket=new WebSocket(this.url,this.protocols),this.timeoutHandle=setTimeout(()=>{this.websocket&&this.websocket.readyState!==WebSocket.OPEN&&(this.options.debug&&console.info("Connection attempt timed out"),this.websocket.close())},this.options.timeoutInterval),this.websocket.onopen=n=>{this.state==="CLOSING"||this.state==="SHUTDOWN"?this.websocket?.close():(this.transitionTo("OPEN"),this.options.onopen?.(n))},this.websocket.onmessage=n=>{this.options.onmessage?.(n)},this.websocket.onclose=n=>{this.state!=="CLOSING"&&this.state!=="SHUTDOWN"&&this.transitionTo("CLOSED"),this.options.onclose?.(n)},this.websocket.onerror=n=>{this.options.onerror?.(n)})}onOpen(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=null),this.attempt=0}onClosing(){this.websocket?.close()}onClosed(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=null),this.reconnect()}onReconnecting(){if(this.attempt>=this.options.maxReconnectAttempts){this.options.debug&&console.info("Max reconnect attempts reached, not attempting to reconnect."),this.transitionTo("MAX_ATTEMPTS_EXCEEDED");return}let t=Math.min(this.options.reconnectInterval*Math.pow(this.options.reconnectDecay,this.attempt),this.options.maxReconnectInterval);this.options.debug&&console.info(`Reconnecting in ${t/1e3} seconds... (attempt ${this.attempt+1}/${this.options.maxReconnectAttempts})`),this.reconnectTimeoutHandle=setTimeout(()=>{this.attempt++,this.transitionTo("CONNECTING")},t)}onMaxAttemptsExceeded(){this.websocket?.close(),this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=null),this.reconnectTimeoutHandle&&(clearTimeout(this.reconnectTimeoutHandle),this.reconnectTimeoutHandle=null),this.websocket=null,this.options.activityDetector?.addListeners()}onShutdown(){this.websocket?.close(),this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=null),this.reconnectTimeoutHandle&&(clearTimeout(this.reconnectTimeoutHandle),this.reconnectTimeoutHandle=null),this.websocket=null,this.options.activityDetector?.removeListeners()}reconnect(){this.state!=="SHUTDOWN"&&this.transitionTo("RECONNECTING")}resetAndReconnect(){this.options.debug&&console.info("User activity detected after max attempts exceeded. Resetting attempts and reconnecting."),this.attempt=0,this.options.activityDetector?.removeListeners(),this.transitionTo("RECONNECTING")}send(t){this.websocket&&this.websocket.readyState===WebSocket.OPEN?this.websocket.send(t):this.websocket&&this.websocket.readyState===WebSocket.CONNECTING?setTimeout(()=>this.send(t),this.options.timeoutInterval):console.error("WebSocket is not open. Ready state:",this.websocket?.readyState)}close(){this.state!=="CLOSING"&&this.state!=="CLOSED"&&this.state!=="SHUTDOWN"&&this.transitionTo("CLOSING")}shutdown(){this.state!=="SHUTDOWN"&&this.transitionTo("SHUTDOWN")}};function NR(e){return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(e)}pt.Set("color",()=>!0);pt.Set("uuid",NR);s();s();s();var Cr=Y(require("react"));s();var Qs=Y(require("react"));function Bu(e,t="both"){let[r,n]=Qs.useState(void 0);return Qs.useEffect(()=>{if(e.current){let o=e.current,i=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;let c=a[0],p,f;if("borderBoxSize"in c){let l=c.borderBoxSize,d=Array.isArray(l)?l[0]:l;p=d.inlineSize,f=d.blockSize}else{let l=o.getBoundingClientRect();p=l.width,f=l.height}n(l=>l&&(l.width===p||t==="height")&&(l.height===f||t==="width")?l:{width:p,height:f})});return i.observe(o,{box:"border-box"}),()=>{n(void 0),i.unobserve(o)}}},[e,t]),r}var Om={display:"flex",flex:"1 0 0",flexDirection:"column"},AX=Cr.memo(function({children:t,className:r}){let n=Cr.useRef(null),o=Bu(n);return Cr.createElement("div",{ref:n,style:Om,className:r},o&&o.width>0&&o.height>0&&t(o))}),CX=Cr.memo(function({children:t,dimension:r,className:n}){let o=Cr.useRef(null),i=Bu(o,r);return Cr.createElement("div",{ref:o,style:Om,className:n},i&&i[r]>0&&t(i[r]))});s();var to=Y(require("react"));s();var Sn=require("react");function Em(e,t){let[r,n]=(0,Sn.useState)(!1),o=(0,Sn.useCallback)(p=>{p.preventDefault()},[]),i=(0,Sn.useCallback)(p=>{p.preventDefault(),e.current?.contains(p.relatedTarget)||n(!0)},[e]),a=(0,Sn.useCallback)(p=>{p.preventDefault(),e.current?.contains(p.relatedTarget)||n(!1)},[e]),c=(0,Sn.useCallback)(p=>{p.preventDefault(),t(p),n(!1)},[t]);return{dropTargetProps:{onDragOver:o,onDragEnter:i,onDragLeave:a,onDrop:c},isDropTargetActive:r}}s();var Hu=require("react");var In=Hu.memo;function Pm(e,t){return t.includes(e.type)||e.type===""&&e.name.endsWith(".sketch")}var HX=In(function({children:t,onDropFiles:r,supportedFileTypes:n,...o}){let i=(0,to.useRef)(null),a=(0,to.useCallback)(f=>{f.preventDefault();let l={offsetX:f.nativeEvent.offsetX,offsetY:f.nativeEvent.offsetY},d=Array.from(f.dataTransfer.files).flatMap(I=>Pm(I,n)?[]:[I.type]);d.length>0&&alert(`Files of type ${d.join(", ")} aren't supported. The following types are supported: ${n.join(", ")}`);let b=Array.from(f.dataTransfer.files).flatMap(I=>Pm(I,n)?[I]:[]);r(b,l)},[r,n]),{dropTargetProps:c,isDropTargetActive:p}=Em(i,a);return to.default.createElement("div",{ref:i,...c,...o},typeof t=="function"?t(p):t)});s();var vR=require("react");s();var Gu=require("react");s();var Mm=require("react");s();s();var wm=require("react");s();var Vu=require("react");s();var UR=require("react");s();var zu=require("react");s();var ea=require("react");s();var Rm=require("react");s();s();s();var jR=require("react");s();var qu=require("react");s();var Am=require("react");s();var Cm=require("react");s();s();var Wu=class{getItem(t){return typeof localStorage>"u"?null:localStorage.getItem(t)}setItem(t,r){typeof localStorage>"u"||(r===null?localStorage.removeItem(t):localStorage.setItem(t,r),this.emitter.emit(t,r))}emitter=new we;_isListening=!1;addListener(t,r){return!this._isListening&&typeof window<"u"&&(this._isListening=!0,window.addEventListener("storage",n=>{this.emitter.emit(n.key,n.newValue)})),this.emitter.addListener((n,o)=>{n===t&&r(o)})}},HZ=new Wu;s();s();var Hr=Y(require("react"));s();var ta=require("react");function X(e,t,r){let{get:n,listen:o}=(0,ta.useMemo)(()=>{if(!e)return{get:()=>{},listen:()=>()=>{}};if(typeof t=="function"){let c=e.map(t,{isEqual:r?.isEqual});return{get:c.get,listen:c.subscribe}}let i=t?c=>e.subscribe(t,c):e.subscribe;return{get:t?()=>e.get(t):e.get,listen:i}},[e,t,r?.isEqual]);return(0,ta.useSyncExternalStore)(o,n,n)}function LR(e,t){return!!t&&Date.now()-t<e}var DR=In(function({user:t,ephemeralUserDataManager:r,hideAfter:n=5e3,renderUserPointer:o}){let i=X(r.metadata$,[t.id]),a=X(r.data$,[t.id]),[,c]=(0,Hr.useState)(0),p=i?.updatedAt??0,f=LR(n,p);return(0,Hr.useEffect)(()=>{if(!f)return;let l=setTimeout(()=>{c(d=>d+1)},n);return()=>clearTimeout(l)},[n,f,p]),a?.pointer?o({userId:t.id,name:t.name,point:a.pointer,visible:f}):null}),KR=In(function({connectedUsersManager:t,ephemeralUserDataManager:r,renderUserPointer:n}){let o=X(r.currentUserId$),i=X(t.connectedUsers$);return Hr.default.createElement(Hr.default.Fragment,null,i.map(a=>a.id===o?null:Hr.default.createElement(DR,{key:a.id,user:a,ephemeralUserDataManager:r,renderUserPointer:n})))});s();var $e=require("react"),ty=Y(Yu());s();var Xe=Y(require("react")),_m=Xe.memo(function({error:t}){return Xe.createElement("div",{style:{position:"fixed",top:"20px",left:"50%",transform:"translateX(-50%)",maxWidth:"80%",width:"fit-content",padding:"12px 20px",background:"white",color:"black",zIndex:1e4,display:"flex",flexDirection:"column",justifyContent:"center",borderRadius:"4px",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",fontFamily:"'__Inter_6b0edc', '__Inter_Fallback_6b0edc', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",fontSize:"14px",fontWeight:400,lineHeight:"19px"}},t.reason==="schemaMigration"?Xe.createElement(Xe.Fragment,null,Xe.createElement("p",null,"An updated version of Noya is available. Please reload the page to continue.")):Xe.createElement(Xe.Fragment,null,Xe.createElement("p",null,"An error occurred:"," ",Xe.createElement("code",{style:{background:"rgba(255, 0, 0, 0.1)",color:"rgba(255, 0, 0, 0.5)",padding:"2px 4px",borderRadius:"4px"}},t.reason),". Please reload the page to continue.",Xe.createElement("br",null),Xe.createElement("br",null),"If this happens repeatedly, please get in touch and the Noya team can help.")),Xe.createElement("div",{style:{height:"1px",background:"rgba(0, 0, 0, 0.1)",margin:"12px -20px"}}),Xe.createElement("button",{style:{background:"black",color:"white",padding:"8px 16px",borderRadius:"4px",cursor:"pointer",fontSize:"14px",fontWeight:700,lineHeight:"19px"},onClick:()=>{window.location.reload()}},"Reload"))});s();var oo=Y(require("react")),Qm=Y(Yu());s();var x=Y(require("react"));s();var ia=Y(require("react"),1),ze=Y(require("react"),1),Lm=require("react"),Nt=Y(require("react"),1),Nr=Y(require("react"),1),ro=Y(require("react"),1),Hm=Y(require("react"),1),Ze=Y(require("react"),1),Ke=Y(require("react"),1),no=Y(require("react"),1),dr=Y(require("react"),1),lr=Y(require("react"),1),Tn=Y(require("react"),1),Ht=Y(require("react"),1),Vm=Y(require("react"),1),Ne=Y(require("react"),1),xA=Y(require("react"),1),$R=Object.create,ep=Object.defineProperty,BR=Object.getOwnPropertyDescriptor,jm=Object.getOwnPropertyNames,HR=Object.getPrototypeOf,GR=Object.prototype.hasOwnProperty,tp=(e,t)=>function(){return t||(0,e[jm(e)[0]])((t={exports:{}}).exports,t),t.exports},VR=(e,t)=>{for(var r in t)ep(e,r,{get:t[r],enumerable:!0})},zR=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of jm(t))!GR.call(e,o)&&o!==r&&ep(e,o,{get:()=>t[o],enumerable:!(n=BR(t,o))||n.enumerable});return e},qR=(e,t,r)=>(r=e!=null?$R(HR(e)):{},zR(t||!e||!e.__esModule?ep(r,"default",{value:e,enumerable:!0}):r,e)),WR=tp({"node_modules/is-object/index.js"(e,t){"use strict";t.exports=function(n){return typeof n=="object"&&n!==null}}}),JR=tp({"node_modules/is-window/index.js"(e,t){"use strict";t.exports=function(r){if(r==null)return!1;var n=Object(r);return n===n.window}}}),YR=tp({"node_modules/is-dom/index.js"(e,t){var r=WR(),n=JR();function o(i){return!r(i)||!n(window)||typeof window.Node!="function"?!1:typeof i.nodeType=="number"&&typeof i.nodeName=="string"}t.exports=o}}),oa={};VR(oa,{chromeDark:()=>rp,chromeLight:()=>np});var rp={BASE_FONT_FAMILY:"Menlo, monospace",BASE_FONT_SIZE:"11px",BASE_LINE_HEIGHT:1.2,BASE_BACKGROUND_COLOR:"rgb(36, 36, 36)",BASE_COLOR:"rgb(213, 213, 213)",OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES:10,OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES:5,OBJECT_NAME_COLOR:"rgb(227, 110, 236)",OBJECT_VALUE_NULL_COLOR:"rgb(127, 127, 127)",OBJECT_VALUE_UNDEFINED_COLOR:"rgb(127, 127, 127)",OBJECT_VALUE_REGEXP_COLOR:"rgb(233, 63, 59)",OBJECT_VALUE_STRING_COLOR:"rgb(233, 63, 59)",OBJECT_VALUE_SYMBOL_COLOR:"rgb(233, 63, 59)",OBJECT_VALUE_NUMBER_COLOR:"hsl(252, 100%, 75%)",OBJECT_VALUE_BOOLEAN_COLOR:"hsl(252, 100%, 75%)",OBJECT_VALUE_FUNCTION_PREFIX_COLOR:"rgb(85, 106, 242)",HTML_TAG_COLOR:"rgb(93, 176, 215)",HTML_TAGNAME_COLOR:"rgb(93, 176, 215)",HTML_TAGNAME_TEXT_TRANSFORM:"lowercase",HTML_ATTRIBUTE_NAME_COLOR:"rgb(155, 187, 220)",HTML_ATTRIBUTE_VALUE_COLOR:"rgb(242, 151, 102)",HTML_COMMENT_COLOR:"rgb(137, 137, 137)",HTML_DOCTYPE_COLOR:"rgb(192, 192, 192)",ARROW_COLOR:"rgb(145, 145, 145)",ARROW_MARGIN_RIGHT:3,ARROW_FONT_SIZE:12,ARROW_ANIMATION_DURATION:"0",TREENODE_FONT_FAMILY:"Menlo, monospace",TREENODE_FONT_SIZE:"11px",TREENODE_LINE_HEIGHT:1.2,TREENODE_PADDING_LEFT:12,TABLE_BORDER_COLOR:"rgb(85, 85, 85)",TABLE_TH_BACKGROUND_COLOR:"rgb(44, 44, 44)",TABLE_TH_HOVER_COLOR:"rgb(48, 48, 48)",TABLE_SORT_ICON_COLOR:"black",TABLE_DATA_BACKGROUND_IMAGE:"linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0) 50%, rgba(51, 139, 255, 0.0980392) 50%, rgba(51, 139, 255, 0.0980392))",TABLE_DATA_BACKGROUND_SIZE:"128px 32px"},np={BASE_FONT_FAMILY:"Menlo, monospace",BASE_FONT_SIZE:"11px",BASE_LINE_HEIGHT:1.2,BASE_BACKGROUND_COLOR:"white",BASE_COLOR:"black",OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES:10,OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES:5,OBJECT_NAME_COLOR:"rgb(136, 19, 145)",OBJECT_VALUE_NULL_COLOR:"rgb(128, 128, 128)",OBJECT_VALUE_UNDEFINED_COLOR:"rgb(128, 128, 128)",OBJECT_VALUE_REGEXP_COLOR:"rgb(196, 26, 22)",OBJECT_VALUE_STRING_COLOR:"rgb(196, 26, 22)",OBJECT_VALUE_SYMBOL_COLOR:"rgb(196, 26, 22)",OBJECT_VALUE_NUMBER_COLOR:"rgb(28, 0, 207)",OBJECT_VALUE_BOOLEAN_COLOR:"rgb(28, 0, 207)",OBJECT_VALUE_FUNCTION_PREFIX_COLOR:"rgb(13, 34, 170)",HTML_TAG_COLOR:"rgb(168, 148, 166)",HTML_TAGNAME_COLOR:"rgb(136, 18, 128)",HTML_TAGNAME_TEXT_TRANSFORM:"lowercase",HTML_ATTRIBUTE_NAME_COLOR:"rgb(153, 69, 0)",HTML_ATTRIBUTE_VALUE_COLOR:"rgb(26, 26, 166)",HTML_COMMENT_COLOR:"rgb(35, 110, 37)",HTML_DOCTYPE_COLOR:"rgb(192, 192, 192)",ARROW_COLOR:"#6e6e6e",ARROW_MARGIN_RIGHT:3,ARROW_FONT_SIZE:12,ARROW_ANIMATION_DURATION:"0",TREENODE_FONT_FAMILY:"Menlo, monospace",TREENODE_FONT_SIZE:"11px",TREENODE_LINE_HEIGHT:1.2,TREENODE_PADDING_LEFT:12,TABLE_BORDER_COLOR:"#aaa",TABLE_TH_BACKGROUND_COLOR:"#eee",TABLE_TH_HOVER_COLOR:"hsla(0, 0%, 90%, 1)",TABLE_SORT_ICON_COLOR:"#6e6e6e",TABLE_DATA_BACKGROUND_IMAGE:"linear-gradient(to bottom, white, white 50%, rgb(234, 243, 255) 50%, rgb(234, 243, 255))",TABLE_DATA_BACKGROUND_SIZE:"128px 32px"},Dm=(0,Lm.createContext)([{},()=>{}]),Xu={WebkitTouchCallout:"none",WebkitUserSelect:"none",KhtmlUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",OUserSelect:"none",userSelect:"none"},ra=e=>({DOMNodePreview:{htmlOpenTag:{base:{color:e.HTML_TAG_COLOR},tagName:{color:e.HTML_TAGNAME_COLOR,textTransform:e.HTML_TAGNAME_TEXT_TRANSFORM},htmlAttributeName:{color:e.HTML_ATTRIBUTE_NAME_COLOR},htmlAttributeValue:{color:e.HTML_ATTRIBUTE_VALUE_COLOR}},htmlCloseTag:{base:{color:e.HTML_TAG_COLOR},offsetLeft:{marginLeft:-e.TREENODE_PADDING_LEFT},tagName:{color:e.HTML_TAGNAME_COLOR,textTransform:e.HTML_TAGNAME_TEXT_TRANSFORM}},htmlComment:{color:e.HTML_COMMENT_COLOR},htmlDoctype:{color:e.HTML_DOCTYPE_COLOR}},ObjectPreview:{objectDescription:{fontStyle:"italic"},preview:{fontStyle:"italic"},arrayMaxProperties:e.OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES,objectMaxProperties:e.OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES},ObjectName:{base:{color:e.OBJECT_NAME_COLOR},dimmed:{opacity:.6}},ObjectValue:{objectValueNull:{color:e.OBJECT_VALUE_NULL_COLOR},objectValueUndefined:{color:e.OBJECT_VALUE_UNDEFINED_COLOR},objectValueRegExp:{color:e.OBJECT_VALUE_REGEXP_COLOR},objectValueString:{color:e.OBJECT_VALUE_STRING_COLOR},objectValueSymbol:{color:e.OBJECT_VALUE_SYMBOL_COLOR},objectValueNumber:{color:e.OBJECT_VALUE_NUMBER_COLOR},objectValueBoolean:{color:e.OBJECT_VALUE_BOOLEAN_COLOR},objectValueFunctionPrefix:{color:e.OBJECT_VALUE_FUNCTION_PREFIX_COLOR,fontStyle:"italic"},objectValueFunctionName:{fontStyle:"italic"}},TreeView:{treeViewOutline:{padding:0,margin:0,listStyleType:"none"}},TreeNode:{treeNodeBase:{color:e.BASE_COLOR,backgroundColor:e.BASE_BACKGROUND_COLOR,lineHeight:e.TREENODE_LINE_HEIGHT,cursor:"default",boxSizing:"border-box",listStyle:"none",fontFamily:e.TREENODE_FONT_FAMILY,fontSize:e.TREENODE_FONT_SIZE},treeNodePreviewContainer:{},treeNodePlaceholder:{whiteSpace:"pre",fontSize:e.ARROW_FONT_SIZE,marginRight:e.ARROW_MARGIN_RIGHT,...Xu},treeNodeArrow:{base:{color:e.ARROW_COLOR,display:"inline-block",fontSize:e.ARROW_FONT_SIZE,marginRight:e.ARROW_MARGIN_RIGHT,...parseFloat(e.ARROW_ANIMATION_DURATION)>0?{transition:`transform ${e.ARROW_ANIMATION_DURATION} ease 0s`}:{},...Xu},expanded:{WebkitTransform:"rotateZ(90deg)",MozTransform:"rotateZ(90deg)",transform:"rotateZ(90deg)"},collapsed:{WebkitTransform:"rotateZ(0deg)",MozTransform:"rotateZ(0deg)",transform:"rotateZ(0deg)"}},treeNodeChildNodesContainer:{margin:0,paddingLeft:e.TREENODE_PADDING_LEFT}},TableInspector:{base:{color:e.BASE_COLOR,position:"relative",border:`1px solid ${e.TABLE_BORDER_COLOR}`,fontFamily:e.BASE_FONT_FAMILY,fontSize:e.BASE_FONT_SIZE,lineHeight:"120%",boxSizing:"border-box",cursor:"default"}},TableInspectorHeaderContainer:{base:{top:0,height:"17px",left:0,right:0,overflowX:"hidden"},table:{tableLayout:"fixed",borderSpacing:0,borderCollapse:"separate",height:"100%",width:"100%",margin:0}},TableInspectorDataContainer:{tr:{display:"table-row"},td:{boxSizing:"border-box",border:"none",height:"16px",verticalAlign:"top",padding:"1px 4px",WebkitUserSelect:"text",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",lineHeight:"14px"},div:{position:"static",top:"17px",bottom:0,overflowY:"overlay",transform:"translateZ(0)",left:0,right:0,overflowX:"hidden"},table:{positon:"static",left:0,top:0,right:0,bottom:0,borderTop:"0 none transparent",margin:0,backgroundImage:e.TABLE_DATA_BACKGROUND_IMAGE,backgroundSize:e.TABLE_DATA_BACKGROUND_SIZE,tableLayout:"fixed",borderSpacing:0,borderCollapse:"separate",width:"100%",fontSize:e.BASE_FONT_SIZE,lineHeight:"120%"}},TableInspectorTH:{base:{position:"relative",height:"auto",textAlign:"left",backgroundColor:e.TABLE_TH_BACKGROUND_COLOR,borderBottom:`1px solid ${e.TABLE_BORDER_COLOR}`,fontWeight:"normal",verticalAlign:"middle",padding:"0 4px",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",lineHeight:"14px",":hover":{backgroundColor:e.TABLE_TH_HOVER_COLOR}},div:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",fontSize:e.BASE_FONT_SIZE,lineHeight:"120%"}},TableInspectorLeftBorder:{none:{borderLeft:"none"},solid:{borderLeft:`1px solid ${e.TABLE_BORDER_COLOR}`}},TableInspectorSortIcon:{display:"block",marginRight:3,width:8,height:7,marginTop:-7,color:e.TABLE_SORT_ICON_COLOR,fontSize:12,...Xu}}),Zu="chromeLight",Km=(0,Nr.createContext)(ra(oa[Zu])),_t=e=>(0,Nr.useContext)(Km)[e],op=e=>({theme:r=Zu,...n})=>{let o=(0,Nr.useMemo)(()=>{switch(Object.prototype.toString.call(r)){case"[object String]":return ra(oa[r]);case"[object Object]":return ra(r);default:return ra(oa[Zu])}},[r]);return Nr.default.createElement(Km.Provider,{value:o},Nr.default.createElement(e,{...n}))},XR=({expanded:e,styles:t})=>Nt.default.createElement("span",{style:{...t.base,...e?t.expanded:t.collapsed}},"\u25B6"),ZR=(0,Nt.memo)(e=>{e={expanded:!0,nodeRenderer:({name:l})=>Nt.default.createElement("span",null,l),onClick:()=>{},shouldShowArrow:!1,shouldShowPlaceholder:!0,...e};let{expanded:t,onClick:r,children:n,nodeRenderer:o,title:i,shouldShowArrow:a,shouldShowPlaceholder:c}=e,p=_t("TreeNode"),f=o;return Nt.default.createElement("li",{"aria-expanded":t,role:"treeitem",style:p.treeNodeBase,title:i},Nt.default.createElement("div",{style:p.treeNodePreviewContainer,onClick:r},a||Nt.Children.count(n)>0?Nt.default.createElement(XR,{expanded:t,styles:p.treeNodeArrow}):c&&Nt.default.createElement("span",{style:p.treeNodePlaceholder},"\xA0"),Nt.default.createElement(f,{...e})),Nt.default.createElement("ol",{role:"group",style:p.treeNodeChildNodesContainer},t?n:void 0))}),sa="$",vm="*";function na(e,t){return!t(e).next().done}var QR=e=>Array.from({length:e},(t,r)=>[sa].concat(Array.from({length:r},()=>"*")).join(".")),eA=(e,t,r,n,o)=>{let i=[].concat(QR(n)).concat(r).filter(c=>typeof c=="string"),a=[];return i.forEach(c=>{let p=c.split("."),f=(l,d,b)=>{if(b===p.length){a.push(d);return}let I=p[b];if(b===0)na(l,t)&&(I===sa||I===vm)&&f(l,sa,b+1);else if(I===vm)for(let{name:O,data:S}of t(l))na(S,t)&&f(S,`${d}.${O}`,b+1);else{let O=l[I];na(O,t)&&f(O,`${d}.${I}`,b+1)}};f(e,"",0)}),a.reduce((c,p)=>(c[p]=!0,c),{...o})},$m=(0,ze.memo)(e=>{let{data:t,dataIterator:r,path:n,depth:o,nodeRenderer:i}=e,[a,c]=(0,ze.useContext)(Dm),p=na(t,r),f=!!a[n],l=(0,ze.useCallback)(()=>p&&c(d=>({...d,[n]:!f})),[p,c,n,f]);return ze.default.createElement(ZR,{expanded:f,onClick:l,shouldShowArrow:p,shouldShowPlaceholder:o>0,nodeRenderer:i,...e},f?[...r(t)].map(({name:d,data:b,...I})=>ze.default.createElement($m,{name:d,data:b,depth:o+1,path:`${n}.${d}`,key:d,dataIterator:r,nodeRenderer:i,...I})):null)}),Bm=(0,ze.memo)(({name:e,data:t,dataIterator:r,nodeRenderer:n,expandPaths:o,expandLevel:i})=>{let a=_t("TreeView"),c=(0,ze.useState)({}),[,p]=c;return(0,ze.useLayoutEffect)(()=>p(f=>eA(t,r,o,i,f)),[t,r,o,i]),ze.default.createElement(Dm.Provider,{value:c},ze.default.createElement("ol",{role:"tree",style:a.treeViewOutline},ze.default.createElement($m,{name:e,data:t,dataIterator:r,depth:0,path:sa,nodeRenderer:n})))}),_i=({name:e,dimmed:t=!1,styles:r={}})=>{let n=_t("ObjectName"),o={...n.base,...t?n.dimmed:{},...r};return Hm.default.createElement("span",{style:o},e)},Ni=({object:e,styles:t})=>{let r=_t("ObjectValue"),n=o=>({...r[o],...t});switch(typeof e){case"bigint":return Ke.default.createElement("span",{style:n("objectValueNumber")},String(e),"n");case"number":return Ke.default.createElement("span",{style:n("objectValueNumber")},String(e));case"string":return Ke.default.createElement("span",{style:n("objectValueString")},'"',e,'"');case"boolean":return Ke.default.createElement("span",{style:n("objectValueBoolean")},String(e));case"undefined":return Ke.default.createElement("span",{style:n("objectValueUndefined")},"undefined");case"object":return e===null?Ke.default.createElement("span",{style:n("objectValueNull")},"null"):e instanceof Date?Ke.default.createElement("span",null,e.toString()):e instanceof RegExp?Ke.default.createElement("span",{style:n("objectValueRegExp")},e.toString()):Array.isArray(e)?Ke.default.createElement("span",null,`Array(${e.length})`):e.constructor?typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)?Ke.default.createElement("span",null,`Buffer[${e.length}]`):Ke.default.createElement("span",null,e.constructor.name):Ke.default.createElement("span",null,"Object");case"function":return Ke.default.createElement("span",null,Ke.default.createElement("span",{style:n("objectValueFunctionPrefix")},"\u0192\xA0"),Ke.default.createElement("span",{style:n("objectValueFunctionName")},e.name,"()"));case"symbol":return Ke.default.createElement("span",{style:n("objectValueSymbol")},e.toString());default:return Ke.default.createElement("span",null)}},Gm=Object.prototype.hasOwnProperty,tA=Object.prototype.propertyIsEnumerable;function Qu(e,t){let r=Object.getOwnPropertyDescriptor(e,t);if(r.get)try{return r.get()}catch{return r.get}return e[t]}function km(e,t){return e.length===0?[]:e.slice(1).reduce((r,n)=>r.concat([t,n]),[e[0]])}var On=({data:e})=>{let t=_t("ObjectPreview"),r=e;if(typeof r!="object"||r===null||r instanceof Date||r instanceof RegExp)return Ze.default.createElement(Ni,{object:r});if(Array.isArray(r)){let n=t.arrayMaxProperties,o=r.slice(0,n).map((a,c)=>Ze.default.createElement(Ni,{key:c,object:a}));r.length>n&&o.push(Ze.default.createElement("span",{key:"ellipsis"},"\u2026"));let i=r.length;return Ze.default.createElement(Ze.default.Fragment,null,Ze.default.createElement("span",{style:t.objectDescription},i===0?"":`(${i})\xA0`),Ze.default.createElement("span",{style:t.preview},"[",km(o,", "),"]"))}else{let n=t.objectMaxProperties,o=[];for(let a in r)if(Gm.call(r,a)){let c;o.length===n-1&&Object.keys(r).length>n&&(c=Ze.default.createElement("span",{key:"ellipsis"},"\u2026"));let p=Qu(r,a);if(o.push(Ze.default.createElement("span",{key:a},Ze.default.createElement(_i,{name:a||'""'}),":\xA0",Ze.default.createElement(Ni,{object:p}),c)),c)break}let i=r.constructor?r.constructor.name:"Object";return Ze.default.createElement(Ze.default.Fragment,null,Ze.default.createElement("span",{style:t.objectDescription},i==="Object"?"":`${i} `),Ze.default.createElement("span",{style:t.preview},"{",km(o,", "),"}"))}},rA=({name:e,data:t})=>typeof e=="string"?ro.default.createElement("span",null,ro.default.createElement(_i,{name:e}),ro.default.createElement("span",null,": "),ro.default.createElement(On,{data:t})):ro.default.createElement(On,{data:t}),ip=({name:e,data:t,isNonenumerable:r=!1})=>{let n=t;return no.default.createElement("span",null,typeof e=="string"?no.default.createElement(_i,{name:e,dimmed:r}):no.default.createElement(On,{data:e}),no.default.createElement("span",null,": "),no.default.createElement(Ni,{object:n}))},nA=(e,t)=>function*(n){if(!(typeof n=="object"&&n!==null||typeof n=="function"))return;let i=Array.isArray(n);if(!i&&n[Symbol.iterator]){let a=0;for(let c of n){if(Array.isArray(c)&&c.length===2){let[p,f]=c;yield{name:p,data:f}}else yield{name:a.toString(),data:c};a++}}else{let a=Object.getOwnPropertyNames(n);t===!0&&!i?a.sort():typeof t=="function"&&a.sort(t);for(let c of a)if(tA.call(n,c)){let p=Qu(n,c);yield{name:c||'""',data:p}}else if(e){let p;try{p=Qu(n,c)}catch{}p!==void 0&&(yield{name:c,data:p,isNonenumerable:!0})}e&&n!==Object.prototype&&(yield{name:"__proto__",data:Object.getPrototypeOf(n),isNonenumerable:!0})}},oA=({depth:e,name:t,data:r,isNonenumerable:n})=>e===0?ia.default.createElement(rA,{name:t,data:r}):ia.default.createElement(ip,{name:t,data:r,isNonenumerable:n}),iA=({showNonenumerable:e=!1,sortObjectKeys:t,nodeRenderer:r,...n})=>{let o=nA(e,t),i=r||oA;return ia.default.createElement(Bm,{nodeRenderer:i,dataIterator:o,...n})},mr=op(iA);function sA(e){if(typeof e=="object"){let t=[];if(Array.isArray(e)){let n=e.length;t=[...Array(n).keys()]}else e!==null&&(t=Object.keys(e));let r=t.reduce((n,o)=>{let i=e[o];return typeof i=="object"&&i!==null&&Object.keys(i).reduce((c,p)=>(c.includes(p)||c.push(p),c),n),n},[]);return{rowHeaders:t,colHeaders:r}}}var aA=({rows:e,columns:t,rowsData:r})=>{let n=_t("TableInspectorDataContainer"),o=_t("TableInspectorLeftBorder");return lr.default.createElement("div",{style:n.div},lr.default.createElement("table",{style:n.table},lr.default.createElement("colgroup",null),lr.default.createElement("tbody",null,e.map((i,a)=>lr.default.createElement("tr",{key:i,style:n.tr},lr.default.createElement("td",{style:{...n.td,...o.none}},i),t.map(c=>{let p=r[a];return typeof p=="object"&&p!==null&&Gm.call(p,c)?lr.default.createElement("td",{key:c,style:{...n.td,...o.solid}},lr.default.createElement(Ni,{object:p[c]})):lr.default.createElement("td",{key:c,style:{...n.td,...o.solid}})}))))))},cA=e=>Ht.default.createElement("div",{style:{position:"absolute",top:1,right:0,bottom:1,display:"flex",alignItems:"center"}},e.children),uA=({sortAscending:e})=>{let t=_t("TableInspectorSortIcon"),r=e?"\u25B2":"\u25BC";return Ht.default.createElement("div",{style:t},r)},Um=({sortAscending:e=!1,sorted:t=!1,onClick:r=void 0,borderStyle:n={},children:o,...i})=>{let a=_t("TableInspectorTH"),[c,p]=(0,Ht.useState)(!1),f=(0,Ht.useCallback)(()=>p(!0),[]),l=(0,Ht.useCallback)(()=>p(!1),[]);return Ht.default.createElement("th",{...i,style:{...a.base,...n,...c?a.base[":hover"]:{}},onMouseEnter:f,onMouseLeave:l,onClick:r},Ht.default.createElement("div",{style:a.div},o),t&&Ht.default.createElement(cA,null,Ht.default.createElement(uA,{sortAscending:e})))},pA=({indexColumnText:e="(index)",columns:t=[],sorted:r,sortIndexColumn:n,sortColumn:o,sortAscending:i,onTHClick:a,onIndexTHClick:c})=>{let p=_t("TableInspectorHeaderContainer"),f=_t("TableInspectorLeftBorder");return Tn.default.createElement("div",{style:p.base},Tn.default.createElement("table",{style:p.table},Tn.default.createElement("tbody",null,Tn.default.createElement("tr",null,Tn.default.createElement(Um,{borderStyle:f.none,sorted:r&&n,sortAscending:i,onClick:c},e),t.map(l=>Tn.default.createElement(Um,{borderStyle:f.solid,key:l,sorted:r&&o===l,sortAscending:i,onClick:a.bind(null,l)},l))))))},fA=({data:e,columns:t})=>{let r=_t("TableInspector"),[{sorted:n,sortIndexColumn:o,sortColumn:i,sortAscending:a},c]=(0,dr.useState)({sorted:!1,sortIndexColumn:!1,sortColumn:void 0,sortAscending:!1}),p=(0,dr.useCallback)(()=>{c(({sortIndexColumn:O,sortAscending:S})=>({sorted:!0,sortIndexColumn:!0,sortColumn:void 0,sortAscending:O?!S:!0}))},[]),f=(0,dr.useCallback)(O=>{c(({sortColumn:S,sortAscending:T})=>({sorted:!0,sortIndexColumn:!1,sortColumn:O,sortAscending:O===S?!T:!0}))},[]);if(typeof e!="object"||e===null)return dr.default.createElement("div",null);let{rowHeaders:l,colHeaders:d}=sA(e);t!==void 0&&(d=t);let b=l.map(O=>e[O]),I;if(i!==void 0?I=b.map((O,S)=>typeof O=="object"&&O!==null?[O[i],S]:[void 0,S]):o&&(I=l.map((O,S)=>[l[S],S])),I!==void 0){let O=(T,E)=>(w,A)=>{let N=T(w),R=T(A),F=typeof N,oe=typeof R,Ie=(qr,Ui)=>qr<Ui?-1:qr>Ui?1:0,gr;if(F===oe)gr=Ie(N,R);else{let qr={string:0,number:1,object:2,symbol:3,boolean:4,undefined:5,function:6};gr=Ie(qr[F],qr[oe])}return E||(gr=-gr),gr},S=I.sort(O(T=>T[0],a)).map(T=>T[1]);l=S.map(T=>l[T]),b=S.map(T=>b[T])}return dr.default.createElement("div",{style:r.base},dr.default.createElement(pA,{columns:d,sorted:n,sortIndexColumn:o,sortColumn:i,sortAscending:a,onTHClick:f,onIndexTHClick:p}),dr.default.createElement(aA,{rows:l,columns:d,rowsData:b}))},vQ=op(fA),lA=80,zm=e=>e.childNodes.length===0||e.childNodes.length===1&&e.childNodes[0].nodeType===Node.TEXT_NODE&&e.textContent.length<lA,dA=({tagName:e,attributes:t,styles:r})=>Ne.default.createElement("span",{style:r.base},"<",Ne.default.createElement("span",{style:r.tagName},e),(()=>{if(t){let n=[];for(let o=0;o<t.length;o++){let i=t[o];n.push(Ne.default.createElement("span",{key:o}," ",Ne.default.createElement("span",{style:r.htmlAttributeName},i.name),'="',Ne.default.createElement("span",{style:r.htmlAttributeValue},i.value),'"'))}return n}})(),">"),Fm=({tagName:e,isChildNode:t=!1,styles:r})=>Ne.default.createElement("span",{style:Object.assign({},r.base,t&&r.offsetLeft)},"</",Ne.default.createElement("span",{style:r.tagName},e),">"),mA={1:"ELEMENT_NODE",3:"TEXT_NODE",7:"PROCESSING_INSTRUCTION_NODE",8:"COMMENT_NODE",9:"DOCUMENT_NODE",10:"DOCUMENT_TYPE_NODE",11:"DOCUMENT_FRAGMENT_NODE"},yA=({isCloseTag:e,data:t,expanded:r})=>{let n=_t("DOMNodePreview");if(e)return Ne.default.createElement(Fm,{styles:n.htmlCloseTag,isChildNode:!0,tagName:t.tagName});switch(t.nodeType){case Node.ELEMENT_NODE:return Ne.default.createElement("span",null,Ne.default.createElement(dA,{tagName:t.tagName,attributes:t.attributes,styles:n.htmlOpenTag}),zm(t)?t.textContent:!r&&"\u2026",!r&&Ne.default.createElement(Fm,{tagName:t.tagName,styles:n.htmlCloseTag}));case Node.TEXT_NODE:return Ne.default.createElement("span",null,t.textContent);case Node.CDATA_SECTION_NODE:return Ne.default.createElement("span",null,"<![CDATA["+t.textContent+"]]>");case Node.COMMENT_NODE:return Ne.default.createElement("span",{style:n.htmlComment},"<!--",t.textContent,"-->");case Node.PROCESSING_INSTRUCTION_NODE:return Ne.default.createElement("span",null,t.nodeName);case Node.DOCUMENT_TYPE_NODE:return Ne.default.createElement("span",{style:n.htmlDoctype},"<!DOCTYPE ",t.name,t.publicId?` PUBLIC "${t.publicId}"`:"",!t.publicId&&t.systemId?" SYSTEM":"",t.systemId?` "${t.systemId}"`:"",">");case Node.DOCUMENT_NODE:return Ne.default.createElement("span",null,t.nodeName);case Node.DOCUMENT_FRAGMENT_NODE:return Ne.default.createElement("span",null,t.nodeName);default:return Ne.default.createElement("span",null,mA[t.nodeType])}},gA=function*(e){if(e&&e.childNodes){if(zm(e))return;for(let r=0;r<e.childNodes.length;r++){let n=e.childNodes[r];n.nodeType===Node.TEXT_NODE&&n.textContent.trim().length===0||(yield{name:`${n.tagName}[${r}]`,data:n})}e.tagName&&(yield{name:"CLOSE_TAG",data:{tagName:e.tagName},isCloseTag:!0})}},hA=e=>Vm.default.createElement(Bm,{nodeRenderer:yA,dataIterator:gA,...e}),kQ=op(hA),UQ=qR(YR());s();var Wm=Y(require("react")),qm=typeof window<"u"?window.localStorage:null;function yr(e,t){let[r,n]=Wm.default.useState(()=>{let i=qm?.getItem(e),a=t;if(i)try{a=JSON.parse(i)}catch(c){console.error("Error parsing localStorage value",c)}return a});return[r,i=>{qm?.setItem(e,JSON.stringify(i)),n(i)}]}var Ym={...np,BASE_BACKGROUND_COLOR:"transparent",OBJECT_NAME_COLOR:"rgba(0,0,0,0.7)"},Xm={...rp,BASE_BACKGROUND_COLOR:"transparent",OBJECT_NAME_COLOR:"rgba(255,255,255,0.7)"},Gr={sectionInner:{flex:"1 1 0",overflowY:"auto",overflowX:"hidden",display:"flex",flexDirection:"column"}};function Jm({showInspector:e,setShowInspector:t,theme:r,anchor:n}){return x.default.createElement("span",{role:"button",style:{flex:"0",appearance:"none",color:r.BASE_COLOR,border:"none",fontSize:"12px",whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"2px 0"},onClick:o=>{o.stopPropagation(),t(!e)}},x.default.createElement("span",{style:{width:"12px",height:"12px"}},e===(n==="right")?x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"size-6"},x.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5"})):x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"size-6"},x.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"}))))}function Vr({open:e,setOpen:t,title:r,right:n,children:o,colorScheme:i,isFirst:a,style:c}){let p=i==="light"?Ym:Xm,f=i==="light"?"rgba(0,0,0,0.1)":"rgba(255,255,255,0.1)";return x.default.createElement("div",{style:{flex:e?"1 1 0":"0",display:"flex",flexDirection:"column",...c}},x.default.createElement("div",{onClick:()=>t?.(!e),style:{cursor:"default",fontSize:"12px",padding:"4px 10px",display:"flex",alignItems:"center",...!a&&{borderTop:`1px solid ${f}`},...e&&{borderBottom:`1px solid ${f}`}}},t&&x.default.createElement(SA,{expanded:e,style:{fontSize:p.ARROW_FONT_SIZE,marginRight:p.ARROW_MARGIN_RIGHT+1,color:p.ARROW_COLOR}}),x.default.createElement("span",{style:{flex:"1 1 0",userSelect:"none"}},r),n),e&&o)}function _r({children:e,colorScheme:t,selected:r,style:n,variant:o}){return x.default.createElement("div",{style:{borderBottom:`1px solid ${t==="light"?"rgb(223 223 223)":"rgb(29 29 29)"}`,fontSize:"12px",fontFamily:"Menlo, monospace",padding:"2px 12px 1px",display:"flex",alignItems:"center",background:o==="up"?"rgba(0,255,0,0.1)":o==="down"?"transparent":r?"rgb(59 130 246 / 15%)":void 0,...n}},x.default.createElement("span",{style:{fontFamily:"Menlo, monospace",fontSize:"11px",borderRadius:4,display:"inline-block"}},e))}var sp="noya-multiplayer-history-",up=In(function({noyaManager:t,colorScheme:r="light",anchor:n="right",unstyled:o=!1,...i}){let{multiplayerStateManager:a,assetManager:c,connectedUsersManager:p,secretManager:f,ephemeralUserDataManager:l,connectionEventManager:d,taskManager:b}=t,[I,O]=x.default.useState(!1),S=X(b.tasks$);(0,x.useLayoutEffect)(()=>{O(!0)},[]);let T=x.default.useRef(null),E=x.default.useRef(null),[w,A]=yr("noya-multiplayer-react-show-inspector",!0),[N,R]=yr("noya-multiplayer-react-show-events",!1),[F,oe]=yr("noya-multiplayer-react-show-history",!1),[Ie,gr]=yr("noya-multiplayer-react-show-users",!0),[qr,Ui]=yr("noya-multiplayer-react-show-data",!0),[py,fy]=yr("noya-multiplayer-react-show-tasks",!1),[ly,dy]=yr("noya-multiplayer-react-show-ephemeral",!1),[my,yy]=yr("noya-multiplayer-react-show-assets",!1),[gy,hy]=yr("noya-multiplayer-react-show-secrets",!1),aa=X(d.events$);(0,x.useEffect)(()=>{T.current&&(T.current.scrollTop=T.current.scrollHeight)},[aa]);let xy=X(a.isInitialized$),by=X(l.data$),vr=pp(a.sm),Sy=X(c.assets$),Iy=X(c.isInitialized$),Ty=X(f.secrets$),Oy=X(f.isInitialized$),gp=X(p.connectedUsers$),Ey=X(p.currentUserId$),Py=X(a.optimisticState$);(0,x.useEffect)(()=>{E.current&&(E.current.scrollTop=E.current.scrollHeight)},[vr]),(0,x.useEffect)(()=>{if(!E.current)return;let C=E.current.querySelector(`#${sp}${vr.historyIndex}`);C&&C.scrollIntoView({block:"nearest",inline:"nearest"})},[vr.historyIndex]);let Ee=r==="light"?Ym:Xm,Fi=r==="light"?"rgb(223 223 223)":"rgb(29 29 29)",hp={position:"fixed",top:12,...n.includes("right")?{right:12}:{left:12},bottom:12,width:400,background:r==="light"?"rgba(255,255,255,0.95)":"rgba(0,0,0,0.95)",backdropFilter:"blur(48px)",border:`1px solid ${Fi}`,borderRadius:4,display:"flex",flexDirection:"column",color:Ee.BASE_COLOR,overflow:"hidden",zIndex:9999,lineHeight:"13px"};return I?w?x.default.createElement("div",{...i,style:{...!o&&hp,...i.style}},x.default.createElement(Vr,{isFirst:!0,open:Ie,setOpen:gr,title:"Users",colorScheme:r,style:{flex:"0 0 auto",maxHeight:"200px"},right:x.default.createElement(Jm,{showInspector:w,setShowInspector:A,theme:Ee,anchor:n})},x.default.createElement("div",{style:{...Gr.sectionInner,flex:"0 0 auto"}},gp?.map(C=>x.default.createElement(_r,{key:C.id,colorScheme:r,variant:C.id===Ey?"up":void 0},C.image&&x.default.createElement("img",{src:C.image,alt:C.name,style:{width:"13px",height:"13px",borderRadius:"50%",marginRight:"4px",display:"inline-block",position:"relative",background:Fi,verticalAlign:"middle"}}),C.name," (",Zm(C.id.toString(),8,"middle"),")")),!gp&&x.default.createElement("div",{style:{padding:"12px",fontSize:"12px",display:"flex",flexDirection:"column",gap:"4px"}},x.default.createElement("span",null,"No connected users")))),x.default.createElement(Vr,{title:x.default.createElement(cp,null,"Data",x.default.createElement(ap,{type:xy?"success":"error"})),colorScheme:r,setOpen:Ui,open:qr,right:x.default.createElement("span",{style:{display:"flex",gap:"4px"}},x.default.createElement(zr,{theme:Ee,onClick:()=>{t.forceInit()}},"Reset"))},x.default.createElement("div",{style:Gr.sectionInner},x.default.createElement(_r,{colorScheme:r},x.default.createElement(mr,{name:a.schema?"state":void 0,data:Py,theme:Ee})),a.schema&&x.default.createElement(_r,{colorScheme:r},x.default.createElement(mr,{name:"schema",data:a.schema,theme:Ee})))),x.default.createElement(Vr,{open:F,setOpen:oe,title:"History",colorScheme:r,right:x.default.createElement("span",{style:{display:"flex",gap:"4px"}},x.default.createElement(zr,{disabled:!vr.canUndo,theme:Ee,onClick:()=>{a.undo()}},x.default.createElement("span",{style:{width:"12px",height:"12px"}},x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 20 20"},x.default.createElement("path",{fill:"currentColor",d:"M12 5H7V2L1 6l6 4V7h5c2.2 0 4 1.8 4 4s-1.8 4-4 4H7v2h5c3.3 0 6-2.7 6-6s-2.7-6-6-6"})))),x.default.createElement(zr,{disabled:!vr.canRedo,theme:Ee,onClick:()=>{a.redo()}},x.default.createElement("span",{style:{width:"12px",height:"12px"}},x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 20 20"},x.default.createElement("path",{fill:"currentColor",d:"M8 5h5V2l6 4l-6 4V7H8c-2.2 0-4 1.8-4 4s1.8 4 4 4h5v2H8c-3.3 0-6-2.7-6-6s2.7-6 6-6"})))))},x.default.createElement("div",{ref:E,style:Gr.sectionInner},x.default.createElement("div",{id:`${sp}0`,style:{borderBottom:`1px solid ${Fi}`,fontSize:"12px",fontFamily:"Menlo, monospace",padding:"2px 12px 1px",display:"flex",alignItems:"center",background:vr.historyIndex===0?"rgb(59 130 246 / 15%)":void 0}},x.default.createElement("span",{style:{fontFamily:"Menlo, monospace",fontSize:"11px",borderRadius:4,display:"inline-block"}},"Initial state")),vr.history.map((C,st)=>x.default.createElement("div",{id:`${sp}${st+1}`,key:st,style:{padding:"0px 12px 1px",borderBottom:`1px solid ${Fi}`,background:st+1===vr.historyIndex?"rgb(59 130 246 / 15%)":void 0}},"name"in C.metadata&&typeof C.metadata.name=="string"&&x.default.createElement("pre",{style:{fontSize:"11px",display:"flex",flexWrap:"wrap",margin:0}},C.metadata.name),C.redoPatches?.map((Be,io)=>x.default.createElement("pre",{key:io,style:{fontSize:"11px",display:"flex",flexWrap:"wrap",margin:0}},Be.op==="add"&&x.default.createElement(x.default.Fragment,null,x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.path))," = ",x.default.createElement(mr,{data:Be.value,theme:Ee})),Be.op==="replace"&&x.default.createElement(x.default.Fragment,null,x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.path))," = ",x.default.createElement(mr,{data:Be.value,theme:Ee})),Be.op==="remove"&&x.default.createElement(x.default.Fragment,null,x.default.createElement("span",{style:{color:Ee.OBJECT_VALUE_STRING_COLOR}},"delete"," "),x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.path))),Be.op==="move"&&x.default.createElement(x.default.Fragment,null,x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.from))," -> ",x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.path))))))))),x.default.createElement(Vr,{open:my,setOpen:yy,title:x.default.createElement(cp,null,"Assets",x.default.createElement(ap,{type:Iy?"success":"error"})),colorScheme:r,right:x.default.createElement("span",{style:{display:"flex",gap:"10px"}},x.default.createElement(zr,{theme:Ee,onClick:()=>{console.info("[StateInspector] Reloading assets",t.id),c.fetch()}},"Reload"),x.default.createElement(zr,{theme:Ee,onClick:()=>{let C=document.createElement("input");C.type="file",C.onchange=()=>{let st=C.files?.[0];if(st){let Be=new FileReader;Be.onload=()=>{let io=Be.result;c.create(new Uint8Array(io))},Be.readAsArrayBuffer(st)}},C.click()}},"Upload"))},x.default.createElement("div",{style:Gr.sectionInner},Sy.map(C=>x.default.createElement(_r,{key:C.id,colorScheme:r},x.default.createElement(mr,{name:C.id,data:C,theme:Ee}),x.default.createElement(zr,{theme:Ee,onClick:()=>c.delete(C.id)},"Delete"))))),x.default.createElement(Vr,{title:"Tasks",colorScheme:r,open:py,setOpen:fy},x.default.createElement("div",{style:Gr.sectionInner},S?.map(C=>x.default.createElement(_r,{key:C.id,colorScheme:r,style:{backgroundColor:C.status==="done"?"rgba(0,255,0,0.2)":C.status==="error"?"rgba(255,0,0,0.2)":void 0}},x.default.createElement(mr,{name:C.name,data:C.payload,theme:Ee}))))),x.default.createElement(Vr,{title:x.default.createElement(cp,null,"Secrets",x.default.createElement(ap,{type:Oy?"success":"error"})),colorScheme:r,open:gy,setOpen:hy,right:x.default.createElement(zr,{theme:Ee,onClick:()=>{let C=prompt("Enter secret name");if(!C)return;let st=prompt("Enter secret value");st&&f.createSecret(C,st)}},"Create")},x.default.createElement("div",{style:Gr.sectionInner},Ty.map(C=>x.default.createElement(_r,{key:C.id,colorScheme:r},x.default.createElement(mr,{data:C,theme:Ee}),x.default.createElement(zr,{theme:Ee,onClick:()=>f.deleteSecret(C.name)},"Delete"))))),x.default.createElement(Vr,{open:ly,setOpen:dy,title:"Ephemeral User Data",colorScheme:r},x.default.createElement("div",{style:Gr.sectionInner},Object.entries(by).map(([C,st])=>x.default.createElement(_r,{key:C,colorScheme:r},x.default.createElement(mr,{name:C,data:st,theme:Ee,expandLevel:10}))))),x.default.createElement(Vr,{open:N,setOpen:R,title:"Events",colorScheme:r},x.default.createElement("div",{ref:T,style:Gr.sectionInner},aa?.map((C,st)=>C.type==="stateChange"?x.default.createElement(_r,{key:st,colorScheme:r},"connection:"," ",x.default.createElement("span",{style:{fontStyle:"italic"}},C.state.toLowerCase())):x.default.createElement(_r,{key:st,colorScheme:r,variant:C.type==="send"?"up":"down",style:{padding:"0px 12px 1px"}},x.default.createElement(mr,{data:C.type==="error"?C.error:C.message,theme:Ee,nodeRenderer:({depth:Be,name:io,data:xp,isNonenumerable:My})=>{let bp=C.type==="send"?"up":"down";return Be===0?x.default.createElement(bA,{direction:bp,data:xp}):x.default.createElement(ip,{direction:bp,name:io,data:xp,isNonenumerable:My})}}))),!aa&&x.default.createElement("div",{style:{padding:"12px",fontSize:"12px",display:"flex",flexDirection:"column",gap:"4px"}},x.default.createElement("span",null,"No recorded events"))))):x.default.createElement("div",{...i,style:{...hp,padding:"4px 10px",width:void 0,...n.includes("bottom")?{bottom:12,top:void 0}:{bottom:void 0}},onClick:()=>A(!0)},x.default.createElement(Jm,{showInspector:w,setShowInspector:A,theme:Ee,anchor:n})):null}),bA=({name:e,data:t,direction:r})=>typeof e=="string"?x.default.createElement("span",null,x.default.createElement(_i,{name:e}),x.default.createElement("span",null,": "),x.default.createElement(On,{data:t})):r==="up"||r==="down"?x.default.createElement("span",null,x.default.createElement("span",{style:{background:r==="up"?"rgba(0,255,0,0.2)":"rgba(255,0,0,0.2)",width:12,height:12,borderRadius:2,display:"inline-flex",justifyContent:"center",alignItems:"center",marginRight:4,lineHeight:"12px"}},r==="up"?"\u2191":"\u2193"),x.default.createElement(On,{data:t})):x.default.createElement(On,{data:t});function SA({expanded:e,onClick:t,style:r}){return x.default.createElement("span",{role:"button",onClick:t,style:{display:"inline-block",textAlign:"center",transform:e?"rotate(0deg)":"rotate(-90deg)",fontFamily:"Menlo, monospace",...r}},"\u25BC")}function vi(e){return e.map(t=>typeof t=="object"?`:${Zm(t.id.toString(),8,"middle")}`:t).map((t,r)=>r===0||typeof t=="string"&&t.startsWith(":")?t:`.${t}`).join("")}function Zm(e,t,r="end"){if(e.length<=t)return e;switch(r){case"start":return`\u2026${e.slice(e.length-t)}`;case"middle":let n=Math.floor(t/2);return`${e.slice(0,n)}\u2026${e.slice(e.length-n)}`;case"end":return`${e.slice(0,t)}\u2026`}}function zr({children:e,onClick:t,style:r,theme:n,disabled:o}){return x.default.createElement("button",{type:"button",disabled:o,onClick:i=>{i.stopPropagation(),t()},style:{flex:"0",appearance:"none",background:"none",color:n.BASE_COLOR,opacity:o?.25:1,border:"none",fontSize:"12px",whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"0",cursor:"pointer",...r}},e)}function ap({type:e}){return x.default.createElement("span",{style:{display:"inline-block",width:6,height:6,background:e==="success"?"rgba(0,200,0,0.8)":"rgba(200,0,0,0.8)",borderRadius:"50%",verticalAlign:"middle"}})}function cp({children:e}){return x.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"4px"}},e)}function IA(){let e=document.createElement("div");e.id="noya-multiplayer-react-inspector-host";let t=e.attachShadow({mode:"open"}),r=document.createElement("div");return t.appendChild(r),{host:e,container:r}}function ey({noyaManager:e,disabled:t=!1,colorScheme:r,anchor:n}){let[o,i]=oo.default.useState(null);(0,oo.useLayoutEffect)(()=>{if(t)return;let{host:a,container:c}=IA(),p=(0,Qm.createRoot)(c);return document.body.appendChild(a),i(p),()=>{document.body.removeChild(a)}},[t]),(0,oo.useLayoutEffect)(()=>{o&&o.render(oo.default.createElement(up,{colorScheme:r,anchor:n,noyaManager:e}))},[e,n,r,o])}function ry(e,t){let r=(0,$e.useCallback)(()=>typeof t=="string"?e.getState(t):e.getState(),[e,t]);return(0,$e.useSyncExternalStore)(e.addListener,r,r)}function TA(e,t){let[r]=(0,$e.useState)(()=>new xn(e(),t)),n=ry(r),o=(0,$e.useCallback)((...i)=>{let[a,c]=i.length===1?[void 0,i[0]]:i;if(a===void 0){let p=r.performAction;c instanceof Function?p({run:c,undo:()=>n}):p({run:()=>c,undo:()=>n})}else{let p=r.performAction;c instanceof Function?p(a,{run:c,undo:()=>n}):p(a,{run:()=>c,undo:()=>n})}},[n,r]);return[n,o,r]}function pp(e){return(0,$e.useSyncExternalStore)(e.historyEmittor.addListener,e.getHistorySnapshot,e.getHistorySnapshot)}var OA=Ci();function fp(e,t){let{sync:r=OA,inspector:n,...o}=t??{},[i]=(0,$e.useState)(()=>new Ri(e,o)),a=X(i.multiplayerStateManager.optimisticState$),c=X(i.assetManager.assets$),p=(0,$e.useMemo)(()=>({noyaManager:i,taskManager:i.taskManager,connectionEventManager:i.connectionEventManager,connectedUsersManager:i.connectedUsersManager,ephemeralUserDataManager:i.ephemeralUserDataManager,multiplayerStateManager:i.multiplayerStateManager,assetManager:i.assetManager,aiManager:i.aiManager,rpcManager:i.rpcManager,workflowManager:i.workflowManager,secretManager:i.secretManager,menuItemsManager:i.menuManager,createAsset:i.assetManager.create,deleteAsset:i.assetManager.delete,assets:c}),[i,c]),f=(0,$e.useRef)(r);return(0,$e.useEffect)(()=>{if(f.current)return f.current({noyaManager:i})},[i]),EA(i),ey({noyaManager:i,disabled:!n,...typeof n=="object"&&n}),[a,i.multiplayerStateManager.setState,p]}function EA(e){let t=X(e.unrecoverableError);(0,$e.useEffect)(()=>{if(!t)return;let r=document.createElement("div");r.id="noya-multiplayer-react-error-overlay",document.body.appendChild(r);let n=(0,ty.createRoot)(r);return n.render((0,$e.createElement)(_m,{error:t})),()=>{n.unmount(),r.remove()}})}s();var ki=require("react");function ny(e){return{theme:"light",viewType:"editable",initialState:e,inspector:!1}}function oy(e,t){return t?iu({schema:t,value:e,defs:$t(t)}):e}function iy(e){let r=(e?.window??globalThis).location;if(!r)return null;let n=(r.hash||"").replace(/^#/,""),i=new URLSearchParams(n).get("data");if(!i)return null;try{return JSON.parse(i)}catch{return null}}function sy(e,t,r){let n=e instanceof Function?e():e,o=iy(r)??ny(n);return r?.overrideExistingState&&(o.initialState=n),o.initialState=oy(o.initialState,t),o}function lp(...e){let[t,r]=typeof e[0]=="object"&&e[0]!==null&&"schema"in e[0]&&m.IsSchema(e[0].schema)?[null,e[0]]:[e[0],e[1]],[{multiplayerUrl:n,inspector:o,initialState:i,theme:a,viewType:c}]=(0,ki.useState)(()=>sy(t,r?.schema,{overrideExistingState:r?.overrideExistingState})),p=(0,ki.useMemo)(()=>Mu()?Ku({debug:r?.debug}):n?$u(n):r?.offlineStorageKey?ku({key:r.offlineStorageKey}):Ci(),[n,r?.offlineStorageKey,r?.debug]),f=fp(i,{...r,inspector:r?.inspector??o,sync:r?.sync??p}),[,,l]=f,d=(0,ki.useMemo)(()=>({...l,theme:a,viewType:c}),[l,a,c]);return[f[0],f[1],d]}s();var ye=Y(require("react"));var dp=(0,ye.createContext)(void 0);function vt(){let e=(0,ye.useContext)(dp);if(!e)throw new Error("useNoyaStateContext must be used within a NoyaStateProvider");return e}function PA(){let{assetManager:e}=vt();return X(e.assets$)}function MA(e){let{assetManager:t}=vt(),r=(0,ye.useMemo)(()=>t.assets$.map(n=>n.find(o=>o.id===e)),[t,e]);return X(r)}function wA(){let{assetManager:e}=vt();return(0,ye.useMemo)(()=>({create:e.create,delete:e.delete}),[e])}function RA(){let{aiManager:e}=vt();return e}function AA(){let{secretManager:e}=vt();return e}function CA(){let{secretManager:e}=vt();return X(e.secrets$)}function NA(e){let{secretManager:t}=vt();return X(t.secrets$,(0,ye.useCallback)(r=>r.find(n=>n.name===e),[e]))}function ay(){let{multiplayerStateManager:e,secretManager:t,assetManager:r}=vt(),n=(0,ye.useMemo)(()=>B.combine([e.isInitialized$,t.isInitialized$,r.isInitialized$],o=>o.every(i=>i)),[e,t,r]);return X(n)}function _A(){let{workflowManager:e}=vt();return e}var mp=(0,ye.createContext)(void 0);function cy(){return(0,ye.useContext)(mp)}var yp=(0,ye.createContext)(void 0);function vA(){return(0,ye.useContext)(yp)}function kA(){let e=cy();return X(e?.currentUserId$)}var uy=({children:e,fallback:t})=>ay()?e:t??null;function UA({schema:e,mergeHistoryEntries:t}){let r=dp,n=yp;function o({children:S,initialState:T,...E}){let[,,{noyaManager:w}]=lp(T,{...E,schema:e,mergeHistoryEntries:t});return ye.default.createElement(dp.Provider,{value:w},ye.default.createElement(mp.Provider,{value:w.connectedUsersManager},ye.default.createElement(n.Provider,{value:w.ephemeralUserDataManager},E.fallback!==void 0?ye.default.createElement(uy,{fallback:E.fallback},S):S)))}function i(S,T){let{multiplayerStateManager:E}=vt(),w=typeof S=="function"||!S?"":S,A=(0,ye.useMemo)(()=>typeof S=="function"?E.optimisticState$.map(S,{isEqual:T?.isEqual}):E.optimisticState$,[E,S,T?.isEqual]);return X(A,w)}function a(S){let{multiplayerStateManager:T}=vt();return(0,ye.useCallback)((...w)=>{let[A,N]=w.length===2?w:[{},w[0]];T.setStateAtPath(A,S??"",N)},[T,S])}function c(...S){let[T,E,w]=S.length>=1&&typeof S[0]=="function"?[S[0],S[1],void 0]:[void 0,void 0,S[0]],A=i(T??w??"",E),N=a(w??"");return[A,N]}function p(){let{multiplayerStateManager:S}=vt();return S}function f(){let S=(0,ye.useContext)(n);if(!S)throw new Error("useEphemeralUserData must be used within a NoyaStateProvider");return S}function l(){return vt()}function d(){let{menuManager:S}=l();return X(S.leftMenuItems$)}function b(){let{menuManager:S}=l();return X(S.rightMenuItems$)}function I(S){let{menuManager:T}=l();(0,ye.useEffect)(()=>T.addListener(S),[T,S])}function O(){let{menuManager:S}=l();return(0,ye.useCallback)(T=>S.emit(T),[S])}return{Context:r,Provider:o,useValue:i,useSetValue:a,useValueState:c,useStateManager:p,useEphemeralUserDataManager:f,useLeftMenuItems:d,useRightMenuItems:b,useHandleMenuItem:I,useOnSelectMenuItemCallback:O,useNoyaManager:l}}s();var Zn=class{constructor(t,r={}){this.url=t;this.options=r;this.ws=new eo({debug:r.debug,onopen:this.handleOpen,onmessage:this.handleMessage,onclose:this.handleClose,activityDetector:new Qn})}ws;pingCount=0;pendingPingId;intervalId;async connect(){this.ws.connect(this.url.toString()),this.intervalId=setInterval(()=>{if(this.ws.state!=="OPEN")return;if(this.pendingPingId){this.ws.close();return}let r={type:"ping",id:(this.pingCount++).toString()};this.pendingPingId=r.id,this.options.onConnectionEvent?.({type:"send",message:r}),this.ws.send(JSON.stringify(r))},1e4)}handleOpen=()=>{this.pendingPingId=void 0,this.options.debug&&console.info("ws connected"),this.options.onConnectionEvent?.({type:"stateChange",state:"OPEN"})};handleMessage=t=>{this.options.debug&&console.info("ws receiving message ",t.data);let r=JSON.parse(t.data);this.options.onConnectionEvent?.({type:"receive",message:r}),r.type==="pong"&&r.id===this.pendingPingId&&(this.pendingPingId=void 0)};handleClose=()=>{this.pendingPingId=void 0,this.options.debug&&console.info("ws disconnected"),this.options.onConnectionEvent?.({type:"stateChange",state:"CLOSED"})};send(t){this.options.debug&&console.info("ws sending message",t),this.options.onConnectionEvent?.({type:"send",message:t}),this.ws.send(JSON.stringify(t))}close(){this.intervalId&&clearInterval(this.intervalId),this.ws.shutdown()}addListener(t){return this.ws.addListener(t)}removeListener(t){return this.ws.removeListener(t)}};
42
+ return esModuleInterop(module.exports);`}async function nm(e){let t=[];try{return{result:await new Function(e.code)()(...e.args),logs:t}}catch(r){return console.error(r),{error:r,logs:t}}finally{}}function om(e,t=globalThis.fetch){return async({code:r,args:n,env:o})=>await(await t(e,{method:"POST",body:JSON.stringify({code:r,args:n,env:o})})).json()}function im({baseUrl:e,headers:t,fetch:r=globalThis.fetch,ENCRYPTION_KEY:n,MULTIPLAYER_SHARED_TOKEN:o}){return async i=>{let c=await(await r(`${e}/api/fileVersions/${i}/secrets?includeValues=true`,{headers:{"x-noya-shared-token":o,...t}})).json();return pR(c,n)}}async function pR(e,t){let r={};for(let n of e){let{name:o,value:i}=n;if(!i){console.warn(`No value for secret ${o}`);continue}let a=JSON.parse(i),c=await rm({...a,ENCRYPTION_KEY:t});r[o]=c}return r}function fR({state:e,node:t,api:r,taskRunner:n,dependencyTaskRefs:o}){let i;switch(t.gType){case"node":{i=t.name;break}case"input":{i=`input:${t.name}`;break}case"output":{i=`output:${t.name}`;break}case"transform":{i=`transform:${t.type}:${t.value}`;break}}return n.createContext(...o).addTask({id:t.id,name:i},async(c,{log:p})=>{let f=c[0],l=d=>d.reduce((b,I)=>(b[I.name]=I.state,b),{});switch(t.gType){case"node":switch(t.type){case"file":{p(`fetching ${i} - ${t.fileVersionId}`);try{let d=await r.getFileVersionData(t.fileVersionId);return p(`fetched ${i} - ${t.fileVersionId}: ${JSON.stringify(d,null,2)}`),{state:d,inputs:l(c)}}catch(d){throw p(`error fetching ${i} - ${t.fileVersionId}`,d.message),d}}case"workflowOutput":return{state:e,inputs:l(c)};default:throw new Error(`Unknown node type: ${t.type}`)}case"input":{p(`${i} - receiving input`);let d=f;return p(`${i} - processed input:`,JSON.stringify(d,null,2)),{name:t.name,state:d}}case"output":{p(`${i} - receiving output`);let d=f?.state??f;return p(`${i} - processed output:`,JSON.stringify(d,null,2)),d}case"transform":switch(p(`${i} - ${t.type}`),t.type){case"jsonPointer":{if(p(`${i} json pointer`,t.value),!t.value.startsWith("/"))throw p(`${i} json pointer missing leading slash`,t.value),new Error(`${i} json pointer missing leading slash: ${t.value}`);let d=Ye(f.state,t.value,["/"]);return p(`${i} json pointer result`,JSON.stringify(d,null,2)),{state:d,inputs:f.inputs}}case"script":{let d;switch(t.location){case"state":{if(typeof f.state!="string")throw new Error(`Script transform requires string input, got: ${typeof f.state}`);d=f.state;break}case"url":{try{d=await(r.fetchScript??lR)(t.value)}catch(E){throw p(`${i} error fetching script: ${E.message}`),E}break}default:throw new Error(`Unknown script location: ${t.location}`)}p(`${i} loaded script`,t.value);let b=Nu({content:d}),I={};t.gFileVersionId&&(I=await r.getFileVersionEnv(t.gFileVersionId));let{result:O,logs:S,error:T}=await r.evaluateScript({code:b,args:[f],env:I});if(T)throw p(`${i} error evaluating script: ${T.message}`),new Error(T);p(`${i} evaluated script`);for(let E of S)p(E[0].toUpperCase()+": ",E.slice(1).join(" "));return{state:O,inputs:f.inputs}}default:throw new Error(`Unknown transform type: ${t.type}`)}default:throw new Error(`Unknown graph node type: ${t.gType}`)}})}async function lR(e){let t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch script ${e}: ${t.statusText}`);return t.text()}function sm({graph:e,state:t,api:r}){let n=new Mi;if(!e.isAcyclic())throw new Error("Workflow graph has cycles");let o=Array.from(e.nodes()).find(c=>c.gType==="node"&&c.type==="workflowOutput");function i(c){if(n.tasks[c.id])return Mi.toRef(n.tasks[c.id]);let f=[...e.getNodeDependencies(c.id)].map(l=>{let d=e.getNode(l);return i(d)});return fR({node:c,api:r,taskRunner:n,state:t,dependencyTaskRefs:f})}let a=i(o);return{taskRunner:n,rootTask:a}}s();s();var _u=class{constructor(t,r=new Set){this.data=t;this.dependencies=r}get id(){return this.data.id}},vu=class e{nodesById=new Map;addNode(t){return this.ensureNode(t),this}getNode(t){return this.nodesById.get(t)?.data}getNodeDependencies(t){return this.nodesById.get(t)?.dependencies||new Set}addEdge(t,r){let n=this.ensureNode(t);if(this.ensureNode(r).dependencies.add(n.id),!this.isAcyclic())throw new Error(`[${t.id}] -> [${r.id}] form a cycle`);return this}*topologicalSort(){let t=this.nodesById,r=new Set,n=function*(o){for(let i of o.dependencies||[])r.has(i)||(yield*n(t.get(i)),yield t.get(i).data,r.add(i))};for(let o of t.values())r.has(o.id)||(yield*n(o),yield o.data,r.add(o.id))}*roots(){for(let t of this.nodesById.values())t.dependencies.size===0&&(yield t.data)}*nodes(){for(let t of this.nodesById.values())yield t.data}reverse(){let t=new e;for(let r of this.nodesById.values()){t.addNode(r.data);for(let n of r.dependencies){let o=this.nodesById.get(n).data;t.addNode(o),t.addEdge(r.data,o)}}return t}ensureNode(t){let r=this.nodesById.get(t.id);return r||(r=new _u(t),this.nodesById.set(t.id,r),r)}isAcyclic(){let t=new Map;this.nodesById.forEach(o=>t.set(o.id,0)),this.nodesById.forEach(o=>o.dependencies.forEach(i=>{t.set(i,t.get(i)+1)}));let r=new Array;this.nodesById.forEach(o=>{t.get(o.id)===0&&r.push(o.id)});let n=0;for(;r.length>0;){let[o]=r.splice(0,1);n+=1,this.nodesById.get(o).dependencies.forEach(i=>{t.set(i,t.get(i)-1),t.get(i)===0&&r.push(i)})}return n===this.nodesById.size}};function am(){return new vu}function cm(e){let t=am();for(let r of e.nodes){let n=r.type==="file"?r.fileVersionId:void 0,o={gType:"node",gFileVersionId:n,...r};t.addNode(o);for(let i of r.inputs){let a={gType:"input",gFileVersionId:n,...i};t.addNode(a),t.addEdge(a,o)}for(let i of r.outputs){let a={gType:"output",gFileVersionId:n,...i};t.addNode(a);let c={gType:"node",...r};for(let p of i.transforms){let f={gType:"transform",gFileVersionId:n,...p};t.addNode(f),t.addEdge(c,f),c=f}t.addEdge(c,a)}}for(let r of e.connections){let n=t.getNode(r.sourceId),o=t.getNode(r.targetId);if(!n||!o)throw new Error(`Invalid connection: ${r.id}`);t.addEdge(n,o)}return t}function um({state:e,api:t}){let r=cm(e),{taskRunner:n,rootTask:o}=sm({graph:r,state:e,api:t});return{taskRunner:n,rootTask:o}}s();var dR=_.Object({x:_.Number(),y:_.Number(),width:_.Number(),height:_.Number()}),mR=_.Object({id:_.String({format:"uuid",default:""}),name:_.String()}),yR=_.Union([_.Object({id:_.String({format:"uuid",default:""}),type:_.Literal("script"),location:_.Union([_.Literal("state"),_.Literal("url")]),value:_.String()}),_.Object({id:_.String({format:"uuid",default:""}),type:_.Literal("jsonPointer"),value:_.String()})],{discriminator:"type"}),gR=_.Object({id:_.String({format:"uuid",default:""}),name:_.String(),transforms:_.Array(yR)}),pm={id:_.String({format:"uuid",default:""}),name:_.String(),rect:dR,inputs:_.Array(mR),outputs:_.Array(gR)},hR=_.Object({...pm,type:_.Literal("file"),fileId:_.String(),fileVersionId:_.String()}),xR=_.Object({...pm,type:_.Literal("workflowOutput")}),bR=_.Union([hR,xR],{discriminator:"type"}),SR=_.Object({id:_.String({format:"uuid",default:""}),sourceId:_.String(),targetId:_.String()}),IR=_.Array(bR),UJ=_.Object({nodes:IR,connections:_.Array(SR)},{version:14});var wi=class{constructor(t){this.rpcManager=t}status$=new B("idle");tasks$=new B([]);result$=new B(void 0);async run(t){let r=await this.rpcManager.requestRoute("POST /api/evaluate",{body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});return JSON.parse(r.body).result}async runScript(t,r){let n=await fetch(t);if(!n.ok)throw new Error("Failed to fetch script");let o=await n.text();return this.run({code:Nu({content:o}),args:r.args,env:r.env})}async runScriptOnFileState(t,r){return await this.runScript(t,{args:[{state:r}],env:{}})}async runWorkflow(){let t=await this.rpcManager.requestRoute("POST /api/runWorkflow"),{result:r,snapshot:n}=JSON.parse(t.body);return{result:r,snapshot:n}}async runWorkflowLocally(t){let{workflowState:r,getFileVersionData:n}=t,{taskRunner:o,rootTask:i}=um({state:r,api:{evaluateScript:t.executionEnvironment==="local"?nm:om(process.env.NEXT_PUBLIC_DEV_EVALUATE_SCRIPT_URL),getFileVersionData:n,getFileVersionEnv:t.executionEnvironment==="local"?()=>Promise.resolve({}):im({baseUrl:t.baseUrl,ENCRYPTION_KEY:process.env.NEXT_PUBLIC_DEV_ENCRYPTION_KEY,MULTIPLAYER_SHARED_TOKEN:process.env.NEXT_PUBLIC_DEV_MULTIPLAYER_SHARED_TOKEN})}});this.status$.set("running"),o.subscribe(()=>{this.tasks$.set(o.getSnapshot())});try{let a=await o.runTask(i);return this.status$.set("success"),this.result$.set(a),{result:a,snapshot:o.getSnapshot()}}catch(a){return this.status$.set("error"),{error:a,snapshot:o.getSnapshot()}}}};var Ri=class{id=ar();multiplayerStateManager;rpcManager;workflowManager;secretManager;aiManager;ephemeralUserDataManager=new Ti;assetManager=new ai;connectedUsersManager=new li;taskManager=new Pi;connectionEventManager=new di;menuManager=new xi;initialState;options;unrecoverableError=new B(void 0);constructor(...t){let[r,n={}]=t;n={mergeHistoryEntries({previous:o,next:i}){if(o.metadata.name!==void 0&&o.metadata.name===i.metadata.name&&o.metadata.timestamp+500>i.metadata.timestamp)return Bt.merge({previous:o,next:i})},...n},this.multiplayerStateManager=new Ii(r,n),this.initialState=r,this.options=n,this.rpcManager=new Oi({debug:this.options.debug}),this.workflowManager=new wi(this.rpcManager),this.secretManager=new Ei(this.rpcManager),this.aiManager=new ri(this.rpcManager),this.multiplayerStateManager.errorEmitter.addListener(o=>{switch(o.reason){case"invalidDataType":case"schemaMismatch":case"outdatedSchema":case"dataMigrationFailure":case"schemaMigration":this.unrecoverableError.set(o);break}})}forceInit=()=>{let t=this.initialState instanceof Function?this.initialState():this.initialState,r=this.options?.schema;this.multiplayerStateManager.sm.clearHistory(),this.multiplayerStateManager.sendInit({force:!0,state:t,schema:r})}};s();function TR(){return{url:"/api/workflow/run",options:{method:"POST"}}}function OR(e,t){return{url:"/api/secrets",options:{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,value:t})}}}function ER(e){return{url:"/api/secrets",options:{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})}}}s();s();s();function ku(e){return({noyaManager:t})=>{let r=e.key,n={id:"anonymous",name:"Anonymous",image:void 0};t.connectedUsersManager.connectedUsers$.set([n]),t.connectedUsersManager.currentUserId$.set(n.id),t.assetManager&&(t.assetManager.assetStore=new ci({databaseName:`noya-assets-${r}`})),t.secretManager.isInitialized$.set(!0);let o=c=>{switch(c.type){case"init":{let p=localStorage.getItem(r),f,l=c.schema?bi(c.schema):void 0;c.force||!p?(localStorage.setItem(r,JSON.stringify(c.object)),f=c.object):f=JSON.parse(p),l&&(f=fi(l,void 0,f)),t.multiplayerStateManager.incomingMessages.push({type:"object",object:f,...l?{schema:Wn(l)}:{}});break}case"patch":{let p=localStorage.getItem(r);if(!p){t.multiplayerStateManager.incomingMessages.push({id:c.id,type:"rejectPatch",reason:"serverStateNotInitialized"});break}let f=JSON.parse(p);try{f=xe(f,c.patches)}catch{t.multiplayerStateManager.incomingMessages.push({id:c.id,type:"rejectPatch",reason:"errorApplyingPatch"});break}localStorage.setItem(r,JSON.stringify(f)),t.multiplayerStateManager.incomingMessages.push({type:"acceptPatch",id:c.id,patches:c.patches})}}t.multiplayerStateManager.processIncomingMessages()},i=t.multiplayerStateManager.messageEmitter.addListener(o),a=t.multiplayerStateManager.errorEmitter.addListener(c=>{t.connectionEventManager.addEvent({type:"error",error:c})});return t.multiplayerStateManager.connect(),()=>{i(),a(),t.multiplayerStateManager.disconnect()}}}s();s();s();s();var fm=require("react");s();var zs=e=>typeof e>"u"?"key":/Mac/.test(e.platform)?"mac":/Win/.test(e.platform)?"win":/Linux|X11/.test(e.platform)?"linux":"key";var lm="ignore-global-events";var R7=typeof navigator<"u"?zs(navigator):"key";s();s();s();var Ar={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Ws={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},PR=typeof navigator<"u"&&/Mac/.test(navigator.platform),MR=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Ce=0;Ce<10;Ce++)Ar[48+Ce]=Ar[96+Ce]=String(Ce);var Ce;for(Ce=1;Ce<=24;Ce++)Ar[Ce+111]="F"+Ce;var Ce;for(Ce=65;Ce<=90;Ce++)Ar[Ce]=String.fromCharCode(Ce+32),Ws[Ce]=String.fromCharCode(Ce);var Ce;for(qs in Ar)Ws.hasOwnProperty(qs)||(Ws[qs]=Ar[qs]);var qs;function dm(e){var t=PR&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||MR&&e.shiftKey&&e.key&&e.key.length==1||e.key=="Unidentified",r=!t&&e.key||(e.shiftKey?Ws:Ar)[e.keyCode]||e.key||"Unidentified";return r=="Esc"&&(r="Escape"),r=="Del"&&(r="Delete"),r=="Left"&&(r="ArrowLeft"),r=="Up"&&(r="ArrowUp"),r=="Right"&&(r="ArrowRight"),r=="Down"&&(r="ArrowDown"),r}s();function wR(e,t){let r=e.split(/-(?!$)/),n=r[r.length-1];n==="Space"&&(n=" ");let o={altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1};if(r.length===1){if(/^(cmd|meta)$/i.test(n))return{key:"Meta",modifiers:o};if(/^alt$/i.test(n))return{key:"Alt",modifiers:o};if(/^(ctrl|control)$/i.test(n))return{key:"Ctrl",modifiers:o};if(/^shift$/i.test(n))return{key:"Shift",modifiers:o};if(/^mod$/i.test(n))return t==="mac"?{key:"Meta",modifiers:o}:{key:"Ctrl",modifiers:o}}for(let i=0;i<r.length-1;++i){let a=r[i];if(/^(cmd|meta)$/i.test(a))o.metaKey=!0;else if(/^alt$/i.test(a))o.altKey=!0;else if(/^(ctrl|control)$/i.test(a))o.ctrlKey=!0;else if(/^shift$/i.test(a))o.shiftKey=!0;else if(/^mod$/i.test(a))t==="mac"?o.metaKey=!0:o.ctrlKey=!0;else throw new Error("Unrecognized modifier name: "+a)}return{key:n,modifiers:o}}function Ai(e,t){let r=wR(e,t),n=r.key;return r.modifiers.altKey&&(n="Alt-"+n),r.modifiers.ctrlKey&&(n="Ctrl-"+n),r.modifiers.metaKey&&(n="Meta-"+n),r.modifiers.shiftKey&&(n="Shift-"+n),n}function Js(e,t,r){return t.altKey&&(e="Alt-"+e),t.ctrlKey&&(e="Ctrl-"+e),t.metaKey&&(e="Meta-"+e),r!==!1&&t.shiftKey&&(e="Shift-"+e),e}function mm(e,t){let r=e[t]||e.key;return r?Ai(r,t):void 0}var RR=new Set(["Alt","Control","Meta","Shift"]);function ym(e,t){let r=dm(e),n=r.length===1&&r!==" ",o={altKey:e.altKey,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey},i=Ai(RR.has(r)?r:Js(r,o,!n),t),a=[i],c=Ar[e.keyCode];if(n){let p;(e.shiftKey||e.altKey||e.metaKey)&&c&&c!==i?p=Ai(Js(c,o,!0),t):e.shiftKey&&(p=Ai(Js(i,o,!0),t)),p&&!a.includes(p)&&a.push(p)}return a}var ju="fallthrough";function gm(e,t){let r=Array.isArray(e)?e:Object.entries(e);return Object.fromEntries(r.flatMap(([n,o])=>{let i=mm(typeof n=="string"?{key:n}:n,t);return i?[[i,o]]:[]}))}var AR=(e,t,r,n={})=>{let o=gm(r,t),a=ym(e,t).find(f=>f in o);if(!a)return;let c=o[a],p=typeof c=="function"?{command:c}:c;if(!(n.invokedWithinInput&&!p.allowInInput))return p.command},Uu=(e,t,r,n={})=>{let o=AR(e,t,r,n);if(!o)return;o()!==ju&&(e.preventDefault(),e.stopImmediatePropagation())};function Fu(e){if(!(e instanceof HTMLElement))return!0;let t=e,r=t.closest("[contenteditable]");return r&&(t=r),t.classList.contains(lm)?!1:!!(t instanceof HTMLInputElement&&t.type!=="checkbox"&&t.type!=="radio"||t instanceof HTMLTextAreaElement||t instanceof HTMLIFrameElement||t.hasAttribute("contenteditable"))}s();var hm=Y(ou()),xm=(0,hm.defineTree)(e=>typeof e=="string"?[]:e.items??[]),bm=e=>e.flatMap(t=>xm.flat(t)).flatMap(t=>typeof t=="string"||!t.value?[]:[t]),Lu=e=>bm(e).filter(t=>!!t.shortcut);s();function Ys(){return{postMessage:(e,t)=>window.parent.postMessage(e,t),addMessageListener:e=>(window.addEventListener("message",e),()=>window.removeEventListener("message",e))}}function Sm(e){if(!e||typeof e!="object"||!("type"in e)||typeof e.type!="string")return!1;switch(e.type){case"connection":return"state"in e&&(e.state==="connected"||e.state==="disconnected");case"application.selectMenuItem":return"payload"in e&&typeof e.payload=="object";case"rpc.response":case"rpc.chunk":case"rpc.error":return"payload"in e&&typeof e.payload=="object";default:return!0}}function Im(e){if(!e||typeof e!="object"||!("type"in e))return!1;switch(e.type){case"multiplayer.ready":return!0;case"multiplayer.message":return"payload"in e;case"application.setMenuItems":return"payload"in e&&Array.isArray(e.payload?.menuItems)&&typeof e.payload.position=="string"&&(e.payload.position==="left"||e.payload.position==="right");case"rpc.request":return"payload"in e&&typeof e.payload=="object";default:return!1}}s();function Du(e){return typeof e=="string"||e instanceof URL?{url:e}:typeof e=="function"?{url:e}:e}async function CR(e){let t=typeof e=="string"||e instanceof URL?e:await e();return typeof t=="string"?new URL(t):t}async function Tm(e){let{url:t}=Du(e),r=await CR(t),n=r.searchParams.get("token");if(!n)throw new Error("No token provided in URL");let o=await Hs.decode({token:n});return{url:r,tokenString:n,tokenPayload:o.payload}}function Xn(e,t){switch(e.type){case"connectedUsers":{t.connectedUsersManager.connectedUsers$.set(e.users);break}case"ephemeralUserData":{t.ephemeralUserDataManager.merge(e.data);break}case"workflow":{t.workflowManager.status$.set(e.workflow.status),t.workflowManager.tasks$.set(e.workflow.tasks),t.workflowManager.result$.set(e.workflow.result);break}case"tasks":{t.taskManager.setTasks(e.tasks);break}case"secrets":{t.secretManager.secrets$.set(e.secrets),t.secretManager.isInitialized$.set(!0);break}case"assets":{t.assetManager.set(e.assets);break}}}function Ku(e={}){let{debug:t=!1,origin:r="*",messageHandler:n=Ys()}=e;return({noyaManager:o})=>{t&&console.info("[parentFrameSync] Initializing",o),o.assetManager.assetStore=new gn(o.rpcManager);let i=async S=>{t&&console.info("[parentFrameSync] receiving message",S.data);let E=S.data;switch(E.type){case"end":case"chunk":case"error":o.rpcManager.handleMessage(E);break;case"application.selectMenuItem":o.menuManager.emit(E.payload.value);break;case"connection":o.connectionEventManager.addEvent({type:"stateChange",state:E.state==="connected"?"OPEN":"CLOSED"});break;case"application.edit":o.multiplayerStateManager.applyPatch(E.payload);break;default:Xn(E,o),o.multiplayerStateManager.incomingMessages.push(E),o.multiplayerStateManager.processIncomingMessages(),o.connectionEventManager.addEvent({type:"receive",message:E});break}},a=o.menuManager.leftMenuItems$.subscribe(S=>{let T={type:"application.setMenuItems",payload:{menuItems:S,position:"left"}};window.parent?.postMessage(T,"*")}),c=o.menuManager.rightMenuItems$.subscribe(S=>{let T={type:"application.setMenuItems",payload:{menuItems:S,position:"right"}};window.parent?.postMessage(T,"*")}),p=S=>{let T=Lu(o.menuManager.allMenuItems$.get()).map(w=>{let A={command:()=>o.menuManager.emit(w.value)};return[w.shortcut,A]}),E=Fu(S.target);Uu(S,zs(navigator),T,{invokedWithinInput:E})};window.addEventListener("keydown",p);let f=()=>{window.removeEventListener("keydown",p)},l={type:"multiplayer.ready"};n.postMessage(l,r);let d=n.addMessageListener(i),b=o.multiplayerStateManager.messageEmitter.addListener(S=>{t&&console.info("[parentFrameSync] sending message",S),o.connectionEventManager.addEvent({type:"send",message:S});let T={type:"multiplayer.message",payload:S};n.postMessage(T,r)}),I=o.rpcManager.addListener(async S=>{if(!S.id){console.error("[parentFrameSync] RPC request has no id",S);return}let T={type:"rpc.request",payload:S};t&&console.info("[parentFrameSync] sending rpc request",T),n.postMessage(T,r)}),O=o.multiplayerStateManager.errorEmitter.addListener(S=>{o.connectionEventManager.addEvent({type:"error",error:S})});return o.multiplayerStateManager.connect(),o.rpcManager.setIsConnected(!0),()=>{t&&console.info("[parentFrameSync] Cleaning up"),d(),a(),c(),f(),b(),I(),O(),o.multiplayerStateManager.disconnect(),o.rpcManager.setIsConnected(!1)}}}s();function Ci(){return({noyaManager:e})=>{e.assetManager&&(e.assetManager.assetStore=new Kn),e.secretManager.isInitialized$.set(!0);let t=o=>{switch(o.type){case"init":{e.multiplayerStateManager.incomingMessages.push({type:"object",object:o.object,schema:o.schema}),e.multiplayerStateManager.processIncomingMessages();break}case"patch":{e.multiplayerStateManager.incomingMessages.push({type:"acceptPatch",id:o.id,patches:o.patches}),e.multiplayerStateManager.processIncomingMessages();break}}},r=e.multiplayerStateManager.messageEmitter.addListener(t),n=e.multiplayerStateManager.errorEmitter.addListener(o=>{e.connectionEventManager.addEvent({type:"error",error:o})});return e.multiplayerStateManager.connect(),()=>{r(),n(),e.multiplayerStateManager.disconnect()}}}s();s();s();async function*Xs(e,t){let{baseUrl:r,token:n,debug:o=!1}=t;try{let i=new URL(e.url,r);i.protocol=i.protocol==="ws:"?"http:":"https:",o&&console.info("Fetching RPC stream",{url:i.toString(),body:e.options.body});let a=await fetch(i,{...e.options,headers:{...e.options?.headers,...n?{Authorization:`Bearer ${n}`}:{}}});if(!a.ok)throw new Error(`RPC request failed: ${a.statusText}`);let c=a.body?.getReader(),p=new TextDecoder;if(!c)throw new Error("Stream not available");try{for(;;){let{done:f,value:l}=await c.read();if(f){yield{id:e.id,type:"end",response:{status:a.status,statusText:a.statusText,headers:Object.fromEntries(a.headers.entries()),body:""}};break}let d=p.decode(l);yield{id:e.id,type:"chunk",chunk:d}}}finally{c.releaseLock()}}catch(i){yield{id:e.id,type:"error",error:i instanceof Error?i.message:String(i)}}}async function Zs(e,t){let{baseUrl:r,token:n,debug:o=!1}=t;try{let i=new URL(e.url,r);i.protocol=i.protocol==="ws:"?"http:":"https:",o&&console.info("Fetching RPC",{url:i.toString(),body:e.options.body});let a=await fetch(i,{...e.options,headers:{...e.options?.headers,...n?{Authorization:`Bearer ${n}`}:{}}});if(!a.ok)throw new Error(`RPC request failed: ${a.statusText}`);let c=await a.text();return o&&console.info("RPC response",{text:c}),{id:e.id,type:"end",response:{status:a.status,statusText:a.statusText,headers:Object.fromEntries(a.headers.entries()),body:c}}}catch(i){return{id:e.id,type:"error",error:i instanceof Error?i.message:String(i)}}}function $u(e){let{debug:t=!1}=Du(e);return({noyaManager:r})=>{let n,o="full",i,a=Tm(e).then(({url:l,tokenString:d,tokenPayload:b})=>(n=b.id,o=b.connectionType,r.ephemeralUserDataManager.setCurrentUserId(n),r.connectedUsersManager.setCurrentUserId(n),r.assetManager&&(r.assetManager.assetStore=new gn(r.rpcManager)),i=new Zn(l,{debug:t,onConnectionEvent:I=>{switch(I.type){case"stateChange":{I.state==="OPEN"?(o==="full"&&r.multiplayerStateManager.connect(),r.rpcManager.setIsConnected(!0)):I.state==="CLOSED"&&(o==="full"&&r.multiplayerStateManager.disconnect(),r.rpcManager.setIsConnected(!1));break}case"receive":{r.connectionEventManager.addEvent(I);let O=I.message;Xn(O,r),o==="full"&&O.type!=="pong"&&(r.multiplayerStateManager.incomingMessages.push(O),r.multiplayerStateManager.processIncomingMessages());break}case"send":{r.connectionEventManager.addEvent(I);break}case"error":{r.connectionEventManager.addEvent(I);break}}}}),i.connect(),{url:l,tokenString:d,tokenPayload:b})),c=r.multiplayerStateManager.messageEmitter.addListener(l=>{o!=="rpc"&&i.send(l)}),p=r.ephemeralUserDataManager.currentUserDataEmitter.addListener(l=>{if(!n)return;let d={type:"setEphemeralUserData",userId:n,data:l};i.send(d)}),f=r.rpcManager.addListener(async l=>{let{url:d,tokenString:b}=await a;if(l.streaming){let I=Xs(l,{baseUrl:d.toString(),token:b,streaming:!0,debug:t});for await(let O of I)r.rpcManager.handleMessage(O)}else{let I=await Zs(l,{baseUrl:d.toString(),token:b,debug:t});r.rpcManager.handleMessage(I)}});return()=>{t&&console.info("Cleaning up webSocketSync"),i?i.close():a.then(()=>{i.close()}),c(),p(),f()}}}s();s();var Qn=class{constructor(t){this.onActivity=t}_activityHandler=()=>{this.onActivity?.()};addListeners(){typeof window>"u"||(window.addEventListener("mousemove",this._activityHandler),window.addEventListener("keydown",this._activityHandler),window.addEventListener("touchstart",this._activityHandler),window.addEventListener("click",this._activityHandler))}removeListeners(){typeof window>"u"||(window.removeEventListener("mousemove",this._activityHandler),window.removeEventListener("keydown",this._activityHandler),window.removeEventListener("touchstart",this._activityHandler),window.removeEventListener("click",this._activityHandler))}setOnActivity(t){this.onActivity=t}},eo=class extends we{websocket=null;timeoutHandle=null;reconnectTimeoutHandle=null;state="CONNECTING";attempt=0;options;url="";protocols;constructor(t={}){super(),this.options={reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:5e3,maxReconnectAttempts:5,...t},this.options.activityDetector&&this.options.activityDetector.setOnActivity(()=>{this.state==="MAX_ATTEMPTS_EXCEEDED"&&this.resetAndReconnect()})}transitionTo(t){switch(this.options.debug&&console.info(`Transitioning from ${this.state} to ${t}`),this.state=t,this.emit(this.state),this.state){case"CONNECTING":this.connect();break;case"OPEN":this.onOpen();break;case"CLOSING":this.onClosing();break;case"CLOSED":this.onClosed();break;case"RECONNECTING":this.onReconnecting();break;case"MAX_ATTEMPTS_EXCEEDED":this.onMaxAttemptsExceeded();break;case"SHUTDOWN":this.onShutdown();break}}connect(t=this.url,r){this.url=t,this.protocols=r,this.state==="CONNECTING"&&(this.websocket=new WebSocket(this.url,this.protocols),this.timeoutHandle=setTimeout(()=>{this.websocket&&this.websocket.readyState!==WebSocket.OPEN&&(this.options.debug&&console.info("Connection attempt timed out"),this.websocket.close())},this.options.timeoutInterval),this.websocket.onopen=n=>{this.state==="CLOSING"||this.state==="SHUTDOWN"?this.websocket?.close():(this.transitionTo("OPEN"),this.options.onopen?.(n))},this.websocket.onmessage=n=>{this.options.onmessage?.(n)},this.websocket.onclose=n=>{this.state!=="CLOSING"&&this.state!=="SHUTDOWN"&&this.transitionTo("CLOSED"),this.options.onclose?.(n)},this.websocket.onerror=n=>{this.options.onerror?.(n)})}onOpen(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=null),this.attempt=0}onClosing(){this.websocket?.close()}onClosed(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=null),this.reconnect()}onReconnecting(){if(this.attempt>=this.options.maxReconnectAttempts){this.options.debug&&console.info("Max reconnect attempts reached, not attempting to reconnect."),this.transitionTo("MAX_ATTEMPTS_EXCEEDED");return}let t=Math.min(this.options.reconnectInterval*Math.pow(this.options.reconnectDecay,this.attempt),this.options.maxReconnectInterval);this.options.debug&&console.info(`Reconnecting in ${t/1e3} seconds... (attempt ${this.attempt+1}/${this.options.maxReconnectAttempts})`),this.reconnectTimeoutHandle=setTimeout(()=>{this.attempt++,this.transitionTo("CONNECTING")},t)}onMaxAttemptsExceeded(){this.websocket?.close(),this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=null),this.reconnectTimeoutHandle&&(clearTimeout(this.reconnectTimeoutHandle),this.reconnectTimeoutHandle=null),this.websocket=null,this.options.activityDetector?.addListeners()}onShutdown(){this.websocket?.close(),this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=null),this.reconnectTimeoutHandle&&(clearTimeout(this.reconnectTimeoutHandle),this.reconnectTimeoutHandle=null),this.websocket=null,this.options.activityDetector?.removeListeners()}reconnect(){this.state!=="SHUTDOWN"&&this.transitionTo("RECONNECTING")}resetAndReconnect(){this.options.debug&&console.info("User activity detected after max attempts exceeded. Resetting attempts and reconnecting."),this.attempt=0,this.options.activityDetector?.removeListeners(),this.transitionTo("RECONNECTING")}send(t){this.websocket&&this.websocket.readyState===WebSocket.OPEN?this.websocket.send(t):this.websocket&&this.websocket.readyState===WebSocket.CONNECTING?setTimeout(()=>this.send(t),this.options.timeoutInterval):console.error("WebSocket is not open. Ready state:",this.websocket?.readyState)}close(){this.state!=="CLOSING"&&this.state!=="CLOSED"&&this.state!=="SHUTDOWN"&&this.transitionTo("CLOSING")}shutdown(){this.state!=="SHUTDOWN"&&this.transitionTo("SHUTDOWN")}};function NR(e){return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(e)}pt.Set("color",()=>!0);pt.Set("uuid",NR);s();s();s();var Cr=Y(require("react"));s();var Qs=Y(require("react"));function Bu(e,t="both"){let[r,n]=Qs.useState(void 0);return Qs.useEffect(()=>{if(e.current){let o=e.current,i=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;let c=a[0],p,f;if("borderBoxSize"in c){let l=c.borderBoxSize,d=Array.isArray(l)?l[0]:l;p=d.inlineSize,f=d.blockSize}else{let l=o.getBoundingClientRect();p=l.width,f=l.height}n(l=>l&&(l.width===p||t==="height")&&(l.height===f||t==="width")?l:{width:p,height:f})});return i.observe(o,{box:"border-box"}),()=>{n(void 0),i.unobserve(o)}}},[e,t]),r}var Om={display:"flex",flex:"1 0 0",flexDirection:"column"},AX=Cr.memo(function({children:t,className:r}){let n=Cr.useRef(null),o=Bu(n);return Cr.createElement("div",{ref:n,style:Om,className:r},o&&o.width>0&&o.height>0&&t(o))}),CX=Cr.memo(function({children:t,dimension:r,className:n}){let o=Cr.useRef(null),i=Bu(o,r);return Cr.createElement("div",{ref:o,style:Om,className:n},i&&i[r]>0&&t(i[r]))});s();var to=Y(require("react"));s();var Sn=require("react");function Em(e,t){let[r,n]=(0,Sn.useState)(!1),o=(0,Sn.useCallback)(p=>{p.preventDefault()},[]),i=(0,Sn.useCallback)(p=>{p.preventDefault(),e.current?.contains(p.relatedTarget)||n(!0)},[e]),a=(0,Sn.useCallback)(p=>{p.preventDefault(),e.current?.contains(p.relatedTarget)||n(!1)},[e]),c=(0,Sn.useCallback)(p=>{p.preventDefault(),t(p),n(!1)},[t]);return{dropTargetProps:{onDragOver:o,onDragEnter:i,onDragLeave:a,onDrop:c},isDropTargetActive:r}}s();var Hu=require("react");var In=Hu.memo;function Pm(e,t){return t.includes(e.type)||e.type===""&&e.name.endsWith(".sketch")}var HX=In(function({children:t,onDropFiles:r,supportedFileTypes:n,...o}){let i=(0,to.useRef)(null),a=(0,to.useCallback)(f=>{f.preventDefault();let l={offsetX:f.nativeEvent.offsetX,offsetY:f.nativeEvent.offsetY},d=Array.from(f.dataTransfer.files).flatMap(I=>Pm(I,n)?[]:[I.type]);d.length>0&&alert(`Files of type ${d.join(", ")} aren't supported. The following types are supported: ${n.join(", ")}`);let b=Array.from(f.dataTransfer.files).flatMap(I=>Pm(I,n)?[I]:[]);r(b,l)},[r,n]),{dropTargetProps:c,isDropTargetActive:p}=Em(i,a);return to.default.createElement("div",{ref:i,...c,...o},typeof t=="function"?t(p):t)});s();var vR=require("react");s();var Gu=require("react");s();var Mm=require("react");s();s();var wm=require("react");s();var Vu=require("react");s();var UR=require("react");s();var zu=require("react");s();var ea=require("react");s();var Rm=require("react");s();s();s();var jR=require("react");s();var qu=require("react");s();var Am=require("react");s();var Cm=require("react");s();s();var Wu=class{getItem(t){return typeof localStorage>"u"?null:localStorage.getItem(t)}setItem(t,r){typeof localStorage>"u"||(r===null?localStorage.removeItem(t):localStorage.setItem(t,r),this.emitter.emit(t,r))}emitter=new we;_isListening=!1;addListener(t,r){return!this._isListening&&typeof window<"u"&&(this._isListening=!0,window.addEventListener("storage",n=>{this.emitter.emit(n.key,n.newValue)})),this.emitter.addListener((n,o)=>{n===t&&r(o)})}},HZ=new Wu;s();s();var Hr=Y(require("react"));s();var ta=require("react");function X(e,t,r){let{get:n,listen:o}=(0,ta.useMemo)(()=>{if(!e)return{get:()=>{},listen:()=>()=>{}};if(typeof t=="function"){let c=e.map(t,{isEqual:r?.isEqual});return{get:c.get,listen:c.subscribe}}let i=t?c=>e.subscribe(t,c):e.subscribe;return{get:t?()=>e.get(t):e.get,listen:i}},[e,t,r?.isEqual]);return(0,ta.useSyncExternalStore)(o,n,n)}function LR(e,t){return!!t&&Date.now()-t<e}var DR=In(function({user:t,ephemeralUserDataManager:r,hideAfter:n=5e3,renderUserPointer:o}){let i=X(r.metadata$,[t.id]),a=X(r.data$,[t.id]),[,c]=(0,Hr.useState)(0),p=i?.updatedAt??0,f=LR(n,p);return(0,Hr.useEffect)(()=>{if(!f)return;let l=setTimeout(()=>{c(d=>d+1)},n);return()=>clearTimeout(l)},[n,f,p]),a?.pointer?o({userId:t.id,name:t.name,point:a.pointer,visible:f}):null}),KR=In(function({connectedUsersManager:t,ephemeralUserDataManager:r,renderUserPointer:n}){let o=X(r.currentUserId$),i=X(t.connectedUsers$);return Hr.default.createElement(Hr.default.Fragment,null,i.map(a=>a.id===o?null:Hr.default.createElement(DR,{key:a.id,user:a,ephemeralUserDataManager:r,renderUserPointer:n})))});s();var $e=require("react"),ty=Y(Yu());s();var Xe=Y(require("react")),_m=Xe.memo(function({error:t}){return Xe.createElement("div",{style:{position:"fixed",top:"20px",left:"50%",transform:"translateX(-50%)",maxWidth:"80%",width:"fit-content",padding:"12px 20px",background:"white",color:"black",zIndex:1e4,display:"flex",flexDirection:"column",justifyContent:"center",borderRadius:"4px",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",fontFamily:"'__Inter_6b0edc', '__Inter_Fallback_6b0edc', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",fontSize:"14px",fontWeight:400,lineHeight:"19px"}},t.reason==="schemaMigration"?Xe.createElement(Xe.Fragment,null,Xe.createElement("p",null,"An updated version of Noya is available. Please reload the page to continue.")):Xe.createElement(Xe.Fragment,null,Xe.createElement("p",null,"An error occurred:"," ",Xe.createElement("code",{style:{background:"rgba(255, 0, 0, 0.1)",color:"rgba(255, 0, 0, 0.5)",padding:"2px 4px",borderRadius:"4px"}},t.reason),". Please reload the page to continue.",Xe.createElement("br",null),Xe.createElement("br",null),"If this happens repeatedly, please get in touch and the Noya team can help.")),Xe.createElement("div",{style:{height:"1px",background:"rgba(0, 0, 0, 0.1)",margin:"12px -20px"}}),Xe.createElement("button",{style:{background:"black",color:"white",padding:"8px 16px",borderRadius:"4px",cursor:"pointer",fontSize:"14px",fontWeight:700,lineHeight:"19px"},onClick:()=>{window.location.reload()}},"Reload"))});s();var oo=Y(require("react")),Qm=Y(Yu());s();var x=Y(require("react"));s();var ia=Y(require("react"),1),ze=Y(require("react"),1),Lm=require("react"),Nt=Y(require("react"),1),Nr=Y(require("react"),1),ro=Y(require("react"),1),Hm=Y(require("react"),1),Ze=Y(require("react"),1),Ke=Y(require("react"),1),no=Y(require("react"),1),dr=Y(require("react"),1),lr=Y(require("react"),1),Tn=Y(require("react"),1),Ht=Y(require("react"),1),Vm=Y(require("react"),1),Ne=Y(require("react"),1),xA=Y(require("react"),1),$R=Object.create,ep=Object.defineProperty,BR=Object.getOwnPropertyDescriptor,jm=Object.getOwnPropertyNames,HR=Object.getPrototypeOf,GR=Object.prototype.hasOwnProperty,tp=(e,t)=>function(){return t||(0,e[jm(e)[0]])((t={exports:{}}).exports,t),t.exports},VR=(e,t)=>{for(var r in t)ep(e,r,{get:t[r],enumerable:!0})},zR=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of jm(t))!GR.call(e,o)&&o!==r&&ep(e,o,{get:()=>t[o],enumerable:!(n=BR(t,o))||n.enumerable});return e},qR=(e,t,r)=>(r=e!=null?$R(HR(e)):{},zR(t||!e||!e.__esModule?ep(r,"default",{value:e,enumerable:!0}):r,e)),WR=tp({"node_modules/is-object/index.js"(e,t){"use strict";t.exports=function(n){return typeof n=="object"&&n!==null}}}),JR=tp({"node_modules/is-window/index.js"(e,t){"use strict";t.exports=function(r){if(r==null)return!1;var n=Object(r);return n===n.window}}}),YR=tp({"node_modules/is-dom/index.js"(e,t){var r=WR(),n=JR();function o(i){return!r(i)||!n(window)||typeof window.Node!="function"?!1:typeof i.nodeType=="number"&&typeof i.nodeName=="string"}t.exports=o}}),oa={};VR(oa,{chromeDark:()=>rp,chromeLight:()=>np});var rp={BASE_FONT_FAMILY:"Menlo, monospace",BASE_FONT_SIZE:"11px",BASE_LINE_HEIGHT:1.2,BASE_BACKGROUND_COLOR:"rgb(36, 36, 36)",BASE_COLOR:"rgb(213, 213, 213)",OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES:10,OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES:5,OBJECT_NAME_COLOR:"rgb(227, 110, 236)",OBJECT_VALUE_NULL_COLOR:"rgb(127, 127, 127)",OBJECT_VALUE_UNDEFINED_COLOR:"rgb(127, 127, 127)",OBJECT_VALUE_REGEXP_COLOR:"rgb(233, 63, 59)",OBJECT_VALUE_STRING_COLOR:"rgb(233, 63, 59)",OBJECT_VALUE_SYMBOL_COLOR:"rgb(233, 63, 59)",OBJECT_VALUE_NUMBER_COLOR:"hsl(252, 100%, 75%)",OBJECT_VALUE_BOOLEAN_COLOR:"hsl(252, 100%, 75%)",OBJECT_VALUE_FUNCTION_PREFIX_COLOR:"rgb(85, 106, 242)",HTML_TAG_COLOR:"rgb(93, 176, 215)",HTML_TAGNAME_COLOR:"rgb(93, 176, 215)",HTML_TAGNAME_TEXT_TRANSFORM:"lowercase",HTML_ATTRIBUTE_NAME_COLOR:"rgb(155, 187, 220)",HTML_ATTRIBUTE_VALUE_COLOR:"rgb(242, 151, 102)",HTML_COMMENT_COLOR:"rgb(137, 137, 137)",HTML_DOCTYPE_COLOR:"rgb(192, 192, 192)",ARROW_COLOR:"rgb(145, 145, 145)",ARROW_MARGIN_RIGHT:3,ARROW_FONT_SIZE:12,ARROW_ANIMATION_DURATION:"0",TREENODE_FONT_FAMILY:"Menlo, monospace",TREENODE_FONT_SIZE:"11px",TREENODE_LINE_HEIGHT:1.2,TREENODE_PADDING_LEFT:12,TABLE_BORDER_COLOR:"rgb(85, 85, 85)",TABLE_TH_BACKGROUND_COLOR:"rgb(44, 44, 44)",TABLE_TH_HOVER_COLOR:"rgb(48, 48, 48)",TABLE_SORT_ICON_COLOR:"black",TABLE_DATA_BACKGROUND_IMAGE:"linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0) 50%, rgba(51, 139, 255, 0.0980392) 50%, rgba(51, 139, 255, 0.0980392))",TABLE_DATA_BACKGROUND_SIZE:"128px 32px"},np={BASE_FONT_FAMILY:"Menlo, monospace",BASE_FONT_SIZE:"11px",BASE_LINE_HEIGHT:1.2,BASE_BACKGROUND_COLOR:"white",BASE_COLOR:"black",OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES:10,OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES:5,OBJECT_NAME_COLOR:"rgb(136, 19, 145)",OBJECT_VALUE_NULL_COLOR:"rgb(128, 128, 128)",OBJECT_VALUE_UNDEFINED_COLOR:"rgb(128, 128, 128)",OBJECT_VALUE_REGEXP_COLOR:"rgb(196, 26, 22)",OBJECT_VALUE_STRING_COLOR:"rgb(196, 26, 22)",OBJECT_VALUE_SYMBOL_COLOR:"rgb(196, 26, 22)",OBJECT_VALUE_NUMBER_COLOR:"rgb(28, 0, 207)",OBJECT_VALUE_BOOLEAN_COLOR:"rgb(28, 0, 207)",OBJECT_VALUE_FUNCTION_PREFIX_COLOR:"rgb(13, 34, 170)",HTML_TAG_COLOR:"rgb(168, 148, 166)",HTML_TAGNAME_COLOR:"rgb(136, 18, 128)",HTML_TAGNAME_TEXT_TRANSFORM:"lowercase",HTML_ATTRIBUTE_NAME_COLOR:"rgb(153, 69, 0)",HTML_ATTRIBUTE_VALUE_COLOR:"rgb(26, 26, 166)",HTML_COMMENT_COLOR:"rgb(35, 110, 37)",HTML_DOCTYPE_COLOR:"rgb(192, 192, 192)",ARROW_COLOR:"#6e6e6e",ARROW_MARGIN_RIGHT:3,ARROW_FONT_SIZE:12,ARROW_ANIMATION_DURATION:"0",TREENODE_FONT_FAMILY:"Menlo, monospace",TREENODE_FONT_SIZE:"11px",TREENODE_LINE_HEIGHT:1.2,TREENODE_PADDING_LEFT:12,TABLE_BORDER_COLOR:"#aaa",TABLE_TH_BACKGROUND_COLOR:"#eee",TABLE_TH_HOVER_COLOR:"hsla(0, 0%, 90%, 1)",TABLE_SORT_ICON_COLOR:"#6e6e6e",TABLE_DATA_BACKGROUND_IMAGE:"linear-gradient(to bottom, white, white 50%, rgb(234, 243, 255) 50%, rgb(234, 243, 255))",TABLE_DATA_BACKGROUND_SIZE:"128px 32px"},Dm=(0,Lm.createContext)([{},()=>{}]),Xu={WebkitTouchCallout:"none",WebkitUserSelect:"none",KhtmlUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",OUserSelect:"none",userSelect:"none"},ra=e=>({DOMNodePreview:{htmlOpenTag:{base:{color:e.HTML_TAG_COLOR},tagName:{color:e.HTML_TAGNAME_COLOR,textTransform:e.HTML_TAGNAME_TEXT_TRANSFORM},htmlAttributeName:{color:e.HTML_ATTRIBUTE_NAME_COLOR},htmlAttributeValue:{color:e.HTML_ATTRIBUTE_VALUE_COLOR}},htmlCloseTag:{base:{color:e.HTML_TAG_COLOR},offsetLeft:{marginLeft:-e.TREENODE_PADDING_LEFT},tagName:{color:e.HTML_TAGNAME_COLOR,textTransform:e.HTML_TAGNAME_TEXT_TRANSFORM}},htmlComment:{color:e.HTML_COMMENT_COLOR},htmlDoctype:{color:e.HTML_DOCTYPE_COLOR}},ObjectPreview:{objectDescription:{fontStyle:"italic"},preview:{fontStyle:"italic"},arrayMaxProperties:e.OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES,objectMaxProperties:e.OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES},ObjectName:{base:{color:e.OBJECT_NAME_COLOR},dimmed:{opacity:.6}},ObjectValue:{objectValueNull:{color:e.OBJECT_VALUE_NULL_COLOR},objectValueUndefined:{color:e.OBJECT_VALUE_UNDEFINED_COLOR},objectValueRegExp:{color:e.OBJECT_VALUE_REGEXP_COLOR},objectValueString:{color:e.OBJECT_VALUE_STRING_COLOR},objectValueSymbol:{color:e.OBJECT_VALUE_SYMBOL_COLOR},objectValueNumber:{color:e.OBJECT_VALUE_NUMBER_COLOR},objectValueBoolean:{color:e.OBJECT_VALUE_BOOLEAN_COLOR},objectValueFunctionPrefix:{color:e.OBJECT_VALUE_FUNCTION_PREFIX_COLOR,fontStyle:"italic"},objectValueFunctionName:{fontStyle:"italic"}},TreeView:{treeViewOutline:{padding:0,margin:0,listStyleType:"none"}},TreeNode:{treeNodeBase:{color:e.BASE_COLOR,backgroundColor:e.BASE_BACKGROUND_COLOR,lineHeight:e.TREENODE_LINE_HEIGHT,cursor:"default",boxSizing:"border-box",listStyle:"none",fontFamily:e.TREENODE_FONT_FAMILY,fontSize:e.TREENODE_FONT_SIZE},treeNodePreviewContainer:{},treeNodePlaceholder:{whiteSpace:"pre",fontSize:e.ARROW_FONT_SIZE,marginRight:e.ARROW_MARGIN_RIGHT,...Xu},treeNodeArrow:{base:{color:e.ARROW_COLOR,display:"inline-block",fontSize:e.ARROW_FONT_SIZE,marginRight:e.ARROW_MARGIN_RIGHT,...parseFloat(e.ARROW_ANIMATION_DURATION)>0?{transition:`transform ${e.ARROW_ANIMATION_DURATION} ease 0s`}:{},...Xu},expanded:{WebkitTransform:"rotateZ(90deg)",MozTransform:"rotateZ(90deg)",transform:"rotateZ(90deg)"},collapsed:{WebkitTransform:"rotateZ(0deg)",MozTransform:"rotateZ(0deg)",transform:"rotateZ(0deg)"}},treeNodeChildNodesContainer:{margin:0,paddingLeft:e.TREENODE_PADDING_LEFT}},TableInspector:{base:{color:e.BASE_COLOR,position:"relative",border:`1px solid ${e.TABLE_BORDER_COLOR}`,fontFamily:e.BASE_FONT_FAMILY,fontSize:e.BASE_FONT_SIZE,lineHeight:"120%",boxSizing:"border-box",cursor:"default"}},TableInspectorHeaderContainer:{base:{top:0,height:"17px",left:0,right:0,overflowX:"hidden"},table:{tableLayout:"fixed",borderSpacing:0,borderCollapse:"separate",height:"100%",width:"100%",margin:0}},TableInspectorDataContainer:{tr:{display:"table-row"},td:{boxSizing:"border-box",border:"none",height:"16px",verticalAlign:"top",padding:"1px 4px",WebkitUserSelect:"text",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",lineHeight:"14px"},div:{position:"static",top:"17px",bottom:0,overflowY:"overlay",transform:"translateZ(0)",left:0,right:0,overflowX:"hidden"},table:{positon:"static",left:0,top:0,right:0,bottom:0,borderTop:"0 none transparent",margin:0,backgroundImage:e.TABLE_DATA_BACKGROUND_IMAGE,backgroundSize:e.TABLE_DATA_BACKGROUND_SIZE,tableLayout:"fixed",borderSpacing:0,borderCollapse:"separate",width:"100%",fontSize:e.BASE_FONT_SIZE,lineHeight:"120%"}},TableInspectorTH:{base:{position:"relative",height:"auto",textAlign:"left",backgroundColor:e.TABLE_TH_BACKGROUND_COLOR,borderBottom:`1px solid ${e.TABLE_BORDER_COLOR}`,fontWeight:"normal",verticalAlign:"middle",padding:"0 4px",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",lineHeight:"14px",":hover":{backgroundColor:e.TABLE_TH_HOVER_COLOR}},div:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",fontSize:e.BASE_FONT_SIZE,lineHeight:"120%"}},TableInspectorLeftBorder:{none:{borderLeft:"none"},solid:{borderLeft:`1px solid ${e.TABLE_BORDER_COLOR}`}},TableInspectorSortIcon:{display:"block",marginRight:3,width:8,height:7,marginTop:-7,color:e.TABLE_SORT_ICON_COLOR,fontSize:12,...Xu}}),Zu="chromeLight",Km=(0,Nr.createContext)(ra(oa[Zu])),_t=e=>(0,Nr.useContext)(Km)[e],op=e=>({theme:r=Zu,...n})=>{let o=(0,Nr.useMemo)(()=>{switch(Object.prototype.toString.call(r)){case"[object String]":return ra(oa[r]);case"[object Object]":return ra(r);default:return ra(oa[Zu])}},[r]);return Nr.default.createElement(Km.Provider,{value:o},Nr.default.createElement(e,{...n}))},XR=({expanded:e,styles:t})=>Nt.default.createElement("span",{style:{...t.base,...e?t.expanded:t.collapsed}},"\u25B6"),ZR=(0,Nt.memo)(e=>{e={expanded:!0,nodeRenderer:({name:l})=>Nt.default.createElement("span",null,l),onClick:()=>{},shouldShowArrow:!1,shouldShowPlaceholder:!0,...e};let{expanded:t,onClick:r,children:n,nodeRenderer:o,title:i,shouldShowArrow:a,shouldShowPlaceholder:c}=e,p=_t("TreeNode"),f=o;return Nt.default.createElement("li",{"aria-expanded":t,role:"treeitem",style:p.treeNodeBase,title:i},Nt.default.createElement("div",{style:p.treeNodePreviewContainer,onClick:r},a||Nt.Children.count(n)>0?Nt.default.createElement(XR,{expanded:t,styles:p.treeNodeArrow}):c&&Nt.default.createElement("span",{style:p.treeNodePlaceholder},"\xA0"),Nt.default.createElement(f,{...e})),Nt.default.createElement("ol",{role:"group",style:p.treeNodeChildNodesContainer},t?n:void 0))}),sa="$",vm="*";function na(e,t){return!t(e).next().done}var QR=e=>Array.from({length:e},(t,r)=>[sa].concat(Array.from({length:r},()=>"*")).join(".")),eA=(e,t,r,n,o)=>{let i=[].concat(QR(n)).concat(r).filter(c=>typeof c=="string"),a=[];return i.forEach(c=>{let p=c.split("."),f=(l,d,b)=>{if(b===p.length){a.push(d);return}let I=p[b];if(b===0)na(l,t)&&(I===sa||I===vm)&&f(l,sa,b+1);else if(I===vm)for(let{name:O,data:S}of t(l))na(S,t)&&f(S,`${d}.${O}`,b+1);else{let O=l[I];na(O,t)&&f(O,`${d}.${I}`,b+1)}};f(e,"",0)}),a.reduce((c,p)=>(c[p]=!0,c),{...o})},$m=(0,ze.memo)(e=>{let{data:t,dataIterator:r,path:n,depth:o,nodeRenderer:i}=e,[a,c]=(0,ze.useContext)(Dm),p=na(t,r),f=!!a[n],l=(0,ze.useCallback)(()=>p&&c(d=>({...d,[n]:!f})),[p,c,n,f]);return ze.default.createElement(ZR,{expanded:f,onClick:l,shouldShowArrow:p,shouldShowPlaceholder:o>0,nodeRenderer:i,...e},f?[...r(t)].map(({name:d,data:b,...I})=>ze.default.createElement($m,{name:d,data:b,depth:o+1,path:`${n}.${d}`,key:d,dataIterator:r,nodeRenderer:i,...I})):null)}),Bm=(0,ze.memo)(({name:e,data:t,dataIterator:r,nodeRenderer:n,expandPaths:o,expandLevel:i})=>{let a=_t("TreeView"),c=(0,ze.useState)({}),[,p]=c;return(0,ze.useLayoutEffect)(()=>p(f=>eA(t,r,o,i,f)),[t,r,o,i]),ze.default.createElement(Dm.Provider,{value:c},ze.default.createElement("ol",{role:"tree",style:a.treeViewOutline},ze.default.createElement($m,{name:e,data:t,dataIterator:r,depth:0,path:sa,nodeRenderer:n})))}),_i=({name:e,dimmed:t=!1,styles:r={}})=>{let n=_t("ObjectName"),o={...n.base,...t?n.dimmed:{},...r};return Hm.default.createElement("span",{style:o},e)},Ni=({object:e,styles:t})=>{let r=_t("ObjectValue"),n=o=>({...r[o],...t});switch(typeof e){case"bigint":return Ke.default.createElement("span",{style:n("objectValueNumber")},String(e),"n");case"number":return Ke.default.createElement("span",{style:n("objectValueNumber")},String(e));case"string":return Ke.default.createElement("span",{style:n("objectValueString")},'"',e,'"');case"boolean":return Ke.default.createElement("span",{style:n("objectValueBoolean")},String(e));case"undefined":return Ke.default.createElement("span",{style:n("objectValueUndefined")},"undefined");case"object":return e===null?Ke.default.createElement("span",{style:n("objectValueNull")},"null"):e instanceof Date?Ke.default.createElement("span",null,e.toString()):e instanceof RegExp?Ke.default.createElement("span",{style:n("objectValueRegExp")},e.toString()):Array.isArray(e)?Ke.default.createElement("span",null,`Array(${e.length})`):e.constructor?typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)?Ke.default.createElement("span",null,`Buffer[${e.length}]`):Ke.default.createElement("span",null,e.constructor.name):Ke.default.createElement("span",null,"Object");case"function":return Ke.default.createElement("span",null,Ke.default.createElement("span",{style:n("objectValueFunctionPrefix")},"\u0192\xA0"),Ke.default.createElement("span",{style:n("objectValueFunctionName")},e.name,"()"));case"symbol":return Ke.default.createElement("span",{style:n("objectValueSymbol")},e.toString());default:return Ke.default.createElement("span",null)}},Gm=Object.prototype.hasOwnProperty,tA=Object.prototype.propertyIsEnumerable;function Qu(e,t){let r=Object.getOwnPropertyDescriptor(e,t);if(r.get)try{return r.get()}catch{return r.get}return e[t]}function km(e,t){return e.length===0?[]:e.slice(1).reduce((r,n)=>r.concat([t,n]),[e[0]])}var On=({data:e})=>{let t=_t("ObjectPreview"),r=e;if(typeof r!="object"||r===null||r instanceof Date||r instanceof RegExp)return Ze.default.createElement(Ni,{object:r});if(Array.isArray(r)){let n=t.arrayMaxProperties,o=r.slice(0,n).map((a,c)=>Ze.default.createElement(Ni,{key:c,object:a}));r.length>n&&o.push(Ze.default.createElement("span",{key:"ellipsis"},"\u2026"));let i=r.length;return Ze.default.createElement(Ze.default.Fragment,null,Ze.default.createElement("span",{style:t.objectDescription},i===0?"":`(${i})\xA0`),Ze.default.createElement("span",{style:t.preview},"[",km(o,", "),"]"))}else{let n=t.objectMaxProperties,o=[];for(let a in r)if(Gm.call(r,a)){let c;o.length===n-1&&Object.keys(r).length>n&&(c=Ze.default.createElement("span",{key:"ellipsis"},"\u2026"));let p=Qu(r,a);if(o.push(Ze.default.createElement("span",{key:a},Ze.default.createElement(_i,{name:a||'""'}),":\xA0",Ze.default.createElement(Ni,{object:p}),c)),c)break}let i=r.constructor?r.constructor.name:"Object";return Ze.default.createElement(Ze.default.Fragment,null,Ze.default.createElement("span",{style:t.objectDescription},i==="Object"?"":`${i} `),Ze.default.createElement("span",{style:t.preview},"{",km(o,", "),"}"))}},rA=({name:e,data:t})=>typeof e=="string"?ro.default.createElement("span",null,ro.default.createElement(_i,{name:e}),ro.default.createElement("span",null,": "),ro.default.createElement(On,{data:t})):ro.default.createElement(On,{data:t}),ip=({name:e,data:t,isNonenumerable:r=!1})=>{let n=t;return no.default.createElement("span",null,typeof e=="string"?no.default.createElement(_i,{name:e,dimmed:r}):no.default.createElement(On,{data:e}),no.default.createElement("span",null,": "),no.default.createElement(Ni,{object:n}))},nA=(e,t)=>function*(n){if(!(typeof n=="object"&&n!==null||typeof n=="function"))return;let i=Array.isArray(n);if(!i&&n[Symbol.iterator]){let a=0;for(let c of n){if(Array.isArray(c)&&c.length===2){let[p,f]=c;yield{name:p,data:f}}else yield{name:a.toString(),data:c};a++}}else{let a=Object.getOwnPropertyNames(n);t===!0&&!i?a.sort():typeof t=="function"&&a.sort(t);for(let c of a)if(tA.call(n,c)){let p=Qu(n,c);yield{name:c||'""',data:p}}else if(e){let p;try{p=Qu(n,c)}catch{}p!==void 0&&(yield{name:c,data:p,isNonenumerable:!0})}e&&n!==Object.prototype&&(yield{name:"__proto__",data:Object.getPrototypeOf(n),isNonenumerable:!0})}},oA=({depth:e,name:t,data:r,isNonenumerable:n})=>e===0?ia.default.createElement(rA,{name:t,data:r}):ia.default.createElement(ip,{name:t,data:r,isNonenumerable:n}),iA=({showNonenumerable:e=!1,sortObjectKeys:t,nodeRenderer:r,...n})=>{let o=nA(e,t),i=r||oA;return ia.default.createElement(Bm,{nodeRenderer:i,dataIterator:o,...n})},mr=op(iA);function sA(e){if(typeof e=="object"){let t=[];if(Array.isArray(e)){let n=e.length;t=[...Array(n).keys()]}else e!==null&&(t=Object.keys(e));let r=t.reduce((n,o)=>{let i=e[o];return typeof i=="object"&&i!==null&&Object.keys(i).reduce((c,p)=>(c.includes(p)||c.push(p),c),n),n},[]);return{rowHeaders:t,colHeaders:r}}}var aA=({rows:e,columns:t,rowsData:r})=>{let n=_t("TableInspectorDataContainer"),o=_t("TableInspectorLeftBorder");return lr.default.createElement("div",{style:n.div},lr.default.createElement("table",{style:n.table},lr.default.createElement("colgroup",null),lr.default.createElement("tbody",null,e.map((i,a)=>lr.default.createElement("tr",{key:i,style:n.tr},lr.default.createElement("td",{style:{...n.td,...o.none}},i),t.map(c=>{let p=r[a];return typeof p=="object"&&p!==null&&Gm.call(p,c)?lr.default.createElement("td",{key:c,style:{...n.td,...o.solid}},lr.default.createElement(Ni,{object:p[c]})):lr.default.createElement("td",{key:c,style:{...n.td,...o.solid}})}))))))},cA=e=>Ht.default.createElement("div",{style:{position:"absolute",top:1,right:0,bottom:1,display:"flex",alignItems:"center"}},e.children),uA=({sortAscending:e})=>{let t=_t("TableInspectorSortIcon"),r=e?"\u25B2":"\u25BC";return Ht.default.createElement("div",{style:t},r)},Um=({sortAscending:e=!1,sorted:t=!1,onClick:r=void 0,borderStyle:n={},children:o,...i})=>{let a=_t("TableInspectorTH"),[c,p]=(0,Ht.useState)(!1),f=(0,Ht.useCallback)(()=>p(!0),[]),l=(0,Ht.useCallback)(()=>p(!1),[]);return Ht.default.createElement("th",{...i,style:{...a.base,...n,...c?a.base[":hover"]:{}},onMouseEnter:f,onMouseLeave:l,onClick:r},Ht.default.createElement("div",{style:a.div},o),t&&Ht.default.createElement(cA,null,Ht.default.createElement(uA,{sortAscending:e})))},pA=({indexColumnText:e="(index)",columns:t=[],sorted:r,sortIndexColumn:n,sortColumn:o,sortAscending:i,onTHClick:a,onIndexTHClick:c})=>{let p=_t("TableInspectorHeaderContainer"),f=_t("TableInspectorLeftBorder");return Tn.default.createElement("div",{style:p.base},Tn.default.createElement("table",{style:p.table},Tn.default.createElement("tbody",null,Tn.default.createElement("tr",null,Tn.default.createElement(Um,{borderStyle:f.none,sorted:r&&n,sortAscending:i,onClick:c},e),t.map(l=>Tn.default.createElement(Um,{borderStyle:f.solid,key:l,sorted:r&&o===l,sortAscending:i,onClick:a.bind(null,l)},l))))))},fA=({data:e,columns:t})=>{let r=_t("TableInspector"),[{sorted:n,sortIndexColumn:o,sortColumn:i,sortAscending:a},c]=(0,dr.useState)({sorted:!1,sortIndexColumn:!1,sortColumn:void 0,sortAscending:!1}),p=(0,dr.useCallback)(()=>{c(({sortIndexColumn:O,sortAscending:S})=>({sorted:!0,sortIndexColumn:!0,sortColumn:void 0,sortAscending:O?!S:!0}))},[]),f=(0,dr.useCallback)(O=>{c(({sortColumn:S,sortAscending:T})=>({sorted:!0,sortIndexColumn:!1,sortColumn:O,sortAscending:O===S?!T:!0}))},[]);if(typeof e!="object"||e===null)return dr.default.createElement("div",null);let{rowHeaders:l,colHeaders:d}=sA(e);t!==void 0&&(d=t);let b=l.map(O=>e[O]),I;if(i!==void 0?I=b.map((O,S)=>typeof O=="object"&&O!==null?[O[i],S]:[void 0,S]):o&&(I=l.map((O,S)=>[l[S],S])),I!==void 0){let O=(T,E)=>(w,A)=>{let N=T(w),R=T(A),F=typeof N,oe=typeof R,Ie=(qr,Ui)=>qr<Ui?-1:qr>Ui?1:0,gr;if(F===oe)gr=Ie(N,R);else{let qr={string:0,number:1,object:2,symbol:3,boolean:4,undefined:5,function:6};gr=Ie(qr[F],qr[oe])}return E||(gr=-gr),gr},S=I.sort(O(T=>T[0],a)).map(T=>T[1]);l=S.map(T=>l[T]),b=S.map(T=>b[T])}return dr.default.createElement("div",{style:r.base},dr.default.createElement(pA,{columns:d,sorted:n,sortIndexColumn:o,sortColumn:i,sortAscending:a,onTHClick:f,onIndexTHClick:p}),dr.default.createElement(aA,{rows:l,columns:d,rowsData:b}))},vQ=op(fA),lA=80,zm=e=>e.childNodes.length===0||e.childNodes.length===1&&e.childNodes[0].nodeType===Node.TEXT_NODE&&e.textContent.length<lA,dA=({tagName:e,attributes:t,styles:r})=>Ne.default.createElement("span",{style:r.base},"<",Ne.default.createElement("span",{style:r.tagName},e),(()=>{if(t){let n=[];for(let o=0;o<t.length;o++){let i=t[o];n.push(Ne.default.createElement("span",{key:o}," ",Ne.default.createElement("span",{style:r.htmlAttributeName},i.name),'="',Ne.default.createElement("span",{style:r.htmlAttributeValue},i.value),'"'))}return n}})(),">"),Fm=({tagName:e,isChildNode:t=!1,styles:r})=>Ne.default.createElement("span",{style:Object.assign({},r.base,t&&r.offsetLeft)},"</",Ne.default.createElement("span",{style:r.tagName},e),">"),mA={1:"ELEMENT_NODE",3:"TEXT_NODE",7:"PROCESSING_INSTRUCTION_NODE",8:"COMMENT_NODE",9:"DOCUMENT_NODE",10:"DOCUMENT_TYPE_NODE",11:"DOCUMENT_FRAGMENT_NODE"},yA=({isCloseTag:e,data:t,expanded:r})=>{let n=_t("DOMNodePreview");if(e)return Ne.default.createElement(Fm,{styles:n.htmlCloseTag,isChildNode:!0,tagName:t.tagName});switch(t.nodeType){case Node.ELEMENT_NODE:return Ne.default.createElement("span",null,Ne.default.createElement(dA,{tagName:t.tagName,attributes:t.attributes,styles:n.htmlOpenTag}),zm(t)?t.textContent:!r&&"\u2026",!r&&Ne.default.createElement(Fm,{tagName:t.tagName,styles:n.htmlCloseTag}));case Node.TEXT_NODE:return Ne.default.createElement("span",null,t.textContent);case Node.CDATA_SECTION_NODE:return Ne.default.createElement("span",null,"<![CDATA["+t.textContent+"]]>");case Node.COMMENT_NODE:return Ne.default.createElement("span",{style:n.htmlComment},"<!--",t.textContent,"-->");case Node.PROCESSING_INSTRUCTION_NODE:return Ne.default.createElement("span",null,t.nodeName);case Node.DOCUMENT_TYPE_NODE:return Ne.default.createElement("span",{style:n.htmlDoctype},"<!DOCTYPE ",t.name,t.publicId?` PUBLIC "${t.publicId}"`:"",!t.publicId&&t.systemId?" SYSTEM":"",t.systemId?` "${t.systemId}"`:"",">");case Node.DOCUMENT_NODE:return Ne.default.createElement("span",null,t.nodeName);case Node.DOCUMENT_FRAGMENT_NODE:return Ne.default.createElement("span",null,t.nodeName);default:return Ne.default.createElement("span",null,mA[t.nodeType])}},gA=function*(e){if(e&&e.childNodes){if(zm(e))return;for(let r=0;r<e.childNodes.length;r++){let n=e.childNodes[r];n.nodeType===Node.TEXT_NODE&&n.textContent.trim().length===0||(yield{name:`${n.tagName}[${r}]`,data:n})}e.tagName&&(yield{name:"CLOSE_TAG",data:{tagName:e.tagName},isCloseTag:!0})}},hA=e=>Vm.default.createElement(Bm,{nodeRenderer:yA,dataIterator:gA,...e}),kQ=op(hA),UQ=qR(YR());s();var Wm=Y(require("react")),qm=typeof window<"u"?window.localStorage:null;function yr(e,t){let[r,n]=Wm.default.useState(()=>{let i=qm?.getItem(e),a=t;if(i)try{a=JSON.parse(i)}catch(c){console.error("Error parsing localStorage value",c)}return a});return[r,i=>{qm?.setItem(e,JSON.stringify(i)),n(i)}]}var Ym={...np,BASE_BACKGROUND_COLOR:"transparent",OBJECT_NAME_COLOR:"rgba(0,0,0,0.7)"},Xm={...rp,BASE_BACKGROUND_COLOR:"transparent",OBJECT_NAME_COLOR:"rgba(255,255,255,0.7)"},Gr={sectionInner:{flex:"1 1 0",overflowY:"auto",overflowX:"hidden",display:"flex",flexDirection:"column"}};function Jm({showInspector:e,setShowInspector:t,theme:r,anchor:n}){return x.default.createElement("span",{role:"button",style:{flex:"0",appearance:"none",color:r.BASE_COLOR,border:"none",fontSize:"12px",whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"2px 0"},onClick:o=>{o.stopPropagation(),t(!e)}},x.default.createElement("span",{style:{width:"12px",height:"12px"}},e===(n==="right")?x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"size-6"},x.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5"})):x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"size-6"},x.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"}))))}function Vr({open:e,setOpen:t,title:r,right:n,children:o,colorScheme:i,isFirst:a,style:c}){let p=i==="light"?Ym:Xm,f=i==="light"?"rgba(0,0,0,0.1)":"rgba(255,255,255,0.1)";return x.default.createElement("div",{style:{flex:e?"1 1 0":"0",display:"flex",flexDirection:"column",...c}},x.default.createElement("div",{onClick:()=>t?.(!e),style:{cursor:"default",fontSize:"12px",padding:"4px 10px",display:"flex",alignItems:"center",...!a&&{borderTop:`1px solid ${f}`},...e&&{borderBottom:`1px solid ${f}`}}},t&&x.default.createElement(SA,{expanded:e,style:{fontSize:p.ARROW_FONT_SIZE,marginRight:p.ARROW_MARGIN_RIGHT+1,color:p.ARROW_COLOR}}),x.default.createElement("span",{style:{flex:"1 1 0",userSelect:"none"}},r),n),e&&o)}function _r({children:e,colorScheme:t,selected:r,style:n,variant:o}){return x.default.createElement("div",{style:{borderBottom:`1px solid ${t==="light"?"rgb(223 223 223)":"rgb(29 29 29)"}`,fontSize:"12px",fontFamily:"Menlo, monospace",padding:"2px 12px 1px",display:"flex",alignItems:"center",background:o==="up"?"rgba(0,255,0,0.1)":o==="down"?"transparent":r?"rgb(59 130 246 / 15%)":void 0,...n}},x.default.createElement("span",{style:{fontFamily:"Menlo, monospace",fontSize:"11px",borderRadius:4,display:"inline-block"}},e))}var sp="noya-multiplayer-history-",up=In(function({noyaManager:t,colorScheme:r="light",anchor:n="right",unstyled:o=!1,...i}){let{multiplayerStateManager:a,assetManager:c,connectedUsersManager:p,secretManager:f,ephemeralUserDataManager:l,connectionEventManager:d,taskManager:b}=t,[I,O]=x.default.useState(!1),S=X(b.tasks$);(0,x.useLayoutEffect)(()=>{O(!0)},[]);let T=x.default.useRef(null),E=x.default.useRef(null),[w,A]=yr("noya-multiplayer-react-show-inspector",!0),[N,R]=yr("noya-multiplayer-react-show-events",!1),[F,oe]=yr("noya-multiplayer-react-show-history",!1),[Ie,gr]=yr("noya-multiplayer-react-show-users",!0),[qr,Ui]=yr("noya-multiplayer-react-show-data",!0),[py,fy]=yr("noya-multiplayer-react-show-tasks",!1),[ly,dy]=yr("noya-multiplayer-react-show-ephemeral",!1),[my,yy]=yr("noya-multiplayer-react-show-assets",!1),[gy,hy]=yr("noya-multiplayer-react-show-secrets",!1),aa=X(d.events$);(0,x.useEffect)(()=>{T.current&&(T.current.scrollTop=T.current.scrollHeight)},[aa]);let xy=X(a.isInitialized$),by=X(l.data$),vr=pp(a.sm),Sy=X(c.assets$),Iy=X(c.isInitialized$),Ty=X(f.secrets$),Oy=X(f.isInitialized$),gp=X(p.connectedUsers$),Ey=X(p.currentUserId$),Py=X(a.optimisticState$);(0,x.useEffect)(()=>{E.current&&(E.current.scrollTop=E.current.scrollHeight)},[vr]),(0,x.useEffect)(()=>{if(!E.current)return;let C=E.current.querySelector(`#${sp}${vr.historyIndex}`);C&&C.scrollIntoView({block:"nearest",inline:"nearest"})},[vr.historyIndex]);let Ee=r==="light"?Ym:Xm,Fi=r==="light"?"rgb(223 223 223)":"rgb(29 29 29)",hp={position:"fixed",top:12,...n.includes("right")?{right:12}:{left:12},bottom:12,width:400,background:r==="light"?"rgba(255,255,255,0.95)":"rgba(0,0,0,0.95)",backdropFilter:"blur(48px)",border:`1px solid ${Fi}`,borderRadius:4,display:"flex",flexDirection:"column",color:Ee.BASE_COLOR,overflow:"hidden",zIndex:9999,lineHeight:"13px"};return I?w?x.default.createElement("div",{...i,style:{...!o&&hp,...i.style}},x.default.createElement(Vr,{isFirst:!0,open:Ie,setOpen:gr,title:"Users",colorScheme:r,style:{flex:"0 0 auto",maxHeight:"200px"},right:x.default.createElement(Jm,{showInspector:w,setShowInspector:A,theme:Ee,anchor:n})},x.default.createElement("div",{style:{...Gr.sectionInner,flex:"0 0 auto"}},gp?.map(C=>x.default.createElement(_r,{key:C.id,colorScheme:r,variant:C.id===Ey?"up":void 0},C.image&&x.default.createElement("img",{src:C.image,alt:C.name,style:{width:"13px",height:"13px",borderRadius:"50%",marginRight:"4px",display:"inline-block",position:"relative",background:Fi,verticalAlign:"middle"}}),C.name," (",Zm(C.id.toString(),8,"middle"),")")),!gp&&x.default.createElement("div",{style:{padding:"12px",fontSize:"12px",display:"flex",flexDirection:"column",gap:"4px"}},x.default.createElement("span",null,"No connected users")))),x.default.createElement(Vr,{title:x.default.createElement(cp,null,"Data",x.default.createElement(ap,{type:xy?"success":"error"})),colorScheme:r,setOpen:Ui,open:qr,right:x.default.createElement("span",{style:{display:"flex",gap:"4px"}},x.default.createElement(zr,{theme:Ee,onClick:()=>{t.forceInit()}},"Reset"))},x.default.createElement("div",{style:Gr.sectionInner},x.default.createElement(_r,{colorScheme:r},x.default.createElement(mr,{name:a.schema?"state":void 0,data:Py,theme:Ee})),a.schema&&x.default.createElement(_r,{colorScheme:r},x.default.createElement(mr,{name:"schema",data:a.schema,theme:Ee})))),x.default.createElement(Vr,{open:F,setOpen:oe,title:"History",colorScheme:r,right:x.default.createElement("span",{style:{display:"flex",gap:"4px"}},x.default.createElement(zr,{disabled:!vr.canUndo,theme:Ee,onClick:()=>{a.undo()}},x.default.createElement("span",{style:{width:"12px",height:"12px"}},x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 20 20"},x.default.createElement("path",{fill:"currentColor",d:"M12 5H7V2L1 6l6 4V7h5c2.2 0 4 1.8 4 4s-1.8 4-4 4H7v2h5c3.3 0 6-2.7 6-6s-2.7-6-6-6"})))),x.default.createElement(zr,{disabled:!vr.canRedo,theme:Ee,onClick:()=>{a.redo()}},x.default.createElement("span",{style:{width:"12px",height:"12px"}},x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 20 20"},x.default.createElement("path",{fill:"currentColor",d:"M8 5h5V2l6 4l-6 4V7H8c-2.2 0-4 1.8-4 4s1.8 4 4 4h5v2H8c-3.3 0-6-2.7-6-6s2.7-6 6-6"})))))},x.default.createElement("div",{ref:E,style:Gr.sectionInner},x.default.createElement("div",{id:`${sp}0`,style:{borderBottom:`1px solid ${Fi}`,fontSize:"12px",fontFamily:"Menlo, monospace",padding:"2px 12px 1px",display:"flex",alignItems:"center",background:vr.historyIndex===0?"rgb(59 130 246 / 15%)":void 0}},x.default.createElement("span",{style:{fontFamily:"Menlo, monospace",fontSize:"11px",borderRadius:4,display:"inline-block"}},"Initial state")),vr.history.map((C,st)=>x.default.createElement("div",{id:`${sp}${st+1}`,key:st,style:{padding:"0px 12px 1px",borderBottom:`1px solid ${Fi}`,background:st+1===vr.historyIndex?"rgb(59 130 246 / 15%)":void 0}},"name"in C.metadata&&typeof C.metadata.name=="string"&&x.default.createElement("pre",{style:{fontSize:"11px",display:"flex",flexWrap:"wrap",margin:0}},C.metadata.name),C.redoPatches?.map((Be,io)=>x.default.createElement("pre",{key:io,style:{fontSize:"11px",display:"flex",flexWrap:"wrap",margin:0}},Be.op==="add"&&x.default.createElement(x.default.Fragment,null,x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.path))," = ",x.default.createElement(mr,{data:Be.value,theme:Ee})),Be.op==="replace"&&x.default.createElement(x.default.Fragment,null,x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.path))," = ",x.default.createElement(mr,{data:Be.value,theme:Ee})),Be.op==="remove"&&x.default.createElement(x.default.Fragment,null,x.default.createElement("span",{style:{color:Ee.OBJECT_VALUE_STRING_COLOR}},"delete"," "),x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.path))),Be.op==="move"&&x.default.createElement(x.default.Fragment,null,x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.from))," -> ",x.default.createElement("span",{style:{fontStyle:"italic"}},vi(Be.path))))))))),x.default.createElement(Vr,{open:my,setOpen:yy,title:x.default.createElement(cp,null,"Assets",x.default.createElement(ap,{type:Iy?"success":"error"})),colorScheme:r,right:x.default.createElement("span",{style:{display:"flex",gap:"10px"}},x.default.createElement(zr,{theme:Ee,onClick:()=>{console.info("[StateInspector] Reloading assets",t.id),c.fetch()}},"Reload"),x.default.createElement(zr,{theme:Ee,onClick:()=>{let C=document.createElement("input");C.type="file",C.onchange=()=>{let st=C.files?.[0];if(st){let Be=new FileReader;Be.onload=()=>{let io=Be.result;c.create(new Uint8Array(io))},Be.readAsArrayBuffer(st)}},C.click()}},"Upload"))},x.default.createElement("div",{style:Gr.sectionInner},Sy.map(C=>x.default.createElement(_r,{key:C.id,colorScheme:r},x.default.createElement(mr,{name:C.id,data:C,theme:Ee}),x.default.createElement(zr,{theme:Ee,onClick:()=>c.delete(C.id)},"Delete"))))),x.default.createElement(Vr,{title:"Tasks",colorScheme:r,open:py,setOpen:fy},x.default.createElement("div",{style:Gr.sectionInner},S?.map(C=>x.default.createElement(_r,{key:C.id,colorScheme:r,style:{backgroundColor:C.status==="done"?"rgba(0,255,0,0.2)":C.status==="error"?"rgba(255,0,0,0.2)":void 0}},x.default.createElement(mr,{name:C.name,data:C.payload,theme:Ee}))))),x.default.createElement(Vr,{title:x.default.createElement(cp,null,"Secrets",x.default.createElement(ap,{type:Oy?"success":"error"})),colorScheme:r,open:gy,setOpen:hy,right:x.default.createElement(zr,{theme:Ee,onClick:()=>{let C=prompt("Enter secret name");if(!C)return;let st=prompt("Enter secret value");st&&f.createSecret(C,st)}},"Create")},x.default.createElement("div",{style:Gr.sectionInner},Ty.map(C=>x.default.createElement(_r,{key:C.id,colorScheme:r},x.default.createElement(mr,{data:C,theme:Ee}),x.default.createElement(zr,{theme:Ee,onClick:()=>f.deleteSecret(C.name)},"Delete"))))),x.default.createElement(Vr,{open:ly,setOpen:dy,title:"Ephemeral User Data",colorScheme:r},x.default.createElement("div",{style:Gr.sectionInner},Object.entries(by).map(([C,st])=>x.default.createElement(_r,{key:C,colorScheme:r},x.default.createElement(mr,{name:C,data:st,theme:Ee,expandLevel:10}))))),x.default.createElement(Vr,{open:N,setOpen:R,title:"Events",colorScheme:r},x.default.createElement("div",{ref:T,style:Gr.sectionInner},aa?.map((C,st)=>C.type==="stateChange"?x.default.createElement(_r,{key:st,colorScheme:r},"connection:"," ",x.default.createElement("span",{style:{fontStyle:"italic"}},C.state.toLowerCase())):x.default.createElement(_r,{key:st,colorScheme:r,variant:C.type==="send"?"up":"down",style:{padding:"0px 12px 1px"}},x.default.createElement(mr,{data:C.type==="error"?C.error:C.message,theme:Ee,nodeRenderer:({depth:Be,name:io,data:xp,isNonenumerable:My})=>{let bp=C.type==="send"?"up":"down";return Be===0?x.default.createElement(bA,{direction:bp,data:xp}):x.default.createElement(ip,{direction:bp,name:io,data:xp,isNonenumerable:My})}}))),!aa&&x.default.createElement("div",{style:{padding:"12px",fontSize:"12px",display:"flex",flexDirection:"column",gap:"4px"}},x.default.createElement("span",null,"No recorded events"))))):x.default.createElement("div",{...i,style:{...hp,padding:"4px 10px",width:void 0,...n.includes("bottom")?{bottom:12,top:void 0}:{bottom:void 0}},onClick:()=>A(!0)},x.default.createElement(Jm,{showInspector:w,setShowInspector:A,theme:Ee,anchor:n})):null}),bA=({name:e,data:t,direction:r})=>typeof e=="string"?x.default.createElement("span",null,x.default.createElement(_i,{name:e}),x.default.createElement("span",null,": "),x.default.createElement(On,{data:t})):r==="up"||r==="down"?x.default.createElement("span",null,x.default.createElement("span",{style:{background:r==="up"?"rgba(0,255,0,0.2)":"rgba(255,0,0,0.2)",width:12,height:12,borderRadius:2,display:"inline-flex",justifyContent:"center",alignItems:"center",marginRight:4,lineHeight:"12px"}},r==="up"?"\u2191":"\u2193"),x.default.createElement(On,{data:t})):x.default.createElement(On,{data:t});function SA({expanded:e,onClick:t,style:r}){return x.default.createElement("span",{role:"button",onClick:t,style:{display:"inline-block",textAlign:"center",transform:e?"rotate(0deg)":"rotate(-90deg)",fontFamily:"Menlo, monospace",...r}},"\u25BC")}function vi(e){return e.map(t=>typeof t=="object"?`:${Zm(t.id.toString(),8,"middle")}`:t).map((t,r)=>r===0||typeof t=="string"&&t.startsWith(":")?t:`.${t}`).join("")}function Zm(e,t,r="end"){if(e.length<=t)return e;switch(r){case"start":return`\u2026${e.slice(e.length-t)}`;case"middle":let n=Math.floor(t/2);return`${e.slice(0,n)}\u2026${e.slice(e.length-n)}`;case"end":return`${e.slice(0,t)}\u2026`}}function zr({children:e,onClick:t,style:r,theme:n,disabled:o}){return x.default.createElement("button",{type:"button",disabled:o,onClick:i=>{i.stopPropagation(),t()},style:{flex:"0",appearance:"none",background:"none",color:n.BASE_COLOR,opacity:o?.25:1,border:"none",fontSize:"12px",whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"0",cursor:"pointer",...r}},e)}function ap({type:e}){return x.default.createElement("span",{style:{display:"inline-block",width:6,height:6,background:e==="success"?"rgba(0,200,0,0.8)":"rgba(200,0,0,0.8)",borderRadius:"50%",verticalAlign:"middle"}})}function cp({children:e}){return x.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"4px"}},e)}function IA(){let e=document.createElement("div");e.id="noya-multiplayer-react-inspector-host";let t=e.attachShadow({mode:"open"}),r=document.createElement("div");return t.appendChild(r),{host:e,container:r}}function ey({noyaManager:e,disabled:t=!1,colorScheme:r,anchor:n}){let[o,i]=oo.default.useState(null);(0,oo.useLayoutEffect)(()=>{if(t)return;let{host:a,container:c}=IA(),p=(0,Qm.createRoot)(c);return document.body.appendChild(a),i(p),()=>{document.body.removeChild(a)}},[t]),(0,oo.useLayoutEffect)(()=>{o&&o.render(oo.default.createElement(up,{colorScheme:r,anchor:n,noyaManager:e}))},[e,n,r,o])}function ry(e,t){let r=(0,$e.useCallback)(()=>typeof t=="string"?e.getState(t):e.getState(),[e,t]);return(0,$e.useSyncExternalStore)(e.addListener,r,r)}function TA(e,t){let[r]=(0,$e.useState)(()=>new xn(e(),t)),n=ry(r),o=(0,$e.useCallback)((...i)=>{let[a,c]=i.length===1?[void 0,i[0]]:i;if(a===void 0){let p=r.performAction;c instanceof Function?p({run:c,undo:()=>n}):p({run:()=>c,undo:()=>n})}else{let p=r.performAction;c instanceof Function?p(a,{run:c,undo:()=>n}):p(a,{run:()=>c,undo:()=>n})}},[n,r]);return[n,o,r]}function pp(e){return(0,$e.useSyncExternalStore)(e.historyEmittor.addListener,e.getHistorySnapshot,e.getHistorySnapshot)}var OA=Ci();function fp(e,t){let{sync:r=OA,inspector:n,...o}=t??{},[i]=(0,$e.useState)(()=>new Ri(e,o)),a=X(i.multiplayerStateManager.optimisticState$),c=X(i.assetManager.assets$),p=(0,$e.useMemo)(()=>({noyaManager:i,taskManager:i.taskManager,connectionEventManager:i.connectionEventManager,connectedUsersManager:i.connectedUsersManager,ephemeralUserDataManager:i.ephemeralUserDataManager,multiplayerStateManager:i.multiplayerStateManager,assetManager:i.assetManager,aiManager:i.aiManager,rpcManager:i.rpcManager,workflowManager:i.workflowManager,secretManager:i.secretManager,menuItemsManager:i.menuManager,createAsset:i.assetManager.create,deleteAsset:i.assetManager.delete,assets:c}),[i,c]),f=(0,$e.useRef)(r);return(0,$e.useEffect)(()=>{if(f.current)return f.current({noyaManager:i})},[i]),EA(i),ey({noyaManager:i,disabled:!n,...typeof n=="object"&&n}),[a,i.multiplayerStateManager.setState,p]}function EA(e){let t=X(e.unrecoverableError);(0,$e.useEffect)(()=>{if(!t)return;let r=document.createElement("div");r.id="noya-multiplayer-react-error-overlay",document.body.appendChild(r);let n=(0,ty.createRoot)(r);return n.render((0,$e.createElement)(_m,{error:t})),()=>{n.unmount(),r.remove()}})}s();var ki=require("react");function ny(e){return{theme:"light",viewType:"editable",initialState:e,inspector:!1}}function oy(e,t){return t?iu({schema:t,value:e,defs:$t(t)}):e}function iy(e){let r=(e?.window??globalThis).location;if(!r)return null;let n=(r.hash||"").replace(/^#/,""),i=new URLSearchParams(n).get("data");if(!i)return null;try{return JSON.parse(i)}catch{return null}}function sy(e,t,r){let n=e instanceof Function?e():e,o=iy(r)??ny(n);return r?.overrideExistingState&&(o.initialState=n),o.initialState=oy(o.initialState,t),o}function lp(...e){let[t,r]=typeof e[0]=="object"&&e[0]!==null&&"schema"in e[0]&&m.IsSchema(e[0].schema)?[null,e[0]]:[e[0],e[1]],[{multiplayerUrl:n,inspector:o,initialState:i,theme:a,viewType:c}]=(0,ki.useState)(()=>sy(t,r?.schema,{overrideExistingState:r?.overrideExistingState})),p=(0,ki.useMemo)(()=>Mu()?Ku({debug:r?.debug}):n?$u(n):r?.offlineStorageKey?ku({key:r.offlineStorageKey}):Ci(),[n,r?.offlineStorageKey,r?.debug]),f=fp(i,{...r,inspector:r?.inspector??o,sync:r?.sync??p}),[,,l]=f,d=(0,ki.useMemo)(()=>({...l,theme:a,viewType:c}),[l,a,c]);return[f[0],f[1],d]}s();var ye=Y(require("react"));var dp=(0,ye.createContext)(void 0);function vt(){let e=(0,ye.useContext)(dp);if(!e)throw new Error("useNoyaStateContext must be used within a NoyaStateProvider");return e}function PA(){let{assetManager:e}=vt();return X(e.assets$)}function MA(e){let{assetManager:t}=vt(),r=(0,ye.useMemo)(()=>t.assets$.map(n=>n.find(o=>o.id===e)),[t,e]);return X(r)}function wA(){let{assetManager:e}=vt();return(0,ye.useMemo)(()=>({create:e.create,delete:e.delete}),[e])}function RA(){let{aiManager:e}=vt();return e}function AA(){let{secretManager:e}=vt();return e}function CA(){let{secretManager:e}=vt();return X(e.secrets$)}function NA(e){let{secretManager:t}=vt();return X(t.secrets$,(0,ye.useCallback)(r=>r.find(n=>n.name===e),[e]))}function ay(){let{multiplayerStateManager:e,secretManager:t,assetManager:r}=vt(),n=(0,ye.useMemo)(()=>B.combine([e.isInitialized$,t.isInitialized$,r.isInitialized$],o=>o.every(i=>i)),[e,t,r]);return X(n)}function _A(){let{workflowManager:e}=vt();return e}var mp=(0,ye.createContext)(void 0);function cy(){return(0,ye.useContext)(mp)}var yp=(0,ye.createContext)(void 0);function vA(){return(0,ye.useContext)(yp)}function kA(){let e=cy();return X(e?.currentUserId$)}var uy=({children:e,fallback:t})=>ay()?e:t??null;function UA({schema:e,mergeHistoryEntries:t}){let r=dp,n=yp;function o({children:S,initialState:T,...E}){let[,,{noyaManager:w}]=lp(T,{...E,schema:e,mergeHistoryEntries:t});return ye.default.createElement(dp.Provider,{value:w},ye.default.createElement(mp.Provider,{value:w.connectedUsersManager},ye.default.createElement(n.Provider,{value:w.ephemeralUserDataManager},E.fallback!==void 0?ye.default.createElement(uy,{fallback:E.fallback},S):S)))}function i(S,T){let{multiplayerStateManager:E}=vt(),w=typeof S=="function"||!S?"":S,A=(0,ye.useMemo)(()=>typeof S=="function"?E.optimisticState$.map(S,{isEqual:T?.isEqual}):E.optimisticState$,[E,S,T?.isEqual]);return X(A,w)}function a(S){let{multiplayerStateManager:T}=vt();return(0,ye.useCallback)((...w)=>{let[A,N]=w.length===2?w:[{},w[0]];T.setStateAtPath(A,S??"",N)},[T,S])}function c(...S){let[T,E,w]=S.length>=1&&typeof S[0]=="function"?[S[0],S[1],void 0]:[void 0,void 0,S[0]],A=i(T??w??"",E),N=a(w??"");return[A,N]}function p(){let{multiplayerStateManager:S}=vt();return S}function f(){let S=(0,ye.useContext)(n);if(!S)throw new Error("useEphemeralUserData must be used within a NoyaStateProvider");return S}function l(){return vt()}function d(){let{menuManager:S}=l();return X(S.leftMenuItems$)}function b(){let{menuManager:S}=l();return X(S.rightMenuItems$)}function I(S){let{menuManager:T}=l();(0,ye.useEffect)(()=>T.addListener(S),[T,S])}function O(){let{menuManager:S}=l();return(0,ye.useCallback)(T=>S.emit(T),[S])}return{Context:r,Provider:o,useValue:i,useSetValue:a,useValueState:c,useStateManager:p,useEphemeralUserDataManager:f,useLeftMenuItems:d,useRightMenuItems:b,useHandleMenuItem:I,useOnSelectMenuItemCallback:O,useNoyaManager:l}}s();var Zn=class{constructor(t,r={}){this.url=t;this.options=r;this.ws=new eo({debug:r.debug,onopen:this.handleOpen,onmessage:this.handleMessage,onclose:this.handleClose,activityDetector:new Qn})}ws;pingCount=0;pendingPingId;intervalId;async connect(){this.ws.connect(this.url.toString()),this.intervalId=setInterval(()=>{if(this.ws.state!=="OPEN")return;if(this.pendingPingId){this.ws.close();return}let r={type:"ping",id:(this.pingCount++).toString()};this.pendingPingId=r.id,this.options.onConnectionEvent?.({type:"send",message:r}),this.ws.send(JSON.stringify(r))},1e4)}handleOpen=()=>{this.pendingPingId=void 0,this.options.debug&&console.info("ws connected"),this.options.onConnectionEvent?.({type:"stateChange",state:"OPEN"})};handleMessage=t=>{this.options.debug&&console.info("ws receiving message ",t.data);let r=JSON.parse(t.data);this.options.onConnectionEvent?.({type:"receive",message:r}),r.type==="pong"&&r.id===this.pendingPingId&&(this.pendingPingId=void 0)};handleClose=()=>{this.pendingPingId=void 0,this.options.debug&&console.info("ws disconnected"),this.options.onConnectionEvent?.({type:"stateChange",state:"CLOSED"})};send(t){this.options.debug&&console.info("ws sending message",t),this.options.onConnectionEvent?.({type:"send",message:t}),this.ws.send(JSON.stringify(t))}close(){this.intervalId&&clearInterval(this.intervalId),this.ws.shutdown()}addListener(t){return this.ws.addListener(t)}removeListener(t){return this.ws.removeListener(t)}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noya-app/noya-multiplayer-react",
3
- "version": "0.1.46",
3
+ "version": "0.1.47",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -12,7 +12,7 @@
12
12
  "dev": "npm run build -- --watch"
13
13
  },
14
14
  "dependencies": {
15
- "@noya-app/state-manager": "0.1.35",
15
+ "@noya-app/state-manager": "0.1.36",
16
16
  "@noya-app/emitter": "0.1.0",
17
17
  "@noya-app/observable": "0.1.4",
18
18
  "@noya-app/task-runner": "0.1.5",