@instantdb/react 0.22.47-experimental.sync-table.19174988015.1 → 0.22.47-experimental.sync-table.19185308245.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.
- package/dist/standalone/index.js +1707 -1655
- package/dist/standalone/index.umd.cjs +13 -13
- package/package.json +4 -4
|
@@ -1,10 +1,10 @@
|
|
|
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"&>(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.19174988015.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==null?void 0:i.keepSubscription)}}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=`
|
|
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"},Bn=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Gi=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),ct=Symbol.iterator,re={mutable:"mutable",immutable:"immutable"},Dt={};function ze(t,e){return t instanceof Map?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function qn(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 $t(t){return Object.getPrototypeOf(t)===Set.prototype}function Ut(t){return Object.getPrototypeOf(t)===Map.prototype}function ie(t){var e;return(e=t.copy)!==null&&e!==void 0?e:t.original}function Te(t){return!!A(t)}function A(t){return typeof t!="object"?null:t==null?void 0:t[Bn]}function Lt(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 Gn(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||ze(n,s)))return null;e.push(s)}if(t.parent)return Gn(t.parent,e);e.reverse();try{Qi(t.copy,e)}catch{return null}return e}function we(t){return Array.isArray(t)?1:t instanceof Map?2:t instanceof Set?3:0}function he(t,e){return we(t)===2?t.get(e):t[e]}function Ke(t,e,n){we(t)===2?t.set(e,n):t[e]=n}function Ft(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 Nt(t){if(t)for(;t.finalities.revoke.length>0;)t.finalities.revoke.pop()()}function me(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(we(t)===3?Array.from(t):t,r),typeof t!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return t}function Hi(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 Yi=Object.prototype.propertyIsEnumerable;function Qn(t,e){let n;if(Array.isArray(t))return Array.prototype.concat.call(t);if(t instanceof Set){if(!$t(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(!Ut(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 Hi(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=>{Yi.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=Qn(t.original,t.options))}function Be(t){if(!ae(t))return Lt(t);if(Array.isArray(t))return t.map(Be);if(t instanceof Map){const n=Array.from(t.entries()).map(([r,i])=>[r,Be(i)]);if(!Ut(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(Be);if(!$t(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]=Be(t[n]);return e}function dt(t){return Te(t)?Be(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 Hn(){throw new Error("Cannot modify frozen object")}function ke(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)||Te(t)){r.pop(),i.pop();return}switch(we(t)){case 2:for(const[a,u]of t)ke(a,a,n,r,i),ke(u,a,n,r,i);t.set=t.clear=t.delete=Hn;break;case 3:for(const a of t)ke(a,a,n,r,i);t.add=t.clear=t.delete=Hn;break;case 1:Object.freeze(t);let o=0;for(const a of t)ke(a,o,n,r,i),o+=1;break;default:Object.freeze(t),Object.keys(t).forEach(a=>{const u=t[a];ke(u,a,n,r,i)})}r.pop(),i.pop()}function Wt(t,e){const n=we(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 Yn(t,e,n){if(Te(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),Wt(t,(s,o)=>{var a;if(Te(o)){const u=A(o);Q(u);const d=!((a=u.assignedMap)===null||a===void 0)&&a.size||u.operated?u.copy:u.original;Ke(r?i:t,s,d)}else Yn(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 Ji(t,e){const n=t.type===3?t.setMap:t.copy;t.finalities.revoke.length>1&&t.assignedMap.get(e)&&n&&Yn(he(n,e),t.finalities.handledSet,t.options)}function Vt(t){t.type===3&&t.copy&&(t.copy.clear(),t.setMap.forEach(e=>{t.copy.add(Lt(e))}))}function zt(t,e,n,r){if(t.operated&&t.assignedMap&&t.assignedMap.size>0&&!t.finalized){if(n&&r){const s=Gn(t);s&&e(t,s,n,r)}t.finalized=!0}}function Kt(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),Vt(t),zt(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)),Ke(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)&&Ji(t,e)})}function Zi(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=me(c,i);n.push({op:$.Replace,path:f,value:dt(u[d])}),r.push({op:$.Replace,path:f,value:dt(s[d])})}for(let d=s.length;d<u.length;d+=1){const c=e.concat([d]),f=me(c,i);n.push({op:$.Add,path:f,value:dt(u[d])})}if(s.length<u.length){const{arrayLengthAssignment:d=!0}=a.enablePatches;if(d){const c=e.concat(["length"]),f=me(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=me(f,i);r.push({op:$.Remove,path:h})}}}function Xi({original:t,copy:e,assignedMap:n},r,i,s,o){n.forEach((a,u)=>{const d=he(t,u),c=dt(he(e,u)),f=a?ze(t,u)?$.Replace:$.Add:$.Remove;if(pe(d,c)&&f===$.Replace)return;const h=r.concat(u),p=me(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 es({original:t,copy:e},n,r,i,s){let o=0;t.forEach(a=>{if(!e.has(a)){const u=n.concat([o]),d=me(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=me(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 Xi(t,e,n,r,i);case 1:return Zi(t,e,n,r,i);case 3:return es(t,e,n,r,i)}}const ft=(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.")},Bt={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),Kt(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&&ft(i,r.options,s),s||r.finalized||!ae(i,r.options)||i!==r.original.get(t))return i;const o=Dt.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{[ct]:()=>this.values(),next:()=>{const e=t.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const t=this.keys();return{[ct]:()=>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]}}}},[ct](){return this.entries()}},ts=Reflect.ownKeys(Bt),Jn=(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&&ft(o,t.options,d),!d&&!u&&ae(o,t.options)&&!t.finalized&&t.original.has(o)){const c=Dt.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]}},lt={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),Kt(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:Jn(t,e,{isValuesIterator:!0})}},entries(){const t=A(this);Q(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:Jn(t,e,{isValuesIterator:!1})}},keys(){return this.values()},[ct](){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(lt,{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 ns=Reflect.ownKeys(lt),Zn=new WeakSet,Xn={get(t,e,n){var r,i;const s=(r=t.copy)===null||r===void 0?void 0:r[e];if(s&&Zn.has(s))return s;if(e===Bn)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&&ft(d,t.options,!0),d}const a=ie(t);if(a instanceof Map&&ts.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Bt,"size").get.call(t.proxy);const d=Bt[e];if(d)return d.bind(t.proxy)}if(a instanceof Set&&ns.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(lt,"size").get.call(t.proxy);const d=lt[e];if(d)return d.bind(t.proxy)}if(!ze(a,e)){const d=qn(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&&ft(u,t.options),t.finalized||!ae(u,t.options))return u;if(u===Ft(t.original,e)){if(Q(t),t.copy[e]=qt({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=qn(ie(t),e);if(s!=null&&s.set)return s.set.call(t.proxy,n),!0;const o=Ft(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||ze(t.original,e))||(Q(t),fe(t),ze(t.original,e)&&pe(n,t.original[e])?t.assignedMap.delete(e):t.assignedMap.set(e,!0),t.copy[e]=n,Kt(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?Xn.set.call(this,t,e,void 0,t.proxy):(Ft(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 qt(t){const{original:e,parentDraft:n,key:r,finalities:i,options:s}=t,o=we(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,Xn);if(i.revoke.push(d),Zn.add(u),a.proxy=u,n){const c=n;c.finalities.draft.push((f,h)=>{var p,y;const b=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=Lt(T)),Vt(w),zt(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)),Ke(_,r,m)}(y=b.callbacks)===null||y===void 0||y.forEach(m=>{m(f,h)})})}else{const c=A(u);c.finalities.draft.push((f,h)=>{Vt(c),zt(c,qe,f,h)})}return u}Dt.createDraft=qt;function rs(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&&Nt(o),i&&ke(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 is(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:qt({original:t,parentDraft:null,finalities:r,options:e});return[a,(u=[])=>{const[d,c,f]=rs(a,u,i,s,e.enableAutoFreeze);return e.enablePatches?[d,c,f]:d}]}function Gt(t){const{rootDraft:e,value:n,useRawReturn:r=!1,isRoot:i=!0}=t;Wt(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 Ke(a,s,d)}else typeof o=="object"&&o!==null&&(t.value=o,t.isRoot=!1,Gt(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 er(t){var e;const n=A(t);if(!ae(t,n==null?void 0:n.options))return t;const r=we(t);if(n&&!n.operated)return n.original;let i;function s(){i=r===2?Ut(t)?new Map(t):new(Object.getPrototypeOf(t)).constructor(t):r===3?Array.from(n.setMap.values()):Qn(t,n==null?void 0:n.options)}if(n){n.finalized=!0;try{s()}finally{n.finalized=!1}}else i=t;if(Wt(i,(o,a)=>{if(n&&pe(he(n.original,o),a))return;const u=er(a);u!==a&&(i===t&&s(),Ke(i,o,u))}),r===3){const o=(e=n==null?void 0:n.original)!==null&&e!==void 0?e:i;return $t(o)?new Set(i):new(Object.getPrototypeOf(o)).constructor(i)}return i}function tr(t){if(!Te(t))throw new Error(`current() is only used for Draft, parameter: ${t}`);return er(t)}const Qt=(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=Te(u)?tr(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,y=(o=c.strict)!==null&&o!==void 0?o:!1,_={enableAutoFreeze:(a=c.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:h,strict:y,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]=is(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 Nt(A(T)),v}const I=v=>{const R=A(T);if(!Te(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[Gi];if(Y){const ot=Y[0];return _.strict&&typeof v=="object"&&v!==null&&Gt({rootDraft:R,value:v,useRawReturn:!0}),w([ot])}if(v!==void 0)return typeof v=="object"&&v!==null&&Gt({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([tr(v)])}return w([v])};return m instanceof Promise?m.then(I,v=>{throw Nt(A(T)),v}):I(m)})();Object.prototype.constructor.toString();function nr(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 rr(t,e){return Object.keys(t).length===Object.keys(e).length&&Object.keys(t).every(n=>e.hasOwnProperty(n)&&t[n]===e[n])}function ht(t,e){return typeof t!="object"||typeof e!="object"||t===null||e===null?t===e:nr(t,e)?Object.keys(t).every(n=>ht(t[n],e[n])):!1}function Ht(t){if(!Ge(t))return t;const e={};for(const[n,r]of Object.entries(t))r!==void 0&&(e[n]=r);return e}function ir(t,e){if(!Ge(t)||!Ge(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=Ge(t[r])&&Ge(e[r]);n[r]=i?ir(t[r],e[r]):e[r]}return n}function Ge(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ss(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 sr(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 or(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}or(t[n],r),os(t[n])&&delete t[n]}}function os(t){return t&&Object.keys(t).length===0}const ar=/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$/,as={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 us(t){return new Date(t)}function cs(t){return new Date(t+"Z")}const ds=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function fs(t){const e=t.match(ds);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 ls(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function hs(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ps(t){return new Date(t)}function ys(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 bs(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 _s(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 gs(t){switch(t){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function Ts(t){const e=t.match(ar);if(!e)return null;const[n]=e,r=as[n],i=new Date(t.replace(ar,"Z"));return new Date(i.getTime()-r*1e3)}const ws=[fs,hs,ys,_s,ps,cs,bs,ls,us,gs,Ts];function ms(t,e){try{const n=t(e);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function Yt(t){for(const e of ws){const n=ms(e,t);if(n)return n}return null}function Ss(t){try{const e=JSON.parse(t);return typeof e=="string"?Yt(e):null}catch{return null}}function pt(t){if(t!==void 0){if(t===null)return null;if(t instanceof Date)return t;if(typeof t=="string"){const e=Yt(t)||Ss(t)||Yt(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 vs(t){return t.cardinality==="one"}function Jt(t){return t["value-type"]==="ref"}function Zt(t){return t["value-type"]==="blob"}function je(t,e){return t[e]}function Ie(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 ur(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=je(t,u);if(!f){console.warn("no such attr",a,t);continue}f["checked-data-type"]==="date"&&n&&(d=pt(d),o[2]=d),Jt(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 cr(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),Zt(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 dr(t){return{__type:t.__type,attrs:t.attrs,triples:X(t.eav,3),cardinalityInference:t.cardinalityInference,linkIndex:t.linkIndex,useDateObjects:t.useDateObjects}}function fr(t){return yt(t.attrs,t.triples,t.cardinalityInference,t.linkIndex,t.useDateObjects)}function Os(t,e){return Ie(t.eav,[e])!==void 0}function Xt(t){t.attrIndexes=cr(t.attrs)}function yt(t,e,n,r,i){const s=ur(t,e,i);return s.useDateObjects=i,s.attrs=t,s.attrIndexes=cr(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(b=>b[2]===a))===null||r===void 0?void 0:r[0];if(!c)return null;const[f,h,p,...y]=e;return[i,h,c,...y]}else{const[o,...a]=e;return[i,...a]}}function lr(t,e){const n=Qe(t,e);if(!n)return;const[r,i,s]=n,o=je(t.attrs,i);o&&(ue(t.eav,[r,i,s]),ue(t.aev,[i,r,s]),Jt(o)&&ue(t.vae,[s,i,r]))}let Es=0;function hr(t,e,n){const[r,i,s]=n;let o;const a=Ie(t.ea,[r,i,s]);return a&&(o=a[3]),o||Date.now()*10+Es++}function pr(t,e){var n;const r=Qe(t,e);if(!r)return;let[i,s,o]=r;const a=je(t.attrs,s);if(!a)return;a["checked-data-type"]==="date"&&t.useDateObjects&&(o=pt(o));const u=Ie(t.eav,[i,s,o]),d=(n=u==null?void 0:u[3])!==null&&n!==void 0?n:hr(t,a,r),c=[i,s,o,d];vs(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)),Jt(a)&&Z(t.vae,[o,s,i],c)}function As(t,e){var n;const r=Qe(t,e);if(!r)return;const[i,s,o]=r,a=je(t.attrs,s);if(!a)return;if(!Zt(a))throw new Error("merge operation is not supported for links");const u=Ie(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=ir(c,o),h=[i,s,f,hr(t,a,d)];Z(t.eav,[i,s],new Map([[f,h]]))}function en(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,y])=>{var b;return en(t,[y,(b=f["reverse-identity"])===null||b===void 0?void 0:b[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[y,b,_]=c,T=t.attrs[b];(!s||!T||((f=T["reverse-identity"])===null||f===void 0?void 0:f[1])===s)&&(ue(t.eav,[y,b,_]),ue(t.aev,[b,y,_]),ue(t.vae,[_,b,y])),T&&T["on-delete"]==="cascade"&&((h=T["reverse-identity"])===null||h===void 0?void 0:h[1])===s&&en(t,[y,(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 yr(t,e){const n=ur(t.attrs,e,t.useDateObjects);Object.keys(n).forEach(r=>{t[r]=n[r]})}function Cs(t,[e]){t.attrs[e.id]=e,Xt(t)}function br(t){return X(t.eav,3)}function ks(t,[e]){if(!t.attrs[e])return;const n=br(t).filter(([r,i])=>i!==e);delete t.attrs[e],Xt(t),yr(t,n)}function js(t,[e]){const n=t.attrs[e.id];n&&(t.attrs[e.id]=Object.assign(Object.assign({},n),e),Xt(t),yr(t,br(t)))}function Is(t,e){const[n,...r]=e;switch(n){case"add-triple":pr(t,r);break;case"deep-merge-triple":As(t,r);break;case"retract-triple":lr(t,r);break;case"delete-entity":en(t,r);break;case"add-attr":Cs(t,r);break;case"delete-attr":ks(t,r);break;case"update-attr":js(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 bt(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 Ps(t,e,n){let r="";return t!==void 0&&(r+="e"),e!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function Ms(t,[e,n,r]){var i,s;switch(Ps(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?bt(t,a,r):[]}case"ev":{const a=t.eav.get(e);if(!a)return[];const u=[];for(const d of a.values())u.push(...bt(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(...bt(t,d,r));return u}case"v":{const a=[];for(const u of t.eav.values())for(const d of u.values())a.push(...bt(t,d,r));return a}default:return X(t.eav,3)}}function Rs(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 _e(t,e,n){var r;return(r=t.attrIndexes.forwardIdents.get(e))===null||r===void 0?void 0:r.get(n)}function _r(t,e,n){var r;return(r=t.attrIndexes.revIdents.get(e))===null||r===void 0?void 0:r.get(n)}function xs(t,e){return t.attrIndexes.blobAttrs.get(e)}function gr(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 Ds(t,e){const n=Qe(t,e);if(!n)return;const[r,i,s]=n;if(je(t.attrs,i))return Ie(t.eav,[r,i])}function $s(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=je(t.attrs,s);if(c){const f=gr(t,c["forward-identity"][1]);d=!!Ds(t,[i,f.id,i])}return!(u==="create"&&d||u==="update"&&!d)});return Qt(t,r=>{n.forEach(i=>{Is(r,i)})})}function Us(t){return typeof t=="string"&&t.startsWith("?")}function Ls(t,e,n){if(n.hasOwnProperty(t)){const r=n[t];return wr(r,e,n)}return Object.assign(Object.assign({},n),{[t]:e})}function Tr(t,e,n){return t===e?n:null}function Fs(t){switch(typeof t){case"string":return t.startsWith("?")?Ls:Tr;default:return Tr}}const Ns=["in","$in","$not","$isNull","$comparator"];function Ws(t){for(const e of Ns)if(t.hasOwnProperty(e))return!0;return!1}function wr(t,e,n){return n?typeof t=="object"?Ws(t)?n:null:Fs(t)(t,e,n):null}function Vs(t,e,n){return t.reduce((r,i,s)=>{const o=e[s];return wr(i,o,r)},n)}function zs(t,e,n){return qs(t,e,n).map(r=>Vs(e,r,n)).filter(r=>r)}function Ks(t,e,n){return e.or?e.or.patterns.flatMap(r=>tn(t,r,n)):e.and?e.and.patterns.reduce((r,i)=>tn(t,i,r),n):n.flatMap(r=>zs(t,e,r))}function tn(t,e,n=[{}]){return e.reduce((r,i)=>Ks(t,i,r),n)}function nn(t,e){return Array.isArray(e)?e.map(n=>nn(t,n)):Us(e)?t[e]:e}function Bs(t,{find:e,where:n}){return tn(t,n).map(i=>nn(i,e))}function qs(t,e,n){return Ms(t,nn(n,e))}const Gs=/^(?:[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 Pe(t){return typeof t=="string"&&Gs.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 rn;const Hs=new Uint8Array(16);function Ys(){if(!rn){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");rn=crypto.getRandomValues.bind(crypto)}return rn(Hs)}const mr={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Js(t,e,n){var i;if(mr.randomUUID&&!t)return mr.randomUUID();t=t||{};const r=t.random??((i=t.rng)==null?void 0:i.call(t))??Ys();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 Sr(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 Zs(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 Xs(t,e){return Zs(Sr(t),Sr(e))}function W(){return Js()}function eo(t,e){return t.localeCompare(e)}function to(){let t=eo;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{t=Intl.Collator("en-US").compare}catch{}return t}const no=to();let ro=0;function He(t){return _t(`_${t}`,ro++)}function _t(t,e){return`?${t}-${e}`}class Me extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function io(t,e){const n=gr(t,e);if(!n)throw new Me(`Could not find id attr for ${e}`);return n}function vr(t,e,n,r){return[so(t,e,n,r)]}function so(t,e,n,r){return[t(n,r),io(e,n).id,t(n,r),t("time",r)]}function oo(t,e,n){return t.map(r=>r===e?n:r)}function Or(t,e,n,r,i){const s=_e(e,n,i),o=_r(e,n,i),a=s||o;if(!a)throw new Me(`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 Er(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 ao(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=Er(!0,e.$like);return{$comparator:!0,$op:function(s){return r(s[2])}}}if(e.hasOwnProperty("$ilike")){const r=Er(!1,e.$ilike);return{$comparator:!0,$op:function(s){return r(s[2])}}}return e}function uo(t,e,n,r,i,s){const o=_e(e,n,i),a=_r(e,n,i),u=o||a;if(!u)throw new Me(`No attr for etype = ${n} label = ${i}`);if(s!=null&&s.hasOwnProperty("$isNull")){const d=_e(e,n,"id");if(!d)throw new Me(`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,ao(u,s),He("time")]:[s,u.id,t(n,r),He("time")]}function co(t,e,n,r,i){const[s,o,a]=i.reduce((u,d)=>{const[c,f,h]=u,[p,y,b]=Or(t,e,c,f,d);return[p,y,[...h,b]]},[n,r,[]]);return[s,o,a]}function sn(t,e,n,r,i,s){const o=i.slice(0,i.length-1),a=i[i.length-1],[u,d,c]=co(t,e,n,r,o),f=uo(t,e,u,d,a,s);return c.concat([f])}function fo(t,e){return e?[e].concat(t):t}function lo([t,e]){return t==="or"&&Array.isArray(e)}function ho([t,e]){return t==="and"&&Array.isArray(e)}function po(t,e,n){return(r,i)=>{const s=t(r,i);return e==s?s:`${s}-${n}`}}function Ar(t,e,n,r,i,s){const o=t(r,i),a=s.map((u,d)=>{const c=po(t,o,d);return kr(c,n,r,i,u)});return{[e]:{patterns:a,joinSym:o}}}function yo(t){const e=[];for(let n=1;n<=t.length;n++)e.push(t.slice(0,n));return e}function Cr(t,e,n,r,i){return yo(i).map(s=>sn(t,e,n,r,s,{$isNull:!0}))}function kr(t,e,n,r,i){return Object.entries(i).flatMap(([s,o])=>{if(lo([s,o]))return Ar(t,"or",e,n,r,o);if(ho([s,o]))return Ar(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=sn(t,e,n,r,a,o),d=Cr(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:Cr(t,e,n,r,a),joinSym:t(n,r)}}]:sn(t,e,n,r,a,o)})}function bo(t,e,n,r){const i=_t;return r?kr(i,t,e,n,r).concat(vr(i,t,e,n)):vr(i,t,e,n)}function _o(t,e,n){return[t(e,n),t("time",n)]}function go(t,e,n,r,i,s){const[o,a,u,d,c]=Or(t,e,n,r,i),f=oo(u,t(n,r),s);return[o,a,f,d,c]}function To(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,y,b;const _=!!(e.cardinalityInference&&(!((b=(y=(p=e.linkIndex)===null||p===void 0?void 0:p[n])===null||y===void 0?void 0:y[h])===null||b===void 0)&&b.isSingular));try{const[T,w,m]=go(t,e,n,r,h,u),I=Ir(e,{etype:T,level:w,form:i[h],join:m}),v=_?I[0]:I;return{[h]:v}}catch(T){if(T instanceof Me)return{[h]:_?void 0:[]};throw T}}).reduce(function(h,p){return Object.assign(Object.assign({},h),p)},d)}):Object.values(s)}function wo(t,e,n){return n==="string"?no(t,e):t>e?1:-1}function Ye(t,e,n,r,i){return e===r||e==null&&r==null?Xs(t,n):r==null?1:e==null?-1:wo(e,r,i)}function gt([t,e],[n,r],i){return Ye(t,e,n,r,i)}function on(t){return t==null?t:new Date(t).getTime()}function mo(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 gt(r,[s,u],null)===d;const[c,f]=r,h=e["checked-data-type"],p=h==="date"?on(f):f,y=h==="date"?on(a):a;return gt([c,p],[s,y],h)===d}function So(t,e){const n=e[1];return t.attrs[n]}function vo(t,e,n){const r=Object.keys(n)[0];return _e(t,e,r)}function Oo(t,e,n,r){if(n)return So(t,n);if(r)return vo(t,e,r)}function Eo(t,e,n){var r,i;if(!Array.isArray(n.fields))return xs(t,e);const s=new Map;for(const o of n.fields){const a=_e(t,e,o),u=(r=a==null?void 0:a["forward-identity"])===null||r===void 0?void 0:r[2];u&&Zt(a)&&s.set(u,a)}if(!s.has("id")){const o=_e(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 Ao(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=jr(i),d=Co(i);let c=Bs(t,r);const f=n==null?void 0:n["start-cursor"],h=Oo(t,e,f,a);if(h&&((o=h==null?void 0:h["forward-identity"])===null||o===void 0?void 0:o[2])!=="id"){const b=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 b&&(F=on(F)),[T,F]})}c.sort(d==="asc"?function(_,T){return gt(_,T,h==null?void 0:h["checked-data-type"])}:function(_,T){return gt(T,_,h==null?void 0:h["checked-data-type"])});let p={};const y=Eo(t,e,r);for(const b of c){const[_]=b;if(p[_]||!u&&f&&h&&mo(f,h,d,b))continue;const T=Rs(t,y,_);T&&(p[_]=T)}return p}function Co(t){var e;const n=(e=t.$)===null||e===void 0?void 0:e.order;return n&&n[Object.keys(n)[0]]||"asc"}function jr(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 ko(t,{etype:e,level:n,form:r,join:i,pageInfo:s}){var o,a,u,d,c;if(!jr(r)&&(!s||!s["start-cursor"]))return[];const f=fo(bo(t,e,n,(o=r.$)===null||o===void 0?void 0:o.where),i),h=_o(_t,e,n),p=(a=r.$)===null||a===void 0?void 0:a.fields,y=Ao(t,{etype:e,pageInfo:s,form:r,dq:{where:f,find:h,fields:p}}),b=((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(b!=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(y);return _.length<=b?y:Object.fromEntries(_.slice(0,b))}return y}function jo(t,e){try{return ko(t,e)}catch(n){if(n instanceof Me)return{};throw n}}function Ir(t,e){const n=jo(t,e);return To(_t,t,e,n)}function Io(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 Pr({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]=Ir(t,{etype:u,form:r[u],level:0,pageInfo:e==null?void 0:e[u]})),a},{})};return e&&(s.pageInfo=Io(e)),n&&(s.aggregate=n),s}function Po(){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 Mo=Po();function an(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(Mo.has(s))return(o,a)=>an(t,e,[...n,a?[s,t,e,o,a]:[s,t,e,o]])}})}function Ro(t,e){return`lookup__${t}__${JSON.stringify(e)}`}function Tt(t){return t.startsWith("lookup__")}function Mr(t){const[e,n,...r]=t.split("__");return[n,JSON.parse(r.join("__"))]}function xo(t){return new Proxy({__etype:t},{get(e,n){if(n==="__etype")return t;const r=n;return Tt(r)?an(t,Mr(r),[]):an(t,r,[])}})}function un(){return new Proxy({},{get(t,e){return xo(e)}})}const Do=un();function $o(t){return t.__ops}function Uo(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 B(t,e,n){return Object.values(t).find(r=>{const[i,s,o]=r["forward-identity"];return s===e&&o===n})}function Se(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 Lo(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 cn(t,e,n){return n.indexOf(".")!==-1&&!B(t,e,n)}function dn(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 Fo(t,e,n){if(!cn(t,e,n))return B(t,e,n);const r=dn(n),i=B(t,e,r)||Se(t,e,r);if(i&&i["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return i}function fn(t){return typeof t=="string"&&!Tt(t)?null:typeof t=="string"&&Tt(t)?Mr(t):Lo(t)}function ee(t,e,n){const r=fn(n);if(r===null)return n;const[i,s]=r,o=Fo(t,e,i);if(!o||!o["unique?"])throw new Error(`${i} is not a unique attribute.`);return[o.id,s]}function Rr(t,e,n,r){const i=ee(t,e,n);return Array.isArray(i)?[["add-triple",i,B(t,e,"id").id,i]].concat(r):r}function No({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=B(t,e,s),d=Se(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 Rr(t,e,n,i)}function Wo({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=B(t,e,s),d=Se(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 Rr(t,e,n,i)}function Vo(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 xr({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:Vo(t,n,r)?{mode:"update"}:null}function zo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=Ht(o),d=ee(r,i,s);return[["id",d]].concat(Object.entries(u)).map(([f,h])=>{const p=B(r,i,f);return p["checked-data-type"]==="date"&&t.useDateObjects&&(h=pt(h)),["add-triple",d,p.id,h,{mode:"create"}]})}function Ko(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=Ht(o),d=ee(r,i,s),c=xr(t,[i,d,o,a]);return[["id",d]].concat(Object.entries(u)).map(([h,p])=>{const y=B(r,i,h);return y["checked-data-type"]==="date"&&t.useDateObjects&&(p=pt(p)),["add-triple",d,y.id,p,...c?[c]:[]]})}function Bo({attrs:t},[e,n]){return[["delete-entity",ee(t,e,n),e]]}function qo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=Ht(o),d=ee(r,i,s),c=xr(t,[i,d,o,a]),f=Object.entries(u).map(([p,y])=>{const b=B(r,i,p);return["deep-merge-triple",d,b.id,y,...c?[c]:[]]});return[["add-triple",d,B(r,i,"id").id,d,...c?[c]:[]]].concat(f)}function Go({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 Ho(t,e){const[n,...r]=Qo(e);switch(n){case"merge":return qo(t,r);case"create":return zo(t,r);case"update":return Ko(t,r);case"link":return No(t,r);case"unlink":return Wo(t,r);case"delete":return Bo(t,r);case"ruleParams":return Go(t,r);default:throw new Error(`unsupported action ${n}`)}}function Yo(t){switch(t){case"string":case"date":case"boolean":case"number":return t;default:return}}function Jo(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=Yo(s==null?void 0:s.valueType);return{"index?":a,"unique?":o,"checked-data-type":u}}function wt(t,e,n,r){const i=t?Jo(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 Zo(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 Xo(t,e,n){const r=Zo(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 Dr(t,e,n,r){const i=t?Xo(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 ea=new Set(["create","update","merge","link","unlink"]),ta=new Set(["link","unlink"]),na=new Set(["create","update","merge"]),ra=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),ln={"unique?":!0,"index?":!0},ia=Object.assign(Object.assign({},ln),{cardinality:"one"});function sa(t){const e=[],[n,r,i,s]=t;if(!ra.has(n))return e;const o=fn(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=fn(c);f&&e.push({etype:r,lookupPair:f,linkLabel:a})}}return e}function oa({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=B(o,f,h),y=Se(o,f,h);d(p),d(y),!p&&!y&&u(Dr(e,f,h,ia))}for(const f of n)for(const{etype:h,lookupPair:p,linkLabel:y}of sa(f)){const b=p[0];if(y){c(h,y);const _=B(o,h,y),T=Se(o,h,y);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])||y;if(cn(o,w,b))c(w,dn(b));else{const m=B(o,w,b);m||u(wt(e,w,b,ln)),d(m)}}else if(cn(o,h,b))c(h,dn(b));else{const _=B(o,h,b);_||u(wt(e,h,b,ln)),d(_)}}for(const f of n){const[h,p,y,b]=f;if(ea.has(h)){const _=B(o,p,"id");d(_),_||u(wt(e,p,"id",{"unique?":!0}));for(const T of Object.keys(b)){const w=B(o,p,T);if(d(w),na.has(h)&&(w||u(wt(e,p,T,T==="id"?{"unique?":!0}:null))),ta.has(h)){const m=Se(o,p,T);!w&&!m&&u(Dr(e,p,T)),d(m)}}}}return[o,a]}function aa(t,e){const r=(Array.isArray(e)?e:[e]).flatMap(u=>$o(u)),[i,s]=oa(t,r),o=Object.assign(Object.assign({},t),{attrs:i}),a=r.flatMap(u=>Ho(o,u));return[...s,...a]}var $r=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 Ur{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 $r(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 $r(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 ua=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 Lr{static getIsOnline(){return ua(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 Re 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,Re),this.name="InstantError"}get[Symbol.toStringTag](){return"InstantError"}}var ca=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 Je extends Re{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,Je),this.name="InstantAPIError",this.status=e.status,this.body=e.body}get[Symbol.toStringTag](){return"InstantAPIError"}}function ce(t,e){return ca(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 Je({status:n.status,body:r}))})}var xe=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 da({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 fa(t){return xe(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 la(t){return xe(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 ha(t){return xe(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 Fr(t){return xe(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 pa(t){return xe(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 ya(t){return xe(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 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 ba(t){return Ze(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 _a(t){return Ze(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 ga(t){return Ze(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 Ta(t,e){return Ze(this,void 0,void 0,function*(){return(yield fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok})}function wa(t){return Ze(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 hn=!1,Nr=!1,Wr=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(hn=!!window.localStorage.getItem("devBackend"),Nr=!!window.localStorage.getItem("__instantLogging"),Wr=!!window.localStorage.getItem("__devtoolLocalDash"));function Vr(t,e){if(!e)return t;const n={};return e.forEach(r=>{n[r]=t[r]}),n}function ma(t,e,n){var r,i;const s={peers:{}};if(e&&"user"in e?e.user:!0){const a=Vr((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=Vr(t.peers[a],e==null?void 0:e.keys);s.peers[a]=Object.assign(Object.assign({},c),{peerId:a})}}return s}function Sa(t,e){if(t.isLoading!==e.isLoading||t.error!==e.error||(t.user||e.user)&&(!t.user||!e.user||!rr(t.user,e.user))||!nr(t.peers,e.peers))return!0;for(const r of Object.keys(t.peers))if(!rr(t.peers[r],e.peers[r]))return!0;return!1}class zr{constructor(){this.promise=new Promise((e,n)=>{this._resolve=e,this._reject=n})}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}var Xe=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 va(t,e){typeof requestIdleCallback>"u"?t():requestIdleCallback(t,{timeout:e})}class pn{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 Xe(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 Xe(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 Xe(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 Xe(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 Xe(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(()=>{va(()=>{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 Kr(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);Kr(n["child-nodes"],e)})}function Br(t){const e=[];return Kr(t,e),e}function qr(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 yn="v0.22.47-experimental.sync-table.19185308245.1";function Oa(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 mt{constructor(e,n){this.attrs=e,this.links=n}asType(){return new mt(this.attrs,this.links)}}class St{constructor(e,n,r){this.entities=e,this.links=n,this.rooms=r}withRoomSchema(){return new St(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 Gr=["where","order","limit","last","first","offset","after","before","fields","aggregate"],Ea=t=>t.valueType||"unknown",Qr=(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}},Aa=(t,e,n,r,i,s,o)=>{const a=s.valueType==="json",u=(d,c,f)=>{if(!Qr(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)}},De=(t,e,n,r,i)=>{const s=Ea(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))Aa(d,c,s,e,r,n,`${i}.${d}`)}else if(!Qr(t,s,o))throw new x(`Invalid value for attribute '${e}' in entity '${r}'. Expected ${s}, but received: ${typeof t}`,i)},Ca=(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 y=Object.keys(h.links);throw new x(`Link '${f}' does not exist on entity '${o}' in dot notation path '${t}'. Available links: ${y.length>0?y.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"&&!Pe(e))throw new x(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${e}`,i);De(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"&&!Pe(e))throw new x(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${e}`,i);De(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)}De(e,t,d,n,i)},Hr=(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&&Hr(d,e,n,`${r}.${i}[${d}]`);continue}if(i==="id"){De(s,"id",new H("string",!1,!0),e,`${r}.id`);continue}if(i.includes(".")){Ca(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)De(s,i,a,e,`${r}.${i}`);else if(u){if(typeof s=="string"&&!Pe(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);De(s,i,d,e,`${r}.${i}`)}}},ka=(t,e,n,r,i=0)=>{for(const o of Object.keys(t))if(!Gr.includes(o))throw new x(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${Gr.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);Hr(t.where,e,n,r?`${r}.where`:"where")}},Yr=(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&&Yr(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}.$`);ka(a,e,n,`${r}.$`,i)}},Jr=(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)}Yr(n[r],r,e,r,0)}}},Zr=t=>typeof t!="string"?!1:Tt(t)?!0:Pe(t);class se extends Error{constructor(e){super(e),this.name="TransactionValidationError"}}const Xr=t=>t.length>0?t.join(", "):"none",ja=(t,e)=>new se(`Entity '${t}' does not exist in schema. Available entities: ${Xr(e)}`),ei={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},Ia=(t,e)=>{var n,r;return t==null?!0:(r=(n=ei[e.valueType])===null||n===void 0?void 0:n.call(ei,t))!==null&&r!==void 0?r:!1},ti=(t,e)=>{const n=e.entities[t];if(!n)throw ja(t,Object.keys(e.entities));return n},bn=(t,e,n)=>{const r=ti(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&&!Ia(s,o))throw new se(`Invalid value for attribute '${i}' in entity '${t}'. Expected ${o.valueType}, but received: ${typeof s}`)}},ni=(t,e,n)=>{const r=ti(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: ${Xr(a)}`)}if(s!=null){if(Array.isArray(s)){for(const a of s)if(!Zr(a))throw new se(`Invalid entity ID in link '${i}' for entity '${t}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!Zr(s))throw new se(`Invalid UUID in link '${i}' for entity '${t}'. Expected a UUID, but received: ${s}`)}}},Pa={create:bn,update:bn,merge:bn,link:ni,unlink:ni,delete:()=>{}},Ma=(t,e)=>{if(!e)return;const[n,r,i,s]=t;if(!Array.isArray(i)&&!Pe(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=Pa[n];o&&s!==void 0&&o(r,s,e)},Ra=(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}`);Ma(i,e)}}};var ri=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 ii=0;class si{constructor(e){this.type="ws",this.id=`${this.type}_${ii++}`,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 xa{constructor(e,n){this.type="sse",this.initParams=null,this.sendQueue=[],this.closeFired=!1,this.sseInitTimeout=null,this.id=`${this.type}_${ii++}`,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 ri(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 ri(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 oi=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 Da(t,e){for(const n in t){const r=t[n];for(const i of r.entities||[])i.store.useDateObjects=e,i.store=fr(i.store)}return t}function $a(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(Object.assign(Object.assign({},s),{store:dr(s.store)}));e[n]=Object.assign(Object.assign({},r),{entities:i})}else e[n]=r}return e}function Ua(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 _n(t,e){return Pr({store:e,pageInfo:null,aggregate:null},t.query).data[t.table][0]}function ai(t,e,n){var r;const i=(r=_e(e,t.table,"id"))===null||r===void 0?void 0:r.id;if(!i)return-1;const s=Ie(e.eav,[n,i,n]);return s?s[3]:-1}function ui(t,e){for(const{action:n,triple:r}of e)switch(n){case"added":pr(t,r);break;case"removed":lr(t,r);break}}function La(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 y=(s=p[h])!==null&&s!==void 0?s:{};switch(p[h]=y,a){case"added":y.newValue=f;break;case"removed":y.oldValue===void 0&&(y.oldValue=f);break}}return o}function vt(t,e){return{[t.table]:e.map(n=>n.entity)}}function Fa(t,e){const n=t.orderFieldType;if(t.orderField==="serverCreatedAt"){e.sort(t.orderDirection==="asc"?function(s,o){return Ye(s.entity.id,s.serverCreatedAt,o.entity.id,o.serverCreatedAt,n)}:function(s,o){return Ye(o.entity.id,o.serverCreatedAt,s.entity.id,s.serverCreatedAt,n)});return}const r=t.orderField;e.sort(t.orderDirection==="asc"?function(s,o){return Ye(s.entity.id,s.entity[r],o.entity.id,o.entity[r],n)}:function(s,o){return Ye(o.entity.id,o.entity[r],s.entity.id,s.entity[r],n)})}var ve;(function(t){t.InitialSyncBatch="InitialSyncBatch",t.InitialSyncComplete="InitialSyncComplete",t.LoadFromStorage="LoadFromStorage",t.SyncTransaction="SyncTransaction",t.Error="Error"})(ve||(ve={}));class Na{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 pn(n,"subs",{},Ua,$a,o=>Da(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==null?void 0:i.keepSubscription)}}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 oi(this,void 0,void 0,function*(){var i,s,o;yield this.subs.waitForLoaded();const a=this.subs.currentValue[n];if(a&&a.state&&a.state.txId){this.sendResync(a,a.state),a.entities&&r&&(Object.keys(e)[0],r({type:ve.LoadFromStorage,data:vt(a,a.entities)}));return}const u=Object.keys(e)[0],d=((s=(i=e[u])===null||i===void 0?void 0:i.$)===null||s===void 0?void 0:s.order)||{serverCreatedAt:"asc"},[c,f]=Object.entries(d)[0],h=c==="serverCreatedAt"?"number":(o=_e(this.createStore([]),u,c))===null||o===void 0?void 0:o["checked-data-type"];this.subs.set(p=>(p[n]={query:e,hash:n,table:u,orderDirection:f,orderField:c,orderFieldType:h},p)),this.sendStart(e)})}flushPending(){return oi(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),y=_n(c,p);f.push({store:p,entity:y,serverCreatedAt:ai(c,p,y.id)}),s.push(y)}return u})[i];a.entities&&this.notifyCbs(i,{type:ve.InitialSyncBatch,data:vt(a,a.entities),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(s=>{const o=s[r];if(!o)return this.log.error("Missing sub for hash",r,e),s;const a=o.state;return a?(a.txId=e["tx-id"],s):(this.log.error("Sub never set init, missing result",o,e),s)});const i=this.subs.currentValue[r];i&&this.notifyCbs(r,{type:ve.InitialSyncComplete,data:vt(i,i.entities||[])})}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 b of u.changes){const _=(s=c[b.triple[0]])!==null&&s!==void 0?s:[];c[b.triple[0]]=_,_.push(b)}const f=o.entities||[];o.entities=f;const h=[];e:for(const[b,_]of Object.entries(c))for(const[T,w]of Object.entries(f))if(Os(w.store,b)){ui(w.store,_);const m=_n(o,w.store),I=La(w.store,_)[b];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[b];continue e}const p=[];for(const[b,_]of Object.entries(c)){const T=this.createStore([]);ui(T,_);const w=_n(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,serverCreatedAt:ai(o,T,w.id)}),p.push(w)}const y=[];for(const b of d.sort().reverse())y.push(f[b].entity),f.splice(b,1);Fa(o,f),this.notifyCbs(r,{type:ve.SyncTransaction,data:vt(o,o.entities),added:p,removed:y,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},i=Object.keys(e["original-event"].q)[0];this.notifyCbs(n,{type:ve.Error,data:{[i]:[]},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())})},Wa=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"},Va=3e4,za=3e4,Ka=200,Ba={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},gn="_instant_oauth_redirect",Tn="currentUser";function qa({transportType:t,appId:e,apiURI:n,wsURI:r,EventSourceImpl:i}){if(!i)return new si(`${r}?app_id=${e}`);switch(t){case"ws":return new si(`${r}?app_id=${e}`);case"sse":return new xa(i,`${n}/runtime/sse?app_id=${e}`);default:throw new Error("Unknown transport type "+t)}}function Ga(){return typeof window<"u"||typeof chrome<"u"}const ci={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function Qa(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=fr(Object.assign(Object.assign({},o),{useDateObjects:e}))}}return r}function Ha(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:dr(i.result.store)})),n[r]=s}return n}function di(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 Ya{constructor(e,n=Ur,r=Lr,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(([y,b])=>{var _;const T=(_=f==null?void 0:f[y])===null||_===void 0?void 0:_.result,w=b.result;T&&!w&&(h[y].result=T)}),Object.keys(f).filter(y=>!c[y]).sort((y,b)=>{var _,T;const w=((_=f[y])===null||_===void 0?void 0:_.lastAccessed)||0;return(((T=f[b])===null||T===void 0?void 0:T.lastAccessed)||0)-w}).slice(0,this.queryCacheLimit).forEach(y=>{h[y]=f[y]}),this.querySubs.set(y=>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,y])=>{!c.has(p)&&!y["tx-id"]&&this._sendMutation(p,y)})},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,y=this.dataForQuery(d);y&&(ht(y,p)||h.forEach(b=>b.cb(y)))},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||Ra(d,this.config.schema);try{const c=aa({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,y={op:"transact","tx-steps":d,created:Date.now(),error:c,order:p};this.pendingMutations.set(_=>(_.set(f,y),_));const b=new zr;return this.mutationDeferredStore.set(f,b),this._sendMutation(f,y),this.notifyAll(),b.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({},Ba),e),this.queryCacheLimit=(o=this.config.queryCacheLimit)!==null&&o!==void 0?o:10,this._pendingTxCleanupTimeout=(a=this.config.pendingTxCleanupTimeout)!==null&&a!==void 0?a:za,this._pendingMutationCleanupThreshold=(u=this.config.pendingMutationCleanupThreshold)!==null&&u!==void 0?u:Ka,this._log=Oa(e.verbose||hn||Nr,()=>this._reactorStats()),this.versions=Object.assign(Object.assign({},i||{}),{"@instantdb/core":yn}),this.config.schema&&(this._linkIndex=qr(this.config.schema)),!!Ga()){if(!e.appId)throw new Error("Instant must be initialized with an appId.");if(!Pe(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 Na(this._trySendAuthed.bind(this),this._persister,{useDateObjects:this.config.useDateObjects},this._log,d=>yt(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?qr(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 pn(this._persister,"querySubs",{},this._onMergeQuerySubs,Ha,n=>Qa(n,this.config.useDateObjects)),this.pendingMutations=new pn(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=Wa(r,["status"]);i.reject(new Je({body:a,status:o}))}else i.reject(new Re(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(ci[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,y=z(h),b=(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=Br(p),w=yt(this.attrs,T,d,this._linkIndex,this.config.useDateObjects);this.querySubs.set(m=>(m[y].result={store:w,pageInfo:b,aggregate:_,processedTxId:n["processed-tx-id"]},m)),this._cleanupPendingMutationsQueries(),this.notifyOne(y),this.notifyOneQueryOnce(y),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,y=n["processed-tx-id"];p&&this._setAttrs(p),this._cleanupPendingMutationsTimeout();const b=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue,y);b!==this.pendingMutations.currentValue&&this.pendingMutations.set(()=>b);const _=di(b.entries()),T=h.map(w=>{var m,I,v,R;const F=w["instaql-query"],Y=w["instaql-result"],ot=z(F),jt=Br(Y),Dn=yt(this.attrs,jt,d,this._linkIndex,this.config.useDateObjects),$n=this._applyOptimisticUpdates(Dn,_,y),It=(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:ot,store:$n,pageInfo:It,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:y},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 b=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue).get(h);if(!b)break;this.pendingMutations.set(T=>(T.set(h,Object.assign(Object.assign({},T.get(h)),{"tx-id":p,confirmed:Date.now()})),T));const _=b["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 y=(i=e["original-event"])===null||i===void 0?void 0:i.q,b=z(y);this.notifyQueryError(z(y),f),this.notifyQueryOnceError(y,b,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||Jr(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||Jr(e,this.config.schema),n&&"ruleParams"in n&&(e=Object.assign({$$ruleParams:n.ruleParams},e));const i=new zr;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")),Va),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 B(e,h,p)},s=c=>{const[f,h,p]=c["forward-identity"];return Se(e,h,p)},o={attrIdMap:{},refSwapAttrIds:new Set};let a=!1;const u=(c,f)=>{const h=[];for(const p of c){const[y]=p;if(y==="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&&y==="add-attr"||y==="update-attr"||y==="delete-attr"){a=!0;continue}const b=a?Uo(o,p):p;h.push(b)}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 di(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,y=this._rewriteMutationsSorted(c.attrs,o),b=this._applyOptimisticUpdates(c,y,p),_=Pr({store:b,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=$s(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(ci[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=qa({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(gn)){const n=e.toString();e.searchParams.delete(gn),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(gn))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 Fr({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||ht(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 Re("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(Tn,e)})}getCurrentUserCached(){return this._currentUserCached}_getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this._persister.getItem(Tn);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(Tn);return JSON.parse(e)!=null})}changeCurrentUser(e){return L(this,void 0,void 0,function*(){var n;const{user:r}=yield this.getCurrentUser();if(!ht(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 da({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 fa({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 la({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 ha({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}ya({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 Fr({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 pa({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({},ma(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&&!Sa(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=Qt(a,d=>{for(let[c,f,h]of n)switch(f){case"+":ss(d,c,h);break;case"r":sr(d,c,h);break;case"-":or(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=Qt(this._presence,s=>{sr(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 y=(u=r.data)===null||u===void 0?void 0:u.data,b=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(y,b)})}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 ba(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 _a({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 ga({apiURI:this.config.apiURI,appId:this.config.appId,fileName:o,refreshToken:s});return yield Ta(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 wa({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}}function Ja(t,e){return new St(fi(t,e),e,void 0)}function Za(t){return new mt(t,{})}function Xa(){return new H("string",!0,!1)}function eu(){return new H("number",!0,!1)}function tu(){return new H("boolean",!0,!1)}function nu(){return new H("date",!0,!1)}function ru(){return new H("json",!0,!1)}function iu(){return new H("json",!0,!1)}function fi(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 mt(d.attrs,Object.assign(Object.assign({},o.fwd[u]),o.rev[u]))]))}function su({entities:t,links:e,rooms:n}){const r=e??{},i=n??{};return new St(fi(t,r),r,i)}const ou={graph:Ja,schema:su,entity:Za,string:Xa,number:eu,boolean:tu,date:nu,json:ru,any:iu};let Ot;function au(t,e){Ot==null||Ot.dispose();const n=hu(e),r=du(e,a),i=cu(uu(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),Ot={dispose:u}}return d()}function uu(t){return`${hn||Wr?"http://localhost:3000":"https://instantdb.com"}/_devtool?appId=${t}`}function cu(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 du(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"},
|
|
7
|
+
`,r=document.createElement("button");return r.innerHTML=n,r.className="instant-devtool-toggler",Object.assign(r.style,Object.assign(Object.assign({position:"fixed"},fu(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 fu(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 lu(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 hu(t){const e=document.createElement("div");Object.assign(e.style,Object.assign(Object.assign({position:"fixed"},lu(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 pu={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"};function yu(){var t;return globalThis.__instantDbSchemaHashStore=(t=globalThis.__instantDbSchemaHashStore)!==null&&t!==void 0?t:new WeakMap,globalThis.__instantDbSchemaHashStore}function bu(){var t;return globalThis.__instantDbStore=(t=globalThis.__instantDbStore)!==null&&t!==void 0?t:{},globalThis.__instantDbStore}function wn(t){const e=t.__adminToken;return t.appId+"_"+(t.websocketURI||"default_ws_uri")+"_"+(t.apiURI||"default_api_uri")+"_"+(e||"client_only")+"_"+t.useDateObjects}const mn=bu(),Sn=yu();class _u{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 gu{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 Tu(t){return JSON.parse(JSON.stringify(t))}class wu{constructor(e){this.tx=un(),this._reactor=e,this.auth=new _u(this._reactor),this.storage=new gu(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 mn[wn(this._reactor.config)],this._reactor.shutdown()}queryOnce(e,n){return this._reactor.queryOnce(e,n)}_syncTableExperimental(e,n){return this._reactor.subscribeTable(e,n)}}function li(t){if(!t)return"0";if(Sn.get(t))return Sn.get(t);const e=z(t);return Sn.set(t,e),e}function mu(t,e){return li(t._reactor.config.schema)!==li(e)}function Su(t,e,n,r,i){const s=mn[wn(t)];if(s)return mu(s,t.schema)&&s._reactor.updateSchema(t.schema),s;const o=new Ya(Object.assign(Object.assign(Object.assign({},pu),t),{cardinalityInference:!!t.schema}),e||Ur,n||Lr,Object.assign(Object.assign({},r||{}),{"@instantdb/core":yn}),i),a=new wu(o);return mn[wn(t)]=a,vu(t.appId,t.devtool),a}function vu(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)&&au(t,n)}var vn={exports:{}},et={};/**
|
|
8
8
|
* @license React
|
|
9
9
|
* react-jsx-runtime.production.min.js
|
|
10
10
|
*
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* This source code is licensed under the MIT license found in the
|
|
14
14
|
* LICENSE file in the root directory of this source tree.
|
|
15
|
-
*/var
|
|
15
|
+
*/var hi;function Ou(){if(hi)return et;hi=1;var t=k,e=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,i=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function o(a,u,d){var c,f={},h=null,p=null;d!==void 0&&(h=""+d),u.key!==void 0&&(h=""+u.key),u.ref!==void 0&&(p=u.ref);for(c in u)r.call(u,c)&&!s.hasOwnProperty(c)&&(f[c]=u[c]);if(a&&a.defaultProps)for(c in u=a.defaultProps,u)f[c]===void 0&&(f[c]=u[c]);return{$$typeof:e,type:a,key:h,ref:p,props:f,_owner:i.current}}return et.Fragment=n,et.jsx=o,et.jsxs=o,et}var tt={},pi;function Eu(){if(pi)return tt;pi=1;var t={};/**
|
|
16
16
|
* @license React
|
|
17
17
|
* react-jsx-runtime.development.js
|
|
18
18
|
*
|
|
@@ -20,21 +20,21 @@
|
|
|
20
20
|
*
|
|
21
21
|
* This source code is licensed under the MIT license found in the
|
|
22
22
|
* LICENSE file in the root directory of this source tree.
|
|
23
|
-
*/return t.NODE_ENV!=="production"&&function(){var e=k,n=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),
|
|
24
|
-
|
|
23
|
+
*/return t.NODE_ENV!=="production"&&function(){var e=k,n=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),y=Symbol.for("react.offscreen"),b=Symbol.iterator,_="@@iterator";function T(l){if(l===null||typeof l!="object")return null;var g=b&&l[b]||l[_];return typeof g=="function"?g:null}var w=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function m(l){{for(var g=arguments.length,S=new Array(g>1?g-1:0),O=1;O<g;O++)S[O-1]=arguments[O];I("error",l,S)}}function I(l,g,S){{var O=w.ReactDebugCurrentFrame,P=O.getStackAddendum();P!==""&&(g+="%s",S=S.concat([P]));var M=S.map(function(j){return String(j)});M.unshift("Warning: "+g),Function.prototype.apply.call(console[l],console,M)}}var v=!1,R=!1,F=!1,Y=!1,ot=!1,jt;jt=Symbol.for("react.module.reference");function Dn(l){return!!(typeof l=="string"||typeof l=="function"||l===i||l===o||ot||l===s||l===c||l===f||Y||l===y||v||R||F||typeof l=="object"&&l!==null&&(l.$$typeof===p||l.$$typeof===h||l.$$typeof===a||l.$$typeof===u||l.$$typeof===d||l.$$typeof===jt||l.getModuleId!==void 0))}function $n(l,g,S){var O=l.displayName;if(O)return O;var P=g.displayName||g.name||"";return P!==""?S+"("+P+")":S}function It(l){return l.displayName||"Context"}function le(l){if(l==null)return null;if(typeof l.tag=="number"&&m("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof l=="function")return l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case i:return"Fragment";case r:return"Portal";case o:return"Profiler";case s:return"StrictMode";case c:return"Suspense";case f:return"SuspenseList"}if(typeof l=="object")switch(l.$$typeof){case u:var g=l;return It(g)+".Consumer";case a:var S=l;return It(S._context)+".Provider";case d:return $n(l,l.render,"ForwardRef");case h:var O=l.displayName||null;return O!==null?O:le(l.type)||"Memo";case p:{var P=l,M=P._payload,j=P._init;try{return le(j(M))}catch{return null}}}return null}var Ae=Object.assign,at=0,Oi,Ei,Ai,Ci,ki,ji,Ii;function Pi(){}Pi.__reactDisabledLog=!0;function Qu(){{if(at===0){Oi=console.log,Ei=console.info,Ai=console.warn,Ci=console.error,ki=console.group,ji=console.groupCollapsed,Ii=console.groupEnd;var l={configurable:!0,enumerable:!0,value:Pi,writable:!0};Object.defineProperties(console,{info:l,log:l,warn:l,error:l,group:l,groupCollapsed:l,groupEnd:l})}at++}}function Hu(){{if(at--,at===0){var l={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Ae({},l,{value:Oi}),info:Ae({},l,{value:Ei}),warn:Ae({},l,{value:Ai}),error:Ae({},l,{value:Ci}),group:Ae({},l,{value:ki}),groupCollapsed:Ae({},l,{value:ji}),groupEnd:Ae({},l,{value:Ii})})}at<0&&m("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Un=w.ReactCurrentDispatcher,Ln;function Pt(l,g,S){{if(Ln===void 0)try{throw Error()}catch(P){var O=P.stack.trim().match(/\n( *(at )?)/);Ln=O&&O[1]||""}return`
|
|
24
|
+
`+Ln+l}}var Fn=!1,Mt;{var Yu=typeof WeakMap=="function"?WeakMap:Map;Mt=new Yu}function Mi(l,g){if(!l||Fn)return"";{var S=Mt.get(l);if(S!==void 0)return S}var O;Fn=!0;var P=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var M;M=Un.current,Un.current=null,Qu();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"&&
|
|
27
|
+
`+C[U].replace(" at new "," at ");return l.displayName&&oe.includes("<anonymous>")&&(oe=oe.replace("<anonymous>",l.displayName)),typeof l=="function"&&Mt.set(l,oe),oe}while(U>=1&&N>=0);break}}}finally{Fn=!1,Un.current=M,Hu(),Error.prepareStackTrace=P}var Ve=l?l.displayName||l.name:"",Ce=Ve?Pt(Ve):"";return typeof l=="function"&&Mt.set(l,Ce),Ce}function Ju(l,g,S){return Mi(l,!1)}function Zu(l){var g=l.prototype;return!!(g&&g.isReactComponent)}function Rt(l,g,S){if(l==null)return"";if(typeof l=="function")return Mi(l,Zu(l));if(typeof l=="string")return Pt(l);switch(l){case c:return Pt("Suspense");case f:return Pt("SuspenseList")}if(typeof l=="object")switch(l.$$typeof){case d:return Ju(l.render);case h:return Rt(l.type,g,S);case p:{var O=l,P=O._payload,M=O._init;try{return Rt(M(P),g,S)}catch{}}}return""}var ut=Object.prototype.hasOwnProperty,Ri={},xi=w.ReactDebugCurrentFrame;function xt(l){if(l){var g=l._owner,S=Rt(l.type,l._source,g?g.type:null);xi.setExtraStackFrame(S)}else xi.setExtraStackFrame(null)}function Xu(l,g,S,O,P){{var M=Function.call.bind(ut);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)&&(xt(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),xt(null)),C instanceof Error&&!(C.message in Ri)&&(Ri[C.message]=!0,xt(P),m("Failed %s type: %s",S,C.message),xt(null))}}}var ec=Array.isArray;function Nn(l){return ec(l)}function tc(l){{var g=typeof Symbol=="function"&&Symbol.toStringTag,S=g&&l[Symbol.toStringTag]||l.constructor.name||"Object";return S}}function nc(l){try{return Di(l),!1}catch{return!0}}function Di(l){return""+l}function $i(l){if(nc(l))return m("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",tc(l)),Di(l)}var Ui=w.ReactCurrentOwner,rc={key:!0,ref:!0,__self:!0,__source:!0},Li,Fi;function ic(l){if(ut.call(l,"ref")){var g=Object.getOwnPropertyDescriptor(l,"ref").get;if(g&&g.isReactWarning)return!1}return l.ref!==void 0}function sc(l){if(ut.call(l,"key")){var g=Object.getOwnPropertyDescriptor(l,"key").get;if(g&&g.isReactWarning)return!1}return l.key!==void 0}function oc(l,g){typeof l.ref=="string"&&Ui.current}function ac(l,g){{var S=function(){Li||(Li=!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 uc(l,g){{var S=function(){Fi||(Fi=!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 cc=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 dc(l,g,S,O,P){{var M,j={},C=null,J=null;S!==void 0&&($i(S),C=""+S),sc(g)&&($i(g.key),C=""+g.key),ic(g)&&(J=g.ref,oc(g,P));for(M in g)ut.call(g,M)&&!rc.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&&ac(j,N),J&&uc(j,N)}return cc(l,C,J,P,O,Ui.current,j)}}var Wn=w.ReactCurrentOwner,Ni=w.ReactDebugCurrentFrame;function We(l){if(l){var g=l._owner,S=Rt(l.type,l._source,g?g.type:null);Ni.setExtraStackFrame(S)}else Ni.setExtraStackFrame(null)}var Vn;Vn=!1;function zn(l){return typeof l=="object"&&l!==null&&l.$$typeof===n}function Wi(){{if(Wn.current){var l=le(Wn.current.type);if(l)return`
|
|
28
28
|
|
|
29
|
-
Check the render method of \``+l+"`."}return""}}function
|
|
29
|
+
Check the render method of \``+l+"`."}return""}}function fc(l){return""}var Vi={};function lc(l){{var g=Wi();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
|
|
31
|
+
Check the top-level render call using <`+S+">.")}return g}}function zi(l,g){{if(!l._store||l._store.validated||l.key!=null)return;l._store.validated=!0;var S=lc(g);if(Vi[S])return;Vi[S]=!0;var O="";l&&l._owner&&l._owner!==Wn.current&&(O=" It was passed a child from "+le(l._owner.type)+"."),We(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),We(null)}}function Ki(l,g){{if(typeof l!="object")return;if(Nn(l))for(var S=0;S<l.length;S++){var O=l[S];zn(O)&&zi(O,g)}else if(zn(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;)zn(j.value)&&zi(j.value,g)}}}function hc(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);Xu(S,l.props,"prop",O,l)}else if(g.PropTypes!==void 0&&!Vn){Vn=!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 pc(l){{for(var g=Object.keys(l.props),S=0;S<g.length;S++){var O=g[S];if(O!=="children"&&O!=="key"){We(l),m("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",O),We(null);break}}l.ref!==null&&(We(l),m("Invalid attribute `ref` supplied to `React.Fragment`."),We(null))}}var Bi={};function qi(l,g,S,O,P,M){{var j=Dn(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=fc();J?C+=J:C+=Wi();var U;l===null?U="null":Nn(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=dc(l,g,S,P,M);if(N==null)return N;if(j){var oe=g.children;if(oe!==void 0)if(O)if(Nn(oe)){for(var Ve=0;Ve<oe.length;Ve++)Ki(oe[Ve],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 Ki(oe,l)}if(ut.call(g,"key")){var Ce=le(l),ne=Object.keys(g).filter(function(wc){return wc!=="key"}),Kn=ne.length>0?"{key: someKey, "+ne.join(": ..., ")+": ...}":"{key: someKey}";if(!Bi[Ce+Kn]){var Tc=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} />`,
|
|
37
|
-
`;break;case"id":a=_.includes("\0")?void 0:_;break;case"retry":/^\d+$/.test(_)?r(parseInt(_,10)):n(new
|
|
38
|
-
`)?u.slice(0,-1):u}),a=void 0,u="",d=""}function b
|
|
36
|
+
<%s key={someKey} {...props} />`,Kn,Ce,Tc,Ce),Bi[Ce+Kn]=!0}}return l===i?pc(N):hc(N),N}}function yc(l,g,S){return qi(l,g,S,!0)}function bc(l,g,S){return qi(l,g,S,!1)}var _c=bc,gc=yc;tt.Fragment=i,tt.jsx=_c,tt.jsxs=gc}(),tt}var Au={};Au.NODE_ENV==="production"?vn.exports=Ou():vn.exports=Eu();var q=vn.exports;const Cu={isLoading:!0,data:void 0,pageInfo:void 0,error:void 0};function yi(t){return Object.assign({isLoading:!t,data:void 0,pageInfo:void 0,error:void 0},t||{})}function ku(t,e,n){e&&n&&"ruleParams"in n&&(e=Object.assign({$$ruleParams:n.ruleParams},e));const r=e?Tu(e):null,i=z(r),s=k.useRef(yi(t._reactor.getPreviousResult(r))),o=k.useCallback(u=>(s.current=yi(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,()=>Cu),query:r}}function ju(){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 Iu=1e3;function Pu(t,e,n){k.useEffect(()=>t.core._reactor.subscribeTopic(t.id,e,(i,s)=>{n(i,s)}),[t.id,e])}function Mu(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 Ru(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 xu(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 Du(t,e,n={}){const r=ju(),i=Oe.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:Iu,()=>{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 Oe={useTopicEffect:Pu,usePublishTopic:Mu,usePresence:Ru,useSyncPresence:xu,useTypingIndicator:Du};class $u{constructor(e,n,r){this.useTopicEffect=(i,s)=>{Oe.useTopicEffect(this,i,s)},this.usePublishTopic=i=>Oe.usePublishTopic(this,i),this.usePresence=(i={})=>Oe.usePresence(this,i),this.useSyncPresence=(i,s)=>Oe.useSyncPresence(this,i,s),this.useTypingIndicator=(i,s={})=>Oe.useTypingIndicator(this,i,s),this.core=e,this._core=this.core,this.type=n,this.id=r}}var Uu=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 Lu={isLoading:!0,user:void 0,error:void 0};class bi{constructor(e,n){this.tx=un(),this.getLocalId=r=>this.core.getLocalId(r),this.useLocalId=r=>{const[i,s]=k.useState(null);return k.useEffect(()=>{Uu(this,void 0,void 0,function*(){const a=yield this.getLocalId(r);s(a)})},[r]),i},this.rooms=Oe,this.transact=r=>this.core.transact(r),this.useQuery=(r,i)=>ku(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,()=>Lu)},this.useUser=()=>{const{user:r}=this.useAuth();if(!r)throw new Re("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=Su(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 $u(this.core,e,n)}getAuth(){return this.core.getAuth()}}class _i 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 On(t){}function Fu(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=On,onError:n=On,onRetry:r=On,onComment:i}=t;let s="",o=!0,a,u="",d="";function c(b){const _=o?b.replace(/^\xEF\xBB\xBF/,""):b,[T,w]=Nu(`${s}${_}`);for(const m of T)f(m);s=w,o=!1}function f(b){if(b===""){p();return}if(b.startsWith(":")){i&&i(b.slice(b.startsWith(": ")?2:1));return}const _=b.indexOf(":");if(_!==-1){const T=b.slice(0,_),w=b[_+1]===" "?2:1,m=b.slice(_+w);h(T,m,b);return}h(b,"",b)}function h(b,_,T){switch(b){case"event":d=_;break;case"data":u=`${u}${_}
|
|
37
|
+
`;break;case"id":a=_.includes("\0")?void 0:_;break;case"retry":/^\d+$/.test(_)?r(parseInt(_,10)):n(new _i(`Invalid \`retry\` value: "${_}"`,{type:"invalid-retry",value:_,line:T}));break;default:n(new _i(`Unknown field "${b.length>20?`${b.slice(0,20)}…`:b}"`,{type:"unknown-field",field:b,value:_,line:T}));break}}function p(){u.length>0&&e({id:a,event:d||void 0,data:u.endsWith(`
|
|
38
|
+
`)?u.slice(0,-1):u}),a=void 0,u="",d=""}function y(b={}){s&&b.consume&&f(s),o=!0,a=void 0,u="",d="",s=""}return{feed:c,reset:y}}function Nu(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
|
|
40
|
+
`&&r++}}return[e,n]}class gi 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(Ti(this),n)}[Symbol.for("Deno.customInspect")](e,n){return e(Ti(this),n)}}function Wu(t){const e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function En(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(En).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${En(t.cause)}`:t.message:`${t}`}function Ti(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var wi=t=>{throw TypeError(t)},An=(t,e,n)=>e.has(t)||wi("Cannot "+n),E=(t,e,n)=>(An(t,e,"read from private field"),n?n.call(t):e.get(t)),V=(t,e,n)=>e.has(t)?wi("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),D=(t,e,n,r)=>(An(t,e,"write to private field"),e.set(t,n),n),be=(t,e,n)=>(An(t,e,"access private method"),n),te,Ee,$e,Et,At,nt,Ue,rt,ge,Le,Fe,Ne,it,de,Cn,kn,jn,mi,In,Pn,st,Mn,Rn;class Ct 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,Ee),V(this,$e),V(this,Et),V(this,At),V(this,nt),V(this,Ue),V(this,rt,null),V(this,ge),V(this,Le),V(this,Fe,null),V(this,Ne,null),V(this,it,null),V(this,kn,async s=>{var o;E(this,Le).reset();const{body:a,redirected:u,status:d,headers:c}=s;if(d===204){be(this,de,st).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(u?D(this,$e,new URL(s.url)):D(this,$e,void 0),d!==200){be(this,de,st).call(this,`Non-200 status code (${d})`,d);return}if(!(c.get("content-type")||"").startsWith("text/event-stream")){be(this,de,st).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,it))==null||o.call(this,f),this.dispatchEvent(f),typeof a!="object"||!a||!("getReader"in a)){be(this,de,st).call(this,"Invalid response body, expected a web ReadableStream",d),this.close();return}const h=new TextDecoder,p=a.getReader();let y=!0;do{const{done:b,value:_}=await p.read();_&&E(this,Le).feed(h.decode(_,{stream:!b})),b&&(y=!1,E(this,Le).reset(),be(this,de,Mn).call(this))}while(y)}),V(this,jn,s=>{D(this,ge,void 0),!(s.name==="AbortError"||s.type==="aborted")&&be(this,de,Mn).call(this,En(s))}),V(this,In,s=>{typeof s.id=="string"&&D(this,rt,s.id);const o=new MessageEvent(s.event||"message",{data:s.data,origin:E(this,$e)?E(this,$e).origin:E(this,Ee).origin,lastEventId:s.id||""});E(this,Ne)&&(!s.event||s.event==="message")&&E(this,Ne).call(this,o),this.dispatchEvent(o)}),V(this,Pn,s=>{D(this,nt,s)}),V(this,Rn,()=>{D(this,Ue,void 0),E(this,te)===this.CONNECTING&&be(this,de,Cn).call(this)});try{if(e instanceof URL)D(this,Ee,e);else if(typeof e=="string")D(this,Ee,new URL(e,Vu()));else throw new Error("Invalid URL")}catch{throw Wu("An invalid or illegal string was specified")}D(this,Le,Fu({onEvent:E(this,In),onRetry:E(this,Pn)})),D(this,te,this.CONNECTING),D(this,nt,3e3),D(this,At,(r=n==null?void 0:n.fetch)!=null?r:globalThis.fetch),D(this,Et,(i=n==null?void 0:n.withCredentials)!=null?i:!1),be(this,de,Cn).call(this)}get readyState(){return E(this,te)}get url(){return E(this,Ee).href}get withCredentials(){return E(this,Et)}get onerror(){return E(this,Fe)}set onerror(e){D(this,Fe,e)}get onmessage(){return E(this,Ne)}set onmessage(e){D(this,Ne,e)}get onopen(){return E(this,it)}set onopen(e){D(this,it,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,Ue)&&clearTimeout(E(this,Ue)),E(this,te)!==this.CLOSED&&(E(this,ge)&&E(this,ge).abort(),D(this,te,this.CLOSED),D(this,ge,void 0))}}te=new WeakMap,Ee=new WeakMap,$e=new WeakMap,Et=new WeakMap,At=new WeakMap,nt=new WeakMap,Ue=new WeakMap,rt=new WeakMap,ge=new WeakMap,Le=new WeakMap,Fe=new WeakMap,Ne=new WeakMap,it=new WeakMap,de=new WeakSet,Cn=function(){D(this,te,this.CONNECTING),D(this,ge,new AbortController),E(this,At)(E(this,Ee),be(this,de,mi).call(this)).then(E(this,kn)).catch(E(this,jn))},kn=new WeakMap,jn=new WeakMap,mi=function(){var t;const e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...E(this,rt)?{"Last-Event-ID":E(this,rt)}:void 0},cache:"no-store",signal:(t=E(this,ge))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},In=new WeakMap,Pn=new WeakMap,st=function(t,e){var n;E(this,te)!==this.CLOSED&&D(this,te,this.CLOSED);const r=new gi("error",{code:e,message:t});(n=E(this,Fe))==null||n.call(this,r),this.dispatchEvent(r)},Mn=function(t,e){var n;if(E(this,te)===this.CLOSED)return;D(this,te,this.CONNECTING);const r=new gi("error",{code:e,message:t});(n=E(this,Fe))==null||n.call(this,r),this.dispatchEvent(r),D(this,Ue,setTimeout(E(this,Rn),E(this,nt)))},Rn=new WeakMap,Ct.CONNECTING=0,Ct.OPEN=1,Ct.CLOSED=2;function Vu(){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 xn=class xn extends bi{};xn.EventSourceImpl=Ct;let kt=xn;function Si(t){return new kt(t,{"@instantdb/react":yn})}const zu=Si;function Ku({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 y(w){u||w.stopPropagation();const m=w.currentTarget.getBoundingClientRect();p(m,w)}function b(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:y,onMouseOut:b,onTouchMove:_,onTouchEnd:T,className:r,style:{position:"relative",...i}},[o,q.jsx("div",{style:{...vi,...qu,zIndex:d!==void 0?d:Gu},children:Object.entries(f.peers).map(([w,m])=>{const I=m[c];return I?q.jsx("div",{style:{...vi,transform:`translate(${I.xPercent}%, ${I.yPercent}%)`,transformOrigin:"0 0",transition:"transform 100ms"},children:a?a({color:I.color,presence:h.peers[w]}):q.jsx(Bu,{...I})},w):null})},c)])}function Bu({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 vi={position:"absolute",top:0,left:0,bottom:0,right:0},qu={overflow:"hidden",pointerEvents:"none",userSelect:"none"},Gu=99999;G.Cursors=Ku,G.InstantAPIError=Je,G.InstantReactAbstractDatabase=bi,G.InstantReactWebDatabase=kt,G.i=ou,G.id=W,G.init=Si,G.init_experimental=zu,G.lookup=Ro,G.tx=Do,Object.defineProperty(G,Symbol.toStringTag,{value:"Module"})});
|