@instantdb/react 0.22.47-experimental.sync-table.19152834603.1 → 0.22.47-experimental.sync-table.19154203588.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
- (function(B,k){typeof exports=="object"&&typeof module<"u"?k(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],k):(B=typeof globalThis<"u"?globalThis:B||self,k(B.instantReact={},B.React))})(this,function(B,k){"use strict";function G(t){if(typeof t=="number")return(Math.abs(t*2654435761)>>>0).toString(16);if(typeof t=="boolean")return t?"1":"0";if(t===null)return"null";if(t===void 0)return"undefined";if(typeof t=="string"){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24),e=e>>>0;return e.toString(16)}if(Array.isArray(t)){let e=2166136261;for(let n=0;n<t.length;n++){e^=(n+1)*2654435761;const r=G(t[n]);for(let i=0;i<r.length;i++)e^=r.charCodeAt(i),e*=16777619,e=e>>>0}return e.toString(16)}if(typeof t=="object"){let e=2166136261;const n=Object.keys(t).sort();for(let r=0;r<n.length;r++){const i=n[r],s=G(i);e^=parseInt(s,16),e*=16777619,e=e>>>0;const o=G(t[i]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return G(String(t))}const $={Remove:"remove",Replace:"replace",Add:"add"},zn=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Ki=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),ut=Symbol.iterator,re={mutable:"mutable",immutable:"immutable"},Rt={};function We(t,e){return t instanceof Map?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Kn(t,e){if(e in t){let n=Reflect.getPrototypeOf(t);for(;n;){const r=Reflect.getOwnPropertyDescriptor(n,e);if(r)return r;n=Reflect.getPrototypeOf(n)}}}function xt(t){return Object.getPrototypeOf(t)===Set.prototype}function Dt(t){return Object.getPrototypeOf(t)===Map.prototype}function ie(t){var e;return(e=t.copy)!==null&&e!==void 0?e:t.original}function ge(t){return!!A(t)}function A(t){return typeof t!="object"?null:t==null?void 0:t[zn]}function $t(t){var e;const n=A(t);return n?(e=n.copy)!==null&&e!==void 0?e:n.original:t}function ae(t,e){if(!t||typeof t!="object")return!1;let n;return Object.getPrototypeOf(t)===Object.prototype||Array.isArray(t)||t instanceof Map||t instanceof Set||!!(e!=null&&e.mark)&&((n=e.mark(t,re))===re.immutable||typeof n=="function")}function qn(t,e=[]){if(Object.hasOwnProperty.call(t,"key")){const n=t.parent.copy,r=A(he(n,t.key));if(r!==null&&(r==null?void 0:r.original)!==t.original)return null;const i=t.parent.type===3,s=i?Array.from(t.parent.setMap.keys()).indexOf(t.key):t.key;if(!(i&&n.size>s||We(n,s)))return null;e.push(s)}if(t.parent)return qn(t.parent,e);e.reverse();try{qi(t.copy,e)}catch{return null}return e}function Te(t){return Array.isArray(t)?1:t instanceof Map?2:t instanceof Set?3:0}function he(t,e){return Te(t)===2?t.get(e):t[e]}function Ve(t,e,n){Te(t)===2?t.set(e,n):t[e]=n}function Ut(t,e){const n=A(t);return(n?ie(n):t)[e]}function pe(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function Lt(t){if(t)for(;t.finalities.revoke.length>0;)t.finalities.revoke.pop()()}function we(t,e){return e?t:[""].concat(t).map(n=>{const r=`${n}`;return r.indexOf("/")===-1&&r.indexOf("~")===-1?r:r.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")}function qi(t,e){for(let n=0;n<e.length-1;n+=1){const r=e[n];if(t=he(Te(t)===3?Array.from(t):t,r),typeof t!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return t}function Bi(t){const e=Object.create(Object.getPrototypeOf(t));return Reflect.ownKeys(t).forEach(n=>{let r=Reflect.getOwnPropertyDescriptor(t,n);if(r.enumerable&&r.configurable&&r.writable){e[n]=t[n];return}r.writable||(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(r={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[n]}),Reflect.defineProperty(e,n,r)}),e}const Gi=Object.prototype.propertyIsEnumerable;function Bn(t,e){let n;if(Array.isArray(t))return Array.prototype.concat.call(t);if(t instanceof Set){if(!xt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t.values())}return Set.prototype.difference?Set.prototype.difference.call(t,new Set):new Set(t.values())}else if(t instanceof Map){if(!Dt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t)}return new Map(t)}else if(e!=null&&e.mark&&(n=e.mark(t,re),n!==void 0)&&n!==re.mutable){if(n===re.immutable)return Bi(t);if(typeof n=="function"){if(e.enablePatches||e.enableAutoFreeze)throw new Error("You can't use mark and patches or auto freeze together.");return n()}throw new Error(`Unsupported mark result: ${n}`)}else if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype){const r={};return Object.keys(t).forEach(i=>{r[i]=t[i]}),Object.getOwnPropertySymbols(t).forEach(i=>{Gi.call(t,i)&&(r[i]=t[i])}),r}else throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function Q(t){t.copy||(t.copy=Bn(t.original,t.options))}function ze(t){if(!ae(t))return $t(t);if(Array.isArray(t))return t.map(ze);if(t instanceof Map){const n=Array.from(t.entries()).map(([r,i])=>[r,ze(i)]);if(!Dt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Map(n)}if(t instanceof Set){const n=Array.from(t).map(ze);if(!xt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Set(n)}const e=Object.create(Object.getPrototypeOf(t));for(const n in t)e[n]=ze(t[n]);return e}function ct(t){return ge(t)?ze(t):t}function fe(t){var e;t.assignedMap=(e=t.assignedMap)!==null&&e!==void 0?e:new Map,t.operated||(t.operated=!0,t.parent&&fe(t.parent))}function Gn(){throw new Error("Cannot modify frozen object")}function Ae(t,e,n,r,i){{n=n??new WeakMap,r=r??[],i=i??[];const o=n.has(t)?n.get(t):t;if(r.length>0){const a=r.indexOf(o);if(o&&typeof o=="object"&&a!==-1)throw r[0]===o?new Error("Forbids circular reference"):new Error(`Forbids circular reference: ~/${i.slice(0,a).map((u,d)=>{if(typeof u=="symbol")return`[${u.toString()}]`;const c=r[d];return typeof u=="object"&&(c instanceof Map||c instanceof Set)?Array.from(c.keys()).indexOf(u):u}).join("/")}`);r.push(o),i.push(e)}else r.push(o)}if(Object.isFrozen(t)||ge(t)){r.pop(),i.pop();return}switch(Te(t)){case 2:for(const[a,u]of t)Ae(a,a,n,r,i),Ae(u,a,n,r,i);t.set=t.clear=t.delete=Gn;break;case 3:for(const a of t)Ae(a,a,n,r,i);t.add=t.clear=t.delete=Gn;break;case 1:Object.freeze(t);let o=0;for(const a of t)Ae(a,o,n,r,i),o+=1;break;default:Object.freeze(t),Object.keys(t).forEach(a=>{const u=t[a];Ae(u,a,n,r,i)})}r.pop(),i.pop()}function Ft(t,e){const n=Te(t);if(n===0)Reflect.ownKeys(t).forEach(r=>{e(r,t[r],t)});else if(n===1){let r=0;for(const i of t)e(r,i,t),r+=1}else t.forEach((r,i)=>e(i,r,t))}function Qn(t,e,n){if(ge(t)||!ae(t,n)||e.has(t)||Object.isFrozen(t))return;const r=t instanceof Set,i=r?new Map:void 0;if(e.add(t),Ft(t,(s,o)=>{var a;if(ge(o)){const u=A(o);Q(u);const d=!((a=u.assignedMap)===null||a===void 0)&&a.size||u.operated?u.copy:u.original;Ve(r?i:t,s,d)}else Qn(o,e,n)}),i){const s=t,o=Array.from(s);s.clear(),o.forEach(a=>{s.add(i.has(a)?i.get(a):a)})}}function Qi(t,e){const n=t.type===3?t.setMap:t.copy;t.finalities.revoke.length>1&&t.assignedMap.get(e)&&n&&Qn(he(n,e),t.finalities.handledSet,t.options)}function Nt(t){t.type===3&&t.copy&&(t.copy.clear(),t.setMap.forEach(e=>{t.copy.add($t(e))}))}function Wt(t,e,n,r){if(t.operated&&t.assignedMap&&t.assignedMap.size>0&&!t.finalized){if(n&&r){const s=qn(t);s&&e(t,s,n,r)}t.finalized=!0}}function Vt(t,e,n,r){const i=A(n);i&&(i.callbacks||(i.callbacks=[]),i.callbacks.push((s,o)=>{var a;const u=t.type===3?t.setMap:t.copy;if(pe(he(u,e),n)){let d=i.original;i.copy&&(d=i.copy),Nt(t),Wt(t,r,s,o),t.options.enableAutoFreeze&&(t.options.updatedValues=(a=t.options.updatedValues)!==null&&a!==void 0?a:new WeakMap,t.options.updatedValues.set(d,i.original)),Ve(u,e,d)}}),t.options.enableAutoFreeze&&i.finalities!==t.finalities&&(t.options.enableAutoFreeze=!1)),ae(n,t.options)&&t.finalities.draft.push(()=>{const s=t.type===3?t.setMap:t.copy;pe(he(s,e),n)&&Qi(t,e)})}function Hi(t,e,n,r,i){let{original:s,assignedMap:o,options:a}=t,u=t.copy;u.length<s.length&&([s,u]=[u,s],[n,r]=[r,n]);for(let d=0;d<s.length;d+=1)if(o.get(d.toString())&&u[d]!==s[d]){const c=e.concat([d]),f=we(c,i);n.push({op:$.Replace,path:f,value:ct(u[d])}),r.push({op:$.Replace,path:f,value:ct(s[d])})}for(let d=s.length;d<u.length;d+=1){const c=e.concat([d]),f=we(c,i);n.push({op:$.Add,path:f,value:ct(u[d])})}if(s.length<u.length){const{arrayLengthAssignment:d=!0}=a.enablePatches;if(d){const c=e.concat(["length"]),f=we(c,i);r.push({op:$.Replace,path:f,value:s.length})}else for(let c=u.length;s.length<c;c-=1){const f=e.concat([c-1]),h=we(f,i);r.push({op:$.Remove,path:h})}}}function Yi({original:t,copy:e,assignedMap:n},r,i,s,o){n.forEach((a,u)=>{const d=he(t,u),c=ct(he(e,u)),f=a?We(t,u)?$.Replace:$.Add:$.Remove;if(pe(d,c)&&f===$.Replace)return;const h=r.concat(u),p=we(h,o);i.push(f===$.Remove?{op:f,path:p}:{op:f,path:p,value:c}),s.push(f===$.Add?{op:$.Remove,path:p}:f===$.Remove?{op:$.Add,path:p,value:d}:{op:$.Replace,path:p,value:d})})}function Ji({original:t,copy:e},n,r,i,s){let o=0;t.forEach(a=>{if(!e.has(a)){const u=n.concat([o]),d=we(u,s);r.push({op:$.Remove,path:d,value:a}),i.unshift({op:$.Add,path:d,value:a})}o+=1}),o=0,e.forEach(a=>{if(!t.has(a)){const u=n.concat([o]),d=we(u,s);r.push({op:$.Add,path:d,value:a}),i.unshift({op:$.Remove,path:d,value:a})}o+=1})}function Ke(t,e,n,r){const{pathAsArray:i=!0}=t.options.enablePatches;switch(t.type){case 0:case 2:return Yi(t,e,n,r,i);case 1:return Hi(t,e,n,r,i);case 3:return Ji(t,e,n,r,i)}}const dt=(t,e,n=!1)=>{if(typeof t=="object"&&t!==null&&(!ae(t,e)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},zt={get size(){return ie(A(this)).size},has(t){return ie(A(this)).has(t)},set(t,e){const n=A(this),r=ie(n);return(!r.has(t)||!pe(r.get(t),e))&&(Q(n),fe(n),n.assignedMap.set(t,!0),n.copy.set(t,e),Vt(n,t,e,Ke)),this},delete(t){if(!this.has(t))return!1;const e=A(this);return Q(e),fe(e),e.original.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.copy.delete(t),!0},clear(){const t=A(this);if(this.size){Q(t),fe(t),t.assignedMap=new Map;for(const[e]of t.original)t.assignedMap.set(e,!1);t.copy.clear()}},forEach(t,e){const n=A(this);ie(n).forEach((r,i)=>{t.call(e,this.get(i),i,this)})},get(t){var e,n;const r=A(this),i=ie(r).get(t),s=((n=(e=r.options).mark)===null||n===void 0?void 0:n.call(e,i,re))===re.mutable;if(r.options.strict&&dt(i,r.options,s),s||r.finalized||!ae(i,r.options)||i!==r.original.get(t))return i;const o=Rt.createDraft({original:i,parentDraft:r,key:t,finalities:r.finalities,options:r.options});return Q(r),r.copy.set(t,o),o},keys(){return ie(A(this)).keys()},values(){const t=this.keys();return{[ut]:()=>this.values(),next:()=>{const e=t.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const t=this.keys();return{[ut]:()=>this.entries(),next:()=>{const e=t.next();if(e.done)return e;const n=this.get(e.value);return{done:!1,value:[e.value,n]}}}},[ut](){return this.entries()}},Zi=Reflect.ownKeys(zt),Hn=(t,e,{isValuesIterator:n})=>()=>{var r,i;const s=e.next();if(s.done)return s;const o=s.value;let a=t.setMap.get(o);const u=A(a),d=((i=(r=t.options).mark)===null||i===void 0?void 0:i.call(r,a,re))===re.mutable;if(t.options.strict&&dt(o,t.options,d),!d&&!u&&ae(o,t.options)&&!t.finalized&&t.original.has(o)){const c=Rt.createDraft({original:o,parentDraft:t,key:o,finalities:t.finalities,options:t.options});t.setMap.set(o,c),a=c}else u&&(a=u.proxy);return{done:!1,value:n?a:[a,a]}},ft={get size(){return A(this).setMap.size},has(t){const e=A(this);if(e.setMap.has(t))return!0;Q(e);const n=A(t);return!!(n&&e.setMap.has(n.original))},add(t){const e=A(this);return this.has(t)||(Q(e),fe(e),e.assignedMap.set(t,!0),e.setMap.set(t,t),Vt(e,t,t,Ke)),this},delete(t){if(!this.has(t))return!1;const e=A(this);Q(e),fe(e);const n=A(t);return n&&e.setMap.has(n.original)?(e.assignedMap.set(n.original,!1),e.setMap.delete(n.original)):(!n&&e.setMap.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.setMap.delete(t))},clear(){if(!this.size)return;const t=A(this);Q(t),fe(t);for(const e of t.original)t.assignedMap.set(e,!1);t.setMap.clear()},values(){const t=A(this);Q(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:Hn(t,e,{isValuesIterator:!0})}},entries(){const t=A(this);Q(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:Hn(t,e,{isValuesIterator:!1})}},keys(){return this.values()},[ut](){return this.values()},forEach(t,e){const n=this.values();let r=n.next();for(;!r.done;)t.call(e,r.value,r.value,this),r=n.next()}};Set.prototype.difference&&Object.assign(ft,{intersection(t){return Set.prototype.intersection.call(new Set(this.values()),t)},union(t){return Set.prototype.union.call(new Set(this.values()),t)},difference(t){return Set.prototype.difference.call(new Set(this.values()),t)},symmetricDifference(t){return Set.prototype.symmetricDifference.call(new Set(this.values()),t)},isSubsetOf(t){return Set.prototype.isSubsetOf.call(new Set(this.values()),t)},isSupersetOf(t){return Set.prototype.isSupersetOf.call(new Set(this.values()),t)},isDisjointFrom(t){return Set.prototype.isDisjointFrom.call(new Set(this.values()),t)}});const Xi=Reflect.ownKeys(ft),Yn=new WeakSet,Jn={get(t,e,n){var r,i;const s=(r=t.copy)===null||r===void 0?void 0:r[e];if(s&&Yn.has(s))return s;if(e===zn)return t;let o;if(t.options.mark){const d=e==="size"&&(t.original instanceof Map||t.original instanceof Set)?Reflect.get(t.original,e):Reflect.get(t.original,e,n);if(o=t.options.mark(d,re),o===re.mutable)return t.options.strict&&dt(d,t.options,!0),d}const a=ie(t);if(a instanceof Map&&Zi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(zt,"size").get.call(t.proxy);const d=zt[e];if(d)return d.bind(t.proxy)}if(a instanceof Set&&Xi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(ft,"size").get.call(t.proxy);const d=ft[e];if(d)return d.bind(t.proxy)}if(!We(a,e)){const d=Kn(a,e);return d?"value"in d?d.value:(i=d.get)===null||i===void 0?void 0:i.call(t.proxy):void 0}const u=a[e];if(t.options.strict&&dt(u,t.options),t.finalized||!ae(u,t.options))return u;if(u===Ut(t.original,e)){if(Q(t),t.copy[e]=Kt({original:t.original[e],parentDraft:t,key:t.type===1?Number(e):e,finalities:t.finalities,options:t.options}),typeof o=="function"){const d=A(t.copy[e]);return Q(d),fe(d),d.copy}return t.copy[e]}return u},set(t,e,n){var r;if(t.type===3||t.type===2)throw new Error("Map/Set draft does not support any property assignment.");let i;if(t.type===1&&e!=="length"&&!(Number.isInteger(i=Number(e))&&i>=0&&(e===0||i===0||String(i)===String(e))))throw new Error("Only supports setting array indices and the 'length' property.");const s=Kn(ie(t),e);if(s!=null&&s.set)return s.set.call(t.proxy,n),!0;const o=Ut(ie(t),e),a=A(o);return a&&pe(a.original,n)?(t.copy[e]=n,t.assignedMap=(r=t.assignedMap)!==null&&r!==void 0?r:new Map,t.assignedMap.set(e,!1),!0):(pe(n,o)&&(n!==void 0||We(t.original,e))||(Q(t),fe(t),We(t.original,e)&&pe(n,t.original[e])?t.assignedMap.delete(e):t.assignedMap.set(e,!0),t.copy[e]=n,Vt(t,e,n,Ke)),!0)},has(t,e){return e in ie(t)},ownKeys(t){return Reflect.ownKeys(ie(t))},getOwnPropertyDescriptor(t,e){const n=ie(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.type!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},getPrototypeOf(t){return Reflect.getPrototypeOf(t.original)},setPrototypeOf(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty(t,e){var n;return t.type===1?Jn.set.call(this,t,e,void 0,t.proxy):(Ut(t.original,e)!==void 0||e in t.original?(Q(t),fe(t),t.assignedMap.set(e,!1)):(t.assignedMap=(n=t.assignedMap)!==null&&n!==void 0?n:new Map,t.assignedMap.delete(e)),t.copy&&delete t.copy[e],!0)}};function Kt(t){const{original:e,parentDraft:n,key:r,finalities:i,options:s}=t,o=Te(e),a={type:o,finalized:!1,parent:n,original:e,copy:null,proxy:null,finalities:i,options:s,setMap:o===3?new Map(e.entries()):void 0};(r||"key"in t)&&(a.key=r);const{proxy:u,revoke:d}=Proxy.revocable(o===1?Object.assign([],a):a,Jn);if(i.revoke.push(d),Yn.add(u),a.proxy=u,n){const c=n;c.finalities.draft.push((f,h)=>{var p,b;const y=A(u);let _=c.type===3?c.setMap:c.copy;const T=he(_,r),w=A(T);if(w){let m=w.original;w.operated&&(m=$t(T)),Nt(w),Wt(w,Ke,f,h),c.options.enableAutoFreeze&&(c.options.updatedValues=(p=c.options.updatedValues)!==null&&p!==void 0?p:new WeakMap,c.options.updatedValues.set(m,w.original)),Ve(_,r,m)}(b=y.callbacks)===null||b===void 0||b.forEach(m=>{m(f,h)})})}else{const c=A(u);c.finalities.draft.push((f,h)=>{Nt(c),Wt(c,Ke,f,h)})}return u}Rt.createDraft=Kt;function es(t,e,n,r,i){var s;const o=A(t),a=(s=o==null?void 0:o.original)!==null&&s!==void 0?s:t,u=!!e.length;if(o!=null&&o.operated)for(;o.finalities.draft.length>0;)o.finalities.draft.pop()(n,r);const d=u?e[0]:o?o.operated?o.copy:o.original:t;return o&&Lt(o),i&&Ae(d,d,o==null?void 0:o.options.updatedValues),[d,n&&u?[{op:$.Replace,path:[],value:e[0]}]:n,r&&u?[{op:$.Replace,path:[],value:a}]:r]}function ts(t,e){var n;const r={draft:[],revoke:[],handledSet:new WeakSet};let i,s;e.enablePatches&&(i=[],s=[]);const a=((n=e.mark)===null||n===void 0?void 0:n.call(e,t,re))===re.mutable||!ae(t,e)?t:Kt({original:t,parentDraft:null,finalities:r,options:e});return[a,(u=[])=>{const[d,c,f]=es(a,u,i,s,e.enableAutoFreeze);return e.enablePatches?[d,c,f]:d}]}function qt(t){const{rootDraft:e,value:n,useRawReturn:r=!1,isRoot:i=!0}=t;Ft(n,(s,o,a)=>{const u=A(o);if(u&&e&&u.finalities===e.finalities){t.isContainDraft=!0;const d=u.original;if(a instanceof Set){const c=Array.from(a);a.clear(),c.forEach(f=>a.add(s===f?d:f))}else Ve(a,s,d)}else typeof o=="object"&&o!==null&&(t.value=o,t.isRoot=!1,qt(t))}),i&&(t.isContainDraft||console.warn("The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance."),r&&console.warn("The return value contains drafts, please don't use 'rawReturn()' to wrap the return value."))}function Zn(t){var e;const n=A(t);if(!ae(t,n==null?void 0:n.options))return t;const r=Te(t);if(n&&!n.operated)return n.original;let i;function s(){i=r===2?Dt(t)?new Map(t):new(Object.getPrototypeOf(t)).constructor(t):r===3?Array.from(n.setMap.values()):Bn(t,n==null?void 0:n.options)}if(n){n.finalized=!0;try{s()}finally{n.finalized=!1}}else i=t;if(Ft(i,(o,a)=>{if(n&&pe(he(n.original,o),a))return;const u=Zn(a);u!==a&&(i===t&&s(),Ve(i,o,u))}),r===3){const o=(e=n==null?void 0:n.original)!==null&&e!==void 0?e:i;return xt(o)?new Set(i):new(Object.getPrototypeOf(o)).constructor(i)}return i}function Xn(t){if(!ge(t))throw new Error(`current() is only used for Draft, parameter: ${t}`);return Zn(t)}const Bt=(t=>function e(n,r,i){var s,o,a;if(typeof n=="function"&&typeof r!="function")return function(v,...R){return e(v,F=>n.call(this,F,...R),r)};const u=n,d=r;let c=i;if(typeof r!="function"&&(c=r),c!==void 0&&Object.prototype.toString.call(c)!=="[object Object]")throw new Error(`Invalid options: ${c}, 'options' should be an object.`);c=Object.assign(Object.assign({},t),c);const f=ge(u)?Xn(u):u,h=Array.isArray(c.mark)?(v,R)=>{for(const F of c.mark){if(typeof F!="function")throw new Error(`Invalid mark: ${F}, 'mark' should be a function.`);const Y=F(v,R);if(Y)return Y}}:c.mark,p=(s=c.enablePatches)!==null&&s!==void 0?s:!1,b=(o=c.strict)!==null&&o!==void 0?o:!1,_={enableAutoFreeze:(a=c.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:h,strict:b,enablePatches:p};if(!ae(f,_)&&typeof f=="object"&&f!==null)throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");const[T,w]=ts(f,_);if(typeof r!="function"){if(!ae(f,_))throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");return[T,w]}let m;try{m=d(T)}catch(v){throw Lt(A(T)),v}const I=v=>{const R=A(T);if(!ge(v)){if(v!==void 0&&!pe(v,T)&&(R!=null&&R.operated))throw new Error("Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.");const Y=v==null?void 0:v[Ki];if(Y){const st=Y[0];return _.strict&&typeof v=="object"&&v!==null&&qt({rootDraft:R,value:v,useRawReturn:!0}),w([st])}if(v!==void 0)return typeof v=="object"&&v!==null&&qt({rootDraft:R,value:v}),w([v])}if(v===T||v===void 0)return w([]);const F=A(v);if(_===F.options){if(F.operated)throw new Error("Cannot return a modified child draft.");return w([Xn(v)])}return w([v])};return m instanceof Promise?m.then(I,v=>{throw Lt(A(T)),v}):I(m)})();Object.prototype.constructor.toString();function er(t,e){const n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&Object.keys(t).every(i=>e.hasOwnProperty(i))}function tr(t,e){return Object.keys(t).length===Object.keys(e).length&&Object.keys(t).every(n=>e.hasOwnProperty(n)&&t[n]===e[n])}function lt(t,e){return typeof t!="object"||typeof e!="object"||t===null||e===null?t===e:er(t,e)?Object.keys(t).every(n=>lt(t[n],e[n])):!1}function Gt(t){if(!qe(t))return t;const e={};for(const[n,r]of Object.entries(t))r!==void 0&&(e[n]=r);return e}function nr(t,e){if(!qe(t)||!qe(e))return e;const n=Object.assign({},t);for(const r of Object.keys(e)){if(e[r]===void 0)continue;if(e[r]===null){delete n[r];continue}const i=qe(t[r])&&qe(e[r]);n[r]=i?nr(t[r],e[r]):e[r]}return n}function qe(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ns(t,e,n){if(!t||e.length===0)return;let r=t||{};for(let s=0;s<e.length-1;s++){const o=e[s];(!(o in r)||typeof r[o]!="object")&&(r[o]=typeof e[s+1]=="number"?[]:{}),r=r[o]}const i=e[e.length-1];Array.isArray(r)&&typeof i=="number"?r.splice(i,0,n):r[i]=n}function rr(t,e,n){if(!t||e.length===0)return;let r=t||{};for(let i=0;i<e.length-1;i++){const s=e[i];(!(s in r)||typeof r[s]!="object")&&(r[s]=typeof e[i+1]=="number"?[]:{}),r=r[s]}r[e[e.length-1]]=n}function ir(t,e){if(!t||e.length===0)return;const[n,...r]=e;if(n in t){if(r.length===0){Array.isArray(t)?t.splice(n,1):delete t[n];return}ir(t[n],r),rs(t[n])&&delete t[n]}}function rs(t){return t&&Object.keys(t).length===0}const sr=/ZULU|YEKT|YEKST|YAPT|YAKT|YAKST|XJT|WGT|WGST|WFT|WETDST|WET|WDT|WAT|WAST|WAKT|WADT|VUT|VOLT|VLAT|VLAST|VET|UZT|UZST|UYT|UYST|UTC|UT|ULAT|ULAST|UCT|TVT|TRUT|TOT|TMT|TKT|TJT|TFT|TAHT|SGT|SCT|SAST|SADT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PKST|PHT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZT|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|MYT|MVT|MUT|MUST|MST|MSK|MSD|MPT|MMT|MHT|MEZ|METDST|MET|MESZ|MEST|MDT|MAWT|MART|MAGT|MAGST|LKT|LINT|LIGT|LHST|LHDT|KST|KRAT|KRAST|KOST|KGT|KGST|KDT|JST|JAYT|IST|IRT|IRKT|IRKST|IOT|IDT|ICT|HST|HKT|GYT|GMT|GILT|GFT|GET|GEST|GAMT|GALT|FNT|FNST|FKT|FKST|FJT|FJST|FET|EST|EGT|EGST|EETDST|EET|EEST|EDT|EAT|EAST|EASST|DDUT|DAVT|CXT|CST|COT|CLT|CLST|CKT|CHUT|CHAST|CHADT|CETDST|CET|CEST|CDT|CCT|CAST|CADT|BTT|BST|BRT|BRST|BRA|BOT|BORT|BNT|BDT|BDST|AZT|AZST|AZOT|AZOST|AWST|AWSST|AST|ART|ARST|ANAT|ANAST|AMT|AMST|ALMT|ALMST|AKST|AKDT|AFT|AEST|AESST|AEDT|ADT|ACWST|ACT|ACST|ACSST|ACDT$/,is={ZULU:0,YEKT:18e3,YEKST:21600,YAPT:36e3,YAKT:32400,YAKST:32400,XJT:21600,WGT:-10800,WGST:-7200,WFT:43200,WETDST:3600,WET:0,WDT:32400,WAT:3600,WAST:25200,WAKT:43200,WADT:28800,VUT:39600,VOLT:10800,VLAT:36e3,VLAST:36e3,VET:-14400,UZT:18e3,UZST:21600,UYT:-10800,UYST:-7200,UTC:0,UT:0,ULAT:28800,ULAST:32400,UCT:0,TVT:43200,TRUT:36e3,TOT:46800,TMT:18e3,TKT:46800,TJT:18e3,TFT:18e3,TAHT:-36e3,SGT:28800,SCT:14400,SAST:7200,SADT:37800,RET:14400,PYT:-14400,PYST:-10800,PWT:32400,PST:-28800,PONT:39600,PMST:-10800,PMDT:-7200,PKT:18e3,PKST:21600,PHT:28800,PGT:36e3,PETT:43200,PETST:43200,PET:-18e3,PDT:-25200,OMST:21600,OMSST:21600,NZT:43200,NZST:43200,NZDT:46800,NUT:-39600,NST:-12600,NPT:20700,NOVT:25200,NOVST:25200,NFT:-12600,NDT:-9e3,MYT:28800,MVT:18e3,MUT:14400,MUST:18e3,MST:-25200,MSK:10800,MSD:14400,MPT:36e3,MMT:23400,MHT:43200,MEZ:3600,METDST:7200,MET:3600,MESZ:7200,MEST:7200,MDT:-21600,MAWT:18e3,MART:-34200,MAGT:39600,MAGST:39600,LKT:19800,LINT:50400,LIGT:36e3,LHST:37800,LHDT:37800,KST:32400,KRAT:25200,KRAST:25200,KOST:39600,KGT:21600,KGST:21600,KDT:36e3,JST:32400,JAYT:32400,IST:7200,IRT:12600,IRKT:28800,IRKST:28800,IOT:21600,IDT:10800,ICT:25200,HST:-36e3,HKT:28800,GYT:-14400,GMT:0,GILT:43200,GFT:-10800,GET:14400,GEST:14400,GAMT:-32400,GALT:-21600,FNT:-7200,FNST:-3600,FKT:-10800,FKST:-10800,FJT:43200,FJST:46800,FET:10800,EST:-18e3,EGT:-3600,EGST:0,EETDST:10800,EET:7200,EEST:10800,EDT:-14400,EAT:10800,EAST:-21600,EASST:-21600,DDUT:36e3,DAVT:25200,CXT:25200,CST:-21600,COT:-18e3,CLT:-14400,CLST:-10800,CKT:-36e3,CHUT:36e3,CHAST:45900,CHADT:49500,CETDST:7200,CET:3600,CEST:7200,CDT:-18e3,CCT:28800,CAST:34200,CADT:37800,BTT:21600,BST:3600,BRT:-10800,BRST:-7200,BRA:-10800,BOT:-14400,BORT:28800,BNT:28800,BDT:21600,BDST:7200,AZT:14400,AZST:14400,AZOT:-3600,AZOST:0,AWST:28800,AWSST:32400,AST:-14400,ART:-10800,ARST:-10800,ANAT:43200,ANAST:43200,AMT:-14400,AMST:14400,ALMT:21600,ALMST:25200,AKST:-32400,AKDT:-28800,AFT:16200,AEST:36e3,AESST:39600,AEDT:39600,ADT:-10800,ACWST:31500,ACT:-18e3,ACST:34200,ACSST:37800,ACDT:37800};function ss(t){return new Date(t)}function os(t){return new Date(t+"Z")}const as=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function us(t){const e=t.match(as);if(!e)return null;const[n,r,i,s]=e;return r<=0||i<=0||s<=0?null:r>999?new Date(Date.UTC(r,i-1,s,0,0,0,0)):new Date(Date.UTC(s,r-1,i,0,0,0,0))}function cs(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ds(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function fs(t){return new Date(t)}function ls(t){const e=/^(\w{3}) (\w{3}) (\d{2}) (\d{4})$/;if(!t.match(e))throw new Error(`Unable to parse \`${t}\` as a date.`);const r=new Date(t+" UTC");return new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),0,0,0,0))}function hs(t){const e=/^(.+T.+)([+-])(\d{2})$/,n=t.match(e);if(n){const[,r,i,s]=n,o=`${r}${i}${s}:00`;return new Date(o)}return null}function ps(t){const[e,n]=t.split(", "),[r,i,s]=e.split("/").map(Number),o=n.match(/(\d{1,2}):(\d{2}):(\d{2}) (AM|PM)/);if(!o)throw new Error(`Unable to parse time from: ${t}`);let[,a,u,d,c]=o;return a=Number(a),u=Number(u),d=Number(d),c==="PM"&&a!==12?a+=12:c==="AM"&&a===12&&(a=0),new Date(Date.UTC(s,r-1,i,a,u,d))}function ys(t){switch(t){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function bs(t){const e=t.match(sr);if(!e)return null;const[n]=e,r=is[n],i=new Date(t.replace(sr,"Z"));return new Date(i.getTime()-r*1e3)}const _s=[us,ds,ls,ps,fs,os,hs,cs,ss,ys,bs];function gs(t,e){try{const n=t(e);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function Qt(t){for(const e of _s){const n=gs(e,t);if(n)return n}return null}function Ts(t){try{const e=JSON.parse(t);return typeof e=="string"?Qt(e):null}catch{return null}}function ht(t){if(t!==void 0){if(t===null)return null;if(t instanceof Date)return t;if(typeof t=="string"){const e=Qt(t)||Ts(t)||Qt(t.trim());if(!e)throw new Error(`Unable to parse \`${t}\` as a date.`);return e}else if(typeof t=="number")return new Date(t);throw new Error(`Invalid date value \`${t}\`. Expected a date, number, or string, got type ${typeof t}.`)}}function ws(t){return t.cardinality==="one"}function Ht(t){return t["value-type"]==="ref"}function Yt(t){return t["value-type"]==="blob"}function Ce(t,e){return t[e]}function Be(t,e){return e.reduce((n,r)=>n&&n.get(r),t)}function ue(t,e){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.delete(e[0]);return}const[n,...r]=e;t.has(n)&&ue(t.get(n),r)}function Z(t,e,n){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.set(e[0],n);return}const[r,...i]=e;let s=t.get(r);s||(s=new Map,t.set(r,s)),Z(s,i,n)}function or(t,e,n){const r=new Map,i=new Map,s=new Map;for(const o of e){let[a,u,d,c]=o;const f=Ce(t,u);if(!f){console.warn("no such attr",a,t);continue}f["checked-data-type"]==="date"&&n&&(d=ht(d),o[2]=d),Ht(f)&&Z(s,[d,u,a],o),Z(r,[a,u,d],o),Z(i,[u,a,d],o)}return{eav:r,aev:i,vae:s}}function ar(t){const e=new Map,n=new Map,r=new Map,i=new Map;for(const s of Object.values(t)){const o=s["forward-identity"],[a,u,d]=o,c=s["reverse-identity"];if(Z(r,[u,d],s),Yt(s)&&Z(e,[u,d],s),s["primary?"]&&Z(n,[u],s),c){const[f,h,p]=c;Z(i,[h,p],s)}}return{blobAttrs:e,primaryKeys:n,forwardIdents:r,revIdents:i}}function ur(t){return{__type:t.__type,attrs:t.attrs,triples:X(t.eav,3),cardinalityInference:t.cardinalityInference,linkIndex:t.linkIndex,useDateObjects:t.useDateObjects}}function cr(t){return pt(t.attrs,t.triples,t.cardinalityInference,t.linkIndex,t.useDateObjects)}function ms(t,e){return Be(t.eav,[e])!==void 0}function Jt(t){t.attrIndexes=ar(t.attrs)}function pt(t,e,n,r,i){const s=or(t,e,i);return s.useDateObjects=i,s.attrs=t,s.attrIndexes=ar(t),s.cardinalityInference=n,s.linkIndex=r,s.__type="store",s}function Ge(t,e){var n,r;let i;if(Array.isArray(e[0])){const[o,a]=e[0],u=t.aev.get(o);if(!u)return null;i=(n=X(u,2).find(c=>c[2]===a))===null||n===void 0?void 0:n[0]}else i=e[0];if(!i)return null;const s=e[2];if(Array.isArray(s)&&s.length===2&&t.aev.get(s[0])){const[o,a]=s,u=t.aev.get(o);if(!u)return null;const c=(r=X(u,2).find(y=>y[2]===a))===null||r===void 0?void 0:r[0];if(!c)return null;const[f,h,p,...b]=e;return[i,h,c,...b]}else{const[o,...a]=e;return[i,...a]}}function dr(t,e){const n=Ge(t,e);if(!n)return;const[r,i,s]=n,o=Ce(t.attrs,i);o&&(ue(t.eav,[r,i,s]),ue(t.aev,[i,r,s]),Ht(o)&&ue(t.vae,[s,i,r]))}let Ss=0;function fr(t,e,n){const[r,i,s]=n;let o;const a=Be(t.ea,[r,i,s]);return a&&(o=a[3]),o||Date.now()*10+Ss++}function lr(t,e){var n;const r=Ge(t,e);if(!r)return;let[i,s,o]=r;const a=Ce(t.attrs,s);if(!a)return;a["checked-data-type"]==="date"&&t.useDateObjects&&(o=ht(o));const u=Be(t.eav,[i,s,o]),d=(n=u==null?void 0:u[3])!==null&&n!==void 0?n:fr(t,a,r),c=[i,s,o,d];ws(a)?(Z(t.eav,[i,s],new Map([[o,c]])),Z(t.aev,[s,i],new Map([[o,c]]))):(Z(t.eav,[i,s,o],c),Z(t.aev,[s,i,o],c)),Ht(a)&&Z(t.vae,[o,s,i],c)}function vs(t,e){var n;const r=Ge(t,e);if(!r)return;const[i,s,o]=r,a=Ce(t.attrs,s);if(!a)return;if(!Yt(a))throw new Error("merge operation is not supported for links");const u=Be(t.eav,[i,s]);if(!u)return;const d=(n=u.values().next())===null||n===void 0?void 0:n.value;if(!d)return;const c=d[2],f=nr(c,o),h=[i,s,f,fr(t,a,d)];Z(t.eav,[i,s],new Map([[f,h]]))}function Zt(t,e){var n,r;const[i,s]=e,o=Ge(t,[i]);if(!o)return;const[a]=o,u=t.eav.get(a);if(u){for(const c of u.keys()){const f=t.attrs[c];f&&f["on-delete-reverse"]==="cascade"&&X(u.get(c),1).forEach(([h,p,b])=>{var y;return Zt(t,[b,(y=f["reverse-identity"])===null||y===void 0?void 0:y[1]])}),(!s||!f||((n=f["forward-identity"])===null||n===void 0?void 0:n[1])===s)&&(ue(t.aev,[c,a]),ue(t.eav,[a,c]))}u.size===0&&ue(t.eav,[a])}const d=t.vae.get(a)&&X(t.vae.get(a),2);d&&d.forEach(c=>{var f,h,p;const[b,y,_]=c,T=t.attrs[y];(!s||!T||((f=T["reverse-identity"])===null||f===void 0?void 0:f[1])===s)&&(ue(t.eav,[b,y,_]),ue(t.aev,[y,b,_]),ue(t.vae,[_,y,b])),T&&T["on-delete"]==="cascade"&&((h=T["reverse-identity"])===null||h===void 0?void 0:h[1])===s&&Zt(t,[b,(p=T["forward-identity"])===null||p===void 0?void 0:p[1]])}),((r=t.vae.get(a))===null||r===void 0?void 0:r.size)===0&&ue(t.vae,[a])}function hr(t,e){const n=or(t.attrs,e,t.useDateObjects);Object.keys(n).forEach(r=>{t[r]=n[r]})}function Os(t,[e]){t.attrs[e.id]=e,Jt(t)}function pr(t){return X(t.eav,3)}function Es(t,[e]){if(!t.attrs[e])return;const n=pr(t).filter(([r,i])=>i!==e);delete t.attrs[e],Jt(t),hr(t,n)}function As(t,[e]){const n=t.attrs[e.id];n&&(t.attrs[e.id]=Object.assign(Object.assign({},n),e),Jt(t),hr(t,pr(t)))}function Cs(t,e){const[n,...r]=e;switch(n){case"add-triple":lr(t,r);break;case"deep-merge-triple":vs(t,r);break;case"retract-triple":dr(t,r);break;case"delete-entity":Zt(t,r);break;case"add-attr":Os(t,r);break;case"delete-attr":Es(t,r);break;case"update-attr":As(t,r);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${n}`)}}function X(t,e,n=[]){if(!t||e===0)return n;if(e===1){for(const r of t.values())n.push(r);return n}for(const r of t.values())X(r,e-1,n);return n}function yt(t,e,n){var r,i;const s=[];if(n!=null&&n.hasOwnProperty("$not")){for(const a of e.keys())n.$not!==a&&s.push(e.get(a));return s}if(n!=null&&n.hasOwnProperty("$isNull")){const{attrId:a,isNull:u,reverse:d}=n.$isNull;if(d)for(const c of e.keys()){const f=t.vae.get(c),h=!f||((r=f.get(a))===null||r===void 0?void 0:r.get(null))||!f.get(a);(u?h:!h)&&s.push(e.get(c))}else{const c=t.aev.get(a);for(const f of e.keys()){const h=!c||((i=c.get(f))===null||i===void 0?void 0:i.get(null))||!c.get(f);(u?h:!h)&&s.push(e.get(f))}}return s}if(n!=null&&n.$comparator)return X(e,1).filter(n.$op);const o=n.in||n.$in||[n];for(const a of o){const u=e.get(a);u&&s.push(u)}return s}function ks(t,e,n){let r="";return t!==void 0&&(r+="e"),e!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function js(t,[e,n,r]){var i,s;switch(ks(e,n,r)){case"e":{const a=t.eav.get(e);return X(a,2)}case"ea":{const a=(i=t.eav.get(e))===null||i===void 0?void 0:i.get(n);return X(a,1)}case"eav":{const a=(s=t.eav.get(e))===null||s===void 0?void 0:s.get(n);return a?yt(t,a,r):[]}case"ev":{const a=t.eav.get(e);if(!a)return[];const u=[];for(const d of a.values())u.push(...yt(t,d,r));return u}case"a":{const a=t.aev.get(n);return X(a,2)}case"av":{const a=t.aev.get(n);if(!a)return[];const u=[];for(const d of a.values())u.push(...yt(t,d,r));return u}case"v":{const a=[];for(const u of t.eav.values())for(const d of u.values())a.push(...yt(t,d,r));return a}default:return X(t.eav,3)}}function Is(t,e,n){var r;const i={};for(const[s,o]of e.entries()){const a=(r=t.eav.get(n))===null||r===void 0?void 0:r.get(o.id),u=X(a,1);for(const d of u)i[s]=d[2]}return i}function ke(t,e,n){var r;return(r=t.attrIndexes.forwardIdents.get(e))===null||r===void 0?void 0:r.get(n)}function yr(t,e,n){var r;return(r=t.attrIndexes.revIdents.get(e))===null||r===void 0?void 0:r.get(n)}function Ps(t,e){return t.attrIndexes.blobAttrs.get(e)}function br(t,e){var n;const r=t.attrIndexes.primaryKeys.get(e);return r||((n=t.attrIndexes.forwardIdents.get(e))===null||n===void 0?void 0:n.get("id"))}function Ms(t,e){const n=Ge(t,e);if(!n)return;const[r,i,s]=n;if(Ce(t.attrs,i))return Be(t.eav,[r,i])}function Rs(t,e){const n=e.filter(([r,i,s,o,a])=>{if(r!=="add-triple"&&r!=="deep-merge-triple")return!0;const u=a==null?void 0:a.mode;if(u!=="create"&&u!=="update")return!0;let d=!1;const c=Ce(t.attrs,s);if(c){const f=br(t,c["forward-identity"][1]);d=!!Ms(t,[i,f.id,i])}return!(u==="create"&&d||u==="update"&&!d)});return Bt(t,r=>{n.forEach(i=>{Cs(r,i)})})}function xs(t){return typeof t=="string"&&t.startsWith("?")}function Ds(t,e,n){if(n.hasOwnProperty(t)){const r=n[t];return gr(r,e,n)}return Object.assign(Object.assign({},n),{[t]:e})}function _r(t,e,n){return t===e?n:null}function $s(t){switch(typeof t){case"string":return t.startsWith("?")?Ds:_r;default:return _r}}const Us=["in","$in","$not","$isNull","$comparator"];function Ls(t){for(const e of Us)if(t.hasOwnProperty(e))return!0;return!1}function gr(t,e,n){return n?typeof t=="object"?Ls(t)?n:null:$s(t)(t,e,n):null}function Fs(t,e,n){return t.reduce((r,i,s)=>{const o=e[s];return gr(i,o,r)},n)}function Ns(t,e,n){return zs(t,e,n).map(r=>Fs(e,r,n)).filter(r=>r)}function Ws(t,e,n){return e.or?e.or.patterns.flatMap(r=>Xt(t,r,n)):e.and?e.and.patterns.reduce((r,i)=>Xt(t,i,r),n):n.flatMap(r=>Ns(t,e,r))}function Xt(t,e,n=[{}]){return e.reduce((r,i)=>Ws(t,i,r),n)}function en(t,e){return Array.isArray(e)?e.map(n=>en(t,n)):xs(e)?t[e]:e}function Vs(t,{find:e,where:n}){return Xt(t,n).map(i=>en(i,e))}function zs(t,e,n){return js(t,en(n,e))}const Ks=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function je(t){return typeof t=="string"&&Ks.test(t)}const z=[];for(let t=0;t<256;++t)z.push((t+256).toString(16).slice(1));function qs(t,e=0){return(z[t[e+0]]+z[t[e+1]]+z[t[e+2]]+z[t[e+3]]+"-"+z[t[e+4]]+z[t[e+5]]+"-"+z[t[e+6]]+z[t[e+7]]+"-"+z[t[e+8]]+z[t[e+9]]+"-"+z[t[e+10]]+z[t[e+11]]+z[t[e+12]]+z[t[e+13]]+z[t[e+14]]+z[t[e+15]]).toLowerCase()}let tn;const Bs=new Uint8Array(16);function Gs(){if(!tn){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");tn=crypto.getRandomValues.bind(crypto)}return tn(Bs)}const Tr={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Qs(t,e,n){var i;if(Tr.randomUUID&&!t)return Tr.randomUUID();t=t||{};const r=t.random??((i=t.rng)==null?void 0:i.call(t))??Gs();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,qs(r)}function wr(t){const e=t.replace(/-/g,""),n=[];for(let r=0;r<e.length;r+=2)n.push(parseInt(e.substring(r,r+2),16));return n}function Hs(t,e){for(let n=0;n<t.length;n++){if(t[n]<e[n])return-1;if(t[n]>e[n])return 1}return 0}function Ys(t,e){return Hs(wr(t),wr(e))}function W(){return Qs()}function Js(t,e){return t.localeCompare(e)}function Zs(){let t=Js;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{t=Intl.Collator("en-US").compare}catch{}return t}const Xs=Zs();let eo=0;function Qe(t){return bt(`_${t}`,eo++)}function bt(t,e){return`?${t}-${e}`}class Ie extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function to(t,e){const n=br(t,e);if(!n)throw new Ie(`Could not find id attr for ${e}`);return n}function mr(t,e,n,r){return[no(t,e,n,r)]}function no(t,e,n,r){return[t(n,r),to(e,n).id,t(n,r),t("time",r)]}function ro(t,e,n){return t.map(r=>r===e?n:r)}function Sr(t,e,n,r,i){const s=ke(e,n,i),o=yr(e,n,i),a=s||o;if(!a)throw new Ie(`Could not find attr for ${[n,i]}`);if(a["value-type"]!=="ref")throw new Error(`Attr ${a.id} is not a ref`);const[u,d]=a["forward-identity"],[c,f]=a["reverse-identity"],h=r+1,p=s?[t(d,r),a.id,t(f,h),Qe("time")]:[t(d,h),a.id,t(f,r),Qe("time")];return[s?f:d,h,p,a,!!s]}function vr(t,e){if(typeof e!="string")return function(o){return!1};const r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,"."),i=new RegExp(`^${r}$`,t?void 0:"i");return function(o){return typeof o!="string"?!1:i.test(o)}}function io(t,e){if(typeof e!="object"||e.hasOwnProperty("$in")||e.hasOwnProperty("in"))return e;const n=t["checked-data-type"]==="date";if(e.hasOwnProperty("$gt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>new Date(e.$gt)}:function(i){return i[2]>e.$gt}};if(e.hasOwnProperty("$gte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>=new Date(e.$gte)}:function(i){return i[2]>=e.$gte}};if(e.hasOwnProperty("$lt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<new Date(e.$lt)}:function(i){return i[2]<e.$lt}};if(e.hasOwnProperty("$lte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<=new Date(e.$lte)}:function(i){return i[2]<=e.$lte}};if(e.hasOwnProperty("$like")){const r=vr(!0,e.$like);return{$comparator:!0,$op:function(s){return r(s[2])}}}if(e.hasOwnProperty("$ilike")){const r=vr(!1,e.$ilike);return{$comparator:!0,$op:function(s){return r(s[2])}}}return e}function so(t,e,n,r,i,s){const o=ke(e,n,i),a=yr(e,n,i),u=o||a;if(!u)throw new Ie(`No attr for etype = ${n} label = ${i}`);if(s!=null&&s.hasOwnProperty("$isNull")){const d=ke(e,n,"id");if(!d)throw new Ie(`No attr for etype = ${n} label = id`);return[t(n,r),d.id,{$isNull:{attrId:u.id,isNull:s.$isNull,reverse:!o}},Qe("time")]}return o?[t(n,r),u.id,io(u,s),Qe("time")]:[s,u.id,t(n,r),Qe("time")]}function oo(t,e,n,r,i){const[s,o,a]=i.reduce((u,d)=>{const[c,f,h]=u,[p,b,y]=Sr(t,e,c,f,d);return[p,b,[...h,y]]},[n,r,[]]);return[s,o,a]}function nn(t,e,n,r,i,s){const o=i.slice(0,i.length-1),a=i[i.length-1],[u,d,c]=oo(t,e,n,r,o),f=so(t,e,u,d,a,s);return c.concat([f])}function ao(t,e){return e?[e].concat(t):t}function uo([t,e]){return t==="or"&&Array.isArray(e)}function co([t,e]){return t==="and"&&Array.isArray(e)}function fo(t,e,n){return(r,i)=>{const s=t(r,i);return e==s?s:`${s}-${n}`}}function Or(t,e,n,r,i,s){const o=t(r,i),a=s.map((u,d)=>{const c=fo(t,o,d);return Ar(c,n,r,i,u)});return{[e]:{patterns:a,joinSym:o}}}function lo(t){const e=[];for(let n=1;n<=t.length;n++)e.push(t.slice(0,n));return e}function Er(t,e,n,r,i){return lo(i).map(s=>nn(t,e,n,r,s,{$isNull:!0}))}function Ar(t,e,n,r,i){return Object.entries(i).flatMap(([s,o])=>{if(uo([s,o]))return Or(t,"or",e,n,r,o);if(co([s,o]))return Or(t,"and",e,n,r,o);if(s==="$entityIdStartsWith")return[];const a=s.split(".");if(o!=null&&o.hasOwnProperty("$ne")&&(o=Object.assign(Object.assign({},o),{$not:o.$ne}),delete o.$ne),o!=null&&o.hasOwnProperty("$not")){const u=nn(t,e,n,r,a,o),d=Er(t,e,n,r,a);return[{or:{patterns:[u,...d],joinSym:t(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Er(t,e,n,r,a),joinSym:t(n,r)}}]:nn(t,e,n,r,a,o)})}function ho(t,e,n,r){const i=bt;return r?Ar(i,t,e,n,r).concat(mr(i,t,e,n)):mr(i,t,e,n)}function po(t,e,n){return[t(e,n),t("time",n)]}function yo(t,e,n,r,i,s){const[o,a,u,d,c]=Sr(t,e,n,r,i),f=ro(u,t(n,r),s);return[o,a,f,d,c]}function bo(t,e,{etype:n,level:r,form:i},s){const o=Object.keys(i).filter(a=>a!=="$");return o.length?Object.entries(s).map(function([u,d]){return o.map(function(h){var p,b,y;const _=!!(e.cardinalityInference&&(!((y=(b=(p=e.linkIndex)===null||p===void 0?void 0:p[n])===null||b===void 0?void 0:b[h])===null||y===void 0)&&y.isSingular));try{const[T,w,m]=yo(t,e,n,r,h,u),I=kr(e,{etype:T,level:w,form:i[h],join:m}),v=_?I[0]:I;return{[h]:v}}catch(T){if(T instanceof Ie)return{[h]:_?void 0:[]};throw T}}).reduce(function(h,p){return Object.assign(Object.assign({},h),p)},d)}):Object.values(s)}function _o(t,e,n){return n==="string"?Xs(t,e):t>e?1:-1}function _t([t,e],[n,r],i){return e===r||e==null&&r==null?Ys(t,n):r==null?1:e==null?-1:_o(e,r,i)}function rn(t){return t==null?t:new Date(t).getTime()}function go(t,e,n,r){var i;const[s,o,a,u]=t,d=n==="desc"?1:-1;if(((i=e["forward-identity"])===null||i===void 0?void 0:i[2])==="id")return _t(r,[s,u],null)===d;const[c,f]=r,h=e["checked-data-type"],p=h==="date"?rn(f):f,b=h==="date"?rn(a):a;return _t([c,p],[s,b],h)===d}function To(t,e){const n=e[1];return t.attrs[n]}function wo(t,e,n){const r=Object.keys(n)[0];return ke(t,e,r)}function mo(t,e,n,r){if(n)return To(t,n);if(r)return wo(t,e,r)}function So(t,e,n){var r,i;if(!Array.isArray(n.fields))return Ps(t,e);const s=new Map;for(const o of n.fields){const a=ke(t,e,o),u=(r=a==null?void 0:a["forward-identity"])===null||r===void 0?void 0:r[2];u&&Yt(a)&&s.set(u,a)}if(!s.has("id")){const o=ke(t,e,"id"),a=(i=o==null?void 0:o["forward-identity"])===null||i===void 0?void 0:i[2];a&&s.set(a,o)}return s}function vo(t,{etype:e,pageInfo:n,dq:r,form:i}){var s,o;const a=(s=i==null?void 0:i.$)===null||s===void 0?void 0:s.order,u=Cr(i),d=Oo(i);let c=Vs(t,r);const f=n==null?void 0:n["start-cursor"],h=mo(t,e,f,a);if(h&&((o=h==null?void 0:h["forward-identity"])===null||o===void 0?void 0:o[2])!=="id"){const y=h["checked-data-type"]==="date",_=h.id;c=c.map(([T])=>{var w,m,I,v,R;let F=(R=(v=(I=(m=(w=t.eav.get(T))===null||w===void 0?void 0:w.get(_))===null||m===void 0?void 0:m.values())===null||I===void 0?void 0:I.next())===null||v===void 0?void 0:v.value)===null||R===void 0?void 0:R[2];return y&&(F=rn(F)),[T,F]})}c.sort(d==="asc"?function(_,T){return _t(_,T,h==null?void 0:h["checked-data-type"])}:function(_,T){return _t(T,_,h==null?void 0:h["checked-data-type"])});let p={};const b=So(t,e,r);for(const y of c){const[_]=y;if(p[_]||!u&&f&&h&&go(f,h,d,y))continue;const T=Is(t,b,_);T&&(p[_]=T)}return p}function Oo(t){var e;const n=(e=t.$)===null||e===void 0?void 0:e.order;return n&&n[Object.keys(n)[0]]||"asc"}function Cr(t){var e,n,r;const i=(e=t.$)===null||e===void 0?void 0:e.offset,s=(n=t.$)===null||n===void 0?void 0:n.before,o=(r=t.$)===null||r===void 0?void 0:r.after;return!i&&!s&&!o}function Eo(t,{etype:e,level:n,form:r,join:i,pageInfo:s}){var o,a,u,d,c;if(!Cr(r)&&(!s||!s["start-cursor"]))return[];const f=ao(ho(t,e,n,(o=r.$)===null||o===void 0?void 0:o.where),i),h=po(bt,e,n),p=(a=r.$)===null||a===void 0?void 0:a.fields,b=vo(t,{etype:e,pageInfo:s,form:r,dq:{where:f,find:h,fields:p}}),y=((u=r.$)===null||u===void 0?void 0:u.limit)||((d=r.$)===null||d===void 0?void 0:d.first)||((c=r.$)===null||c===void 0?void 0:c.last);if(y!=null){n>0&&console.warn("WARNING: Limits in child queries are only run client-side. Data returned from the server will not have a limit.");const _=Object.entries(b);return _.length<=y?b:Object.fromEntries(_.slice(0,y))}return b}function Ao(t,e){try{return Eo(t,e)}catch(n){if(n instanceof Ie)return{};throw n}}function kr(t,e){const n=Ao(t,e);return bo(bt,t,e,n)}function Co(t){const e={};for(const[n,r]of Object.entries(t))e[n]={startCursor:r["start-cursor"],endCursor:r["end-cursor"],hasNextPage:r["has-next-page?"],hasPreviousPage:r["has-previous-page?"]};return e}function jr({store:t,pageInfo:e,aggregate:n},r){const s={data:Object.keys(r).reduce(function(a,u){return n!=null&&n[u]||u==="$$ruleParams"||(a[u]=kr(t,{etype:u,form:r[u],level:0,pageInfo:e==null?void 0:e[u]})),a},{})};return e&&(s.pageInfo=Co(e)),n&&(s.aggregate=n),s}function ko(){const e={__etype:1,__ops:1,create:1,update:1,link:1,unlink:1,delete:1,merge:1,ruleParams:1};return new Set(Object.keys(e))}const jo=ko();function sn(t,e,n){const r={__etype:t,__ops:n};return new Proxy(r,{get:(i,s)=>{if(s==="__ops")return n;if(s==="__etype")return t;if(jo.has(s))return(o,a)=>sn(t,e,[...n,a?[s,t,e,o,a]:[s,t,e,o]])}})}function Io(t,e){return`lookup__${t}__${JSON.stringify(e)}`}function gt(t){return t.startsWith("lookup__")}function Ir(t){const[e,n,...r]=t.split("__");return[n,JSON.parse(r.join("__"))]}function Po(t){return new Proxy({__etype:t},{get(e,n){if(n==="__etype")return t;const r=n;return gt(r)?sn(t,Ir(r),[]):sn(t,r,[])}})}function on(){return new Proxy({},{get(t,e){return Po(e)}})}const Mo=on();function Ro(t){return t.__ops}function xo(t,e){const{attrIdMap:n,refSwapAttrIds:r}=t,i=[];for(const o of e){const a=n[o];if(a)i.push(a);else if(Array.isArray(o)&&o.length==2&&n[o[0]]){const[u,d]=o;i.push([n[u],d])}else i.push(o)}const[s]=e;if((s==="add-triple"||s==="retract-triple")&&r.has(e[2])){const o=i[1];i[1]=i[3],i[3]=o}return i}function K(t,e,n){return Object.values(t).find(r=>{const[i,s,o]=r["forward-identity"];return s===e&&o===n})}function me(t,e,n){return Object.values(t).find(r=>{const i=r["reverse-identity"];if(!i)return!1;const[s,o,a]=i;return o===e&&a===n})}function Do(t){if(Array.isArray(t))return t;const e=Object.entries(t);if(e.length!==1)throw new Error("lookup must be an object with a single unique attr and value.");return e[0]}function an(t,e,n){return n.indexOf(".")!==-1&&!K(t,e,n)}function un(t){const[e,n,...r]=t.split(".");if(r.length>0||n!=="id")throw new Error(`${t} is not a valid lookup attribute.`);return e}function $o(t,e,n){if(!an(t,e,n))return K(t,e,n);const r=un(n),i=K(t,e,r)||me(t,e,r);if(i&&i["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return i}function cn(t){return typeof t=="string"&&!gt(t)?null:typeof t=="string"&&gt(t)?Ir(t):Do(t)}function ee(t,e,n){const r=cn(n);if(r===null)return n;const[i,s]=r,o=$o(t,e,i);if(!o||!o["unique?"])throw new Error(`${i} is not a unique attribute.`);return[o.id,s]}function Pr(t,e,n,r){const i=ee(t,e,n);return Array.isArray(i)?[["add-triple",i,K(t,e,"id").id,i]].concat(r):r}function Uo({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=K(t,e,s),d=me(t,e,s);return a.map(c=>u?["add-triple",ee(t,e,n),u.id,ee(t,u["reverse-identity"][1],c)]:["add-triple",ee(t,d["forward-identity"][1],c),d.id,ee(t,e,n)])});return Pr(t,e,n,i)}function Lo({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=K(t,e,s),d=me(t,e,s);return a.map(c=>u?["retract-triple",ee(t,e,n),u.id,ee(t,u["reverse-identity"][1],c)]:["retract-triple",ee(t,d["forward-identity"][1],c),d.id,ee(t,e,n)])});return Pr(t,e,n,i)}function Fo(t,e,n){if(Array.isArray(n)){const[r,i]=n;for(const s of t||[]){const o=s==null?void 0:s.aev.get(r);if(o){for(const[a,u,d]of X(o,2))if(d===i)return!0}}}else for(const r of t||[]){const i=r==null?void 0:r.eav.get(n);if(i){for(const s of i.keys())if(r.attrs[s]["forward-identity"][1]==e)return!0}}return!1}function Mr({stores:t,attrs:e},[n,r,i,s]){return(s==null?void 0:s.upsert)===!1?{mode:"update"}:(s==null?void 0:s.upsert)===!0?null:Fo(t,n,r)?{mode:"update"}:null}function No(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=Gt(o),d=ee(r,i,s);return[["id",d]].concat(Object.entries(u)).map(([f,h])=>{const p=K(r,i,f);return p["checked-data-type"]==="date"&&t.useDateObjects&&(h=ht(h)),["add-triple",d,p.id,h,{mode:"create"}]})}function Wo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=Gt(o),d=ee(r,i,s),c=Mr(t,[i,d,o,a]);return[["id",d]].concat(Object.entries(u)).map(([h,p])=>{const b=K(r,i,h);return b["checked-data-type"]==="date"&&t.useDateObjects&&(p=ht(p)),["add-triple",d,b.id,p,...c?[c]:[]]})}function Vo({attrs:t},[e,n]){return[["delete-entity",ee(t,e,n),e]]}function zo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=Gt(o),d=ee(r,i,s),c=Mr(t,[i,d,o,a]),f=Object.entries(u).map(([p,b])=>{const y=K(r,i,p);return["deep-merge-triple",d,y.id,b,...c?[c]:[]]});return[["add-triple",d,K(r,i,"id").id,d,...c?[c]:[]]].concat(f)}function Ko({attrs:t},[e,n,r]){return[["rule-params",ee(t,e,n),e,r]]}function qo(t){const[e,n,r,i,s]=t;if(!i)return t;const o=Object.assign({},i);return delete o.id,[e,n,r,o,...s?[s]:[]]}function Bo(t,e){const[n,...r]=qo(e);switch(n){case"merge":return zo(t,r);case"create":return No(t,r);case"update":return Wo(t,r);case"link":return Uo(t,r);case"unlink":return Lo(t,r);case"delete":return Vo(t,r);case"ruleParams":return Ko(t,r);default:throw new Error(`unsupported action ${n}`)}}function Go(t){switch(t){case"string":case"date":case"boolean":case"number":return t;default:return}}function Qo(t,e,n){var r,i;const s=(i=(r=t.entities[e])===null||r===void 0?void 0:r.attrs)===null||i===void 0?void 0:i[n];if(n==="id")return null;if(!s)throw new Error(`${e}.${n} does not exist in your schema`);const{unique:o,indexed:a}=s==null?void 0:s.config,u=Go(s==null?void 0:s.valueType);return{"index?":a,"unique?":o,"checked-data-type":u}}function Tt(t,e,n,r){const i=t?Qo(t,e,n):null,s=W(),a=[W(),e,n];return Object.assign(Object.assign({id:s,"forward-identity":a,"value-type":"blob",cardinality:"one","unique?":!1,"index?":!1,isUnsynced:!0},i||{}),r||{})}function Ho(t,e,n){return Object.values(t.links).find(i=>i.forward.on===e&&i.forward.label===n||i.reverse.on===e&&i.reverse.label===n)}function Yo(t,e,n){const r=Ho(t,e,n);if(!r)throw new Error(`Couldn't find the link ${e}.${n} in your schema`);const{forward:i,reverse:s}=r;return{"forward-identity":[W(),i.on,i.label],"reverse-identity":[W(),s.on,s.label],cardinality:i.has==="one"?"one":"many","unique?":s.has==="one","on-delete":i.onDelete,"on-delete-reverse":s.onDelete}}function Rr(t,e,n,r){const i=t?Yo(t,e,n):null,s=W(),o=[W(),e,n],a=[W(),n,e];return Object.assign(Object.assign({id:s,"forward-identity":o,"reverse-identity":a,"value-type":"ref",cardinality:"many","unique?":!1,"index?":!1,isUnsynced:!0},i||{}),r||{})}const Jo=new Set(["create","update","merge","link","unlink"]),Zo=new Set(["link","unlink"]),Xo=new Set(["create","update","merge"]),ea=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),dn={"unique?":!0,"index?":!0},ta=Object.assign(Object.assign({},dn),{cardinality:"one"});function na(t){const e=[],[n,r,i,s]=t;if(!ea.has(n))return e;const o=cn(i);if(o&&e.push({etype:r,lookupPair:o}),n==="link")for(const[a,u]of Object.entries(s)){const d=Array.isArray(u)?u:[u];for(const c of d){const f=cn(c);f&&e.push({etype:r,lookupPair:f,linkLabel:a})}}return e}function ra({attrs:t,schema:e},n){var r,i;const[s,o,a]=[new Set,Object.assign({},t),[]];function u(f){o[f.id]=f,a.push(["add-attr",f]),s.add(f.id)}function d(f){f!=null&&f.isUnsynced&&!s.has(f.id)&&(a.push(["add-attr",f]),s.add(f.id))}function c(f,h){const p=K(o,f,h),b=me(o,f,h);d(p),d(b),!p&&!b&&u(Rr(e,f,h,ta))}for(const f of n)for(const{etype:h,lookupPair:p,linkLabel:b}of na(f)){const y=p[0];if(b){c(h,b);const _=K(o,h,b),T=me(o,h,b);d(_),d(T);const w=((r=_==null?void 0:_["reverse-identity"])===null||r===void 0?void 0:r[1])||((i=T==null?void 0:T["forward-identity"])===null||i===void 0?void 0:i[1])||b;if(an(o,w,y))c(w,un(y));else{const m=K(o,w,y);m||u(Tt(e,w,y,dn)),d(m)}}else if(an(o,h,y))c(h,un(y));else{const _=K(o,h,y);_||u(Tt(e,h,y,dn)),d(_)}}for(const f of n){const[h,p,b,y]=f;if(Jo.has(h)){const _=K(o,p,"id");d(_),_||u(Tt(e,p,"id",{"unique?":!0}));for(const T of Object.keys(y)){const w=K(o,p,T);if(d(w),Xo.has(h)&&(w||u(Tt(e,p,T,T==="id"?{"unique?":!0}:null))),Zo.has(h)){const m=me(o,p,T);!w&&!m&&u(Rr(e,p,T)),d(m)}}}}return[o,a]}function ia(t,e){const r=(Array.isArray(e)?e:[e]).flatMap(u=>Ro(u)),[i,s]=ra(t,r),o=Object.assign(Object.assign({},t),{attrs:i}),a=r.flatMap(u=>Bo(o,u));return[...s,...a]}var xr=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};class Dr{constructor(e){this.dbName=e,this._storeName="kv",this._dbPromise=this._init()}_init(){return new Promise((e,n)=>{const r=indexedDB.open(this.dbName,1);r.onerror=i=>{n(i)},r.onsuccess=i=>{const s=i.target;e(s.result)},r.onupgradeneeded=i=>{i.target.result.createObjectStore(this._storeName)}})}getItem(e){return xr(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const a=n.transaction([this._storeName],"readonly").objectStore(this._storeName).get(e);a.onerror=u=>{i(u)},a.onsuccess=u=>{a.result?r(a.result):r(null)}})})}setItem(e,n){return xr(this,void 0,void 0,function*(){const r=yield this._dbPromise;return new Promise((i,s)=>{const u=r.transaction([this._storeName],"readwrite").objectStore(this._storeName).put(n,e);u.onerror=d=>{s(d)},u.onsuccess=d=>{i()}})})}}var sa=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};class $r{static getIsOnline(){return sa(this,void 0,void 0,function*(){return navigator.onLine})}static listen(e){const n=()=>{e(!0)},r=()=>{e(!1)};return addEventListener("online",n),addEventListener("offline",r),()=>{removeEventListener("online",n),removeEventListener("offline",r)}}}class Pe extends Error{constructor(e,n){super(e),this.hint=n;const r=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,r),Error.captureStackTrace&&Error.captureStackTrace(this,Pe),this.name="InstantError"}get[Symbol.toStringTag](){return"InstantError"}}var oa=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};class He extends Pe{constructor(e){var n;const r=((n=e.body)===null||n===void 0?void 0:n.message)||`API Error (${e.status})`;super(r,e.body.hint);const i=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,i),Error.captureStackTrace&&Error.captureStackTrace(this,He),this.name="InstantAPIError",this.status=e.status,this.body=e.body}get[Symbol.toStringTag](){return"InstantAPIError"}}function ce(t,e){return oa(this,void 0,void 0,function*(){const n=yield fetch(t,e),r=yield n.json();return n.status===200?Promise.resolve(r):Promise.reject(new He({status:n.status,body:r}))})}var Me=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};function aa({apiURI:t,appId:e,email:n}){return ce(`${t}/runtime/auth/send_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,email:n})})}function ua(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,email:r,code:i,refreshToken:s}){return yield ce(`${e}/runtime/auth/verify_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(Object.assign({"app-id":n,email:r,code:i},s?{"refresh-token":s}:{}))})})}function ca(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield ce(`${e}/runtime/auth/verify_refresh_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n,"refresh-token":r})})})}function da(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n}){return yield ce(`${e}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n})})})}function Ur(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,code:r,codeVerifier:i,refreshToken:s}){return yield ce(`${e}/runtime/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,code:r,code_verifier:i,refresh_token:s})})})}function fa(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,nonce:r,idToken:i,clientName:s,refreshToken:o}){return yield ce(`${e}/runtime/oauth/id_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,nonce:r,id_token:i,client_name:s,refresh_token:o})})})}function la(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield ce(`${e}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,refresh_token:r})})})}var Ye=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};function ha(t){return Ye(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,file:i,refreshToken:s,contentType:o,contentDisposition:a}){const u={app_id:n,path:r,authorization:`Bearer ${s}`,"content-type":o||i.type};return a&&(u["content-disposition"]=a),yield ce(`${e}/storage/upload`,{method:"PUT",headers:u,body:i})})}function pa(t){return Ye(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield ce(`${e}/storage/files?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"DELETE",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}function ya(t){return Ye(this,arguments,void 0,function*({apiURI:e,appId:n,fileName:r,refreshToken:i,metadata:s={}}){const{data:o}=yield ce(`${e}/storage/signed-upload-url`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${i}`},body:JSON.stringify({app_id:n,filename:r})});return o})}function ba(t,e){return Ye(this,void 0,void 0,function*(){return(yield fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok})}function _a(t){return Ye(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield ce(`${e}/storage/signed-download-url?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}let fn=!1,Lr=!1,Fr=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(fn=!!window.localStorage.getItem("devBackend"),Lr=!!window.localStorage.getItem("__instantLogging"),Fr=!!window.localStorage.getItem("__devtoolLocalDash"));function Nr(t,e){if(!e)return t;const n={};return e.forEach(r=>{n[r]=t[r]}),n}function ga(t,e,n){var r,i;const s={peers:{}};if(e&&"user"in e?e.user:!0){const a=Nr((r=t.user)!==null&&r!==void 0?r:{},e==null?void 0:e.keys);s.user=Object.assign(Object.assign({},a),{peerId:n})}for(const a of Object.keys((i=t.peers)!==null&&i!==void 0?i:{})){const u=(e==null?void 0:e.peers)===void 0,d=Array.isArray(e==null?void 0:e.peers)&&(e==null?void 0:e.peers.includes(a));if(u||d){const c=Nr(t.peers[a],e==null?void 0:e.keys);s.peers[a]=Object.assign(Object.assign({},c),{peerId:a})}}return s}function Ta(t,e){if(t.isLoading!==e.isLoading||t.error!==e.error||(t.user||e.user)&&(!t.user||!e.user||!tr(t.user,e.user))||!er(t.peers,e.peers))return!0;for(const r of Object.keys(t.peers))if(!tr(t.peers[r],e.peers[r]))return!0;return!1}class Wr{constructor(){this.promise=new Promise((e,n)=>{this._resolve=e,this._reject=n})}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}var Je=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};function wa(t,e){typeof requestIdleCallback>"u"?t():requestIdleCallback(t,{timeout:e})}class ln{constructor(e,n,r,i,s=d=>d,o=d=>d,a=100,u=1e3){this._subs=[],this._nextSave=null,this._persister=e,this._key=n,this._onMerge=i,this._loadedCbs=[],this._isLoading=!0,this.currentValue=r,this.serialize=s,this.parse=o,this._saveThrottleMs=a,this._pendingSaveCbs=[],this._version=0,this._idleCallbackMaxWaitMs=u,this._load()}_getFromStorage(){return Je(this,void 0,void 0,function*(){try{return this.parse(yield this._persister.getItem(this._key))}catch(e){return console.error(`Unable to read from storage for key=${this._key}`,e),null}})}_load(){return Je(this,void 0,void 0,function*(){const e=yield this._getFromStorage();this._isLoading=!1;const n=this._onMerge(e,this.currentValue);n&&(this.currentValue=n);for(const r of this._loadedCbs)r()})}waitForLoaded(){return Je(this,void 0,void 0,function*(){if(!this._isLoading)return;yield new Promise(n=>{this._loadedCbs.push(n)})})}isLoading(){return this._isLoading}version(){return this._version}waitForSync(){return Je(this,void 0,void 0,function*(){if(!this._nextSave)return;yield new Promise(n=>{this._pendingSaveCbs.push(n)})})}_writeToStorage(){this._persister.setItem(this._key,this.serialize(this.currentValue));for(const e of this._pendingSaveCbs)e();this._pendingSaveCbs.length=0}flush(){return Je(this,void 0,void 0,function*(){this._nextSave&&(clearTimeout(this._nextSave),this._writeToStorage())})}_enqueuePersist(e){if(this._nextSave){e&&this._pendingSaveCbs.push(e);return}this._nextSave=setTimeout(()=>{wa(()=>{this._nextSave=null,this._writeToStorage()},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)}set(e,n){this._version++,this.currentValue=e(this.currentValue),this._isLoading?this._loadedCbs.push(()=>this._enqueuePersist(n)):this._enqueuePersist(n);for(const r of this._subs)r(this.currentValue);return this.currentValue}subscribe(e){return this._subs.push(e),e(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==e)}}}function Vr(t,e=[]){t.forEach(n=>{const{data:r}=n,{"datalog-result":i}=r,{"join-rows":s}=i;for(const o of s)for(const a of o)e.push(a);Vr(n["child-nodes"],e)})}function zr(t){const e=[];return Vr(t,e),e}function Kr(t){return Object.values(t.links).reduce((e,n)=>{var r,i,s,o;return(r=e[s=n.forward.on])!==null&&r!==void 0||(e[s]={}),e[n.forward.on][n.forward.label]={isForward:!0,isSingular:n.forward.has==="one",link:n},(i=e[o=n.reverse.on])!==null&&i!==void 0||(e[o]={}),e[n.reverse.on][n.reverse.label]={isForward:!1,isSingular:n.reverse.has==="one",link:n},e},{})}const hn="v0.22.47-experimental.sync-table.19152834603.1";function ma(t,e){return{info:t?(...n)=>console.info(...n,e()):()=>{},debug:t?(...n)=>console.debug(...n,e()):()=>{},error:t?(...n)=>console.error(...n,e()):()=>{}}}class H{constructor(e,n,r,i={indexed:!1,unique:!1}){this.valueType=e,this.required=n,this.isIndexed=r,this.config=i,this.metadata={}}clientRequired(){return new H(this.valueType,!1,this.isIndexed,this.config)}optional(){return new H(this.valueType,!1,this.isIndexed,this.config)}unique(){return new H(this.valueType,this.required,this.isIndexed,Object.assign(Object.assign({},this.config),{unique:!0}))}indexed(){return new H(this.valueType,this.required,!0,Object.assign(Object.assign({},this.config),{indexed:!0}))}}class wt{constructor(e,n){this.attrs=e,this.links=n}asType(){return new wt(this.attrs,this.links)}}class mt{constructor(e,n,r){this.entities=e,this.links=n,this.rooms=r}withRoomSchema(){return new mt(this.entities,this.links,{})}}class x extends Error{constructor(e,n){const r=n?`At path '${n}': ${e}`:e;super(r),this.name="QueryValidationError"}}const qr=["where","order","limit","last","first","offset","after","before","fields","aggregate"],Sa=t=>t.valueType||"unknown",Br=(t,e,n=!1)=>{if(n||t==null)return!0;switch(e){case"string":return typeof t=="string";case"number":return typeof t=="number"&&!isNaN(t);case"boolean":return typeof t=="boolean";case"date":return t instanceof Date||typeof t=="string"||typeof t=="number";default:return!0}},va=(t,e,n,r,i,s,o)=>{const a=s.valueType==="json",u=(d,c,f)=>{if(!Br(f,c,a))throw new x(`Invalid value for operator '${d}' on attribute '${r}' in entity '${i}'. Expected ${c}, but received: ${typeof f}`,o)};switch(t){case"in":case"$in":if(!Array.isArray(e))throw new x(`Operator '${t}' for attribute '${r}' in entity '${i}' must be an array, but received: ${typeof e}`,o);for(const d of e)u(t,n,d);break;case"$not":case"$ne":case"$gt":case"$lt":case"$gte":case"$lte":u(t,n,e);break;case"$like":case"$ilike":if(u(t,"string",e),t==="$ilike"&&!s.isIndexed)throw new x(`Operator '${t}' can only be used with indexed attributes, but '${r}' in entity '${i}' is not indexed`,o);break;case"$isNull":u(t,"boolean",e);break;default:throw new x(`Unknown operator '${t}' for attribute '${r}' in entity '${i}'`,o)}},Re=(t,e,n,r,i)=>{const s=Sa(n),o=n.valueType==="json";if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(o)return;const u=t;for(const[d,c]of Object.entries(u))va(d,c,s,e,r,n,`${i}.${d}`)}else if(!Br(t,s,o))throw new x(`Invalid value for attribute '${e}' in entity '${r}'. Expected ${s}, but received: ${typeof t}`,i)},Oa=(t,e,n,r,i)=>{const s=t.split(".");if(s.length<2)throw new x(`Invalid dot notation path '${t}'. Must contain at least one dot.`,i);let o=n;for(let c=0;c<s.length-1;c++){const f=s[c],h=r.entities[o];if(!h)throw new x(`Entity '${o}' does not exist in schema while traversing dot notation path '${t}'.`,i);const p=h.links[f];if(!p){const b=Object.keys(h.links);throw new x(`Link '${f}' does not exist on entity '${o}' in dot notation path '${t}'. Available links: ${b.length>0?b.join(", "):"none"}`,i)}o=p.entityName}const a=s[s.length-1],u=r.entities[o];if(!u)throw new x(`Target entity '${o}' does not exist in schema for dot notation path '${t}'.`,i);if(a==="id"){if(typeof e=="string"&&!je(e))throw new x(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${e}`,i);Re(e,t,new H("string",!1,!0),n,i);return}const d=u.attrs[a];if(Object.keys(u.links).includes(a)){if(typeof e=="string"&&!je(e))throw new x(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${e}`,i);Re(e,t,new H("string",!1,!0),n,i);return}if(!d){const c=Object.keys(u.attrs);throw new x(`Attribute '${a}' does not exist on entity '${o}' in dot notation path '${t}'. Available attributes: ${c.length>0?c.join(", ")+", id":"id"}`,i)}Re(e,t,d,n,i)},Gr=(t,e,n,r)=>{for(const[i,s]of Object.entries(t)){if(i==="or"||i==="and"){if(Array.isArray(s))for(const d of s)typeof d=="object"&&d!==null&&Gr(d,e,n,`${r}.${i}[${d}]`);continue}if(i==="id"){Re(s,"id",new H("string",!1,!0),e,`${r}.id`);continue}if(i.includes(".")){Oa(i,s,e,n,`${r}.${i}`);continue}const o=n.entities[e];if(!o)continue;const a=o.attrs[i],u=o.links[i];if(!a&&!u){const d=Object.keys(o.attrs),c=Object.keys(o.links);throw new x(`Attribute or link '${i}' does not exist on entity '${e}'. Available attributes: ${d.length>0?d.join(", "):"none"}. Available links: ${c.length>0?c.join(", "):"none"}`,`${r}.${i}`)}if(a)Re(s,i,a,e,`${r}.${i}`);else if(u){if(typeof s=="string"&&!je(s))throw new x(`Invalid value for link '${i}' in entity '${e}'. Expected a UUID, but received: ${s}`,`${r}.${i}`);const d=new H("string",!1,!0);Re(s,i,d,e,`${r}.${i}`)}}},Ea=(t,e,n,r,i=0)=>{for(const o of Object.keys(t))if(!qr.includes(o))throw new x(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${qr.join(", ")}. Found: ${o}`,r);const s=["offset","before","after","first","last"];for(const o of s)if(t[o]!==void 0&&i>0)throw new x(`'${o}' can only be used on top-level namespaces. It cannot be used in nested queries.`,r);if(t.where&&n){if(typeof t.where!="object"||t.where===null)throw new x(`'where' clause must be an object in entity '${e}', but received: ${typeof t.where}`,r?`${r}.where`:void 0);Gr(t.where,e,n,r?`${r}.where`:"where")}},Qr=(t,e,n,r,i=0)=>{var s;if(!t||typeof t!="object")throw new x(`Query part for entity '${e}' must be an object, but received: ${typeof t}`,r);for(const o of Object.keys(t))if(o!=="$"){if(n&&!(o in n.entities[e].links)){const u=Object.keys(n.entities[e].links);throw new x(`Link '${o}' does not exist on entity '${e}'. Available links: ${u.length>0?u.join(", "):"none"}`,`${r}.${o}`)}const a=t[o];if(typeof a=="object"&&a!==null){const u=(s=n==null?void 0:n.entities[e].links[o])===null||s===void 0?void 0:s.entityName;u&&Qr(a,u,n,`${r}.${o}`,i+1)}}else{const a=t[o];if(typeof a!="object"||a===null)throw new x(`Query parameter '$' must be an object in entity '${e}', but received: ${typeof a}`,`${r}.$`);Ea(a,e,n,`${r}.$`,i)}},Hr=(t,e)=>{if(typeof t!="object"||t===null)throw new x(`Query must be an object, but received: ${typeof t}${t===null?" (null)":""}`);if(Array.isArray(t))throw new x(`Query must be an object, but received: ${typeof t}`);const n=t;for(const r of Object.keys(n)){if(Array.isArray(t[r]))throw new x(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(typeof r!="string")throw new x(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(r!=="$$ruleParams"){if(e&&!e.entities[r]){const i=Object.keys(e.entities);throw new x(`Entity '${r}' does not exist in schema. Available entities: ${i.length>0?i.join(", "):"none"}`,r)}Qr(n[r],r,e,r,0)}}},Yr=t=>typeof t!="string"?!1:gt(t)?!0:je(t);class se extends Error{constructor(e){super(e),this.name="TransactionValidationError"}}const Jr=t=>t.length>0?t.join(", "):"none",Aa=(t,e)=>new se(`Entity '${t}' does not exist in schema. Available entities: ${Jr(e)}`),Zr={string:t=>typeof t=="string",number:t=>typeof t=="number"&&!isNaN(t),boolean:t=>typeof t=="boolean",date:t=>t instanceof Date||typeof t=="string"||typeof t=="number",json:()=>!0},Ca=(t,e)=>{var n,r;return t==null?!0:(r=(n=Zr[e.valueType])===null||n===void 0?void 0:n.call(Zr,t))!==null&&r!==void 0?r:!1},Xr=(t,e)=>{const n=e.entities[t];if(!n)throw Aa(t,Object.keys(e.entities));return n},pn=(t,e,n)=>{const r=Xr(t,n);if(typeof e!="object"||e===null)throw new se(`Arguments for data operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[i,s]of Object.entries(e)){if(i==="id")continue;const o=r.attrs[i];if(o&&!Ca(s,o))throw new se(`Invalid value for attribute '${i}' in entity '${t}'. Expected ${o.valueType}, but received: ${typeof s}`)}},ei=(t,e,n)=>{const r=Xr(t,n);if(typeof e!="object"||e===null)throw new se(`Arguments for link operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[i,s]of Object.entries(e)){if(!r.links[i]){const a=Object.keys(r.links);throw new se(`Link '${i}' does not exist on entity '${t}'. Available links: ${Jr(a)}`)}if(s!=null){if(Array.isArray(s)){for(const a of s)if(!Yr(a))throw new se(`Invalid entity ID in link '${i}' for entity '${t}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!Yr(s))throw new se(`Invalid UUID in link '${i}' for entity '${t}'. Expected a UUID, but received: ${s}`)}}},ka={create:pn,update:pn,merge:pn,link:ei,unlink:ei,delete:()=>{}},ja=(t,e)=>{if(!e)return;const[n,r,i,s]=t;if(!Array.isArray(i)&&!je(i))throw new se(`Invalid id for entity '${r}'. Expected a UUID, but received: ${i}`);if(typeof r!="string")throw new se(`Entity name must be a string, but received: ${typeof r}`);const o=ka[n];o&&s!==void 0&&o(r,s,e)},Ia=(t,e)=>{const n=Array.isArray(t)?t:[t];for(const r of n){if(!r||typeof r!="object")throw new se(`Transaction chunk must be an object, but received: ${typeof r}`);if(!Array.isArray(r.__ops))throw new se(`Transaction chunk must have __ops array, but received: ${typeof r.__ops}`);for(const i of r.__ops){if(!Array.isArray(i))throw new se(`Transaction operation must be an array, but received: ${typeof i}`);ja(i,e)}}};var ti=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};let ni=0;class ri{constructor(e){this.type="ws",this.id=`${this.type}_${ni++}`,this.conn=new WebSocket(e),this.conn.onopen=n=>{this.onopen&&this.onopen({target:this})},this.conn.onmessage=n=>{this.onmessage&&this.onmessage({target:this,message:JSON.parse(n.data.toString())})},this.conn.onclose=n=>{this.onclose&&this.onclose({target:this})},this.conn.onerror=n=>{this.onerror&&this.onerror({target:this})}}close(){this.conn.close()}isOpen(){return this.conn.readyState===WebSocket.OPEN}isConnecting(){return this.conn.readyState===WebSocket.CONNECTING}send(e){return this.conn.send(JSON.stringify(e))}}class Pa{constructor(e,n){this.type="sse",this.initParams=null,this.sendQueue=[],this.closeFired=!1,this.sseInitTimeout=null,this.id=`${this.type}_${ni++}`,this.url=n,this.ES=e,this.conn=new e(n),this.sseInitTimeout=setTimeout(()=>{this.initParams||this.handleError()},1e4),this.conn.onmessage=r=>{const i=JSON.parse(r.data);if(i.op==="sse-init"){this.initParams={machineId:i["machine-id"],sessionId:i["session-id"],sseToken:i["sse-token"]},this.onopen&&this.onopen({target:this}),clearTimeout(this.sseInitTimeout);return}this.onmessage&&this.onmessage({target:this,message:i})},this.conn.onerror=r=>{this.handleError()}}handleError(){try{this.onerror&&this.onerror({target:this})}finally{this.handleClose()}}handleClose(){this.conn.close(),this.onclose&&!this.closeFired&&(this.closeFired=!0,this.onclose({target:this}))}postMessages(e){return ti(this,void 0,void 0,function*(){try{(yield fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machine_id:this.initParams.machineId,session_id:this.initParams.sessionId,sse_token:this.initParams.sseToken,messages:e})})).ok||this.handleError()}catch{this.handleError()}})}flushQueue(){return ti(this,void 0,void 0,function*(){if(this.sendPromise||!this.sendQueue.length)return;const e=this.sendQueue;this.sendQueue=[];const n=this.postMessages(e);this.sendPromise=n,n.then(()=>{this.sendPromise=null,this.flushQueue()})})}send(e){if(!this.isOpen()||!this.initParams)throw this.isConnecting()?new Error("Failed to execute 'send' on 'EventSource': Still in CONNECTING state."):this.conn.readyState===this.ES.CLOSED?new Error("EventSource is already in CLOSING or CLOSED state."):new Error("EventSource is in invalid state.");this.sendQueue.push(e),this.flushQueue()}isOpen(){return this.conn.readyState===this.ES.OPEN&&this.initParams!==null}isConnecting(){return this.conn.readyState===this.ES.CONNECTING||this.conn.readyState===this.ES.OPEN&&this.initParams===null}close(){this.handleClose()}}var ii=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};function Ma(t,e){for(const n in t){const r=t[n];for(const i of r.entities||[])i.store=cr(i.store)}return t}function Ra(t){const e={};for(const n in t){const r=t[n];if(r.entities){const i=[];for(const s of r.entities)i.push({store:ur(s.store),entity:s.entity});e[n]=Object.assign(Object.assign({},r),{entities:i})}else e[n]=r}return e}function xa(t,e){const n={};for(const[r,i]of Object.entries(e))n[r]=i;if(t)for(const[r,i]of Object.entries(t))n[r]=i;return n}function yn(t,e){const n=Object.keys(t.query)[0];return jr({store:e,pageInfo:null,aggregate:null},t.query).data[n][0]}function si(t,e){for(const{action:n,triple:r}of e)switch(n){case"added":lr(t,r);break;case"removed":dr(t,r);break}}function Da(t,e){var n,r,i,s;const o={};for(const{action:a,triple:u}of e){const[d,c,f]=u,h=(r=(n=t.attrs[c])===null||n===void 0?void 0:n["forward-identity"])===null||r===void 0?void 0:r[2];if(!h)continue;const p=(i=o[d])!==null&&i!==void 0?i:{};o[d]=p;const b=(s=p[h])!==null&&s!==void 0?s:{};switch(p[h]=b,a){case"added":b.newValue=f;break;case"removed":b.oldValue===void 0&&(b.oldValue=f);break}}return o}var Ze;(function(t){t.InitialSyncBatch="InitialSyncBatch",t.InitialSyncComplete="InitialSyncComplete",t.LoadFromStorage="LoadFromStorage",t.SyncTransaction="SyncTransaction"})(Ze||(Ze={}));class $a{constructor(e,n,r,i,s){this.callbacks={},this.idToHash={},this.trySend=e,this.config=r,this.log=i,this.createStore=s,this.subs=new ln(n,"subs",{},xa,Ra,o=>Ma(o,this.config.useDateObjects))}beforeUnload(){this.subs.flush()}subscribe(e,n){const r=G(e);return this.callbacks[r]=this.callbacks[r]||[],this.callbacks[r].push(n),this.initSubscription(e,r,n),()=>{this.unsubscribe(r,n)}}unsubscribe(e,n){const r=(this.callbacks[e]||[]).filter(i=>i!==n);if(this.callbacks[e]=r,!r.length){delete this.callbacks[e];const i=this.subs.currentValue[e];i!=null&&i.state&&this.clearSubscriptionData(i.state.subscriptionId),this.subs.set(s=>(delete s[e],s))}}sendStart(e){this.trySend(W(),{op:"start-sync",q:e})}sendResync(e,n){this.idToHash[n.subscriptionId]=e.hash,this.trySend(n.subscriptionId,{op:"resync-table","subscription-id":n.subscriptionId,"tx-id":n.txId,token:n.token})}sendRemove(e){this.trySend(W(),{op:"remove-sync","subscription-id":e.subscriptionId})}initSubscription(e,n,r){return ii(this,void 0,void 0,function*(){yield this.subs.waitForLoaded();const i=this.subs.currentValue[n];if(i&&i.state&&i.state.txId){this.sendResync(i,i.state),i.entities&&r&&r({type:Ze.LoadFromStorage,data:i.entities.map(s=>s.entity)});return}this.subs.set(s=>(s[n]={query:e,hash:n},s)),this.sendStart(e)})}flushPending(){return ii(this,void 0,void 0,function*(){yield this.subs.waitForLoaded();for(const e of Object.keys(this.callbacks)){const n=this.subs.currentValue[e];n?yield this.initSubscription(n.query,n.hash):this.log.error("Missing sub for hash in flushPending",e)}})}onStartSyncOk(e){const n=e["subscription-id"],r=e.q,i=G(r);this.idToHash[n]=i,this.subs.set(s=>{const o=s[i];return o?(o.state={subscriptionId:n,token:e.token},s):(this.log.error("Missing sub for hash",i,"subscription-id",n,"query",r),s)})}notifyCbs(e,n){for(const r of this.callbacks[e]||[])r(n)}onSyncLoadBatch(e){const n=e["subscription-id"],r=e["join-rows"],i=this.idToHash[n];if(!i){this.log.error("Missing hash for subscription",e);return}const s=[],a=this.subs.set(u=>{var d;const c=u[i];if(!c)return this.log.error("Missing sub for hash",i,e),u;const f=(d=c.entities)!==null&&d!==void 0?d:[];c.entities=f;for(const h of r){const p=this.createStore(h),b=yn(c,p);f.push({store:p,entity:b}),s.push(b)}return u})[i];a.entities&&this.notifyCbs(i,{type:Ze.InitialSyncBatch,data:a.entities.map(u=>u.entity),batch:s})}onSyncInitFinish(e){const n=e["subscription-id"],r=this.idToHash[n];if(!r){this.log.error("Missing hash for subscription",e);return}this.subs.set(i=>{const s=i[r];if(!s)return this.log.error("Missing sub for hash",r,e),i;const o=s.state;return o?(o.txId=e["tx-id"],i):(this.log.error("Sub never set init, missing result",s,e),i)})}onSyncUpdateTriples(e){const n=e["subscription-id"],r=this.idToHash[n];if(!r){this.log.error("Missing hash for subscription",e);return}this.subs.set(i=>{var s;const o=i[r];if(!o)return this.log.error("Missing sub for hash",r,e),i;const a=o.state;if(!a)return this.log.error("Missing state for sub",o,e),i;for(const u of e.txes){if(a.txId>=u["tx-id"])continue;a.txId=u["tx-id"];const d=[],c={};for(const y of u.changes){const _=(s=c[y.triple[0]])!==null&&s!==void 0?s:[];c[y.triple[0]]=_,_.push(y)}const f=o.entities||[];o.entities=f;const h=[];e:for(const[y,_]of Object.entries(c))for(const[T,w]of Object.entries(f))if(ms(w.store,y)){si(w.store,_);const m=yn(o,w.store),I=Da(w.store,_)[y];for(const[v,{oldValue:R,newValue:F}]of Object.entries(I||{}))R===F&&delete I[v];m?(h.push({oldEntity:w.entity,newEntity:m,changedFields:I||{}}),w.entity=m):d.push(T),delete c[y];continue e}const p=[];for(const[y,_]of Object.entries(c)){const T=this.createStore([]);si(T,_);const w=yn(o,T);if(!w){this.log.error("No entity found after applying change",{sub:o,changes:_,store:T});continue}f.push({store:T,entity:w}),p.push(w)}const b=[];for(const y of d.sort().reverse())b.push(f[y].entity),f.splice(y,1);this.notifyCbs(r,{type:Ze.SyncTransaction,data:f.map(y=>y.entity),added:p,removed:b,updated:h})}return i})}clearSubscriptionData(e){const n=this.idToHash[e];if(n){delete this.idToHash[e];const r=this.subs.currentValue[n];if(r.state&&this.sendRemove(r.state),this.subs.set(i=>(delete i[n],i)),r)return r}}onResyncError(e){const n=e["original-event"]["subscription-id"],r=this.clearSubscriptionData(n);r&&this.initSubscription(r.query,r.hash)}}var L=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})},Ua=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const ye={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},La=3e4,Fa=3e4,Na=200,Wa={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},bn="_instant_oauth_redirect",_n="currentUser";function Va({transportType:t,appId:e,apiURI:n,wsURI:r,EventSourceImpl:i}){if(!i)return new ri(`${r}?app_id=${e}`);switch(t){case"ws":return new ri(`${r}?app_id=${e}`);case"sse":return new Pa(i,`${n}/runtime/sse?app_id=${e}`);default:throw new Error("Unknown transport type "+t)}}function za(){return typeof window<"u"||typeof chrome<"u"}const oi={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function Ka(t,e){var n;const r=typeof t=="string"?JSON.parse(t):t;for(const i in r){const s=r[i];if(!((n=s==null?void 0:s.result)===null||n===void 0)&&n.store){const o=s.result.store;s.result.store=cr(Object.assign(Object.assign({},o),{useDateObjects:e}))}}return r}function qa(t){var e;const n={};for(const r in t){const i=t[r],s=Object.assign({},i);!((e=i.result)===null||e===void 0)&&e.store&&(s.result=Object.assign(Object.assign({},i.result),{store:ur(i.result.store)})),n[r]=s}return n}function ai(t){return[...t].sort((e,n)=>{const[r,i]=e,[s,o]=n,a=i.order||0,u=o.order||0;return a==u?r<s?-1:r>s?1:0:a-u})}class Ba{constructor(e,n=Dr,r=$r,i,s){var o,a,u;if(this._isOnline=!0,this._isShutdown=!1,this.status=ye.CONNECTING,this.queryCbs={},this.queryOnceDfds={},this.authCbs=[],this.attrsCbs=[],this.mutationErrorCbs=[],this.connectionStatusCbs=[],this.mutationDeferredStore=new Map,this._reconnectTimeoutId=null,this._reconnectTimeoutMs=0,this._transportType="ws",this._wsOk=null,this._localIdPromises={},this._errorMessage=null,this._oauthCallbackResponse=null,this._linkIndex=null,this._rooms={},this._roomsPendingLeave={},this._presence={},this._broadcastQueue=[],this._broadcastSubs={},this._currentUserCached={isLoading:!0,error:void 0,user:void 0},this._beforeUnloadCbs=[],this._dataForQueryCache={},this._inFlightMutationEventIds=new Set,this._onMergeQuerySubs=(d,c)=>{const f=d||{},h=Object.assign({},c);Object.entries(c).forEach(([b,y])=>{var _;const T=(_=f==null?void 0:f[b])===null||_===void 0?void 0:_.result,w=y.result;T&&!w&&(h[b].result=T)}),Object.keys(f).filter(b=>!c[b]).sort((b,y)=>{var _,T;const w=((_=f[b])===null||_===void 0?void 0:_.lastAccessed)||0;return(((T=f[y])===null||T===void 0?void 0:T.lastAccessed)||0)-w}).slice(0,this.queryCacheLimit).forEach(b=>{h[b]=f[b]}),this.querySubs.set(b=>h),this.loadedNotifyAll()},this._onMergePendingMutations=(d,c)=>{const f=new Map([...d.entries(),...c.entries()]);this.pendingMutations.set(p=>f),this.loadedNotifyAll(),this._rewriteMutationsSorted(this.attrs,d).forEach(([p,b])=>{!c.has(p)&&!b["tx-id"]&&this._sendMutation(p,b)})},this.getPreviousResult=d=>{const c=G(d);return this.dataForQuery(c)},this.notifyOne=d=>{var c,f;const h=(c=this.queryCbs[d])!==null&&c!==void 0?c:[],p=(f=this._dataForQueryCache[d])===null||f===void 0?void 0:f.data,b=this.dataForQuery(d);b&&(lt(b,p)||h.forEach(y=>y.cb(b)))},this.notifyOneQueryOnce=d=>{var c;const f=(c=this.queryOnceDfds[d])!==null&&c!==void 0?c:[],h=this.dataForQuery(d);f.forEach(p=>{this._completeQueryOnce(p.q,d,p.dfd),p.dfd.resolve(h)})},this.notifyQueryError=(d,c)=>{(this.queryCbs[d]||[]).forEach(h=>h.cb({error:c}))},this.pushTx=d=>{this.config.disableValidation||Ia(d,this.config.schema);try{const c=ia({attrs:this.optimisticAttrs(),schema:this.config.schema,stores:Object.values(this.querySubs.currentValue).map(f=>{var h;return(h=f==null?void 0:f.result)===null||h===void 0?void 0:h.store}),useDateObjects:this.config.useDateObjects},d);return this.pushOps(c)}catch(c){return this.pushOps([],c)}},this.pushOps=(d,c)=>{const f=W(),h=[...this.pendingMutations.currentValue.values()],p=Math.max(0,...h.map(_=>_.order||0))+1,b={op:"transact","tx-steps":d,created:Date.now(),error:c,order:p};this.pendingMutations.set(_=>(_.set(f,b),_));const y=new Wr;return this.mutationDeferredStore.set(f,y),this._sendMutation(f,b),this.notifyAll(),y.promise},this._transportOnOpen=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][open]",c.id,"skip; this is no longer the current transport");return}this._log.info("[socket][open]",this._transport.id),this._setStatus(ye.OPENED),this.getCurrentUser().then(f=>{var h;this._trySend(W(),{op:"init","app-id":this.config.appId,"refresh-token":(h=f.user)===null||h===void 0?void 0:h.refresh_token,versions:this.versions,"__admin-token":this.config.__adminToken})}).catch(f=>{this._log.error("[socket][error]",c.id,f)})},this._transportOnMessage=d=>{const c=d.target,f=d.message;if(this._transport!==c){this._log.info("[socket][message]",c.id,f,"skip; this is no longer the current transport");return}!this._wsOk&&c.type==="ws"&&(this._wsOk=!0),this._transportType="ws",this._handleReceive(c.id,d.message)},this._transportOnError=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][error]",c.id,"skip; this is no longer the current transport");return}this._log.error("[socket][error]",c.id,d)},this._scheduleReconnect=()=>{!this._wsOk&&this._transportType!=="sse"&&(this._transportType="sse",this._reconnectTimeoutMs=0),setTimeout(()=>{if(this._reconnectTimeoutMs=Math.min(this._reconnectTimeoutMs+1e3,1e4),!this._isOnline){this._log.info("[socket][close]",this._transport.id,"we are offline, no need to start socket");return}this._startSocket()},this._reconnectTimeoutMs)},this._transportOnClose=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][close]",c.id,"skip; this is no longer the current transport");return}this._setStatus(ye.CLOSED);for(const f of Object.values(this._rooms))f.isConnected=!1;if(this._isShutdown){this._log.info("[socket][close]",c.id,"Reactor has been shut down and will not reconnect");return}this._log.info("[socket][close]",c.id,"schedule reconnect, ms =",this._reconnectTimeoutMs),this._scheduleReconnect()},this._EventSource=s,this.config=Object.assign(Object.assign({},Wa),e),this.queryCacheLimit=(o=this.config.queryCacheLimit)!==null&&o!==void 0?o:10,this._pendingTxCleanupTimeout=(a=this.config.pendingTxCleanupTimeout)!==null&&a!==void 0?a:Fa,this._pendingMutationCleanupThreshold=(u=this.config.pendingMutationCleanupThreshold)!==null&&u!==void 0?u:Na,this._log=ma(e.verbose||fn||Lr,()=>this._reactorStats()),this.versions=Object.assign(Object.assign({},i||{}),{"@instantdb/core":hn}),this.config.schema&&(this._linkIndex=Kr(this.config.schema)),!!za()){if(!e.appId)throw new Error("Instant must be initialized with an appId.");if(!je(e.appId))throw new Error(`Instant must be initialized with a valid appId. \`${e.appId}\` is not a valid uuid.`);typeof BroadcastChannel=="function"&&(this._broadcastChannel=new BroadcastChannel("@instantdb"),this._broadcastChannel.addEventListener("message",d=>L(this,void 0,void 0,function*(){var c;try{if(((c=d.data)===null||c===void 0?void 0:c.type)==="auth"){const f=yield this.getCurrentUser();this.updateUser(f.user)}}catch(f){this._log.error("[error] handle broadcast channel",f)}}))),this._initStorage(n),this._syncTable=new $a(this._trySendAuthed.bind(this),this._persister,{useDateObjects:this.config.useDateObjects},this._log,d=>pt(this.attrs,d,this.config.enableCardinalityInference,this._linkIndex,this.config.useDateObjects)),this._oauthCallbackResponse=this._oauthLoginInit(),this.getCurrentUser(),r.getIsOnline().then(d=>{this._isOnline=d,this._startSocket(),r.listen(c=>{c!==this._isOnline&&(this._log.info("[network] online =",c),this._isOnline=c,this._isOnline?this._startSocket():(this._log.info("Changing status from",this.status,"to",ye.CLOSED),this._setStatus(ye.CLOSED)))})}),typeof addEventListener<"u"&&(this._beforeUnload=this._beforeUnload.bind(this),addEventListener("beforeunload",this._beforeUnload))}}updateSchema(e){this.config=Object.assign(Object.assign({},this.config),{schema:e,cardinalityInference:!!e}),this._linkIndex=e?Kr(this.config.schema):null}_reactorStats(){return{inFlightMutationCount:this._inFlightMutationEventIds.size,pendingMutationCount:this.pendingMutations.currentValue.size,transportType:this._transportType}}_initStorage(e){this._persister=new e(`instant_${this.config.appId}_5`),this.querySubs=new ln(this._persister,"querySubs",{},this._onMergeQuerySubs,qa,n=>Ka(n,this.config.useDateObjects)),this.pendingMutations=new ln(this._persister,"pendingMutations",new Map,this._onMergePendingMutations,n=>[...n.entries()],n=>new Map(typeof n=="string"?JSON.parse(n):n),100,100),this._beforeUnloadCbs.push(()=>{this.pendingMutations.flush(),this.querySubs.flush()})}_beforeUnload(){for(const e of this._beforeUnloadCbs)e();this._syncTable.beforeUnload()}_finishTransaction(e,n,r){const i=this.mutationDeferredStore.get(n);this.mutationDeferredStore.delete(n);const s=e!=="error"&&e!=="timeout";if(!i&&!s&&console.error("Mutation failed",Object.assign({status:e,eventId:n},r)),!!i)if(s)i.resolve({status:e,eventId:n});else if(r.type){const{status:o}=r,a=Ua(r,["status"]);i.reject(new He({body:a,status:o}))}else i.reject(new Pe(r.message,r.hint))}_setStatus(e,n){this.status=e,this._errorMessage=n,this.notifyConnectionStatusSubs(e)}_flushEnqueuedRoomData(e){var n,r;const i=(r=(n=this._presence[e])===null||n===void 0?void 0:n.result)===null||r===void 0?void 0:r.user,s=this._broadcastQueue[e];if(this._broadcastQueue[e]=[],i&&this._trySetPresence(e,i),s)for(const o of s){const{topic:a,roomType:u,data:d}=o;this._tryBroadcast(e,u,a,d)}}_handleReceive(e,n){var r,i,s,o,a,u;const d=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(oi[n.op]||this._log.info("[receive]",e,n.op,n),n.op){case"init-ok":{this._setStatus(ye.AUTHENTICATED),this._reconnectTimeoutMs=0,this._setAttrs(n.attrs),this._flushPendingMessages(),this._sessionId=n["session-id"];for(const h of Object.keys(this._rooms)){const p=(i=(r=this._presence[h])===null||r===void 0?void 0:r.result)===null||i===void 0?void 0:i.user;this._tryJoinRoom(h,p)}break}case"add-query-exists":{this.notifyOneQueryOnce(G(n.q));break}case"add-query-ok":{const{q:h,result:p}=n,b=G(h),y=(o=(s=p==null?void 0:p[0])===null||s===void 0?void 0:s.data)===null||o===void 0?void 0:o["page-info"],_=(u=(a=p==null?void 0:p[0])===null||a===void 0?void 0:a.data)===null||u===void 0?void 0:u.aggregate,T=zr(p),w=pt(this.attrs,T,d,this._linkIndex,this.config.useDateObjects);this.querySubs.set(m=>(m[b].result={store:w,pageInfo:y,aggregate:_,processedTxId:n["processed-tx-id"]},m)),this._cleanupPendingMutationsQueries(),this.notifyOne(b),this.notifyOneQueryOnce(b),this._cleanupPendingMutationsTimeout();break}case"start-sync-ok":{this._syncTable.onStartSyncOk(n);break}case"sync-load-batch":{this._syncTable.onSyncLoadBatch(n);break}case"sync-init-finish":{this._syncTable.onSyncInitFinish(n);break}case"sync-update-triples":{this._syncTable.onSyncUpdateTriples(n);break}case"refresh-ok":{const{computations:h,attrs:p}=n,b=n["processed-tx-id"];p&&this._setAttrs(p),this._cleanupPendingMutationsTimeout();const y=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue,b);y!==this.pendingMutations.currentValue&&this.pendingMutations.set(()=>y);const _=ai(y.entries()),T=h.map(w=>{var m,I,v,R;const F=w["instaql-query"],Y=w["instaql-result"],st=G(F),Ct=zr(Y),Rn=pt(this.attrs,Ct,d,this._linkIndex,this.config.useDateObjects),xn=this._applyOptimisticUpdates(Rn,_,b),kt=(I=(m=Y==null?void 0:Y[0])===null||m===void 0?void 0:m.data)===null||I===void 0?void 0:I["page-info"],le=(R=(v=Y==null?void 0:Y[0])===null||v===void 0?void 0:v.data)===null||R===void 0?void 0:R.aggregate;return{hash:st,store:xn,pageInfo:kt,aggregate:le}});T.forEach(({hash:w,store:m,pageInfo:I,aggregate:v})=>{this.querySubs.set(R=>(R[w].result={store:m,pageInfo:I,aggregate:v,processedTxId:b},R))}),this._cleanupPendingMutationsQueries(),T.forEach(({hash:w})=>{this.notifyOne(w)});break}case"transact-ok":{const{"client-event-id":h,"tx-id":p}=n;this._inFlightMutationEventIds.delete(h);const y=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue).get(h);if(!y)break;this.pendingMutations.set(T=>(T.set(h,Object.assign(Object.assign({},T.get(h)),{"tx-id":p,confirmed:Date.now()})),T));const _=y["tx-steps"].filter(([T,...w])=>T==="add-attr").map(([T,w])=>w).concat(Object.values(this.attrs));this._setAttrs(_),this._finishTransaction("synced",h),this._cleanupPendingMutationsTimeout();break}case"patch-presence":{const h=n["room-id"];this._trySetRoomConnected(h,!0),this._patchPresencePeers(h,n.edits),this._notifyPresenceSubs(h);break}case"refresh-presence":{const h=n["room-id"];this._trySetRoomConnected(h,!0),this._setPresencePeers(h,n.data),this._notifyPresenceSubs(h);break}case"server-broadcast":{const h=n["room-id"],p=n.topic;this._trySetRoomConnected(h,!0),this._notifyBroadcastSubs(h,p,n);break}case"join-room-ok":{const h=n["room-id"];if(!this._rooms[h]){this._roomsPendingLeave[h]&&(this._tryLeaveRoom(h),delete this._roomsPendingLeave[h]);break}this._trySetRoomConnected(h,!0),this._flushEnqueuedRoomData(h);break}case"leave-room-ok":{const h=n["room-id"];this._trySetRoomConnected(h,!1);break}case"join-room-error":const c=n["room-id"],f=this._rooms[c];f&&(f.error=n.error),this._notifyPresenceSubs(c);break;case"error":this._handleReceiveError(n);break;default:this._log.info("Uknown op",n.op,n);break}}_handleMutationError(e,n,r){const i=this.pendingMutations.currentValue.get(n);if(i&&(e!=="timeout"||!i["tx-id"])){this.pendingMutations.set(o=>(o.delete(n),o)),this._inFlightMutationEventIds.delete(n);const s={message:r.message,hint:r.hint};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(s),this._finishTransaction(e,n,r)}}_handleReceiveError(e){var n,r,i,s,o,a;console.log("error",e);const u=e["client-event-id"];this._inFlightMutationEventIds.delete(u);const d=this.pendingMutations.currentValue.get(u),c={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(e.hint&&(c.hint=e.hint),d){this._handleMutationError("error",u,e);return}if(!((n=e["original-event"])===null||n===void 0)&&n.hasOwnProperty("q")&&((r=e["original-event"])===null||r===void 0?void 0:r.op)==="add-query"){const p=(i=e["original-event"])===null||i===void 0?void 0:i.q,b=G(p);this.notifyQueryError(G(p),c),this.notifyQueryOnceError(p,b,u,c);return}if(((s=e["original-event"])===null||s===void 0?void 0:s.op)==="init"){if(e.type==="record-not-found"&&((o=e.hint)===null||o===void 0?void 0:o["record-type"])==="app-user"){this.changeCurrentUser(null);return}this._setStatus(ye.ERRORED,c),this.notifyAll();return}if(((a=e["original-event"])===null||a===void 0?void 0:a.op)==="resync-table"){this._syncTable.onResyncError(e);return}const h=Object.assign({},e);delete h.message,delete h.hint,console.error(e.message,h),e.hint&&console.error(`This error comes with some debugging information. Here it is:
2
- `,e.hint)}notifyQueryOnceError(e,n,r,i){var s;const o=(s=this.queryOnceDfds[n])===null||s===void 0?void 0:s.find(a=>a.eventId===r);o&&(o.dfd.reject(i),this._completeQueryOnce(e,n,o.dfd))}_setAttrs(e){this.attrs=e.reduce((n,r)=>(n[r.id]=r,n),{}),this.notifyAttrsSubs()}_startQuerySub(e,n){const r=W();return this.querySubs.set(i=>(i[n]=i[n]||{q:e,result:null,eventId:r},i[n].lastAccessed=Date.now(),i)),this._trySendAuthed(r,{op:"add-query",q:e}),r}subscribeTable(e,n){return this._syncTable.subscribe(e,n)}subscribeQuery(e,n,r){var i;this.config.disableValidation||Hr(e,this.config.schema),r&&"ruleParams"in r&&(e=Object.assign({$$ruleParams:r.ruleParams},e));const s=G(e),o=this.getPreviousResult(e);return o&&n(o),this.queryCbs[s]=(i=this.queryCbs[s])!==null&&i!==void 0?i:[],this.queryCbs[s].push({q:e,cb:n}),this._startQuerySub(e,s),()=>{this._unsubQuery(e,s,n)}}queryOnce(e,n){var r;this.config.disableValidation||Hr(e,this.config.schema),n&&"ruleParams"in n&&(e=Object.assign({$$ruleParams:n.ruleParams},e));const i=new Wr;if(!this._isOnline)return i.reject(new Error("We can't run `queryOnce`, because the device is offline.")),i.promise;if(!this.querySubs)return i.reject(new Error("We can't run `queryOnce` on the backend. Use adminAPI.query instead: https://www.instantdb.com/docs/backend#query")),i.promise;const s=G(e),o=this._startQuerySub(e,s);return this.queryOnceDfds[s]=(r=this.queryOnceDfds[s])!==null&&r!==void 0?r:[],this.queryOnceDfds[s].push({q:e,dfd:i,eventId:o}),setTimeout(()=>i.reject(new Error("Query timed out")),La),i.promise}_completeQueryOnce(e,n,r){this.queryOnceDfds[n]&&(this.queryOnceDfds[n]=this.queryOnceDfds[n].filter(i=>i.dfd!==r),this._cleanupQuery(e,n))}_unsubQuery(e,n,r){this.queryCbs[n]&&(this.queryCbs[n]=this.queryCbs[n].filter(i=>i.cb!==r),this._cleanupQuery(e,n))}_cleanupQuery(e,n){var r,i;!((r=this.queryCbs[n])===null||r===void 0)&&r.length||!((i=this.queryOnceDfds[n])===null||i===void 0)&&i.length||(delete this.queryCbs[n],delete this.queryOnceDfds[n],this._trySendAuthed(W(),{op:"remove-query",q:e}))}_rewriteMutations(e,n,r){if(!e)return n;const i=c=>{const[f,h,p]=c["forward-identity"];return K(e,h,p)},s=c=>{const[f,h,p]=c["forward-identity"];return me(e,h,p)},o={attrIdMap:{},refSwapAttrIds:new Set};let a=!1;const u=(c,f)=>{const h=[];for(const p of c){const[b]=p;if(b==="add-attr"){const[_,T]=p,w=i(T);if(w&&T.id!==w.id){o.attrIdMap[T.id]=w.id,a=!0;continue}if(T["value-type"]==="ref"){const m=s(T);if(m){o.attrIdMap[T.id]=m.id,o.refSwapAttrIds.add(T.id),a=!0;continue}}}if(r&&f&&r>=f&&b==="add-attr"||b==="update-attr"||b==="delete-attr"){a=!0;continue}const y=a?xo(o,p):p;h.push(y)}return a?h:c},d=new Map;for(const[c,f]of n.entries())d.set(c,Object.assign(Object.assign({},f),{"tx-steps":u(f["tx-steps"],f["tx-id"])}));return a?d:n}_rewriteMutationsSorted(e,n){return ai(this._rewriteMutations(e,n).entries())}optimisticAttrs(){var e;const n=[...this.pendingMutations.currentValue.values()].flatMap(a=>a["tx-steps"]),r=new Set(n.filter(([a,u])=>a==="delete-attr").map(([a,u])=>u)),i=[];for(const[a,u]of n)if(a==="add-attr")i.push(u);else if(a==="update-attr"&&u.id&&(!((e=this.attrs)===null||e===void 0)&&e[u.id])){const d=Object.assign(Object.assign({},this.attrs[u.id]),u);i.push(d)}const s=[...Object.values(this.attrs||{}),...i].filter(a=>!r.has(a.id));return Object.fromEntries(s.map(a=>[a.id,a]))}dataForQuery(e){const n=this._errorMessage;if(n)return{error:n};if(!this.querySubs||!this.pendingMutations)return;const r=this.querySubs.version(),i=this.querySubs.currentValue,s=this.pendingMutations.version(),o=this.pendingMutations.currentValue,{q:a,result:u}=i[e]||{};if(!u)return;const d=this._dataForQueryCache[e];if(d&&r===d.querySubVersion&&s===d.pendingMutationsVersion)return d.data;const{store:c,pageInfo:f,aggregate:h,processedTxId:p}=u,b=this._rewriteMutationsSorted(c.attrs,o),y=this._applyOptimisticUpdates(c,b,p),_=jr({store:y,pageInfo:f,aggregate:h},a);return this._dataForQueryCache[e]={querySubVersion:r,pendingMutationsVersion:s,data:_},_}_applyOptimisticUpdates(e,n,r){for(const[i,s]of n)(!s["tx-id"]||r&&s["tx-id"]>r)&&(e=Rs(e,s["tx-steps"]));return e}notifyAll(){Object.keys(this.queryCbs).forEach(e=>{this.notifyOne(e)})}loadedNotifyAll(){this.pendingMutations.isLoading()||this.querySubs.isLoading()||this.notifyAll()}shutdown(){var e;this._log.info("[shutdown]",this.config.appId),this._isShutdown=!0,(e=this._transport)===null||e===void 0||e.close()}_sendMutation(e,n){if(n.error){this._handleMutationError("error",e,{message:n.error.message});return}if(this.status!==ye.AUTHENTICATED){this._finishTransaction("enqueued",e);return}const r=Math.max(6e3,Math.min(this._inFlightMutationEventIds.size+1,this.pendingMutations.currentValue.size+1)*6e3);this._isOnline?(this._trySend(e,n),setTimeout(()=>{this._isOnline&&this._handleMutationError("timeout",e,{message:"transaction timed out"})},r)):this._finishTransaction("enqueued",e)}_flushPendingMessages(){Object.keys(this.queryCbs).map(i=>this.querySubs.currentValue[i]).filter(i=>i).forEach(({eventId:i,q:s})=>{this._trySendAuthed(i,{op:"add-query",q:s})}),Object.values(this.queryOnceDfds).flat().forEach(({eventId:i,q:s})=>{this._trySendAuthed(i,{op:"add-query",q:s})}),this._rewriteMutationsSorted(this.attrs,this.pendingMutations.currentValue).forEach(([i,s])=>{s["tx-id"]||this._sendMutation(i,s)}),this._syncTable.flushPending()}_cleanupPendingMutationsQueries(){let e=Number.MAX_SAFE_INTEGER;for(const{result:n}of Object.values(this.querySubs.currentValue))n!=null&&n.processedTxId&&(e=Math.min(e,n==null?void 0:n.processedTxId));this.pendingMutations.set(n=>{for(const[r,i]of Array.from(n.entries()))i["tx-id"]&&i["tx-id"]<=e&&n.delete(r);return n})}_cleanupPendingMutationsTimeout(){if(this.pendingMutations.currentValue.size<this._pendingMutationCleanupThreshold)return;const e=Date.now();this.pendingMutations.set(n=>{for(const[r,i]of Array.from(n.entries()))i.confirmed&&i.confirmed+this._pendingTxCleanupTimeout<e&&n.delete(r);return n})}_trySendAuthed(...e){this.status===ye.AUTHENTICATED&&this._trySend(...e)}_trySend(e,n,r){if(this._transport.isOpen()){switch(oi[n.op]||this._log.info("[send]",this._transport.id,n.op,n),n.op){case"transact":{this._inFlightMutationEventIds.add(e);break}case"init":this._inFlightMutationEventIds.clear()}this._transport.send(Object.assign({"client-event-id":e},n))}}_startSocket(){if(this._wsOk=null,this._isShutdown){this._log.info("[socket][start]",this.config.appId,"Reactor has been shut down and will not start a new socket");return}if(this._transport&&this._transport.isConnecting()){this._log.info("[socket][start]",this._transport.id,"maintained as current transport, we were still in a connecting state");return}const e=this._transport;this._transport=Va({transportType:this._transportType,appId:this.config.appId,apiURI:this.config.apiURI,wsURI:this.config.websocketURI,EventSourceImpl:this._EventSource}),this._transport.onopen=this._transportOnOpen,this._transport.onmessage=this._transportOnMessage,this._transport.onclose=this._transportOnClose,this._transport.onerror=this._transportOnError,this._log.info("[socket][start]",this._transport.id),e!=null&&e.isOpen()&&(this._log.info("[socket][start]",this._transport.id,"close previous transport id = ",e.id),e.close())}getLocalId(e){return L(this,void 0,void 0,function*(){const n=`localToken_${e}`,r=yield this._persister.getItem(n);if(r)return r;if(this._localIdPromises[n])return this._localIdPromises[n];const i=W();return this._localIdPromises[n]=this._persister.setItem(n,i).then(()=>i),this._localIdPromises[n]})}_replaceUrlAfterOAuth(){if(typeof URL>"u")return;const e=new URL(window.location.href);if(e.searchParams.get(bn)){const n=e.toString();e.searchParams.delete(bn),e.searchParams.delete("code"),e.searchParams.delete("error");const r=e.pathname+(e.searchParams.size?"?"+e.searchParams:"")+e.hash;if(history.replaceState(history.state,"",r),typeof navigation=="object"&&typeof navigation.addEventListener=="function"&&typeof navigation.removeEventListener=="function"){let i=!1;const s=o=>{var a;i||(i=!0,navigation.removeEventListener("navigate",s),!o.userInitiated&&o.navigationType==="replace"&&((a=o.destination)===null||a===void 0?void 0:a.url)===n&&history.replaceState(history.state,"",r))};navigation.addEventListener("navigate",s)}}}_oauthLoginInit(){return L(this,void 0,void 0,function*(){var e,n,r,i;if(typeof window>"u"||typeof window.location>"u"||typeof URLSearchParams>"u")return null;const s=new URLSearchParams(window.location.search);if(!s.get(bn))return null;const o=s.get("error");if(o)return this._replaceUrlAfterOAuth(),{error:{message:o}};const a=s.get("code");if(!a)return null;this._replaceUrlAfterOAuth();try{const u=yield this._getCurrentUser(),d=(u==null?void 0:u.type)==="guest",{user:c}=yield Ur({apiURI:this.config.apiURI,appId:this.config.appId,code:a,refreshToken:d?u.refresh_token:void 0});return this.setCurrentUser(c),null}catch(u){return((e=u==null?void 0:u.body)===null||e===void 0?void 0:e.type)==="record-not-found"&&((r=(n=u==null?void 0:u.body)===null||n===void 0?void 0:n.hint)===null||r===void 0?void 0:r["record-type"])==="app-oauth-code"&&(yield this._hasCurrentUser())?null:{error:{message:((i=u==null?void 0:u.body)===null||i===void 0?void 0:i.message)||"Error logging in."}}}})}_waitForOAuthCallbackResponse(){return L(this,void 0,void 0,function*(){return yield this._oauthCallbackResponse})}__subscribeMutationErrors(e){return this.mutationErrorCbs.push(e),()=>{this.mutationErrorCbs=this.mutationErrorCbs.filter(n=>n!==e)}}subscribeAuth(e){this.authCbs.push(e);const n=this._currentUserCached;n.isLoading||e(this._currentUserCached);let r=!1;return this.getCurrentUser().then(i=>{r||lt(i,n)||e(i)}),()=>{r=!0,this.authCbs=this.authCbs.filter(i=>i!==e)}}getAuth(){return L(this,void 0,void 0,function*(){const{user:e,error:n}=yield this.getCurrentUser();if(n)throw new Pe("Could not get current user: "+n.message);return e})}subscribeConnectionStatus(e){return this.connectionStatusCbs.push(e),()=>{this.connectionStatusCbs=this.connectionStatusCbs.filter(n=>n!==e)}}subscribeAttrs(e){return this.attrsCbs.push(e),this.attrs&&e(this.attrs),()=>{this.attrsCbs=this.attrsCbs.filter(n=>n!==e)}}notifyAuthSubs(e){this.authCbs.forEach(n=>n(e))}notifyMutationErrorSubs(e){this.mutationErrorCbs.forEach(n=>n(e))}notifyAttrsSubs(){if(!this.attrs)return;const e=this.optimisticAttrs();this.attrsCbs.forEach(n=>n(e))}notifyConnectionStatusSubs(e){this.connectionStatusCbs.forEach(n=>n(e))}setCurrentUser(e){return L(this,void 0,void 0,function*(){yield this._persister.setItem(_n,e)})}getCurrentUserCached(){return this._currentUserCached}_getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this._persister.getItem(_n);return typeof e=="string"?JSON.parse(e):e})}getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this._waitForOAuthCallbackResponse();if(e!=null&&e.error){const i={error:e.error,user:void 0};return this._currentUserCached=Object.assign({isLoading:!1},i),i}const r={user:yield this._getCurrentUser(),error:void 0};return this._currentUserCached=Object.assign({isLoading:!1},r),r})}_hasCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this._persister.getItem(_n);return JSON.parse(e)!=null})}changeCurrentUser(e){return L(this,void 0,void 0,function*(){var n;const{user:r}=yield this.getCurrentUser();if(!lt(r,e)){yield this.setCurrentUser(e),this.updateUser(e);try{(n=this._broadcastChannel)===null||n===void 0||n.postMessage({type:"auth"})}catch(i){console.error("Error posting message to broadcast channel",i)}}})}updateUser(e){const n={error:void 0,user:e};this._currentUserCached=Object.assign({isLoading:!1},n),this._dataForQueryCache={},this.querySubs.set(r=>(Object.keys(r).forEach(i=>{delete r[i].result}),r)),this._reconnectTimeoutMs=0,this._transport.close(),this._oauthCallbackResponse=null,this.notifyAuthSubs(n)}sendMagicCode({email:e}){return aa({apiURI:this.config.apiURI,appId:this.config.appId,email:e})}signInWithMagicCode(e){return L(this,arguments,void 0,function*({email:n,code:r}){var i;const s=yield this.getCurrentUser(),o=((i=s==null?void 0:s.user)===null||i===void 0?void 0:i.type)==="guest",a=yield ua({apiURI:this.config.apiURI,appId:this.config.appId,email:n,code:r,refreshToken:o?s.user.refresh_token:void 0});return yield this.changeCurrentUser(a.user),a})}signInWithCustomToken(e){return L(this,void 0,void 0,function*(){const n=yield ca({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:e});return yield this.changeCurrentUser(n.user),n})}signInAsGuest(){return L(this,void 0,void 0,function*(){const e=yield da({apiURI:this.config.apiURI,appId:this.config.appId});return yield this.changeCurrentUser(e.user),e})}potentiallyInvalidateToken(e,n){var r;const i=(r=e==null?void 0:e.user)===null||r===void 0?void 0:r.refresh_token;if(!i)return;if(n.invalidateToken===!1){this._log.info("[auth-invalidate] skipped invalidateToken");return}la({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:i}).then(()=>{this._log.info("[auth-invalidate] completed invalidateToken")}).catch(o=>{})}signOut(e){return L(this,void 0,void 0,function*(){const n=yield this.getCurrentUser();this.potentiallyInvalidateToken(n,e),yield this.changeCurrentUser(null)})}createAuthorizationURL({clientName:e,redirectURL:n}){const{apiURI:r,appId:i}=this.config;return`${r}/runtime/oauth/start?app_id=${i}&client_name=${e}&redirect_uri=${n}`}exchangeCodeForToken(e){return L(this,arguments,void 0,function*({code:n,codeVerifier:r}){var i;const s=yield this.getCurrentUser(),o=((i=s==null?void 0:s.user)===null||i===void 0?void 0:i.type)==="guest",a=yield Ur({apiURI:this.config.apiURI,appId:this.config.appId,code:n,codeVerifier:r,refreshToken:o?s.user.refresh_token:void 0});return yield this.changeCurrentUser(a.user),a})}issuerURI(){const{apiURI:e,appId:n}=this.config;return`${e}/runtime/${n}`}signInWithIdToken(e){return L(this,arguments,void 0,function*({idToken:n,clientName:r,nonce:i}){var s;const o=yield this.getCurrentUser(),a=(s=o==null?void 0:o.user)===null||s===void 0?void 0:s.refresh_token,u=yield fa({apiURI:this.config.apiURI,appId:this.config.appId,idToken:n,clientName:r,nonce:i,refreshToken:a});return yield this.changeCurrentUser(u.user),u})}joinRoom(e,n){let r=!1;this._rooms[e]||(r=!0,this._rooms[e]={isConnected:!1,error:void 0}),this._presence[e]=this._presence[e]||{};const i=this._presence[e].result;return n&&!i&&(this._presence[e].result=this._presence[e].result||{},this._presence[e].result.user=n,this._notifyPresenceSubs(e)),r&&this._tryJoinRoom(e,n),()=>{this._cleanupRoom(e)}}_cleanupRoom(e){var n,r,i,s;if(!(!((r=(n=this._presence[e])===null||n===void 0?void 0:n.handlers)===null||r===void 0)&&r.length)&&!Object.keys((i=this._broadcastSubs[e])!==null&&i!==void 0?i:{}).length){const o=(s=this._rooms[e])===null||s===void 0?void 0:s.isConnected;delete this._rooms[e],delete this._presence[e],delete this._broadcastSubs[e],o?this._tryLeaveRoom(e):this._roomsPendingLeave[e]=!0}}getPresence(e,n,r={}){const i=this._rooms[n],s=this._presence[n];return!i||!s||!s.result?null:Object.assign(Object.assign({},ga(s.result,r,this._sessionId)),{isLoading:!i.isConnected,error:i.error})}publishPresence(e,n,r){const i=this._rooms[n],s=this._presence[n];if(!i||!s)return;s.result=s.result||{};const o=Object.assign(Object.assign({},s.result.user),r);s.result.user=o,i.isConnected&&(this._trySetPresence(n,o),this._notifyPresenceSubs(n))}_trySetPresence(e,n){this._trySendAuthed(W(),{op:"set-presence","room-id":e,data:n})}_tryJoinRoom(e,n){this._trySendAuthed(W(),{op:"join-room","room-id":e,data:n}),delete this._roomsPendingLeave[e]}_tryLeaveRoom(e){this._trySendAuthed(W(),{op:"leave-room","room-id":e})}_trySetRoomConnected(e,n){const r=this._rooms[e];r&&(r.isConnected=n)}subscribePresence(e,n,r,i){const s=this.joinRoom(n,r.initialPresence||r.initialData),o=Object.assign(Object.assign({},r),{roomId:n,cb:i,prev:null});return this._presence[n]=this._presence[n]||{},this._presence[n].handlers=this._presence[n].handlers||[],this._presence[n].handlers.push(o),this._notifyPresenceSub(n,o),()=>{var a,u,d;this._presence[n].handlers=(d=(u=(a=this._presence[n])===null||a===void 0?void 0:a.handlers)===null||u===void 0?void 0:u.filter(c=>c!==o))!==null&&d!==void 0?d:[],s()}}_notifyPresenceSubs(e){var n,r;(r=(n=this._presence[e])===null||n===void 0?void 0:n.handlers)===null||r===void 0||r.forEach(i=>{this._notifyPresenceSub(e,i)})}_notifyPresenceSub(e,n){const r=this.getPresence("",e,n);r&&(n.prev&&!Ta(r,n.prev)||(n.prev=r,n.cb(r)))}_patchPresencePeers(e,n){var r,i,s;const o=((i=(r=this._presence[e])===null||r===void 0?void 0:r.result)===null||i===void 0?void 0:i.peers)||{};let a=Object.fromEntries(Object.entries(o).map(([d,c])=>[d,{data:c}]));(s=this._presence[e])===null||s===void 0||s.result;const u=Bt(a,d=>{for(let[c,f,h]of n)switch(f){case"+":ns(d,c,h);break;case"r":rr(d,c,h);break;case"-":ir(d,c);break}delete d[this._sessionId]});this._setPresencePeers(e,u)}_setPresencePeers(e,n){const r=Object.assign({},n);delete r[this._sessionId];const i=Object.fromEntries(Object.entries(r).map(([s,o])=>[s,o.data]));this._presence=Bt(this._presence,s=>{rr(s,[e,"result","peers"],i)})}publishTopic({roomType:e,roomId:n,topic:r,data:i}){var s;const o=this._rooms[n];if(o){if(!o.isConnected){this._broadcastQueue[n]=(s=this._broadcastQueue[n])!==null&&s!==void 0?s:[],this._broadcastQueue[n].push({topic:r,roomType:e,data:i});return}this._tryBroadcast(n,e,r,i)}}_tryBroadcast(e,n,r,i){this._trySendAuthed(W(),{op:"client-broadcast","room-id":e,roomType:n,topic:r,data:i})}subscribeTopic(e,n,r){const i=this.joinRoom(e);return this._broadcastSubs[e]=this._broadcastSubs[e]||{},this._broadcastSubs[e][n]=this._broadcastSubs[e][n]||[],this._broadcastSubs[e][n].push(r),this._presence[e]=this._presence[e]||{},()=>{this._broadcastSubs[e][n]=this._broadcastSubs[e][n].filter(s=>s!==r),this._broadcastSubs[e][n].length||delete this._broadcastSubs[e][n],i()}}_notifyBroadcastSubs(e,n,r){var i,s,o;(o=(s=(i=this._broadcastSubs)===null||i===void 0?void 0:i[e])===null||s===void 0?void 0:s[n])===null||o===void 0||o.forEach(a=>{var u,d,c,f,h,p;const b=(u=r.data)===null||u===void 0?void 0:u.data,y=r.data["peer-id"]===this._sessionId?(c=(d=this._presence[e])===null||d===void 0?void 0:d.result)===null||c===void 0?void 0:c.user:(p=(h=(f=this._presence[e])===null||f===void 0?void 0:f.result)===null||h===void 0?void 0:h.peers)===null||p===void 0?void 0:p[r.data["peer-id"]];return a(b,y)})}uploadFile(e,n,r){return L(this,void 0,void 0,function*(){var i;const s=yield this.getCurrentUser(),o=(i=s==null?void 0:s.user)===null||i===void 0?void 0:i.refresh_token;return ha(Object.assign(Object.assign({},r),{apiURI:this.config.apiURI,appId:this.config.appId,path:e,file:n,refreshToken:o}))})}deleteFile(e){return L(this,void 0,void 0,function*(){var n;const r=yield this.getCurrentUser(),i=(n=r==null?void 0:r.user)===null||n===void 0?void 0:n.refresh_token;return yield pa({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}upload(e,n){return L(this,void 0,void 0,function*(){var r;const i=yield this.getCurrentUser(),s=(r=i==null?void 0:i.user)===null||r===void 0?void 0:r.refresh_token,o=e||n.name,a=yield ya({apiURI:this.config.apiURI,appId:this.config.appId,fileName:o,refreshToken:s});return yield ba(a,n)})}getDownloadUrl(e){return L(this,void 0,void 0,function*(){var n;const r=yield this.getCurrentUser(),i=(n=r==null?void 0:r.user)===null||n===void 0?void 0:n.refresh_token;return yield _a({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}}function Ga(t,e){return new mt(ui(t,e),e,void 0)}function Qa(t){return new wt(t,{})}function Ha(){return new H("string",!0,!1)}function Ya(){return new H("number",!0,!1)}function Ja(){return new H("boolean",!0,!1)}function Za(){return new H("date",!0,!1)}function Xa(){return new H("json",!0,!1)}function eu(){return new H("json",!0,!1)}function ui(t,e){var n,r,i,s;const o={fwd:{},rev:{}};for(const u of Object.values(e))(n=o.fwd)[r=u.forward.on]||(n[r]={}),(i=o.rev)[s=u.reverse.on]||(i[s]={}),o.fwd[u.forward.on][u.forward.label]={entityName:u.reverse.on,cardinality:u.forward.has},o.rev[u.reverse.on][u.reverse.label]={entityName:u.forward.on,cardinality:u.reverse.has};return Object.fromEntries(Object.entries(t).map(([u,d])=>[u,new wt(d.attrs,Object.assign(Object.assign({},o.fwd[u]),o.rev[u]))]))}function tu({entities:t,links:e,rooms:n}){const r=e??{},i=n??{};return new mt(ui(t,r),r,i)}const nu={graph:Ga,schema:tu,entity:Qa,string:Ha,number:Ya,boolean:Ja,date:Za,json:Xa,any:eu};let St;function ru(t,e){St==null||St.dispose();const n=cu(e),r=ou(e,a),i=su(iu(t));function s(c){var f;c.source===i.element.contentWindow&&((f=c.data)===null||f===void 0?void 0:f.type)==="close"&&n.isVisible()&&a()}function o(c){const f=c.shiftKey&&c.ctrlKey&&c.key==="0",h=c.key==="Escape"||c.key==="Esc";(f||h&&n.isVisible())&&a()}function a(){n.isVisible()?n.element.style.display="none":(n.element.style.display="block",n.element.contains(i.element)||n.element.appendChild(i.element))}function u(){n.element.remove(),r.element.remove(),removeEventListener("keydown",o),removeEventListener("message",s)}function d(){document.body.appendChild(n.element),document.body.appendChild(r.element),addEventListener("keydown",o),addEventListener("message",s),St={dispose:u}}return d()}function iu(t){return`${fn||Fr?"http://localhost:3000":"https://instantdb.com"}/_devtool?appId=${t}`}function su(t){const e=document.createElement("iframe");return e.src=t,e.className="instant-devtool-iframe",Object.assign(e.style,{width:"100%",height:"100%",backgroundColor:"white",border:"none"}),{element:e}}function ou(t,e){const n=`
1
+ (function(G,k){typeof exports=="object"&&typeof module<"u"?k(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],k):(G=typeof globalThis<"u"?globalThis:G||self,k(G.instantReact={},G.React))})(this,function(G,k){"use strict";function z(t){if(typeof t=="number")return(Math.abs(t*2654435761)>>>0).toString(16);if(typeof t=="boolean")return t?"1":"0";if(t===null)return"null";if(t===void 0)return"undefined";if(typeof t=="string"){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24),e=e>>>0;return e.toString(16)}if(Array.isArray(t)){let e=2166136261;for(let n=0;n<t.length;n++){e^=(n+1)*2654435761;const r=z(t[n]);for(let i=0;i<r.length;i++)e^=r.charCodeAt(i),e*=16777619,e=e>>>0}return e.toString(16)}if(typeof t=="object"){let e=2166136261;const n=Object.keys(t).sort();for(let r=0;r<n.length;r++){const i=n[r],s=z(i);e^=parseInt(s,16),e*=16777619,e=e>>>0;const o=z(t[i]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return z(String(t))}const $={Remove:"remove",Replace:"replace",Add:"add"},zn=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Ki=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),ut=Symbol.iterator,re={mutable:"mutable",immutable:"immutable"},Rt={};function Ve(t,e){return t instanceof Map?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Kn(t,e){if(e in t){let n=Reflect.getPrototypeOf(t);for(;n;){const r=Reflect.getOwnPropertyDescriptor(n,e);if(r)return r;n=Reflect.getPrototypeOf(n)}}}function xt(t){return Object.getPrototypeOf(t)===Set.prototype}function Dt(t){return Object.getPrototypeOf(t)===Map.prototype}function ie(t){var e;return(e=t.copy)!==null&&e!==void 0?e:t.original}function ge(t){return!!A(t)}function A(t){return typeof t!="object"?null:t==null?void 0:t[zn]}function $t(t){var e;const n=A(t);return n?(e=n.copy)!==null&&e!==void 0?e:n.original:t}function ae(t,e){if(!t||typeof t!="object")return!1;let n;return Object.getPrototypeOf(t)===Object.prototype||Array.isArray(t)||t instanceof Map||t instanceof Set||!!(e!=null&&e.mark)&&((n=e.mark(t,re))===re.immutable||typeof n=="function")}function qn(t,e=[]){if(Object.hasOwnProperty.call(t,"key")){const n=t.parent.copy,r=A(he(n,t.key));if(r!==null&&(r==null?void 0:r.original)!==t.original)return null;const i=t.parent.type===3,s=i?Array.from(t.parent.setMap.keys()).indexOf(t.key):t.key;if(!(i&&n.size>s||Ve(n,s)))return null;e.push(s)}if(t.parent)return qn(t.parent,e);e.reverse();try{qi(t.copy,e)}catch{return null}return e}function Te(t){return Array.isArray(t)?1:t instanceof Map?2:t instanceof Set?3:0}function he(t,e){return Te(t)===2?t.get(e):t[e]}function ze(t,e,n){Te(t)===2?t.set(e,n):t[e]=n}function Ut(t,e){const n=A(t);return(n?ie(n):t)[e]}function pe(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function Lt(t){if(t)for(;t.finalities.revoke.length>0;)t.finalities.revoke.pop()()}function we(t,e){return e?t:[""].concat(t).map(n=>{const r=`${n}`;return r.indexOf("/")===-1&&r.indexOf("~")===-1?r:r.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")}function qi(t,e){for(let n=0;n<e.length-1;n+=1){const r=e[n];if(t=he(Te(t)===3?Array.from(t):t,r),typeof t!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return t}function Bi(t){const e=Object.create(Object.getPrototypeOf(t));return Reflect.ownKeys(t).forEach(n=>{let r=Reflect.getOwnPropertyDescriptor(t,n);if(r.enumerable&&r.configurable&&r.writable){e[n]=t[n];return}r.writable||(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(r={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[n]}),Reflect.defineProperty(e,n,r)}),e}const Gi=Object.prototype.propertyIsEnumerable;function Bn(t,e){let n;if(Array.isArray(t))return Array.prototype.concat.call(t);if(t instanceof Set){if(!xt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t.values())}return Set.prototype.difference?Set.prototype.difference.call(t,new Set):new Set(t.values())}else if(t instanceof Map){if(!Dt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t)}return new Map(t)}else if(e!=null&&e.mark&&(n=e.mark(t,re),n!==void 0)&&n!==re.mutable){if(n===re.immutable)return Bi(t);if(typeof n=="function"){if(e.enablePatches||e.enableAutoFreeze)throw new Error("You can't use mark and patches or auto freeze together.");return n()}throw new Error(`Unsupported mark result: ${n}`)}else if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype){const r={};return Object.keys(t).forEach(i=>{r[i]=t[i]}),Object.getOwnPropertySymbols(t).forEach(i=>{Gi.call(t,i)&&(r[i]=t[i])}),r}else throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function Q(t){t.copy||(t.copy=Bn(t.original,t.options))}function Ke(t){if(!ae(t))return $t(t);if(Array.isArray(t))return t.map(Ke);if(t instanceof Map){const n=Array.from(t.entries()).map(([r,i])=>[r,Ke(i)]);if(!Dt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Map(n)}if(t instanceof Set){const n=Array.from(t).map(Ke);if(!xt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Set(n)}const e=Object.create(Object.getPrototypeOf(t));for(const n in t)e[n]=Ke(t[n]);return e}function ct(t){return ge(t)?Ke(t):t}function fe(t){var e;t.assignedMap=(e=t.assignedMap)!==null&&e!==void 0?e:new Map,t.operated||(t.operated=!0,t.parent&&fe(t.parent))}function Gn(){throw new Error("Cannot modify frozen object")}function Ae(t,e,n,r,i){{n=n??new WeakMap,r=r??[],i=i??[];const o=n.has(t)?n.get(t):t;if(r.length>0){const a=r.indexOf(o);if(o&&typeof o=="object"&&a!==-1)throw r[0]===o?new Error("Forbids circular reference"):new Error(`Forbids circular reference: ~/${i.slice(0,a).map((u,d)=>{if(typeof u=="symbol")return`[${u.toString()}]`;const c=r[d];return typeof u=="object"&&(c instanceof Map||c instanceof Set)?Array.from(c.keys()).indexOf(u):u}).join("/")}`);r.push(o),i.push(e)}else r.push(o)}if(Object.isFrozen(t)||ge(t)){r.pop(),i.pop();return}switch(Te(t)){case 2:for(const[a,u]of t)Ae(a,a,n,r,i),Ae(u,a,n,r,i);t.set=t.clear=t.delete=Gn;break;case 3:for(const a of t)Ae(a,a,n,r,i);t.add=t.clear=t.delete=Gn;break;case 1:Object.freeze(t);let o=0;for(const a of t)Ae(a,o,n,r,i),o+=1;break;default:Object.freeze(t),Object.keys(t).forEach(a=>{const u=t[a];Ae(u,a,n,r,i)})}r.pop(),i.pop()}function Ft(t,e){const n=Te(t);if(n===0)Reflect.ownKeys(t).forEach(r=>{e(r,t[r],t)});else if(n===1){let r=0;for(const i of t)e(r,i,t),r+=1}else t.forEach((r,i)=>e(i,r,t))}function Qn(t,e,n){if(ge(t)||!ae(t,n)||e.has(t)||Object.isFrozen(t))return;const r=t instanceof Set,i=r?new Map:void 0;if(e.add(t),Ft(t,(s,o)=>{var a;if(ge(o)){const u=A(o);Q(u);const d=!((a=u.assignedMap)===null||a===void 0)&&a.size||u.operated?u.copy:u.original;ze(r?i:t,s,d)}else Qn(o,e,n)}),i){const s=t,o=Array.from(s);s.clear(),o.forEach(a=>{s.add(i.has(a)?i.get(a):a)})}}function Qi(t,e){const n=t.type===3?t.setMap:t.copy;t.finalities.revoke.length>1&&t.assignedMap.get(e)&&n&&Qn(he(n,e),t.finalities.handledSet,t.options)}function Nt(t){t.type===3&&t.copy&&(t.copy.clear(),t.setMap.forEach(e=>{t.copy.add($t(e))}))}function Wt(t,e,n,r){if(t.operated&&t.assignedMap&&t.assignedMap.size>0&&!t.finalized){if(n&&r){const s=qn(t);s&&e(t,s,n,r)}t.finalized=!0}}function Vt(t,e,n,r){const i=A(n);i&&(i.callbacks||(i.callbacks=[]),i.callbacks.push((s,o)=>{var a;const u=t.type===3?t.setMap:t.copy;if(pe(he(u,e),n)){let d=i.original;i.copy&&(d=i.copy),Nt(t),Wt(t,r,s,o),t.options.enableAutoFreeze&&(t.options.updatedValues=(a=t.options.updatedValues)!==null&&a!==void 0?a:new WeakMap,t.options.updatedValues.set(d,i.original)),ze(u,e,d)}}),t.options.enableAutoFreeze&&i.finalities!==t.finalities&&(t.options.enableAutoFreeze=!1)),ae(n,t.options)&&t.finalities.draft.push(()=>{const s=t.type===3?t.setMap:t.copy;pe(he(s,e),n)&&Qi(t,e)})}function Hi(t,e,n,r,i){let{original:s,assignedMap:o,options:a}=t,u=t.copy;u.length<s.length&&([s,u]=[u,s],[n,r]=[r,n]);for(let d=0;d<s.length;d+=1)if(o.get(d.toString())&&u[d]!==s[d]){const c=e.concat([d]),f=we(c,i);n.push({op:$.Replace,path:f,value:ct(u[d])}),r.push({op:$.Replace,path:f,value:ct(s[d])})}for(let d=s.length;d<u.length;d+=1){const c=e.concat([d]),f=we(c,i);n.push({op:$.Add,path:f,value:ct(u[d])})}if(s.length<u.length){const{arrayLengthAssignment:d=!0}=a.enablePatches;if(d){const c=e.concat(["length"]),f=we(c,i);r.push({op:$.Replace,path:f,value:s.length})}else for(let c=u.length;s.length<c;c-=1){const f=e.concat([c-1]),h=we(f,i);r.push({op:$.Remove,path:h})}}}function Yi({original:t,copy:e,assignedMap:n},r,i,s,o){n.forEach((a,u)=>{const d=he(t,u),c=ct(he(e,u)),f=a?Ve(t,u)?$.Replace:$.Add:$.Remove;if(pe(d,c)&&f===$.Replace)return;const h=r.concat(u),p=we(h,o);i.push(f===$.Remove?{op:f,path:p}:{op:f,path:p,value:c}),s.push(f===$.Add?{op:$.Remove,path:p}:f===$.Remove?{op:$.Add,path:p,value:d}:{op:$.Replace,path:p,value:d})})}function Ji({original:t,copy:e},n,r,i,s){let o=0;t.forEach(a=>{if(!e.has(a)){const u=n.concat([o]),d=we(u,s);r.push({op:$.Remove,path:d,value:a}),i.unshift({op:$.Add,path:d,value:a})}o+=1}),o=0,e.forEach(a=>{if(!t.has(a)){const u=n.concat([o]),d=we(u,s);r.push({op:$.Add,path:d,value:a}),i.unshift({op:$.Remove,path:d,value:a})}o+=1})}function qe(t,e,n,r){const{pathAsArray:i=!0}=t.options.enablePatches;switch(t.type){case 0:case 2:return Yi(t,e,n,r,i);case 1:return Hi(t,e,n,r,i);case 3:return Ji(t,e,n,r,i)}}const dt=(t,e,n=!1)=>{if(typeof t=="object"&&t!==null&&(!ae(t,e)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},zt={get size(){return ie(A(this)).size},has(t){return ie(A(this)).has(t)},set(t,e){const n=A(this),r=ie(n);return(!r.has(t)||!pe(r.get(t),e))&&(Q(n),fe(n),n.assignedMap.set(t,!0),n.copy.set(t,e),Vt(n,t,e,qe)),this},delete(t){if(!this.has(t))return!1;const e=A(this);return Q(e),fe(e),e.original.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.copy.delete(t),!0},clear(){const t=A(this);if(this.size){Q(t),fe(t),t.assignedMap=new Map;for(const[e]of t.original)t.assignedMap.set(e,!1);t.copy.clear()}},forEach(t,e){const n=A(this);ie(n).forEach((r,i)=>{t.call(e,this.get(i),i,this)})},get(t){var e,n;const r=A(this),i=ie(r).get(t),s=((n=(e=r.options).mark)===null||n===void 0?void 0:n.call(e,i,re))===re.mutable;if(r.options.strict&&dt(i,r.options,s),s||r.finalized||!ae(i,r.options)||i!==r.original.get(t))return i;const o=Rt.createDraft({original:i,parentDraft:r,key:t,finalities:r.finalities,options:r.options});return Q(r),r.copy.set(t,o),o},keys(){return ie(A(this)).keys()},values(){const t=this.keys();return{[ut]:()=>this.values(),next:()=>{const e=t.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const t=this.keys();return{[ut]:()=>this.entries(),next:()=>{const e=t.next();if(e.done)return e;const n=this.get(e.value);return{done:!1,value:[e.value,n]}}}},[ut](){return this.entries()}},Zi=Reflect.ownKeys(zt),Hn=(t,e,{isValuesIterator:n})=>()=>{var r,i;const s=e.next();if(s.done)return s;const o=s.value;let a=t.setMap.get(o);const u=A(a),d=((i=(r=t.options).mark)===null||i===void 0?void 0:i.call(r,a,re))===re.mutable;if(t.options.strict&&dt(o,t.options,d),!d&&!u&&ae(o,t.options)&&!t.finalized&&t.original.has(o)){const c=Rt.createDraft({original:o,parentDraft:t,key:o,finalities:t.finalities,options:t.options});t.setMap.set(o,c),a=c}else u&&(a=u.proxy);return{done:!1,value:n?a:[a,a]}},ft={get size(){return A(this).setMap.size},has(t){const e=A(this);if(e.setMap.has(t))return!0;Q(e);const n=A(t);return!!(n&&e.setMap.has(n.original))},add(t){const e=A(this);return this.has(t)||(Q(e),fe(e),e.assignedMap.set(t,!0),e.setMap.set(t,t),Vt(e,t,t,qe)),this},delete(t){if(!this.has(t))return!1;const e=A(this);Q(e),fe(e);const n=A(t);return n&&e.setMap.has(n.original)?(e.assignedMap.set(n.original,!1),e.setMap.delete(n.original)):(!n&&e.setMap.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.setMap.delete(t))},clear(){if(!this.size)return;const t=A(this);Q(t),fe(t);for(const e of t.original)t.assignedMap.set(e,!1);t.setMap.clear()},values(){const t=A(this);Q(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:Hn(t,e,{isValuesIterator:!0})}},entries(){const t=A(this);Q(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:Hn(t,e,{isValuesIterator:!1})}},keys(){return this.values()},[ut](){return this.values()},forEach(t,e){const n=this.values();let r=n.next();for(;!r.done;)t.call(e,r.value,r.value,this),r=n.next()}};Set.prototype.difference&&Object.assign(ft,{intersection(t){return Set.prototype.intersection.call(new Set(this.values()),t)},union(t){return Set.prototype.union.call(new Set(this.values()),t)},difference(t){return Set.prototype.difference.call(new Set(this.values()),t)},symmetricDifference(t){return Set.prototype.symmetricDifference.call(new Set(this.values()),t)},isSubsetOf(t){return Set.prototype.isSubsetOf.call(new Set(this.values()),t)},isSupersetOf(t){return Set.prototype.isSupersetOf.call(new Set(this.values()),t)},isDisjointFrom(t){return Set.prototype.isDisjointFrom.call(new Set(this.values()),t)}});const Xi=Reflect.ownKeys(ft),Yn=new WeakSet,Jn={get(t,e,n){var r,i;const s=(r=t.copy)===null||r===void 0?void 0:r[e];if(s&&Yn.has(s))return s;if(e===zn)return t;let o;if(t.options.mark){const d=e==="size"&&(t.original instanceof Map||t.original instanceof Set)?Reflect.get(t.original,e):Reflect.get(t.original,e,n);if(o=t.options.mark(d,re),o===re.mutable)return t.options.strict&&dt(d,t.options,!0),d}const a=ie(t);if(a instanceof Map&&Zi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(zt,"size").get.call(t.proxy);const d=zt[e];if(d)return d.bind(t.proxy)}if(a instanceof Set&&Xi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(ft,"size").get.call(t.proxy);const d=ft[e];if(d)return d.bind(t.proxy)}if(!Ve(a,e)){const d=Kn(a,e);return d?"value"in d?d.value:(i=d.get)===null||i===void 0?void 0:i.call(t.proxy):void 0}const u=a[e];if(t.options.strict&&dt(u,t.options),t.finalized||!ae(u,t.options))return u;if(u===Ut(t.original,e)){if(Q(t),t.copy[e]=Kt({original:t.original[e],parentDraft:t,key:t.type===1?Number(e):e,finalities:t.finalities,options:t.options}),typeof o=="function"){const d=A(t.copy[e]);return Q(d),fe(d),d.copy}return t.copy[e]}return u},set(t,e,n){var r;if(t.type===3||t.type===2)throw new Error("Map/Set draft does not support any property assignment.");let i;if(t.type===1&&e!=="length"&&!(Number.isInteger(i=Number(e))&&i>=0&&(e===0||i===0||String(i)===String(e))))throw new Error("Only supports setting array indices and the 'length' property.");const s=Kn(ie(t),e);if(s!=null&&s.set)return s.set.call(t.proxy,n),!0;const o=Ut(ie(t),e),a=A(o);return a&&pe(a.original,n)?(t.copy[e]=n,t.assignedMap=(r=t.assignedMap)!==null&&r!==void 0?r:new Map,t.assignedMap.set(e,!1),!0):(pe(n,o)&&(n!==void 0||Ve(t.original,e))||(Q(t),fe(t),Ve(t.original,e)&&pe(n,t.original[e])?t.assignedMap.delete(e):t.assignedMap.set(e,!0),t.copy[e]=n,Vt(t,e,n,qe)),!0)},has(t,e){return e in ie(t)},ownKeys(t){return Reflect.ownKeys(ie(t))},getOwnPropertyDescriptor(t,e){const n=ie(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.type!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},getPrototypeOf(t){return Reflect.getPrototypeOf(t.original)},setPrototypeOf(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty(t,e){var n;return t.type===1?Jn.set.call(this,t,e,void 0,t.proxy):(Ut(t.original,e)!==void 0||e in t.original?(Q(t),fe(t),t.assignedMap.set(e,!1)):(t.assignedMap=(n=t.assignedMap)!==null&&n!==void 0?n:new Map,t.assignedMap.delete(e)),t.copy&&delete t.copy[e],!0)}};function Kt(t){const{original:e,parentDraft:n,key:r,finalities:i,options:s}=t,o=Te(e),a={type:o,finalized:!1,parent:n,original:e,copy:null,proxy:null,finalities:i,options:s,setMap:o===3?new Map(e.entries()):void 0};(r||"key"in t)&&(a.key=r);const{proxy:u,revoke:d}=Proxy.revocable(o===1?Object.assign([],a):a,Jn);if(i.revoke.push(d),Yn.add(u),a.proxy=u,n){const c=n;c.finalities.draft.push((f,h)=>{var p,b;const y=A(u);let _=c.type===3?c.setMap:c.copy;const T=he(_,r),w=A(T);if(w){let m=w.original;w.operated&&(m=$t(T)),Nt(w),Wt(w,qe,f,h),c.options.enableAutoFreeze&&(c.options.updatedValues=(p=c.options.updatedValues)!==null&&p!==void 0?p:new WeakMap,c.options.updatedValues.set(m,w.original)),ze(_,r,m)}(b=y.callbacks)===null||b===void 0||b.forEach(m=>{m(f,h)})})}else{const c=A(u);c.finalities.draft.push((f,h)=>{Nt(c),Wt(c,qe,f,h)})}return u}Rt.createDraft=Kt;function es(t,e,n,r,i){var s;const o=A(t),a=(s=o==null?void 0:o.original)!==null&&s!==void 0?s:t,u=!!e.length;if(o!=null&&o.operated)for(;o.finalities.draft.length>0;)o.finalities.draft.pop()(n,r);const d=u?e[0]:o?o.operated?o.copy:o.original:t;return o&&Lt(o),i&&Ae(d,d,o==null?void 0:o.options.updatedValues),[d,n&&u?[{op:$.Replace,path:[],value:e[0]}]:n,r&&u?[{op:$.Replace,path:[],value:a}]:r]}function ts(t,e){var n;const r={draft:[],revoke:[],handledSet:new WeakSet};let i,s;e.enablePatches&&(i=[],s=[]);const a=((n=e.mark)===null||n===void 0?void 0:n.call(e,t,re))===re.mutable||!ae(t,e)?t:Kt({original:t,parentDraft:null,finalities:r,options:e});return[a,(u=[])=>{const[d,c,f]=es(a,u,i,s,e.enableAutoFreeze);return e.enablePatches?[d,c,f]:d}]}function qt(t){const{rootDraft:e,value:n,useRawReturn:r=!1,isRoot:i=!0}=t;Ft(n,(s,o,a)=>{const u=A(o);if(u&&e&&u.finalities===e.finalities){t.isContainDraft=!0;const d=u.original;if(a instanceof Set){const c=Array.from(a);a.clear(),c.forEach(f=>a.add(s===f?d:f))}else ze(a,s,d)}else typeof o=="object"&&o!==null&&(t.value=o,t.isRoot=!1,qt(t))}),i&&(t.isContainDraft||console.warn("The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance."),r&&console.warn("The return value contains drafts, please don't use 'rawReturn()' to wrap the return value."))}function Zn(t){var e;const n=A(t);if(!ae(t,n==null?void 0:n.options))return t;const r=Te(t);if(n&&!n.operated)return n.original;let i;function s(){i=r===2?Dt(t)?new Map(t):new(Object.getPrototypeOf(t)).constructor(t):r===3?Array.from(n.setMap.values()):Bn(t,n==null?void 0:n.options)}if(n){n.finalized=!0;try{s()}finally{n.finalized=!1}}else i=t;if(Ft(i,(o,a)=>{if(n&&pe(he(n.original,o),a))return;const u=Zn(a);u!==a&&(i===t&&s(),ze(i,o,u))}),r===3){const o=(e=n==null?void 0:n.original)!==null&&e!==void 0?e:i;return xt(o)?new Set(i):new(Object.getPrototypeOf(o)).constructor(i)}return i}function Xn(t){if(!ge(t))throw new Error(`current() is only used for Draft, parameter: ${t}`);return Zn(t)}const Bt=(t=>function e(n,r,i){var s,o,a;if(typeof n=="function"&&typeof r!="function")return function(v,...R){return e(v,F=>n.call(this,F,...R),r)};const u=n,d=r;let c=i;if(typeof r!="function"&&(c=r),c!==void 0&&Object.prototype.toString.call(c)!=="[object Object]")throw new Error(`Invalid options: ${c}, 'options' should be an object.`);c=Object.assign(Object.assign({},t),c);const f=ge(u)?Xn(u):u,h=Array.isArray(c.mark)?(v,R)=>{for(const F of c.mark){if(typeof F!="function")throw new Error(`Invalid mark: ${F}, 'mark' should be a function.`);const Y=F(v,R);if(Y)return Y}}:c.mark,p=(s=c.enablePatches)!==null&&s!==void 0?s:!1,b=(o=c.strict)!==null&&o!==void 0?o:!1,_={enableAutoFreeze:(a=c.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:h,strict:b,enablePatches:p};if(!ae(f,_)&&typeof f=="object"&&f!==null)throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");const[T,w]=ts(f,_);if(typeof r!="function"){if(!ae(f,_))throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");return[T,w]}let m;try{m=d(T)}catch(v){throw Lt(A(T)),v}const I=v=>{const R=A(T);if(!ge(v)){if(v!==void 0&&!pe(v,T)&&(R!=null&&R.operated))throw new Error("Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.");const Y=v==null?void 0:v[Ki];if(Y){const st=Y[0];return _.strict&&typeof v=="object"&&v!==null&&qt({rootDraft:R,value:v,useRawReturn:!0}),w([st])}if(v!==void 0)return typeof v=="object"&&v!==null&&qt({rootDraft:R,value:v}),w([v])}if(v===T||v===void 0)return w([]);const F=A(v);if(_===F.options){if(F.operated)throw new Error("Cannot return a modified child draft.");return w([Xn(v)])}return w([v])};return m instanceof Promise?m.then(I,v=>{throw Lt(A(T)),v}):I(m)})();Object.prototype.constructor.toString();function er(t,e){const n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&Object.keys(t).every(i=>e.hasOwnProperty(i))}function tr(t,e){return Object.keys(t).length===Object.keys(e).length&&Object.keys(t).every(n=>e.hasOwnProperty(n)&&t[n]===e[n])}function lt(t,e){return typeof t!="object"||typeof e!="object"||t===null||e===null?t===e:er(t,e)?Object.keys(t).every(n=>lt(t[n],e[n])):!1}function Gt(t){if(!Be(t))return t;const e={};for(const[n,r]of Object.entries(t))r!==void 0&&(e[n]=r);return e}function nr(t,e){if(!Be(t)||!Be(e))return e;const n=Object.assign({},t);for(const r of Object.keys(e)){if(e[r]===void 0)continue;if(e[r]===null){delete n[r];continue}const i=Be(t[r])&&Be(e[r]);n[r]=i?nr(t[r],e[r]):e[r]}return n}function Be(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ns(t,e,n){if(!t||e.length===0)return;let r=t||{};for(let s=0;s<e.length-1;s++){const o=e[s];(!(o in r)||typeof r[o]!="object")&&(r[o]=typeof e[s+1]=="number"?[]:{}),r=r[o]}const i=e[e.length-1];Array.isArray(r)&&typeof i=="number"?r.splice(i,0,n):r[i]=n}function rr(t,e,n){if(!t||e.length===0)return;let r=t||{};for(let i=0;i<e.length-1;i++){const s=e[i];(!(s in r)||typeof r[s]!="object")&&(r[s]=typeof e[i+1]=="number"?[]:{}),r=r[s]}r[e[e.length-1]]=n}function ir(t,e){if(!t||e.length===0)return;const[n,...r]=e;if(n in t){if(r.length===0){Array.isArray(t)?t.splice(n,1):delete t[n];return}ir(t[n],r),rs(t[n])&&delete t[n]}}function rs(t){return t&&Object.keys(t).length===0}const sr=/ZULU|YEKT|YEKST|YAPT|YAKT|YAKST|XJT|WGT|WGST|WFT|WETDST|WET|WDT|WAT|WAST|WAKT|WADT|VUT|VOLT|VLAT|VLAST|VET|UZT|UZST|UYT|UYST|UTC|UT|ULAT|ULAST|UCT|TVT|TRUT|TOT|TMT|TKT|TJT|TFT|TAHT|SGT|SCT|SAST|SADT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PKST|PHT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZT|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|MYT|MVT|MUT|MUST|MST|MSK|MSD|MPT|MMT|MHT|MEZ|METDST|MET|MESZ|MEST|MDT|MAWT|MART|MAGT|MAGST|LKT|LINT|LIGT|LHST|LHDT|KST|KRAT|KRAST|KOST|KGT|KGST|KDT|JST|JAYT|IST|IRT|IRKT|IRKST|IOT|IDT|ICT|HST|HKT|GYT|GMT|GILT|GFT|GET|GEST|GAMT|GALT|FNT|FNST|FKT|FKST|FJT|FJST|FET|EST|EGT|EGST|EETDST|EET|EEST|EDT|EAT|EAST|EASST|DDUT|DAVT|CXT|CST|COT|CLT|CLST|CKT|CHUT|CHAST|CHADT|CETDST|CET|CEST|CDT|CCT|CAST|CADT|BTT|BST|BRT|BRST|BRA|BOT|BORT|BNT|BDT|BDST|AZT|AZST|AZOT|AZOST|AWST|AWSST|AST|ART|ARST|ANAT|ANAST|AMT|AMST|ALMT|ALMST|AKST|AKDT|AFT|AEST|AESST|AEDT|ADT|ACWST|ACT|ACST|ACSST|ACDT$/,is={ZULU:0,YEKT:18e3,YEKST:21600,YAPT:36e3,YAKT:32400,YAKST:32400,XJT:21600,WGT:-10800,WGST:-7200,WFT:43200,WETDST:3600,WET:0,WDT:32400,WAT:3600,WAST:25200,WAKT:43200,WADT:28800,VUT:39600,VOLT:10800,VLAT:36e3,VLAST:36e3,VET:-14400,UZT:18e3,UZST:21600,UYT:-10800,UYST:-7200,UTC:0,UT:0,ULAT:28800,ULAST:32400,UCT:0,TVT:43200,TRUT:36e3,TOT:46800,TMT:18e3,TKT:46800,TJT:18e3,TFT:18e3,TAHT:-36e3,SGT:28800,SCT:14400,SAST:7200,SADT:37800,RET:14400,PYT:-14400,PYST:-10800,PWT:32400,PST:-28800,PONT:39600,PMST:-10800,PMDT:-7200,PKT:18e3,PKST:21600,PHT:28800,PGT:36e3,PETT:43200,PETST:43200,PET:-18e3,PDT:-25200,OMST:21600,OMSST:21600,NZT:43200,NZST:43200,NZDT:46800,NUT:-39600,NST:-12600,NPT:20700,NOVT:25200,NOVST:25200,NFT:-12600,NDT:-9e3,MYT:28800,MVT:18e3,MUT:14400,MUST:18e3,MST:-25200,MSK:10800,MSD:14400,MPT:36e3,MMT:23400,MHT:43200,MEZ:3600,METDST:7200,MET:3600,MESZ:7200,MEST:7200,MDT:-21600,MAWT:18e3,MART:-34200,MAGT:39600,MAGST:39600,LKT:19800,LINT:50400,LIGT:36e3,LHST:37800,LHDT:37800,KST:32400,KRAT:25200,KRAST:25200,KOST:39600,KGT:21600,KGST:21600,KDT:36e3,JST:32400,JAYT:32400,IST:7200,IRT:12600,IRKT:28800,IRKST:28800,IOT:21600,IDT:10800,ICT:25200,HST:-36e3,HKT:28800,GYT:-14400,GMT:0,GILT:43200,GFT:-10800,GET:14400,GEST:14400,GAMT:-32400,GALT:-21600,FNT:-7200,FNST:-3600,FKT:-10800,FKST:-10800,FJT:43200,FJST:46800,FET:10800,EST:-18e3,EGT:-3600,EGST:0,EETDST:10800,EET:7200,EEST:10800,EDT:-14400,EAT:10800,EAST:-21600,EASST:-21600,DDUT:36e3,DAVT:25200,CXT:25200,CST:-21600,COT:-18e3,CLT:-14400,CLST:-10800,CKT:-36e3,CHUT:36e3,CHAST:45900,CHADT:49500,CETDST:7200,CET:3600,CEST:7200,CDT:-18e3,CCT:28800,CAST:34200,CADT:37800,BTT:21600,BST:3600,BRT:-10800,BRST:-7200,BRA:-10800,BOT:-14400,BORT:28800,BNT:28800,BDT:21600,BDST:7200,AZT:14400,AZST:14400,AZOT:-3600,AZOST:0,AWST:28800,AWSST:32400,AST:-14400,ART:-10800,ARST:-10800,ANAT:43200,ANAST:43200,AMT:-14400,AMST:14400,ALMT:21600,ALMST:25200,AKST:-32400,AKDT:-28800,AFT:16200,AEST:36e3,AESST:39600,AEDT:39600,ADT:-10800,ACWST:31500,ACT:-18e3,ACST:34200,ACSST:37800,ACDT:37800};function ss(t){return new Date(t)}function os(t){return new Date(t+"Z")}const as=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function us(t){const e=t.match(as);if(!e)return null;const[n,r,i,s]=e;return r<=0||i<=0||s<=0?null:r>999?new Date(Date.UTC(r,i-1,s,0,0,0,0)):new Date(Date.UTC(s,r-1,i,0,0,0,0))}function cs(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ds(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function fs(t){return new Date(t)}function ls(t){const e=/^(\w{3}) (\w{3}) (\d{2}) (\d{4})$/;if(!t.match(e))throw new Error(`Unable to parse \`${t}\` as a date.`);const r=new Date(t+" UTC");return new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),0,0,0,0))}function hs(t){const e=/^(.+T.+)([+-])(\d{2})$/,n=t.match(e);if(n){const[,r,i,s]=n,o=`${r}${i}${s}:00`;return new Date(o)}return null}function ps(t){const[e,n]=t.split(", "),[r,i,s]=e.split("/").map(Number),o=n.match(/(\d{1,2}):(\d{2}):(\d{2}) (AM|PM)/);if(!o)throw new Error(`Unable to parse time from: ${t}`);let[,a,u,d,c]=o;return a=Number(a),u=Number(u),d=Number(d),c==="PM"&&a!==12?a+=12:c==="AM"&&a===12&&(a=0),new Date(Date.UTC(s,r-1,i,a,u,d))}function ys(t){switch(t){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function bs(t){const e=t.match(sr);if(!e)return null;const[n]=e,r=is[n],i=new Date(t.replace(sr,"Z"));return new Date(i.getTime()-r*1e3)}const _s=[us,ds,ls,ps,fs,os,hs,cs,ss,ys,bs];function gs(t,e){try{const n=t(e);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function Qt(t){for(const e of _s){const n=gs(e,t);if(n)return n}return null}function Ts(t){try{const e=JSON.parse(t);return typeof e=="string"?Qt(e):null}catch{return null}}function ht(t){if(t!==void 0){if(t===null)return null;if(t instanceof Date)return t;if(typeof t=="string"){const e=Qt(t)||Ts(t)||Qt(t.trim());if(!e)throw new Error(`Unable to parse \`${t}\` as a date.`);return e}else if(typeof t=="number")return new Date(t);throw new Error(`Invalid date value \`${t}\`. Expected a date, number, or string, got type ${typeof t}.`)}}function ws(t){return t.cardinality==="one"}function Ht(t){return t["value-type"]==="ref"}function Yt(t){return t["value-type"]==="blob"}function Ce(t,e){return t[e]}function Ge(t,e){return e.reduce((n,r)=>n&&n.get(r),t)}function ue(t,e){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.delete(e[0]);return}const[n,...r]=e;t.has(n)&&ue(t.get(n),r)}function Z(t,e,n){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.set(e[0],n);return}const[r,...i]=e;let s=t.get(r);s||(s=new Map,t.set(r,s)),Z(s,i,n)}function or(t,e,n){const r=new Map,i=new Map,s=new Map;for(const o of e){let[a,u,d,c]=o;const f=Ce(t,u);if(!f){console.warn("no such attr",a,t);continue}f["checked-data-type"]==="date"&&n&&(d=ht(d),o[2]=d),Ht(f)&&Z(s,[d,u,a],o),Z(r,[a,u,d],o),Z(i,[u,a,d],o)}return{eav:r,aev:i,vae:s}}function ar(t){const e=new Map,n=new Map,r=new Map,i=new Map;for(const s of Object.values(t)){const o=s["forward-identity"],[a,u,d]=o,c=s["reverse-identity"];if(Z(r,[u,d],s),Yt(s)&&Z(e,[u,d],s),s["primary?"]&&Z(n,[u],s),c){const[f,h,p]=c;Z(i,[h,p],s)}}return{blobAttrs:e,primaryKeys:n,forwardIdents:r,revIdents:i}}function ur(t){return{__type:t.__type,attrs:t.attrs,triples:X(t.eav,3),cardinalityInference:t.cardinalityInference,linkIndex:t.linkIndex,useDateObjects:t.useDateObjects}}function cr(t){return pt(t.attrs,t.triples,t.cardinalityInference,t.linkIndex,t.useDateObjects)}function ms(t,e){return Ge(t.eav,[e])!==void 0}function Jt(t){t.attrIndexes=ar(t.attrs)}function pt(t,e,n,r,i){const s=or(t,e,i);return s.useDateObjects=i,s.attrs=t,s.attrIndexes=ar(t),s.cardinalityInference=n,s.linkIndex=r,s.__type="store",s}function Qe(t,e){var n,r;let i;if(Array.isArray(e[0])){const[o,a]=e[0],u=t.aev.get(o);if(!u)return null;i=(n=X(u,2).find(c=>c[2]===a))===null||n===void 0?void 0:n[0]}else i=e[0];if(!i)return null;const s=e[2];if(Array.isArray(s)&&s.length===2&&t.aev.get(s[0])){const[o,a]=s,u=t.aev.get(o);if(!u)return null;const c=(r=X(u,2).find(y=>y[2]===a))===null||r===void 0?void 0:r[0];if(!c)return null;const[f,h,p,...b]=e;return[i,h,c,...b]}else{const[o,...a]=e;return[i,...a]}}function dr(t,e){const n=Qe(t,e);if(!n)return;const[r,i,s]=n,o=Ce(t.attrs,i);o&&(ue(t.eav,[r,i,s]),ue(t.aev,[i,r,s]),Ht(o)&&ue(t.vae,[s,i,r]))}let Ss=0;function fr(t,e,n){const[r,i,s]=n;let o;const a=Ge(t.ea,[r,i,s]);return a&&(o=a[3]),o||Date.now()*10+Ss++}function lr(t,e){var n;const r=Qe(t,e);if(!r)return;let[i,s,o]=r;const a=Ce(t.attrs,s);if(!a)return;a["checked-data-type"]==="date"&&t.useDateObjects&&(o=ht(o));const u=Ge(t.eav,[i,s,o]),d=(n=u==null?void 0:u[3])!==null&&n!==void 0?n:fr(t,a,r),c=[i,s,o,d];ws(a)?(Z(t.eav,[i,s],new Map([[o,c]])),Z(t.aev,[s,i],new Map([[o,c]]))):(Z(t.eav,[i,s,o],c),Z(t.aev,[s,i,o],c)),Ht(a)&&Z(t.vae,[o,s,i],c)}function vs(t,e){var n;const r=Qe(t,e);if(!r)return;const[i,s,o]=r,a=Ce(t.attrs,s);if(!a)return;if(!Yt(a))throw new Error("merge operation is not supported for links");const u=Ge(t.eav,[i,s]);if(!u)return;const d=(n=u.values().next())===null||n===void 0?void 0:n.value;if(!d)return;const c=d[2],f=nr(c,o),h=[i,s,f,fr(t,a,d)];Z(t.eav,[i,s],new Map([[f,h]]))}function Zt(t,e){var n,r;const[i,s]=e,o=Qe(t,[i]);if(!o)return;const[a]=o,u=t.eav.get(a);if(u){for(const c of u.keys()){const f=t.attrs[c];f&&f["on-delete-reverse"]==="cascade"&&X(u.get(c),1).forEach(([h,p,b])=>{var y;return Zt(t,[b,(y=f["reverse-identity"])===null||y===void 0?void 0:y[1]])}),(!s||!f||((n=f["forward-identity"])===null||n===void 0?void 0:n[1])===s)&&(ue(t.aev,[c,a]),ue(t.eav,[a,c]))}u.size===0&&ue(t.eav,[a])}const d=t.vae.get(a)&&X(t.vae.get(a),2);d&&d.forEach(c=>{var f,h,p;const[b,y,_]=c,T=t.attrs[y];(!s||!T||((f=T["reverse-identity"])===null||f===void 0?void 0:f[1])===s)&&(ue(t.eav,[b,y,_]),ue(t.aev,[y,b,_]),ue(t.vae,[_,y,b])),T&&T["on-delete"]==="cascade"&&((h=T["reverse-identity"])===null||h===void 0?void 0:h[1])===s&&Zt(t,[b,(p=T["forward-identity"])===null||p===void 0?void 0:p[1]])}),((r=t.vae.get(a))===null||r===void 0?void 0:r.size)===0&&ue(t.vae,[a])}function hr(t,e){const n=or(t.attrs,e,t.useDateObjects);Object.keys(n).forEach(r=>{t[r]=n[r]})}function Os(t,[e]){t.attrs[e.id]=e,Jt(t)}function pr(t){return X(t.eav,3)}function Es(t,[e]){if(!t.attrs[e])return;const n=pr(t).filter(([r,i])=>i!==e);delete t.attrs[e],Jt(t),hr(t,n)}function As(t,[e]){const n=t.attrs[e.id];n&&(t.attrs[e.id]=Object.assign(Object.assign({},n),e),Jt(t),hr(t,pr(t)))}function Cs(t,e){const[n,...r]=e;switch(n){case"add-triple":lr(t,r);break;case"deep-merge-triple":vs(t,r);break;case"retract-triple":dr(t,r);break;case"delete-entity":Zt(t,r);break;case"add-attr":Os(t,r);break;case"delete-attr":Es(t,r);break;case"update-attr":As(t,r);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${n}`)}}function X(t,e,n=[]){if(!t||e===0)return n;if(e===1){for(const r of t.values())n.push(r);return n}for(const r of t.values())X(r,e-1,n);return n}function yt(t,e,n){var r,i;const s=[];if(n!=null&&n.hasOwnProperty("$not")){for(const a of e.keys())n.$not!==a&&s.push(e.get(a));return s}if(n!=null&&n.hasOwnProperty("$isNull")){const{attrId:a,isNull:u,reverse:d}=n.$isNull;if(d)for(const c of e.keys()){const f=t.vae.get(c),h=!f||((r=f.get(a))===null||r===void 0?void 0:r.get(null))||!f.get(a);(u?h:!h)&&s.push(e.get(c))}else{const c=t.aev.get(a);for(const f of e.keys()){const h=!c||((i=c.get(f))===null||i===void 0?void 0:i.get(null))||!c.get(f);(u?h:!h)&&s.push(e.get(f))}}return s}if(n!=null&&n.$comparator)return X(e,1).filter(n.$op);const o=n.in||n.$in||[n];for(const a of o){const u=e.get(a);u&&s.push(u)}return s}function ks(t,e,n){let r="";return t!==void 0&&(r+="e"),e!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function js(t,[e,n,r]){var i,s;switch(ks(e,n,r)){case"e":{const a=t.eav.get(e);return X(a,2)}case"ea":{const a=(i=t.eav.get(e))===null||i===void 0?void 0:i.get(n);return X(a,1)}case"eav":{const a=(s=t.eav.get(e))===null||s===void 0?void 0:s.get(n);return a?yt(t,a,r):[]}case"ev":{const a=t.eav.get(e);if(!a)return[];const u=[];for(const d of a.values())u.push(...yt(t,d,r));return u}case"a":{const a=t.aev.get(n);return X(a,2)}case"av":{const a=t.aev.get(n);if(!a)return[];const u=[];for(const d of a.values())u.push(...yt(t,d,r));return u}case"v":{const a=[];for(const u of t.eav.values())for(const d of u.values())a.push(...yt(t,d,r));return a}default:return X(t.eav,3)}}function Is(t,e,n){var r;const i={};for(const[s,o]of e.entries()){const a=(r=t.eav.get(n))===null||r===void 0?void 0:r.get(o.id),u=X(a,1);for(const d of u)i[s]=d[2]}return i}function ke(t,e,n){var r;return(r=t.attrIndexes.forwardIdents.get(e))===null||r===void 0?void 0:r.get(n)}function yr(t,e,n){var r;return(r=t.attrIndexes.revIdents.get(e))===null||r===void 0?void 0:r.get(n)}function Ps(t,e){return t.attrIndexes.blobAttrs.get(e)}function br(t,e){var n;const r=t.attrIndexes.primaryKeys.get(e);return r||((n=t.attrIndexes.forwardIdents.get(e))===null||n===void 0?void 0:n.get("id"))}function Ms(t,e){const n=Qe(t,e);if(!n)return;const[r,i,s]=n;if(Ce(t.attrs,i))return Ge(t.eav,[r,i])}function Rs(t,e){const n=e.filter(([r,i,s,o,a])=>{if(r!=="add-triple"&&r!=="deep-merge-triple")return!0;const u=a==null?void 0:a.mode;if(u!=="create"&&u!=="update")return!0;let d=!1;const c=Ce(t.attrs,s);if(c){const f=br(t,c["forward-identity"][1]);d=!!Ms(t,[i,f.id,i])}return!(u==="create"&&d||u==="update"&&!d)});return Bt(t,r=>{n.forEach(i=>{Cs(r,i)})})}function xs(t){return typeof t=="string"&&t.startsWith("?")}function Ds(t,e,n){if(n.hasOwnProperty(t)){const r=n[t];return gr(r,e,n)}return Object.assign(Object.assign({},n),{[t]:e})}function _r(t,e,n){return t===e?n:null}function $s(t){switch(typeof t){case"string":return t.startsWith("?")?Ds:_r;default:return _r}}const Us=["in","$in","$not","$isNull","$comparator"];function Ls(t){for(const e of Us)if(t.hasOwnProperty(e))return!0;return!1}function gr(t,e,n){return n?typeof t=="object"?Ls(t)?n:null:$s(t)(t,e,n):null}function Fs(t,e,n){return t.reduce((r,i,s)=>{const o=e[s];return gr(i,o,r)},n)}function Ns(t,e,n){return zs(t,e,n).map(r=>Fs(e,r,n)).filter(r=>r)}function Ws(t,e,n){return e.or?e.or.patterns.flatMap(r=>Xt(t,r,n)):e.and?e.and.patterns.reduce((r,i)=>Xt(t,i,r),n):n.flatMap(r=>Ns(t,e,r))}function Xt(t,e,n=[{}]){return e.reduce((r,i)=>Ws(t,i,r),n)}function en(t,e){return Array.isArray(e)?e.map(n=>en(t,n)):xs(e)?t[e]:e}function Vs(t,{find:e,where:n}){return Xt(t,n).map(i=>en(i,e))}function zs(t,e,n){return js(t,en(n,e))}const Ks=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function je(t){return typeof t=="string"&&Ks.test(t)}const K=[];for(let t=0;t<256;++t)K.push((t+256).toString(16).slice(1));function qs(t,e=0){return(K[t[e+0]]+K[t[e+1]]+K[t[e+2]]+K[t[e+3]]+"-"+K[t[e+4]]+K[t[e+5]]+"-"+K[t[e+6]]+K[t[e+7]]+"-"+K[t[e+8]]+K[t[e+9]]+"-"+K[t[e+10]]+K[t[e+11]]+K[t[e+12]]+K[t[e+13]]+K[t[e+14]]+K[t[e+15]]).toLowerCase()}let tn;const Bs=new Uint8Array(16);function Gs(){if(!tn){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");tn=crypto.getRandomValues.bind(crypto)}return tn(Bs)}const Tr={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Qs(t,e,n){var i;if(Tr.randomUUID&&!t)return Tr.randomUUID();t=t||{};const r=t.random??((i=t.rng)==null?void 0:i.call(t))??Gs();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,qs(r)}function wr(t){const e=t.replace(/-/g,""),n=[];for(let r=0;r<e.length;r+=2)n.push(parseInt(e.substring(r,r+2),16));return n}function Hs(t,e){for(let n=0;n<t.length;n++){if(t[n]<e[n])return-1;if(t[n]>e[n])return 1}return 0}function Ys(t,e){return Hs(wr(t),wr(e))}function W(){return Qs()}function Js(t,e){return t.localeCompare(e)}function Zs(){let t=Js;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{t=Intl.Collator("en-US").compare}catch{}return t}const Xs=Zs();let eo=0;function He(t){return bt(`_${t}`,eo++)}function bt(t,e){return`?${t}-${e}`}class Ie extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function to(t,e){const n=br(t,e);if(!n)throw new Ie(`Could not find id attr for ${e}`);return n}function mr(t,e,n,r){return[no(t,e,n,r)]}function no(t,e,n,r){return[t(n,r),to(e,n).id,t(n,r),t("time",r)]}function ro(t,e,n){return t.map(r=>r===e?n:r)}function Sr(t,e,n,r,i){const s=ke(e,n,i),o=yr(e,n,i),a=s||o;if(!a)throw new Ie(`Could not find attr for ${[n,i]}`);if(a["value-type"]!=="ref")throw new Error(`Attr ${a.id} is not a ref`);const[u,d]=a["forward-identity"],[c,f]=a["reverse-identity"],h=r+1,p=s?[t(d,r),a.id,t(f,h),He("time")]:[t(d,h),a.id,t(f,r),He("time")];return[s?f:d,h,p,a,!!s]}function vr(t,e){if(typeof e!="string")return function(o){return!1};const r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,"."),i=new RegExp(`^${r}$`,t?void 0:"i");return function(o){return typeof o!="string"?!1:i.test(o)}}function io(t,e){if(typeof e!="object"||e.hasOwnProperty("$in")||e.hasOwnProperty("in"))return e;const n=t["checked-data-type"]==="date";if(e.hasOwnProperty("$gt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>new Date(e.$gt)}:function(i){return i[2]>e.$gt}};if(e.hasOwnProperty("$gte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>=new Date(e.$gte)}:function(i){return i[2]>=e.$gte}};if(e.hasOwnProperty("$lt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<new Date(e.$lt)}:function(i){return i[2]<e.$lt}};if(e.hasOwnProperty("$lte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<=new Date(e.$lte)}:function(i){return i[2]<=e.$lte}};if(e.hasOwnProperty("$like")){const r=vr(!0,e.$like);return{$comparator:!0,$op:function(s){return r(s[2])}}}if(e.hasOwnProperty("$ilike")){const r=vr(!1,e.$ilike);return{$comparator:!0,$op:function(s){return r(s[2])}}}return e}function so(t,e,n,r,i,s){const o=ke(e,n,i),a=yr(e,n,i),u=o||a;if(!u)throw new Ie(`No attr for etype = ${n} label = ${i}`);if(s!=null&&s.hasOwnProperty("$isNull")){const d=ke(e,n,"id");if(!d)throw new Ie(`No attr for etype = ${n} label = id`);return[t(n,r),d.id,{$isNull:{attrId:u.id,isNull:s.$isNull,reverse:!o}},He("time")]}return o?[t(n,r),u.id,io(u,s),He("time")]:[s,u.id,t(n,r),He("time")]}function oo(t,e,n,r,i){const[s,o,a]=i.reduce((u,d)=>{const[c,f,h]=u,[p,b,y]=Sr(t,e,c,f,d);return[p,b,[...h,y]]},[n,r,[]]);return[s,o,a]}function nn(t,e,n,r,i,s){const o=i.slice(0,i.length-1),a=i[i.length-1],[u,d,c]=oo(t,e,n,r,o),f=so(t,e,u,d,a,s);return c.concat([f])}function ao(t,e){return e?[e].concat(t):t}function uo([t,e]){return t==="or"&&Array.isArray(e)}function co([t,e]){return t==="and"&&Array.isArray(e)}function fo(t,e,n){return(r,i)=>{const s=t(r,i);return e==s?s:`${s}-${n}`}}function Or(t,e,n,r,i,s){const o=t(r,i),a=s.map((u,d)=>{const c=fo(t,o,d);return Ar(c,n,r,i,u)});return{[e]:{patterns:a,joinSym:o}}}function lo(t){const e=[];for(let n=1;n<=t.length;n++)e.push(t.slice(0,n));return e}function Er(t,e,n,r,i){return lo(i).map(s=>nn(t,e,n,r,s,{$isNull:!0}))}function Ar(t,e,n,r,i){return Object.entries(i).flatMap(([s,o])=>{if(uo([s,o]))return Or(t,"or",e,n,r,o);if(co([s,o]))return Or(t,"and",e,n,r,o);if(s==="$entityIdStartsWith")return[];const a=s.split(".");if(o!=null&&o.hasOwnProperty("$ne")&&(o=Object.assign(Object.assign({},o),{$not:o.$ne}),delete o.$ne),o!=null&&o.hasOwnProperty("$not")){const u=nn(t,e,n,r,a,o),d=Er(t,e,n,r,a);return[{or:{patterns:[u,...d],joinSym:t(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Er(t,e,n,r,a),joinSym:t(n,r)}}]:nn(t,e,n,r,a,o)})}function ho(t,e,n,r){const i=bt;return r?Ar(i,t,e,n,r).concat(mr(i,t,e,n)):mr(i,t,e,n)}function po(t,e,n){return[t(e,n),t("time",n)]}function yo(t,e,n,r,i,s){const[o,a,u,d,c]=Sr(t,e,n,r,i),f=ro(u,t(n,r),s);return[o,a,f,d,c]}function bo(t,e,{etype:n,level:r,form:i},s){const o=Object.keys(i).filter(a=>a!=="$");return o.length?Object.entries(s).map(function([u,d]){return o.map(function(h){var p,b,y;const _=!!(e.cardinalityInference&&(!((y=(b=(p=e.linkIndex)===null||p===void 0?void 0:p[n])===null||b===void 0?void 0:b[h])===null||y===void 0)&&y.isSingular));try{const[T,w,m]=yo(t,e,n,r,h,u),I=kr(e,{etype:T,level:w,form:i[h],join:m}),v=_?I[0]:I;return{[h]:v}}catch(T){if(T instanceof Ie)return{[h]:_?void 0:[]};throw T}}).reduce(function(h,p){return Object.assign(Object.assign({},h),p)},d)}):Object.values(s)}function _o(t,e,n){return n==="string"?Xs(t,e):t>e?1:-1}function _t([t,e],[n,r],i){return e===r||e==null&&r==null?Ys(t,n):r==null?1:e==null?-1:_o(e,r,i)}function rn(t){return t==null?t:new Date(t).getTime()}function go(t,e,n,r){var i;const[s,o,a,u]=t,d=n==="desc"?1:-1;if(((i=e["forward-identity"])===null||i===void 0?void 0:i[2])==="id")return _t(r,[s,u],null)===d;const[c,f]=r,h=e["checked-data-type"],p=h==="date"?rn(f):f,b=h==="date"?rn(a):a;return _t([c,p],[s,b],h)===d}function To(t,e){const n=e[1];return t.attrs[n]}function wo(t,e,n){const r=Object.keys(n)[0];return ke(t,e,r)}function mo(t,e,n,r){if(n)return To(t,n);if(r)return wo(t,e,r)}function So(t,e,n){var r,i;if(!Array.isArray(n.fields))return Ps(t,e);const s=new Map;for(const o of n.fields){const a=ke(t,e,o),u=(r=a==null?void 0:a["forward-identity"])===null||r===void 0?void 0:r[2];u&&Yt(a)&&s.set(u,a)}if(!s.has("id")){const o=ke(t,e,"id"),a=(i=o==null?void 0:o["forward-identity"])===null||i===void 0?void 0:i[2];a&&s.set(a,o)}return s}function vo(t,{etype:e,pageInfo:n,dq:r,form:i}){var s,o;const a=(s=i==null?void 0:i.$)===null||s===void 0?void 0:s.order,u=Cr(i),d=Oo(i);let c=Vs(t,r);const f=n==null?void 0:n["start-cursor"],h=mo(t,e,f,a);if(h&&((o=h==null?void 0:h["forward-identity"])===null||o===void 0?void 0:o[2])!=="id"){const y=h["checked-data-type"]==="date",_=h.id;c=c.map(([T])=>{var w,m,I,v,R;let F=(R=(v=(I=(m=(w=t.eav.get(T))===null||w===void 0?void 0:w.get(_))===null||m===void 0?void 0:m.values())===null||I===void 0?void 0:I.next())===null||v===void 0?void 0:v.value)===null||R===void 0?void 0:R[2];return y&&(F=rn(F)),[T,F]})}c.sort(d==="asc"?function(_,T){return _t(_,T,h==null?void 0:h["checked-data-type"])}:function(_,T){return _t(T,_,h==null?void 0:h["checked-data-type"])});let p={};const b=So(t,e,r);for(const y of c){const[_]=y;if(p[_]||!u&&f&&h&&go(f,h,d,y))continue;const T=Is(t,b,_);T&&(p[_]=T)}return p}function Oo(t){var e;const n=(e=t.$)===null||e===void 0?void 0:e.order;return n&&n[Object.keys(n)[0]]||"asc"}function Cr(t){var e,n,r;const i=(e=t.$)===null||e===void 0?void 0:e.offset,s=(n=t.$)===null||n===void 0?void 0:n.before,o=(r=t.$)===null||r===void 0?void 0:r.after;return!i&&!s&&!o}function Eo(t,{etype:e,level:n,form:r,join:i,pageInfo:s}){var o,a,u,d,c;if(!Cr(r)&&(!s||!s["start-cursor"]))return[];const f=ao(ho(t,e,n,(o=r.$)===null||o===void 0?void 0:o.where),i),h=po(bt,e,n),p=(a=r.$)===null||a===void 0?void 0:a.fields,b=vo(t,{etype:e,pageInfo:s,form:r,dq:{where:f,find:h,fields:p}}),y=((u=r.$)===null||u===void 0?void 0:u.limit)||((d=r.$)===null||d===void 0?void 0:d.first)||((c=r.$)===null||c===void 0?void 0:c.last);if(y!=null){n>0&&console.warn("WARNING: Limits in child queries are only run client-side. Data returned from the server will not have a limit.");const _=Object.entries(b);return _.length<=y?b:Object.fromEntries(_.slice(0,y))}return b}function Ao(t,e){try{return Eo(t,e)}catch(n){if(n instanceof Ie)return{};throw n}}function kr(t,e){const n=Ao(t,e);return bo(bt,t,e,n)}function Co(t){const e={};for(const[n,r]of Object.entries(t))e[n]={startCursor:r["start-cursor"],endCursor:r["end-cursor"],hasNextPage:r["has-next-page?"],hasPreviousPage:r["has-previous-page?"]};return e}function jr({store:t,pageInfo:e,aggregate:n},r){const s={data:Object.keys(r).reduce(function(a,u){return n!=null&&n[u]||u==="$$ruleParams"||(a[u]=kr(t,{etype:u,form:r[u],level:0,pageInfo:e==null?void 0:e[u]})),a},{})};return e&&(s.pageInfo=Co(e)),n&&(s.aggregate=n),s}function ko(){const e={__etype:1,__ops:1,create:1,update:1,link:1,unlink:1,delete:1,merge:1,ruleParams:1};return new Set(Object.keys(e))}const jo=ko();function sn(t,e,n){const r={__etype:t,__ops:n};return new Proxy(r,{get:(i,s)=>{if(s==="__ops")return n;if(s==="__etype")return t;if(jo.has(s))return(o,a)=>sn(t,e,[...n,a?[s,t,e,o,a]:[s,t,e,o]])}})}function Io(t,e){return`lookup__${t}__${JSON.stringify(e)}`}function gt(t){return t.startsWith("lookup__")}function Ir(t){const[e,n,...r]=t.split("__");return[n,JSON.parse(r.join("__"))]}function Po(t){return new Proxy({__etype:t},{get(e,n){if(n==="__etype")return t;const r=n;return gt(r)?sn(t,Ir(r),[]):sn(t,r,[])}})}function on(){return new Proxy({},{get(t,e){return Po(e)}})}const Mo=on();function Ro(t){return t.__ops}function xo(t,e){const{attrIdMap:n,refSwapAttrIds:r}=t,i=[];for(const o of e){const a=n[o];if(a)i.push(a);else if(Array.isArray(o)&&o.length==2&&n[o[0]]){const[u,d]=o;i.push([n[u],d])}else i.push(o)}const[s]=e;if((s==="add-triple"||s==="retract-triple")&&r.has(e[2])){const o=i[1];i[1]=i[3],i[3]=o}return i}function q(t,e,n){return Object.values(t).find(r=>{const[i,s,o]=r["forward-identity"];return s===e&&o===n})}function me(t,e,n){return Object.values(t).find(r=>{const i=r["reverse-identity"];if(!i)return!1;const[s,o,a]=i;return o===e&&a===n})}function Do(t){if(Array.isArray(t))return t;const e=Object.entries(t);if(e.length!==1)throw new Error("lookup must be an object with a single unique attr and value.");return e[0]}function an(t,e,n){return n.indexOf(".")!==-1&&!q(t,e,n)}function un(t){const[e,n,...r]=t.split(".");if(r.length>0||n!=="id")throw new Error(`${t} is not a valid lookup attribute.`);return e}function $o(t,e,n){if(!an(t,e,n))return q(t,e,n);const r=un(n),i=q(t,e,r)||me(t,e,r);if(i&&i["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return i}function cn(t){return typeof t=="string"&&!gt(t)?null:typeof t=="string"&&gt(t)?Ir(t):Do(t)}function ee(t,e,n){const r=cn(n);if(r===null)return n;const[i,s]=r,o=$o(t,e,i);if(!o||!o["unique?"])throw new Error(`${i} is not a unique attribute.`);return[o.id,s]}function Pr(t,e,n,r){const i=ee(t,e,n);return Array.isArray(i)?[["add-triple",i,q(t,e,"id").id,i]].concat(r):r}function Uo({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=q(t,e,s),d=me(t,e,s);return a.map(c=>u?["add-triple",ee(t,e,n),u.id,ee(t,u["reverse-identity"][1],c)]:["add-triple",ee(t,d["forward-identity"][1],c),d.id,ee(t,e,n)])});return Pr(t,e,n,i)}function Lo({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=q(t,e,s),d=me(t,e,s);return a.map(c=>u?["retract-triple",ee(t,e,n),u.id,ee(t,u["reverse-identity"][1],c)]:["retract-triple",ee(t,d["forward-identity"][1],c),d.id,ee(t,e,n)])});return Pr(t,e,n,i)}function Fo(t,e,n){if(Array.isArray(n)){const[r,i]=n;for(const s of t||[]){const o=s==null?void 0:s.aev.get(r);if(o){for(const[a,u,d]of X(o,2))if(d===i)return!0}}}else for(const r of t||[]){const i=r==null?void 0:r.eav.get(n);if(i){for(const s of i.keys())if(r.attrs[s]["forward-identity"][1]==e)return!0}}return!1}function Mr({stores:t,attrs:e},[n,r,i,s]){return(s==null?void 0:s.upsert)===!1?{mode:"update"}:(s==null?void 0:s.upsert)===!0?null:Fo(t,n,r)?{mode:"update"}:null}function No(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=Gt(o),d=ee(r,i,s);return[["id",d]].concat(Object.entries(u)).map(([f,h])=>{const p=q(r,i,f);return p["checked-data-type"]==="date"&&t.useDateObjects&&(h=ht(h)),["add-triple",d,p.id,h,{mode:"create"}]})}function Wo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=Gt(o),d=ee(r,i,s),c=Mr(t,[i,d,o,a]);return[["id",d]].concat(Object.entries(u)).map(([h,p])=>{const b=q(r,i,h);return b["checked-data-type"]==="date"&&t.useDateObjects&&(p=ht(p)),["add-triple",d,b.id,p,...c?[c]:[]]})}function Vo({attrs:t},[e,n]){return[["delete-entity",ee(t,e,n),e]]}function zo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=Gt(o),d=ee(r,i,s),c=Mr(t,[i,d,o,a]),f=Object.entries(u).map(([p,b])=>{const y=q(r,i,p);return["deep-merge-triple",d,y.id,b,...c?[c]:[]]});return[["add-triple",d,q(r,i,"id").id,d,...c?[c]:[]]].concat(f)}function Ko({attrs:t},[e,n,r]){return[["rule-params",ee(t,e,n),e,r]]}function qo(t){const[e,n,r,i,s]=t;if(!i)return t;const o=Object.assign({},i);return delete o.id,[e,n,r,o,...s?[s]:[]]}function Bo(t,e){const[n,...r]=qo(e);switch(n){case"merge":return zo(t,r);case"create":return No(t,r);case"update":return Wo(t,r);case"link":return Uo(t,r);case"unlink":return Lo(t,r);case"delete":return Vo(t,r);case"ruleParams":return Ko(t,r);default:throw new Error(`unsupported action ${n}`)}}function Go(t){switch(t){case"string":case"date":case"boolean":case"number":return t;default:return}}function Qo(t,e,n){var r,i;const s=(i=(r=t.entities[e])===null||r===void 0?void 0:r.attrs)===null||i===void 0?void 0:i[n];if(n==="id")return null;if(!s)throw new Error(`${e}.${n} does not exist in your schema`);const{unique:o,indexed:a}=s==null?void 0:s.config,u=Go(s==null?void 0:s.valueType);return{"index?":a,"unique?":o,"checked-data-type":u}}function Tt(t,e,n,r){const i=t?Qo(t,e,n):null,s=W(),a=[W(),e,n];return Object.assign(Object.assign({id:s,"forward-identity":a,"value-type":"blob",cardinality:"one","unique?":!1,"index?":!1,isUnsynced:!0},i||{}),r||{})}function Ho(t,e,n){return Object.values(t.links).find(i=>i.forward.on===e&&i.forward.label===n||i.reverse.on===e&&i.reverse.label===n)}function Yo(t,e,n){const r=Ho(t,e,n);if(!r)throw new Error(`Couldn't find the link ${e}.${n} in your schema`);const{forward:i,reverse:s}=r;return{"forward-identity":[W(),i.on,i.label],"reverse-identity":[W(),s.on,s.label],cardinality:i.has==="one"?"one":"many","unique?":s.has==="one","on-delete":i.onDelete,"on-delete-reverse":s.onDelete}}function Rr(t,e,n,r){const i=t?Yo(t,e,n):null,s=W(),o=[W(),e,n],a=[W(),n,e];return Object.assign(Object.assign({id:s,"forward-identity":o,"reverse-identity":a,"value-type":"ref",cardinality:"many","unique?":!1,"index?":!1,isUnsynced:!0},i||{}),r||{})}const Jo=new Set(["create","update","merge","link","unlink"]),Zo=new Set(["link","unlink"]),Xo=new Set(["create","update","merge"]),ea=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),dn={"unique?":!0,"index?":!0},ta=Object.assign(Object.assign({},dn),{cardinality:"one"});function na(t){const e=[],[n,r,i,s]=t;if(!ea.has(n))return e;const o=cn(i);if(o&&e.push({etype:r,lookupPair:o}),n==="link")for(const[a,u]of Object.entries(s)){const d=Array.isArray(u)?u:[u];for(const c of d){const f=cn(c);f&&e.push({etype:r,lookupPair:f,linkLabel:a})}}return e}function ra({attrs:t,schema:e},n){var r,i;const[s,o,a]=[new Set,Object.assign({},t),[]];function u(f){o[f.id]=f,a.push(["add-attr",f]),s.add(f.id)}function d(f){f!=null&&f.isUnsynced&&!s.has(f.id)&&(a.push(["add-attr",f]),s.add(f.id))}function c(f,h){const p=q(o,f,h),b=me(o,f,h);d(p),d(b),!p&&!b&&u(Rr(e,f,h,ta))}for(const f of n)for(const{etype:h,lookupPair:p,linkLabel:b}of na(f)){const y=p[0];if(b){c(h,b);const _=q(o,h,b),T=me(o,h,b);d(_),d(T);const w=((r=_==null?void 0:_["reverse-identity"])===null||r===void 0?void 0:r[1])||((i=T==null?void 0:T["forward-identity"])===null||i===void 0?void 0:i[1])||b;if(an(o,w,y))c(w,un(y));else{const m=q(o,w,y);m||u(Tt(e,w,y,dn)),d(m)}}else if(an(o,h,y))c(h,un(y));else{const _=q(o,h,y);_||u(Tt(e,h,y,dn)),d(_)}}for(const f of n){const[h,p,b,y]=f;if(Jo.has(h)){const _=q(o,p,"id");d(_),_||u(Tt(e,p,"id",{"unique?":!0}));for(const T of Object.keys(y)){const w=q(o,p,T);if(d(w),Xo.has(h)&&(w||u(Tt(e,p,T,T==="id"?{"unique?":!0}:null))),Zo.has(h)){const m=me(o,p,T);!w&&!m&&u(Rr(e,p,T)),d(m)}}}}return[o,a]}function ia(t,e){const r=(Array.isArray(e)?e:[e]).flatMap(u=>Ro(u)),[i,s]=ra(t,r),o=Object.assign(Object.assign({},t),{attrs:i}),a=r.flatMap(u=>Bo(o,u));return[...s,...a]}var xr=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};class Dr{constructor(e){this.dbName=e,this._storeName="kv",this._dbPromise=this._init()}_init(){return new Promise((e,n)=>{const r=indexedDB.open(this.dbName,1);r.onerror=i=>{n(i)},r.onsuccess=i=>{const s=i.target;e(s.result)},r.onupgradeneeded=i=>{i.target.result.createObjectStore(this._storeName)}})}getItem(e){return xr(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const a=n.transaction([this._storeName],"readonly").objectStore(this._storeName).get(e);a.onerror=u=>{i(u)},a.onsuccess=u=>{a.result?r(a.result):r(null)}})})}setItem(e,n){return xr(this,void 0,void 0,function*(){const r=yield this._dbPromise;return new Promise((i,s)=>{const u=r.transaction([this._storeName],"readwrite").objectStore(this._storeName).put(n,e);u.onerror=d=>{s(d)},u.onsuccess=d=>{i()}})})}}var sa=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};class $r{static getIsOnline(){return sa(this,void 0,void 0,function*(){return navigator.onLine})}static listen(e){const n=()=>{e(!0)},r=()=>{e(!1)};return addEventListener("online",n),addEventListener("offline",r),()=>{removeEventListener("online",n),removeEventListener("offline",r)}}}class Pe extends Error{constructor(e,n){super(e),this.hint=n;const r=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,r),Error.captureStackTrace&&Error.captureStackTrace(this,Pe),this.name="InstantError"}get[Symbol.toStringTag](){return"InstantError"}}var oa=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};class Ye extends Pe{constructor(e){var n;const r=((n=e.body)===null||n===void 0?void 0:n.message)||`API Error (${e.status})`;super(r,e.body.hint);const i=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,i),Error.captureStackTrace&&Error.captureStackTrace(this,Ye),this.name="InstantAPIError",this.status=e.status,this.body=e.body}get[Symbol.toStringTag](){return"InstantAPIError"}}function ce(t,e){return oa(this,void 0,void 0,function*(){const n=yield fetch(t,e),r=yield n.json();return n.status===200?Promise.resolve(r):Promise.reject(new Ye({status:n.status,body:r}))})}var Me=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};function aa({apiURI:t,appId:e,email:n}){return ce(`${t}/runtime/auth/send_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,email:n})})}function ua(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,email:r,code:i,refreshToken:s}){return yield ce(`${e}/runtime/auth/verify_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(Object.assign({"app-id":n,email:r,code:i},s?{"refresh-token":s}:{}))})})}function ca(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield ce(`${e}/runtime/auth/verify_refresh_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n,"refresh-token":r})})})}function da(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n}){return yield ce(`${e}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n})})})}function Ur(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,code:r,codeVerifier:i,refreshToken:s}){return yield ce(`${e}/runtime/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,code:r,code_verifier:i,refresh_token:s})})})}function fa(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,nonce:r,idToken:i,clientName:s,refreshToken:o}){return yield ce(`${e}/runtime/oauth/id_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,nonce:r,id_token:i,client_name:s,refresh_token:o})})})}function la(t){return Me(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield ce(`${e}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,refresh_token:r})})})}var Je=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};function ha(t){return Je(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,file:i,refreshToken:s,contentType:o,contentDisposition:a}){const u={app_id:n,path:r,authorization:`Bearer ${s}`,"content-type":o||i.type};return a&&(u["content-disposition"]=a),yield ce(`${e}/storage/upload`,{method:"PUT",headers:u,body:i})})}function pa(t){return Je(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield ce(`${e}/storage/files?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"DELETE",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}function ya(t){return Je(this,arguments,void 0,function*({apiURI:e,appId:n,fileName:r,refreshToken:i,metadata:s={}}){const{data:o}=yield ce(`${e}/storage/signed-upload-url`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${i}`},body:JSON.stringify({app_id:n,filename:r})});return o})}function ba(t,e){return Je(this,void 0,void 0,function*(){return(yield fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok})}function _a(t){return Je(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield ce(`${e}/storage/signed-download-url?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}let fn=!1,Lr=!1,Fr=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(fn=!!window.localStorage.getItem("devBackend"),Lr=!!window.localStorage.getItem("__instantLogging"),Fr=!!window.localStorage.getItem("__devtoolLocalDash"));function Nr(t,e){if(!e)return t;const n={};return e.forEach(r=>{n[r]=t[r]}),n}function ga(t,e,n){var r,i;const s={peers:{}};if(e&&"user"in e?e.user:!0){const a=Nr((r=t.user)!==null&&r!==void 0?r:{},e==null?void 0:e.keys);s.user=Object.assign(Object.assign({},a),{peerId:n})}for(const a of Object.keys((i=t.peers)!==null&&i!==void 0?i:{})){const u=(e==null?void 0:e.peers)===void 0,d=Array.isArray(e==null?void 0:e.peers)&&(e==null?void 0:e.peers.includes(a));if(u||d){const c=Nr(t.peers[a],e==null?void 0:e.keys);s.peers[a]=Object.assign(Object.assign({},c),{peerId:a})}}return s}function Ta(t,e){if(t.isLoading!==e.isLoading||t.error!==e.error||(t.user||e.user)&&(!t.user||!e.user||!tr(t.user,e.user))||!er(t.peers,e.peers))return!0;for(const r of Object.keys(t.peers))if(!tr(t.peers[r],e.peers[r]))return!0;return!1}class Wr{constructor(){this.promise=new Promise((e,n)=>{this._resolve=e,this._reject=n})}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}var Ze=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};function wa(t,e){typeof requestIdleCallback>"u"?t():requestIdleCallback(t,{timeout:e})}class ln{constructor(e,n,r,i,s=d=>d,o=d=>d,a=100,u=1e3){this._subs=[],this._nextSave=null,this._persister=e,this._key=n,this._onMerge=i,this._loadedCbs=[],this._isLoading=!0,this.currentValue=r,this.serialize=s,this.parse=o,this._saveThrottleMs=a,this._pendingSaveCbs=[],this._version=0,this._idleCallbackMaxWaitMs=u,this._load()}_getFromStorage(){return Ze(this,void 0,void 0,function*(){try{return this.parse(yield this._persister.getItem(this._key))}catch(e){return console.error(`Unable to read from storage for key=${this._key}`,e),null}})}_load(){return Ze(this,void 0,void 0,function*(){const e=yield this._getFromStorage();this._isLoading=!1;const n=this._onMerge(e,this.currentValue);n&&(this.currentValue=n);for(const r of this._loadedCbs)r()})}waitForLoaded(){return Ze(this,void 0,void 0,function*(){if(!this._isLoading)return;yield new Promise(n=>{this._loadedCbs.push(n)})})}isLoading(){return this._isLoading}version(){return this._version}waitForSync(){return Ze(this,void 0,void 0,function*(){if(!this._nextSave)return;yield new Promise(n=>{this._pendingSaveCbs.push(n)})})}_writeToStorage(){this._persister.setItem(this._key,this.serialize(this.currentValue));for(const e of this._pendingSaveCbs)e();this._pendingSaveCbs.length=0}flush(){return Ze(this,void 0,void 0,function*(){this._nextSave&&(clearTimeout(this._nextSave),this._writeToStorage())})}_enqueuePersist(e){if(this._nextSave){e&&this._pendingSaveCbs.push(e);return}this._nextSave=setTimeout(()=>{wa(()=>{this._nextSave=null,this._writeToStorage()},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)}set(e,n){this._version++,this.currentValue=e(this.currentValue),this._isLoading?this._loadedCbs.push(()=>this._enqueuePersist(n)):this._enqueuePersist(n);for(const r of this._subs)r(this.currentValue);return this.currentValue}subscribe(e){return this._subs.push(e),e(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==e)}}}function Vr(t,e=[]){t.forEach(n=>{const{data:r}=n,{"datalog-result":i}=r,{"join-rows":s}=i;for(const o of s)for(const a of o)e.push(a);Vr(n["child-nodes"],e)})}function zr(t){const e=[];return Vr(t,e),e}function Kr(t){return Object.values(t.links).reduce((e,n)=>{var r,i,s,o;return(r=e[s=n.forward.on])!==null&&r!==void 0||(e[s]={}),e[n.forward.on][n.forward.label]={isForward:!0,isSingular:n.forward.has==="one",link:n},(i=e[o=n.reverse.on])!==null&&i!==void 0||(e[o]={}),e[n.reverse.on][n.reverse.label]={isForward:!1,isSingular:n.reverse.has==="one",link:n},e},{})}const hn="v0.22.47-experimental.sync-table.19154203588.1";function ma(t,e){return{info:t?(...n)=>console.info(...n,e()):()=>{},debug:t?(...n)=>console.debug(...n,e()):()=>{},error:t?(...n)=>console.error(...n,e()):()=>{}}}class H{constructor(e,n,r,i={indexed:!1,unique:!1}){this.valueType=e,this.required=n,this.isIndexed=r,this.config=i,this.metadata={}}clientRequired(){return new H(this.valueType,!1,this.isIndexed,this.config)}optional(){return new H(this.valueType,!1,this.isIndexed,this.config)}unique(){return new H(this.valueType,this.required,this.isIndexed,Object.assign(Object.assign({},this.config),{unique:!0}))}indexed(){return new H(this.valueType,this.required,!0,Object.assign(Object.assign({},this.config),{indexed:!0}))}}class wt{constructor(e,n){this.attrs=e,this.links=n}asType(){return new wt(this.attrs,this.links)}}class mt{constructor(e,n,r){this.entities=e,this.links=n,this.rooms=r}withRoomSchema(){return new mt(this.entities,this.links,{})}}class x extends Error{constructor(e,n){const r=n?`At path '${n}': ${e}`:e;super(r),this.name="QueryValidationError"}}const qr=["where","order","limit","last","first","offset","after","before","fields","aggregate"],Sa=t=>t.valueType||"unknown",Br=(t,e,n=!1)=>{if(n||t==null)return!0;switch(e){case"string":return typeof t=="string";case"number":return typeof t=="number"&&!isNaN(t);case"boolean":return typeof t=="boolean";case"date":return t instanceof Date||typeof t=="string"||typeof t=="number";default:return!0}},va=(t,e,n,r,i,s,o)=>{const a=s.valueType==="json",u=(d,c,f)=>{if(!Br(f,c,a))throw new x(`Invalid value for operator '${d}' on attribute '${r}' in entity '${i}'. Expected ${c}, but received: ${typeof f}`,o)};switch(t){case"in":case"$in":if(!Array.isArray(e))throw new x(`Operator '${t}' for attribute '${r}' in entity '${i}' must be an array, but received: ${typeof e}`,o);for(const d of e)u(t,n,d);break;case"$not":case"$ne":case"$gt":case"$lt":case"$gte":case"$lte":u(t,n,e);break;case"$like":case"$ilike":if(u(t,"string",e),t==="$ilike"&&!s.isIndexed)throw new x(`Operator '${t}' can only be used with indexed attributes, but '${r}' in entity '${i}' is not indexed`,o);break;case"$isNull":u(t,"boolean",e);break;default:throw new x(`Unknown operator '${t}' for attribute '${r}' in entity '${i}'`,o)}},Re=(t,e,n,r,i)=>{const s=Sa(n),o=n.valueType==="json";if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(o)return;const u=t;for(const[d,c]of Object.entries(u))va(d,c,s,e,r,n,`${i}.${d}`)}else if(!Br(t,s,o))throw new x(`Invalid value for attribute '${e}' in entity '${r}'. Expected ${s}, but received: ${typeof t}`,i)},Oa=(t,e,n,r,i)=>{const s=t.split(".");if(s.length<2)throw new x(`Invalid dot notation path '${t}'. Must contain at least one dot.`,i);let o=n;for(let c=0;c<s.length-1;c++){const f=s[c],h=r.entities[o];if(!h)throw new x(`Entity '${o}' does not exist in schema while traversing dot notation path '${t}'.`,i);const p=h.links[f];if(!p){const b=Object.keys(h.links);throw new x(`Link '${f}' does not exist on entity '${o}' in dot notation path '${t}'. Available links: ${b.length>0?b.join(", "):"none"}`,i)}o=p.entityName}const a=s[s.length-1],u=r.entities[o];if(!u)throw new x(`Target entity '${o}' does not exist in schema for dot notation path '${t}'.`,i);if(a==="id"){if(typeof e=="string"&&!je(e))throw new x(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${e}`,i);Re(e,t,new H("string",!1,!0),n,i);return}const d=u.attrs[a];if(Object.keys(u.links).includes(a)){if(typeof e=="string"&&!je(e))throw new x(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${e}`,i);Re(e,t,new H("string",!1,!0),n,i);return}if(!d){const c=Object.keys(u.attrs);throw new x(`Attribute '${a}' does not exist on entity '${o}' in dot notation path '${t}'. Available attributes: ${c.length>0?c.join(", ")+", id":"id"}`,i)}Re(e,t,d,n,i)},Gr=(t,e,n,r)=>{for(const[i,s]of Object.entries(t)){if(i==="or"||i==="and"){if(Array.isArray(s))for(const d of s)typeof d=="object"&&d!==null&&Gr(d,e,n,`${r}.${i}[${d}]`);continue}if(i==="id"){Re(s,"id",new H("string",!1,!0),e,`${r}.id`);continue}if(i.includes(".")){Oa(i,s,e,n,`${r}.${i}`);continue}const o=n.entities[e];if(!o)continue;const a=o.attrs[i],u=o.links[i];if(!a&&!u){const d=Object.keys(o.attrs),c=Object.keys(o.links);throw new x(`Attribute or link '${i}' does not exist on entity '${e}'. Available attributes: ${d.length>0?d.join(", "):"none"}. Available links: ${c.length>0?c.join(", "):"none"}`,`${r}.${i}`)}if(a)Re(s,i,a,e,`${r}.${i}`);else if(u){if(typeof s=="string"&&!je(s))throw new x(`Invalid value for link '${i}' in entity '${e}'. Expected a UUID, but received: ${s}`,`${r}.${i}`);const d=new H("string",!1,!0);Re(s,i,d,e,`${r}.${i}`)}}},Ea=(t,e,n,r,i=0)=>{for(const o of Object.keys(t))if(!qr.includes(o))throw new x(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${qr.join(", ")}. Found: ${o}`,r);const s=["offset","before","after","first","last"];for(const o of s)if(t[o]!==void 0&&i>0)throw new x(`'${o}' can only be used on top-level namespaces. It cannot be used in nested queries.`,r);if(t.where&&n){if(typeof t.where!="object"||t.where===null)throw new x(`'where' clause must be an object in entity '${e}', but received: ${typeof t.where}`,r?`${r}.where`:void 0);Gr(t.where,e,n,r?`${r}.where`:"where")}},Qr=(t,e,n,r,i=0)=>{var s;if(!t||typeof t!="object")throw new x(`Query part for entity '${e}' must be an object, but received: ${typeof t}`,r);for(const o of Object.keys(t))if(o!=="$"){if(n&&!(o in n.entities[e].links)){const u=Object.keys(n.entities[e].links);throw new x(`Link '${o}' does not exist on entity '${e}'. Available links: ${u.length>0?u.join(", "):"none"}`,`${r}.${o}`)}const a=t[o];if(typeof a=="object"&&a!==null){const u=(s=n==null?void 0:n.entities[e].links[o])===null||s===void 0?void 0:s.entityName;u&&Qr(a,u,n,`${r}.${o}`,i+1)}}else{const a=t[o];if(typeof a!="object"||a===null)throw new x(`Query parameter '$' must be an object in entity '${e}', but received: ${typeof a}`,`${r}.$`);Ea(a,e,n,`${r}.$`,i)}},Hr=(t,e)=>{if(typeof t!="object"||t===null)throw new x(`Query must be an object, but received: ${typeof t}${t===null?" (null)":""}`);if(Array.isArray(t))throw new x(`Query must be an object, but received: ${typeof t}`);const n=t;for(const r of Object.keys(n)){if(Array.isArray(t[r]))throw new x(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(typeof r!="string")throw new x(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(r!=="$$ruleParams"){if(e&&!e.entities[r]){const i=Object.keys(e.entities);throw new x(`Entity '${r}' does not exist in schema. Available entities: ${i.length>0?i.join(", "):"none"}`,r)}Qr(n[r],r,e,r,0)}}},Yr=t=>typeof t!="string"?!1:gt(t)?!0:je(t);class se extends Error{constructor(e){super(e),this.name="TransactionValidationError"}}const Jr=t=>t.length>0?t.join(", "):"none",Aa=(t,e)=>new se(`Entity '${t}' does not exist in schema. Available entities: ${Jr(e)}`),Zr={string:t=>typeof t=="string",number:t=>typeof t=="number"&&!isNaN(t),boolean:t=>typeof t=="boolean",date:t=>t instanceof Date||typeof t=="string"||typeof t=="number",json:()=>!0},Ca=(t,e)=>{var n,r;return t==null?!0:(r=(n=Zr[e.valueType])===null||n===void 0?void 0:n.call(Zr,t))!==null&&r!==void 0?r:!1},Xr=(t,e)=>{const n=e.entities[t];if(!n)throw Aa(t,Object.keys(e.entities));return n},pn=(t,e,n)=>{const r=Xr(t,n);if(typeof e!="object"||e===null)throw new se(`Arguments for data operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[i,s]of Object.entries(e)){if(i==="id")continue;const o=r.attrs[i];if(o&&!Ca(s,o))throw new se(`Invalid value for attribute '${i}' in entity '${t}'. Expected ${o.valueType}, but received: ${typeof s}`)}},ei=(t,e,n)=>{const r=Xr(t,n);if(typeof e!="object"||e===null)throw new se(`Arguments for link operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[i,s]of Object.entries(e)){if(!r.links[i]){const a=Object.keys(r.links);throw new se(`Link '${i}' does not exist on entity '${t}'. Available links: ${Jr(a)}`)}if(s!=null){if(Array.isArray(s)){for(const a of s)if(!Yr(a))throw new se(`Invalid entity ID in link '${i}' for entity '${t}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!Yr(s))throw new se(`Invalid UUID in link '${i}' for entity '${t}'. Expected a UUID, but received: ${s}`)}}},ka={create:pn,update:pn,merge:pn,link:ei,unlink:ei,delete:()=>{}},ja=(t,e)=>{if(!e)return;const[n,r,i,s]=t;if(!Array.isArray(i)&&!je(i))throw new se(`Invalid id for entity '${r}'. Expected a UUID, but received: ${i}`);if(typeof r!="string")throw new se(`Entity name must be a string, but received: ${typeof r}`);const o=ka[n];o&&s!==void 0&&o(r,s,e)},Ia=(t,e)=>{const n=Array.isArray(t)?t:[t];for(const r of n){if(!r||typeof r!="object")throw new se(`Transaction chunk must be an object, but received: ${typeof r}`);if(!Array.isArray(r.__ops))throw new se(`Transaction chunk must have __ops array, but received: ${typeof r.__ops}`);for(const i of r.__ops){if(!Array.isArray(i))throw new se(`Transaction operation must be an array, but received: ${typeof i}`);ja(i,e)}}};var ti=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};let ni=0;class ri{constructor(e){this.type="ws",this.id=`${this.type}_${ni++}`,this.conn=new WebSocket(e),this.conn.onopen=n=>{this.onopen&&this.onopen({target:this})},this.conn.onmessage=n=>{this.onmessage&&this.onmessage({target:this,message:JSON.parse(n.data.toString())})},this.conn.onclose=n=>{this.onclose&&this.onclose({target:this})},this.conn.onerror=n=>{this.onerror&&this.onerror({target:this})}}close(){this.conn.close()}isOpen(){return this.conn.readyState===WebSocket.OPEN}isConnecting(){return this.conn.readyState===WebSocket.CONNECTING}send(e){return this.conn.send(JSON.stringify(e))}}class Pa{constructor(e,n){this.type="sse",this.initParams=null,this.sendQueue=[],this.closeFired=!1,this.sseInitTimeout=null,this.id=`${this.type}_${ni++}`,this.url=n,this.ES=e,this.conn=new e(n),this.sseInitTimeout=setTimeout(()=>{this.initParams||this.handleError()},1e4),this.conn.onmessage=r=>{const i=JSON.parse(r.data);if(i.op==="sse-init"){this.initParams={machineId:i["machine-id"],sessionId:i["session-id"],sseToken:i["sse-token"]},this.onopen&&this.onopen({target:this}),clearTimeout(this.sseInitTimeout);return}this.onmessage&&this.onmessage({target:this,message:i})},this.conn.onerror=r=>{this.handleError()}}handleError(){try{this.onerror&&this.onerror({target:this})}finally{this.handleClose()}}handleClose(){this.conn.close(),this.onclose&&!this.closeFired&&(this.closeFired=!0,this.onclose({target:this}))}postMessages(e){return ti(this,void 0,void 0,function*(){try{(yield fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machine_id:this.initParams.machineId,session_id:this.initParams.sessionId,sse_token:this.initParams.sseToken,messages:e})})).ok||this.handleError()}catch{this.handleError()}})}flushQueue(){return ti(this,void 0,void 0,function*(){if(this.sendPromise||!this.sendQueue.length)return;const e=this.sendQueue;this.sendQueue=[];const n=this.postMessages(e);this.sendPromise=n,n.then(()=>{this.sendPromise=null,this.flushQueue()})})}send(e){if(!this.isOpen()||!this.initParams)throw this.isConnecting()?new Error("Failed to execute 'send' on 'EventSource': Still in CONNECTING state."):this.conn.readyState===this.ES.CLOSED?new Error("EventSource is already in CLOSING or CLOSED state."):new Error("EventSource is in invalid state.");this.sendQueue.push(e),this.flushQueue()}isOpen(){return this.conn.readyState===this.ES.OPEN&&this.initParams!==null}isConnecting(){return this.conn.readyState===this.ES.CONNECTING||this.conn.readyState===this.ES.OPEN&&this.initParams===null}close(){this.handleClose()}}var ii=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};function Ma(t,e){for(const n in t){const r=t[n];for(const i of r.entities||[])i.store=cr(i.store)}return t}function Ra(t){const e={};for(const n in t){const r=t[n];if(r.entities){const i=[];for(const s of r.entities)i.push({store:ur(s.store),entity:s.entity});e[n]=Object.assign(Object.assign({},r),{entities:i})}else e[n]=r}return e}function xa(t,e){const n={};for(const[r,i]of Object.entries(e))n[r]=i;if(t)for(const[r,i]of Object.entries(t))n[r]=i;return n}function yn(t,e){const n=Object.keys(t.query)[0];return jr({store:e,pageInfo:null,aggregate:null},t.query).data[n][0]}function si(t,e){for(const{action:n,triple:r}of e)switch(n){case"added":lr(t,r);break;case"removed":dr(t,r);break}}function Da(t,e){var n,r,i,s;const o={};for(const{action:a,triple:u}of e){const[d,c,f]=u,h=(r=(n=t.attrs[c])===null||n===void 0?void 0:n["forward-identity"])===null||r===void 0?void 0:r[2];if(!h)continue;const p=(i=o[d])!==null&&i!==void 0?i:{};o[d]=p;const b=(s=p[h])!==null&&s!==void 0?s:{};switch(p[h]=b,a){case"added":b.newValue=f;break;case"removed":b.oldValue===void 0&&(b.oldValue=f);break}}return o}var xe;(function(t){t.InitialSyncBatch="InitialSyncBatch",t.InitialSyncComplete="InitialSyncComplete",t.LoadFromStorage="LoadFromStorage",t.SyncTransaction="SyncTransaction",t.Error="Error"})(xe||(xe={}));class $a{constructor(e,n,r,i,s){this.callbacks={},this.idToHash={},this.trySend=e,this.config=r,this.log=i,this.createStore=s,this.subs=new ln(n,"subs",{},xa,Ra,o=>Ma(o,this.config.useDateObjects))}beforeUnload(){this.subs.flush()}subscribe(e,n){const r=z(e);return this.callbacks[r]=this.callbacks[r]||[],this.callbacks[r].push(n),this.initSubscription(e,r,n),i=>{this.unsubscribe(r,n,i)}}unsubscribe(e,n,r){const i=(this.callbacks[e]||[]).filter(s=>s!==n);if(this.callbacks[e]=i,!i.length){if(delete this.callbacks[e],r)return;const s=this.subs.currentValue[e];s!=null&&s.state&&this.clearSubscriptionData(s.state.subscriptionId),this.subs.set(o=>(delete o[e],o))}}sendStart(e){this.trySend(W(),{op:"start-sync",q:e})}sendResync(e,n){this.idToHash[n.subscriptionId]=e.hash,this.trySend(n.subscriptionId,{op:"resync-table","subscription-id":n.subscriptionId,"tx-id":n.txId,token:n.token})}sendRemove(e){this.trySend(W(),{op:"remove-sync","subscription-id":e.subscriptionId})}initSubscription(e,n,r){return ii(this,void 0,void 0,function*(){yield this.subs.waitForLoaded();const i=this.subs.currentValue[n];if(i&&i.state&&i.state.txId){this.sendResync(i,i.state),i.entities&&r&&r({type:xe.LoadFromStorage,data:i.entities.map(s=>s.entity)});return}this.subs.set(s=>(s[n]={query:e,hash:n},s)),this.sendStart(e)})}flushPending(){return ii(this,void 0,void 0,function*(){yield this.subs.waitForLoaded();for(const e of Object.keys(this.callbacks)){const n=this.subs.currentValue[e];n?yield this.initSubscription(n.query,n.hash):this.log.error("Missing sub for hash in flushPending",e)}})}onStartSyncOk(e){const n=e["subscription-id"],r=e.q,i=z(r);this.idToHash[n]=i,this.subs.set(s=>{const o=s[i];return o?(o.state={subscriptionId:n,token:e.token},s):(this.log.error("Missing sub for hash",i,"subscription-id",n,"query",r),s)})}notifyCbs(e,n){for(const r of this.callbacks[e]||[])r(n)}onSyncLoadBatch(e){const n=e["subscription-id"],r=e["join-rows"],i=this.idToHash[n];if(!i){this.log.error("Missing hash for subscription",e);return}const s=[],a=this.subs.set(u=>{var d;const c=u[i];if(!c)return this.log.error("Missing sub for hash",i,e),u;const f=(d=c.entities)!==null&&d!==void 0?d:[];c.entities=f;for(const h of r){const p=this.createStore(h),b=yn(c,p);f.push({store:p,entity:b}),s.push(b)}return u})[i];a.entities&&this.notifyCbs(i,{type:xe.InitialSyncBatch,data:a.entities.map(u=>u.entity),batch:s})}onSyncInitFinish(e){const n=e["subscription-id"],r=this.idToHash[n];if(!r){this.log.error("Missing hash for subscription",e);return}this.subs.set(i=>{const s=i[r];if(!s)return this.log.error("Missing sub for hash",r,e),i;const o=s.state;return o?(o.txId=e["tx-id"],i):(this.log.error("Sub never set init, missing result",s,e),i)})}onSyncUpdateTriples(e){const n=e["subscription-id"],r=this.idToHash[n];if(!r){this.log.error("Missing hash for subscription",e);return}this.subs.set(i=>{var s;const o=i[r];if(!o)return this.log.error("Missing sub for hash",r,e),i;const a=o.state;if(!a)return this.log.error("Missing state for sub",o,e),i;for(const u of e.txes){if(a.txId>=u["tx-id"])continue;a.txId=u["tx-id"];const d=[],c={};for(const y of u.changes){const _=(s=c[y.triple[0]])!==null&&s!==void 0?s:[];c[y.triple[0]]=_,_.push(y)}const f=o.entities||[];o.entities=f;const h=[];e:for(const[y,_]of Object.entries(c))for(const[T,w]of Object.entries(f))if(ms(w.store,y)){si(w.store,_);const m=yn(o,w.store),I=Da(w.store,_)[y];for(const[v,{oldValue:R,newValue:F}]of Object.entries(I||{}))R===F&&delete I[v];m?(h.push({oldEntity:w.entity,newEntity:m,changedFields:I||{}}),w.entity=m):d.push(T),delete c[y];continue e}const p=[];for(const[y,_]of Object.entries(c)){const T=this.createStore([]);si(T,_);const w=yn(o,T);if(!w){this.log.error("No entity found after applying change",{sub:o,changes:_,store:T});continue}f.push({store:T,entity:w}),p.push(w)}const b=[];for(const y of d.sort().reverse())b.push(f[y].entity),f.splice(y,1);this.notifyCbs(r,{type:xe.SyncTransaction,data:f.map(y=>y.entity),added:p,removed:b,updated:h})}return i})}clearSubscriptionData(e){const n=this.idToHash[e];if(n){delete this.idToHash[e];const r=this.subs.currentValue[n];if(r.state&&this.sendRemove(r.state),this.subs.set(i=>(delete i[n],i)),r)return r}}onStartSyncError(e){const n=z(e["original-event"].q),r={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa.",status:e.status,type:e.type,hint:e.hint};this.notifyCbs(n,{type:xe.Error,data:[],error:r})}onResyncError(e){const n=e["original-event"]["subscription-id"],r=this.clearSubscriptionData(n);r&&this.initSubscription(r.query,r.hash)}}var L=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})},Ua=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const ye={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},La=3e4,Fa=3e4,Na=200,Wa={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},bn="_instant_oauth_redirect",_n="currentUser";function Va({transportType:t,appId:e,apiURI:n,wsURI:r,EventSourceImpl:i}){if(!i)return new ri(`${r}?app_id=${e}`);switch(t){case"ws":return new ri(`${r}?app_id=${e}`);case"sse":return new Pa(i,`${n}/runtime/sse?app_id=${e}`);default:throw new Error("Unknown transport type "+t)}}function za(){return typeof window<"u"||typeof chrome<"u"}const oi={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function Ka(t,e){var n;const r=typeof t=="string"?JSON.parse(t):t;for(const i in r){const s=r[i];if(!((n=s==null?void 0:s.result)===null||n===void 0)&&n.store){const o=s.result.store;s.result.store=cr(Object.assign(Object.assign({},o),{useDateObjects:e}))}}return r}function qa(t){var e;const n={};for(const r in t){const i=t[r],s=Object.assign({},i);!((e=i.result)===null||e===void 0)&&e.store&&(s.result=Object.assign(Object.assign({},i.result),{store:ur(i.result.store)})),n[r]=s}return n}function ai(t){return[...t].sort((e,n)=>{const[r,i]=e,[s,o]=n,a=i.order||0,u=o.order||0;return a==u?r<s?-1:r>s?1:0:a-u})}class Ba{constructor(e,n=Dr,r=$r,i,s){var o,a,u;if(this._isOnline=!0,this._isShutdown=!1,this.status=ye.CONNECTING,this.queryCbs={},this.queryOnceDfds={},this.authCbs=[],this.attrsCbs=[],this.mutationErrorCbs=[],this.connectionStatusCbs=[],this.mutationDeferredStore=new Map,this._reconnectTimeoutId=null,this._reconnectTimeoutMs=0,this._transportType="ws",this._wsOk=null,this._localIdPromises={},this._errorMessage=null,this._oauthCallbackResponse=null,this._linkIndex=null,this._rooms={},this._roomsPendingLeave={},this._presence={},this._broadcastQueue=[],this._broadcastSubs={},this._currentUserCached={isLoading:!0,error:void 0,user:void 0},this._beforeUnloadCbs=[],this._dataForQueryCache={},this._inFlightMutationEventIds=new Set,this._onMergeQuerySubs=(d,c)=>{const f=d||{},h=Object.assign({},c);Object.entries(c).forEach(([b,y])=>{var _;const T=(_=f==null?void 0:f[b])===null||_===void 0?void 0:_.result,w=y.result;T&&!w&&(h[b].result=T)}),Object.keys(f).filter(b=>!c[b]).sort((b,y)=>{var _,T;const w=((_=f[b])===null||_===void 0?void 0:_.lastAccessed)||0;return(((T=f[y])===null||T===void 0?void 0:T.lastAccessed)||0)-w}).slice(0,this.queryCacheLimit).forEach(b=>{h[b]=f[b]}),this.querySubs.set(b=>h),this.loadedNotifyAll()},this._onMergePendingMutations=(d,c)=>{const f=new Map([...d.entries(),...c.entries()]);this.pendingMutations.set(p=>f),this.loadedNotifyAll(),this._rewriteMutationsSorted(this.attrs,d).forEach(([p,b])=>{!c.has(p)&&!b["tx-id"]&&this._sendMutation(p,b)})},this.getPreviousResult=d=>{const c=z(d);return this.dataForQuery(c)},this.notifyOne=d=>{var c,f;const h=(c=this.queryCbs[d])!==null&&c!==void 0?c:[],p=(f=this._dataForQueryCache[d])===null||f===void 0?void 0:f.data,b=this.dataForQuery(d);b&&(lt(b,p)||h.forEach(y=>y.cb(b)))},this.notifyOneQueryOnce=d=>{var c;const f=(c=this.queryOnceDfds[d])!==null&&c!==void 0?c:[],h=this.dataForQuery(d);f.forEach(p=>{this._completeQueryOnce(p.q,d,p.dfd),p.dfd.resolve(h)})},this.notifyQueryError=(d,c)=>{(this.queryCbs[d]||[]).forEach(h=>h.cb({error:c}))},this.pushTx=d=>{this.config.disableValidation||Ia(d,this.config.schema);try{const c=ia({attrs:this.optimisticAttrs(),schema:this.config.schema,stores:Object.values(this.querySubs.currentValue).map(f=>{var h;return(h=f==null?void 0:f.result)===null||h===void 0?void 0:h.store}),useDateObjects:this.config.useDateObjects},d);return this.pushOps(c)}catch(c){return this.pushOps([],c)}},this.pushOps=(d,c)=>{const f=W(),h=[...this.pendingMutations.currentValue.values()],p=Math.max(0,...h.map(_=>_.order||0))+1,b={op:"transact","tx-steps":d,created:Date.now(),error:c,order:p};this.pendingMutations.set(_=>(_.set(f,b),_));const y=new Wr;return this.mutationDeferredStore.set(f,y),this._sendMutation(f,b),this.notifyAll(),y.promise},this._transportOnOpen=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][open]",c.id,"skip; this is no longer the current transport");return}this._log.info("[socket][open]",this._transport.id),this._setStatus(ye.OPENED),this.getCurrentUser().then(f=>{var h;this._trySend(W(),{op:"init","app-id":this.config.appId,"refresh-token":(h=f.user)===null||h===void 0?void 0:h.refresh_token,versions:this.versions,"__admin-token":this.config.__adminToken})}).catch(f=>{this._log.error("[socket][error]",c.id,f)})},this._transportOnMessage=d=>{const c=d.target,f=d.message;if(this._transport!==c){this._log.info("[socket][message]",c.id,f,"skip; this is no longer the current transport");return}!this._wsOk&&c.type==="ws"&&(this._wsOk=!0),this._transportType="ws",this._handleReceive(c.id,d.message)},this._transportOnError=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][error]",c.id,"skip; this is no longer the current transport");return}this._log.error("[socket][error]",c.id,d)},this._scheduleReconnect=()=>{!this._wsOk&&this._transportType!=="sse"&&(this._transportType="sse",this._reconnectTimeoutMs=0),setTimeout(()=>{if(this._reconnectTimeoutMs=Math.min(this._reconnectTimeoutMs+1e3,1e4),!this._isOnline){this._log.info("[socket][close]",this._transport.id,"we are offline, no need to start socket");return}this._startSocket()},this._reconnectTimeoutMs)},this._transportOnClose=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][close]",c.id,"skip; this is no longer the current transport");return}this._setStatus(ye.CLOSED);for(const f of Object.values(this._rooms))f.isConnected=!1;if(this._isShutdown){this._log.info("[socket][close]",c.id,"Reactor has been shut down and will not reconnect");return}this._log.info("[socket][close]",c.id,"schedule reconnect, ms =",this._reconnectTimeoutMs),this._scheduleReconnect()},this._EventSource=s,this.config=Object.assign(Object.assign({},Wa),e),this.queryCacheLimit=(o=this.config.queryCacheLimit)!==null&&o!==void 0?o:10,this._pendingTxCleanupTimeout=(a=this.config.pendingTxCleanupTimeout)!==null&&a!==void 0?a:Fa,this._pendingMutationCleanupThreshold=(u=this.config.pendingMutationCleanupThreshold)!==null&&u!==void 0?u:Na,this._log=ma(e.verbose||fn||Lr,()=>this._reactorStats()),this.versions=Object.assign(Object.assign({},i||{}),{"@instantdb/core":hn}),this.config.schema&&(this._linkIndex=Kr(this.config.schema)),!!za()){if(!e.appId)throw new Error("Instant must be initialized with an appId.");if(!je(e.appId))throw new Error(`Instant must be initialized with a valid appId. \`${e.appId}\` is not a valid uuid.`);typeof BroadcastChannel=="function"&&(this._broadcastChannel=new BroadcastChannel("@instantdb"),this._broadcastChannel.addEventListener("message",d=>L(this,void 0,void 0,function*(){var c;try{if(((c=d.data)===null||c===void 0?void 0:c.type)==="auth"){const f=yield this.getCurrentUser();this.updateUser(f.user)}}catch(f){this._log.error("[error] handle broadcast channel",f)}}))),this._initStorage(n),this._syncTable=new $a(this._trySendAuthed.bind(this),this._persister,{useDateObjects:this.config.useDateObjects},this._log,d=>pt(this.attrs,d,this.config.enableCardinalityInference,this._linkIndex,this.config.useDateObjects)),this._oauthCallbackResponse=this._oauthLoginInit(),this.getCurrentUser(),r.getIsOnline().then(d=>{this._isOnline=d,this._startSocket(),r.listen(c=>{c!==this._isOnline&&(this._log.info("[network] online =",c),this._isOnline=c,this._isOnline?this._startSocket():(this._log.info("Changing status from",this.status,"to",ye.CLOSED),this._setStatus(ye.CLOSED)))})}),typeof addEventListener<"u"&&(this._beforeUnload=this._beforeUnload.bind(this),addEventListener("beforeunload",this._beforeUnload))}}updateSchema(e){this.config=Object.assign(Object.assign({},this.config),{schema:e,cardinalityInference:!!e}),this._linkIndex=e?Kr(this.config.schema):null}_reactorStats(){return{inFlightMutationCount:this._inFlightMutationEventIds.size,pendingMutationCount:this.pendingMutations.currentValue.size,transportType:this._transportType}}_initStorage(e){this._persister=new e(`instant_${this.config.appId}_5`),this.querySubs=new ln(this._persister,"querySubs",{},this._onMergeQuerySubs,qa,n=>Ka(n,this.config.useDateObjects)),this.pendingMutations=new ln(this._persister,"pendingMutations",new Map,this._onMergePendingMutations,n=>[...n.entries()],n=>new Map(typeof n=="string"?JSON.parse(n):n),100,100),this._beforeUnloadCbs.push(()=>{this.pendingMutations.flush(),this.querySubs.flush()})}_beforeUnload(){for(const e of this._beforeUnloadCbs)e();this._syncTable.beforeUnload()}_finishTransaction(e,n,r){const i=this.mutationDeferredStore.get(n);this.mutationDeferredStore.delete(n);const s=e!=="error"&&e!=="timeout";if(!i&&!s&&console.error("Mutation failed",Object.assign({status:e,eventId:n},r)),!!i)if(s)i.resolve({status:e,eventId:n});else if(r.type){const{status:o}=r,a=Ua(r,["status"]);i.reject(new Ye({body:a,status:o}))}else i.reject(new Pe(r.message,r.hint))}_setStatus(e,n){this.status=e,this._errorMessage=n,this.notifyConnectionStatusSubs(e)}_flushEnqueuedRoomData(e){var n,r;const i=(r=(n=this._presence[e])===null||n===void 0?void 0:n.result)===null||r===void 0?void 0:r.user,s=this._broadcastQueue[e];if(this._broadcastQueue[e]=[],i&&this._trySetPresence(e,i),s)for(const o of s){const{topic:a,roomType:u,data:d}=o;this._tryBroadcast(e,u,a,d)}}_handleReceive(e,n){var r,i,s,o,a,u;const d=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(oi[n.op]||this._log.info("[receive]",e,n.op,n),n.op){case"init-ok":{this._setStatus(ye.AUTHENTICATED),this._reconnectTimeoutMs=0,this._setAttrs(n.attrs),this._flushPendingMessages(),this._sessionId=n["session-id"];for(const h of Object.keys(this._rooms)){const p=(i=(r=this._presence[h])===null||r===void 0?void 0:r.result)===null||i===void 0?void 0:i.user;this._tryJoinRoom(h,p)}break}case"add-query-exists":{this.notifyOneQueryOnce(z(n.q));break}case"add-query-ok":{const{q:h,result:p}=n,b=z(h),y=(o=(s=p==null?void 0:p[0])===null||s===void 0?void 0:s.data)===null||o===void 0?void 0:o["page-info"],_=(u=(a=p==null?void 0:p[0])===null||a===void 0?void 0:a.data)===null||u===void 0?void 0:u.aggregate,T=zr(p),w=pt(this.attrs,T,d,this._linkIndex,this.config.useDateObjects);this.querySubs.set(m=>(m[b].result={store:w,pageInfo:y,aggregate:_,processedTxId:n["processed-tx-id"]},m)),this._cleanupPendingMutationsQueries(),this.notifyOne(b),this.notifyOneQueryOnce(b),this._cleanupPendingMutationsTimeout();break}case"start-sync-ok":{this._syncTable.onStartSyncOk(n);break}case"sync-load-batch":{this._syncTable.onSyncLoadBatch(n);break}case"sync-init-finish":{this._syncTable.onSyncInitFinish(n);break}case"sync-update-triples":{this._syncTable.onSyncUpdateTriples(n);break}case"refresh-ok":{const{computations:h,attrs:p}=n,b=n["processed-tx-id"];p&&this._setAttrs(p),this._cleanupPendingMutationsTimeout();const y=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue,b);y!==this.pendingMutations.currentValue&&this.pendingMutations.set(()=>y);const _=ai(y.entries()),T=h.map(w=>{var m,I,v,R;const F=w["instaql-query"],Y=w["instaql-result"],st=z(F),Ct=zr(Y),Rn=pt(this.attrs,Ct,d,this._linkIndex,this.config.useDateObjects),xn=this._applyOptimisticUpdates(Rn,_,b),kt=(I=(m=Y==null?void 0:Y[0])===null||m===void 0?void 0:m.data)===null||I===void 0?void 0:I["page-info"],le=(R=(v=Y==null?void 0:Y[0])===null||v===void 0?void 0:v.data)===null||R===void 0?void 0:R.aggregate;return{hash:st,store:xn,pageInfo:kt,aggregate:le}});T.forEach(({hash:w,store:m,pageInfo:I,aggregate:v})=>{this.querySubs.set(R=>(R[w].result={store:m,pageInfo:I,aggregate:v,processedTxId:b},R))}),this._cleanupPendingMutationsQueries(),T.forEach(({hash:w})=>{this.notifyOne(w)});break}case"transact-ok":{const{"client-event-id":h,"tx-id":p}=n;this._inFlightMutationEventIds.delete(h);const y=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue).get(h);if(!y)break;this.pendingMutations.set(T=>(T.set(h,Object.assign(Object.assign({},T.get(h)),{"tx-id":p,confirmed:Date.now()})),T));const _=y["tx-steps"].filter(([T,...w])=>T==="add-attr").map(([T,w])=>w).concat(Object.values(this.attrs));this._setAttrs(_),this._finishTransaction("synced",h),this._cleanupPendingMutationsTimeout();break}case"patch-presence":{const h=n["room-id"];this._trySetRoomConnected(h,!0),this._patchPresencePeers(h,n.edits),this._notifyPresenceSubs(h);break}case"refresh-presence":{const h=n["room-id"];this._trySetRoomConnected(h,!0),this._setPresencePeers(h,n.data),this._notifyPresenceSubs(h);break}case"server-broadcast":{const h=n["room-id"],p=n.topic;this._trySetRoomConnected(h,!0),this._notifyBroadcastSubs(h,p,n);break}case"join-room-ok":{const h=n["room-id"];if(!this._rooms[h]){this._roomsPendingLeave[h]&&(this._tryLeaveRoom(h),delete this._roomsPendingLeave[h]);break}this._trySetRoomConnected(h,!0),this._flushEnqueuedRoomData(h);break}case"leave-room-ok":{const h=n["room-id"];this._trySetRoomConnected(h,!1);break}case"join-room-error":const c=n["room-id"],f=this._rooms[c];f&&(f.error=n.error),this._notifyPresenceSubs(c);break;case"error":this._handleReceiveError(n);break;default:this._log.info("Uknown op",n.op,n);break}}_handleMutationError(e,n,r){const i=this.pendingMutations.currentValue.get(n);if(i&&(e!=="timeout"||!i["tx-id"])){this.pendingMutations.set(o=>(o.delete(n),o)),this._inFlightMutationEventIds.delete(n);const s={message:r.message,hint:r.hint};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(s),this._finishTransaction(e,n,r)}}_handleReceiveError(e){var n,r,i,s,o,a,u;console.log("error",e);const d=e["client-event-id"];this._inFlightMutationEventIds.delete(d);const c=this.pendingMutations.currentValue.get(d),f={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(e.hint&&(f.hint=e.hint),c){this._handleMutationError("error",d,e);return}if(!((n=e["original-event"])===null||n===void 0)&&n.hasOwnProperty("q")&&((r=e["original-event"])===null||r===void 0?void 0:r.op)==="add-query"){const b=(i=e["original-event"])===null||i===void 0?void 0:i.q,y=z(b);this.notifyQueryError(z(b),f),this.notifyQueryOnceError(b,y,d,f);return}if(((s=e["original-event"])===null||s===void 0?void 0:s.op)==="init"){if(e.type==="record-not-found"&&((o=e.hint)===null||o===void 0?void 0:o["record-type"])==="app-user"){this.changeCurrentUser(null);return}this._setStatus(ye.ERRORED,f),this.notifyAll();return}if(((a=e["original-event"])===null||a===void 0?void 0:a.op)==="resync-table"){this._syncTable.onResyncError(e);return}if(((u=e["original-event"])===null||u===void 0?void 0:u.op)==="start-sync"){this._syncTable.onStartSyncError(e);return}const p=Object.assign({},e);delete p.message,delete p.hint,console.error(e.message,p),e.hint&&console.error(`This error comes with some debugging information. Here it is:
2
+ `,e.hint)}notifyQueryOnceError(e,n,r,i){var s;const o=(s=this.queryOnceDfds[n])===null||s===void 0?void 0:s.find(a=>a.eventId===r);o&&(o.dfd.reject(i),this._completeQueryOnce(e,n,o.dfd))}_setAttrs(e){this.attrs=e.reduce((n,r)=>(n[r.id]=r,n),{}),this.notifyAttrsSubs()}_startQuerySub(e,n){const r=W();return this.querySubs.set(i=>(i[n]=i[n]||{q:e,result:null,eventId:r},i[n].lastAccessed=Date.now(),i)),this._trySendAuthed(r,{op:"add-query",q:e}),r}subscribeTable(e,n){return this._syncTable.subscribe(e,n)}subscribeQuery(e,n,r){var i;this.config.disableValidation||Hr(e,this.config.schema),r&&"ruleParams"in r&&(e=Object.assign({$$ruleParams:r.ruleParams},e));const s=z(e),o=this.getPreviousResult(e);return o&&n(o),this.queryCbs[s]=(i=this.queryCbs[s])!==null&&i!==void 0?i:[],this.queryCbs[s].push({q:e,cb:n}),this._startQuerySub(e,s),()=>{this._unsubQuery(e,s,n)}}queryOnce(e,n){var r;this.config.disableValidation||Hr(e,this.config.schema),n&&"ruleParams"in n&&(e=Object.assign({$$ruleParams:n.ruleParams},e));const i=new Wr;if(!this._isOnline)return i.reject(new Error("We can't run `queryOnce`, because the device is offline.")),i.promise;if(!this.querySubs)return i.reject(new Error("We can't run `queryOnce` on the backend. Use adminAPI.query instead: https://www.instantdb.com/docs/backend#query")),i.promise;const s=z(e),o=this._startQuerySub(e,s);return this.queryOnceDfds[s]=(r=this.queryOnceDfds[s])!==null&&r!==void 0?r:[],this.queryOnceDfds[s].push({q:e,dfd:i,eventId:o}),setTimeout(()=>i.reject(new Error("Query timed out")),La),i.promise}_completeQueryOnce(e,n,r){this.queryOnceDfds[n]&&(this.queryOnceDfds[n]=this.queryOnceDfds[n].filter(i=>i.dfd!==r),this._cleanupQuery(e,n))}_unsubQuery(e,n,r){this.queryCbs[n]&&(this.queryCbs[n]=this.queryCbs[n].filter(i=>i.cb!==r),this._cleanupQuery(e,n))}_cleanupQuery(e,n){var r,i;!((r=this.queryCbs[n])===null||r===void 0)&&r.length||!((i=this.queryOnceDfds[n])===null||i===void 0)&&i.length||(delete this.queryCbs[n],delete this.queryOnceDfds[n],this._trySendAuthed(W(),{op:"remove-query",q:e}))}_rewriteMutations(e,n,r){if(!e)return n;const i=c=>{const[f,h,p]=c["forward-identity"];return q(e,h,p)},s=c=>{const[f,h,p]=c["forward-identity"];return me(e,h,p)},o={attrIdMap:{},refSwapAttrIds:new Set};let a=!1;const u=(c,f)=>{const h=[];for(const p of c){const[b]=p;if(b==="add-attr"){const[_,T]=p,w=i(T);if(w&&T.id!==w.id){o.attrIdMap[T.id]=w.id,a=!0;continue}if(T["value-type"]==="ref"){const m=s(T);if(m){o.attrIdMap[T.id]=m.id,o.refSwapAttrIds.add(T.id),a=!0;continue}}}if(r&&f&&r>=f&&b==="add-attr"||b==="update-attr"||b==="delete-attr"){a=!0;continue}const y=a?xo(o,p):p;h.push(y)}return a?h:c},d=new Map;for(const[c,f]of n.entries())d.set(c,Object.assign(Object.assign({},f),{"tx-steps":u(f["tx-steps"],f["tx-id"])}));return a?d:n}_rewriteMutationsSorted(e,n){return ai(this._rewriteMutations(e,n).entries())}optimisticAttrs(){var e;const n=[...this.pendingMutations.currentValue.values()].flatMap(a=>a["tx-steps"]),r=new Set(n.filter(([a,u])=>a==="delete-attr").map(([a,u])=>u)),i=[];for(const[a,u]of n)if(a==="add-attr")i.push(u);else if(a==="update-attr"&&u.id&&(!((e=this.attrs)===null||e===void 0)&&e[u.id])){const d=Object.assign(Object.assign({},this.attrs[u.id]),u);i.push(d)}const s=[...Object.values(this.attrs||{}),...i].filter(a=>!r.has(a.id));return Object.fromEntries(s.map(a=>[a.id,a]))}dataForQuery(e){const n=this._errorMessage;if(n)return{error:n};if(!this.querySubs||!this.pendingMutations)return;const r=this.querySubs.version(),i=this.querySubs.currentValue,s=this.pendingMutations.version(),o=this.pendingMutations.currentValue,{q:a,result:u}=i[e]||{};if(!u)return;const d=this._dataForQueryCache[e];if(d&&r===d.querySubVersion&&s===d.pendingMutationsVersion)return d.data;const{store:c,pageInfo:f,aggregate:h,processedTxId:p}=u,b=this._rewriteMutationsSorted(c.attrs,o),y=this._applyOptimisticUpdates(c,b,p),_=jr({store:y,pageInfo:f,aggregate:h},a);return this._dataForQueryCache[e]={querySubVersion:r,pendingMutationsVersion:s,data:_},_}_applyOptimisticUpdates(e,n,r){for(const[i,s]of n)(!s["tx-id"]||r&&s["tx-id"]>r)&&(e=Rs(e,s["tx-steps"]));return e}notifyAll(){Object.keys(this.queryCbs).forEach(e=>{this.notifyOne(e)})}loadedNotifyAll(){this.pendingMutations.isLoading()||this.querySubs.isLoading()||this.notifyAll()}shutdown(){var e;this._log.info("[shutdown]",this.config.appId),this._isShutdown=!0,(e=this._transport)===null||e===void 0||e.close()}_sendMutation(e,n){if(n.error){this._handleMutationError("error",e,{message:n.error.message});return}if(this.status!==ye.AUTHENTICATED){this._finishTransaction("enqueued",e);return}const r=Math.max(6e3,Math.min(this._inFlightMutationEventIds.size+1,this.pendingMutations.currentValue.size+1)*6e3);this._isOnline?(this._trySend(e,n),setTimeout(()=>{this._isOnline&&this._handleMutationError("timeout",e,{message:"transaction timed out"})},r)):this._finishTransaction("enqueued",e)}_flushPendingMessages(){Object.keys(this.queryCbs).map(i=>this.querySubs.currentValue[i]).filter(i=>i).forEach(({eventId:i,q:s})=>{this._trySendAuthed(i,{op:"add-query",q:s})}),Object.values(this.queryOnceDfds).flat().forEach(({eventId:i,q:s})=>{this._trySendAuthed(i,{op:"add-query",q:s})}),this._rewriteMutationsSorted(this.attrs,this.pendingMutations.currentValue).forEach(([i,s])=>{s["tx-id"]||this._sendMutation(i,s)}),this._syncTable.flushPending()}_cleanupPendingMutationsQueries(){let e=Number.MAX_SAFE_INTEGER;for(const{result:n}of Object.values(this.querySubs.currentValue))n!=null&&n.processedTxId&&(e=Math.min(e,n==null?void 0:n.processedTxId));this.pendingMutations.set(n=>{for(const[r,i]of Array.from(n.entries()))i["tx-id"]&&i["tx-id"]<=e&&n.delete(r);return n})}_cleanupPendingMutationsTimeout(){if(this.pendingMutations.currentValue.size<this._pendingMutationCleanupThreshold)return;const e=Date.now();this.pendingMutations.set(n=>{for(const[r,i]of Array.from(n.entries()))i.confirmed&&i.confirmed+this._pendingTxCleanupTimeout<e&&n.delete(r);return n})}_trySendAuthed(...e){this.status===ye.AUTHENTICATED&&this._trySend(...e)}_trySend(e,n,r){if(this._transport.isOpen()){switch(oi[n.op]||this._log.info("[send]",this._transport.id,n.op,n),n.op){case"transact":{this._inFlightMutationEventIds.add(e);break}case"init":this._inFlightMutationEventIds.clear()}this._transport.send(Object.assign({"client-event-id":e},n))}}_startSocket(){if(this._wsOk=null,this._isShutdown){this._log.info("[socket][start]",this.config.appId,"Reactor has been shut down and will not start a new socket");return}if(this._transport&&this._transport.isConnecting()){this._log.info("[socket][start]",this._transport.id,"maintained as current transport, we were still in a connecting state");return}const e=this._transport;this._transport=Va({transportType:this._transportType,appId:this.config.appId,apiURI:this.config.apiURI,wsURI:this.config.websocketURI,EventSourceImpl:this._EventSource}),this._transport.onopen=this._transportOnOpen,this._transport.onmessage=this._transportOnMessage,this._transport.onclose=this._transportOnClose,this._transport.onerror=this._transportOnError,this._log.info("[socket][start]",this._transport.id),e!=null&&e.isOpen()&&(this._log.info("[socket][start]",this._transport.id,"close previous transport id = ",e.id),e.close())}getLocalId(e){return L(this,void 0,void 0,function*(){const n=`localToken_${e}`,r=yield this._persister.getItem(n);if(r)return r;if(this._localIdPromises[n])return this._localIdPromises[n];const i=W();return this._localIdPromises[n]=this._persister.setItem(n,i).then(()=>i),this._localIdPromises[n]})}_replaceUrlAfterOAuth(){if(typeof URL>"u")return;const e=new URL(window.location.href);if(e.searchParams.get(bn)){const n=e.toString();e.searchParams.delete(bn),e.searchParams.delete("code"),e.searchParams.delete("error");const r=e.pathname+(e.searchParams.size?"?"+e.searchParams:"")+e.hash;if(history.replaceState(history.state,"",r),typeof navigation=="object"&&typeof navigation.addEventListener=="function"&&typeof navigation.removeEventListener=="function"){let i=!1;const s=o=>{var a;i||(i=!0,navigation.removeEventListener("navigate",s),!o.userInitiated&&o.navigationType==="replace"&&((a=o.destination)===null||a===void 0?void 0:a.url)===n&&history.replaceState(history.state,"",r))};navigation.addEventListener("navigate",s)}}}_oauthLoginInit(){return L(this,void 0,void 0,function*(){var e,n,r,i;if(typeof window>"u"||typeof window.location>"u"||typeof URLSearchParams>"u")return null;const s=new URLSearchParams(window.location.search);if(!s.get(bn))return null;const o=s.get("error");if(o)return this._replaceUrlAfterOAuth(),{error:{message:o}};const a=s.get("code");if(!a)return null;this._replaceUrlAfterOAuth();try{const u=yield this._getCurrentUser(),d=(u==null?void 0:u.type)==="guest",{user:c}=yield Ur({apiURI:this.config.apiURI,appId:this.config.appId,code:a,refreshToken:d?u.refresh_token:void 0});return this.setCurrentUser(c),null}catch(u){return((e=u==null?void 0:u.body)===null||e===void 0?void 0:e.type)==="record-not-found"&&((r=(n=u==null?void 0:u.body)===null||n===void 0?void 0:n.hint)===null||r===void 0?void 0:r["record-type"])==="app-oauth-code"&&(yield this._hasCurrentUser())?null:{error:{message:((i=u==null?void 0:u.body)===null||i===void 0?void 0:i.message)||"Error logging in."}}}})}_waitForOAuthCallbackResponse(){return L(this,void 0,void 0,function*(){return yield this._oauthCallbackResponse})}__subscribeMutationErrors(e){return this.mutationErrorCbs.push(e),()=>{this.mutationErrorCbs=this.mutationErrorCbs.filter(n=>n!==e)}}subscribeAuth(e){this.authCbs.push(e);const n=this._currentUserCached;n.isLoading||e(this._currentUserCached);let r=!1;return this.getCurrentUser().then(i=>{r||lt(i,n)||e(i)}),()=>{r=!0,this.authCbs=this.authCbs.filter(i=>i!==e)}}getAuth(){return L(this,void 0,void 0,function*(){const{user:e,error:n}=yield this.getCurrentUser();if(n)throw new Pe("Could not get current user: "+n.message);return e})}subscribeConnectionStatus(e){return this.connectionStatusCbs.push(e),()=>{this.connectionStatusCbs=this.connectionStatusCbs.filter(n=>n!==e)}}subscribeAttrs(e){return this.attrsCbs.push(e),this.attrs&&e(this.attrs),()=>{this.attrsCbs=this.attrsCbs.filter(n=>n!==e)}}notifyAuthSubs(e){this.authCbs.forEach(n=>n(e))}notifyMutationErrorSubs(e){this.mutationErrorCbs.forEach(n=>n(e))}notifyAttrsSubs(){if(!this.attrs)return;const e=this.optimisticAttrs();this.attrsCbs.forEach(n=>n(e))}notifyConnectionStatusSubs(e){this.connectionStatusCbs.forEach(n=>n(e))}setCurrentUser(e){return L(this,void 0,void 0,function*(){yield this._persister.setItem(_n,e)})}getCurrentUserCached(){return this._currentUserCached}_getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this._persister.getItem(_n);return typeof e=="string"?JSON.parse(e):e})}getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this._waitForOAuthCallbackResponse();if(e!=null&&e.error){const i={error:e.error,user:void 0};return this._currentUserCached=Object.assign({isLoading:!1},i),i}const r={user:yield this._getCurrentUser(),error:void 0};return this._currentUserCached=Object.assign({isLoading:!1},r),r})}_hasCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this._persister.getItem(_n);return JSON.parse(e)!=null})}changeCurrentUser(e){return L(this,void 0,void 0,function*(){var n;const{user:r}=yield this.getCurrentUser();if(!lt(r,e)){yield this.setCurrentUser(e),this.updateUser(e);try{(n=this._broadcastChannel)===null||n===void 0||n.postMessage({type:"auth"})}catch(i){console.error("Error posting message to broadcast channel",i)}}})}updateUser(e){const n={error:void 0,user:e};this._currentUserCached=Object.assign({isLoading:!1},n),this._dataForQueryCache={},this.querySubs.set(r=>(Object.keys(r).forEach(i=>{delete r[i].result}),r)),this._reconnectTimeoutMs=0,this._transport.close(),this._oauthCallbackResponse=null,this.notifyAuthSubs(n)}sendMagicCode({email:e}){return aa({apiURI:this.config.apiURI,appId:this.config.appId,email:e})}signInWithMagicCode(e){return L(this,arguments,void 0,function*({email:n,code:r}){var i;const s=yield this.getCurrentUser(),o=((i=s==null?void 0:s.user)===null||i===void 0?void 0:i.type)==="guest",a=yield ua({apiURI:this.config.apiURI,appId:this.config.appId,email:n,code:r,refreshToken:o?s.user.refresh_token:void 0});return yield this.changeCurrentUser(a.user),a})}signInWithCustomToken(e){return L(this,void 0,void 0,function*(){const n=yield ca({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:e});return yield this.changeCurrentUser(n.user),n})}signInAsGuest(){return L(this,void 0,void 0,function*(){const e=yield da({apiURI:this.config.apiURI,appId:this.config.appId});return yield this.changeCurrentUser(e.user),e})}potentiallyInvalidateToken(e,n){var r;const i=(r=e==null?void 0:e.user)===null||r===void 0?void 0:r.refresh_token;if(!i)return;if(n.invalidateToken===!1){this._log.info("[auth-invalidate] skipped invalidateToken");return}la({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:i}).then(()=>{this._log.info("[auth-invalidate] completed invalidateToken")}).catch(o=>{})}signOut(e){return L(this,void 0,void 0,function*(){const n=yield this.getCurrentUser();this.potentiallyInvalidateToken(n,e),yield this.changeCurrentUser(null)})}createAuthorizationURL({clientName:e,redirectURL:n}){const{apiURI:r,appId:i}=this.config;return`${r}/runtime/oauth/start?app_id=${i}&client_name=${e}&redirect_uri=${n}`}exchangeCodeForToken(e){return L(this,arguments,void 0,function*({code:n,codeVerifier:r}){var i;const s=yield this.getCurrentUser(),o=((i=s==null?void 0:s.user)===null||i===void 0?void 0:i.type)==="guest",a=yield Ur({apiURI:this.config.apiURI,appId:this.config.appId,code:n,codeVerifier:r,refreshToken:o?s.user.refresh_token:void 0});return yield this.changeCurrentUser(a.user),a})}issuerURI(){const{apiURI:e,appId:n}=this.config;return`${e}/runtime/${n}`}signInWithIdToken(e){return L(this,arguments,void 0,function*({idToken:n,clientName:r,nonce:i}){var s;const o=yield this.getCurrentUser(),a=(s=o==null?void 0:o.user)===null||s===void 0?void 0:s.refresh_token,u=yield fa({apiURI:this.config.apiURI,appId:this.config.appId,idToken:n,clientName:r,nonce:i,refreshToken:a});return yield this.changeCurrentUser(u.user),u})}joinRoom(e,n){let r=!1;this._rooms[e]||(r=!0,this._rooms[e]={isConnected:!1,error:void 0}),this._presence[e]=this._presence[e]||{};const i=this._presence[e].result;return n&&!i&&(this._presence[e].result=this._presence[e].result||{},this._presence[e].result.user=n,this._notifyPresenceSubs(e)),r&&this._tryJoinRoom(e,n),()=>{this._cleanupRoom(e)}}_cleanupRoom(e){var n,r,i,s;if(!(!((r=(n=this._presence[e])===null||n===void 0?void 0:n.handlers)===null||r===void 0)&&r.length)&&!Object.keys((i=this._broadcastSubs[e])!==null&&i!==void 0?i:{}).length){const o=(s=this._rooms[e])===null||s===void 0?void 0:s.isConnected;delete this._rooms[e],delete this._presence[e],delete this._broadcastSubs[e],o?this._tryLeaveRoom(e):this._roomsPendingLeave[e]=!0}}getPresence(e,n,r={}){const i=this._rooms[n],s=this._presence[n];return!i||!s||!s.result?null:Object.assign(Object.assign({},ga(s.result,r,this._sessionId)),{isLoading:!i.isConnected,error:i.error})}publishPresence(e,n,r){const i=this._rooms[n],s=this._presence[n];if(!i||!s)return;s.result=s.result||{};const o=Object.assign(Object.assign({},s.result.user),r);s.result.user=o,i.isConnected&&(this._trySetPresence(n,o),this._notifyPresenceSubs(n))}_trySetPresence(e,n){this._trySendAuthed(W(),{op:"set-presence","room-id":e,data:n})}_tryJoinRoom(e,n){this._trySendAuthed(W(),{op:"join-room","room-id":e,data:n}),delete this._roomsPendingLeave[e]}_tryLeaveRoom(e){this._trySendAuthed(W(),{op:"leave-room","room-id":e})}_trySetRoomConnected(e,n){const r=this._rooms[e];r&&(r.isConnected=n)}subscribePresence(e,n,r,i){const s=this.joinRoom(n,r.initialPresence||r.initialData),o=Object.assign(Object.assign({},r),{roomId:n,cb:i,prev:null});return this._presence[n]=this._presence[n]||{},this._presence[n].handlers=this._presence[n].handlers||[],this._presence[n].handlers.push(o),this._notifyPresenceSub(n,o),()=>{var a,u,d;this._presence[n].handlers=(d=(u=(a=this._presence[n])===null||a===void 0?void 0:a.handlers)===null||u===void 0?void 0:u.filter(c=>c!==o))!==null&&d!==void 0?d:[],s()}}_notifyPresenceSubs(e){var n,r;(r=(n=this._presence[e])===null||n===void 0?void 0:n.handlers)===null||r===void 0||r.forEach(i=>{this._notifyPresenceSub(e,i)})}_notifyPresenceSub(e,n){const r=this.getPresence("",e,n);r&&(n.prev&&!Ta(r,n.prev)||(n.prev=r,n.cb(r)))}_patchPresencePeers(e,n){var r,i,s;const o=((i=(r=this._presence[e])===null||r===void 0?void 0:r.result)===null||i===void 0?void 0:i.peers)||{};let a=Object.fromEntries(Object.entries(o).map(([d,c])=>[d,{data:c}]));(s=this._presence[e])===null||s===void 0||s.result;const u=Bt(a,d=>{for(let[c,f,h]of n)switch(f){case"+":ns(d,c,h);break;case"r":rr(d,c,h);break;case"-":ir(d,c);break}delete d[this._sessionId]});this._setPresencePeers(e,u)}_setPresencePeers(e,n){const r=Object.assign({},n);delete r[this._sessionId];const i=Object.fromEntries(Object.entries(r).map(([s,o])=>[s,o.data]));this._presence=Bt(this._presence,s=>{rr(s,[e,"result","peers"],i)})}publishTopic({roomType:e,roomId:n,topic:r,data:i}){var s;const o=this._rooms[n];if(o){if(!o.isConnected){this._broadcastQueue[n]=(s=this._broadcastQueue[n])!==null&&s!==void 0?s:[],this._broadcastQueue[n].push({topic:r,roomType:e,data:i});return}this._tryBroadcast(n,e,r,i)}}_tryBroadcast(e,n,r,i){this._trySendAuthed(W(),{op:"client-broadcast","room-id":e,roomType:n,topic:r,data:i})}subscribeTopic(e,n,r){const i=this.joinRoom(e);return this._broadcastSubs[e]=this._broadcastSubs[e]||{},this._broadcastSubs[e][n]=this._broadcastSubs[e][n]||[],this._broadcastSubs[e][n].push(r),this._presence[e]=this._presence[e]||{},()=>{this._broadcastSubs[e][n]=this._broadcastSubs[e][n].filter(s=>s!==r),this._broadcastSubs[e][n].length||delete this._broadcastSubs[e][n],i()}}_notifyBroadcastSubs(e,n,r){var i,s,o;(o=(s=(i=this._broadcastSubs)===null||i===void 0?void 0:i[e])===null||s===void 0?void 0:s[n])===null||o===void 0||o.forEach(a=>{var u,d,c,f,h,p;const b=(u=r.data)===null||u===void 0?void 0:u.data,y=r.data["peer-id"]===this._sessionId?(c=(d=this._presence[e])===null||d===void 0?void 0:d.result)===null||c===void 0?void 0:c.user:(p=(h=(f=this._presence[e])===null||f===void 0?void 0:f.result)===null||h===void 0?void 0:h.peers)===null||p===void 0?void 0:p[r.data["peer-id"]];return a(b,y)})}uploadFile(e,n,r){return L(this,void 0,void 0,function*(){var i;const s=yield this.getCurrentUser(),o=(i=s==null?void 0:s.user)===null||i===void 0?void 0:i.refresh_token;return ha(Object.assign(Object.assign({},r),{apiURI:this.config.apiURI,appId:this.config.appId,path:e,file:n,refreshToken:o}))})}deleteFile(e){return L(this,void 0,void 0,function*(){var n;const r=yield this.getCurrentUser(),i=(n=r==null?void 0:r.user)===null||n===void 0?void 0:n.refresh_token;return yield pa({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}upload(e,n){return L(this,void 0,void 0,function*(){var r;const i=yield this.getCurrentUser(),s=(r=i==null?void 0:i.user)===null||r===void 0?void 0:r.refresh_token,o=e||n.name,a=yield ya({apiURI:this.config.apiURI,appId:this.config.appId,fileName:o,refreshToken:s});return yield ba(a,n)})}getDownloadUrl(e){return L(this,void 0,void 0,function*(){var n;const r=yield this.getCurrentUser(),i=(n=r==null?void 0:r.user)===null||n===void 0?void 0:n.refresh_token;return yield _a({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}}function Ga(t,e){return new mt(ui(t,e),e,void 0)}function Qa(t){return new wt(t,{})}function Ha(){return new H("string",!0,!1)}function Ya(){return new H("number",!0,!1)}function Ja(){return new H("boolean",!0,!1)}function Za(){return new H("date",!0,!1)}function Xa(){return new H("json",!0,!1)}function eu(){return new H("json",!0,!1)}function ui(t,e){var n,r,i,s;const o={fwd:{},rev:{}};for(const u of Object.values(e))(n=o.fwd)[r=u.forward.on]||(n[r]={}),(i=o.rev)[s=u.reverse.on]||(i[s]={}),o.fwd[u.forward.on][u.forward.label]={entityName:u.reverse.on,cardinality:u.forward.has},o.rev[u.reverse.on][u.reverse.label]={entityName:u.forward.on,cardinality:u.reverse.has};return Object.fromEntries(Object.entries(t).map(([u,d])=>[u,new wt(d.attrs,Object.assign(Object.assign({},o.fwd[u]),o.rev[u]))]))}function tu({entities:t,links:e,rooms:n}){const r=e??{},i=n??{};return new mt(ui(t,r),r,i)}const nu={graph:Ga,schema:tu,entity:Qa,string:Ha,number:Ya,boolean:Ja,date:Za,json:Xa,any:eu};let St;function ru(t,e){St==null||St.dispose();const n=cu(e),r=ou(e,a),i=su(iu(t));function s(c){var f;c.source===i.element.contentWindow&&((f=c.data)===null||f===void 0?void 0:f.type)==="close"&&n.isVisible()&&a()}function o(c){const f=c.shiftKey&&c.ctrlKey&&c.key==="0",h=c.key==="Escape"||c.key==="Esc";(f||h&&n.isVisible())&&a()}function a(){n.isVisible()?n.element.style.display="none":(n.element.style.display="block",n.element.contains(i.element)||n.element.appendChild(i.element))}function u(){n.element.remove(),r.element.remove(),removeEventListener("keydown",o),removeEventListener("message",s)}function d(){document.body.appendChild(n.element),document.body.appendChild(r.element),addEventListener("keydown",o),addEventListener("message",s),St={dispose:u}}return d()}function iu(t){return`${fn||Fr?"http://localhost:3000":"https://instantdb.com"}/_devtool?appId=${t}`}function su(t){const e=document.createElement("iframe");return e.src=t,e.className="instant-devtool-iframe",Object.assign(e.style,{width:"100%",height:"100%",backgroundColor:"white",border:"none"}),{element:e}}function ou(t,e){const n=`
3
3
  <svg width="32" height="32" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
4
4
  <rect width="512" height="512" fill="black"/>
5
5
  <rect x="97.0973" y="91.3297" width="140" height="330" fill="white"/>
6
6
  </svg>
7
- `,r=document.createElement("button");return r.innerHTML=n,r.className="instant-devtool-toggler",Object.assign(r.style,Object.assign(Object.assign({position:"fixed"},au(t.position)),{height:"32px",width:"32px",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"9010",padding:"0",margin:"0",border:"none",cursor:"pointer"})),r.addEventListener("click",e),{element:r}}function au(t){switch(t){case"bottom-left":return{bottom:"24px",left:"24px"};case"bottom-right":return{bottom:"24px",right:"24px"};case"top-right":return{top:"24px",right:"24px"};case"top-left":return{top:"24px",left:"24px"}}}function uu(t){switch(t){case"bottom-left":return{bottom:"24px",right:"24px",left:"60px",top:"72px"};case"bottom-right":return{bottom:"24px",left:"24px",right:"60px",top:"72px"};case"top-right":return{top:"24px",left:"24px",right:"60px",bottom:"72px"};case"top-left":return{top:"24px",right:"24px",left:"60px",bottom:"72px"}}}function cu(t){const e=document.createElement("div");Object.assign(e.style,Object.assign(Object.assign({position:"fixed"},uu(t.position)),{display:"block",borderRadius:"4px",border:"1px #ccc solid",boxShadow:"0px 0px 8px #00000044",backgroundColor:"#eee",zIndex:"999990"})),e.style.display="none",e.className="instant-devtool-container";function n(){return e.style.display!=="none"}return{element:e,isVisible:n}}const du={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"};function fu(){var t;return globalThis.__instantDbSchemaHashStore=(t=globalThis.__instantDbSchemaHashStore)!==null&&t!==void 0?t:new WeakMap,globalThis.__instantDbSchemaHashStore}function lu(){var t;return globalThis.__instantDbStore=(t=globalThis.__instantDbStore)!==null&&t!==void 0?t:{},globalThis.__instantDbStore}function gn(t){const e=t.__adminToken;return t.appId+"_"+(t.websocketURI||"default_ws_uri")+"_"+(t.apiURI||"default_api_uri")+"_"+(e||"client_only")+"_"+t.useDateObjects}const Tn=lu(),wn=fu();class hu{constructor(e){this.db=e,this.sendMagicCode=n=>this.db.sendMagicCode(n),this.signInWithMagicCode=n=>this.db.signInWithMagicCode(n),this.signInWithToken=n=>this.db.signInWithCustomToken(n),this.signInAsGuest=()=>this.db.signInAsGuest(),this.createAuthorizationURL=n=>this.db.createAuthorizationURL(n),this.signInWithIdToken=n=>this.db.signInWithIdToken(n),this.exchangeOAuthCode=n=>this.db.exchangeCodeForToken(n),this.issuerURI=()=>this.db.issuerURI(),this.signOut=(n={invalidateToken:!0})=>this.db.signOut(n)}}class pu{constructor(e){this.db=e,this.uploadFile=(n,r,i={})=>this.db.uploadFile(n,r,i),this.delete=n=>this.db.deleteFile(n),this.upload=(n,r)=>this.db.upload(n,r),this.put=this.upload,this.getDownloadUrl=n=>this.db.getDownloadUrl(n)}}function yu(t){return JSON.parse(JSON.stringify(t))}class bu{constructor(e){this.tx=on(),this._reactor=e,this.auth=new hu(this._reactor),this.storage=new pu(this._reactor)}transact(e){return this._reactor.pushTx(e)}getLocalId(e){return this._reactor.getLocalId(e)}subscribeQuery(e,n,r){return this._reactor.subscribeQuery(e,n,r)}subscribeAuth(e){return this._reactor.subscribeAuth(e)}getAuth(){return this._reactor.getAuth()}subscribeConnectionStatus(e){return this._reactor.subscribeConnectionStatus(e)}joinRoom(e="_defaultRoomType",n="_defaultRoomId",r){return{leaveRoom:this._reactor.joinRoom(n,r==null?void 0:r.initialPresence),subscribeTopic:(s,o)=>this._reactor.subscribeTopic(n,s,o),subscribePresence:(s,o)=>this._reactor.subscribePresence(e,n,s,o),publishTopic:(s,o)=>this._reactor.publishTopic({roomType:e,roomId:n,topic:s,data:o}),publishPresence:s=>this._reactor.publishPresence(e,n,s),getPresence:s=>this._reactor.getPresence(e,n,s)}}shutdown(){delete Tn[gn(this._reactor.config)],this._reactor.shutdown()}queryOnce(e,n){return this._reactor.queryOnce(e,n)}}function ci(t){if(!t)return"0";if(wn.get(t))return wn.get(t);const e=G(t);return wn.set(t,e),e}function _u(t,e){return ci(t._reactor.config.schema)!==ci(e)}function gu(t,e,n,r,i){const s=Tn[gn(t)];if(s)return _u(s,t.schema)&&s._reactor.updateSchema(t.schema),s;const o=new Ba(Object.assign(Object.assign(Object.assign({},du),t),{cardinalityInference:!!t.schema}),e||Dr,n||$r,Object.assign(Object.assign({},r||{}),{"@instantdb/core":hn}),i),a=new bu(o);return Tn[gn(t)]=a,Tu(t.appId,t.devtool),a}function Tu(t,e){if(typeof window>"u"||typeof window.location>"u"||typeof document>"u"||typeof e=="boolean"&&!e)return;const n=Object.assign({position:"bottom-right",allowedHosts:["localhost"]},typeof e=="object"?e:{});n.allowedHosts.includes(window.location.hostname)&&ru(t,n)}var mn={exports:{}},Xe={};/**
7
+ `,r=document.createElement("button");return r.innerHTML=n,r.className="instant-devtool-toggler",Object.assign(r.style,Object.assign(Object.assign({position:"fixed"},au(t.position)),{height:"32px",width:"32px",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"9010",padding:"0",margin:"0",border:"none",cursor:"pointer"})),r.addEventListener("click",e),{element:r}}function au(t){switch(t){case"bottom-left":return{bottom:"24px",left:"24px"};case"bottom-right":return{bottom:"24px",right:"24px"};case"top-right":return{top:"24px",right:"24px"};case"top-left":return{top:"24px",left:"24px"}}}function uu(t){switch(t){case"bottom-left":return{bottom:"24px",right:"24px",left:"60px",top:"72px"};case"bottom-right":return{bottom:"24px",left:"24px",right:"60px",top:"72px"};case"top-right":return{top:"24px",left:"24px",right:"60px",bottom:"72px"};case"top-left":return{top:"24px",right:"24px",left:"60px",bottom:"72px"}}}function cu(t){const e=document.createElement("div");Object.assign(e.style,Object.assign(Object.assign({position:"fixed"},uu(t.position)),{display:"block",borderRadius:"4px",border:"1px #ccc solid",boxShadow:"0px 0px 8px #00000044",backgroundColor:"#eee",zIndex:"999990"})),e.style.display="none",e.className="instant-devtool-container";function n(){return e.style.display!=="none"}return{element:e,isVisible:n}}const du={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"};function fu(){var t;return globalThis.__instantDbSchemaHashStore=(t=globalThis.__instantDbSchemaHashStore)!==null&&t!==void 0?t:new WeakMap,globalThis.__instantDbSchemaHashStore}function lu(){var t;return globalThis.__instantDbStore=(t=globalThis.__instantDbStore)!==null&&t!==void 0?t:{},globalThis.__instantDbStore}function gn(t){const e=t.__adminToken;return t.appId+"_"+(t.websocketURI||"default_ws_uri")+"_"+(t.apiURI||"default_api_uri")+"_"+(e||"client_only")+"_"+t.useDateObjects}const Tn=lu(),wn=fu();class hu{constructor(e){this.db=e,this.sendMagicCode=n=>this.db.sendMagicCode(n),this.signInWithMagicCode=n=>this.db.signInWithMagicCode(n),this.signInWithToken=n=>this.db.signInWithCustomToken(n),this.signInAsGuest=()=>this.db.signInAsGuest(),this.createAuthorizationURL=n=>this.db.createAuthorizationURL(n),this.signInWithIdToken=n=>this.db.signInWithIdToken(n),this.exchangeOAuthCode=n=>this.db.exchangeCodeForToken(n),this.issuerURI=()=>this.db.issuerURI(),this.signOut=(n={invalidateToken:!0})=>this.db.signOut(n)}}class pu{constructor(e){this.db=e,this.uploadFile=(n,r,i={})=>this.db.uploadFile(n,r,i),this.delete=n=>this.db.deleteFile(n),this.upload=(n,r)=>this.db.upload(n,r),this.put=this.upload,this.getDownloadUrl=n=>this.db.getDownloadUrl(n)}}function yu(t){return JSON.parse(JSON.stringify(t))}class bu{constructor(e){this.tx=on(),this._reactor=e,this.auth=new hu(this._reactor),this.storage=new pu(this._reactor)}transact(e){return this._reactor.pushTx(e)}getLocalId(e){return this._reactor.getLocalId(e)}subscribeQuery(e,n,r){return this._reactor.subscribeQuery(e,n,r)}subscribeAuth(e){return this._reactor.subscribeAuth(e)}getAuth(){return this._reactor.getAuth()}subscribeConnectionStatus(e){return this._reactor.subscribeConnectionStatus(e)}joinRoom(e="_defaultRoomType",n="_defaultRoomId",r){return{leaveRoom:this._reactor.joinRoom(n,r==null?void 0:r.initialPresence),subscribeTopic:(s,o)=>this._reactor.subscribeTopic(n,s,o),subscribePresence:(s,o)=>this._reactor.subscribePresence(e,n,s,o),publishTopic:(s,o)=>this._reactor.publishTopic({roomType:e,roomId:n,topic:s,data:o}),publishPresence:s=>this._reactor.publishPresence(e,n,s),getPresence:s=>this._reactor.getPresence(e,n,s)}}shutdown(){delete Tn[gn(this._reactor.config)],this._reactor.shutdown()}queryOnce(e,n){return this._reactor.queryOnce(e,n)}}function ci(t){if(!t)return"0";if(wn.get(t))return wn.get(t);const e=z(t);return wn.set(t,e),e}function _u(t,e){return ci(t._reactor.config.schema)!==ci(e)}function gu(t,e,n,r,i){const s=Tn[gn(t)];if(s)return _u(s,t.schema)&&s._reactor.updateSchema(t.schema),s;const o=new Ba(Object.assign(Object.assign(Object.assign({},du),t),{cardinalityInference:!!t.schema}),e||Dr,n||$r,Object.assign(Object.assign({},r||{}),{"@instantdb/core":hn}),i),a=new bu(o);return Tn[gn(t)]=a,Tu(t.appId,t.devtool),a}function Tu(t,e){if(typeof window>"u"||typeof window.location>"u"||typeof document>"u"||typeof e=="boolean"&&!e)return;const n=Object.assign({position:"bottom-right",allowedHosts:["localhost"]},typeof e=="object"?e:{});n.allowedHosts.includes(window.location.hostname)&&ru(t,n)}var mn={exports:{}},Xe={};/**
8
8
  * @license React
9
9
  * react-jsx-runtime.production.min.js
10
10
  *
@@ -24,17 +24,17 @@
24
24
  `+$n+l}}var Un=!1,It;{var Bu=typeof WeakMap=="function"?WeakMap:Map;It=new Bu}function ji(l,g){if(!l||Un)return"";{var S=It.get(l);if(S!==void 0)return S}var O;Un=!0;var P=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var M;M=Dn.current,Dn.current=null,Ku();try{if(g){var j=function(){throw Error()};if(Object.defineProperty(j.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(j,[])}catch(ne){O=ne}Reflect.construct(l,[],j)}else{try{j.call()}catch(ne){O=ne}l.call(j.prototype)}}else{try{throw Error()}catch(ne){O=ne}l()}}catch(ne){if(ne&&O&&typeof ne.stack=="string"){for(var C=ne.stack.split(`
25
25
  `),J=O.stack.split(`
26
26
  `),U=C.length-1,N=J.length-1;U>=1&&N>=0&&C[U]!==J[N];)N--;for(;U>=1&&N>=0;U--,N--)if(C[U]!==J[N]){if(U!==1||N!==1)do if(U--,N--,N<0||C[U]!==J[N]){var oe=`
27
- `+C[U].replace(" at new "," at ");return l.displayName&&oe.includes("<anonymous>")&&(oe=oe.replace("<anonymous>",l.displayName)),typeof l=="function"&&It.set(l,oe),oe}while(U>=1&&N>=0);break}}}finally{Un=!1,Dn.current=M,qu(),Error.prepareStackTrace=P}var Ne=l?l.displayName||l.name:"",Ee=Ne?jt(Ne):"";return typeof l=="function"&&It.set(l,Ee),Ee}function Gu(l,g,S){return ji(l,!1)}function Qu(l){var g=l.prototype;return!!(g&&g.isReactComponent)}function Pt(l,g,S){if(l==null)return"";if(typeof l=="function")return ji(l,Qu(l));if(typeof l=="string")return jt(l);switch(l){case c:return jt("Suspense");case f:return jt("SuspenseList")}if(typeof l=="object")switch(l.$$typeof){case d:return Gu(l.render);case h:return Pt(l.type,g,S);case p:{var O=l,P=O._payload,M=O._init;try{return Pt(M(P),g,S)}catch{}}}return""}var at=Object.prototype.hasOwnProperty,Ii={},Pi=w.ReactDebugCurrentFrame;function Mt(l){if(l){var g=l._owner,S=Pt(l.type,l._source,g?g.type:null);Pi.setExtraStackFrame(S)}else Pi.setExtraStackFrame(null)}function Hu(l,g,S,O,P){{var M=Function.call.bind(at);for(var j in l)if(M(l,j)){var C=void 0;try{if(typeof l[j]!="function"){var J=Error((O||"React class")+": "+S+" type `"+j+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof l[j]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw J.name="Invariant Violation",J}C=l[j](g,j,O,S,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(U){C=U}C&&!(C instanceof Error)&&(Mt(P),m("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",O||"React class",S,j,typeof C),Mt(null)),C instanceof Error&&!(C.message in Ii)&&(Ii[C.message]=!0,Mt(P),m("Failed %s type: %s",S,C.message),Mt(null))}}}var Yu=Array.isArray;function Ln(l){return Yu(l)}function Ju(l){{var g=typeof Symbol=="function"&&Symbol.toStringTag,S=g&&l[Symbol.toStringTag]||l.constructor.name||"Object";return S}}function Zu(l){try{return Mi(l),!1}catch{return!0}}function Mi(l){return""+l}function Ri(l){if(Zu(l))return m("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Ju(l)),Mi(l)}var xi=w.ReactCurrentOwner,Xu={key:!0,ref:!0,__self:!0,__source:!0},Di,$i;function ec(l){if(at.call(l,"ref")){var g=Object.getOwnPropertyDescriptor(l,"ref").get;if(g&&g.isReactWarning)return!1}return l.ref!==void 0}function tc(l){if(at.call(l,"key")){var g=Object.getOwnPropertyDescriptor(l,"key").get;if(g&&g.isReactWarning)return!1}return l.key!==void 0}function nc(l,g){typeof l.ref=="string"&&xi.current}function rc(l,g){{var S=function(){Di||(Di=!0,m("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",g))};S.isReactWarning=!0,Object.defineProperty(l,"key",{get:S,configurable:!0})}}function ic(l,g){{var S=function(){$i||($i=!0,m("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",g))};S.isReactWarning=!0,Object.defineProperty(l,"ref",{get:S,configurable:!0})}}var sc=function(l,g,S,O,P,M,j){var C={$$typeof:n,type:l,key:g,ref:S,props:j,_owner:M};return C._store={},Object.defineProperty(C._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(C,"_self",{configurable:!1,enumerable:!1,writable:!1,value:O}),Object.defineProperty(C,"_source",{configurable:!1,enumerable:!1,writable:!1,value:P}),Object.freeze&&(Object.freeze(C.props),Object.freeze(C)),C};function oc(l,g,S,O,P){{var M,j={},C=null,J=null;S!==void 0&&(Ri(S),C=""+S),tc(g)&&(Ri(g.key),C=""+g.key),ec(g)&&(J=g.ref,nc(g,P));for(M in g)at.call(g,M)&&!Xu.hasOwnProperty(M)&&(j[M]=g[M]);if(l&&l.defaultProps){var U=l.defaultProps;for(M in U)j[M]===void 0&&(j[M]=U[M])}if(C||J){var N=typeof l=="function"?l.displayName||l.name||"Unknown":l;C&&rc(j,N),J&&ic(j,N)}return sc(l,C,J,P,O,xi.current,j)}}var Fn=w.ReactCurrentOwner,Ui=w.ReactDebugCurrentFrame;function Fe(l){if(l){var g=l._owner,S=Pt(l.type,l._source,g?g.type:null);Ui.setExtraStackFrame(S)}else Ui.setExtraStackFrame(null)}var Nn;Nn=!1;function Wn(l){return typeof l=="object"&&l!==null&&l.$$typeof===n}function Li(){{if(Fn.current){var l=le(Fn.current.type);if(l)return`
27
+ `+C[U].replace(" at new "," at ");return l.displayName&&oe.includes("<anonymous>")&&(oe=oe.replace("<anonymous>",l.displayName)),typeof l=="function"&&It.set(l,oe),oe}while(U>=1&&N>=0);break}}}finally{Un=!1,Dn.current=M,qu(),Error.prepareStackTrace=P}var We=l?l.displayName||l.name:"",Ee=We?jt(We):"";return typeof l=="function"&&It.set(l,Ee),Ee}function Gu(l,g,S){return ji(l,!1)}function Qu(l){var g=l.prototype;return!!(g&&g.isReactComponent)}function Pt(l,g,S){if(l==null)return"";if(typeof l=="function")return ji(l,Qu(l));if(typeof l=="string")return jt(l);switch(l){case c:return jt("Suspense");case f:return jt("SuspenseList")}if(typeof l=="object")switch(l.$$typeof){case d:return Gu(l.render);case h:return Pt(l.type,g,S);case p:{var O=l,P=O._payload,M=O._init;try{return Pt(M(P),g,S)}catch{}}}return""}var at=Object.prototype.hasOwnProperty,Ii={},Pi=w.ReactDebugCurrentFrame;function Mt(l){if(l){var g=l._owner,S=Pt(l.type,l._source,g?g.type:null);Pi.setExtraStackFrame(S)}else Pi.setExtraStackFrame(null)}function Hu(l,g,S,O,P){{var M=Function.call.bind(at);for(var j in l)if(M(l,j)){var C=void 0;try{if(typeof l[j]!="function"){var J=Error((O||"React class")+": "+S+" type `"+j+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof l[j]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw J.name="Invariant Violation",J}C=l[j](g,j,O,S,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(U){C=U}C&&!(C instanceof Error)&&(Mt(P),m("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",O||"React class",S,j,typeof C),Mt(null)),C instanceof Error&&!(C.message in Ii)&&(Ii[C.message]=!0,Mt(P),m("Failed %s type: %s",S,C.message),Mt(null))}}}var Yu=Array.isArray;function Ln(l){return Yu(l)}function Ju(l){{var g=typeof Symbol=="function"&&Symbol.toStringTag,S=g&&l[Symbol.toStringTag]||l.constructor.name||"Object";return S}}function Zu(l){try{return Mi(l),!1}catch{return!0}}function Mi(l){return""+l}function Ri(l){if(Zu(l))return m("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Ju(l)),Mi(l)}var xi=w.ReactCurrentOwner,Xu={key:!0,ref:!0,__self:!0,__source:!0},Di,$i;function ec(l){if(at.call(l,"ref")){var g=Object.getOwnPropertyDescriptor(l,"ref").get;if(g&&g.isReactWarning)return!1}return l.ref!==void 0}function tc(l){if(at.call(l,"key")){var g=Object.getOwnPropertyDescriptor(l,"key").get;if(g&&g.isReactWarning)return!1}return l.key!==void 0}function nc(l,g){typeof l.ref=="string"&&xi.current}function rc(l,g){{var S=function(){Di||(Di=!0,m("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",g))};S.isReactWarning=!0,Object.defineProperty(l,"key",{get:S,configurable:!0})}}function ic(l,g){{var S=function(){$i||($i=!0,m("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",g))};S.isReactWarning=!0,Object.defineProperty(l,"ref",{get:S,configurable:!0})}}var sc=function(l,g,S,O,P,M,j){var C={$$typeof:n,type:l,key:g,ref:S,props:j,_owner:M};return C._store={},Object.defineProperty(C._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(C,"_self",{configurable:!1,enumerable:!1,writable:!1,value:O}),Object.defineProperty(C,"_source",{configurable:!1,enumerable:!1,writable:!1,value:P}),Object.freeze&&(Object.freeze(C.props),Object.freeze(C)),C};function oc(l,g,S,O,P){{var M,j={},C=null,J=null;S!==void 0&&(Ri(S),C=""+S),tc(g)&&(Ri(g.key),C=""+g.key),ec(g)&&(J=g.ref,nc(g,P));for(M in g)at.call(g,M)&&!Xu.hasOwnProperty(M)&&(j[M]=g[M]);if(l&&l.defaultProps){var U=l.defaultProps;for(M in U)j[M]===void 0&&(j[M]=U[M])}if(C||J){var N=typeof l=="function"?l.displayName||l.name||"Unknown":l;C&&rc(j,N),J&&ic(j,N)}return sc(l,C,J,P,O,xi.current,j)}}var Fn=w.ReactCurrentOwner,Ui=w.ReactDebugCurrentFrame;function Ne(l){if(l){var g=l._owner,S=Pt(l.type,l._source,g?g.type:null);Ui.setExtraStackFrame(S)}else Ui.setExtraStackFrame(null)}var Nn;Nn=!1;function Wn(l){return typeof l=="object"&&l!==null&&l.$$typeof===n}function Li(){{if(Fn.current){var l=le(Fn.current.type);if(l)return`
28
28
 
29
29
  Check the render method of \``+l+"`."}return""}}function ac(l){return""}var Fi={};function uc(l){{var g=Li();if(!g){var S=typeof l=="string"?l:l.displayName||l.name;S&&(g=`
30
30
 
31
- Check the top-level render call using <`+S+">.")}return g}}function Ni(l,g){{if(!l._store||l._store.validated||l.key!=null)return;l._store.validated=!0;var S=uc(g);if(Fi[S])return;Fi[S]=!0;var O="";l&&l._owner&&l._owner!==Fn.current&&(O=" It was passed a child from "+le(l._owner.type)+"."),Fe(l),m('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',S,O),Fe(null)}}function Wi(l,g){{if(typeof l!="object")return;if(Ln(l))for(var S=0;S<l.length;S++){var O=l[S];Wn(O)&&Ni(O,g)}else if(Wn(l))l._store&&(l._store.validated=!0);else if(l){var P=T(l);if(typeof P=="function"&&P!==l.entries)for(var M=P.call(l),j;!(j=M.next()).done;)Wn(j.value)&&Ni(j.value,g)}}}function cc(l){{var g=l.type;if(g==null||typeof g=="string")return;var S;if(typeof g=="function")S=g.propTypes;else if(typeof g=="object"&&(g.$$typeof===d||g.$$typeof===h))S=g.propTypes;else return;if(S){var O=le(g);Hu(S,l.props,"prop",O,l)}else if(g.PropTypes!==void 0&&!Nn){Nn=!0;var P=le(g);m("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",P||"Unknown")}typeof g.getDefaultProps=="function"&&!g.getDefaultProps.isReactClassApproved&&m("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function dc(l){{for(var g=Object.keys(l.props),S=0;S<g.length;S++){var O=g[S];if(O!=="children"&&O!=="key"){Fe(l),m("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",O),Fe(null);break}}l.ref!==null&&(Fe(l),m("Invalid attribute `ref` supplied to `React.Fragment`."),Fe(null))}}var Vi={};function zi(l,g,S,O,P,M){{var j=Rn(l);if(!j){var C="";(l===void 0||typeof l=="object"&&l!==null&&Object.keys(l).length===0)&&(C+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var J=ac();J?C+=J:C+=Li();var U;l===null?U="null":Ln(l)?U="array":l!==void 0&&l.$$typeof===n?(U="<"+(le(l.type)||"Unknown")+" />",C=" Did you accidentally export a JSX literal instead of a component?"):U=typeof l,m("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",U,C)}var N=oc(l,g,S,P,M);if(N==null)return N;if(j){var oe=g.children;if(oe!==void 0)if(O)if(Ln(oe)){for(var Ne=0;Ne<oe.length;Ne++)Wi(oe[Ne],l);Object.freeze&&Object.freeze(oe)}else m("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Wi(oe,l)}if(at.call(g,"key")){var Ee=le(l),ne=Object.keys(g).filter(function(bc){return bc!=="key"}),Vn=ne.length>0?"{key: someKey, "+ne.join(": ..., ")+": ...}":"{key: someKey}";if(!Vi[Ee+Vn]){var yc=ne.length>0?"{"+ne.join(": ..., ")+": ...}":"{}";m(`A props object containing a "key" prop is being spread into JSX:
31
+ Check the top-level render call using <`+S+">.")}return g}}function Ni(l,g){{if(!l._store||l._store.validated||l.key!=null)return;l._store.validated=!0;var S=uc(g);if(Fi[S])return;Fi[S]=!0;var O="";l&&l._owner&&l._owner!==Fn.current&&(O=" It was passed a child from "+le(l._owner.type)+"."),Ne(l),m('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',S,O),Ne(null)}}function Wi(l,g){{if(typeof l!="object")return;if(Ln(l))for(var S=0;S<l.length;S++){var O=l[S];Wn(O)&&Ni(O,g)}else if(Wn(l))l._store&&(l._store.validated=!0);else if(l){var P=T(l);if(typeof P=="function"&&P!==l.entries)for(var M=P.call(l),j;!(j=M.next()).done;)Wn(j.value)&&Ni(j.value,g)}}}function cc(l){{var g=l.type;if(g==null||typeof g=="string")return;var S;if(typeof g=="function")S=g.propTypes;else if(typeof g=="object"&&(g.$$typeof===d||g.$$typeof===h))S=g.propTypes;else return;if(S){var O=le(g);Hu(S,l.props,"prop",O,l)}else if(g.PropTypes!==void 0&&!Nn){Nn=!0;var P=le(g);m("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",P||"Unknown")}typeof g.getDefaultProps=="function"&&!g.getDefaultProps.isReactClassApproved&&m("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function dc(l){{for(var g=Object.keys(l.props),S=0;S<g.length;S++){var O=g[S];if(O!=="children"&&O!=="key"){Ne(l),m("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",O),Ne(null);break}}l.ref!==null&&(Ne(l),m("Invalid attribute `ref` supplied to `React.Fragment`."),Ne(null))}}var Vi={};function zi(l,g,S,O,P,M){{var j=Rn(l);if(!j){var C="";(l===void 0||typeof l=="object"&&l!==null&&Object.keys(l).length===0)&&(C+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var J=ac();J?C+=J:C+=Li();var U;l===null?U="null":Ln(l)?U="array":l!==void 0&&l.$$typeof===n?(U="<"+(le(l.type)||"Unknown")+" />",C=" Did you accidentally export a JSX literal instead of a component?"):U=typeof l,m("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",U,C)}var N=oc(l,g,S,P,M);if(N==null)return N;if(j){var oe=g.children;if(oe!==void 0)if(O)if(Ln(oe)){for(var We=0;We<oe.length;We++)Wi(oe[We],l);Object.freeze&&Object.freeze(oe)}else m("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Wi(oe,l)}if(at.call(g,"key")){var Ee=le(l),ne=Object.keys(g).filter(function(bc){return bc!=="key"}),Vn=ne.length>0?"{key: someKey, "+ne.join(": ..., ")+": ...}":"{key: someKey}";if(!Vi[Ee+Vn]){var yc=ne.length>0?"{"+ne.join(": ..., ")+": ...}":"{}";m(`A props object containing a "key" prop is being spread into JSX:
32
32
  let props = %s;
33
33
  <%s {...props} />
34
34
  React keys must be passed directly to JSX without using spread:
35
35
  let props = %s;
36
- <%s key={someKey} {...props} />`,Vn,Ee,yc,Ee),Vi[Ee+Vn]=!0}}return l===i?dc(N):cc(N),N}}function fc(l,g,S){return zi(l,g,S,!0)}function lc(l,g,S){return zi(l,g,S,!1)}var hc=lc,pc=fc;et.Fragment=i,et.jsx=hc,et.jsxs=pc}(),et}var Su={};Su.NODE_ENV==="production"?mn.exports=wu():mn.exports=mu();var q=mn.exports;const vu={isLoading:!0,data:void 0,pageInfo:void 0,error:void 0};function li(t){return Object.assign({isLoading:!t,data:void 0,pageInfo:void 0,error:void 0},t||{})}function Ou(t,e,n){e&&n&&"ruleParams"in n&&(e=Object.assign({$$ruleParams:n.ruleParams},e));const r=e?yu(e):null,i=G(r),s=k.useRef(li(t._reactor.getPreviousResult(r))),o=k.useCallback(u=>(s.current=li(t._reactor.getPreviousResult(r)),r?t.subscribeQuery(r,c=>{s.current=Object.assign({isLoading:!c,data:void 0,pageInfo:void 0,error:void 0},c),u()}):()=>{}),[i]);return{state:k.useSyncExternalStore(o,()=>s.current,()=>vu),query:r}}function Eu(){const t=k.useRef(null);k.useEffect(()=>{n()},[]);function e(r,i){clearTimeout(t.current),t.current=setTimeout(i,r)}function n(){clearTimeout(t.current)}return{set:e,clear:n}}const Au=1e3;function Cu(t,e,n){k.useEffect(()=>t.core._reactor.subscribeTopic(t.id,e,(i,s)=>{n(i,s)}),[t.id,e])}function ku(t,e){return k.useEffect(()=>t.core._reactor.joinRoom(t.id),[t.id]),k.useCallback(r=>{t.core._reactor.publishTopic({roomType:t.type,roomId:t.id,topic:e,data:r})},[t.id,e])}function ju(t,e={}){var n,r;const[i,s]=k.useState(()=>{var u;return(u=t.core._reactor.getPresence(t.type,t.id,e))!==null&&u!==void 0?u:{peers:{},isLoading:!0}});k.useEffect(()=>t.core._reactor.subscribePresence(t.type,t.id,e,d=>{s(d)}),[t.id,e.user,(n=e.peers)===null||n===void 0?void 0:n.join(),(r=e.keys)===null||r===void 0?void 0:r.join()]);const o=k.useCallback(u=>{t.core._reactor.publishPresence(t.type,t.id,u)},[t.type,t.id]);return k.useMemo(()=>Object.assign(Object.assign({},i),{publishPresence:o}),[i,o])}function Iu(t,e,n){k.useEffect(()=>t.core._reactor.joinRoom(t.id,e),[t.id]),k.useEffect(()=>t.core._reactor.publishPresence(t.type,t.id,e),[t.type,t.id,n??JSON.stringify(e)])}function Pu(t,e,n={}){const r=Eu(),i=Se.usePresence(t,{keys:[e]}),s=k.useMemo(()=>{var c;const f=t._core._reactor.getPresence(t.type,t.id);return n!=null&&n.writeOnly?[]:Object.values((c=f==null?void 0:f.peers)!==null&&c!==void 0?c:{}).filter(h=>h[e]===!0)},[n==null?void 0:n.writeOnly,i]),o=k.useCallback(c=>{var f;t.core._reactor.publishPresence(t.type,t.id,{[e]:c}),c&&((n==null?void 0:n.timeout)===null||(n==null?void 0:n.timeout)===0||r.set((f=n==null?void 0:n.timeout)!==null&&f!==void 0?f:Au,()=>{t.core._reactor.publishPresence(t.type,t.id,{[e]:null})}))},[t.type,t.id,e,n==null?void 0:n.timeout,r]),a=k.useCallback(c=>{const h=!((n==null?void 0:n.stopOnEnter)&&c.key==="Enter");o(h)},[n.stopOnEnter,o]),u=k.useCallback(()=>{o(!1)},[o]),d=k.useMemo(()=>({onKeyDown:a,onBlur:u}),[a,u]);return{active:s,setActive:o,inputProps:d}}const Se={useTopicEffect:Cu,usePublishTopic:ku,usePresence:ju,useSyncPresence:Iu,useTypingIndicator:Pu};class Mu{constructor(e,n,r){this.useTopicEffect=(i,s)=>{Se.useTopicEffect(this,i,s)},this.usePublishTopic=i=>Se.usePublishTopic(this,i),this.usePresence=(i={})=>Se.usePresence(this,i),this.useSyncPresence=(i,s)=>Se.useSyncPresence(this,i,s),this.useTypingIndicator=(i,s={})=>Se.useTypingIndicator(this,i,s),this.core=e,this._core=this.core,this.type=n,this.id=r}}var Ru=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};const xu={isLoading:!0,user:void 0,error:void 0};class hi{constructor(e,n){this.tx=on(),this.getLocalId=r=>this.core.getLocalId(r),this.useLocalId=r=>{const[i,s]=k.useState(null);return k.useEffect(()=>{Ru(this,void 0,void 0,function*(){const a=yield this.getLocalId(r);s(a)})},[r]),i},this.rooms=Se,this.transact=r=>this.core.transact(r),this.useQuery=(r,i)=>Ou(this.core,r,i).state,this.useAuth=()=>{const r=k.useRef(this.core._reactor._currentUserCached),i=k.useCallback(o=>this.core.subscribeAuth(u=>{r.current=Object.assign({isLoading:!1},u),o()}),[]);return k.useSyncExternalStore(i,()=>r.current,()=>xu)},this.useUser=()=>{const{user:r}=this.useAuth();if(!r)throw new Pe("useUser must be used within an auth-protected route");return r},this.useConnectionStatus=()=>{const r=k.useRef(this.core._reactor.status),i=k.useCallback(o=>this.core.subscribeConnectionStatus(u=>{u!==r.current&&(r.current=u,o())}),[]);return k.useSyncExternalStore(i,()=>r.current,()=>"connecting")},this.queryOnce=(r,i)=>this.core.queryOnce(r,i),this.SignedIn=({children:r})=>{const i=this.useAuth();return i.isLoading||i.error||!i.user?null:q.jsx(q.Fragment,{children:r})},this.SignedOut=({children:r})=>{const i=this.useAuth();return i.isLoading||i.error||i.user?null:q.jsx(q.Fragment,{children:r})},this.core=gu(e,this.constructor.Storage,this.constructor.NetworkListener,n,this.constructor.EventSourceImpl),this._core=this.core,this.auth=this.core.auth,this.storage=this.core.storage}room(e="_defaultRoomType",n="_defaultRoomId"){return new Mu(this.core,e,n)}getAuth(){return this.core.getAuth()}}class pi extends Error{constructor(e,n){super(e),this.name="ParseError",this.type=n.type,this.field=n.field,this.value=n.value,this.line=n.line}}function Sn(t){}function Du(t){if(typeof t=="function")throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");const{onEvent:e=Sn,onError:n=Sn,onRetry:r=Sn,onComment:i}=t;let s="",o=!0,a,u="",d="";function c(y){const _=o?y.replace(/^\xEF\xBB\xBF/,""):y,[T,w]=$u(`${s}${_}`);for(const m of T)f(m);s=w,o=!1}function f(y){if(y===""){p();return}if(y.startsWith(":")){i&&i(y.slice(y.startsWith(": ")?2:1));return}const _=y.indexOf(":");if(_!==-1){const T=y.slice(0,_),w=y[_+1]===" "?2:1,m=y.slice(_+w);h(T,m,y);return}h(y,"",y)}function h(y,_,T){switch(y){case"event":d=_;break;case"data":u=`${u}${_}
36
+ <%s key={someKey} {...props} />`,Vn,Ee,yc,Ee),Vi[Ee+Vn]=!0}}return l===i?dc(N):cc(N),N}}function fc(l,g,S){return zi(l,g,S,!0)}function lc(l,g,S){return zi(l,g,S,!1)}var hc=lc,pc=fc;et.Fragment=i,et.jsx=hc,et.jsxs=pc}(),et}var Su={};Su.NODE_ENV==="production"?mn.exports=wu():mn.exports=mu();var B=mn.exports;const vu={isLoading:!0,data:void 0,pageInfo:void 0,error:void 0};function li(t){return Object.assign({isLoading:!t,data:void 0,pageInfo:void 0,error:void 0},t||{})}function Ou(t,e,n){e&&n&&"ruleParams"in n&&(e=Object.assign({$$ruleParams:n.ruleParams},e));const r=e?yu(e):null,i=z(r),s=k.useRef(li(t._reactor.getPreviousResult(r))),o=k.useCallback(u=>(s.current=li(t._reactor.getPreviousResult(r)),r?t.subscribeQuery(r,c=>{s.current=Object.assign({isLoading:!c,data:void 0,pageInfo:void 0,error:void 0},c),u()}):()=>{}),[i]);return{state:k.useSyncExternalStore(o,()=>s.current,()=>vu),query:r}}function Eu(){const t=k.useRef(null);k.useEffect(()=>{n()},[]);function e(r,i){clearTimeout(t.current),t.current=setTimeout(i,r)}function n(){clearTimeout(t.current)}return{set:e,clear:n}}const Au=1e3;function Cu(t,e,n){k.useEffect(()=>t.core._reactor.subscribeTopic(t.id,e,(i,s)=>{n(i,s)}),[t.id,e])}function ku(t,e){return k.useEffect(()=>t.core._reactor.joinRoom(t.id),[t.id]),k.useCallback(r=>{t.core._reactor.publishTopic({roomType:t.type,roomId:t.id,topic:e,data:r})},[t.id,e])}function ju(t,e={}){var n,r;const[i,s]=k.useState(()=>{var u;return(u=t.core._reactor.getPresence(t.type,t.id,e))!==null&&u!==void 0?u:{peers:{},isLoading:!0}});k.useEffect(()=>t.core._reactor.subscribePresence(t.type,t.id,e,d=>{s(d)}),[t.id,e.user,(n=e.peers)===null||n===void 0?void 0:n.join(),(r=e.keys)===null||r===void 0?void 0:r.join()]);const o=k.useCallback(u=>{t.core._reactor.publishPresence(t.type,t.id,u)},[t.type,t.id]);return k.useMemo(()=>Object.assign(Object.assign({},i),{publishPresence:o}),[i,o])}function Iu(t,e,n){k.useEffect(()=>t.core._reactor.joinRoom(t.id,e),[t.id]),k.useEffect(()=>t.core._reactor.publishPresence(t.type,t.id,e),[t.type,t.id,n??JSON.stringify(e)])}function Pu(t,e,n={}){const r=Eu(),i=Se.usePresence(t,{keys:[e]}),s=k.useMemo(()=>{var c;const f=t._core._reactor.getPresence(t.type,t.id);return n!=null&&n.writeOnly?[]:Object.values((c=f==null?void 0:f.peers)!==null&&c!==void 0?c:{}).filter(h=>h[e]===!0)},[n==null?void 0:n.writeOnly,i]),o=k.useCallback(c=>{var f;t.core._reactor.publishPresence(t.type,t.id,{[e]:c}),c&&((n==null?void 0:n.timeout)===null||(n==null?void 0:n.timeout)===0||r.set((f=n==null?void 0:n.timeout)!==null&&f!==void 0?f:Au,()=>{t.core._reactor.publishPresence(t.type,t.id,{[e]:null})}))},[t.type,t.id,e,n==null?void 0:n.timeout,r]),a=k.useCallback(c=>{const h=!((n==null?void 0:n.stopOnEnter)&&c.key==="Enter");o(h)},[n.stopOnEnter,o]),u=k.useCallback(()=>{o(!1)},[o]),d=k.useMemo(()=>({onKeyDown:a,onBlur:u}),[a,u]);return{active:s,setActive:o,inputProps:d}}const Se={useTopicEffect:Cu,usePublishTopic:ku,usePresence:ju,useSyncPresence:Iu,useTypingIndicator:Pu};class Mu{constructor(e,n,r){this.useTopicEffect=(i,s)=>{Se.useTopicEffect(this,i,s)},this.usePublishTopic=i=>Se.usePublishTopic(this,i),this.usePresence=(i={})=>Se.usePresence(this,i),this.useSyncPresence=(i,s)=>Se.useSyncPresence(this,i,s),this.useTypingIndicator=(i,s={})=>Se.useTypingIndicator(this,i,s),this.core=e,this._core=this.core,this.type=n,this.id=r}}var Ru=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(t,e||[])).next())})};const xu={isLoading:!0,user:void 0,error:void 0};class hi{constructor(e,n){this.tx=on(),this.getLocalId=r=>this.core.getLocalId(r),this.useLocalId=r=>{const[i,s]=k.useState(null);return k.useEffect(()=>{Ru(this,void 0,void 0,function*(){const a=yield this.getLocalId(r);s(a)})},[r]),i},this.rooms=Se,this.transact=r=>this.core.transact(r),this.useQuery=(r,i)=>Ou(this.core,r,i).state,this.useAuth=()=>{const r=k.useRef(this.core._reactor._currentUserCached),i=k.useCallback(o=>this.core.subscribeAuth(u=>{r.current=Object.assign({isLoading:!1},u),o()}),[]);return k.useSyncExternalStore(i,()=>r.current,()=>xu)},this.useUser=()=>{const{user:r}=this.useAuth();if(!r)throw new Pe("useUser must be used within an auth-protected route");return r},this.useConnectionStatus=()=>{const r=k.useRef(this.core._reactor.status),i=k.useCallback(o=>this.core.subscribeConnectionStatus(u=>{u!==r.current&&(r.current=u,o())}),[]);return k.useSyncExternalStore(i,()=>r.current,()=>"connecting")},this.queryOnce=(r,i)=>this.core.queryOnce(r,i),this.SignedIn=({children:r})=>{const i=this.useAuth();return i.isLoading||i.error||!i.user?null:B.jsx(B.Fragment,{children:r})},this.SignedOut=({children:r})=>{const i=this.useAuth();return i.isLoading||i.error||i.user?null:B.jsx(B.Fragment,{children:r})},this.core=gu(e,this.constructor.Storage,this.constructor.NetworkListener,n,this.constructor.EventSourceImpl),this._core=this.core,this.auth=this.core.auth,this.storage=this.core.storage}room(e="_defaultRoomType",n="_defaultRoomId"){return new Mu(this.core,e,n)}getAuth(){return this.core.getAuth()}}class pi extends Error{constructor(e,n){super(e),this.name="ParseError",this.type=n.type,this.field=n.field,this.value=n.value,this.line=n.line}}function Sn(t){}function Du(t){if(typeof t=="function")throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");const{onEvent:e=Sn,onError:n=Sn,onRetry:r=Sn,onComment:i}=t;let s="",o=!0,a,u="",d="";function c(y){const _=o?y.replace(/^\xEF\xBB\xBF/,""):y,[T,w]=$u(`${s}${_}`);for(const m of T)f(m);s=w,o=!1}function f(y){if(y===""){p();return}if(y.startsWith(":")){i&&i(y.slice(y.startsWith(": ")?2:1));return}const _=y.indexOf(":");if(_!==-1){const T=y.slice(0,_),w=y[_+1]===" "?2:1,m=y.slice(_+w);h(T,m,y);return}h(y,"",y)}function h(y,_,T){switch(y){case"event":d=_;break;case"data":u=`${u}${_}
37
37
  `;break;case"id":a=_.includes("\0")?void 0:_;break;case"retry":/^\d+$/.test(_)?r(parseInt(_,10)):n(new pi(`Invalid \`retry\` value: "${_}"`,{type:"invalid-retry",value:_,line:T}));break;default:n(new pi(`Unknown field "${y.length>20?`${y.slice(0,20)}…`:y}"`,{type:"unknown-field",field:y,value:_,line:T}));break}}function p(){u.length>0&&e({id:a,event:d||void 0,data:u.endsWith(`
38
38
  `)?u.slice(0,-1):u}),a=void 0,u="",d=""}function b(y={}){s&&y.consume&&f(s),o=!0,a=void 0,u="",d="",s=""}return{feed:c,reset:b}}function $u(t){const e=[];let n="",r=0;for(;r<t.length;){const i=t.indexOf("\r",r),s=t.indexOf(`
39
39
  `,r);let o=-1;if(i!==-1&&s!==-1?o=Math.min(i,s):i!==-1?o=i:s!==-1&&(o=s),o===-1){n=t.slice(r);break}else{const a=t.slice(r,o);e.push(a),r=o+1,t[r-1]==="\r"&&t[r]===`
40
- `&&r++}}return[e,n]}class yi extends Event{constructor(e,n){var r,i;super(e),this.code=(r=n==null?void 0:n.code)!=null?r:void 0,this.message=(i=n==null?void 0:n.message)!=null?i:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,n,r){return r(bi(this),n)}[Symbol.for("Deno.customInspect")](e,n){return e(bi(this),n)}}function Uu(t){const e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function vn(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(vn).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${vn(t.cause)}`:t.message:`${t}`}function bi(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var _i=t=>{throw TypeError(t)},On=(t,e,n)=>e.has(t)||_i("Cannot "+n),E=(t,e,n)=>(On(t,e,"read from private field"),n?n.call(t):e.get(t)),V=(t,e,n)=>e.has(t)?_i("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),D=(t,e,n,r)=>(On(t,e,"write to private field"),e.set(t,n),n),be=(t,e,n)=>(On(t,e,"access private method"),n),te,ve,xe,vt,Ot,tt,De,nt,_e,$e,Ue,Le,rt,de,En,An,Cn,gi,kn,jn,it,In,Pn;class Et extends EventTarget{constructor(e,n){var r,i;super(),V(this,de),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,V(this,te),V(this,ve),V(this,xe),V(this,vt),V(this,Ot),V(this,tt),V(this,De),V(this,nt,null),V(this,_e),V(this,$e),V(this,Ue,null),V(this,Le,null),V(this,rt,null),V(this,An,async s=>{var o;E(this,$e).reset();const{body:a,redirected:u,status:d,headers:c}=s;if(d===204){be(this,de,it).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(u?D(this,xe,new URL(s.url)):D(this,xe,void 0),d!==200){be(this,de,it).call(this,`Non-200 status code (${d})`,d);return}if(!(c.get("content-type")||"").startsWith("text/event-stream")){be(this,de,it).call(this,'Invalid content type, expected "text/event-stream"',d);return}if(E(this,te)===this.CLOSED)return;D(this,te,this.OPEN);const f=new Event("open");if((o=E(this,rt))==null||o.call(this,f),this.dispatchEvent(f),typeof a!="object"||!a||!("getReader"in a)){be(this,de,it).call(this,"Invalid response body, expected a web ReadableStream",d),this.close();return}const h=new TextDecoder,p=a.getReader();let b=!0;do{const{done:y,value:_}=await p.read();_&&E(this,$e).feed(h.decode(_,{stream:!y})),y&&(b=!1,E(this,$e).reset(),be(this,de,In).call(this))}while(b)}),V(this,Cn,s=>{D(this,_e,void 0),!(s.name==="AbortError"||s.type==="aborted")&&be(this,de,In).call(this,vn(s))}),V(this,kn,s=>{typeof s.id=="string"&&D(this,nt,s.id);const o=new MessageEvent(s.event||"message",{data:s.data,origin:E(this,xe)?E(this,xe).origin:E(this,ve).origin,lastEventId:s.id||""});E(this,Le)&&(!s.event||s.event==="message")&&E(this,Le).call(this,o),this.dispatchEvent(o)}),V(this,jn,s=>{D(this,tt,s)}),V(this,Pn,()=>{D(this,De,void 0),E(this,te)===this.CONNECTING&&be(this,de,En).call(this)});try{if(e instanceof URL)D(this,ve,e);else if(typeof e=="string")D(this,ve,new URL(e,Lu()));else throw new Error("Invalid URL")}catch{throw Uu("An invalid or illegal string was specified")}D(this,$e,Du({onEvent:E(this,kn),onRetry:E(this,jn)})),D(this,te,this.CONNECTING),D(this,tt,3e3),D(this,Ot,(r=n==null?void 0:n.fetch)!=null?r:globalThis.fetch),D(this,vt,(i=n==null?void 0:n.withCredentials)!=null?i:!1),be(this,de,En).call(this)}get readyState(){return E(this,te)}get url(){return E(this,ve).href}get withCredentials(){return E(this,vt)}get onerror(){return E(this,Ue)}set onerror(e){D(this,Ue,e)}get onmessage(){return E(this,Le)}set onmessage(e){D(this,Le,e)}get onopen(){return E(this,rt)}set onopen(e){D(this,rt,e)}addEventListener(e,n,r){const i=n;super.addEventListener(e,i,r)}removeEventListener(e,n,r){const i=n;super.removeEventListener(e,i,r)}close(){E(this,De)&&clearTimeout(E(this,De)),E(this,te)!==this.CLOSED&&(E(this,_e)&&E(this,_e).abort(),D(this,te,this.CLOSED),D(this,_e,void 0))}}te=new WeakMap,ve=new WeakMap,xe=new WeakMap,vt=new WeakMap,Ot=new WeakMap,tt=new WeakMap,De=new WeakMap,nt=new WeakMap,_e=new WeakMap,$e=new WeakMap,Ue=new WeakMap,Le=new WeakMap,rt=new WeakMap,de=new WeakSet,En=function(){D(this,te,this.CONNECTING),D(this,_e,new AbortController),E(this,Ot)(E(this,ve),be(this,de,gi).call(this)).then(E(this,An)).catch(E(this,Cn))},An=new WeakMap,Cn=new WeakMap,gi=function(){var t;const e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...E(this,nt)?{"Last-Event-ID":E(this,nt)}:void 0},cache:"no-store",signal:(t=E(this,_e))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},kn=new WeakMap,jn=new WeakMap,it=function(t,e){var n;E(this,te)!==this.CLOSED&&D(this,te,this.CLOSED);const r=new yi("error",{code:e,message:t});(n=E(this,Ue))==null||n.call(this,r),this.dispatchEvent(r)},In=function(t,e){var n;if(E(this,te)===this.CLOSED)return;D(this,te,this.CONNECTING);const r=new yi("error",{code:e,message:t});(n=E(this,Ue))==null||n.call(this,r),this.dispatchEvent(r),D(this,De,setTimeout(E(this,Pn),E(this,tt)))},Pn=new WeakMap,Et.CONNECTING=0,Et.OPEN=1,Et.CLOSED=2;function Lu(){const t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}const Mn=class Mn extends hi{};Mn.EventSourceImpl=Et;let At=Mn;function Ti(t){return new At(t,{"@instantdb/react":hn})}const Fu=Ti;function Nu({as:t="div",spaceId:e,room:n,className:r,style:i,userCursorColor:s,children:o,renderCursor:a,propagate:u,zIndex:d}){const c=e||`cursors-space-default--${String(n.type)}-${n.id}`,f=n.usePresence({keys:[c]}),h=n._core._reactor.getPresence(n.type,n.id);function p(w,m){const I=m.clientX,v=m.clientY,R=(I-w.left)/w.width*100,F=(v-w.top)/w.height*100;f.publishPresence({[c]:{x:I,y:v,xPercent:R,yPercent:F,color:s}})}function b(w){u||w.stopPropagation();const m=w.currentTarget.getBoundingClientRect();p(m,w)}function y(w){f.publishPresence({[c]:void 0})}function _(w){if(w.touches.length!==1)return;const m=w.touches[0];if(m.target instanceof Element){u||w.stopPropagation();const I=m.target.getBoundingClientRect();p(I,m)}}function T(w){f.publishPresence({[c]:void 0})}return k.createElement(t,{onMouseMove:b,onMouseOut:y,onTouchMove:_,onTouchEnd:T,className:r,style:{position:"relative",...i}},[o,q.jsx("div",{style:{...wi,...Vu,zIndex:d!==void 0?d:zu},children:Object.entries(f.peers).map(([w,m])=>{const I=m[c];return I?q.jsx("div",{style:{...wi,transform:`translate(${I.xPercent}%, ${I.yPercent}%)`,transformOrigin:"0 0",transition:"transform 100ms"},children:a?a({color:I.color,presence:h.peers[w]}):q.jsx(Wu,{...I})},w):null})},c)])}function Wu({color:t}){const n=t||"black";return q.jsxs("svg",{style:{height:35,width:35},viewBox:"0 0 35 35",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[q.jsxs("g",{fill:"rgba(0,0,0,.2)",transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[q.jsx("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),q.jsx("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),q.jsxs("g",{fill:"white",transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[q.jsx("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),q.jsx("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),q.jsxs("g",{fill:n,transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[q.jsx("path",{d:"m19.751 24.4155-1.844.774-3.1-7.374 1.841-.775z"}),q.jsx("path",{d:"m13 10.814v11.188l2.969-2.866.428-.139h4.768z"})]})]})}const wi={position:"absolute",top:0,left:0,bottom:0,right:0},Vu={overflow:"hidden",pointerEvents:"none",userSelect:"none"},zu=99999;B.Cursors=Nu,B.InstantAPIError=He,B.InstantReactAbstractDatabase=hi,B.InstantReactWebDatabase=At,B.i=nu,B.id=W,B.init=Ti,B.init_experimental=Fu,B.lookup=Io,B.tx=Mo,Object.defineProperty(B,Symbol.toStringTag,{value:"Module"})});
40
+ `&&r++}}return[e,n]}class yi extends Event{constructor(e,n){var r,i;super(e),this.code=(r=n==null?void 0:n.code)!=null?r:void 0,this.message=(i=n==null?void 0:n.message)!=null?i:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,n,r){return r(bi(this),n)}[Symbol.for("Deno.customInspect")](e,n){return e(bi(this),n)}}function Uu(t){const e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function vn(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(vn).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${vn(t.cause)}`:t.message:`${t}`}function bi(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var _i=t=>{throw TypeError(t)},On=(t,e,n)=>e.has(t)||_i("Cannot "+n),E=(t,e,n)=>(On(t,e,"read from private field"),n?n.call(t):e.get(t)),V=(t,e,n)=>e.has(t)?_i("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),D=(t,e,n,r)=>(On(t,e,"write to private field"),e.set(t,n),n),be=(t,e,n)=>(On(t,e,"access private method"),n),te,ve,De,vt,Ot,tt,$e,nt,_e,Ue,Le,Fe,rt,de,En,An,Cn,gi,kn,jn,it,In,Pn;class Et extends EventTarget{constructor(e,n){var r,i;super(),V(this,de),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,V(this,te),V(this,ve),V(this,De),V(this,vt),V(this,Ot),V(this,tt),V(this,$e),V(this,nt,null),V(this,_e),V(this,Ue),V(this,Le,null),V(this,Fe,null),V(this,rt,null),V(this,An,async s=>{var o;E(this,Ue).reset();const{body:a,redirected:u,status:d,headers:c}=s;if(d===204){be(this,de,it).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(u?D(this,De,new URL(s.url)):D(this,De,void 0),d!==200){be(this,de,it).call(this,`Non-200 status code (${d})`,d);return}if(!(c.get("content-type")||"").startsWith("text/event-stream")){be(this,de,it).call(this,'Invalid content type, expected "text/event-stream"',d);return}if(E(this,te)===this.CLOSED)return;D(this,te,this.OPEN);const f=new Event("open");if((o=E(this,rt))==null||o.call(this,f),this.dispatchEvent(f),typeof a!="object"||!a||!("getReader"in a)){be(this,de,it).call(this,"Invalid response body, expected a web ReadableStream",d),this.close();return}const h=new TextDecoder,p=a.getReader();let b=!0;do{const{done:y,value:_}=await p.read();_&&E(this,Ue).feed(h.decode(_,{stream:!y})),y&&(b=!1,E(this,Ue).reset(),be(this,de,In).call(this))}while(b)}),V(this,Cn,s=>{D(this,_e,void 0),!(s.name==="AbortError"||s.type==="aborted")&&be(this,de,In).call(this,vn(s))}),V(this,kn,s=>{typeof s.id=="string"&&D(this,nt,s.id);const o=new MessageEvent(s.event||"message",{data:s.data,origin:E(this,De)?E(this,De).origin:E(this,ve).origin,lastEventId:s.id||""});E(this,Fe)&&(!s.event||s.event==="message")&&E(this,Fe).call(this,o),this.dispatchEvent(o)}),V(this,jn,s=>{D(this,tt,s)}),V(this,Pn,()=>{D(this,$e,void 0),E(this,te)===this.CONNECTING&&be(this,de,En).call(this)});try{if(e instanceof URL)D(this,ve,e);else if(typeof e=="string")D(this,ve,new URL(e,Lu()));else throw new Error("Invalid URL")}catch{throw Uu("An invalid or illegal string was specified")}D(this,Ue,Du({onEvent:E(this,kn),onRetry:E(this,jn)})),D(this,te,this.CONNECTING),D(this,tt,3e3),D(this,Ot,(r=n==null?void 0:n.fetch)!=null?r:globalThis.fetch),D(this,vt,(i=n==null?void 0:n.withCredentials)!=null?i:!1),be(this,de,En).call(this)}get readyState(){return E(this,te)}get url(){return E(this,ve).href}get withCredentials(){return E(this,vt)}get onerror(){return E(this,Le)}set onerror(e){D(this,Le,e)}get onmessage(){return E(this,Fe)}set onmessage(e){D(this,Fe,e)}get onopen(){return E(this,rt)}set onopen(e){D(this,rt,e)}addEventListener(e,n,r){const i=n;super.addEventListener(e,i,r)}removeEventListener(e,n,r){const i=n;super.removeEventListener(e,i,r)}close(){E(this,$e)&&clearTimeout(E(this,$e)),E(this,te)!==this.CLOSED&&(E(this,_e)&&E(this,_e).abort(),D(this,te,this.CLOSED),D(this,_e,void 0))}}te=new WeakMap,ve=new WeakMap,De=new WeakMap,vt=new WeakMap,Ot=new WeakMap,tt=new WeakMap,$e=new WeakMap,nt=new WeakMap,_e=new WeakMap,Ue=new WeakMap,Le=new WeakMap,Fe=new WeakMap,rt=new WeakMap,de=new WeakSet,En=function(){D(this,te,this.CONNECTING),D(this,_e,new AbortController),E(this,Ot)(E(this,ve),be(this,de,gi).call(this)).then(E(this,An)).catch(E(this,Cn))},An=new WeakMap,Cn=new WeakMap,gi=function(){var t;const e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...E(this,nt)?{"Last-Event-ID":E(this,nt)}:void 0},cache:"no-store",signal:(t=E(this,_e))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},kn=new WeakMap,jn=new WeakMap,it=function(t,e){var n;E(this,te)!==this.CLOSED&&D(this,te,this.CLOSED);const r=new yi("error",{code:e,message:t});(n=E(this,Le))==null||n.call(this,r),this.dispatchEvent(r)},In=function(t,e){var n;if(E(this,te)===this.CLOSED)return;D(this,te,this.CONNECTING);const r=new yi("error",{code:e,message:t});(n=E(this,Le))==null||n.call(this,r),this.dispatchEvent(r),D(this,$e,setTimeout(E(this,Pn),E(this,tt)))},Pn=new WeakMap,Et.CONNECTING=0,Et.OPEN=1,Et.CLOSED=2;function Lu(){const t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}const Mn=class Mn extends hi{};Mn.EventSourceImpl=Et;let At=Mn;function Ti(t){return new At(t,{"@instantdb/react":hn})}const Fu=Ti;function Nu({as:t="div",spaceId:e,room:n,className:r,style:i,userCursorColor:s,children:o,renderCursor:a,propagate:u,zIndex:d}){const c=e||`cursors-space-default--${String(n.type)}-${n.id}`,f=n.usePresence({keys:[c]}),h=n._core._reactor.getPresence(n.type,n.id);function p(w,m){const I=m.clientX,v=m.clientY,R=(I-w.left)/w.width*100,F=(v-w.top)/w.height*100;f.publishPresence({[c]:{x:I,y:v,xPercent:R,yPercent:F,color:s}})}function b(w){u||w.stopPropagation();const m=w.currentTarget.getBoundingClientRect();p(m,w)}function y(w){f.publishPresence({[c]:void 0})}function _(w){if(w.touches.length!==1)return;const m=w.touches[0];if(m.target instanceof Element){u||w.stopPropagation();const I=m.target.getBoundingClientRect();p(I,m)}}function T(w){f.publishPresence({[c]:void 0})}return k.createElement(t,{onMouseMove:b,onMouseOut:y,onTouchMove:_,onTouchEnd:T,className:r,style:{position:"relative",...i}},[o,B.jsx("div",{style:{...wi,...Vu,zIndex:d!==void 0?d:zu},children:Object.entries(f.peers).map(([w,m])=>{const I=m[c];return I?B.jsx("div",{style:{...wi,transform:`translate(${I.xPercent}%, ${I.yPercent}%)`,transformOrigin:"0 0",transition:"transform 100ms"},children:a?a({color:I.color,presence:h.peers[w]}):B.jsx(Wu,{...I})},w):null})},c)])}function Wu({color:t}){const n=t||"black";return B.jsxs("svg",{style:{height:35,width:35},viewBox:"0 0 35 35",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[B.jsxs("g",{fill:"rgba(0,0,0,.2)",transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[B.jsx("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),B.jsx("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),B.jsxs("g",{fill:"white",transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[B.jsx("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),B.jsx("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),B.jsxs("g",{fill:n,transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[B.jsx("path",{d:"m19.751 24.4155-1.844.774-3.1-7.374 1.841-.775z"}),B.jsx("path",{d:"m13 10.814v11.188l2.969-2.866.428-.139h4.768z"})]})]})}const wi={position:"absolute",top:0,left:0,bottom:0,right:0},Vu={overflow:"hidden",pointerEvents:"none",userSelect:"none"},zu=99999;G.Cursors=Nu,G.InstantAPIError=Ye,G.InstantReactAbstractDatabase=hi,G.InstantReactWebDatabase=At,G.i=nu,G.id=W,G.init=Ti,G.init_experimental=Fu,G.lookup=Io,G.tx=Mo,Object.defineProperty(G,Symbol.toStringTag,{value:"Module"})});