tempest.games 0.2.37 → 0.2.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/app/index.html CHANGED
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>TEMPEST</title>
8
- <script type="module" crossorigin src="/assets/index-hdtDD69B.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-B04_csD_.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-ki_mruCb.css">
10
10
  </head>
11
11
  <body>
@@ -288,7 +288,7 @@ React keys must be passed directly to JSX without using spread:
288
288
  `)}})).pipeThrough(new TextEncoderStream)}var ein={"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform","X-Accel-Buffering":"no",Connection:"keep-alive"},iin=Re(jf(),1),UD=Re(Qa(),1);function BT(n){return pl((0,iin.default)(function*(){throw n}))}var tin={mutation:["POST"],query:["GET"],subscription:["GET"]},ain={mutation:["POST"],query:["GET","POST"],subscription:["GET","POST"]};function mE(n){var e,i,t;let{ctx:a,info:r,responseMeta:o,untransformedJSON:u,errors:s=[],headers:l}=n,c=u?U9(u):200,f=!u,b=f?[]:Array.isArray(u)?u:[u],m=(e=o===null||o===void 0?void 0:o({ctx:a,info:r,paths:r===null||r===void 0?void 0:r.calls.map((E)=>E.path),data:b,errors:s,eagerGeneration:f,type:(i=r===null||r===void 0||(t=r.calls.find((E)=>{var h;return(h=E.procedure)===null||h===void 0?void 0:h._def.type}))===null||t===void 0||(t=t.procedure)===null||t===void 0?void 0:t._def.type)!==null&&i!==void 0?i:"unknown"}))!==null&&e!==void 0?e:{};if(m.headers){if(m.headers instanceof Headers)for(let[E,h]of m.headers.entries())l.append(E,h);else for(let[E,h]of Object.entries(m.headers))if(Array.isArray(h))for(let D of h)l.append(E,D);else if(typeof h==="string")l.set(E,h)}if(m.status)c=m.status;return{status:c}}function rin(n,e){let{router:i,req:t,onError:a}=e.opts,r=ra(n);a===null||a===void 0||a({error:r,path:e.path,input:e.input,ctx:e.ctx,type:e.type,req:t});let o={error:dl({config:i._def._config,error:r,type:e.type,path:e.path,input:e.input,ctx:e.ctx})},u=Xp(i._def._config,o),s=JSON.stringify(u);return{error:r,untransformedJSON:o,body:s}}function eM(n){if(!Ht(n))return!1;if(fE(n))return!0;return Object.values(n).some(pM)||Object.values(n).some(fE)}async function dM(n){var e,i,t,a,r,o;let{router:u,req:s}=n,l=new Headers([["vary","trpc-accept"]]),c=u._def._config,f=new URL(s.url);if(s.method==="HEAD")return new Response(null,{status:204});let b=(e=(i=n.allowBatching)!==null&&i!==void 0?i:(t=n.batching)===null||t===void 0?void 0:t.enabled)!==null&&e!==void 0?e:!0,m=((a=n.allowMethodOverride)!==null&&a!==void 0?a:!1)&&s.method==="POST",E=await pl(async()=>{try{return[void 0,await Den({req:s,path:decodeURIComponent(n.path),router:u,searchParams:f.searchParams,headers:n.req.headers,url:f})]}catch(F){return[ra(F),void 0]}}),h=pl(()=>{let F=void 0;return{valueOrUndefined:()=>{if(!F)return;return F[1]},value:()=>{let[x,I]=F;if(x)throw x;return I},create:async(x)=>{if(F)throw new Error("This should only be called once - report a bug in tRPC");try{F=[void 0,await n.createContext({info:x})]}catch(I){F=[ra(I),void 0]}}}}),D=m?ain:tin,T=s.headers.get("trpc-accept")==="application/jsonl",v=(r=(o=c.sse)===null||o===void 0?void 0:o.enabled)!==null&&r!==void 0?r:!0;try{let[F,x]=E;if(F)throw F;if(x.isBatchCall&&!b)throw new Vn({code:"BAD_REQUEST",message:"Batching is not enabled on the server"});if(T&&!x.isBatchCall)throw new Vn({message:"Streaming requests must be batched (you can do a batch of 1)",code:"BAD_REQUEST"});await h.create(x);let I=x.calls.map(async(K)=>{let Z=K.procedure;try{if(n.error)throw n.error;if(!Z)throw new Vn({code:"NOT_FOUND",message:`No procedure found on path "${K.path}"`});if(!D[Z._def.type].includes(s.method))throw new Vn({code:"METHOD_NOT_SUPPORTED",message:`Unsupported ${s.method}-request to ${Z._def.type} procedure at path "${K.path}"`});if(Z._def.type==="subscription"){if(x.isBatchCall)throw new Vn({code:"BAD_REQUEST",message:"Cannot batch subscription calls"})}return[void 0,{data:await Z({path:K.path,getRawInput:K.getRawInput,ctx:h.value(),type:Z._def.type,signal:n.req.signal})}]}catch(Dn){var J,an,on;let Ln=ra(Dn),Q=K.result();return(J=n.onError)===null||J===void 0||J.call(n,{error:Ln,path:K.path,input:Q,ctx:h.valueOrUndefined(),type:(an=(on=K.procedure)===null||on===void 0?void 0:on._def.type)!==null&&an!==void 0?an:"unknown",req:n.req}),[Ln,void 0]}});if(!x.isBatchCall){let[K]=x.calls,[Z,J]=await I[0];switch(x.type){case"unknown":case"mutation":case"query":{if(l.set("content-type","application/json"),eM(J===null||J===void 0?void 0:J.data))throw new Vn({code:"UNSUPPORTED_MEDIA_TYPE",message:"Cannot use stream-like response in non-streaming request - use httpBatchStreamLink"});let an=Z?{error:dl({config:c,ctx:h.valueOrUndefined(),error:Z,input:K.result(),path:K.path,type:x.type})}:{result:{data:J.data}},on=mE({ctx:h.valueOrUndefined(),info:x,responseMeta:n.responseMeta,errors:Z?[Z]:[],headers:l,untransformedJSON:[an]});return new Response(JSON.stringify(Xp(c,an)),{status:on.status,headers:l})}case"subscription":{let an=pl(()=>{if(Z)return BT(Z);if(!v)return BT(new Vn({code:"METHOD_NOT_SUPPORTED",message:'Missing experimental flag "sseSubscriptions"'}));if(!yD(J.data)&&!fE(J.data))return BT(new Vn({message:`Subscription ${K.path} did not return an observable or a AsyncGenerator`,code:"INTERNAL_SERVER_ERROR"}));return yD(J.data)?HT(J.data,n.req.signal):J.data}),on=nin((0,UD.default)((0,UD.default)({},c.sse),{},{data:an,serialize:(Ln)=>c.transformer.output.serialize(Ln),formatError(Ln){var Q,O,X;let pn=ra(Ln.error),_n=K===null||K===void 0?void 0:K.result(),vn=K===null||K===void 0?void 0:K.path,En=(Q=K===null||K===void 0||(O=K.procedure)===null||O===void 0?void 0:O._def.type)!==null&&Q!==void 0?Q:"unknown";return(X=n.onError)===null||X===void 0||X.call(n,{error:pn,path:vn,input:_n,ctx:h.valueOrUndefined(),req:n.req,type:En}),dl({config:c,ctx:h.valueOrUndefined(),error:pn,input:_n,path:vn,type:En})}}));for(let[Ln,Q]of Object.entries(ein))l.set(Ln,Q);let Dn=mE({ctx:h.valueOrUndefined(),info:x,responseMeta:n.responseMeta,errors:[],headers:l,untransformedJSON:null});return new Response(on,{headers:l,status:Dn.status})}}}if(x.accept==="application/jsonl"){l.set("content-type","application/json"),l.set("transfer-encoding","chunked");let K=mE({ctx:h.valueOrUndefined(),info:x,responseMeta:n.responseMeta,errors:[],headers:l,untransformedJSON:null}),Z=Xen((0,UD.default)((0,UD.default)({},c.jsonl),{},{maxDepth:1/0,data:I.map(async(J)=>{let[an,on]=await J,Dn=x.calls[0];if(an){var Ln,Q;return{error:dl({config:c,ctx:h.valueOrUndefined(),error:an,input:Dn.result(),path:Dn.path,type:(Ln=(Q=Dn.procedure)===null||Q===void 0?void 0:Q._def.type)!==null&&Ln!==void 0?Ln:"unknown"})}}let O=yD(on.data)?HT(on.data,n.req.signal):Promise.resolve(on.data);return{result:Promise.resolve({data:O})}}),serialize:(J)=>c.transformer.output.serialize(J),onError:(J)=>{var an,on;(an=n.onError)===null||an===void 0||an.call(n,{error:ra(J),path:void 0,input:void 0,ctx:h.valueOrUndefined(),req:n.req,type:(on=x===null||x===void 0?void 0:x.type)!==null&&on!==void 0?on:"unknown"})},formatError(J){var an,on;let Dn=x===null||x===void 0?void 0:x.calls[J.path[0]],Ln=ra(J.error),Q=Dn===null||Dn===void 0?void 0:Dn.result(),O=Dn===null||Dn===void 0?void 0:Dn.path,X=(an=Dn===null||Dn===void 0||(on=Dn.procedure)===null||on===void 0?void 0:on._def.type)!==null&&an!==void 0?an:"unknown";return dl({config:c,ctx:h.valueOrUndefined(),error:Ln,input:Q,path:O,type:X})}}));return new Response(Z,{headers:l,status:K.status})}l.set("content-type","application/json");let U=(await Promise.all(I)).map((K)=>{let[Z,J]=K;if(Z)return K;if(eM(J.data))return[new Vn({code:"UNSUPPORTED_MEDIA_TYPE",message:"Cannot use stream-like response in non-streaming request - use httpBatchStreamLink"}),void 0];return K}),W=U.map(([K,Z],J)=>{let an=x.calls[J];if(K){var on,Dn;return{error:dl({config:c,ctx:h.valueOrUndefined(),error:K,input:an.result(),path:an.path,type:(on=(Dn=an.procedure)===null||Dn===void 0?void 0:Dn._def.type)!==null&&on!==void 0?on:"unknown"})}}return{result:{data:Z.data}}}),B=U.map(([K])=>K).filter(Boolean),H=mE({ctx:h.valueOrUndefined(),info:x,responseMeta:n.responseMeta,untransformedJSON:W,errors:B,headers:l});return new Response(JSON.stringify(Xp(c,W)),{status:H.status,headers:l})}catch(F){var _;let[x,I]=E,U=h.valueOrUndefined(),{error:W,untransformedJSON:B,body:H}=rin(F,{opts:n,ctx:h.valueOrUndefined(),type:(_=I===null||I===void 0?void 0:I.type)!==null&&_!==void 0?_:"unknown"}),K=mE({ctx:U,info:I,responseMeta:n.responseMeta,untransformedJSON:B,errors:[W],headers:l});return new Response(H,{status:K.status,headers:l})}}var kD=Re(Qa(),1),mM="middlewareMarker";function oin(){function n(i){return{_middlewares:i,unstable_pipe(t){let a="_middlewares"in t?t._middlewares:[t];return n([...i,...a])}}}function e(i){return n([i])}return e}function uin(n){let e=async function i(t){let a,r=await t.getRawInput();try{a=await n(r)}catch(u){throw new Vn({code:"BAD_REQUEST",cause:u})}let o=Ht(t.input)&&Ht(a)?(0,kD.default)((0,kD.default)({},t.input),a):a;return t.next({input:o})};return e._type="input",e}function sin(n){let e=async function i({next:t}){let a=await t();if(!a.ok)return a;try{let r=await n(a.data);return(0,kD.default)((0,kD.default)({},a),{},{data:r})}catch(r){throw new Vn({message:"Output validation failed",code:"INTERNAL_SERVER_ERROR",cause:r})}};return e._type="output",e}var lin=Re(Vp(),1),EM=class extends Error{constructor(n){var e;super((e=n[0])===null||e===void 0?void 0:e.message);(0,lin.default)(this,"issues",void 0),this.name="SchemaError",this.issues=n}};function fM(n){let e=n,i="~standard"in e;if(typeof e==="function"&&typeof e.assert==="function")return e.assert.bind(e);if(typeof e==="function"&&!i)return e;if(typeof e.parseAsync==="function")return e.parseAsync.bind(e);if(typeof e.parse==="function")return e.parse.bind(e);if(typeof e.validateSync==="function")return e.validateSync.bind(e);if(typeof e.create==="function")return e.create.bind(e);if(typeof e.assert==="function")return(t)=>{return e.assert(t),t};if(i)return async(t)=>{let a=await e["~standard"].validate(t);if(a.issues)throw new EM(a.issues);return a.value};throw new Error("Could not find a validator fn")}var cin=Za({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutPropertiesLoose.js"(n,e){function i(t,a){if(t==null)return{};var r={};for(var o in t)if({}.hasOwnProperty.call(t,o)){if(a.includes(o))continue;r[o]=t[o]}return r}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports}}),pin=Za({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutProperties.js"(n,e){var i=cin();function t(a,r){if(a==null)return{};var o,u,s=i(a,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(a);for(u=0;u<l.length;u++)o=l[u],r.includes(o)||{}.propertyIsEnumerable.call(a,o)&&(s[o]=a[o])}return s}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}}),din=Re(pin(),1),st=Re(Qa(),1),fin=["middlewares","inputs","meta"];function Ac(n,e){let{middlewares:i=[],inputs:t,meta:a}=e,r=(0,din.default)(e,fin);return hM((0,st.default)((0,st.default)({},CD(n,r)),{},{inputs:[...n.inputs,...t!==null&&t!==void 0?t:[]],middlewares:[...n.middlewares,...i],meta:n.meta&&a?(0,st.default)((0,st.default)({},n.meta),a):a!==null&&a!==void 0?a:n.meta}))}function hM(n={}){let e=(0,st.default)({procedure:!0,inputs:[],middlewares:[]},n);return{_def:e,input(t){let a=fM(t);return Ac(e,{inputs:[t],middlewares:[uin(a)]})},output(t){let a=fM(t);return Ac(e,{output:t,middlewares:[sin(a)]})},meta(t){return Ac(e,{meta:t})},use(t){let a="_middlewares"in t?t._middlewares:[t];return Ac(e,{middlewares:a})},unstable_concat(t){return Ac(e,t._def)},concat(t){return Ac(e,t._def)},query(t){return JT((0,st.default)((0,st.default)({},e),{},{type:"query"}),t)},mutation(t){return JT((0,st.default)((0,st.default)({},e),{},{type:"mutation"}),t)},subscription(t){return JT((0,st.default)((0,st.default)({},e),{},{type:"subscription"}),t)},experimental_caller(t){return Ac(e,{caller:t})}}}function JT(n,e){let i=Ac(n,{resolver:e,middlewares:[async function u(s){let l=await e(s);return{marker:mM,ok:!0,data:l,ctx:s.ctx}}]}),t=(0,st.default)((0,st.default)({},i._def),{},{type:n.type,experimental_caller:Boolean(i._def.caller),meta:i._def.meta,$types:null}),a=gin(i._def),r=i._def.caller;if(!r)return a;let o=async(...u)=>{return await r({args:u,invoke:a,_def:t})};return o._def=t,o}var bin=`
289
289
  This is a client-only function.
290
290
  If you want to call this function on the server, see https://trpc.io/docs/v11/server/server-side-calls
291
- `.trim();async function AM(n,e,i){try{let t=e.middlewares[n];return await t((0,st.default)((0,st.default)({},i),{},{meta:e.meta,input:i.input,next(r){var o;let u=r;return AM(n+1,e,(0,st.default)((0,st.default)({},i),{},{ctx:(u===null||u===void 0?void 0:u.ctx)?(0,st.default)((0,st.default)({},i.ctx),u.ctx):i.ctx,input:u&&"input"in u?u.input:i.input,getRawInput:(o=u===null||u===void 0?void 0:u.getRawInput)!==null&&o!==void 0?o:i.getRawInput}))}}))}catch(t){return{ok:!1,error:ra(t),marker:mM}}}function gin(n){async function e(i){if(!i||!("getRawInput"in i))throw new Error(bin);let t=await AM(0,n,i);if(!t)throw new Vn({code:"INTERNAL_SERVER_ERROR",message:"No result from middlewares - did you forget to `return next()`?"});if(!t.ok)throw t.error;return t.data}return e._def=n,e.procedure=!0,e.meta=n.meta,e}var Jf,qf,nb,bM=typeof window==="undefined"||"Deno"in window||((Jf=globalThis.process)===null||Jf===void 0||(Jf=Jf.env)===null||Jf===void 0?void 0:Jf.NODE_ENV)==="test"||!!((qf=globalThis.process)===null||qf===void 0||(qf=qf.env)===null||qf===void 0?void 0:qf.JEST_WORKER_ID)||!!((nb=globalThis.process)===null||nb===void 0||(nb=nb.env)===null||nb===void 0?void 0:nb.VITEST_WORKER_ID),gM=Re(Qa(),1),min=class n{context(){return new n}meta(){return new n}create(e){var i,t,a,r,o,u;let s=(0,gM.default)((0,gM.default)({},e),{},{transformer:H9((i=e===null||e===void 0?void 0:e.transformer)!==null&&i!==void 0?i:Kf),isDev:(t=e===null||e===void 0?void 0:e.isDev)!==null&&t!==void 0?t:((a=globalThis.process)===null||a===void 0?void 0:a.env.NODE_ENV)!=="production",allowOutsideOfServer:(r=e===null||e===void 0?void 0:e.allowOutsideOfServer)!==null&&r!==void 0?r:!1,errorFormatter:(o=e===null||e===void 0?void 0:e.errorFormatter)!==null&&o!==void 0?o:Qf,isServer:(u=e===null||e===void 0?void 0:e.isServer)!==null&&u!==void 0?u:bM,$types:null});{var l;if(!((l=e===null||e===void 0?void 0:e.isServer)!==null&&l!==void 0?l:bM)&&(e===null||e===void 0?void 0:e.allowOutsideOfServer)!==!0)throw new Error("You're trying to use @trpc/server in a non-server environment. This is not supported by default.")}return{_config:s,procedure:hM({meta:e===null||e===void 0?void 0:e.defaultMeta}),middleware:oin(),router:GT(s),mergeRouters:k9,createCallerFactory:zT()}}},qT=new min;function Ein(n,e){if("body"in n){if(n.body===void 0)return;if(typeof n.body==="string")return n.body;return JSON.stringify(n.body)}let i=0,t=!1;return new ReadableStream({start(a){let r=(u)=>{if(i+=u.length,!e.maxBodySize||i<=e.maxBodySize){a.enqueue(new Uint8Array(u.buffer,u.byteOffset,u.byteLength));return}a.error(new Vn({code:"PAYLOAD_TOO_LARGE"})),t=!0,n.off("data",r),n.off("end",o)},o=()=>{if(t)return;t=!0,n.off("data",r),n.off("end",o),a.close()};n.on("data",r),n.on("end",o)},cancel(){n.destroy()}})}function nS(n){try{var e,i;let t=n.headers[":scheme"]&&n.headers[":scheme"]==="https"||n.socket&&"encrypted"in n.socket&&n.socket.encrypted?"https:":"http:",a=(e=(i=n.headers.host)!==null&&i!==void 0?i:n.headers[":authority"])!==null&&e!==void 0?e:"localhost";return new URL(n.url,`${t}//${a}`)}catch(t){throw new Vn({code:"BAD_REQUEST",message:"Invalid URL",cause:t})}}function hin(n){let e=new Headers;for(let i in n){let t=n[i];if(typeof i==="string"&&i.startsWith(":"))continue;if(Array.isArray(t))for(let a of t)e.append(i,a);else if(t!=null)e.append(i,t)}return e}function Ain(n,e,i){let t=new AbortController,a=()=>{e.off("close",a),n.off("aborted",a),t.abort()};e.once("close",a),n.once("aborted",a);let r=nS(n),o={headers:hin(n.headers),method:n.method,signal:t.signal};if(n.method!=="GET"&&n.method!=="HEAD")o.body=Ein(n,i),o.duplex="half";return new Request(r,o)}async function Din(n,e){if(n.write(e)===!1)await new Promise((i,t)=>{let a=(u)=>{t(u),o()},r=()=>{i(),o()},o=()=>{n.off("error",a),n.off("drain",r)};n.once("error",a),n.once("drain",r)})}async function win(n){let{res:e}=n;try{let i=new WritableStream({async write(t){var a;await Din(e,t),(a=e.flush)===null||a===void 0||a.call(e)}});await n.body.pipeTo(i,{signal:n.signal})}catch(i){if(QT(i))return;throw i}}async function vin(n){let{response:e,rawResponse:i}=n;if(i.statusCode===200)i.statusCode=e.status;for(let[t,a]of e.headers)i.setHeader(t,a);try{if(e.body)await win({res:i,signal:n.request.signal,body:e.body})}catch(t){if(!i.headersSent)i.statusCode=500;throw t}finally{i.end()}}var eb=Re(Qa(),1);function eS(n){return(e)=>{var i;let{res:t,req:a}=n,r=ra(e),o=dl({config:n.router._def._config,error:r,type:"unknown",path:void 0,input:void 0,ctx:void 0});(i=n.onError)===null||i===void 0||i.call(n,{req:a,error:r,type:"unknown",path:void 0,input:void 0,ctx:void 0});let u=Xp(n.router._def._config,{error:o});t.statusCode=o.data.httpStatus,t.end(JSON.stringify(u))}}async function DM(n){return new Promise((e)=>{var i;let t=(i=n.middleware)!==null&&i!==void 0?i:(a,r,o)=>o();return n.res.once("finish",()=>{e()}),t(n.req,n.res,(a)=>{pl(async()=>{var r;let o=Ain(n.req,n.res,{maxBodySize:(r=n.maxBodySize)!==null&&r!==void 0?r:null}),u=async(l)=>{var c;return await((c=n.createContext)===null||c===void 0?void 0:c.call(n,(0,eb.default)((0,eb.default)({},n),l)))},s=await dM((0,eb.default)((0,eb.default)({},n),{},{req:o,error:a?ra(a):null,createContext:u,onError(l){var c;n===null||n===void 0||(c=n.onError)===null||c===void 0||c.call(n,(0,eb.default)((0,eb.default)({},l),{},{req:n.req}))}}));await vin({request:o,response:s,rawResponse:n.res})}).catch(eS(n))})})}var iS=Re(Qa(),1);function Rin(n){var e;let t=((e=n.basePath)!==null&&e!==void 0?e:"/").length;return(a,r)=>{let o="";pl(async()=>{o=nS(a).pathname.slice(t),await DM((0,iS.default)((0,iS.default)({},n),{},{req:a,res:r,path:o}))}).catch(eS((0,iS.default)({req:a,res:r,path:o},n)))}}function wM(n){return Rin(n)}var vr=(n)=>JSON.parse(n),ii=(n)=>JSON.stringify(n),_Nn=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var fl=class n extends Set{mode="record";subject=new Ye;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(e,i=0){super(e);if(e instanceof n)this.parent=e,this.cacheUpdateNumber=e.cacheUpdateNumber;if(i)this.cacheLimit=i,this.cache=new Array(i),this.subscribe("auto cache",(t)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=t})}view(){return this}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(e){let i=new n(e.members,e.cacheLimit);return i.cache=e.cache,i.cacheIdx=e.cacheIdx,i.cacheUpdateNumber=e.cacheUpdateNumber,i}add(e){let i=super.add(e);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${ii(e)}`);return i}clear(){let e=this.mode==="record"?[...this]:null;if(super.clear(),e)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(e)}`)}delete(e){let i=super.delete(e);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${ii(e)}`);return i}parent=null;child=null;transactionUpdates=null;transaction(e){this.mode="transaction",this.transactionUpdates=[],this.child=new n(this);let i=this.child._subscribe("transaction",(t)=>{this.transactionUpdates?.push(t)});try{if(e(this.child)){for(let a of this.transactionUpdates)this.doStep(a);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(t){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",t),t}finally{i(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(e,i){return this.subject.subscribe(e,i)}subscribe(e,i){return this.subject.subscribe(e,(t)=>{i(`${this.cacheUpdateNumber}=${t}`)})}emit(e){this.subject.next(e)}doStep(e){let i=e.indexOf(":"),t=e.substring(0,i),a=e.substring(i+1);switch(t){case"add":this.add(JSON.parse(a));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(a));break;case"tx":for(let r of a.split(";"))this.doStep(r)}}getUpdateNumber(e){let i=e.indexOf("=");return Number(e.substring(0,i))}do(e){let i=e.indexOf("="),t=Number(e.substring(0,i)),a=t-this.cacheUpdateNumber;if(a>0){if(a===1){this.mode="playback";let o=e.substring(i+1);return this.doStep(o),this.mode="record",this.cacheUpdateNumber=t,null}return this.cacheUpdateNumber+1}if(Math.abs(a)<this.cacheLimit){let o=this.cacheIdx+a;if(this.cache[o]===e)return null;this.mode="playback";let s=!1;while(!s){this.cacheIdx%=this.cacheLimit;let c=this.cache[this.cacheIdx];if(this.cacheIdx--,!c)return"OUT_OF_RANGE";this.undo(c),s=this.cacheIdx===o-1}let l=e.substring(i+1);return this.doStep(l),this.mode="record",this.cacheUpdateNumber=t,null}return"OUT_OF_RANGE"}undoStep(e){let i=e.indexOf(":"),t=e.substring(0,i),a=e.substring(i+1);switch(t){case"add":this.delete(JSON.parse(a));break;case"del":this.add(JSON.parse(a));break;case"clear":{let r=JSON.parse(a);for(let o of r)this.add(o);break}case"tx":{let r=a.split(";");for(let o=r.length-1;o>=0;o--)this.undoStep(r[o])}}}undo(e){let i=e.indexOf("=");if(Number(e.substring(0,i))===this.cacheUpdateNumber){this.mode="playback";let a=e.substring(i+1);return this.undoStep(a),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function _M(n=Math.random){return n().toString(36).slice(2)}function ne(n){while(n.child!==null)n=n.child;return n}var Tin=class n{_buffer;_index=0;constructor(e){let i;if(typeof e==="number")i=e;else i=e.length;this._buffer=Array.from({length:i})}get buffer(){return this._buffer}get index(){return this._index}add(e){this._buffer[this._index]=e,this._index=(this._index+1)%this._buffer.length}copy(){let e=new n([...this._buffer]);return e._index=this._index,e}},Sin={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"};function xin(n,e){let i=ii(e),t=`${n.key}(${i})`,a=Sin[n.type],r={key:t,type:a};return Object.assign(r,{family:{key:n.key,subKey:i}}),Object.assign(r,{counterfeit:!0}),r}function tb(n){let e={key:n.key,type:n.type};if("family"in n)e.family=n.family;return e}var kt=class{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(n,e)=>`${n}:${e}`;warn;getRelatedKeys(n){return this.relations.get(n)}addRelation(n,e){let i=this.relations.get(n),t=this.relations.get(e);if(i)i.add(e);else i=new Set([e]),this.relations.set(n,i);if(t)t.add(n);else t=new Set([n]),this.relations.set(e,t)}deleteRelation(n,e){let i=this.relations.get(n);if(i){if(i.delete(e),i.size===0)this.relations.delete(n);let t=this.relations.get(e);if(t){if(t.delete(n),t.size===0)this.relations.delete(e)}}}replaceRelationsUnsafely(n,e){this.relations.set(n,new Set(e));for(let i of e){let t=new Set().add(n);this.relations.set(i,t)}}replaceRelationsSafely(n,e){let i=this.relations.get(n),t=this.isAType?.(n)?n:void 0,a=t===void 0?n:void 0;if(i)for(let r of i){t??=r,a??=r;let o=this.relations.get(r);if(o){if(o.size===1)this.relations.delete(r);else o.delete(n);this.contents.delete(this.makeContentKey(t,a))}}this.relations.set(n,new Set(e));for(let r of e){let o=this.relations.get(r);if(o)o.add(n);else o=new Set().add(n),this.relations.set(r,o)}}getContentInternal(n){return this.contents.get(n)}setContent(n,e){this.contents.set(n,e)}deleteContent(n){this.contents.delete(n)}constructor(n,e){if(this.a=n.between[0],this.b=n.between[1],this.cardinality=n.cardinality,!e?.externalStore)this.relations=new Map(n.relations?.map(([i,t])=>[i,new Set(t)])),this.contents=new Map(n.contents);if(this.isAType=e?.isAType??null,this.isBType=e?.isBType??null,this.isContent=e?.isContent??null,e?.makeContentKey)this.makeContentKey=e.makeContentKey;if(e?.externalStore){let i=e.externalStore;if(this.has=(t,a)=>i.has(t,a),this.addRelation=(t,a)=>{i.addRelation(t,a)},this.deleteRelation=(t,a)=>{i.deleteRelation(t,a)},this.replaceRelationsSafely=(t,a)=>{i.replaceRelationsSafely(t,a)},this.replaceRelationsUnsafely=(t,a)=>{i.replaceRelationsUnsafely(t,a)},this.getRelatedKeys=(t)=>i.getRelatedKeys(t),i.getContent)this.getContentInternal=(t)=>{return i.getContent(t)},this.setContent=(t,a)=>{i.setContent(t,a)},this.deleteContent=(t)=>{i.deleteContent(t)};for(let[t,a]of n.relations??[]){let r=this.isAType?.(t)?t:void 0,o=r===void 0?t:void 0;for(let u of a)r??=u,o??=u,this.addRelation(r,o)}for(let[t,a]of n.contents??[])this.setContent(t,a)}if(e?.warn)this.warn=e.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([n,e])=>[n,[...e]]),contents:[...this.contents.entries()]}}set(...n){let e,i,t;switch(n.length){case 1:{let a=n[0];e=a[this.a],i=a[this.b],t=void 0;break}case 2:{let a=n[0];if(typeof a==="string")[e,i]=n;else e=a[this.a],i=a[this.b],t=n[1];break}default:e=n[0],i=n[1],t=n[2];break}switch(this.cardinality){case"1:1":{let a=this.getRelatedKey(e);if(a&&a!==i)this.delete(e,a)}case"1:n":{let a=this.getRelatedKey(i);if(a&&a!==e)this.delete(a,i)}break;case"n:n":}if(t){let a=this.makeContentKey(e,i);this.setContent(a,t)}return this.addRelation(e,i),this}delete(n,e){e=typeof e==="string"?e:n[this.b];let i=typeof n==="string"?n:n[this.a];if(i===void 0&&typeof e==="string"){let t=this.getRelatedKeys(e);if(t)for(let a of t)this.delete(a,e)}if(typeof i==="string"&&e===void 0){let t=this.getRelatedKeys(i);if(t)for(let a of t)this.delete(i,a)}if(typeof i==="string"&&typeof e==="string"){this.deleteRelation(i,e);let t=this.makeContentKey(i,e);this.deleteContent(t)}return this}getRelatedKey(n){let e=this.getRelatedKeys(n);if(e){if(e.size>1)this.warn?.(`${e.size} related keys were found for key "${n}": (${[...e].map((t)=>`"${t}"`).join(", ")}). Only one related key was expected.`);let i;for(let t of e){i=t;break}return i}}replaceRelations(n,e,i){let t=!Array.isArray(e),a=t?Object.keys(e):e;if(i?.reckless)this.replaceRelationsUnsafely(n,a);else this.replaceRelationsSafely(n,a);if(t)for(let r of a){let o=this.makeContentKey(n,r),u=e[r];this.setContent(o,u)}return this}getContent(n,e){let i=this.makeContentKey(n,e);return this.getContentInternal(i)}getRelationEntries(n){let e=n[this.a],i=n[this.b];if(e!==void 0&&i===void 0){let t=this.getRelatedKeys(e);if(t)return[...t].map((a)=>{return[a,this.getContent(e,a)]})}if(e===void 0&&i!==void 0){let t=this.getRelatedKeys(i);if(t)return[...t].map((a)=>{return[a,this.getContent(a,i)]})}return[]}has(n,e){if(e)return this.getRelatedKeys(n)?.has(e)??!1;return this.relations.has(n)}},Ye=class{Subscriber;subscribers=new Map;subscribe(n,e){return this.subscribers.set(n,e),()=>{this.unsubscribe(n)}}unsubscribe(n){this.subscribers.delete(n)}next(n){let e=this.subscribers.values();for(let i of e)i(n)}},_in=class extends Ye{state;constructor(n){super();this.state=n}next(n){this.state=n,super.next(n)}},Nin=(n,e)=>{let i=ne(n);if(i.operation.open)return i.operation.prev.get(e.key);return i.valueMap.get(e.key)},tS=class extends Promise{fate;resolve;reject;done=!1;constructor(n){let e,i;super((t,a)=>{e=t,i=a});this.resolve=e,this.reject=i,this.use(n instanceof Promise?n:new Promise(n))}pass(n,e){if(n===this.fate)this.resolve(e),this.done=!0}fail(n,e){if(n===this.fate)this.reject(e),this.done=!0}use(n){if(this===n)return;if(n instanceof Promise){let e=n;this.fate=e,e.then((i)=>{this.pass(e,i)},(i)=>{this.fail(e,i)})}else this.resolve(n),this.fate=void 0}};function Dc(n){return"epoch"in n.transactionMeta}function Ka(n){return"phase"in n.transactionMeta}var NM=(n,e)=>{if(n.operation.open){let i=performance.now();return n.logger.info("\u2757",e.type,e.key,`deferring setState at T-${i} until setState for "${n.operation.token.key}" is done`),i}n.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:e},n.logger.info("\u2B55",e.type,e.key,`operation start in store "${n.config.name}"${!Ka(n)?"":` ${n.transactionMeta.phase} "${n.transactionMeta.update.key}"`}`)},FM=(n)=>{if(n.operation.open)n.logger.info("\uD83D\uDD34",n.operation.token.type,n.operation.token.key,`operation done in store "${n.config.name}"`);n.operation={open:!1},n.on.operationClose.next(n.operation)},CM=(n,e)=>{if(!n.operation.open)return n.logger.error("\uD83D\uDC1E","unknown",e,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return n.operation.done.has(e)},vE=(n,e)=>{if(!n.operation.open){n.logger.error("\uD83D\uDC1E","unknown",e,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}n.operation.done.add(e)};function aS(n,e){let i=ne(n),{key:t,type:a}=e,r=i.selectorAtoms.getRelatedKeys(t);if(i.logger.info("\uD83E\uDDF9",a,t,r?`evicting ${r.size} states downstream:`:"no downstream states",r??"to evict"),r){if(i.operation.open)i.logger.info("\uD83E\uDDF9",a,t,`[ ${[...i.operation.done].join(", ")} ] already done`);for(let o of r){if(CM(i,o))continue;LM(i,o),vE(i,o)}}}function OM(n,e){let i=ne(n),t=i.selectorGraph.getRelationEntries({upstreamSelectorKey:e}).filter(([a,{source:r}])=>r===e);for(let[a]of t){if(CM(i,a))continue;LM(i,a),vE(i,a),OM(n,a)}}function ws(n,e,i){let{key:t,subject:a,type:r}=e,o=n.valueMap.get(t);if(o instanceof tS&&!o.done){let u=o;if(i instanceof Promise)return u.use(i),u;return n.valueMap.set(t,i),i}if(i instanceof Promise){let u=new tS(i);return n.valueMap.set(t,u),u.then(function s(l){if(n.valueMap.get(t)===u){switch(NM(n,e),ws(n,e,l),r){case"atom":case"mutable_atom":aS(n,e);break;case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":OM(n,t);break}FM(n),a.next({newValue:l,oldValue:u})}}).catch((s)=>{n.logger.error("\uD83D\uDCA5","state",t,"rejected:",s)}),u}return n.valueMap.set(t,i),i}function Fin(n,e,i){n.logger.info("\uD83D\uDCD6",e.type,e.key,"reading cached value");let t=n.valueMap.get(e.key);if(i==="mut"&&e.type==="mutable_atom"&&Ka(n)){let r=e,{parent:o}=n;if(n.valueMap.hasOwn(r.key))return t;let u=o.valueMap.get(r.key);n.logger.info("\uD83D\uDCC3","atom",r.key,"copying");let s=u.toJSON(),l=r.class.fromJSON(s);n.valueMap.set(r.key,l),new gS(r,o),t=l}return t}function LM(n,e){let i=n.valueMap.get(e);if(i instanceof tS){let t=n.writableSelectors.get(e)??n.readonlySelectors.get(e);if(t)t.get();return}if(n.operation.open)n.operation.prev.set(e,i);n.valueMap.delete(e),n.logger.info("\uD83D\uDDD1","state",e,"evicted")}function ab(n,e,i){if(n.valueMap.has(e.key))return Fin(n,e,i);let{key:t}=e;switch(e.type){case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":return n.logger.info("\uD83E\uDDEE",e.type,t,"computing value"),e.get();case"atom":{let a;if(e.default instanceof Function)a=e.default();else a=e.default;let r=ws(n,e,a);return n.logger.info("\uD83D\uDC81","atom",e.key,"could not find cached value; using default",a),r}case"mutable_atom":{let a=new e.class,r=ws(n,e,a);return n.logger.info("\uD83D\uDC81","mutable_atom",e.key,"could not find cached value; using default",a),r}}}var oS=(n)=>(e)=>n instanceof Function?n(e):n;function Cin(n,e){if("internalRoles"in n===!1)return!1;return n.internalRoles.includes(e)}var Oin=(n,e,i)=>{switch(e.type){case"mutable_atom":n.logger.info("\uD83D\uDCE2",e.type,e.key,"is now (",i.newValue,") subscribers:",e.subject.subscribers);break;case"atom":case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":n.logger.info("\uD83D\uDCE2",e.type,e.key,"went (",i.oldValue,"->",i.newValue,") subscribers:",e.subject.subscribers)}e.subject.next(i)},rS=(n,e,i)=>{let t=ab(n,e,"mut"),a=oS(i)(t);n.logger.info("\uD83D\uDCDD","atom",e.key,"set to",a),a=ws(n,e,a),vE(n,e.key),aS(n,e);let r={oldValue:t,newValue:a};if(!Ka(n)){Oin(n,e,r);return}if(n.on.transactionApplying.state===null){let{key:o}=e;if(ttn(r.newValue))return;let u={type:"atom_update",key:o,...r};if(e.family)u.family=e.family;n.transactionMeta.update.updates.push(u),n.logger.info("\uD83D\uDCC1","atom",o,"stowed (",r.oldValue,"->",r.newValue,")")}else if(Cin(e,"tracker:signal")){let o=e.key.slice(1),u=n.atoms.get(o);if(ab(n,u,"mut").do(r.newValue)===null===!0)aS(n,u)}};function vM(n,e){switch(e.type){case"mutable_atom":rS(n,e,new e.class);return;case"atom":{let i=e.default;if(i instanceof Function)i=i();rS(n,e,i)}}}function Lin(n,e){switch(e.type){case"atom":case"mutable_atom":vM(n,e);break;case"writable_pure_selector":case"writable_held_selector":{let i=BD(n,e.key);for(let t of i.values())vM(n,t)}break}}function Iin(n,e){if(e.family){let i=n.families.get(e.family.key);if(i)return i}}var IM=(n,e,i)=>{switch(e.type){case"atom":case"mutable_atom":rS(n,e,i);break;case"writable_pure_selector":case"writable_held_selector":e.set(i);break}};function lt(n,...e){let i,t,a,r;if(e.length===2){if(i=e[0],r=e[1],i.family)t=Iin(n,i),a=vr(i.family.subKey),i=He(n,t,a)}else t=e[0],a=e[1],r=e[2],i=He(n,t,a);let o=r===PD?"reset":"set";if("counterfeit"in i&&"family"in i){let l=i.family.subKey,c=n.disposalTraces.buffer.find((f)=>f?.key===l);n.logger.error("\u274C",i.type,i.key,"could not be",o,`because it was not found in the store "${n.config.name}".`,c?`This state was previously disposed:
291
+ `.trim();async function AM(n,e,i){try{let t=e.middlewares[n];return await t((0,st.default)((0,st.default)({},i),{},{meta:e.meta,input:i.input,next(r){var o;let u=r;return AM(n+1,e,(0,st.default)((0,st.default)({},i),{},{ctx:(u===null||u===void 0?void 0:u.ctx)?(0,st.default)((0,st.default)({},i.ctx),u.ctx):i.ctx,input:u&&"input"in u?u.input:i.input,getRawInput:(o=u===null||u===void 0?void 0:u.getRawInput)!==null&&o!==void 0?o:i.getRawInput}))}}))}catch(t){return{ok:!1,error:ra(t),marker:mM}}}function gin(n){async function e(i){if(!i||!("getRawInput"in i))throw new Error(bin);let t=await AM(0,n,i);if(!t)throw new Vn({code:"INTERNAL_SERVER_ERROR",message:"No result from middlewares - did you forget to `return next()`?"});if(!t.ok)throw t.error;return t.data}return e._def=n,e.procedure=!0,e.meta=n.meta,e}var Jf,qf,nb,bM=typeof window==="undefined"||"Deno"in window||((Jf=globalThis.process)===null||Jf===void 0||(Jf=Jf.env)===null||Jf===void 0?void 0:Jf.NODE_ENV)==="test"||!!((qf=globalThis.process)===null||qf===void 0||(qf=qf.env)===null||qf===void 0?void 0:qf.JEST_WORKER_ID)||!!((nb=globalThis.process)===null||nb===void 0||(nb=nb.env)===null||nb===void 0?void 0:nb.VITEST_WORKER_ID),gM=Re(Qa(),1),min=class n{context(){return new n}meta(){return new n}create(e){var i,t,a,r,o,u;let s=(0,gM.default)((0,gM.default)({},e),{},{transformer:H9((i=e===null||e===void 0?void 0:e.transformer)!==null&&i!==void 0?i:Kf),isDev:(t=e===null||e===void 0?void 0:e.isDev)!==null&&t!==void 0?t:((a=globalThis.process)===null||a===void 0?void 0:a.env.NODE_ENV)!=="production",allowOutsideOfServer:(r=e===null||e===void 0?void 0:e.allowOutsideOfServer)!==null&&r!==void 0?r:!1,errorFormatter:(o=e===null||e===void 0?void 0:e.errorFormatter)!==null&&o!==void 0?o:Qf,isServer:(u=e===null||e===void 0?void 0:e.isServer)!==null&&u!==void 0?u:bM,$types:null});{var l;if(!((l=e===null||e===void 0?void 0:e.isServer)!==null&&l!==void 0?l:bM)&&(e===null||e===void 0?void 0:e.allowOutsideOfServer)!==!0)throw new Error("You're trying to use @trpc/server in a non-server environment. This is not supported by default.")}return{_config:s,procedure:hM({meta:e===null||e===void 0?void 0:e.defaultMeta}),middleware:oin(),router:GT(s),mergeRouters:k9,createCallerFactory:zT()}}},qT=new min;function Ein(n,e){if("body"in n){if(n.body===void 0)return;if(typeof n.body==="string")return n.body;return JSON.stringify(n.body)}let i=0,t=!1;return new ReadableStream({start(a){let r=(u)=>{if(i+=u.length,!e.maxBodySize||i<=e.maxBodySize){a.enqueue(new Uint8Array(u.buffer,u.byteOffset,u.byteLength));return}a.error(new Vn({code:"PAYLOAD_TOO_LARGE"})),t=!0,n.off("data",r),n.off("end",o)},o=()=>{if(t)return;t=!0,n.off("data",r),n.off("end",o),a.close()};n.on("data",r),n.on("end",o)},cancel(){n.destroy()}})}function nS(n){try{var e,i;let t=n.headers[":scheme"]&&n.headers[":scheme"]==="https"||n.socket&&"encrypted"in n.socket&&n.socket.encrypted?"https:":"http:",a=(e=(i=n.headers.host)!==null&&i!==void 0?i:n.headers[":authority"])!==null&&e!==void 0?e:"localhost";return new URL(n.url,`${t}//${a}`)}catch(t){throw new Vn({code:"BAD_REQUEST",message:"Invalid URL",cause:t})}}function hin(n){let e=new Headers;for(let i in n){let t=n[i];if(typeof i==="string"&&i.startsWith(":"))continue;if(Array.isArray(t))for(let a of t)e.append(i,a);else if(t!=null)e.append(i,t)}return e}function Ain(n,e,i){let t=new AbortController,a=()=>{e.off("close",a),n.off("aborted",a),t.abort()};e.once("close",a),n.once("aborted",a);let r=nS(n),o={headers:hin(n.headers),method:n.method,signal:t.signal};if(n.method!=="GET"&&n.method!=="HEAD")o.body=Ein(n,i),o.duplex="half";return new Request(r,o)}async function Din(n,e){if(n.write(e)===!1)await new Promise((i,t)=>{let a=(u)=>{t(u),o()},r=()=>{i(),o()},o=()=>{n.off("error",a),n.off("drain",r)};n.once("error",a),n.once("drain",r)})}async function win(n){let{res:e}=n;try{let i=new WritableStream({async write(t){var a;await Din(e,t),(a=e.flush)===null||a===void 0||a.call(e)}});await n.body.pipeTo(i,{signal:n.signal})}catch(i){if(QT(i))return;throw i}}async function vin(n){let{response:e,rawResponse:i}=n;if(i.statusCode===200)i.statusCode=e.status;for(let[t,a]of e.headers)i.setHeader(t,a);try{if(e.body)await win({res:i,signal:n.request.signal,body:e.body})}catch(t){if(!i.headersSent)i.statusCode=500;throw t}finally{i.end()}}var eb=Re(Qa(),1);function eS(n){return(e)=>{var i;let{res:t,req:a}=n,r=ra(e),o=dl({config:n.router._def._config,error:r,type:"unknown",path:void 0,input:void 0,ctx:void 0});(i=n.onError)===null||i===void 0||i.call(n,{req:a,error:r,type:"unknown",path:void 0,input:void 0,ctx:void 0});let u=Xp(n.router._def._config,{error:o});t.statusCode=o.data.httpStatus,t.end(JSON.stringify(u))}}async function DM(n){return new Promise((e)=>{var i;let t=(i=n.middleware)!==null&&i!==void 0?i:(a,r,o)=>o();return n.res.once("finish",()=>{e()}),t(n.req,n.res,(a)=>{pl(async()=>{var r;let o=Ain(n.req,n.res,{maxBodySize:(r=n.maxBodySize)!==null&&r!==void 0?r:null}),u=async(l)=>{var c;return await((c=n.createContext)===null||c===void 0?void 0:c.call(n,(0,eb.default)((0,eb.default)({},n),l)))},s=await dM((0,eb.default)((0,eb.default)({},n),{},{req:o,error:a?ra(a):null,createContext:u,onError(l){var c;n===null||n===void 0||(c=n.onError)===null||c===void 0||c.call(n,(0,eb.default)((0,eb.default)({},l),{},{req:n.req}))}}));await vin({request:o,response:s,rawResponse:n.res})}).catch(eS(n))})})}var iS=Re(Qa(),1);function Rin(n){var e;let t=((e=n.basePath)!==null&&e!==void 0?e:"/").length;return(a,r)=>{let o="";pl(async()=>{o=nS(a).pathname.slice(t),await DM((0,iS.default)((0,iS.default)({},n),{},{req:a,res:r,path:o}))}).catch(eS((0,iS.default)({req:a,res:r,path:o},n)))}}function wM(n){return Rin(n)}var vr=(n)=>JSON.parse(n),ii=(n)=>JSON.stringify(n),_Nn=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var fl=class n extends Set{mode="record";subject=new Ye;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(e,i=0){super(e);if(e instanceof n)this.parent=e,this.cacheUpdateNumber=e.cacheUpdateNumber;if(i)this.cacheLimit=i,this.cache=new Array(i),this.subscribe("auto cache",(t)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=t})}view(){return this}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(e){let i=new n(e.members,e.cacheLimit);return i.cache=e.cache,i.cacheIdx=e.cacheIdx,i.cacheUpdateNumber=e.cacheUpdateNumber,i}add(e){let i=super.add(e);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${ii(e)}`);return i}clear(){let e=this.mode==="record"?[...this]:null;if(super.clear(),e)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(e)}`)}delete(e){let i=super.delete(e);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${ii(e)}`);return i}parent=null;child=null;transactionUpdates=null;transaction(e){this.mode="transaction",this.transactionUpdates=[],this.child=new n(this);let i=this.child._subscribe("transaction",(t)=>{this.transactionUpdates?.push(t)});try{if(e(this.child)){for(let a of this.transactionUpdates)this.doStep(a);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(t){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",t),t}finally{i(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(e,i){return this.subject.subscribe(e,i)}subscribe(e,i){return this.subject.subscribe(e,(t)=>{i(`${this.cacheUpdateNumber}=${t}`)})}emit(e){this.subject.next(e)}doStep(e){let i=e.indexOf(":"),t=e.substring(0,i),a=e.substring(i+1);switch(t){case"add":this.add(JSON.parse(a));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(a));break;case"tx":for(let r of a.split(";"))this.doStep(r)}}getUpdateNumber(e){let i=e.indexOf("=");return Number(e.substring(0,i))}do(e){let i=e.indexOf("="),t=Number(e.substring(0,i)),a=t-this.cacheUpdateNumber;if(a>0){if(a===1){this.mode="playback";let o=e.substring(i+1);return this.doStep(o),this.mode="record",this.cacheUpdateNumber=t,null}return this.cacheUpdateNumber+1}if(Math.abs(a)<this.cacheLimit){let o=this.cacheIdx+a;if(this.cache[o]===e)return null;this.mode="playback";let s=!1;while(!s){this.cacheIdx%=this.cacheLimit;let c=this.cache[this.cacheIdx];if(this.cacheIdx--,!c)return"OUT_OF_RANGE";this.undo(c),s=this.cacheIdx===o-1}let l=e.substring(i+1);return this.doStep(l),this.mode="record",this.cacheUpdateNumber=t,null}return"OUT_OF_RANGE"}undoStep(e){let i=e.indexOf(":"),t=e.substring(0,i),a=e.substring(i+1);switch(t){case"add":this.delete(JSON.parse(a));break;case"del":this.add(JSON.parse(a));break;case"clear":{let r=JSON.parse(a);for(let o of r)this.add(o);break}case"tx":{let r=a.split(";");for(let o=r.length-1;o>=0;o--)this.undoStep(r[o])}}}undo(e){let i=e.indexOf("=");if(Number(e.substring(0,i))===this.cacheUpdateNumber){this.mode="playback";let a=e.substring(i+1);return this.undoStep(a),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function _M(n=Math.random){return n().toString(36).slice(2)}function ne(n){while(n.child!==null)n=n.child;return n}var Tin=class n{_buffer;_index=0;constructor(e){let i;if(typeof e==="number")i=e;else i=e.length;this._buffer=Array.from({length:i})}get buffer(){return this._buffer}get index(){return this._index}add(e){this._buffer[this._index]=e,this._index=(this._index+1)%this._buffer.length}copy(){let e=new n([...this._buffer]);return e._index=this._index,e}},Sin={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"};function xin(n,e){let i=ii(e),t=`${n.key}(${i})`,a=Sin[n.type],r={key:t,type:a};return Object.assign(r,{family:{key:n.key,subKey:i}}),Object.assign(r,{counterfeit:!0}),r}function tb(n){let e={key:n.key,type:n.type};if("family"in n)e.family=n.family;return e}var kt=class{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(n,e)=>`${n}:${e}`;warn;getRelatedKeys(n){return this.relations.get(n)}addRelation(n,e){let i=this.relations.get(n),t=this.relations.get(e);if(i)i.add(e);else i=new Set([e]),this.relations.set(n,i);if(t)t.add(n);else t=new Set([n]),this.relations.set(e,t)}deleteRelation(n,e){let i=this.relations.get(n);if(i){if(i.delete(e),i.size===0)this.relations.delete(n);let t=this.relations.get(e);if(t){if(t.delete(n),t.size===0)this.relations.delete(e)}}}replaceRelationsUnsafely(n,e){this.relations.set(n,new Set(e));for(let i of e){let t=new Set().add(n);this.relations.set(i,t)}}replaceRelationsSafely(n,e){let i=this.relations.get(n),t=this.isAType?.(n)?n:void 0,a=t===void 0?n:void 0;if(i)for(let r of i){t??=r,a??=r;let o=this.relations.get(r);if(o){if(o.size===1)this.relations.delete(r);else o.delete(n);this.contents.delete(this.makeContentKey(t,a))}}this.relations.set(n,new Set(e));for(let r of e){let o=this.relations.get(r);if(o)o.add(n);else o=new Set().add(n),this.relations.set(r,o)}}getContentInternal(n){return this.contents.get(n)}setContent(n,e){this.contents.set(n,e)}deleteContent(n){this.contents.delete(n)}constructor(n,e){if(this.a=n.between[0],this.b=n.between[1],this.cardinality=n.cardinality,!e?.externalStore)this.relations=new Map(n.relations?.map(([i,t])=>[i,new Set(t)])),this.contents=new Map(n.contents);if(this.isAType=e?.isAType??null,this.isBType=e?.isBType??null,this.isContent=e?.isContent??null,e?.makeContentKey)this.makeContentKey=e.makeContentKey;if(e?.externalStore){let i=e.externalStore;if(this.has=(t,a)=>i.has(t,a),this.addRelation=(t,a)=>{i.addRelation(t,a)},this.deleteRelation=(t,a)=>{i.deleteRelation(t,a)},this.replaceRelationsSafely=(t,a)=>{i.replaceRelationsSafely(t,a)},this.replaceRelationsUnsafely=(t,a)=>{i.replaceRelationsUnsafely(t,a)},this.getRelatedKeys=(t)=>i.getRelatedKeys(t),i.getContent)this.getContentInternal=(t)=>{return i.getContent(t)},this.setContent=(t,a)=>{i.setContent(t,a)},this.deleteContent=(t)=>{i.deleteContent(t)};for(let[t,a]of n.relations??[]){let r=this.isAType?.(t)?t:void 0,o=r===void 0?t:void 0;for(let u of a)r??=u,o??=u,this.addRelation(r,o)}for(let[t,a]of n.contents??[])this.setContent(t,a)}if(e?.warn)this.warn=e.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([n,e])=>[n,[...e]]),contents:[...this.contents.entries()]}}set(...n){let e,i,t;switch(n.length){case 1:{let a=n[0];e=a[this.a],i=a[this.b],t=void 0;break}case 2:{let a=n[0];if(typeof a==="string")[e,i]=n;else e=a[this.a],i=a[this.b],t=n[1];break}default:e=n[0],i=n[1],t=n[2];break}switch(this.cardinality){case"1:1":{let a=this.getRelatedKey(e);if(a&&a!==i)this.delete(e,a)}case"1:n":{let a=this.getRelatedKey(i);if(a&&a!==e)this.delete(a,i)}break;case"n:n":}if(t){let a=this.makeContentKey(e,i);this.setContent(a,t)}return this.addRelation(e,i),this}delete(n,e){e=typeof e==="string"?e:n[this.b];let i=typeof n==="string"?n:n[this.a];if(i===void 0&&typeof e==="string"){let t=this.getRelatedKeys(e);if(t)for(let a of t)this.delete(a,e)}if(typeof i==="string"&&e===void 0){let t=this.getRelatedKeys(i);if(t)for(let a of t)this.delete(i,a)}if(typeof i==="string"&&typeof e==="string"){this.deleteRelation(i,e);let t=this.makeContentKey(i,e);this.deleteContent(t)}return this}getRelatedKey(n){let e=this.getRelatedKeys(n);if(e){if(e.size>1)this.warn?.(`${e.size} related keys were found for key "${n}": (${[...e].map((t)=>`"${t}"`).join(", ")}). Only one related key was expected.`);let i;for(let t of e){i=t;break}return i}}replaceRelations(n,e,i){let t=!Array.isArray(e),a=t?Object.keys(e):e;if(i?.reckless)this.replaceRelationsUnsafely(n,a);else this.replaceRelationsSafely(n,a);if(t)for(let r of a){let o=this.makeContentKey(n,r),u=e[r];this.setContent(o,u)}return this}getContent(n,e){let i=this.makeContentKey(n,e);return this.getContentInternal(i)}getRelationEntries(n){let e=n[this.a],i=n[this.b];if(e!==void 0&&i===void 0){let t=this.getRelatedKeys(e);if(t)return[...t].map((a)=>{return[a,this.getContent(e,a)]})}if(e===void 0&&i!==void 0){let t=this.getRelatedKeys(i);if(t)return[...t].map((a)=>{return[a,this.getContent(a,i)]})}return[]}has(n,e){if(e)return this.getRelatedKeys(n)?.has(e)??!1;return this.relations.has(n)}},Ye=class{Subscriber;subscribers=new Map;subscribe(n,e){return this.subscribers.set(n,e),()=>{this.unsubscribe(n)}}unsubscribe(n){this.subscribers.delete(n)}next(n){let e=this.subscribers.values();for(let i of e)i(n)}},_in=class extends Ye{state;constructor(n){super();this.state=n}next(n){this.state=n,super.next(n)}},Nin=(n,e)=>{let i=ne(n);if(i.operation.open)return i.operation.prev.get(e.key);return i.valueMap.get(e.key)},tS=class extends Promise{fate;resolve;reject;done=!1;constructor(n){let e,i;super((t,a)=>{e=t,i=a});this.resolve=e,this.reject=i,this.use(n instanceof Promise?n:new Promise(n))}pass(n,e){if(n===this.fate)this.resolve(e),this.done=!0}fail(n,e){if(n===this.fate)this.reject(e),this.done=!0}use(n){if(this===n)return;if(n instanceof Promise){let e=n;this.fate=e,e.then((i)=>{this.pass(e,i)},(i)=>{this.fail(e,i)})}else this.resolve(n),this.fate=void 0}};function Dc(n){return"epoch"in n.transactionMeta}function Ka(n){return"phase"in n.transactionMeta}var NM=(n,e)=>{if(n.operation.open){let i=performance.now();return n.logger.info("\u2757",e.type,e.key,`deferring setState at T-${i} until setState for "${n.operation.token.key}" is done`),i}n.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:e},n.logger.info("\u2B55",e.type,e.key,`operation start in store "${n.config.name}"${!Ka(n)?"":` ${n.transactionMeta.phase} "${n.transactionMeta.update.key}"`}`)},FM=(n)=>{if(n.operation.open)n.logger.info("\uD83D\uDD34",n.operation.token.type,n.operation.token.key,`operation done in store "${n.config.name}"`);n.operation={open:!1},n.on.operationClose.next(n.operation)},CM=(n,e)=>{if(!n.operation.open)return n.logger.error("\uD83D\uDC1E","unknown",e,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return n.operation.done.has(e)},vE=(n,e)=>{if(!n.operation.open){n.logger.error("\uD83D\uDC1E","unknown",e,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}n.operation.done.add(e)};function aS(n,e){let i=ne(n),{key:t,type:a}=e,r=i.selectorAtoms.getRelatedKeys(t);if(i.logger.info("\uD83E\uDDF9",a,t,r?`evicting ${r.size} states downstream:`:"no downstream states",r??"to evict"),r){if(i.operation.open)i.logger.info("\uD83E\uDDF9",a,t,`[ ${[...i.operation.done].join(", ")} ] already done`);for(let o of r){if(CM(i,o))continue;LM(i,o),vE(i,o)}}}function OM(n,e){let i=ne(n),t=i.selectorGraph.getRelationEntries({upstreamSelectorKey:e}).filter(([a,{source:r}])=>r===e);for(let[a]of t){if(CM(i,a))continue;LM(i,a),vE(i,a),OM(n,a)}}function ws(n,e,i){let{key:t,subject:a,type:r}=e,o=n.valueMap.get(t);if(o instanceof tS&&!o.done){let u=o;if(i instanceof Promise)return u.use(i),u;return n.valueMap.set(t,i),i}if(i instanceof Promise){let u=new tS(i);return n.valueMap.set(t,u),u.then(function s(l){if(n.valueMap.get(t)===u){switch(NM(n,e),ws(n,e,l),r){case"atom":case"mutable_atom":aS(n,e);break;case"readonly_pure_selector":case"writable_pure_selector":OM(n,t);break}FM(n),a.next({newValue:l,oldValue:u})}}).catch((s)=>{n.logger.error("\uD83D\uDCA5","state",t,"rejected:",s)}),u}return n.valueMap.set(t,i),i}function Fin(n,e,i){n.logger.info("\uD83D\uDCD6",e.type,e.key,"reading cached value");let t=n.valueMap.get(e.key);if(i==="mut"&&e.type==="mutable_atom"&&Ka(n)){let r=e,{parent:o}=n;if(n.valueMap.hasOwn(r.key))return t;let u=o.valueMap.get(r.key);n.logger.info("\uD83D\uDCC3","atom",r.key,"copying");let s=u.toJSON(),l=r.class.fromJSON(s);n.valueMap.set(r.key,l),new gS(r,o),t=l}return t}function LM(n,e){let i=n.valueMap.get(e);if(i instanceof tS){let t=n.writableSelectors.get(e)??n.readonlySelectors.get(e);if(t)t.get();return}if(n.operation.open)n.operation.prev.set(e,i);n.valueMap.delete(e),n.logger.info("\uD83D\uDDD1","state",e,"evicted")}function ab(n,e,i){if(n.valueMap.has(e.key))return Fin(n,e,i);let{key:t}=e;switch(e.type){case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":return n.logger.info("\uD83E\uDDEE",e.type,t,"computing value"),e.get();case"atom":{let a;if(e.default instanceof Function)a=e.default();else a=e.default;let r=ws(n,e,a);return n.logger.info("\uD83D\uDC81","atom",e.key,"could not find cached value; using default",a),r}case"mutable_atom":{let a=new e.class,r=ws(n,e,a);return n.logger.info("\uD83D\uDC81","mutable_atom",e.key,"could not find cached value; using default",a),r}}}var oS=(n)=>(e)=>n instanceof Function?n(e):n;function Cin(n,e){if("internalRoles"in n===!1)return!1;return n.internalRoles.includes(e)}var Oin=(n,e,i)=>{switch(e.type){case"mutable_atom":n.logger.info("\uD83D\uDCE2",e.type,e.key,"is now (",i.newValue,") subscribers:",e.subject.subscribers);break;case"atom":case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":n.logger.info("\uD83D\uDCE2",e.type,e.key,"went (",i.oldValue,"->",i.newValue,") subscribers:",e.subject.subscribers)}e.subject.next(i)},rS=(n,e,i)=>{let t=ab(n,e,"mut"),a=oS(i)(t);n.logger.info("\uD83D\uDCDD","atom",e.key,"set to",a),a=ws(n,e,a),vE(n,e.key),aS(n,e);let r={oldValue:t,newValue:a};if(!Ka(n)){Oin(n,e,r);return}if(n.on.transactionApplying.state===null){let{key:o}=e;if(ttn(r.newValue))return;let u={type:"atom_update",key:o,...r};if(e.family)u.family=e.family;n.transactionMeta.update.updates.push(u),n.logger.info("\uD83D\uDCC1","atom",o,"stowed (",r.oldValue,"->",r.newValue,")")}else if(Cin(e,"tracker:signal")){let o=e.key.slice(1),u=n.atoms.get(o);if(ab(n,u,"mut").do(r.newValue)===null===!0)aS(n,u)}};function vM(n,e){switch(e.type){case"mutable_atom":rS(n,e,new e.class);return;case"atom":{let i=e.default;if(i instanceof Function)i=i();rS(n,e,i)}}}function Lin(n,e){switch(e.type){case"atom":case"mutable_atom":vM(n,e);break;case"writable_pure_selector":case"writable_held_selector":{let i=BD(n,e.key);for(let t of i.values())vM(n,t)}break}}function Iin(n,e){if(e.family){let i=n.families.get(e.family.key);if(i)return i}}var IM=(n,e,i)=>{switch(e.type){case"atom":case"mutable_atom":rS(n,e,i);break;case"writable_pure_selector":case"writable_held_selector":e.set(i);break}};function lt(n,...e){let i,t,a,r;if(e.length===2){if(i=e[0],r=e[1],i.family)t=Iin(n,i),a=vr(i.family.subKey),i=He(n,t,a)}else t=e[0],a=e[1],r=e[2],i=He(n,t,a);let o=r===PD?"reset":"set";if("counterfeit"in i&&"family"in i){let l=i.family.subKey,c=n.disposalTraces.buffer.find((f)=>f?.key===l);n.logger.error("\u274C",i.type,i.key,"could not be",o,`because it was not found in the store "${n.config.name}".`,c?`This state was previously disposed:
292
292
  ${c.trace}`:"No previous disposal trace was found.");return}let u=NM(n,i);if(u){let l=n.on.operationClose.subscribe(`waiting to ${o} "${i.key}" at T-${u}`,function c(){l(),n.logger.info("\uD83D\uDFE2",i.type,i.key,"resuming deferred",o,`from T-${u}`),lt(n,i,r)});return}let s=Tt(n,i);if(r===PD)Lin(n,s);else IM(n,s,r);FM(n)}var PD=Symbol("RESET");function YD(n,...e){let i,t,a;if(e.length===1)i=e[0],lt(n,i,PD);else t=e[0],a=e[1],lt(n,t,a,PD)}var yM=(n,e)=>ne(n).atoms.has(e),yin=(n,e)=>ne(n).writableSelectors.has(e),Min=(n,e)=>ne(n).readonlySelectors.has(e),Uin=(n,e)=>yM(n,e)||yin(n,e)||Min(n,e),RM=(n,e)=>{return ne(n).selectorGraph.getRelationEntries({downstreamSelectorKey:e}).filter(([t,{source:a}])=>a!==e).map(([t,{source:a}])=>a).filter((t)=>Uin(n,t))},BD=(n,e,i=new Set)=>{let t=RM(n,e),a=new Map;while(t.length>0){let r=t.pop();if(i.has(r))continue;if(i.add(r),yM(n,r)){let o=n.atoms.get(r);a.set(o.key,o)}else t.push(...RM(n,r))}return a},Gin=(n,e,i,t,a)=>{let r=ne(n),{type:o,key:u}=t;if(o==="atom"||o==="mutable_atom")r.selectorAtoms.set({selectorKey:i,atomKey:u}),n.logger.info("\uD83D\uDD0D",e,i,`discovers root atom "${u}"`);else{let s=BD(n,u,a);n.logger.info("\uD83D\uDD0D",e,i,`discovers root atoms: [ ${[...s.values()].map((l)=>`"${l.key}"`).join(", ")} ]`);for(let{key:l}of s.values())r.selectorAtoms=r.selectorAtoms.set({selectorKey:i,atomKey:l})}a.add(u)},VD=(n,e,i,t)=>({get:(...a)=>{let r=ne(n),o;if(a.length===2){let[c,f]=a;o=He(n,c,f)}else[o]=a;let u=Tt(n,o),s=ab(n,u),l=o.key;return n.logger.info("\uD83D\uDD0C",e,i,`registers dependency ( "${l}" =`,s,")"),r.selectorGraph.set({upstreamSelectorKey:l,downstreamSelectorKey:i},{source:o.key}),Gin(n,e,i,o,t),s},set:(...a)=>{let r,o;if(a.length===2)r=a[0],o=a[1];else{let l=a[0],c=a[1];o=a[2],r=He(n,l,c)}let u=ne(n),s=Tt(u,r);IM(u,s,o)},find:(...a)=>He(n,...a),json:(a)=>Qp(n,a)}),uS=(n,e,i)=>{let t=ne(n),a=new Ye,r=new Set,{key:o,const:u}=e,s="readonly_held_selector",{get:l,find:c,json:f}=VD(t,"readonly_held_selector",o,r),m={...e,type:"readonly_held_selector",subject:a,install:(h)=>uS(h,e,i),get:()=>{let h=ne(n),D=h.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[T,{source:v}]of D)if(v!==o)h.selectorGraph.delete(T,o);return h.selectorAtoms.delete(o),e.get({get:l,find:c,json:f},u),ws(ne(n),m,u),r.clear(),u},...i&&{family:i}};t.readonlySelectors.set(o,m),n.logger.info("\u2728","readonly_held_selector",o,"=",u);let E={key:o,type:"readonly_held_selector"};if(i)E.family=i;return E},sS=(n,e,i)=>{let t=ne(n),a=new Ye,r=new Set,o=e.key,u="readonly_pure_selector",{get:s,find:l,json:c}=VD(t,"readonly_pure_selector",o,r),b={...e,type:"readonly_pure_selector",subject:a,install:(E)=>sS(E,e,i),get:()=>{let E=ne(n),h=E.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[v,{source:_}]of h)if(_!==o)E.selectorGraph.delete(v,o);E.selectorAtoms.delete(o);let D=e.get({get:s,find:l,json:c}),T=ws(E,b,D);return n.logger.info("\u2728","readonly_pure_selector",o,"=",T),r.clear(),T},...i&&{family:i}};t.readonlySelectors.set(o,b);let m={key:o,type:"readonly_pure_selector"};if(i)m.family=i;return m},zin=(n)=>{let e=ne(n);if(!Ka(e)){n.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}n.logger.info("\uD83E\uDE82","transaction",e.transactionMeta.update.key,"Aborting transaction"),e.parent.child=null};function Di(n){return n[0].toUpperCase()+n.slice(1)}function Zp(n){return n.type.split("_").map(Di).join(" ")}var lS=class extends Error{constructor(n,e){super(`${Zp(n)} ${ii(n.key)} not found in store "${e.config.name}".`)}};function cS(n,e,i){return(...t)=>{let a=Tt(n,e);if(a)return a.run(t,i);throw new lS(e,n)}}function $in(n,e,i){let{key:t,newValue:a,oldValue:r}=e,o=n==="newValue"?a:r,u={key:t,type:"atom"};if(e.family)Object.assign(u,{family:e.family});lt(i,u,o)}function Hin(n){let{stack:e}=n;if(e)return`
293
293
  `+e.split(`
294
294
  `)?.slice(1)?.join(`
@@ -300,7 +300,7 @@ ${m.trace}`:`No previous disposal trace for ${i} was found.`);return}let a=n.mol
300
300
  ${a} was most recently disposed
301
301
  ${b.trace}`:`No previous disposal trace for ${a} was found.`),i}let u=ii(e),s=r.molecules.get(u);if(!s){let b=n.disposalTraces.buffer.find((m)=>m?.key===u);return n.logger.error("\u274C","molecule",i,"claim failed:",`Could not allocate to ${u} in store "${n.config.name}".`,b?`
302
302
  ${u} was most recently disposed
303
- ${b.trace}`:`No previous disposal trace for ${u} was found.`),i}let l=n.moleculeGraph.getRelationEntries({downstreamMoleculeKey:o.stringKey}).filter(([,{source:b}])=>b!==a).map(([b])=>vr(b));if(t)r.moleculeGraph.delete(a);r.moleculeGraph.set({upstreamMoleculeKey:s.stringKey,downstreamMoleculeKey:o.stringKey},{source:s.stringKey});let c={type:"molecule_transfer",key:o.key,exclusive:Boolean(t),from:l,to:[s.key]};if(Ka(r)&&r.transactionMeta.phase==="building")r.transactionMeta.update.updates.push(c);return i}function kin(n,e,i){switch(e){case"newValue":GM(n,i);break;case"oldValue":TE(i,n.token);break}}function Pin(n,e,i){switch(e){case"newValue":TE(i,n.token);break;case"oldValue":if(GM(n,i),n.subType==="atom")i.valueMap.set(n.token.key,n.value);break}}function GM(n,e){let{family:i}=n.token;if(i){let t=e.families.get(i.key);if(t)He(e,t,vr(i.subKey))}}function Bin(n,e,i){switch(e){case"newValue":rb(i,n.provenance,n.key);break;case"oldValue":ob(i,n.key);break}}function Win(n,e,i){switch(e){case"newValue":ob(i,n.key);break;case"oldValue":{let t=n.provenance.map(vr);rb(i,t,n.key);for(let[a,r]of n.values){let o=i.families.get(a);if(o){He(i,o,n.key);let u=`${a}(${ii(n.key)})`;i.valueMap.set(u,r)}}}break}}function Yin(n,e,i){switch(e){case"newValue":for(let t of n.to)DE(i,t,n.key,n.exclusive?"exclusive":void 0);break;case"oldValue":{let t="exclusive";for(let a of n.from)DE(i,a,n.key,t),t=void 0}break}}function zM(n,e,i){let t=n==="newValue"?e.updates:[...e.updates].reverse();for(let a of t)switch(a.type){case"atom_update":case"selector_update":$in(n,a,i);break;case"state_creation":kin(a,n,i);break;case"state_disposal":Pin(a,n,i);break;case"molecule_creation":Bin(a,n,i);break;case"molecule_disposal":Win(a,n,i);break;case"molecule_transfer":Yin(a,n,i);break;case"transaction_update":zM(n,a,i);break}}function $M(n,e){return n.transactionMeta.actionContinuities.getRelatedKey(e)}function Vin(n,e){return n.transactionMeta.epoch.get(e)}function Xin(n,e){if(!Dc(n))return;let t=$M(n,e);if(t===void 0)return;return Vin(n,t)}function Zin(n,e,i){if(!Dc(n))return;let a=$M(n,e);if(a!==void 0)n.transactionMeta.epoch.set(a,i)}var Qin=(n,e)=>{let i=ne(e),{parent:t}=i;if(t===null||!Ka(i)||i.transactionMeta?.phase!=="building"){e.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}i.transactionMeta.phase="applying",i.transactionMeta.update.output=n,t.child=null,t.on.transactionApplying.next(i.transactionMeta);let{updates:a}=i.transactionMeta.update;if(e.logger.info("\uD83D\uDEC4","transaction",i.transactionMeta.update.key,`Applying transaction with ${a.length} updates:`,a),zM("newValue",i.transactionMeta.update,t),Dc(t))Zin(t,i.transactionMeta.update.key,i.transactionMeta.update.epoch),Tt(e,{key:i.transactionMeta.update.key,type:"transaction"})?.subject.next(i.transactionMeta.update),e.logger.info("\uD83D\uDEEC","transaction",i.transactionMeta.update.key,"Finished applying transaction.");else if(Ka(t))t.transactionMeta.update.updates.push(i.transactionMeta.update);t.on.transactionApplying.next(null)};function Kin(n){return{store:n}}var Ds=class extends Map{deleted=new Set;source;constructor(n){super();this.source=n}get(n){if(super.has(n))return super.get(n);if(!this.deleted.has(n)&&this.source.has(n))return this.source.get(n);return}set(n,e){return this.deleted.delete(n),super.set(n,e)}hasOwn(n){return super.has(n)}has(n){return!this.deleted.has(n)&&(super.has(n)||this.source.has(n))}delete(n){return this.deleted.add(n),super.delete(n)}},jin=(n,e,i,t)=>{let a=ne(n),r={parent:a,child:null,on:a.on,loggers:a.loggers,logger:a.logger,config:a.config,atoms:new Ds(a.atoms),atomsThatAreDefault:new Set(a.atomsThatAreDefault),families:new Ds(a.families),joins:new Ds(a.joins),operation:{open:!1},readonlySelectors:new Ds(a.readonlySelectors),timelines:new Ds(a.timelines),timelineTopics:new kt(a.timelineTopics.toJSON()),trackers:new Map,transactions:new Ds(a.transactions),selectorAtoms:new kt(a.selectorAtoms.toJSON()),selectorGraph:new kt(a.selectorGraph.toJSON(),{makeContentKey:(...l)=>l.sort().join(":")}),writableSelectors:new Ds(a.writableSelectors),valueMap:new Ds(a.valueMap),defaults:a.defaults,disposalTraces:n.disposalTraces.copy(),molecules:new Ds(a.molecules),moleculeGraph:new kt(a.moleculeGraph.toJSON(),{makeContentKey:a.moleculeGraph.makeContentKey}),moleculeData:new kt(a.moleculeData.toJSON(),{makeContentKey:a.moleculeData.makeContentKey}),moleculeJoins:new kt(a.moleculeJoins.toJSON(),{makeContentKey:a.moleculeJoins.makeContentKey}),miscResources:new Ds(a.miscResources)},o=Xin(n,e),u={phase:"building",update:{type:"transaction_update",key:e,id:t,epoch:o===void 0?NaN:o+1,updates:[],params:i,output:void 0},toolkit:{get:(...l)=>ao(s,...l),set:(...l)=>{lt(s,...l)},reset:(...l)=>{YD(s,...l)},run:(l,c=_M())=>cS(s,l,c),find:(...l)=>He(n,...l),json:(l)=>Qp(s,l),dispose:(...l)=>{TE(s,...l)},env:()=>Kin(s)}},s=Object.assign(r,{transactionMeta:u});return a.child=s,n.logger.info("\uD83D\uDEEB","transaction",e,"Building transaction with params:",i),s};function pS(n,e){let{key:i}=e,t=n.transactions.has(i),a={key:i,type:"transaction",run:(u,s)=>{let l=jin(n,i,u,s);try{let c=ne(n),{toolkit:f}=l.transactionMeta,b=e.do(f,...u);return Qin(b,c),b}catch(c){throw zin(r),n.logger.warn("\uD83D\uDCA5","transaction",i,"caught:",c),c}},install:(u)=>pS(u,e),subject:new Ye},r=ne(n);r.transactions.set(i,a);let o=tb(a);if(!t)n.on.transactionCreation.next(o);return o}var dS=(n,e,i)=>{let t=ne(n),a=new Ye,r=new Set,{key:o,const:u}=e,s="writable_held_selector",l=VD(t,"writable_held_selector",o,r),{find:c,get:f,json:b}=l,m={find:c,get:f,json:b},E=(v=e.get,_=ne(n))=>{let F=_.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[x,{source:I}]of F)if(I!==o)_.selectorGraph.delete(x,o);return _.selectorAtoms.delete(o),v(m,u),ws(_,D,u),n.logger.info("\u2728","writable_held_selector",o,"=",u),r.clear(),u},D={...e,type:"writable_held_selector",subject:a,install:(v)=>dS(v,e,i),get:E,set:(v)=>{let _=ne(n),F=E(e.get,_),x=oS(v)(F);if(n.logger.info("\uD83D\uDCDD","writable_held_selector",o,"set (",F,"->",x,")"),ws(_,D,x),vE(_,o),Dc(_))a.next({newValue:x,oldValue:F});e.set(l,x)},...i&&{family:i}};t.writableSelectors.set(o,D);let T={key:o,type:"writable_held_selector"};if(i)T.family=i;return T},fS=(n,e,i)=>{let t=ne(n),a=new Ye,r=new Set,o=e.key,u="writable_pure_selector",s=VD(t,"writable_pure_selector",o,r),{find:l,get:c,json:f}=s,b={find:l,get:c,json:f},m=(v=e.get,_=ne(n))=>{let F=_.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[U,{source:W}]of F)if(W!==o)_.selectorGraph.delete(U,o);_.selectorAtoms.delete(o);let x=v(b),I=ws(_,h,x);return n.logger.info("\u2728","writable_pure_selector",o,"=",I),r.clear(),x},h={...e,type:"writable_pure_selector",subject:a,install:(v)=>fS(v,e,i),get:m,set:(v)=>{let _=ne(n),F=m(e.get,_),x=oS(v)(F);if(n.logger.info("\uD83D\uDCDD","writable_pure_selector",o,"set (",F,"->",x,")"),ws(_,h,x),vE(_,e.key),Dc(_))a.next({newValue:x,oldValue:F});e.set(s,x)},...i&&{family:i}};t.writableSelectors.set(o,h);let D=m();n.logger.info("\u2728",h.type,h.key,"=",D);let T={key:o,type:"writable_pure_selector"};if(i)T.family=i;return T};function HM(n,e){let i="set"in e,t="const"in e;if(t&&i){let r=dS(n,e,void 0);return n.on.selectorCreation.next(r),r}if(t){let r=uS(n,e,void 0);return n.on.selectorCreation.next(r),r}if(i){let r=fS(n,e,void 0);return n.on.selectorCreation.next(r),r}let a=sS(n,e,void 0);return n.on.selectorCreation.next(a),a}function Jin(n,e){let i=ne(n),{key:t,type:a,family:r}=e;if(!r)n.logger.error("\u274C",a,t,"Standalone selectors cannot be disposed.");else{if(i.molecules.get(r.subKey))i.moleculeData.delete(r.subKey,r.key);let u;switch(e.type){case"writable_held_selector":i.writableSelectors.delete(t),u={key:r.key,type:"writable_held_selector_family"},Tt(n,u).subject.next({type:"state_disposal",subType:"selector",token:e});break;case"writable_pure_selector":i.writableSelectors.delete(t),u={key:r.key,type:"writable_pure_selector_family"},Tt(n,u).subject.next({type:"state_disposal",subType:"selector",token:e});break;case"readonly_held_selector":i.readonlySelectors.delete(t),u={key:r.key,type:"readonly_held_selector_family"},Tt(n,u).subject.next({type:"state_disposal",subType:"selector",token:e});break;case"readonly_pure_selector":i.readonlySelectors.delete(t),u={key:r.key,type:"readonly_pure_selector_family"},Tt(n,u).subject.next({type:"state_disposal",subType:"selector",token:e});break}if(i.valueMap.delete(t),i.selectorAtoms.delete(t),i.selectorGraph.delete(t),i.moleculeData.delete(r.key,r.subKey),n.logger.info("\uD83D\uDD25",e.type,t,"deleted"),Ka(i)&&i.transactionMeta.phase==="building")i.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:e});else n.on.selectorDisposal.next(e)}}function ib(n,e,i){let t=e.key,a="readonly_pure_selector_family",r={key:t,type:"readonly_pure_selector_family"},o=n.families.get(t);if(o)n.logger.error("\u2757","readonly_pure_selector_family",t,`Overwriting an existing ${Zp(o)} "${o.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let u=new Ye,l=Object.assign((c)=>{let f=ii(c),b={key:t,subKey:f},m=`${t}(${f})`,E=ne(n),h=sS(E,{key:m,get:e.get(c)},b);return u.next({type:"state_creation",token:h}),h},r,{internalRoles:i,subject:u,install:(c)=>ib(c,e),default:(c)=>{return e.get(c)({get:(...b)=>ao(n,...b),find:(...b)=>He(n,...b),json:(b)=>Qp(n,b)})}});return n.families.set(t,l),r}function RE(n,e,i){let t={key:e.key,type:"atom_family"},a=n.families.get(e.key);if(a)n.logger.error("\u2757","atom_family",e.key,`Overwriting an existing ${Zp(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let r=new Ye,u=Object.assign((s)=>{let l=ii(s),c={key:e.key,subKey:l},f=`${e.key}(${l})`,b=ne(n),m=e.default,E={key:f,default:m instanceof Function?()=>m(s):m};if(e.effects)E.effects=e.effects(s);let h=ZD(b,E,c);return r.next({type:"state_creation",token:h}),h},t,{subject:r,install:(s)=>RE(s,e),internalRoles:i});return n.families.set(e.key,u),n.defaults.set(e.key,e.default),t}function kM(n,e,i){let t=e.key,a="readonly_held_selector_family",r={key:t,type:"readonly_held_selector_family"},o=n.families.get(t);if(o)n.logger.error("\u2757","readonly_held_selector_family",t,`Overwriting an existing ${Zp(o)} "${o.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let u=new Ye,l=Object.assign((c)=>{let f=ii(c),b={key:t,subKey:f},m=`${t}(${f})`,E=ne(n),h=uS(E,{key:m,const:e.const(c),get:e.get(c)},b);return u.next({type:"state_creation",token:h}),h},r,{internalRoles:i,subject:u,install:(c)=>kM(c,e),default:e.const});return n.families.set(t,l),r}function PM(n,e,i){let t=e.key,a="writable_held_selector_family",r={key:t,type:"writable_held_selector_family"},o=n.families.get(t);if(o)n.logger.error("\u2757","writable_held_selector_family",t,`Overwriting an existing ${Zp(o)} "${o.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let u=new Ye,l=Object.assign((c)=>{let f=ii(c),b={key:t,subKey:f},m=`${t}(${f})`,E=ne(n),h=dS(E,{key:m,const:e.const(c),get:e.get(c),set:e.set(c)},b);return u.next({type:"state_creation",token:h}),h},r,{internalRoles:i,subject:u,install:(c)=>PM(c,e),default:e.const});return n.families.set(t,l),r}function bS(n,e,i){let t=e.key,a="writable_pure_selector_family",r={key:t,type:"writable_pure_selector_family"},o=n.families.get(t);if(o)n.logger.error("\u2757","writable_pure_selector_family",t,`Overwriting an existing ${Zp(o)} "${o.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let u=new Ye,l=Object.assign((c)=>{let f=ii(c),b={key:t,subKey:f},m=`${t}(${f})`,E=ne(n),h=fS(E,{key:m,get:e.get(c),set:e.set(c)},b);return u.next({type:"state_creation",token:h}),h},r,{internalRoles:i,subject:u,install:(c)=>bS(c,e),default:(c)=>{return e.get(c)({get:(...b)=>ao(n,...b),find:(...b)=>He(n,...b),json:(b)=>Qp(n,b)})}});return n.families.set(t,l),r}function BM(n,e){let i="set"in e,t="const"in e;if(t&&i)return PM(n,e,void 0);if(t)return kM(n,e,void 0);if(i)return bS(n,e);return ib(n,e)}function qin(n,e,i){let t=n.families.get(e.key);if(t===void 0)throw new lS(e,n);let a=t(i),r=ne(n);if(a.family){if(Dc(r))switch(a.type){case"atom":case"mutable_atom":n.on.atomCreation.next(a);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":n.on.selectorCreation.next(a);break}else if(Ka(r)&&r.on.transactionApplying.state===null)r.transactionMeta.update.updates.push({type:"state_creation",token:a})}return a}function ntn(n,e,i){let t=ii(i),a=`${e.key}(${t})`,r=ne(n),o;switch(e.type){case"atom_family":case"mutable_atom_family":o=r.atoms.get(a);break;case"writable_held_selector_family":case"writable_pure_selector_family":o=r.writableSelectors.get(a);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":o=r.readonlySelectors.get(a);break}if(o)return tb(o);return o}function He(n,e,i){let t=ntn(n,e,i);if(t)return t;let a=ii(i),r=n.molecules.get(a);if(!r&&n.config.lifespan==="immortal"){let o=xin(e,i);return n.logger.error("\u274C",o.type,o.key,`was not found in store "${n.config.name}"; returned a counterfeit token.`),o}if(t=qin(n,e,i),r)ne(n).moleculeData.set(a,e.key);return t}function TE(n,...e){let i;if(e.length===1)i=e[0];else{let t=e[0],a=e[1];i=He(n,t,a)}try{Tt(n,i)}catch(t){n.logger.error("\u274C",i.type,i.key,`could not be disposed because it was not found in the store "${n.config.name}".`);return}switch(i.type){case"atom":case"mutable_atom":YM(n,i);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Jin(n,i);break}}function ao(n,...e){let i,t,a;if(e.length===1)i=e[0];else t=e[0],a=e[1],i=He(n,t,a);if("counterfeit"in i&&"family"in i){t=n.families.get(i.family.key);let r=i.family.subKey,o=n.disposalTraces.buffer.find((u)=>u?.key===r);switch(n.logger.error("\u274C",i.type,i.key,`could not be retrieved because it was not found in the store "${n.config.name}".`,o?`This state was previously disposed:
303
+ ${b.trace}`:`No previous disposal trace for ${u} was found.`),i}let l=n.moleculeGraph.getRelationEntries({downstreamMoleculeKey:o.stringKey}).filter(([,{source:b}])=>b!==a).map(([b])=>vr(b));if(t)r.moleculeGraph.delete(a);r.moleculeGraph.set({upstreamMoleculeKey:s.stringKey,downstreamMoleculeKey:o.stringKey},{source:s.stringKey});let c={type:"molecule_transfer",key:o.key,exclusive:Boolean(t),from:l,to:[s.key]};if(Ka(r)&&r.transactionMeta.phase==="building")r.transactionMeta.update.updates.push(c);return i}function kin(n,e,i){switch(e){case"newValue":GM(n,i);break;case"oldValue":TE(i,n.token);break}}function Pin(n,e,i){switch(e){case"newValue":TE(i,n.token);break;case"oldValue":if(GM(n,i),n.subType==="atom")i.valueMap.set(n.token.key,n.value);break}}function GM(n,e){let{family:i}=n.token;if(i){let t=e.families.get(i.key);if(t)He(e,t,vr(i.subKey))}}function Bin(n,e,i){switch(e){case"newValue":rb(i,n.provenance,n.key);break;case"oldValue":ob(i,n.key);break}}function Win(n,e,i){switch(e){case"newValue":ob(i,n.key);break;case"oldValue":{let t=n.provenance.map(vr);rb(i,t,n.key);for(let[a,r]of n.values){let o=i.families.get(a);if(o){He(i,o,n.key);let u=`${a}(${ii(n.key)})`;i.valueMap.set(u,r)}}}break}}function Yin(n,e,i){switch(e){case"newValue":for(let t of n.to)DE(i,t,n.key,n.exclusive?"exclusive":void 0);break;case"oldValue":{let t="exclusive";for(let a of n.from)DE(i,a,n.key,t),t=void 0}break}}function zM(n,e,i){let t=n==="newValue"?e.updates:[...e.updates].reverse();for(let a of t)switch(a.type){case"atom_update":case"selector_update":$in(n,a,i);break;case"state_creation":kin(a,n,i);break;case"state_disposal":Pin(a,n,i);break;case"molecule_creation":Bin(a,n,i);break;case"molecule_disposal":Win(a,n,i);break;case"molecule_transfer":Yin(a,n,i);break;case"transaction_update":zM(n,a,i);break}}function $M(n,e){return n.transactionMeta.actionContinuities.getRelatedKey(e)}function Vin(n,e){return n.transactionMeta.epoch.get(e)}function Xin(n,e){if(!Dc(n))return;let t=$M(n,e);if(t===void 0)return;return Vin(n,t)}function Zin(n,e,i){if(!Dc(n))return;let a=$M(n,e);if(a!==void 0)n.transactionMeta.epoch.set(a,i)}var Qin=(n,e)=>{let i=ne(e),{parent:t}=i;if(t===null||!Ka(i)||i.transactionMeta?.phase!=="building"){e.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}i.transactionMeta.phase="applying",i.transactionMeta.update.output=n,t.child=null,t.on.transactionApplying.next(i.transactionMeta);let{updates:a}=i.transactionMeta.update;if(e.logger.info("\uD83D\uDEC4","transaction",i.transactionMeta.update.key,`Applying transaction with ${a.length} updates:`,a),zM("newValue",i.transactionMeta.update,t),Dc(t))Zin(t,i.transactionMeta.update.key,i.transactionMeta.update.epoch),Tt(e,{key:i.transactionMeta.update.key,type:"transaction"})?.subject.next(i.transactionMeta.update),e.logger.info("\uD83D\uDEEC","transaction",i.transactionMeta.update.key,"Finished applying transaction.");else if(Ka(t))t.transactionMeta.update.updates.push(i.transactionMeta.update);t.on.transactionApplying.next(null)};function Kin(n){return{store:n}}var Ds=class extends Map{deleted=new Set;source;constructor(n){super();this.source=n}get(n){if(super.has(n))return super.get(n);if(!this.deleted.has(n)&&this.source.has(n))return this.source.get(n);return}set(n,e){return this.deleted.delete(n),super.set(n,e)}hasOwn(n){return super.has(n)}has(n){return!this.deleted.has(n)&&(super.has(n)||this.source.has(n))}delete(n){return this.deleted.add(n),super.delete(n)}},jin=(n,e,i,t)=>{let a=ne(n),r={parent:a,child:null,on:a.on,loggers:a.loggers,logger:a.logger,config:a.config,atoms:new Ds(a.atoms),atomsThatAreDefault:new Set(a.atomsThatAreDefault),families:new Ds(a.families),joins:new Ds(a.joins),operation:{open:!1},readonlySelectors:new Ds(a.readonlySelectors),timelines:new Ds(a.timelines),timelineTopics:new kt(a.timelineTopics.toJSON()),trackers:new Map,transactions:new Ds(a.transactions),selectorAtoms:new kt(a.selectorAtoms.toJSON()),selectorGraph:new kt(a.selectorGraph.toJSON(),{makeContentKey:(...l)=>l.sort().join(":")}),writableSelectors:new Ds(a.writableSelectors),valueMap:new Ds(a.valueMap),defaults:a.defaults,disposalTraces:n.disposalTraces.copy(),molecules:new Ds(a.molecules),moleculeGraph:new kt(a.moleculeGraph.toJSON(),{makeContentKey:a.moleculeGraph.makeContentKey}),moleculeData:new kt(a.moleculeData.toJSON(),{makeContentKey:a.moleculeData.makeContentKey}),moleculeJoins:new kt(a.moleculeJoins.toJSON(),{makeContentKey:a.moleculeJoins.makeContentKey}),miscResources:new Ds(a.miscResources)},o=Xin(n,e),u={phase:"building",update:{type:"transaction_update",key:e,id:t,epoch:o===void 0?NaN:o+1,updates:[],params:i,output:void 0},toolkit:{get:(...l)=>ao(s,...l),set:(...l)=>{lt(s,...l)},reset:(...l)=>{YD(s,...l)},run:(l,c=_M())=>cS(s,l,c),find:(...l)=>He(n,...l),json:(l)=>Qp(s,l),dispose:(...l)=>{TE(s,...l)},env:()=>Kin(s)}},s=Object.assign(r,{transactionMeta:u});return a.child=s,n.logger.info("\uD83D\uDEEB","transaction",e,"Building transaction with params:",i),s};function pS(n,e){let{key:i}=e,t=n.transactions.has(i),a={key:i,type:"transaction",run:(u,s)=>{let l=jin(n,i,u,s);try{let c=ne(n),{toolkit:f}=l.transactionMeta,b=e.do(f,...u);return Qin(b,c),b}catch(c){throw zin(r),n.logger.warn("\uD83D\uDCA5","transaction",i,"caught:",c),c}},install:(u)=>pS(u,e),subject:new Ye},r=ne(n);r.transactions.set(i,a);let o=tb(a);if(!t)n.on.transactionCreation.next(o);return o}var dS=(n,e,i)=>{let t=ne(n),a=new Ye,r=new Set,{key:o,const:u}=e,s="writable_held_selector",l=VD(t,"writable_held_selector",o,r),{find:c,get:f,json:b}=l,m={find:c,get:f,json:b},E=(v=e.get,_=ne(n))=>{let F=_.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[x,{source:I}]of F)if(I!==o)_.selectorGraph.delete(x,o);return _.selectorAtoms.delete(o),v(m,u),ws(_,D,u),n.logger.info("\u2728","writable_held_selector",o,"=",u),r.clear(),u},D={...e,type:"writable_held_selector",subject:a,install:(v)=>dS(v,e,i),get:E,set:(v)=>{let _=ne(n),F=E(e.get,_),x=oS(v)(F);if(n.logger.info("\uD83D\uDCDD","writable_held_selector",o,"set (",F,"->",x,")"),ws(_,D,x),vE(_,o),Dc(_))a.next({newValue:x,oldValue:F});e.set(l,x)},...i&&{family:i}};t.writableSelectors.set(o,D);let T={key:o,type:"writable_held_selector"};if(i)T.family=i;return T},fS=(n,e,i)=>{let t=ne(n),a=new Ye,r=new Set,o=e.key,u="writable_pure_selector",s=VD(t,"writable_pure_selector",o,r),{find:l,get:c,json:f}=s,b={find:l,get:c,json:f},m=(v=e.get,_=ne(n))=>{let F=_.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[U,{source:W}]of F)if(W!==o)_.selectorGraph.delete(U,o);_.selectorAtoms.delete(o);let x=v(b),I=ws(_,h,x);return n.logger.info("\u2728","writable_pure_selector",o,"=",I),r.clear(),I},h={...e,type:"writable_pure_selector",subject:a,install:(v)=>fS(v,e,i),get:m,set:(v)=>{let _=ne(n),F=m(e.get,_),x=oS(v)(F);if(n.logger.info("\uD83D\uDCDD","writable_pure_selector",o,"set (",F,"->",x,")"),ws(_,h,x),vE(_,e.key),Dc(_))a.next({newValue:x,oldValue:F});e.set(s,x)},...i&&{family:i}};t.writableSelectors.set(o,h);let D=m();n.logger.info("\u2728",h.type,h.key,"=",D);let T={key:o,type:"writable_pure_selector"};if(i)T.family=i;return T};function HM(n,e){let i="set"in e,t="const"in e;if(t&&i){let r=dS(n,e,void 0);return n.on.selectorCreation.next(r),r}if(t){let r=uS(n,e,void 0);return n.on.selectorCreation.next(r),r}if(i){let r=fS(n,e,void 0);return n.on.selectorCreation.next(r),r}let a=sS(n,e,void 0);return n.on.selectorCreation.next(a),a}function Jin(n,e){let i=ne(n),{key:t,type:a,family:r}=e;if(!r)n.logger.error("\u274C",a,t,"Standalone selectors cannot be disposed.");else{if(i.molecules.get(r.subKey))i.moleculeData.delete(r.subKey,r.key);let u;switch(e.type){case"writable_held_selector":i.writableSelectors.delete(t),u={key:r.key,type:"writable_held_selector_family"},Tt(n,u).subject.next({type:"state_disposal",subType:"selector",token:e});break;case"writable_pure_selector":i.writableSelectors.delete(t),u={key:r.key,type:"writable_pure_selector_family"},Tt(n,u).subject.next({type:"state_disposal",subType:"selector",token:e});break;case"readonly_held_selector":i.readonlySelectors.delete(t),u={key:r.key,type:"readonly_held_selector_family"},Tt(n,u).subject.next({type:"state_disposal",subType:"selector",token:e});break;case"readonly_pure_selector":i.readonlySelectors.delete(t),u={key:r.key,type:"readonly_pure_selector_family"},Tt(n,u).subject.next({type:"state_disposal",subType:"selector",token:e});break}if(i.valueMap.delete(t),i.selectorAtoms.delete(t),i.selectorGraph.delete(t),i.moleculeData.delete(r.key,r.subKey),n.logger.info("\uD83D\uDD25",e.type,t,"deleted"),Ka(i)&&i.transactionMeta.phase==="building")i.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:e});else n.on.selectorDisposal.next(e)}}function ib(n,e,i){let t=e.key,a="readonly_pure_selector_family",r={key:t,type:"readonly_pure_selector_family"},o=n.families.get(t);if(o)n.logger.error("\u2757","readonly_pure_selector_family",t,`Overwriting an existing ${Zp(o)} "${o.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let u=new Ye,l=Object.assign((c)=>{let f=ii(c),b={key:t,subKey:f},m=`${t}(${f})`,E=ne(n),h=sS(E,{key:m,get:e.get(c)},b);return u.next({type:"state_creation",token:h}),h},r,{internalRoles:i,subject:u,install:(c)=>ib(c,e),default:(c)=>{return e.get(c)({get:(...b)=>ao(n,...b),find:(...b)=>He(n,...b),json:(b)=>Qp(n,b)})}});return n.families.set(t,l),r}function RE(n,e,i){let t={key:e.key,type:"atom_family"},a=n.families.get(e.key);if(a)n.logger.error("\u2757","atom_family",e.key,`Overwriting an existing ${Zp(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let r=new Ye,u=Object.assign((s)=>{let l=ii(s),c={key:e.key,subKey:l},f=`${e.key}(${l})`,b=ne(n),m=e.default,E={key:f,default:m instanceof Function?()=>m(s):m};if(e.effects)E.effects=e.effects(s);let h=ZD(b,E,c);return r.next({type:"state_creation",token:h}),h},t,{subject:r,install:(s)=>RE(s,e),internalRoles:i});return n.families.set(e.key,u),n.defaults.set(e.key,e.default),t}function kM(n,e,i){let t=e.key,a="readonly_held_selector_family",r={key:t,type:"readonly_held_selector_family"},o=n.families.get(t);if(o)n.logger.error("\u2757","readonly_held_selector_family",t,`Overwriting an existing ${Zp(o)} "${o.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let u=new Ye,l=Object.assign((c)=>{let f=ii(c),b={key:t,subKey:f},m=`${t}(${f})`,E=ne(n),h=uS(E,{key:m,const:e.const(c),get:e.get(c)},b);return u.next({type:"state_creation",token:h}),h},r,{internalRoles:i,subject:u,install:(c)=>kM(c,e),default:e.const});return n.families.set(t,l),r}function PM(n,e,i){let t=e.key,a="writable_held_selector_family",r={key:t,type:"writable_held_selector_family"},o=n.families.get(t);if(o)n.logger.error("\u2757","writable_held_selector_family",t,`Overwriting an existing ${Zp(o)} "${o.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let u=new Ye,l=Object.assign((c)=>{let f=ii(c),b={key:t,subKey:f},m=`${t}(${f})`,E=ne(n),h=dS(E,{key:m,const:e.const(c),get:e.get(c),set:e.set(c)},b);return u.next({type:"state_creation",token:h}),h},r,{internalRoles:i,subject:u,install:(c)=>PM(c,e),default:e.const});return n.families.set(t,l),r}function bS(n,e,i){let t=e.key,a="writable_pure_selector_family",r={key:t,type:"writable_pure_selector_family"},o=n.families.get(t);if(o)n.logger.error("\u2757","writable_pure_selector_family",t,`Overwriting an existing ${Zp(o)} "${o.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let u=new Ye,l=Object.assign((c)=>{let f=ii(c),b={key:t,subKey:f},m=`${t}(${f})`,E=ne(n),h=fS(E,{key:m,get:e.get(c),set:e.set(c)},b);return u.next({type:"state_creation",token:h}),h},r,{internalRoles:i,subject:u,install:(c)=>bS(c,e),default:(c)=>{return e.get(c)({get:(...b)=>ao(n,...b),find:(...b)=>He(n,...b),json:(b)=>Qp(n,b)})}});return n.families.set(t,l),r}function BM(n,e){let i="set"in e,t="const"in e;if(t&&i)return PM(n,e,void 0);if(t)return kM(n,e,void 0);if(i)return bS(n,e);return ib(n,e)}function qin(n,e,i){let t=n.families.get(e.key);if(t===void 0)throw new lS(e,n);let a=t(i),r=ne(n);if(a.family){if(Dc(r))switch(a.type){case"atom":case"mutable_atom":n.on.atomCreation.next(a);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":n.on.selectorCreation.next(a);break}else if(Ka(r)&&r.on.transactionApplying.state===null)r.transactionMeta.update.updates.push({type:"state_creation",token:a})}return a}function ntn(n,e,i){let t=ii(i),a=`${e.key}(${t})`,r=ne(n),o;switch(e.type){case"atom_family":case"mutable_atom_family":o=r.atoms.get(a);break;case"writable_held_selector_family":case"writable_pure_selector_family":o=r.writableSelectors.get(a);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":o=r.readonlySelectors.get(a);break}if(o)return tb(o);return o}function He(n,e,i){let t=ntn(n,e,i);if(t)return t;let a=ii(i),r=n.molecules.get(a);if(!r&&n.config.lifespan==="immortal"){let o=xin(e,i);return n.logger.error("\u274C",o.type,o.key,`was not found in store "${n.config.name}"; returned a counterfeit token.`),o}if(t=qin(n,e,i),r)ne(n).moleculeData.set(a,e.key);return t}function TE(n,...e){let i;if(e.length===1)i=e[0];else{let t=e[0],a=e[1];i=He(n,t,a)}try{Tt(n,i)}catch(t){n.logger.error("\u274C",i.type,i.key,`could not be disposed because it was not found in the store "${n.config.name}".`);return}switch(i.type){case"atom":case"mutable_atom":YM(n,i);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Jin(n,i);break}}function ao(n,...e){let i,t,a;if(e.length===1)i=e[0];else t=e[0],a=e[1],i=He(n,t,a);if("counterfeit"in i&&"family"in i){t=n.families.get(i.family.key);let r=i.family.subKey,o=n.disposalTraces.buffer.find((u)=>u?.key===r);switch(n.logger.error("\u274C",i.type,i.key,`could not be retrieved because it was not found in the store "${n.config.name}".`,o?`This state was previously disposed:
304
304
  ${o.trace}`:"No previous disposal trace was found."),t.type){case"atom_family":case"mutable_atom_family":return n.defaults.get(t.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(n.defaults.has(t.key))return n.defaults.get(i.family.key);let u=Tt(n,t).default(r);return n.defaults.set(t.key,u),u}}}return ab(n,Tt(n,i))}var TM=(n,e,i)=>{return i.subject.subscribe(`${e.type}:${e.key}`,(t)=>{n.logger.info("\uD83D\uDCE2",e.type,e.key,"root",i.key,"went",t.oldValue,"->",t.newValue);let a=Nin(n,e),r=ab(n,e);n.logger.info("\u2728",e.type,e.key,"went",a,"->",r),e.subject.next({newValue:r,oldValue:a})})};function wE(n,e,i,t){function a(f){if(n.operation.open){let b=n.on.operationClose.subscribe(`state subscription ${i}`,()=>{b(),t(f)})}else t(f)}let r=Tt(n,e);n.logger.info("\uD83D\uDC40",r.type,r.key,`Adding subscription "${i}"`);let o=r.type==="writable_pure_selector"||r.type==="readonly_pure_selector",u=new Map,s=a;if(o){ab(n,r);for(let[f,b]of BD(n,r.key))u.set(f,TM(n,r,b));s=function f(b){let m=BD(n,r.key);for(let[E,h]of u)if(m.get(E))m.delete(E);else h(),u.delete(E);for(let[E,h]of m)u.set(E,TM(n,r,h));a(b)}}let l=r.subject.subscribe(i,s);return()=>{n.logger.info("\uD83D\uDE48",r.type,r.key,`Removing subscription "${i}"`),l();for(let f of u.values())f()}}function Tt(n,e){let i,t=n;while(t!==null){switch(e.type){case"atom":case"mutable_atom":i=t.atoms.get(e.key);break;case"writable_pure_selector":case"writable_held_selector":i=t.writableSelectors.get(e.key);break;case"readonly_pure_selector":case"readonly_held_selector":i=t.readonlySelectors.get(e.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":i=t.families.get(e.key);break;case"timeline":i=t.timelines.get(e.key);break;case"transaction":i=t.transactions.get(e.key);break}if(i)return i;t=t.child}throw new lS(e,n)}var etn=(n,e,i,t)=>{let a=Tt(n,e);n.logger.info("\uD83D\uDC40","timeline",e.key,`Adding subscription "${i}"`);let r=a.subject.subscribe(i,t);return()=>{n.logger.info("\uD83D\uDE48","timeline",e.key,`Removing subscription "${i}" from timeline`),r()}};var gS=class{initializeSignalAtom(n,e){let i=`*${n.key}`;e.atoms.delete(i),e.valueMap.delete(i);let t=n.family?{key:`*${n.family.key}`,subKey:n.family.subKey}:void 0,a=ZD(e,{key:i,default:null},t,["tracker:signal"]);if(e.parent?.valueMap.has(i)){let r=e.parent.valueMap.get(i);e.valueMap.set(i,r)}return a}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(n,e,i){let t=n.key,a=i.config.name,r=Ka(i)?i.transactionMeta.update.key:"main",o=`tracker:${a}:${r}:${t}`,u=(l)=>{lt(i,e,l)},s=ao(i,n);this.unsubscribeFromInnerValue=s.subscribe(o,u),this.unsubscribeFromState=wE(i,n,o,function l(c){if(c.newValue!==c.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=c.newValue.subscribe(o,u)}.bind(this))}supplySignalsToCore(n,e,i){let t=`tracker:${i.config.name}:${Ka(i)?i.transactionMeta.update.key:"main"}:${n.key}`;wE(i,e,t,function a({newValue:r,oldValue:o}){let u=i.timelineTopics.getRelatedKey(e.key);if(u&&i.timelines.get(u)?.timeTraveling){let f=etn(i,{key:u,type:"timeline"},t,function b(m){f(),lt(i,n,(E)=>{if(m==="redo"&&r)E.do(r);else if(m==="undo"&&o)E.undo(o);return E})});return}let s=ao(i,n),l=s.getUpdateNumber(r),c=l-s.cacheUpdateNumber;if(r&&c===1)lt(i,n,(f)=>(f.do(r),f));else{let f=s.cacheUpdateNumber+1;i.logger.info("\u274C","mutable_atom",n.key,"could not be updated. Expected update number",f,"but got",l)}})}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(n,e){let i=ne(e),t=this.initializeSignalAtom(n,i);this.mutableAtomToken=n,this.latestSignalToken=t,this.captureSignalsFromCore(n,t,i),this.supplySignalsToCore(n,t,i),i.trackers.set(n.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),i.trackers.delete(n.key)}}};function XD(n,e,i){n.logger.info("\uD83D\uDD28","atom",e.key,`creating in store "${n.config.name}"`);let t=ne(n),{key:a}=e,r=t.atoms.get(a),o="mutable_atom";if(r&&r.type===o)return n.logger.error("\u274C",o,a,"Tried to create atom, but it already exists in the store."),tb(r);let u=new Ye,s={...e,type:o,install:(c)=>{return c.logger.info("\uD83D\uDEE0\uFE0F","atom",a,`installing in store "${c.config.name}"`),XD(c,e,i)},subject:u};if(i)s.family=i;t.atoms.set(s.key,s);let l=tb(s);if(e.effects){let c=0,f=[];for(let b of e.effects){let m=b({resetSelf:()=>{YD(n,l)},setSelf:(E)=>{lt(n,l,E)},onSet:(E)=>wE(n,l,`effect[${c}]`,E)});if(m)f.push(m);++c}s.cleanup=()=>{for(let b of f)b()}}if(new gS(l,n),!i)HM(n,{key:`${a}:JSON`,get:({get:c})=>c(l).toJSON(),set:({set:c},f)=>{c(l,e.class.fromJSON(f))}});return n.on.atomCreation.next(l),l}var itn=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(n,e){let i=RE(e,{key:`*${n.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=Tt(e,i),this.mutableAtoms=n;let t=(a)=>{let{type:r,token:o}=a;if(o.family){let u=vr(o.family.subKey);switch(r){case"state_creation":this.trackers.set(u,new gS(o,e));break;case"state_disposal":{let s=this.trackers.get(u);if(s)s[Symbol.dispose](),this.trackers.delete(u)}}}};this.mutableAtoms.subject.subscribe(`store=${e.config.name}::tracker-atom-family`,t)}};function mS(n,e,i){let t={key:e.key,type:"mutable_atom_family"},a=n.families.get(e.key);if(a)n.logger.error("\u2757","mutable_atom_family",e.key,`Overwriting an existing ${Zp(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let r=new Ye,u=Object.assign((s)=>{let l=ii(s),c={key:e.key,subKey:l},f=`${e.key}(${l})`,b=ne(n),m={key:f,class:e.class};if(e.effects)m.effects=e.effects(s);let E=XD(b,m,c);return r.next({type:"state_creation",token:E}),E},t,{subject:r,install:(s)=>mS(s,e),internalRoles:i});return n.families.set(e.key,u),bS(n,{key:`${e.key}:JSON`,get:(s)=>({get:l})=>l(t,s).toJSON(),set:(s)=>({set:l},c)=>{l(t,s,e.class.fromJSON(c))}},["mutable","json"]),new itn(u,n),t}var SM=(n,e)=>{let i=ne(e),t=`${n.key}:JSON`;return i.families.get(t)},Qp=(n,e)=>{if(e.family){let t=ne(n),r={key:`${e.family.key}:JSON`,type:"writable_pure_selector_family"},o=Tt(t,r),u=JSON.parse(e.family.subKey);return He(n,o,u)}return{type:"writable_pure_selector",key:`${e.key}:JSON`}};var ES=(n)=>{let i={type:"atom",key:`*${n.key}`};if(n.family)i.family={key:`*${n.family.key}`,subKey:n.family.subKey};return i};function ttn(n){return typeof n==="object"&&n!==null&&"do"in n&&"undo"in n&&"subscribe"in n}var WM=class{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;writableSelectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new kt({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new kt({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new kt({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new kt({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new Tin(100);molecules=new Map;moleculeJoins=new kt({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});moleculeGraph=new kt({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});moleculeData=new kt({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});miscResources=new Map;on={atomCreation:new Ye,atomDisposal:new Ye,selectorCreation:new Ye,selectorDisposal:new Ye,timelineCreation:new Ye,transactionCreation:new Ye,transactionApplying:new _in(null),operationClose:new Ye,moleculeCreation:new Ye,moleculeDisposal:new Ye};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new WD("warn",(n,e,i)=>!atn(i))];logger={error:(...n)=>{for(let e of this.loggers)e.error(...n)},info:(...n)=>{for(let e of this.loggers)e.info(...n)},warn:(...n)=>{for(let e of this.loggers)e.warn(...n)}};constructor(n,e=null){if(this.config={...e?.config,...n},e!==null){if(this.operation={...e?.operation},Dc(e))this.transactionMeta={epoch:new Map(e?.transactionMeta.epoch),actionContinuities:new kt(e?.transactionMeta.actionContinuities.toJSON())};for(let[,t]of e.families){if(t.internalRoles?.includes("mutable")||t.internalRoles?.includes("join"))continue;t.install(this)}let i=new Set;for(let[,t]of e.atoms){if(i.has(t.key))continue;if(t.install(this),t.type==="mutable_atom"){let a=Qp(e,t),r=ES(t);i.add(a.key),i.add(r.key)}}for(let[,t]of e.readonlySelectors)t.install(this);for(let[,t]of e.writableSelectors){if(i.has(t.key))continue;t.install(this)}for(let[,t]of e.transactions)t.install(this);for(let[,t]of e.timelines)t.install(this)}}},Ve={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new WM({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function ZD(n,e,i,t){let{key:r}=e;n.logger.info("\uD83D\uDD28","atom",r,`creating in store "${n.config.name}"`);let o=ne(n),u=o.atoms.get(r);if(u&&u.type==="atom")return n.logger.error("\u274C","atom",r,"Tried to create atom, but it already exists in the store."),tb(u);let s=new Ye,l={...e,type:"atom",install:(f)=>{return f.logger.info("\uD83D\uDEE0\uFE0F","atom",r,`installing in store "${f.config.name}"`),ZD(f,e,i)},subject:s};if(i)l.family=i;if(t)l.internalRoles=t;o.atoms.set(r,l);let c=tb(l);if(e.effects){let f=0,b=[];for(let m of e.effects){let E=m({resetSelf:()=>{YD(n,c)},setSelf:(h)=>{lt(n,c,h)},onSet:(h)=>wE(n,c,`effect[${f}]`,h)});if(E)b.push(E);++f}l.cleanup=()=>{for(let m of b)m()}}return n.on.atomCreation.next(c),c}function YM(n,e){let i=ne(n),{key:t,family:a}=e,r=Tt(i,e);if(!a)n.logger.error("\u274C","atom",t,"Standalone atoms cannot be disposed.");else{r.cleanup?.();let o=n.valueMap.get(r.key),u=Tt(n,{key:a.key,type:"atom_family"}),s={type:"state_disposal",subType:"atom",token:e,value:o};u.subject.next(s);let l=Ka(i);if(i.atoms.delete(t),i.valueMap.delete(t),i.selectorAtoms.delete(t),i.atomsThatAreDefault.delete(t),i.moleculeData.delete(a.key,a.subKey),n.timelineTopics.delete(t),e.type==="mutable_atom"){let c=ES(e);YM(n,c),n.trackers.delete(t)}if(n.logger.info("\uD83D\uDD25","atom",t,"deleted"),l&&i.transactionMeta.phase==="building"){let c=i.transactionMeta.update.updates.at(-1);if(!(c?.type==="molecule_disposal"&&c.values.some(([m])=>m===r.family?.key)))i.transactionMeta.update.updates.push(s)}else n.on.atomDisposal.next(e)}}var VM=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(n,e){let i=this.toolkit;this.toolkit=n,e(this),this.toolkit=i}store;realm;[Symbol.dispose](){}constructor(n,e,i=Ve.STORE){this.store=i,this.realm=new xM(i),this.options=n,this.defaultContent=e,this.store.miscResources.set(`join:${n.key}`,this),this.realm.allocate("root",n.key),this.toolkit={get:(...F)=>ao(i,...F),set:(...F)=>{lt(i,...F)},find:(...F)=>He(i,...F),json:(F)=>Qp(i,F)};let t=n.between[0],a=n.between[1],r=mS(i,{key:`${n.key}/relatedKeys`,class:fl},["join","relations"]);this.core={relatedKeysAtoms:r};let o=({get:F},x)=>F(r,x),u=({set:F},x,I)=>{if(!this.store.molecules.has(ii(x)))this.realm.allocate(n.key,x);F(r,x,(U)=>U.add(I)),F(r,I,(U)=>U.add(x))},s=({set:F},x,I)=>{F(r,x,(U)=>{return U.delete(I),U}),F(r,I,(U)=>{return U.delete(x),U})},l=(F,x,I)=>{let{find:U,get:W,set:B}=F,H=U(r,x),K=W(H);for(let Z of K){if(I.includes(Z))continue;B(r,Z,(an)=>{return an.delete(x),an})}B(H,(Z)=>{return Z.transaction((J)=>{J.clear();for(let an of I){let on=o(F,an),Dn=on.has(x);if(this.relations.cardinality==="1:n"){let Ln=[];for(let Q of on){if(Q===x)continue;let O=o(F,Q);if(O.delete(an),O.size===0)Ln.push(Q)}if(!Dn&&on.size>0)on.clear();for(let Q of Ln){let O=[an,Q].sort(),X=`"${O[0]}:${O[1]}"`;this.molecules.delete(X)}}if(!Dn)on.add(x);J.add(an)}return!0}),Z})},c=(F,x,I)=>{let{set:U}=F;U(r,x,(W)=>{return W.transaction((B)=>{for(let H of I)B.add(H);return!0}),W});for(let W of I)U(r,W,(B)=>{return B.add(x),B});return!0},f=(F,x,I)=>{let U=o(F,x);return I?U.has(I):U.size>0},b={getRelatedKeys:(F)=>o(this.toolkit,F),addRelation:(F,x)=>{this.store.moleculeJoins.set(F,n.key),this.store.moleculeJoins.set(x,n.key),u(this.toolkit,F,x)},deleteRelation:(F,x)=>{s(this.toolkit,F,x)},replaceRelationsSafely:(F,x)=>{l(this.toolkit,F,x)},replaceRelationsUnsafely:(F,x)=>{c(this.toolkit,F,x)},has:(F,x)=>f(this.toolkit,F,x)},m,E;if(e){E=RE(i,{key:`${n.key}/content`,default:e},["join","content"]);let F=({get:U},W)=>U(E,W),x=({set:U},W,B)=>{U(E,W,B)};m=Object.assign(b,{getContent:(U)=>{return F(this.toolkit,U)},setContent:(U,W)=>{x(this.toolkit,U,W)},deleteContent:(U)=>{this.realm.deallocate(U)}})}else m=b;let h=new kt(n,{externalStore:m,isAType:n.isAType,isBType:n.isBType,makeContentKey:(...F)=>{let[x,I]=F,U=F.sort(),W=`${U[0]}:${U[1]}`,B=i.molecules.get(ii(x)),H=i.molecules.get(ii(I));if(!B)this.realm.allocate(n.key,x);if(!H)this.realm.allocate(n.key,I);return this.realm.allocate(x,W,"all"),this.realm.claim(I,W),this.store.moleculeJoins.set(W,n.key),W}}),D=()=>ib(i,{key:`${n.key}/singleRelatedKey`,get:(F)=>({get:x})=>{let I=x(r,F);for(let U of I)return U;return null}},["join","keys"]),T=()=>{return ib(i,{key:`${n.key}/multipleRelatedKeys`,get:(F)=>({get:x})=>{let I=SM(r,i);return x(I,F).members}},["join","keys"])},v=()=>ib(i,{key:`${n.key}/singleRelatedEntry`,get:(F)=>({get:x})=>{let I=x(r,F);for(let U of I){let W=h.isAType?.(F)?F:void 0,B=W===void 0?F:void 0;W??=U,B??=U;let H=h.makeContentKey(W,B),K=x(E,H);return[U,K]}return null}},["join","entries"]),_=()=>ib(i,{key:`${n.key}/multipleRelatedEntries`,get:(F)=>({get:x})=>{let I=SM(r,i);return x(I,F).members.map((W)=>{let B=h.isAType?.(F)?F:void 0,H=B===void 0?F:void 0;B??=W,H??=W;let K=h.makeContentKey(B,H),Z=x(E,K);return[W,Z]})}},["join","entries"]);switch(n.cardinality){case"1:1":{let F=D(),x=`${t}KeyOf${Di(a)}`,I=`${a}KeyOf${Di(t)}`,U={[x]:F,[I]:F},W;if(e){let B=v(),H=`${t}EntryOf${Di(a)}`,K=`${a}EntryOf${Di(t)}`,Z={[H]:B,[K]:B};W=Object.assign(U,Z)}else W=U;this.relations=h,this.states=W;break}case"1:n":{let F=D(),x=T(),I=`${t}KeyOf${Di(a)}`,U=`${a}KeysOf${Di(t)}`,W={[I]:F,[U]:x},B;if(e){let H=v(),K=_(),Z=`${t}EntryOf${Di(a)}`,J=`${a}EntriesOf${Di(t)}`,an={[Z]:H,[J]:K};B=Object.assign(W,an)}else B=W;this.relations=h,this.states=B;break}case"n:n":{let F=T(),x=`${t}KeysOf${Di(a)}`,I=`${a}KeysOf${Di(t)}`,U={[x]:F,[I]:F},W;if(e){let B=_(),H=`${t}EntriesOf${Di(a)}`,K=`${a}EntriesOf${Di(t)}`,Z={[H]:B,[K]:B};W=Object.assign(U,Z)}else W=U;this.relations=h,this.states=W}}}};function XM(n,e,i){return n.joins.set(e.key,new VM(e,i,n)),{key:e.key,type:"join",a:e.between[0],b:e.between[1],cardinality:e.cardinality}}function hS(n,e){let i=e.joins.get(n.key);if(i===void 0){let a=Ve.STORE.joins.get(n.key);if(a===void 0)throw new Error(`Join "${n.key}" not found in store "${e.config.name}"`);i=new VM(a.options,a.defaultContent,e),e.joins.set(n.key,i)}return i}function wc(n,e,i){let t=hS(n,i),a=ne(i);if(Ka(a)){let{toolkit:r}=a.transactionMeta;t.transact(r,({relations:o})=>{e(o)})}else e(t.relations)}function SE(n,e,i){let t=hS(n,i),a;switch(n.cardinality){case"1:1":{let r=`${n.a}KeyOf${Di(n.b)}`,o=`${n.b}KeyOf${Di(n.a)}`;a={get[r](){let s=t.states[r];return He(i,s,e)},get[o](){let s=t.states[o];return He(i,s,e)}};let u=`${n.a}EntryOf${Di(n.b)}`;if(u in t.states){let s=`${n.b}EntryOf${Di(n.a)}`;Object.assign(a,{get[u](){let l=t.states[u];return He(i,l,e)},get[s](){let l=t.states[s];return He(i,l,e)}})}break}case"1:n":{let r=`${n.a}KeyOf${Di(n.b)}`,o=`${n.b}KeysOf${Di(n.a)}`;a={get[r](){let s=t.states[r];return He(i,s,e)},get[o](){let s=t.states[o];return He(i,s,e)}};let u=`${n.a}EntryOf${Di(n.b)}`;if(u in t.states){let s=`${n.b}EntriesOf${Di(n.a)}`;Object.assign(a,{get[u](){let l=t.states[u];return He(i,l,e)},get[s](){let l=t.states[s];return He(i,l,e)}})}break}case"n:n":{let r=`${n.a}KeysOf${Di(n.b)}`,o=`${n.b}KeysOf${Di(n.a)}`;a={get[r](){let s=t.states[r];return He(i,s,e)},get[o](){let s=t.states[o];return He(i,s,e)}};let u=`${n.a}EntriesOf${Di(n.b)}`;if(u in t.states){let s=`${n.b}EntriesOf${Di(n.a)}`;Object.assign(a,{get[u](){let l=t.states[u];return He(i,l,e)},get[s](){let l=t.states[s];return He(i,l,e)}})}}}return a}function ZM(n,e){return hS(n,e).core.relatedKeysAtoms}function atn(n){return n.startsWith("\uD83D\uDD0D ")}function ub(n){return XD(Ve.STORE,n,void 0)}function xE(n){return RE(Ve.STORE,n)}function XNn(...n){if(n.length===2)return ao(Ve.STORE,...n);return ao(Ve.STORE,...n)}function QD(n,e){return XM(Ve.STORE,n,e)}function QM(n){return ZM(n,Ve.STORE)}var AS=(n)=>(e,i,t,a,...r)=>{console[n](`${e} ${i} "${t}" ${a}`,...r)},rtn={error:AS("error"),info:AS("info"),warn:AS("warn")},WD=class{logLevel;filter;logger;constructor(n,e,i=rtn){this.logLevel=n,this.filter=e,this.logger=i}error=(...n)=>{if(this.logLevel!==null){let e=this.filter?.(...n)??!0;if(e===!0)this.logger.error(...n);else if(e)this.logger.error(...e)}};info=(...n)=>{if(this.logLevel==="info"){let e=this.filter?.(...n)??!0;if(e===!0)this.logger.info(...n);else if(e)this.logger.info(...e)}};warn=(...n)=>{if(this.logLevel!=="error"&&this.logLevel!==null){let e=this.filter?.(...n)??!0;if(e===!0)this.logger.warn(...n);else if(e)this.logger.warn(...e)}}};var otn=class{store;constructor(n=Ve.STORE){this.store=n,MM("root",n)}allocate(n,e,i){return rb(this.store,n,e,i)}fuse(n,e,i){return UM(this.store,n,e,i)}deallocate(n){ob(this.store,n)}claim(n,e,i){return DE(this.store,n,e,i)}},xM=class{store;realm;constructor(n=Ve.STORE){this.store=n,this.realm=new otn(n)}allocate(n,e,i){rb(this.store,n,e,i)}deallocate(n){ob(this.store,n)}claim(n,e,i){DE(this.store,n,e,i)}};function KD(n){return BM(Ve.STORE,n)}function _E(n){return pS(Ve.STORE,n)}var qj=le(jD(),1),nJ=le(tx(),1);var IG=le(LG(),1),{Server:yG,Namespace:wCn,Socket:MG}=IG.default;import{readFileSync as Y$}from"fs";import{createServer as gbn}from"http";import{createServer as mbn}from"https";import{resolve as bN}from"path";function UG(n,e){if(n instanceof Promise)throw new Error(e)}function Dcn(n,e){let i={},t=[];for(let a in n){let r=n[a]["~standard"].validate(e[a]);if(UG(r,`Validation must be synchronous, but ${a} returned a Promise.`),r.issues){t.push(...r.issues.map((o)=>({...o,message:o.message,path:[a,...o.path??[]]})));continue}i[a]=r.value}if(t.length)return{issues:t};return{value:i}}function Kx(n){let e=n.runtimeEnvStrict??n.runtimeEnv??process.env;if(n.emptyStringAsUndefined??!1){for(let[v,_]of Object.entries(e))if(_==="")delete e[v]}if(!!n.skipValidation)return e;let a=typeof n.client==="object"?n.client:{},r=typeof n.server==="object"?n.server:{},o=typeof n.shared==="object"?n.shared:{},u=n.isServer??(typeof window==="undefined"||("Deno"in window)),s=u?{...r,...o,...a}:{...a,...o},l=n.createFinalSchema?.(s,u)["~standard"].validate(e)??Dcn(s,e);UG(l,"Validation must be synchronous");let c=n.onValidationError??((v)=>{throw console.error("\u274C Invalid environment variables:",v),new Error("Invalid environment variables")}),f=n.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(l.issues)return c(l.issues);let b=(v)=>{if(!n.clientPrefix)return!0;return!v.startsWith(n.clientPrefix)&&!(v in o)},m=(v)=>{return u||!b(v)},E=(v)=>{return v==="__esModule"||v==="$$typeof"},h=(n.extends??[]).reduce((v,_)=>{return Object.assign(v,_)},{}),D=Object.assign(h,l.value);return new Proxy(D,{get(v,_){if(typeof _!=="string")return;if(E(_))return;if(!m(_))return f(_);return Reflect.get(v,_)}})}var Cc=(n)=>Array.isArray(n)?n:[n],GG=(n,e)=>{let i=[[],[]];for(let t of n)if(e(t))i[0].push(t);else i[1].push(t);return i},B0=Array,Al=(n,e)=>n.includes(e),zG=(n,e=0)=>[...new Array(n)].map((i,t)=>t+e),Te=(n,e,i)=>{if(n===void 0)return e===void 0?[]:Array.isArray(e)?e:[e];if(i?.prepend)if(Array.isArray(e))n.unshift(...e);else n.unshift(e);else if(Array.isArray(e))n.push(...e);else n.push(e);return n},Dl=(n,e)=>{if(e===void 0||e===null)return n??[];if(n===void 0||n===null)return Cc(e);return n.concat(e)},$G=(...n)=>n.reduce(Dl,[]),Ts=(n,e,i)=>{if(n===void 0)return Array.isArray(e)?e:[e];let t=i?.isEqual??((a,r)=>a===r);for(let a of Cc(e))if(!n.some((r)=>t(r,a)))n.push(a);return n},HG=(n,e)=>n.reduce((i,t)=>{let a=t[e];return i[a]=Te(i[a],t),i},{}),wl=(n,e,i)=>n.length===e.length&&n.every(i?.isEqual?(t,a)=>i.isEqual(t,e[a]):(t,a)=>t===e[a]);var Sr=(n,e)=>ct(n)===e,ct=(n)=>{let e=typeof n;return e==="object"?n===null?"null":"object":e==="function"?"object":e},xr={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},kG={...xr,function:"a function"};class PG extends Error{}var Oe=(n)=>ld(n,PG),ld=(n,e=Error)=>{throw new e(n)};class VE extends Error{name="ParseError"}var tn=(n)=>ld(n,VE),Nu=(n)=>` ${n}`;var re=(n,e)=>{let i={},t=Array.isArray(n),a=!1;for(let[r,o]of Object.entries(n).entries()){let u=t?e(r,o[1]):e(...o,r);a||=typeof u[0]==="number";let s=Array.isArray(u[0])||u.length===0?u:[u];for(let[l,c]of s)if(typeof l==="object")i[l.group]=Te(i[l.group],c);else i[l]=c}return a?Object.values(i):i};var jx=Object.entries;var pt=(n,e)=>(n in e),yb=(n,e)=>(e in n);class Jx{constructor(n){Object.assign(this,n)}}var BG=class{};class XE extends BG{}var wcn=(n,e)=>{let i={},t={},a;for(a in n)if(a in e)i[a]=n[a];else t[a]=n[a];return[i,t]};var WG=(n,e)=>wcn(n,e)[1],Ss=(n)=>Object.keys(n).length===0,cd=(n)=>[...Object.entries(n),...Object.getOwnPropertySymbols(n).map((e)=>[e,n[e]])],YG=(n,e)=>Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)),VG=(n)=>{let e=Object.keys(n).sort(),i={};for(let t=0;t<e.length;t++)i[e[t]]=n[e[t]];return i};var co=Nu("represents an uninitialized value"),XG=(n)=>Object.values(n).filter((e)=>{if(typeof e==="number")return!0;return typeof n[e]!=="number"});var qx={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},n_=globalThis.File??Blob,e_={ArrayBuffer,Blob,File:n_,FormData,Headers,Request,Response,URL},vcn={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},pd={...qx,...e_,...vcn,String,Number,Boolean},ZE=(n)=>{let e=Object.getPrototypeOf(n);while(e?.constructor&&(!pt(e.constructor.name,pd)||!(n instanceof pd[e.constructor.name])))e=Object.getPrototypeOf(e);let i=e?.constructor?.name;if(i===void 0||i==="Object")return;return i},QE=(n)=>typeof n==="object"&&n!==null?ZE(n)??"object":ct(n);var si=Array.isArray,Rcn={Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},Tcn={ArrayBuffer:"an ArrayBuffer instance",Blob:"a Blob instance",File:"a File instance",FormData:"a FormData instance",Headers:"a Headers instance",Request:"a Request instance",Response:"a Response instance",URL:"a URL instance"},Scn={Int8Array:"an Int8Array",Uint8Array:"a Uint8Array",Uint8ClampedArray:"a Uint8ClampedArray",Int16Array:"an Int16Array",Uint16Array:"a Uint16Array",Int32Array:"an Int32Array",Uint32Array:"a Uint32Array",Float32Array:"a Float32Array",Float64Array:"a Float64Array",BigInt64Array:"a BigInt64Array",BigUint64Array:"a BigUint64Array"},ZG={...Rcn,...Tcn,...Scn},KE=(n)=>{let e=Object(n).name??null;return e&&pt(e,pd)&&pd[e]===n?e:null};var i_=(n,e)=>{let i=n.prototype;while(i!==null){if(i===e.prototype)return!0;i=Object.getPrototypeOf(i)}return!1};var QG=(n)=>KG(n,new Map),KG=(n,e)=>{if(typeof n!=="object"||n===null)return n;if(e?.has(n))return e.get(n);let i=KE(n.constructor);if(i==="Date")return new Date(n.getTime());if(i&&i!=="Array")return n;let t=Array.isArray(n)?n.slice():Object.create(Object.getPrototypeOf(n)),a=Object.getOwnPropertyDescriptors(n);if(e){e.set(n,t);for(let r in a){let o=a[r];if("get"in o||"set"in o)continue;o.value=KG(o.value,e)}}return Object.defineProperties(t,a),t};var xcn=(n)=>{let e=co;return()=>e===co?e=n():e},Oc=(n)=>typeof n==="function"&&n.length===0;var jG=class extends Function{constructor(...n){let e=n.slice(0,-1),i=n.at(-1);try{super(...e,i)}catch(t){return Oe(`Encountered an unexpected error while compiling your definition:
305
305
  Message: ${t}
306
306
  Source: (${n.slice(0,-1)}) => {