@instantdb/react 0.22.49-experimental.persisted-object-2.19448682144.1 → 0.22.49-experimental.persisted-object-2.19448798235.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.
@@ -3414,7 +3414,7 @@ function Dr(t) {
3414
3414
  }, e;
3415
3415
  }, {});
3416
3416
  }
3417
- const Qn = "v0.22.49-experimental.persisted-object-2.19448682144.1";
3417
+ const Qn = "v0.22.49-experimental.persisted-object-2.19448798235.1";
3418
3418
  function Ja(t, e) {
3419
3419
  return {
3420
3420
  info: t ? (...n) => console.info(...n, e()) : () => {
@@ -1,4 +1,4 @@
1
- (function(Q,j){typeof exports=="object"&&typeof module<"u"?j(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],j):(Q=typeof globalThis<"u"?globalThis:Q||self,j(Q.instantReact={},Q.React))})(this,function(Q,j){"use strict";function ee(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=ee(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=ee(i);e^=parseInt(s,16),e*=16777619,e=e>>>0;const o=ee(t[i]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return ee(String(t))}const $={Remove:"remove",Replace:"replace",Add:"add"},Qn=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Li=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),lt=Symbol.iterator,oe={mutable:"mutable",immutable:"immutable"},Kt={};function Qe(t,e){return t instanceof Map?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Yn(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 Wt(t){return Object.getPrototypeOf(t)===Set.prototype}function zt(t){return Object.getPrototypeOf(t)===Map.prototype}function ae(t){var e;return(e=t.copy)!==null&&e!==void 0?e:t.original}function Ee(t){return!!k(t)}function k(t){return typeof t!="object"?null:t==null?void 0:t[Qn]}function Vt(t){var e;const n=k(t);return n?(e=n.copy)!==null&&e!==void 0?e:n.original:t}function de(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,oe))===oe.immutable||typeof n=="function")}function Hn(t,e=[]){if(Object.hasOwnProperty.call(t,"key")){const n=t.parent.copy,r=k(ge(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||Qe(n,s)))return null;e.push(s)}if(t.parent)return Hn(t.parent,e);e.reverse();try{Ni(t.copy,e)}catch{return null}return e}function Ae(t){return Array.isArray(t)?1:t instanceof Map?2:t instanceof Set?3:0}function ge(t,e){return Ae(t)===2?t.get(e):t[e]}function Ye(t,e,n){Ae(t)===2?t.set(e,n):t[e]=n}function qt(t,e){const n=k(t);return(n?ae(n):t)[e]}function me(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function Gt(t){if(t)for(;t.finalities.revoke.length>0;)t.finalities.revoke.pop()()}function ke(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 Ni(t,e){for(let n=0;n<e.length-1;n+=1){const r=e[n];if(t=ge(Ae(t)===3?Array.from(t):t,r),typeof t!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return t}function Fi(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 Ki=Object.prototype.propertyIsEnumerable;function Jn(t,e){let n;if(Array.isArray(t))return Array.prototype.concat.call(t);if(t instanceof Set){if(!Wt(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(!zt(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,oe),n!==void 0)&&n!==oe.mutable){if(n===oe.immutable)return Fi(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=>{Ki.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 H(t){t.copy||(t.copy=Jn(t.original,t.options))}function He(t){if(!de(t))return Vt(t);if(Array.isArray(t))return t.map(He);if(t instanceof Map){const n=Array.from(t.entries()).map(([r,i])=>[r,He(i)]);if(!zt(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(He);if(!Wt(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]=He(t[n]);return e}function ht(t){return Ee(t)?He(t):t}function ye(t){var e;t.assignedMap=(e=t.assignedMap)!==null&&e!==void 0?e:new Map,t.operated||(t.operated=!0,t.parent&&ye(t.parent))}function Zn(){throw new Error("Cannot modify frozen object")}function Re(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,c)=>{if(typeof u=="symbol")return`[${u.toString()}]`;const d=r[c];return typeof u=="object"&&(d instanceof Map||d instanceof Set)?Array.from(d.keys()).indexOf(u):u}).join("/")}`);r.push(o),i.push(e)}else r.push(o)}if(Object.isFrozen(t)||Ee(t)){r.pop(),i.pop();return}switch(Ae(t)){case 2:for(const[a,u]of t)Re(a,a,n,r,i),Re(u,a,n,r,i);t.set=t.clear=t.delete=Zn;break;case 3:for(const a of t)Re(a,a,n,r,i);t.add=t.clear=t.delete=Zn;break;case 1:Object.freeze(t);let o=0;for(const a of t)Re(a,o,n,r,i),o+=1;break;default:Object.freeze(t),Object.keys(t).forEach(a=>{const u=t[a];Re(u,a,n,r,i)})}r.pop(),i.pop()}function Bt(t,e){const n=Ae(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 Xn(t,e,n){if(Ee(t)||!de(t,n)||e.has(t)||Object.isFrozen(t))return;const r=t instanceof Set,i=r?new Map:void 0;if(e.add(t),Bt(t,(s,o)=>{var a;if(Ee(o)){const u=k(o);H(u);const c=!((a=u.assignedMap)===null||a===void 0)&&a.size||u.operated?u.copy:u.original;Ye(r?i:t,s,c)}else Xn(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 Wi(t,e){const n=t.type===3?t.setMap:t.copy;t.finalities.revoke.length>1&&t.assignedMap.get(e)&&n&&Xn(ge(n,e),t.finalities.handledSet,t.options)}function Qt(t){t.type===3&&t.copy&&(t.copy.clear(),t.setMap.forEach(e=>{t.copy.add(Vt(e))}))}function Yt(t,e,n,r){if(t.operated&&t.assignedMap&&t.assignedMap.size>0&&!t.finalized){if(n&&r){const s=Hn(t);s&&e(t,s,n,r)}t.finalized=!0}}function Ht(t,e,n,r){const i=k(n);i&&(i.callbacks||(i.callbacks=[]),i.callbacks.push((s,o)=>{var a;const u=t.type===3?t.setMap:t.copy;if(me(ge(u,e),n)){let c=i.original;i.copy&&(c=i.copy),Qt(t),Yt(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(c,i.original)),Ye(u,e,c)}}),t.options.enableAutoFreeze&&i.finalities!==t.finalities&&(t.options.enableAutoFreeze=!1)),de(n,t.options)&&t.finalities.draft.push(()=>{const s=t.type===3?t.setMap:t.copy;me(ge(s,e),n)&&Wi(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 c=0;c<s.length;c+=1)if(o.get(c.toString())&&u[c]!==s[c]){const d=e.concat([c]),f=ke(d,i);n.push({op:$.Replace,path:f,value:ht(u[c])}),r.push({op:$.Replace,path:f,value:ht(s[c])})}for(let c=s.length;c<u.length;c+=1){const d=e.concat([c]),f=ke(d,i);n.push({op:$.Add,path:f,value:ht(u[c])})}if(s.length<u.length){const{arrayLengthAssignment:c=!0}=a.enablePatches;if(c){const d=e.concat(["length"]),f=ke(d,i);r.push({op:$.Replace,path:f,value:s.length})}else for(let d=u.length;s.length<d;d-=1){const f=e.concat([d-1]),h=ke(f,i);r.push({op:$.Remove,path:h})}}}function Vi({original:t,copy:e,assignedMap:n},r,i,s,o){n.forEach((a,u)=>{const c=ge(t,u),d=ht(ge(e,u)),f=a?Qe(t,u)?$.Replace:$.Add:$.Remove;if(me(c,d)&&f===$.Replace)return;const h=r.concat(u),p=ke(h,o);i.push(f===$.Remove?{op:f,path:p}:{op:f,path:p,value:d}),s.push(f===$.Add?{op:$.Remove,path:p}:f===$.Remove?{op:$.Add,path:p,value:c}:{op:$.Replace,path:p,value:c})})}function qi({original:t,copy:e},n,r,i,s){let o=0;t.forEach(a=>{if(!e.has(a)){const u=n.concat([o]),c=ke(u,s);r.push({op:$.Remove,path:c,value:a}),i.unshift({op:$.Add,path:c,value:a})}o+=1}),o=0,e.forEach(a=>{if(!t.has(a)){const u=n.concat([o]),c=ke(u,s);r.push({op:$.Add,path:c,value:a}),i.unshift({op:$.Remove,path:c,value:a})}o+=1})}function Je(t,e,n,r){const{pathAsArray:i=!0}=t.options.enablePatches;switch(t.type){case 0:case 2:return Vi(t,e,n,r,i);case 1:return zi(t,e,n,r,i);case 3:return qi(t,e,n,r,i)}}const pt=(t,e,n=!1)=>{if(typeof t=="object"&&t!==null&&(!de(t,e)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},Jt={get size(){return ae(k(this)).size},has(t){return ae(k(this)).has(t)},set(t,e){const n=k(this),r=ae(n);return(!r.has(t)||!me(r.get(t),e))&&(H(n),ye(n),n.assignedMap.set(t,!0),n.copy.set(t,e),Ht(n,t,e,Je)),this},delete(t){if(!this.has(t))return!1;const e=k(this);return H(e),ye(e),e.original.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.copy.delete(t),!0},clear(){const t=k(this);if(this.size){H(t),ye(t),t.assignedMap=new Map;for(const[e]of t.original)t.assignedMap.set(e,!1);t.copy.clear()}},forEach(t,e){const n=k(this);ae(n).forEach((r,i)=>{t.call(e,this.get(i),i,this)})},get(t){var e,n;const r=k(this),i=ae(r).get(t),s=((n=(e=r.options).mark)===null||n===void 0?void 0:n.call(e,i,oe))===oe.mutable;if(r.options.strict&&pt(i,r.options,s),s||r.finalized||!de(i,r.options)||i!==r.original.get(t))return i;const o=Kt.createDraft({original:i,parentDraft:r,key:t,finalities:r.finalities,options:r.options});return H(r),r.copy.set(t,o),o},keys(){return ae(k(this)).keys()},values(){const t=this.keys();return{[lt]:()=>this.values(),next:()=>{const e=t.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const t=this.keys();return{[lt]:()=>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]}}}},[lt](){return this.entries()}},Gi=Reflect.ownKeys(Jt),er=(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=k(a),c=((i=(r=t.options).mark)===null||i===void 0?void 0:i.call(r,a,oe))===oe.mutable;if(t.options.strict&&pt(o,t.options,c),!c&&!u&&de(o,t.options)&&!t.finalized&&t.original.has(o)){const d=Kt.createDraft({original:o,parentDraft:t,key:o,finalities:t.finalities,options:t.options});t.setMap.set(o,d),a=d}else u&&(a=u.proxy);return{done:!1,value:n?a:[a,a]}},yt={get size(){return k(this).setMap.size},has(t){const e=k(this);if(e.setMap.has(t))return!0;H(e);const n=k(t);return!!(n&&e.setMap.has(n.original))},add(t){const e=k(this);return this.has(t)||(H(e),ye(e),e.assignedMap.set(t,!0),e.setMap.set(t,t),Ht(e,t,t,Je)),this},delete(t){if(!this.has(t))return!1;const e=k(this);H(e),ye(e);const n=k(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=k(this);H(t),ye(t);for(const e of t.original)t.assignedMap.set(e,!1);t.setMap.clear()},values(){const t=k(this);H(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:er(t,e,{isValuesIterator:!0})}},entries(){const t=k(this);H(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:er(t,e,{isValuesIterator:!1})}},keys(){return this.values()},[lt](){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(yt,{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 Bi=Reflect.ownKeys(yt),tr=new WeakSet,nr={get(t,e,n){var r,i;const s=(r=t.copy)===null||r===void 0?void 0:r[e];if(s&&tr.has(s))return s;if(e===Qn)return t;let o;if(t.options.mark){const c=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(c,oe),o===oe.mutable)return t.options.strict&&pt(c,t.options,!0),c}const a=ae(t);if(a instanceof Map&&Gi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Jt,"size").get.call(t.proxy);const c=Jt[e];if(c)return c.bind(t.proxy)}if(a instanceof Set&&Bi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(yt,"size").get.call(t.proxy);const c=yt[e];if(c)return c.bind(t.proxy)}if(!Qe(a,e)){const c=Yn(a,e);return c?"value"in c?c.value:(i=c.get)===null||i===void 0?void 0:i.call(t.proxy):void 0}const u=a[e];if(t.options.strict&&pt(u,t.options),t.finalized||!de(u,t.options))return u;if(u===qt(t.original,e)){if(H(t),t.copy[e]=Zt({original:t.original[e],parentDraft:t,key:t.type===1?Number(e):e,finalities:t.finalities,options:t.options}),typeof o=="function"){const c=k(t.copy[e]);return H(c),ye(c),c.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=Yn(ae(t),e);if(s!=null&&s.set)return s.set.call(t.proxy,n),!0;const o=qt(ae(t),e),a=k(o);return a&&me(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):(me(n,o)&&(n!==void 0||Qe(t.original,e))||(H(t),ye(t),Qe(t.original,e)&&me(n,t.original[e])?t.assignedMap.delete(e):t.assignedMap.set(e,!0),t.copy[e]=n,Ht(t,e,n,Je)),!0)},has(t,e){return e in ae(t)},ownKeys(t){return Reflect.ownKeys(ae(t))},getOwnPropertyDescriptor(t,e){const n=ae(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?nr.set.call(this,t,e,void 0,t.proxy):(qt(t.original,e)!==void 0||e in t.original?(H(t),ye(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 Zt(t){const{original:e,parentDraft:n,key:r,finalities:i,options:s}=t,o=Ae(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:c}=Proxy.revocable(o===1?Object.assign([],a):a,nr);if(i.revoke.push(c),tr.add(u),a.proxy=u,n){const d=n;d.finalities.draft.push((f,h)=>{var p,b;const y=k(u);let g=d.type===3?d.setMap:d.copy;const T=ge(g,r),w=k(T);if(w){let v=w.original;w.operated&&(v=Vt(T)),Qt(w),Yt(w,Je,f,h),d.options.enableAutoFreeze&&(d.options.updatedValues=(p=d.options.updatedValues)!==null&&p!==void 0?p:new WeakMap,d.options.updatedValues.set(v,w.original)),Ye(g,r,v)}(b=y.callbacks)===null||b===void 0||b.forEach(v=>{v(f,h)})})}else{const d=k(u);d.finalities.draft.push((f,h)=>{Qt(d),Yt(d,Je,f,h)})}return u}Kt.createDraft=Zt;function Qi(t,e,n,r,i){var s;const o=k(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 c=u?e[0]:o?o.operated?o.copy:o.original:t;return o&&Gt(o),i&&Re(c,c,o==null?void 0:o.options.updatedValues),[c,n&&u?[{op:$.Replace,path:[],value:e[0]}]:n,r&&u?[{op:$.Replace,path:[],value:a}]:r]}function Yi(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,oe))===oe.mutable||!de(t,e)?t:Zt({original:t,parentDraft:null,finalities:r,options:e});return[a,(u=[])=>{const[c,d,f]=Qi(a,u,i,s,e.enableAutoFreeze);return e.enablePatches?[c,d,f]:c}]}function Xt(t){const{rootDraft:e,value:n,useRawReturn:r=!1,isRoot:i=!0}=t;Bt(n,(s,o,a)=>{const u=k(o);if(u&&e&&u.finalities===e.finalities){t.isContainDraft=!0;const c=u.original;if(a instanceof Set){const d=Array.from(a);a.clear(),d.forEach(f=>a.add(s===f?c:f))}else Ye(a,s,c)}else typeof o=="object"&&o!==null&&(t.value=o,t.isRoot=!1,Xt(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 rr(t){var e;const n=k(t);if(!de(t,n==null?void 0:n.options))return t;const r=Ae(t);if(n&&!n.operated)return n.original;let i;function s(){i=r===2?zt(t)?new Map(t):new(Object.getPrototypeOf(t)).constructor(t):r===3?Array.from(n.setMap.values()):Jn(t,n==null?void 0:n.options)}if(n){n.finalized=!0;try{s()}finally{n.finalized=!1}}else i=t;if(Bt(i,(o,a)=>{if(n&&me(ge(n.original,o),a))return;const u=rr(a);u!==a&&(i===t&&s(),Ye(i,o,u))}),r===3){const o=(e=n==null?void 0:n.original)!==null&&e!==void 0?e:i;return Wt(o)?new Set(i):new(Object.getPrototypeOf(o)).constructor(i)}return i}function ir(t){if(!Ee(t))throw new Error(`current() is only used for Draft, parameter: ${t}`);return rr(t)}const _t=(t=>function e(n,r,i){var s,o,a;if(typeof n=="function"&&typeof r!="function")return function(E,...N){return e(E,W=>n.call(this,W,...N),r)};const u=n,c=r;let d=i;if(typeof r!="function"&&(d=r),d!==void 0&&Object.prototype.toString.call(d)!=="[object Object]")throw new Error(`Invalid options: ${d}, 'options' should be an object.`);d=Object.assign(Object.assign({},t),d);const f=Ee(u)?ir(u):u,h=Array.isArray(d.mark)?(E,N)=>{for(const W of d.mark){if(typeof W!="function")throw new Error(`Invalid mark: ${W}, 'mark' should be a function.`);const _e=W(E,N);if(_e)return _e}}:d.mark,p=(s=d.enablePatches)!==null&&s!==void 0?s:!1,b=(o=d.strict)!==null&&o!==void 0?o:!1,g={enableAutoFreeze:(a=d.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:h,strict:b,enablePatches:p};if(!de(f,g)&&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]=Yi(f,g);if(typeof r!="function"){if(!de(f,g))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 v;try{v=c(T)}catch(E){throw Gt(k(T)),E}const M=E=>{const N=k(T);if(!Ee(E)){if(E!==void 0&&!me(E,T)&&(N!=null&&N.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 _e=E==null?void 0:E[Li];if(_e){const O=_e[0];return g.strict&&typeof E=="object"&&E!==null&&Xt({rootDraft:N,value:E,useRawReturn:!0}),w([O])}if(E!==void 0)return typeof E=="object"&&E!==null&&Xt({rootDraft:N,value:E}),w([E])}if(E===T||E===void 0)return w([]);const W=k(E);if(g===W.options){if(W.operated)throw new Error("Cannot return a modified child draft.");return w([ir(E)])}return w([E])};return v instanceof Promise?v.then(M,E=>{throw Gt(k(T)),E}):M(v)})();Object.prototype.constructor.toString();function sr(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 or(t,e){return Object.keys(t).length===Object.keys(e).length&&Object.keys(t).every(n=>e.hasOwnProperty(n)&&t[n]===e[n])}function bt(t,e){return typeof t!="object"||typeof e!="object"||t===null||e===null?t===e:sr(t,e)?Object.keys(t).every(n=>bt(t[n],e[n])):!1}function en(t){if(!Ze(t))return t;const e={};for(const[n,r]of Object.entries(t))r!==void 0&&(e[n]=r);return e}function ar(t,e){if(!Ze(t)||!Ze(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=Ze(t[r])&&Ze(e[r]);n[r]=i?ar(t[r],e[r]):e[r]}return n}function Ze(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Hi(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 ur(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 cr(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}cr(t[n],r),Ji(t[n])&&delete t[n]}}function Ji(t){return t&&Object.keys(t).length===0}const dr=/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$/,Zi={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 Xi(t){return new Date(t)}function es(t){return new Date(t+"Z")}const ts=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function ns(t){const e=t.match(ts);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 rs(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function is(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ss(t){return new Date(t)}function os(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 as(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 us(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,c,d]=o;return a=Number(a),u=Number(u),c=Number(c),d==="PM"&&a!==12?a+=12:d==="AM"&&a===12&&(a=0),new Date(Date.UTC(s,r-1,i,a,u,c))}function cs(t){switch(t){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function ds(t){const e=t.match(dr);if(!e)return null;const[n]=e,r=Zi[n],i=new Date(t.replace(dr,"Z"));return new Date(i.getTime()-r*1e3)}const fs=[ns,is,os,us,ss,es,as,rs,Xi,cs,ds];function ls(t,e){try{const n=t(e);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function tn(t){for(const e of fs){const n=ls(e,t);if(n)return n}return null}function hs(t){try{const e=JSON.parse(t);return typeof e=="string"?tn(e):null}catch{return null}}function gt(t){if(t!==void 0){if(t===null)return null;if(t instanceof Date)return t;if(typeof t=="string"){const e=tn(t)||hs(t)||tn(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 ps(t){return t.cardinality==="one"}function nn(t){return t["value-type"]==="ref"}function rn(t){return t["value-type"]==="blob"}function xe(t,e){return t[e]}function mt(t,e){return e.reduce((n,r)=>n&&n.get(r),t)}function fe(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)&&fe(t.get(n),r)}function te(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)),te(s,i,n)}function fr(t,e,n){const r=new Map,i=new Map,s=new Map;for(const o of e){let[a,u,c,d]=o;const f=xe(t,u);if(!f){console.warn("no such attr",a,t);continue}f["checked-data-type"]==="date"&&n&&(c=gt(c),o[2]=c),nn(f)&&te(s,[c,u,a],o),te(r,[a,u,c],o),te(i,[u,a,c],o)}return{eav:r,aev:i,vae:s}}function lr(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,c]=o,d=s["reverse-identity"];if(te(r,[u,c],s),rn(s)&&te(e,[u,c],s),s["primary?"]&&te(n,[u],s),d){const[f,h,p]=d;te(i,[h,p],s)}}return{blobAttrs:e,primaryKeys:n,forwardIdents:r,revIdents:i}}function ys(t){return{__type:t.__type,attrs:t.attrs,triples:ne(t.eav,3),cardinalityInference:t.cardinalityInference,linkIndex:t.linkIndex,useDateObjects:t.useDateObjects}}function _s(t){return on(t.attrs,t.triples,t.cardinalityInference,t.linkIndex,t.useDateObjects)}function sn(t){t.attrIndexes=lr(t.attrs)}function on(t,e,n,r,i){const s=fr(t,e,i);return s.useDateObjects=i,s.attrs=t,s.attrIndexes=lr(t),s.cardinalityInference=n,s.linkIndex=r,s.__type="store",s}function Xe(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=ne(u,2).find(d=>d[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 d=(r=ne(u,2).find(y=>y[2]===a))===null||r===void 0?void 0:r[0];if(!d)return null;const[f,h,p,...b]=e;return[i,h,d,...b]}else{const[o,...a]=e;return[i,...a]}}function bs(t,e){const n=Xe(t,e);if(!n)return;const[r,i,s]=n,o=xe(t.attrs,i);o&&(fe(t.eav,[r,i,s]),fe(t.aev,[i,r,s]),nn(o)&&fe(t.vae,[s,i,r]))}let gs=0;function hr(t,e,n){const[r,i,s]=n;let o;const a=mt(t.ea,[r,i,s]);return a&&(o=a[3]),o||Date.now()*10+gs++}function ms(t,e){var n;const r=Xe(t,e);if(!r)return;let[i,s,o]=r;const a=xe(t.attrs,s);if(!a)return;a["checked-data-type"]==="date"&&t.useDateObjects&&(o=gt(o));const u=mt(t.eav,[i,s,o]),c=(n=u==null?void 0:u[3])!==null&&n!==void 0?n:hr(t,a,r),d=[i,s,o,c];ps(a)?(te(t.eav,[i,s],new Map([[o,d]])),te(t.aev,[s,i],new Map([[o,d]]))):(te(t.eav,[i,s,o],d),te(t.aev,[s,i,o],d)),nn(a)&&te(t.vae,[o,s,i],d)}function ws(t,e){var n;const r=Xe(t,e);if(!r)return;const[i,s,o]=r,a=xe(t.attrs,s);if(!a)return;if(!rn(a))throw new Error("merge operation is not supported for links");const u=mt(t.eav,[i,s]);if(!u)return;const c=(n=u.values().next())===null||n===void 0?void 0:n.value;if(!c)return;const d=c[2],f=ar(d,o),h=[i,s,f,hr(t,a,c)];te(t.eav,[i,s],new Map([[f,h]]))}function an(t,e){var n,r;const[i,s]=e,o=Xe(t,[i]);if(!o)return;const[a]=o,u=t.eav.get(a);if(u){for(const d of u.keys()){const f=t.attrs[d];f&&f["on-delete-reverse"]==="cascade"&&ne(u.get(d),1).forEach(([h,p,b])=>{var y;return an(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)&&(fe(t.aev,[d,a]),fe(t.eav,[a,d]))}u.size===0&&fe(t.eav,[a])}const c=t.vae.get(a)&&ne(t.vae.get(a),2);c&&c.forEach(d=>{var f,h,p;const[b,y,g]=d,T=t.attrs[y];(!s||!T||((f=T["reverse-identity"])===null||f===void 0?void 0:f[1])===s)&&(fe(t.eav,[b,y,g]),fe(t.aev,[y,b,g]),fe(t.vae,[g,y,b])),T&&T["on-delete"]==="cascade"&&((h=T["reverse-identity"])===null||h===void 0?void 0:h[1])===s&&an(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&&fe(t.vae,[a])}function pr(t,e){const n=fr(t.attrs,e,t.useDateObjects);Object.keys(n).forEach(r=>{t[r]=n[r]})}function Ts(t,[e]){t.attrs[e.id]=e,sn(t)}function yr(t){return ne(t.eav,3)}function vs(t,[e]){if(!t.attrs[e])return;const n=yr(t).filter(([r,i])=>i!==e);delete t.attrs[e],sn(t),pr(t,n)}function Ss(t,[e]){const n=t.attrs[e.id];n&&(t.attrs[e.id]=Object.assign(Object.assign({},n),e),sn(t),pr(t,yr(t)))}function Os(t,e){const[n,...r]=e;switch(n){case"add-triple":ms(t,r);break;case"deep-merge-triple":ws(t,r);break;case"retract-triple":bs(t,r);break;case"delete-entity":an(t,r);break;case"add-attr":Ts(t,r);break;case"delete-attr":vs(t,r);break;case"update-attr":Ss(t,r);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${n}`)}}function ne(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())ne(r,e-1,n);return n}function wt(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:c}=n.$isNull;if(c)for(const d of e.keys()){const f=t.vae.get(d),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(d))}else{const d=t.aev.get(a);for(const f of e.keys()){const h=!d||((i=d.get(f))===null||i===void 0?void 0:i.get(null))||!d.get(f);(u?h:!h)&&s.push(e.get(f))}}return s}if(n!=null&&n.$comparator)return ne(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 Es(t,e,n){let r="";return t!==void 0&&(r+="e"),e!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function As(t,[e,n,r]){var i,s;switch(Es(e,n,r)){case"e":{const a=t.eav.get(e);return ne(a,2)}case"ea":{const a=(i=t.eav.get(e))===null||i===void 0?void 0:i.get(n);return ne(a,1)}case"eav":{const a=(s=t.eav.get(e))===null||s===void 0?void 0:s.get(n);return a?wt(t,a,r):[]}case"ev":{const a=t.eav.get(e);if(!a)return[];const u=[];for(const c of a.values())u.push(...wt(t,c,r));return u}case"a":{const a=t.aev.get(n);return ne(a,2)}case"av":{const a=t.aev.get(n);if(!a)return[];const u=[];for(const c of a.values())u.push(...wt(t,c,r));return u}case"v":{const a=[];for(const u of t.eav.values())for(const c of u.values())a.push(...wt(t,c,r));return a}default:return ne(t.eav,3)}}function ks(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=ne(a,1);for(const c of u)i[s]=c[2]}return i}function De(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 Cs(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 js(t,e){const n=Xe(t,e);if(!n)return;const[r,i,s]=n;if(xe(t.attrs,i))return mt(t.eav,[r,i])}function Ps(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 c=!1;const d=xe(t.attrs,s);if(d){const f=br(t,d["forward-identity"][1]);c=!!js(t,[i,f.id,i])}return!(u==="create"&&c||u==="update"&&!c)});return _t(t,r=>{n.forEach(i=>{Os(r,i)})})}function Ms(t){return typeof t=="string"&&t.startsWith("?")}function Is(t,e,n){if(n.hasOwnProperty(t)){const r=n[t];return mr(r,e,n)}return Object.assign(Object.assign({},n),{[t]:e})}function gr(t,e,n){return t===e?n:null}function Rs(t){switch(typeof t){case"string":return t.startsWith("?")?Is:gr;default:return gr}}const xs=["in","$in","$not","$isNull","$comparator"];function Ds(t){for(const e of xs)if(t.hasOwnProperty(e))return!0;return!1}function mr(t,e,n){return n?typeof t=="object"?Ds(t)?n:null:Rs(t)(t,e,n):null}function $s(t,e,n){return t.reduce((r,i,s)=>{const o=e[s];return mr(i,o,r)},n)}function Us(t,e,n){return Fs(t,e,n).map(r=>$s(e,r,n)).filter(r=>r)}function Ls(t,e,n){return e.or?e.or.patterns.flatMap(r=>un(t,r,n)):e.and?e.and.patterns.reduce((r,i)=>un(t,i,r),n):n.flatMap(r=>Us(t,e,r))}function un(t,e,n=[{}]){return e.reduce((r,i)=>Ls(t,i,r),n)}function cn(t,e){return Array.isArray(e)?e.map(n=>cn(t,n)):Ms(e)?t[e]:e}function Ns(t,{find:e,where:n}){return un(t,n).map(i=>cn(i,e))}function Fs(t,e,n){return As(t,cn(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 $e(t){return typeof t=="string"&&Ks.test(t)}const V=[];for(let t=0;t<256;++t)V.push((t+256).toString(16).slice(1));function Ws(t,e=0){return(V[t[e+0]]+V[t[e+1]]+V[t[e+2]]+V[t[e+3]]+"-"+V[t[e+4]]+V[t[e+5]]+"-"+V[t[e+6]]+V[t[e+7]]+"-"+V[t[e+8]]+V[t[e+9]]+"-"+V[t[e+10]]+V[t[e+11]]+V[t[e+12]]+V[t[e+13]]+V[t[e+14]]+V[t[e+15]]).toLowerCase()}let dn;const zs=new Uint8Array(16);function Vs(){if(!dn){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");dn=crypto.getRandomValues.bind(crypto)}return dn(zs)}const wr={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function qs(t,e,n){var i;if(wr.randomUUID&&!t)return wr.randomUUID();t=t||{};const r=t.random??((i=t.rng)==null?void 0:i.call(t))??Vs();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,Ws(r)}function Tr(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 Gs(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 Bs(t,e){return Gs(Tr(t),Tr(e))}function q(){return qs()}function Qs(t,e){return t.localeCompare(e)}function Ys(){let t=Qs;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{t=Intl.Collator("en-US").compare}catch{}return t}const Hs=Ys();let Js=0;function et(t){return Tt(`_${t}`,Js++)}function Tt(t,e){return`?${t}-${e}`}class Ue extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function Zs(t,e){const n=br(t,e);if(!n)throw new Ue(`Could not find id attr for ${e}`);return n}function vr(t,e,n,r){return[Xs(t,e,n,r)]}function Xs(t,e,n,r){return[t(n,r),Zs(e,n).id,t(n,r),t("time",r)]}function eo(t,e,n){return t.map(r=>r===e?n:r)}function Sr(t,e,n,r,i){const s=De(e,n,i),o=_r(e,n,i),a=s||o;if(!a)throw new Ue(`Could not find attr for ${[n,i]}`);if(a["value-type"]!=="ref")throw new Error(`Attr ${a.id} is not a ref`);const[u,c]=a["forward-identity"],[d,f]=a["reverse-identity"],h=r+1,p=s?[t(c,r),a.id,t(f,h),et("time")]:[t(c,h),a.id,t(f,r),et("time")];return[s?f:c,h,p,a,!!s]}function Or(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 to(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=Or(!0,e.$like);return{$comparator:!0,$op:function(s){return r(s[2])}}}if(e.hasOwnProperty("$ilike")){const r=Or(!1,e.$ilike);return{$comparator:!0,$op:function(s){return r(s[2])}}}return e}function no(t,e,n,r,i,s){const o=De(e,n,i),a=_r(e,n,i),u=o||a;if(!u)throw new Ue(`No attr for etype = ${n} label = ${i}`);if(s!=null&&s.hasOwnProperty("$isNull")){const c=De(e,n,"id");if(!c)throw new Ue(`No attr for etype = ${n} label = id`);return[t(n,r),c.id,{$isNull:{attrId:u.id,isNull:s.$isNull,reverse:!o}},et("time")]}return o?[t(n,r),u.id,to(u,s),et("time")]:[s,u.id,t(n,r),et("time")]}function ro(t,e,n,r,i){const[s,o,a]=i.reduce((u,c)=>{const[d,f,h]=u,[p,b,y]=Sr(t,e,d,f,c);return[p,b,[...h,y]]},[n,r,[]]);return[s,o,a]}function fn(t,e,n,r,i,s){const o=i.slice(0,i.length-1),a=i[i.length-1],[u,c,d]=ro(t,e,n,r,o),f=no(t,e,u,c,a,s);return d.concat([f])}function io(t,e){return e?[e].concat(t):t}function so([t,e]){return t==="or"&&Array.isArray(e)}function oo([t,e]){return t==="and"&&Array.isArray(e)}function ao(t,e,n){return(r,i)=>{const s=t(r,i);return e==s?s:`${s}-${n}`}}function Er(t,e,n,r,i,s){const o=t(r,i),a=s.map((u,c)=>{const d=ao(t,o,c);return kr(d,n,r,i,u)});return{[e]:{patterns:a,joinSym:o}}}function uo(t){const e=[];for(let n=1;n<=t.length;n++)e.push(t.slice(0,n));return e}function Ar(t,e,n,r,i){return uo(i).map(s=>fn(t,e,n,r,s,{$isNull:!0}))}function kr(t,e,n,r,i){return Object.entries(i).flatMap(([s,o])=>{if(so([s,o]))return Er(t,"or",e,n,r,o);if(oo([s,o]))return Er(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=fn(t,e,n,r,a,o),c=Ar(t,e,n,r,a);return[{or:{patterns:[u,...c],joinSym:t(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Ar(t,e,n,r,a),joinSym:t(n,r)}}]:fn(t,e,n,r,a,o)})}function co(t,e,n,r){const i=Tt;return r?kr(i,t,e,n,r).concat(vr(i,t,e,n)):vr(i,t,e,n)}function fo(t,e,n){return[t(e,n),t("time",n)]}function lo(t,e,n,r,i,s){const[o,a,u,c,d]=Sr(t,e,n,r,i),f=eo(u,t(n,r),s);return[o,a,f,c,d]}function ho(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,c]){return o.map(function(h){var p,b,y;const g=!!(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,v]=lo(t,e,n,r,h,u),M=jr(e,{etype:T,level:w,form:i[h],join:v}),E=g?M[0]:M;return{[h]:E}}catch(T){if(T instanceof Ue)return{[h]:g?void 0:[]};throw T}}).reduce(function(h,p){return Object.assign(Object.assign({},h),p)},c)}):Object.values(s)}function po(t,e,n){return n==="string"?Hs(t,e):t>e?1:-1}function vt([t,e],[n,r],i){return e===r||e==null&&r==null?Bs(t,n):r==null?1:e==null?-1:po(e,r,i)}function ln(t){return t==null?t:new Date(t).getTime()}function yo(t,e,n,r){var i;const[s,o,a,u]=t,c=n==="desc"?1:-1;if(((i=e["forward-identity"])===null||i===void 0?void 0:i[2])==="id")return vt(r,[s,u],null)===c;const[d,f]=r,h=e["checked-data-type"],p=h==="date"?ln(f):f,b=h==="date"?ln(a):a;return vt([d,p],[s,b],h)===c}function _o(t,e){const n=e[1];return t.attrs[n]}function bo(t,e,n){const r=Object.keys(n)[0];return De(t,e,r)}function go(t,e,n,r){if(n)return _o(t,n);if(r)return bo(t,e,r)}function mo(t,e,n){var r,i;if(!Array.isArray(n.fields))return Cs(t,e);const s=new Map;for(const o of n.fields){const a=De(t,e,o),u=(r=a==null?void 0:a["forward-identity"])===null||r===void 0?void 0:r[2];u&&rn(a)&&s.set(u,a)}if(!s.has("id")){const o=De(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 wo(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),c=To(i);let d=Ns(t,r);const f=n==null?void 0:n["start-cursor"],h=go(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",g=h.id;d=d.map(([T])=>{var w,v,M,E,N;let W=(N=(E=(M=(v=(w=t.eav.get(T))===null||w===void 0?void 0:w.get(g))===null||v===void 0?void 0:v.values())===null||M===void 0?void 0:M.next())===null||E===void 0?void 0:E.value)===null||N===void 0?void 0:N[2];return y&&(W=ln(W)),[T,W]})}d.sort(c==="asc"?function(g,T){return vt(g,T,h==null?void 0:h["checked-data-type"])}:function(g,T){return vt(T,g,h==null?void 0:h["checked-data-type"])});let p={};const b=mo(t,e,r);for(const y of d){const[g]=y;if(p[g]||!u&&f&&h&&yo(f,h,c,y))continue;const T=ks(t,b,g);T&&(p[g]=T)}return p}function To(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 vo(t,{etype:e,level:n,form:r,join:i,pageInfo:s}){var o,a,u,c,d;if(!Cr(r)&&(!s||!s["start-cursor"]))return[];const f=io(co(t,e,n,(o=r.$)===null||o===void 0?void 0:o.where),i),h=fo(Tt,e,n),p=(a=r.$)===null||a===void 0?void 0:a.fields,b=wo(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)||((c=r.$)===null||c===void 0?void 0:c.first)||((d=r.$)===null||d===void 0?void 0:d.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 g=Object.entries(b);return g.length<=y?b:Object.fromEntries(g.slice(0,y))}return b}function So(t,e){try{return vo(t,e)}catch(n){if(n instanceof Ue)return{};throw n}}function jr(t,e){const n=So(t,e);return ho(Tt,t,e,n)}function Oo(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 Eo({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]=jr(t,{etype:u,form:r[u],level:0,pageInfo:e==null?void 0:e[u]})),a},{})};return e&&(s.pageInfo=Oo(e)),n&&(s.aggregate=n),s}function Ao(){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 ko=Ao();function hn(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(ko.has(s))return(o,a)=>hn(t,e,[...n,a?[s,t,e,o,a]:[s,t,e,o]])}})}function Co(t,e){return`lookup__${t}__${JSON.stringify(e)}`}function St(t){return t.startsWith("lookup__")}function Pr(t){const[e,n,...r]=t.split("__");return[n,JSON.parse(r.join("__"))]}function jo(t){return new Proxy({__etype:t},{get(e,n){if(n==="__etype")return t;const r=n;return St(r)?hn(t,Pr(r),[]):hn(t,r,[])}})}function pn(){return new Proxy({},{get(t,e){return jo(e)}})}const Po=pn();function Mo(t){return t.__ops}function Io(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,c]=o;i.push([n[u],c])}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 G(t,e,n){return Object.values(t).find(r=>{const[i,s,o]=r["forward-identity"];return s===e&&o===n})}function Ce(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 Ro(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 yn(t,e,n){return n.indexOf(".")!==-1&&!G(t,e,n)}function _n(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 xo(t,e,n){if(!yn(t,e,n))return G(t,e,n);const r=_n(n),i=G(t,e,r)||Ce(t,e,r);if(i&&i["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return i}function bn(t){return typeof t=="string"&&!St(t)?null:typeof t=="string"&&St(t)?Pr(t):Ro(t)}function re(t,e,n){const r=bn(n);if(r===null)return n;const[i,s]=r,o=xo(t,e,i);if(!o||!o["unique?"])throw new Error(`${i} is not a unique attribute.`);return[o.id,s]}function Mr(t,e,n,r){const i=re(t,e,n);return Array.isArray(i)?[["add-triple",i,G(t,e,"id").id,i]].concat(r):r}function Do({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=G(t,e,s),c=Ce(t,e,s);return a.map(d=>u?["add-triple",re(t,e,n),u.id,re(t,u["reverse-identity"][1],d)]:["add-triple",re(t,c["forward-identity"][1],d),c.id,re(t,e,n)])});return Mr(t,e,n,i)}function $o({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=G(t,e,s),c=Ce(t,e,s);return a.map(d=>u?["retract-triple",re(t,e,n),u.id,re(t,u["reverse-identity"][1],d)]:["retract-triple",re(t,c["forward-identity"][1],d),c.id,re(t,e,n)])});return Mr(t,e,n,i)}function Uo(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,c]of ne(o,2))if(c===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 Ir({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:Uo(t,n,r)?{mode:"update"}:null}function Lo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),c=re(r,i,s);return[["id",c]].concat(Object.entries(u)).map(([f,h])=>{const p=G(r,i,f);return p["checked-data-type"]==="date"&&t.useDateObjects&&(h=gt(h)),["add-triple",c,p.id,h,{mode:"create"}]})}function No(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),c=re(r,i,s),d=Ir(t,[i,c,o,a]);return[["id",c]].concat(Object.entries(u)).map(([h,p])=>{const b=G(r,i,h);return b["checked-data-type"]==="date"&&t.useDateObjects&&(p=gt(p)),["add-triple",c,b.id,p,...d?[d]:[]]})}function Fo({attrs:t},[e,n]){return[["delete-entity",re(t,e,n),e]]}function Ko(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),c=re(r,i,s),d=Ir(t,[i,c,o,a]),f=Object.entries(u).map(([p,b])=>{const y=G(r,i,p);return["deep-merge-triple",c,y.id,b,...d?[d]:[]]});return[["add-triple",c,G(r,i,"id").id,c,...d?[d]:[]]].concat(f)}function Wo({attrs:t},[e,n,r]){return[["rule-params",re(t,e,n),e,r]]}function zo(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 Vo(t,e){const[n,...r]=zo(e);switch(n){case"merge":return Ko(t,r);case"create":return Lo(t,r);case"update":return No(t,r);case"link":return Do(t,r);case"unlink":return $o(t,r);case"delete":return Fo(t,r);case"ruleParams":return Wo(t,r);default:throw new Error(`unsupported action ${n}`)}}function qo(t){switch(t){case"string":case"date":case"boolean":case"number":return t;default:return}}function Go(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=qo(s==null?void 0:s.valueType);return{"index?":a,"unique?":o,"checked-data-type":u}}function Ot(t,e,n,r){const i=t?Go(t,e,n):null,s=q(),a=[q(),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 Bo(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 Qo(t,e,n){const r=Bo(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":[q(),i.on,i.label],"reverse-identity":[q(),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?Qo(t,e,n):null,s=q(),o=[q(),e,n],a=[q(),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 Yo=new Set(["create","update","merge","link","unlink"]),Ho=new Set(["link","unlink"]),Jo=new Set(["create","update","merge"]),Zo=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),gn={"unique?":!0,"index?":!0},Xo=Object.assign(Object.assign({},gn),{cardinality:"one"});function ea(t){const e=[],[n,r,i,s]=t;if(!Zo.has(n))return e;const o=bn(i);if(o&&e.push({etype:r,lookupPair:o}),n==="link")for(const[a,u]of Object.entries(s)){const c=Array.isArray(u)?u:[u];for(const d of c){const f=bn(d);f&&e.push({etype:r,lookupPair:f,linkLabel:a})}}return e}function ta({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 c(f){f!=null&&f.isUnsynced&&!s.has(f.id)&&(a.push(["add-attr",f]),s.add(f.id))}function d(f,h){const p=G(o,f,h),b=Ce(o,f,h);c(p),c(b),!p&&!b&&u(Rr(e,f,h,Xo))}for(const f of n)for(const{etype:h,lookupPair:p,linkLabel:b}of ea(f)){const y=p[0];if(b){d(h,b);const g=G(o,h,b),T=Ce(o,h,b);c(g),c(T);const w=((r=g==null?void 0:g["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(yn(o,w,y))d(w,_n(y));else{const v=G(o,w,y);v||u(Ot(e,w,y,gn)),c(v)}}else if(yn(o,h,y))d(h,_n(y));else{const g=G(o,h,y);g||u(Ot(e,h,y,gn)),c(g)}}for(const f of n){const[h,p,b,y]=f;if(Yo.has(h)){const g=G(o,p,"id");c(g),g||u(Ot(e,p,"id",{"unique?":!0}));for(const T of Object.keys(y)){const w=G(o,p,T);if(c(w),Jo.has(h)&&(w||u(Ot(e,p,T,T==="id"?{"unique?":!0}:null))),Ho.has(h)){const v=Ce(o,p,T);!w&&!v&&u(Rr(e,p,T)),c(v)}}}}return[o,a]}function na(t,e){const r=(Array.isArray(e)?e:[e]).flatMap(u=>Mo(u)),[i,s]=ta(t,r),o=Object.assign(Object.assign({},t),{attrs:i}),a=r.flatMap(u=>Vo(o,u));return[...s,...a]}var tt=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};const ra=2,ia=["kv","querySubs"];function mn(t){return function(n){console.error("Error in IndexedDB event",{source:t,event:n})}}class xr{constructor(e,n){this.dbName=e,this._storeName=n,this._dbPromise=this._init()}_init(){return new Promise((e,n)=>{const r=indexedDB.open(this.dbName,ra);r.onerror=i=>{n(i)},r.onsuccess=i=>{const o=i.target.result;e(o)},r.onupgradeneeded=i=>this._upgradeStore(i)})}_moveQuerySubsToObjectStore(e){const n=e.objectStore("kv"),r=e.objectStore("querySubs"),i=n.get("querySubs");i.onerror=mn("get querySubs from kv store failed"),i.onsuccess=s=>{const o=typeof i.result=="string"?JSON.parse(i.result):i.result;if(!o)return;const a=new Set;for(const[u,c]of Object.entries(o)){const d=r.put(c,u);d.onerror=mn(`Move ${u} to querySubs store failed`),a.add(d)}for(const u of a)u.onsuccess=()=>{if(a.delete(u),a.size===0){const c=n.delete("querySubs");c.onerror=mn("Cleanup querySubs from kv store failed")}}}}_upgradeStore(e){const n=e.target,r=n.result,i=new Set;for(const s of ia)r.objectStoreNames.contains(s)||(i.add(s),r.createObjectStore(s));if(i.has("querySubs")&&!i.has("kv")){const s=n.transaction;this._moveQuerySubsToObjectStore(s)}}getItem(e){return tt(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 tt(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=c=>{s(c)},u.onsuccess=c=>{i()}})})}multiSet(e){return tt(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const s=n.transaction([this._storeName],"readwrite"),o=s.objectStore(this._storeName),a=new Set;for(const[u,c]of e){const d=o.put(c,u);a.add(d)}for(const u of a)u.onerror=c=>{s.abort(),i(c)},u.onsuccess=c=>{a.delete(u),a.size===0&&r()}})})}removeItem(e){return tt(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const a=n.transaction([this._storeName],"readwrite").objectStore(this._storeName).delete(e);a.onerror=u=>{i(u)},a.onsuccess=u=>{r()}})})}getAllKeys(){return tt(this,void 0,void 0,function*(){const e=yield this._dbPromise;return new Promise((n,r)=>{const o=e.transaction([this._storeName],"readwrite").objectStore(this._storeName).getAllKeys();o.onerror=a=>{r(a)},o.onsuccess=a=>{n(o.result.filter(u=>typeof u=="string"))}})})}}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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};class Dr{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 Le 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,Le),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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};class nt extends Le{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,nt),this.name="InstantAPIError",this.status=e.status,this.body=e.body}get[Symbol.toStringTag](){return"InstantAPIError"}}function le(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 nt({status:n.status,body:r}))})}var Ne=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};function aa({apiURI:t,appId:e,email:n}){return le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n,email:r,code:i,refreshToken:s}){return yield le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n}){return yield le(`${e}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n})})})}function $r(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,code:r,codeVerifier:i,refreshToken:s}){return yield le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n,nonce:r,idToken:i,clientName:s,refreshToken:o}){return yield le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield le(`${e}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,refresh_token:r})})})}var rt=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};function ha(t){return rt(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 le(`${e}/storage/upload`,{method:"PUT",headers:u,body:i})})}function pa(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${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 rt(this,arguments,void 0,function*({apiURI:e,appId:n,fileName:r,refreshToken:i,metadata:s={}}){const{data:o}=yield le(`${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 _a(t,e){return rt(this,void 0,void 0,function*(){return(yield fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok})}function ba(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${e}/storage/signed-download-url?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}let wn=!1,Ur=!1,Lr=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(wn=!!window.localStorage.getItem("devBackend"),Ur=!!window.localStorage.getItem("__instantLogging"),Lr=!!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,c=Array.isArray(e==null?void 0:e.peers)&&(e==null?void 0:e.peers.includes(a));if(u||c){const d=Nr(t.peers[a],e==null?void 0:e.keys);s.peers[a]=Object.assign(Object.assign({},d),{peerId:a})}}return s}function ma(t,e){if(t.isLoading!==e.isLoading||t.error!==e.error||(t.user||e.user)&&(!t.user||!e.user||!or(t.user,e.user))||!sr(t.peers,e.peers))return!0;for(const r of Object.keys(t.peers))if(!or(t.peers[r],e.peers[r]))return!0;return!1}class Fr{constructor(){this.promise=new Promise((e,n)=>{this._resolve=e,this._reject=n})}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}var ve=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};function Kr(t,e){typeof requestIdleCallback>"u"?t():requestIdleCallback(t,{timeout:e})}const Tn="__meta";class Wr{constructor(e,n,r,i,s,o,a){var u,c;this._subs=[],this._nextSave=null,this._nextGc=null,this._pendingSaveKeys=new Set,this._loadedKeys=new Set,this._version=0,this._meta={isLoading:!0,onLoadCbs:[],value:null,error:null,attempts:0},this._persister=e,this._onMerge=n,this.serialize=r,this.parse=i,this._objectSize=s,this._log=o,this._saveThrottleMs=(u=a.saveThrottleMs)!==null&&u!==void 0?u:100,this._idleCallbackMaxWaitMs=(c=a.idleCallbackMaxWaitMs)!==null&&c!==void 0?c:1e3,this._gcOpts=a.gc,this.currentValue={},this._loadedKeys=new Set,this._loadingKeys={},this._initMeta()}_initMeta(){return ve(this,void 0,void 0,function*(){this._meta.loadingPromise&&(yield this._meta.loadingPromise);try{const e=this._persister.getItem(Tn);this._meta.loadingPromise=e;const n=yield e;this._meta.isLoading=!1,this._meta.error=null,this._meta.value=n||{}}catch(e){this._meta.error=e,this._meta.attempts++,this._meta.loadingPromise=null}})}_getMeta(){return ve(this,void 0,void 0,function*(){return this._meta.value?this._meta.value:this._meta.loadingPromise?(yield this._meta.loadingPromise,this._meta.value):(this._initMeta(),yield this._meta.loadingPromise,this._meta.value)})}_getFromStorage(e){return ve(this,void 0,void 0,function*(){try{const n=yield this._persister.getItem(e);return this.parse(e,n)}catch(n){return console.error(`Unable to read from storage for key=${e}`,n),null}})}waitForKeyToLoad(e){return ve(this,void 0,void 0,function*(){return this._loadedKeys.has(e)?this.currentValue[e]:(yield this._loadingKeys[e]||this._loadKey(e),this.currentValue[e])})}waitForMetaToLoad(){return ve(this,void 0,void 0,function*(){return this._getMeta()})}unloadKey(e){this._loadedKeys.delete(e),delete this._loadingKeys[e],delete this.currentValue[e]}_loadKey(e){return ve(this,void 0,void 0,function*(){if(this._loadedKeys.has(e)||e in this._loadingKeys)return;const n=this._getFromStorage(e);this._loadingKeys[e]=n;const r=yield n;delete this._loadingKeys[e],this._loadedKeys.add(e);const i=this._onMerge(e,r,this.currentValue[e]);i&&(this.currentValue[e]=i),this.onKeyLoaded&&this.onKeyLoaded(e)})}_writeToStorage(e){var n,r;const i=[],s=e==null?void 0:e.skipGc;if(this._meta.isLoading){const p=new Promise((b,y)=>{var g;setTimeout(()=>this._enqueuePersist(e?Object.assign(Object.assign({},e),{attempts:(e.attempts||0)+1}):{attempts:1}).then(b).catch(y),10+((g=e==null?void 0:e.attempts)!==null&&g!==void 0?g:0)*1e3)});return i.push(p),Promise.all(i).then(b=>b.reduce((y,g)=>y+g,0))}const o=this._meta.value;if(!o)return Promise.resolve(0);const a=[],u=[];for(const p of this._pendingSaveKeys)p in this.currentValue?u.push(p):(a.push(p),delete o.objects[p]);for(const p of a){const b=this._persister.removeItem(p);i.push(b.then(()=>1)),this._loadedKeys.delete(p),this._pendingSaveKeys.delete(p)}const c=[],d=[[Tn,o]],f=(n=o.objects)!==null&&n!==void 0?n:{};o.objects=f;for(const p of u)if(this._loadedKeys.has(p)){const b=this.serialize(p,this.currentValue[p]);d.push([p,b]);const y=this._objectSize(b),g=(r=f[p])!==null&&r!==void 0?r:{createdAt:Date.now(),updatedAt:Date.now(),size:y};g.updatedAt=Date.now(),g.size=y,f[p]=g,this._pendingSaveKeys.delete(p)}else c.push(p);const h=this._persister.multiSet(d);i.push(h.then(()=>1));for(const p of c){const b=this._loadKey(p).then(()=>this._enqueuePersist(e));i.push(b)}return s||this.gc(),Promise.all(i).then(p=>p.reduce((b,y)=>b+y,0))}flush(){return ve(this,void 0,void 0,function*(){return this._nextSave?(clearTimeout(this._nextSave),this._nextSave=null,this._writeToStorage()):void 0})}_gc(){return ve(this,void 0,void 0,function*(){const e=new Set(yield this._persister.getAllKeys());e.delete(Tn);const n=new Set(Object.keys(this.currentValue));for(const u of Object.keys(this._loadingKeys))n.add(u);for(const u of this._loadedKeys)n.add(u);const r=yield this._getMeta();if(!r){this._log.info("Could not gc because we were not able to load meta");return}const i={gcOpts:this._gcOpts,keys:e,sacredKeys:n,removed:[],metaRemoved:[],removedMetaCount:0,removedMissingCount:0,removedOldCount:0,removedThresholdCount:0,removedSizeCount:0};for(const u of e)n.has(u)||u in r.objects||(this._log.info("Lost track of key in meta",u),this._persister.removeItem(u),i.removed.push(u),i.removedMissingCount++);const s=Date.now();for(const[u,c]of Object.entries(r.objects))!n.has(u)&&c.updatedAt<s-this._gcOpts.maxAgeMs&&(this._persister.removeItem(u),delete r.objects[u],i.removed.push(u),i.removedOldCount++);const o=Object.entries(r.objects);if(o.sort(([u,c],[d,f])=>c.updatedAt-f.updatedAt),o.length>this._gcOpts.maxEntries)for(const[u]of o.slice(0,o.length-this._gcOpts.maxEntries))this._persister.removeItem(u),delete r.objects[u],i.removed.push(u),i.removedThresholdCount++,o.splice(0,1);let a=o.reduce((u,[c,d])=>u+d.size,0);for(;a>0&&a>this._gcOpts.maxSize&&o.length;){const[[u,c]]=o.splice(0,1);a-=c.size,this._persister.removeItem(u),delete r.objects[u],i.removed.push(u),i.removedSizeCount++}for(const u of Object.keys(r.objects))!e.has(u)&&!n.has(u)&&delete r.objects[u];(i.removed.length||i.metaRemoved.length)&&this._enqueuePersist({skipGc:!0}),this._log.info("Completed GC",i)})}gc(){this._nextGc||(this._nextGc=setTimeout(()=>{Kr(()=>{this._nextGc=null,this._gc()},30*1e3)},1e3))}_enqueuePersist(e){return new Promise((n,r)=>{if(this._nextSave){n(0);return}this._nextSave=setTimeout(()=>{Kr(()=>{this._nextSave=null,this._writeToStorage(e).then(n).catch(r)},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)})}version(){return this._version}updateInPlace(e){this._version++;const[n,r]=_t(this.currentValue,e,{enablePatches:!0});for(const i of r){const s=i.path[0];s&&typeof s=="string"&&(this._pendingSaveKeys.add(s),this._loadedKeys.has(s)||this._loadKey(s))}for(const i of Object.keys(n))if(!n[i])debugger;this.currentValue=n,this._enqueuePersist();for(const i of this._subs)i(this.currentValue);return n}subscribe(e){return this._subs.push(e),e(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==e)}}}function zr(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);zr(n["child-nodes"],e)})}function Vr(t){const e=[];return zr(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 vn="v0.22.49-experimental.persisted-object-2.19448682144.1";function wa(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 J{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 J(this.valueType,!1,this.isIndexed,this.config)}optional(){return new J(this.valueType,!1,this.isIndexed,this.config)}unique(){return new J(this.valueType,this.required,this.isIndexed,Object.assign(Object.assign({},this.config),{unique:!0}))}indexed(){return new J(this.valueType,this.required,!0,Object.assign(Object.assign({},this.config),{indexed:!0}))}}class Et{constructor(e,n){this.attrs=e,this.links=n}asType(){return new Et(this.attrs,this.links)}}class At{constructor(e,n,r){this.entities=e,this.links=n,this.rooms=r}withRoomSchema(){return new At(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"],Ta=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=(c,d,f)=>{if(!Br(f,d,a))throw new x(`Invalid value for operator '${c}' on attribute '${r}' in entity '${i}'. Expected ${d}, 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 c of e)u(t,n,c);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)}},Fe=(t,e,n,r,i)=>{const s=Ta(n),o=n.valueType==="json";if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(o)return;const u=t;for(const[c,d]of Object.entries(u))va(c,d,s,e,r,n,`${i}.${c}`)}else if(!Br(t,s,o))throw new x(`Invalid value for attribute '${e}' in entity '${r}'. Expected ${s}, but received: ${typeof t}`,i)},Sa=(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 d=0;d<s.length-1;d++){const f=s[d],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"&&!$e(e))throw new x(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${e}`,i);Fe(e,t,new J("string",!1,!0),n,i);return}const c=u.attrs[a];if(Object.keys(u.links).includes(a)){if(typeof e=="string"&&!$e(e))throw new x(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${e}`,i);Fe(e,t,new J("string",!1,!0),n,i);return}if(!c){const d=Object.keys(u.attrs);throw new x(`Attribute '${a}' does not exist on entity '${o}' in dot notation path '${t}'. Available attributes: ${d.length>0?d.join(", ")+", id":"id"}`,i)}Fe(e,t,c,n,i)},Qr=(t,e,n,r)=>{for(const[i,s]of Object.entries(t)){if(i==="or"||i==="and"){if(Array.isArray(s))for(const c of s)typeof c=="object"&&c!==null&&Qr(c,e,n,`${r}.${i}[${c}]`);continue}if(i==="id"){Fe(s,"id",new J("string",!1,!0),e,`${r}.id`);continue}if(i.includes(".")){Sa(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 c=Object.keys(o.attrs),d=Object.keys(o.links);throw new x(`Attribute or link '${i}' does not exist on entity '${e}'. Available attributes: ${c.length>0?c.join(", "):"none"}. Available links: ${d.length>0?d.join(", "):"none"}`,`${r}.${i}`)}if(a)Fe(s,i,a,e,`${r}.${i}`);else if(u){if(typeof s=="string"&&!$e(s))throw new x(`Invalid value for link '${i}' in entity '${e}'. Expected a UUID, but received: ${s}`,`${r}.${i}`);const c=new J("string",!1,!0);Fe(s,i,c,e,`${r}.${i}`)}}},Oa=(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);Qr(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}.$`);Oa(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)}Yr(n[r],r,e,r,0)}}},Jr=t=>typeof t!="string"?!1:St(t)?!0:$e(t);class ue extends Error{constructor(e){super(e),this.name="TransactionValidationError"}}const Zr=t=>t.length>0?t.join(", "):"none",Ea=(t,e)=>new ue(`Entity '${t}' does not exist in schema. Available entities: ${Zr(e)}`),Xr={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},Aa=(t,e)=>{var n,r;return t==null?!0:(r=(n=Xr[e.valueType])===null||n===void 0?void 0:n.call(Xr,t))!==null&&r!==void 0?r:!1},ei=(t,e)=>{const n=e.entities[t];if(!n)throw Ea(t,Object.keys(e.entities));return n},Sn=(t,e,n)=>{const r=ei(t,n);if(typeof e!="object"||e===null)throw new ue(`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&&!Aa(s,o))throw new ue(`Invalid value for attribute '${i}' in entity '${t}'. Expected ${o.valueType}, but received: ${typeof s}`)}},ti=(t,e,n)=>{const r=ei(t,n);if(typeof e!="object"||e===null)throw new ue(`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 ue(`Link '${i}' does not exist on entity '${t}'. Available links: ${Zr(a)}`)}if(s!=null){if(Array.isArray(s)){for(const a of s)if(!Jr(a))throw new ue(`Invalid entity ID in link '${i}' for entity '${t}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!Jr(s))throw new ue(`Invalid UUID in link '${i}' for entity '${t}'. Expected a UUID, but received: ${s}`)}}},ka={create:Sn,update:Sn,merge:Sn,link:ti,unlink:ti,delete:()=>{}},Ca=(t,e)=>{if(!e)return;const[n,r,i,s]=t;if(!Array.isArray(i)&&!$e(i))throw new ue(`Invalid id for entity '${r}'. Expected a UUID, but received: ${i}`);if(typeof r!="string")throw new ue(`Entity name must be a string, but received: ${typeof r}`);const o=ka[n];o&&s!==void 0&&o(r,s,e)},ja=(t,e)=>{const n=Array.isArray(t)?t:[t];for(const r of n){if(!r||typeof r!="object")throw new ue(`Transaction chunk must be an object, but received: ${typeof r}`);if(!Array.isArray(r.__ops))throw new ue(`Transaction chunk must have __ops array, but received: ${typeof r.__ops}`);for(const i of r.__ops){if(!Array.isArray(i))throw new ue(`Transaction operation must be an array, but received: ${typeof i}`);Ca(i,e)}}};var ni=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};let ri=0;class ii{constructor(e){this.type="ws",this.id=`${this.type}_${ri++}`,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}_${ri++}`,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 ni(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 ni(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 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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})},Ma=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 we={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},Ia=3e4,Ra=3e4,xa=200,Da={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},On="_instant_oauth_redirect",it="currentUser";function $a({transportType:t,appId:e,apiURI:n,wsURI:r,EventSourceImpl:i}){if(!i)return new ii(`${r}?app_id=${e}`);switch(t){case"ws":return new ii(`${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 Ua(){return typeof window<"u"||typeof chrome<"u"}const si={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function La(t,e){var n;const r=typeof t=="string"?JSON.parse(t):t;if(!((n=r==null?void 0:r.result)===null||n===void 0)&&n.store){const i=r.result.store;r.result.store=_s(Object.assign(Object.assign({},i),{useDateObjects:e}))}return r}function Na(t,e){var n;const r=Object.assign({},e);return!((n=e.result)===null||n===void 0)&&n.store&&(r.result=Object.assign(Object.assign({},e.result),{store:ys(e.result.store)})),r}function Fa(t,e){switch(t){case"pendingMutations":return new Map(typeof e=="string"?JSON.parse(e):e);default:return e}}function Ka(t,e){switch(t){case"pendingMutations":return[...e.entries()];default:return e}}function oi(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 Wa{constructor(e,n=xr,r=Dr,i,s){var o,a,u;if(this._isOnline=!0,this._isShutdown=!1,this.status=we.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._onMergeQuerySub=(c,d,f)=>{const h=d==null?void 0:d.result,p=f==null?void 0:f.result;return h&&!p&&f&&(f.result=h),f||d},this._onMergeKv=(c,d,f)=>{var h,p;switch(c){case"pendingMutations":{const b=(h=d==null?void 0:d.entries())!==null&&h!==void 0?h:[],y=(p=f==null?void 0:f.entries())!==null&&p!==void 0?p:[],g=new Map([...b,...y]);return(d?this._rewriteMutationsSorted(this.attrs,d):[]).forEach(([w,v])=>{var M;!(!((M=f==null?void 0:f.pendingMutations)===null||M===void 0)&&M.has(w))&&!v["tx-id"]&&this._sendMutation(w,v)}),g}default:return d||f}},this.getPreviousResult=c=>{const d=ee(c);return this.dataForQuery(d)},this.notifyOne=c=>{var d,f;const h=(d=this.queryCbs[c])!==null&&d!==void 0?d:[],p=(f=this._dataForQueryCache[c])===null||f===void 0?void 0:f.data,b=this.dataForQuery(c);b&&(bt(b,p)||h.forEach(y=>y.cb(b)))},this.notifyOneQueryOnce=c=>{var d;const f=(d=this.queryOnceDfds[c])!==null&&d!==void 0?d:[],h=this.dataForQuery(c);f.forEach(p=>{this._completeQueryOnce(p.q,c,p.dfd),p.dfd.resolve(h)})},this.notifyQueryError=(c,d)=>{(this.queryCbs[c]||[]).forEach(h=>h.cb({error:d}))},this.pushTx=c=>{this.config.disableValidation||ja(c,this.config.schema);try{const d=na({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},c);return this.pushOps(d)}catch(d){return this.pushOps([],d)}},this.pushOps=(c,d)=>{const f=q(),h=[...this._pendingMutations().values()],p=Math.max(0,...h.map(g=>g.order||0))+1,b={op:"transact","tx-steps":c,created:Date.now(),error:d,order:p};this._updatePendingMutations(g=>{g.set(f,b)});const y=new Fr;return this.mutationDeferredStore.set(f,y),this._sendMutation(f,b),this.notifyAll(),y.promise},this._transportOnOpen=c=>{const d=c.target;if(this._transport!==d){this._log.info("[socket][open]",d.id,"skip; this is no longer the current transport");return}this._log.info("[socket][open]",this._transport.id),this._setStatus(we.OPENED),this.getCurrentUser().then(f=>{var h;this._trySend(q(),{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]",d.id,f)})},this._transportOnMessage=c=>{const d=c.target,f=c.message;if(this._transport!==d){this._log.info("[socket][message]",d.id,f,"skip; this is no longer the current transport");return}!this._wsOk&&d.type==="ws"&&(this._wsOk=!0),this._transportType="ws",this._handleReceive(d.id,c.message)},this._transportOnError=c=>{const d=c.target;if(this._transport!==d){this._log.info("[socket][error]",d.id,"skip; this is no longer the current transport");return}this._log.error("[socket][error]",d.id,c)},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=c=>{const d=c.target;if(this._transport!==d){this._log.info("[socket][close]",d.id,"skip; this is no longer the current transport");return}this._setStatus(we.CLOSED);for(const f of Object.values(this._rooms))f.isConnected=!1;if(this._isShutdown){this._log.info("[socket][close]",d.id,"Reactor has been shut down and will not reconnect");return}this._log.info("[socket][close]",d.id,"schedule reconnect, ms =",this._reconnectTimeoutMs),this._scheduleReconnect()},this._EventSource=s,this.config=Object.assign(Object.assign({},Da),e),this.queryCacheLimit=(o=this.config.queryCacheLimit)!==null&&o!==void 0?o:10,this._pendingTxCleanupTimeout=(a=this.config.pendingTxCleanupTimeout)!==null&&a!==void 0?a:Ra,this._pendingMutationCleanupThreshold=(u=this.config.pendingMutationCleanupThreshold)!==null&&u!==void 0?u:xa,this._log=wa(e.verbose||wn||Ur,()=>this._reactorStats()),this.versions=Object.assign(Object.assign({},i||{}),{"@instantdb/core":vn}),this.config.schema&&(this._linkIndex=qr(this.config.schema)),!!Ua()){if(!e.appId)throw new Error("Instant must be initialized with an appId.");if(!$e(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",c=>L(this,void 0,void 0,function*(){var d;try{if(((d=c.data)===null||d===void 0?void 0:d.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._oauthCallbackResponse=this._oauthLoginInit(),this.getCurrentUser(),r.getIsOnline().then(c=>{this._isOnline=c,this._startSocket(),r.listen(d=>{d!==this._isOnline&&(this._log.info("[network] online =",d),this._isOnline=d,this._isOnline?this._startSocket():(this._log.info("Changing status from",this.status,"to",we.CLOSED),this._setStatus(we.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().size,transportType:this._transportType}}_onQuerySubLoaded(e){this.kv.waitForKeyToLoad("pendingMutations").then(()=>this.notifyOne(e))}_initStorage(e){this.querySubs=new Wr(new e(`instant_${this.config.appId}_5`,"querySubs"),this._onMergeQuerySub,Na,(n,r)=>La(r,this.config.useDateObjects),n=>{var r,i,s,o;return(o=(s=(i=(r=n.result)===null||r===void 0?void 0:r.store)===null||i===void 0?void 0:i.triples)===null||s===void 0?void 0:s.length)!==null&&o!==void 0?o:0},this._log,{gc:{maxAgeMs:1e3*60*60*24*7*52,maxEntries:1e3,maxSize:1e6}}),this.querySubs.onKeyLoaded=n=>this._onQuerySubLoaded(n),this.kv=new Wr(new e(`instant_${this.config.appId}_5`,"kv"),this._onMergeKv,Ka,Fa,()=>0,this._log,{saveThrottleMs:100,idleCallbackMaxWaitMs:100,gc:{maxAgeMs:Number.MAX_SAFE_INTEGER,maxEntries:Number.MAX_SAFE_INTEGER,maxSize:Number.MAX_SAFE_INTEGER}}),this.kv.onKeyLoaded=n=>{n==="pendingMutations"&&this.notifyAll()},this.kv.waitForKeyToLoad("pendingMutations"),this.kv.waitForKeyToLoad(it),this._beforeUnloadCbs.push(()=>{this.kv.flush(),this.querySubs.flush()})}_beforeUnload(){for(const e of this._beforeUnloadCbs)e()}_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=Ma(r,["status"]);i.reject(new nt({body:a,status:o}))}else i.reject(new Le(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:c}=o;this._tryBroadcast(e,u,a,c)}}_handleReceive(e,n){var r,i,s,o,a,u;const c=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(si[n.op]||this._log.info("[receive]",e,n.op,n),n.op){case"init-ok":this._setStatus(we.AUTHENTICATED),this._reconnectTimeoutMs=0,this._setAttrs(n.attrs),this._flushPendingMessages(),this._sessionId=n["session-id"];for(const O of Object.keys(this._rooms)){const Z=(i=(r=this._presence[O])===null||r===void 0?void 0:r.result)===null||i===void 0?void 0:i.user;this._tryJoinRoom(O,Z)}break;case"add-query-exists":this.notifyOneQueryOnce(ee(n.q));break;case"add-query-ok":const{q:d,result:f}=n,h=ee(d);if(!this._hasQueryListeners()&&!this.querySubs.currentValue[h])break;const p=(o=(s=f==null?void 0:f[0])===null||s===void 0?void 0:s.data)===null||o===void 0?void 0:o["page-info"],b=(u=(a=f==null?void 0:f[0])===null||a===void 0?void 0:a.data)===null||u===void 0?void 0:u.aggregate,y=Vr(f),g=on(this.attrs,y,c,this._linkIndex,this.config.useDateObjects);this.querySubs.updateInPlace(O=>(O[h].result={store:g,pageInfo:p,aggregate:b,processedTxId:n["processed-tx-id"]},O)),this._cleanupPendingMutationsQueries(),this.notifyOne(h),this.notifyOneQueryOnce(h),this._cleanupPendingMutationsTimeout();break;case"refresh-ok":const{computations:T,attrs:w}=n,v=n["processed-tx-id"];w&&this._setAttrs(w),this._cleanupPendingMutationsTimeout();const M=this._rewriteMutations(this.attrs,this._pendingMutations(),v);M!==this._pendingMutations()&&this.kv.updateInPlace(O=>{O.pendingMutations=M});const E=oi(M.entries()),N=T.map(O=>{var Z,Oe,be,pe;const Y=O["instaql-query"],z=O["instaql-result"],Me=ee(Y),It=Vr(z),Rt=on(this.attrs,It,c,this._linkIndex,this.config.useDateObjects),xt=this._applyOptimisticUpdates(Rt,E,v),Dt=(Oe=(Z=z==null?void 0:z[0])===null||Z===void 0?void 0:Z.data)===null||Oe===void 0?void 0:Oe["page-info"],$t=(pe=(be=z==null?void 0:z[0])===null||be===void 0?void 0:be.data)===null||pe===void 0?void 0:pe.aggregate;return{hash:Me,store:xt,pageInfo:Dt,aggregate:$t}});N.forEach(({hash:O,store:Z,pageInfo:Oe,aggregate:be})=>{this.querySubs.updateInPlace(pe=>(pe[O].result={store:Z,pageInfo:Oe,aggregate:be,processedTxId:v},pe))}),this._cleanupPendingMutationsQueries(),N.forEach(({hash:O})=>{this.notifyOne(O)});break;case"transact-ok":{const{"client-event-id":O,"tx-id":Z}=n;this._inFlightMutationEventIds.delete(O);const be=this._rewriteMutations(this.attrs,this._pendingMutations()).get(O);if(!be)break;this._updatePendingMutations(Y=>{Y.set(O,Object.assign(Object.assign({},Y.get(O)),{"tx-id":Z,confirmed:Date.now()}))});const pe=be["tx-steps"].filter(([Y,...z])=>Y==="add-attr").map(([Y,z])=>z).concat(Object.values(this.attrs));this._setAttrs(pe),this._finishTransaction("synced",O),this._cleanupPendingMutationsTimeout();break}case"patch-presence":{const O=n["room-id"];this._trySetRoomConnected(O,!0),this._patchPresencePeers(O,n.edits),this._notifyPresenceSubs(O);break}case"refresh-presence":{const O=n["room-id"];this._trySetRoomConnected(O,!0),this._setPresencePeers(O,n.data),this._notifyPresenceSubs(O);break}case"server-broadcast":{const O=n["room-id"],Z=n.topic;this._trySetRoomConnected(O,!0),this._notifyBroadcastSubs(O,Z,n);break}case"join-room-ok":{const O=n["room-id"];if(!this._rooms[O]){this._roomsPendingLeave[O]&&(this._tryLeaveRoom(O),delete this._roomsPendingLeave[O]);break}this._trySetRoomConnected(O,!0),this._flushEnqueuedRoomData(O);break}case"leave-room-ok":{const O=n["room-id"];this._trySetRoomConnected(O,!1);break}case"join-room-error":const W=n["room-id"],_e=this._rooms[W];_e&&(_e.error=n.error),this._notifyPresenceSubs(W);break;case"error":this._handleReceiveError(n);break}}_pendingMutations(){var e;return(e=this.kv.currentValue.pendingMutations)!==null&&e!==void 0?e:new Map}_updatePendingMutations(e){this.kv.updateInPlace(n=>{var r;const i=(r=n.pendingMutations)!==null&&r!==void 0?r:new Map;n.pendingMutations=i,e(i)})}_handleMutationError(e,n,r){var i;const s=(i=this.kv.currentValue.pendingMutations)===null||i===void 0?void 0:i.get(n);if(s&&(e!=="timeout"||!s["tx-id"])){this._updatePendingMutations(a=>(a.delete(n),a)),this._inFlightMutationEventIds.delete(n);const o={message:r.message,hint:r.hint};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(o),this._finishTransaction(e,n,r)}}_handleReceiveError(e){var n,r,i,s,o;console.log("error",e);const a=e["client-event-id"];this._inFlightMutationEventIds.delete(a);const u=this._pendingMutations().get(a),c={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(e.hint&&(c.hint=e.hint),u){this._handleMutationError("error",a,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 h=(i=e["original-event"])===null||i===void 0?void 0:i.q,p=ee(h);this.notifyQueryError(ee(h),c),this.notifyQueryOnceError(h,p,a,c);return}if(((s=e["original-event"])===null||s===void 0?void 0:s.op)==="init"){if(e.type==="record-not-found"&&((o=e.hint)===null||o===void 0?void 0:o["record-type"])==="app-user"){this.changeCurrentUser(null);return}this._setStatus(we.ERRORED,c),this.notifyAll();return}const f=Object.assign({},e);delete f.message,delete f.hint,console.error(e.message,f),e.hint&&console.error(`This error comes with some debugging information. Here it is:
1
+ (function(Q,j){typeof exports=="object"&&typeof module<"u"?j(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],j):(Q=typeof globalThis<"u"?globalThis:Q||self,j(Q.instantReact={},Q.React))})(this,function(Q,j){"use strict";function ee(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=ee(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=ee(i);e^=parseInt(s,16),e*=16777619,e=e>>>0;const o=ee(t[i]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return ee(String(t))}const $={Remove:"remove",Replace:"replace",Add:"add"},Qn=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Li=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),lt=Symbol.iterator,oe={mutable:"mutable",immutable:"immutable"},Kt={};function Qe(t,e){return t instanceof Map?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Yn(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 Wt(t){return Object.getPrototypeOf(t)===Set.prototype}function zt(t){return Object.getPrototypeOf(t)===Map.prototype}function ae(t){var e;return(e=t.copy)!==null&&e!==void 0?e:t.original}function Ee(t){return!!k(t)}function k(t){return typeof t!="object"?null:t==null?void 0:t[Qn]}function Vt(t){var e;const n=k(t);return n?(e=n.copy)!==null&&e!==void 0?e:n.original:t}function de(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,oe))===oe.immutable||typeof n=="function")}function Hn(t,e=[]){if(Object.hasOwnProperty.call(t,"key")){const n=t.parent.copy,r=k(ge(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||Qe(n,s)))return null;e.push(s)}if(t.parent)return Hn(t.parent,e);e.reverse();try{Ni(t.copy,e)}catch{return null}return e}function Ae(t){return Array.isArray(t)?1:t instanceof Map?2:t instanceof Set?3:0}function ge(t,e){return Ae(t)===2?t.get(e):t[e]}function Ye(t,e,n){Ae(t)===2?t.set(e,n):t[e]=n}function qt(t,e){const n=k(t);return(n?ae(n):t)[e]}function me(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function Gt(t){if(t)for(;t.finalities.revoke.length>0;)t.finalities.revoke.pop()()}function ke(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 Ni(t,e){for(let n=0;n<e.length-1;n+=1){const r=e[n];if(t=ge(Ae(t)===3?Array.from(t):t,r),typeof t!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return t}function Fi(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 Ki=Object.prototype.propertyIsEnumerable;function Jn(t,e){let n;if(Array.isArray(t))return Array.prototype.concat.call(t);if(t instanceof Set){if(!Wt(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(!zt(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,oe),n!==void 0)&&n!==oe.mutable){if(n===oe.immutable)return Fi(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=>{Ki.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 H(t){t.copy||(t.copy=Jn(t.original,t.options))}function He(t){if(!de(t))return Vt(t);if(Array.isArray(t))return t.map(He);if(t instanceof Map){const n=Array.from(t.entries()).map(([r,i])=>[r,He(i)]);if(!zt(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(He);if(!Wt(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]=He(t[n]);return e}function ht(t){return Ee(t)?He(t):t}function ye(t){var e;t.assignedMap=(e=t.assignedMap)!==null&&e!==void 0?e:new Map,t.operated||(t.operated=!0,t.parent&&ye(t.parent))}function Zn(){throw new Error("Cannot modify frozen object")}function Re(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,c)=>{if(typeof u=="symbol")return`[${u.toString()}]`;const d=r[c];return typeof u=="object"&&(d instanceof Map||d instanceof Set)?Array.from(d.keys()).indexOf(u):u}).join("/")}`);r.push(o),i.push(e)}else r.push(o)}if(Object.isFrozen(t)||Ee(t)){r.pop(),i.pop();return}switch(Ae(t)){case 2:for(const[a,u]of t)Re(a,a,n,r,i),Re(u,a,n,r,i);t.set=t.clear=t.delete=Zn;break;case 3:for(const a of t)Re(a,a,n,r,i);t.add=t.clear=t.delete=Zn;break;case 1:Object.freeze(t);let o=0;for(const a of t)Re(a,o,n,r,i),o+=1;break;default:Object.freeze(t),Object.keys(t).forEach(a=>{const u=t[a];Re(u,a,n,r,i)})}r.pop(),i.pop()}function Bt(t,e){const n=Ae(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 Xn(t,e,n){if(Ee(t)||!de(t,n)||e.has(t)||Object.isFrozen(t))return;const r=t instanceof Set,i=r?new Map:void 0;if(e.add(t),Bt(t,(s,o)=>{var a;if(Ee(o)){const u=k(o);H(u);const c=!((a=u.assignedMap)===null||a===void 0)&&a.size||u.operated?u.copy:u.original;Ye(r?i:t,s,c)}else Xn(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 Wi(t,e){const n=t.type===3?t.setMap:t.copy;t.finalities.revoke.length>1&&t.assignedMap.get(e)&&n&&Xn(ge(n,e),t.finalities.handledSet,t.options)}function Qt(t){t.type===3&&t.copy&&(t.copy.clear(),t.setMap.forEach(e=>{t.copy.add(Vt(e))}))}function Yt(t,e,n,r){if(t.operated&&t.assignedMap&&t.assignedMap.size>0&&!t.finalized){if(n&&r){const s=Hn(t);s&&e(t,s,n,r)}t.finalized=!0}}function Ht(t,e,n,r){const i=k(n);i&&(i.callbacks||(i.callbacks=[]),i.callbacks.push((s,o)=>{var a;const u=t.type===3?t.setMap:t.copy;if(me(ge(u,e),n)){let c=i.original;i.copy&&(c=i.copy),Qt(t),Yt(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(c,i.original)),Ye(u,e,c)}}),t.options.enableAutoFreeze&&i.finalities!==t.finalities&&(t.options.enableAutoFreeze=!1)),de(n,t.options)&&t.finalities.draft.push(()=>{const s=t.type===3?t.setMap:t.copy;me(ge(s,e),n)&&Wi(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 c=0;c<s.length;c+=1)if(o.get(c.toString())&&u[c]!==s[c]){const d=e.concat([c]),f=ke(d,i);n.push({op:$.Replace,path:f,value:ht(u[c])}),r.push({op:$.Replace,path:f,value:ht(s[c])})}for(let c=s.length;c<u.length;c+=1){const d=e.concat([c]),f=ke(d,i);n.push({op:$.Add,path:f,value:ht(u[c])})}if(s.length<u.length){const{arrayLengthAssignment:c=!0}=a.enablePatches;if(c){const d=e.concat(["length"]),f=ke(d,i);r.push({op:$.Replace,path:f,value:s.length})}else for(let d=u.length;s.length<d;d-=1){const f=e.concat([d-1]),h=ke(f,i);r.push({op:$.Remove,path:h})}}}function Vi({original:t,copy:e,assignedMap:n},r,i,s,o){n.forEach((a,u)=>{const c=ge(t,u),d=ht(ge(e,u)),f=a?Qe(t,u)?$.Replace:$.Add:$.Remove;if(me(c,d)&&f===$.Replace)return;const h=r.concat(u),p=ke(h,o);i.push(f===$.Remove?{op:f,path:p}:{op:f,path:p,value:d}),s.push(f===$.Add?{op:$.Remove,path:p}:f===$.Remove?{op:$.Add,path:p,value:c}:{op:$.Replace,path:p,value:c})})}function qi({original:t,copy:e},n,r,i,s){let o=0;t.forEach(a=>{if(!e.has(a)){const u=n.concat([o]),c=ke(u,s);r.push({op:$.Remove,path:c,value:a}),i.unshift({op:$.Add,path:c,value:a})}o+=1}),o=0,e.forEach(a=>{if(!t.has(a)){const u=n.concat([o]),c=ke(u,s);r.push({op:$.Add,path:c,value:a}),i.unshift({op:$.Remove,path:c,value:a})}o+=1})}function Je(t,e,n,r){const{pathAsArray:i=!0}=t.options.enablePatches;switch(t.type){case 0:case 2:return Vi(t,e,n,r,i);case 1:return zi(t,e,n,r,i);case 3:return qi(t,e,n,r,i)}}const pt=(t,e,n=!1)=>{if(typeof t=="object"&&t!==null&&(!de(t,e)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},Jt={get size(){return ae(k(this)).size},has(t){return ae(k(this)).has(t)},set(t,e){const n=k(this),r=ae(n);return(!r.has(t)||!me(r.get(t),e))&&(H(n),ye(n),n.assignedMap.set(t,!0),n.copy.set(t,e),Ht(n,t,e,Je)),this},delete(t){if(!this.has(t))return!1;const e=k(this);return H(e),ye(e),e.original.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.copy.delete(t),!0},clear(){const t=k(this);if(this.size){H(t),ye(t),t.assignedMap=new Map;for(const[e]of t.original)t.assignedMap.set(e,!1);t.copy.clear()}},forEach(t,e){const n=k(this);ae(n).forEach((r,i)=>{t.call(e,this.get(i),i,this)})},get(t){var e,n;const r=k(this),i=ae(r).get(t),s=((n=(e=r.options).mark)===null||n===void 0?void 0:n.call(e,i,oe))===oe.mutable;if(r.options.strict&&pt(i,r.options,s),s||r.finalized||!de(i,r.options)||i!==r.original.get(t))return i;const o=Kt.createDraft({original:i,parentDraft:r,key:t,finalities:r.finalities,options:r.options});return H(r),r.copy.set(t,o),o},keys(){return ae(k(this)).keys()},values(){const t=this.keys();return{[lt]:()=>this.values(),next:()=>{const e=t.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const t=this.keys();return{[lt]:()=>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]}}}},[lt](){return this.entries()}},Gi=Reflect.ownKeys(Jt),er=(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=k(a),c=((i=(r=t.options).mark)===null||i===void 0?void 0:i.call(r,a,oe))===oe.mutable;if(t.options.strict&&pt(o,t.options,c),!c&&!u&&de(o,t.options)&&!t.finalized&&t.original.has(o)){const d=Kt.createDraft({original:o,parentDraft:t,key:o,finalities:t.finalities,options:t.options});t.setMap.set(o,d),a=d}else u&&(a=u.proxy);return{done:!1,value:n?a:[a,a]}},yt={get size(){return k(this).setMap.size},has(t){const e=k(this);if(e.setMap.has(t))return!0;H(e);const n=k(t);return!!(n&&e.setMap.has(n.original))},add(t){const e=k(this);return this.has(t)||(H(e),ye(e),e.assignedMap.set(t,!0),e.setMap.set(t,t),Ht(e,t,t,Je)),this},delete(t){if(!this.has(t))return!1;const e=k(this);H(e),ye(e);const n=k(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=k(this);H(t),ye(t);for(const e of t.original)t.assignedMap.set(e,!1);t.setMap.clear()},values(){const t=k(this);H(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:er(t,e,{isValuesIterator:!0})}},entries(){const t=k(this);H(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:er(t,e,{isValuesIterator:!1})}},keys(){return this.values()},[lt](){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(yt,{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 Bi=Reflect.ownKeys(yt),tr=new WeakSet,nr={get(t,e,n){var r,i;const s=(r=t.copy)===null||r===void 0?void 0:r[e];if(s&&tr.has(s))return s;if(e===Qn)return t;let o;if(t.options.mark){const c=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(c,oe),o===oe.mutable)return t.options.strict&&pt(c,t.options,!0),c}const a=ae(t);if(a instanceof Map&&Gi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Jt,"size").get.call(t.proxy);const c=Jt[e];if(c)return c.bind(t.proxy)}if(a instanceof Set&&Bi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(yt,"size").get.call(t.proxy);const c=yt[e];if(c)return c.bind(t.proxy)}if(!Qe(a,e)){const c=Yn(a,e);return c?"value"in c?c.value:(i=c.get)===null||i===void 0?void 0:i.call(t.proxy):void 0}const u=a[e];if(t.options.strict&&pt(u,t.options),t.finalized||!de(u,t.options))return u;if(u===qt(t.original,e)){if(H(t),t.copy[e]=Zt({original:t.original[e],parentDraft:t,key:t.type===1?Number(e):e,finalities:t.finalities,options:t.options}),typeof o=="function"){const c=k(t.copy[e]);return H(c),ye(c),c.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=Yn(ae(t),e);if(s!=null&&s.set)return s.set.call(t.proxy,n),!0;const o=qt(ae(t),e),a=k(o);return a&&me(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):(me(n,o)&&(n!==void 0||Qe(t.original,e))||(H(t),ye(t),Qe(t.original,e)&&me(n,t.original[e])?t.assignedMap.delete(e):t.assignedMap.set(e,!0),t.copy[e]=n,Ht(t,e,n,Je)),!0)},has(t,e){return e in ae(t)},ownKeys(t){return Reflect.ownKeys(ae(t))},getOwnPropertyDescriptor(t,e){const n=ae(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?nr.set.call(this,t,e,void 0,t.proxy):(qt(t.original,e)!==void 0||e in t.original?(H(t),ye(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 Zt(t){const{original:e,parentDraft:n,key:r,finalities:i,options:s}=t,o=Ae(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:c}=Proxy.revocable(o===1?Object.assign([],a):a,nr);if(i.revoke.push(c),tr.add(u),a.proxy=u,n){const d=n;d.finalities.draft.push((f,h)=>{var p,b;const y=k(u);let g=d.type===3?d.setMap:d.copy;const T=ge(g,r),w=k(T);if(w){let v=w.original;w.operated&&(v=Vt(T)),Qt(w),Yt(w,Je,f,h),d.options.enableAutoFreeze&&(d.options.updatedValues=(p=d.options.updatedValues)!==null&&p!==void 0?p:new WeakMap,d.options.updatedValues.set(v,w.original)),Ye(g,r,v)}(b=y.callbacks)===null||b===void 0||b.forEach(v=>{v(f,h)})})}else{const d=k(u);d.finalities.draft.push((f,h)=>{Qt(d),Yt(d,Je,f,h)})}return u}Kt.createDraft=Zt;function Qi(t,e,n,r,i){var s;const o=k(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 c=u?e[0]:o?o.operated?o.copy:o.original:t;return o&&Gt(o),i&&Re(c,c,o==null?void 0:o.options.updatedValues),[c,n&&u?[{op:$.Replace,path:[],value:e[0]}]:n,r&&u?[{op:$.Replace,path:[],value:a}]:r]}function Yi(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,oe))===oe.mutable||!de(t,e)?t:Zt({original:t,parentDraft:null,finalities:r,options:e});return[a,(u=[])=>{const[c,d,f]=Qi(a,u,i,s,e.enableAutoFreeze);return e.enablePatches?[c,d,f]:c}]}function Xt(t){const{rootDraft:e,value:n,useRawReturn:r=!1,isRoot:i=!0}=t;Bt(n,(s,o,a)=>{const u=k(o);if(u&&e&&u.finalities===e.finalities){t.isContainDraft=!0;const c=u.original;if(a instanceof Set){const d=Array.from(a);a.clear(),d.forEach(f=>a.add(s===f?c:f))}else Ye(a,s,c)}else typeof o=="object"&&o!==null&&(t.value=o,t.isRoot=!1,Xt(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 rr(t){var e;const n=k(t);if(!de(t,n==null?void 0:n.options))return t;const r=Ae(t);if(n&&!n.operated)return n.original;let i;function s(){i=r===2?zt(t)?new Map(t):new(Object.getPrototypeOf(t)).constructor(t):r===3?Array.from(n.setMap.values()):Jn(t,n==null?void 0:n.options)}if(n){n.finalized=!0;try{s()}finally{n.finalized=!1}}else i=t;if(Bt(i,(o,a)=>{if(n&&me(ge(n.original,o),a))return;const u=rr(a);u!==a&&(i===t&&s(),Ye(i,o,u))}),r===3){const o=(e=n==null?void 0:n.original)!==null&&e!==void 0?e:i;return Wt(o)?new Set(i):new(Object.getPrototypeOf(o)).constructor(i)}return i}function ir(t){if(!Ee(t))throw new Error(`current() is only used for Draft, parameter: ${t}`);return rr(t)}const _t=(t=>function e(n,r,i){var s,o,a;if(typeof n=="function"&&typeof r!="function")return function(E,...N){return e(E,W=>n.call(this,W,...N),r)};const u=n,c=r;let d=i;if(typeof r!="function"&&(d=r),d!==void 0&&Object.prototype.toString.call(d)!=="[object Object]")throw new Error(`Invalid options: ${d}, 'options' should be an object.`);d=Object.assign(Object.assign({},t),d);const f=Ee(u)?ir(u):u,h=Array.isArray(d.mark)?(E,N)=>{for(const W of d.mark){if(typeof W!="function")throw new Error(`Invalid mark: ${W}, 'mark' should be a function.`);const _e=W(E,N);if(_e)return _e}}:d.mark,p=(s=d.enablePatches)!==null&&s!==void 0?s:!1,b=(o=d.strict)!==null&&o!==void 0?o:!1,g={enableAutoFreeze:(a=d.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:h,strict:b,enablePatches:p};if(!de(f,g)&&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]=Yi(f,g);if(typeof r!="function"){if(!de(f,g))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 v;try{v=c(T)}catch(E){throw Gt(k(T)),E}const M=E=>{const N=k(T);if(!Ee(E)){if(E!==void 0&&!me(E,T)&&(N!=null&&N.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 _e=E==null?void 0:E[Li];if(_e){const O=_e[0];return g.strict&&typeof E=="object"&&E!==null&&Xt({rootDraft:N,value:E,useRawReturn:!0}),w([O])}if(E!==void 0)return typeof E=="object"&&E!==null&&Xt({rootDraft:N,value:E}),w([E])}if(E===T||E===void 0)return w([]);const W=k(E);if(g===W.options){if(W.operated)throw new Error("Cannot return a modified child draft.");return w([ir(E)])}return w([E])};return v instanceof Promise?v.then(M,E=>{throw Gt(k(T)),E}):M(v)})();Object.prototype.constructor.toString();function sr(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 or(t,e){return Object.keys(t).length===Object.keys(e).length&&Object.keys(t).every(n=>e.hasOwnProperty(n)&&t[n]===e[n])}function bt(t,e){return typeof t!="object"||typeof e!="object"||t===null||e===null?t===e:sr(t,e)?Object.keys(t).every(n=>bt(t[n],e[n])):!1}function en(t){if(!Ze(t))return t;const e={};for(const[n,r]of Object.entries(t))r!==void 0&&(e[n]=r);return e}function ar(t,e){if(!Ze(t)||!Ze(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=Ze(t[r])&&Ze(e[r]);n[r]=i?ar(t[r],e[r]):e[r]}return n}function Ze(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Hi(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 ur(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 cr(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}cr(t[n],r),Ji(t[n])&&delete t[n]}}function Ji(t){return t&&Object.keys(t).length===0}const dr=/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$/,Zi={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 Xi(t){return new Date(t)}function es(t){return new Date(t+"Z")}const ts=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function ns(t){const e=t.match(ts);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 rs(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function is(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ss(t){return new Date(t)}function os(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 as(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 us(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,c,d]=o;return a=Number(a),u=Number(u),c=Number(c),d==="PM"&&a!==12?a+=12:d==="AM"&&a===12&&(a=0),new Date(Date.UTC(s,r-1,i,a,u,c))}function cs(t){switch(t){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function ds(t){const e=t.match(dr);if(!e)return null;const[n]=e,r=Zi[n],i=new Date(t.replace(dr,"Z"));return new Date(i.getTime()-r*1e3)}const fs=[ns,is,os,us,ss,es,as,rs,Xi,cs,ds];function ls(t,e){try{const n=t(e);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function tn(t){for(const e of fs){const n=ls(e,t);if(n)return n}return null}function hs(t){try{const e=JSON.parse(t);return typeof e=="string"?tn(e):null}catch{return null}}function gt(t){if(t!==void 0){if(t===null)return null;if(t instanceof Date)return t;if(typeof t=="string"){const e=tn(t)||hs(t)||tn(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 ps(t){return t.cardinality==="one"}function nn(t){return t["value-type"]==="ref"}function rn(t){return t["value-type"]==="blob"}function xe(t,e){return t[e]}function mt(t,e){return e.reduce((n,r)=>n&&n.get(r),t)}function fe(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)&&fe(t.get(n),r)}function te(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)),te(s,i,n)}function fr(t,e,n){const r=new Map,i=new Map,s=new Map;for(const o of e){let[a,u,c,d]=o;const f=xe(t,u);if(!f){console.warn("no such attr",a,t);continue}f["checked-data-type"]==="date"&&n&&(c=gt(c),o[2]=c),nn(f)&&te(s,[c,u,a],o),te(r,[a,u,c],o),te(i,[u,a,c],o)}return{eav:r,aev:i,vae:s}}function lr(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,c]=o,d=s["reverse-identity"];if(te(r,[u,c],s),rn(s)&&te(e,[u,c],s),s["primary?"]&&te(n,[u],s),d){const[f,h,p]=d;te(i,[h,p],s)}}return{blobAttrs:e,primaryKeys:n,forwardIdents:r,revIdents:i}}function ys(t){return{__type:t.__type,attrs:t.attrs,triples:ne(t.eav,3),cardinalityInference:t.cardinalityInference,linkIndex:t.linkIndex,useDateObjects:t.useDateObjects}}function _s(t){return on(t.attrs,t.triples,t.cardinalityInference,t.linkIndex,t.useDateObjects)}function sn(t){t.attrIndexes=lr(t.attrs)}function on(t,e,n,r,i){const s=fr(t,e,i);return s.useDateObjects=i,s.attrs=t,s.attrIndexes=lr(t),s.cardinalityInference=n,s.linkIndex=r,s.__type="store",s}function Xe(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=ne(u,2).find(d=>d[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 d=(r=ne(u,2).find(y=>y[2]===a))===null||r===void 0?void 0:r[0];if(!d)return null;const[f,h,p,...b]=e;return[i,h,d,...b]}else{const[o,...a]=e;return[i,...a]}}function bs(t,e){const n=Xe(t,e);if(!n)return;const[r,i,s]=n,o=xe(t.attrs,i);o&&(fe(t.eav,[r,i,s]),fe(t.aev,[i,r,s]),nn(o)&&fe(t.vae,[s,i,r]))}let gs=0;function hr(t,e,n){const[r,i,s]=n;let o;const a=mt(t.ea,[r,i,s]);return a&&(o=a[3]),o||Date.now()*10+gs++}function ms(t,e){var n;const r=Xe(t,e);if(!r)return;let[i,s,o]=r;const a=xe(t.attrs,s);if(!a)return;a["checked-data-type"]==="date"&&t.useDateObjects&&(o=gt(o));const u=mt(t.eav,[i,s,o]),c=(n=u==null?void 0:u[3])!==null&&n!==void 0?n:hr(t,a,r),d=[i,s,o,c];ps(a)?(te(t.eav,[i,s],new Map([[o,d]])),te(t.aev,[s,i],new Map([[o,d]]))):(te(t.eav,[i,s,o],d),te(t.aev,[s,i,o],d)),nn(a)&&te(t.vae,[o,s,i],d)}function ws(t,e){var n;const r=Xe(t,e);if(!r)return;const[i,s,o]=r,a=xe(t.attrs,s);if(!a)return;if(!rn(a))throw new Error("merge operation is not supported for links");const u=mt(t.eav,[i,s]);if(!u)return;const c=(n=u.values().next())===null||n===void 0?void 0:n.value;if(!c)return;const d=c[2],f=ar(d,o),h=[i,s,f,hr(t,a,c)];te(t.eav,[i,s],new Map([[f,h]]))}function an(t,e){var n,r;const[i,s]=e,o=Xe(t,[i]);if(!o)return;const[a]=o,u=t.eav.get(a);if(u){for(const d of u.keys()){const f=t.attrs[d];f&&f["on-delete-reverse"]==="cascade"&&ne(u.get(d),1).forEach(([h,p,b])=>{var y;return an(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)&&(fe(t.aev,[d,a]),fe(t.eav,[a,d]))}u.size===0&&fe(t.eav,[a])}const c=t.vae.get(a)&&ne(t.vae.get(a),2);c&&c.forEach(d=>{var f,h,p;const[b,y,g]=d,T=t.attrs[y];(!s||!T||((f=T["reverse-identity"])===null||f===void 0?void 0:f[1])===s)&&(fe(t.eav,[b,y,g]),fe(t.aev,[y,b,g]),fe(t.vae,[g,y,b])),T&&T["on-delete"]==="cascade"&&((h=T["reverse-identity"])===null||h===void 0?void 0:h[1])===s&&an(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&&fe(t.vae,[a])}function pr(t,e){const n=fr(t.attrs,e,t.useDateObjects);Object.keys(n).forEach(r=>{t[r]=n[r]})}function Ts(t,[e]){t.attrs[e.id]=e,sn(t)}function yr(t){return ne(t.eav,3)}function vs(t,[e]){if(!t.attrs[e])return;const n=yr(t).filter(([r,i])=>i!==e);delete t.attrs[e],sn(t),pr(t,n)}function Ss(t,[e]){const n=t.attrs[e.id];n&&(t.attrs[e.id]=Object.assign(Object.assign({},n),e),sn(t),pr(t,yr(t)))}function Os(t,e){const[n,...r]=e;switch(n){case"add-triple":ms(t,r);break;case"deep-merge-triple":ws(t,r);break;case"retract-triple":bs(t,r);break;case"delete-entity":an(t,r);break;case"add-attr":Ts(t,r);break;case"delete-attr":vs(t,r);break;case"update-attr":Ss(t,r);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${n}`)}}function ne(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())ne(r,e-1,n);return n}function wt(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:c}=n.$isNull;if(c)for(const d of e.keys()){const f=t.vae.get(d),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(d))}else{const d=t.aev.get(a);for(const f of e.keys()){const h=!d||((i=d.get(f))===null||i===void 0?void 0:i.get(null))||!d.get(f);(u?h:!h)&&s.push(e.get(f))}}return s}if(n!=null&&n.$comparator)return ne(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 Es(t,e,n){let r="";return t!==void 0&&(r+="e"),e!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function As(t,[e,n,r]){var i,s;switch(Es(e,n,r)){case"e":{const a=t.eav.get(e);return ne(a,2)}case"ea":{const a=(i=t.eav.get(e))===null||i===void 0?void 0:i.get(n);return ne(a,1)}case"eav":{const a=(s=t.eav.get(e))===null||s===void 0?void 0:s.get(n);return a?wt(t,a,r):[]}case"ev":{const a=t.eav.get(e);if(!a)return[];const u=[];for(const c of a.values())u.push(...wt(t,c,r));return u}case"a":{const a=t.aev.get(n);return ne(a,2)}case"av":{const a=t.aev.get(n);if(!a)return[];const u=[];for(const c of a.values())u.push(...wt(t,c,r));return u}case"v":{const a=[];for(const u of t.eav.values())for(const c of u.values())a.push(...wt(t,c,r));return a}default:return ne(t.eav,3)}}function ks(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=ne(a,1);for(const c of u)i[s]=c[2]}return i}function De(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 Cs(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 js(t,e){const n=Xe(t,e);if(!n)return;const[r,i,s]=n;if(xe(t.attrs,i))return mt(t.eav,[r,i])}function Ps(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 c=!1;const d=xe(t.attrs,s);if(d){const f=br(t,d["forward-identity"][1]);c=!!js(t,[i,f.id,i])}return!(u==="create"&&c||u==="update"&&!c)});return _t(t,r=>{n.forEach(i=>{Os(r,i)})})}function Ms(t){return typeof t=="string"&&t.startsWith("?")}function Is(t,e,n){if(n.hasOwnProperty(t)){const r=n[t];return mr(r,e,n)}return Object.assign(Object.assign({},n),{[t]:e})}function gr(t,e,n){return t===e?n:null}function Rs(t){switch(typeof t){case"string":return t.startsWith("?")?Is:gr;default:return gr}}const xs=["in","$in","$not","$isNull","$comparator"];function Ds(t){for(const e of xs)if(t.hasOwnProperty(e))return!0;return!1}function mr(t,e,n){return n?typeof t=="object"?Ds(t)?n:null:Rs(t)(t,e,n):null}function $s(t,e,n){return t.reduce((r,i,s)=>{const o=e[s];return mr(i,o,r)},n)}function Us(t,e,n){return Fs(t,e,n).map(r=>$s(e,r,n)).filter(r=>r)}function Ls(t,e,n){return e.or?e.or.patterns.flatMap(r=>un(t,r,n)):e.and?e.and.patterns.reduce((r,i)=>un(t,i,r),n):n.flatMap(r=>Us(t,e,r))}function un(t,e,n=[{}]){return e.reduce((r,i)=>Ls(t,i,r),n)}function cn(t,e){return Array.isArray(e)?e.map(n=>cn(t,n)):Ms(e)?t[e]:e}function Ns(t,{find:e,where:n}){return un(t,n).map(i=>cn(i,e))}function Fs(t,e,n){return As(t,cn(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 $e(t){return typeof t=="string"&&Ks.test(t)}const V=[];for(let t=0;t<256;++t)V.push((t+256).toString(16).slice(1));function Ws(t,e=0){return(V[t[e+0]]+V[t[e+1]]+V[t[e+2]]+V[t[e+3]]+"-"+V[t[e+4]]+V[t[e+5]]+"-"+V[t[e+6]]+V[t[e+7]]+"-"+V[t[e+8]]+V[t[e+9]]+"-"+V[t[e+10]]+V[t[e+11]]+V[t[e+12]]+V[t[e+13]]+V[t[e+14]]+V[t[e+15]]).toLowerCase()}let dn;const zs=new Uint8Array(16);function Vs(){if(!dn){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");dn=crypto.getRandomValues.bind(crypto)}return dn(zs)}const wr={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function qs(t,e,n){var i;if(wr.randomUUID&&!t)return wr.randomUUID();t=t||{};const r=t.random??((i=t.rng)==null?void 0:i.call(t))??Vs();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,Ws(r)}function Tr(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 Gs(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 Bs(t,e){return Gs(Tr(t),Tr(e))}function q(){return qs()}function Qs(t,e){return t.localeCompare(e)}function Ys(){let t=Qs;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{t=Intl.Collator("en-US").compare}catch{}return t}const Hs=Ys();let Js=0;function et(t){return Tt(`_${t}`,Js++)}function Tt(t,e){return`?${t}-${e}`}class Ue extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function Zs(t,e){const n=br(t,e);if(!n)throw new Ue(`Could not find id attr for ${e}`);return n}function vr(t,e,n,r){return[Xs(t,e,n,r)]}function Xs(t,e,n,r){return[t(n,r),Zs(e,n).id,t(n,r),t("time",r)]}function eo(t,e,n){return t.map(r=>r===e?n:r)}function Sr(t,e,n,r,i){const s=De(e,n,i),o=_r(e,n,i),a=s||o;if(!a)throw new Ue(`Could not find attr for ${[n,i]}`);if(a["value-type"]!=="ref")throw new Error(`Attr ${a.id} is not a ref`);const[u,c]=a["forward-identity"],[d,f]=a["reverse-identity"],h=r+1,p=s?[t(c,r),a.id,t(f,h),et("time")]:[t(c,h),a.id,t(f,r),et("time")];return[s?f:c,h,p,a,!!s]}function Or(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 to(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=Or(!0,e.$like);return{$comparator:!0,$op:function(s){return r(s[2])}}}if(e.hasOwnProperty("$ilike")){const r=Or(!1,e.$ilike);return{$comparator:!0,$op:function(s){return r(s[2])}}}return e}function no(t,e,n,r,i,s){const o=De(e,n,i),a=_r(e,n,i),u=o||a;if(!u)throw new Ue(`No attr for etype = ${n} label = ${i}`);if(s!=null&&s.hasOwnProperty("$isNull")){const c=De(e,n,"id");if(!c)throw new Ue(`No attr for etype = ${n} label = id`);return[t(n,r),c.id,{$isNull:{attrId:u.id,isNull:s.$isNull,reverse:!o}},et("time")]}return o?[t(n,r),u.id,to(u,s),et("time")]:[s,u.id,t(n,r),et("time")]}function ro(t,e,n,r,i){const[s,o,a]=i.reduce((u,c)=>{const[d,f,h]=u,[p,b,y]=Sr(t,e,d,f,c);return[p,b,[...h,y]]},[n,r,[]]);return[s,o,a]}function fn(t,e,n,r,i,s){const o=i.slice(0,i.length-1),a=i[i.length-1],[u,c,d]=ro(t,e,n,r,o),f=no(t,e,u,c,a,s);return d.concat([f])}function io(t,e){return e?[e].concat(t):t}function so([t,e]){return t==="or"&&Array.isArray(e)}function oo([t,e]){return t==="and"&&Array.isArray(e)}function ao(t,e,n){return(r,i)=>{const s=t(r,i);return e==s?s:`${s}-${n}`}}function Er(t,e,n,r,i,s){const o=t(r,i),a=s.map((u,c)=>{const d=ao(t,o,c);return kr(d,n,r,i,u)});return{[e]:{patterns:a,joinSym:o}}}function uo(t){const e=[];for(let n=1;n<=t.length;n++)e.push(t.slice(0,n));return e}function Ar(t,e,n,r,i){return uo(i).map(s=>fn(t,e,n,r,s,{$isNull:!0}))}function kr(t,e,n,r,i){return Object.entries(i).flatMap(([s,o])=>{if(so([s,o]))return Er(t,"or",e,n,r,o);if(oo([s,o]))return Er(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=fn(t,e,n,r,a,o),c=Ar(t,e,n,r,a);return[{or:{patterns:[u,...c],joinSym:t(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Ar(t,e,n,r,a),joinSym:t(n,r)}}]:fn(t,e,n,r,a,o)})}function co(t,e,n,r){const i=Tt;return r?kr(i,t,e,n,r).concat(vr(i,t,e,n)):vr(i,t,e,n)}function fo(t,e,n){return[t(e,n),t("time",n)]}function lo(t,e,n,r,i,s){const[o,a,u,c,d]=Sr(t,e,n,r,i),f=eo(u,t(n,r),s);return[o,a,f,c,d]}function ho(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,c]){return o.map(function(h){var p,b,y;const g=!!(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,v]=lo(t,e,n,r,h,u),M=jr(e,{etype:T,level:w,form:i[h],join:v}),E=g?M[0]:M;return{[h]:E}}catch(T){if(T instanceof Ue)return{[h]:g?void 0:[]};throw T}}).reduce(function(h,p){return Object.assign(Object.assign({},h),p)},c)}):Object.values(s)}function po(t,e,n){return n==="string"?Hs(t,e):t>e?1:-1}function vt([t,e],[n,r],i){return e===r||e==null&&r==null?Bs(t,n):r==null?1:e==null?-1:po(e,r,i)}function ln(t){return t==null?t:new Date(t).getTime()}function yo(t,e,n,r){var i;const[s,o,a,u]=t,c=n==="desc"?1:-1;if(((i=e["forward-identity"])===null||i===void 0?void 0:i[2])==="id")return vt(r,[s,u],null)===c;const[d,f]=r,h=e["checked-data-type"],p=h==="date"?ln(f):f,b=h==="date"?ln(a):a;return vt([d,p],[s,b],h)===c}function _o(t,e){const n=e[1];return t.attrs[n]}function bo(t,e,n){const r=Object.keys(n)[0];return De(t,e,r)}function go(t,e,n,r){if(n)return _o(t,n);if(r)return bo(t,e,r)}function mo(t,e,n){var r,i;if(!Array.isArray(n.fields))return Cs(t,e);const s=new Map;for(const o of n.fields){const a=De(t,e,o),u=(r=a==null?void 0:a["forward-identity"])===null||r===void 0?void 0:r[2];u&&rn(a)&&s.set(u,a)}if(!s.has("id")){const o=De(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 wo(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),c=To(i);let d=Ns(t,r);const f=n==null?void 0:n["start-cursor"],h=go(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",g=h.id;d=d.map(([T])=>{var w,v,M,E,N;let W=(N=(E=(M=(v=(w=t.eav.get(T))===null||w===void 0?void 0:w.get(g))===null||v===void 0?void 0:v.values())===null||M===void 0?void 0:M.next())===null||E===void 0?void 0:E.value)===null||N===void 0?void 0:N[2];return y&&(W=ln(W)),[T,W]})}d.sort(c==="asc"?function(g,T){return vt(g,T,h==null?void 0:h["checked-data-type"])}:function(g,T){return vt(T,g,h==null?void 0:h["checked-data-type"])});let p={};const b=mo(t,e,r);for(const y of d){const[g]=y;if(p[g]||!u&&f&&h&&yo(f,h,c,y))continue;const T=ks(t,b,g);T&&(p[g]=T)}return p}function To(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 vo(t,{etype:e,level:n,form:r,join:i,pageInfo:s}){var o,a,u,c,d;if(!Cr(r)&&(!s||!s["start-cursor"]))return[];const f=io(co(t,e,n,(o=r.$)===null||o===void 0?void 0:o.where),i),h=fo(Tt,e,n),p=(a=r.$)===null||a===void 0?void 0:a.fields,b=wo(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)||((c=r.$)===null||c===void 0?void 0:c.first)||((d=r.$)===null||d===void 0?void 0:d.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 g=Object.entries(b);return g.length<=y?b:Object.fromEntries(g.slice(0,y))}return b}function So(t,e){try{return vo(t,e)}catch(n){if(n instanceof Ue)return{};throw n}}function jr(t,e){const n=So(t,e);return ho(Tt,t,e,n)}function Oo(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 Eo({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]=jr(t,{etype:u,form:r[u],level:0,pageInfo:e==null?void 0:e[u]})),a},{})};return e&&(s.pageInfo=Oo(e)),n&&(s.aggregate=n),s}function Ao(){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 ko=Ao();function hn(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(ko.has(s))return(o,a)=>hn(t,e,[...n,a?[s,t,e,o,a]:[s,t,e,o]])}})}function Co(t,e){return`lookup__${t}__${JSON.stringify(e)}`}function St(t){return t.startsWith("lookup__")}function Pr(t){const[e,n,...r]=t.split("__");return[n,JSON.parse(r.join("__"))]}function jo(t){return new Proxy({__etype:t},{get(e,n){if(n==="__etype")return t;const r=n;return St(r)?hn(t,Pr(r),[]):hn(t,r,[])}})}function pn(){return new Proxy({},{get(t,e){return jo(e)}})}const Po=pn();function Mo(t){return t.__ops}function Io(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,c]=o;i.push([n[u],c])}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 G(t,e,n){return Object.values(t).find(r=>{const[i,s,o]=r["forward-identity"];return s===e&&o===n})}function Ce(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 Ro(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 yn(t,e,n){return n.indexOf(".")!==-1&&!G(t,e,n)}function _n(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 xo(t,e,n){if(!yn(t,e,n))return G(t,e,n);const r=_n(n),i=G(t,e,r)||Ce(t,e,r);if(i&&i["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return i}function bn(t){return typeof t=="string"&&!St(t)?null:typeof t=="string"&&St(t)?Pr(t):Ro(t)}function re(t,e,n){const r=bn(n);if(r===null)return n;const[i,s]=r,o=xo(t,e,i);if(!o||!o["unique?"])throw new Error(`${i} is not a unique attribute.`);return[o.id,s]}function Mr(t,e,n,r){const i=re(t,e,n);return Array.isArray(i)?[["add-triple",i,G(t,e,"id").id,i]].concat(r):r}function Do({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=G(t,e,s),c=Ce(t,e,s);return a.map(d=>u?["add-triple",re(t,e,n),u.id,re(t,u["reverse-identity"][1],d)]:["add-triple",re(t,c["forward-identity"][1],d),c.id,re(t,e,n)])});return Mr(t,e,n,i)}function $o({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=G(t,e,s),c=Ce(t,e,s);return a.map(d=>u?["retract-triple",re(t,e,n),u.id,re(t,u["reverse-identity"][1],d)]:["retract-triple",re(t,c["forward-identity"][1],d),c.id,re(t,e,n)])});return Mr(t,e,n,i)}function Uo(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,c]of ne(o,2))if(c===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 Ir({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:Uo(t,n,r)?{mode:"update"}:null}function Lo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),c=re(r,i,s);return[["id",c]].concat(Object.entries(u)).map(([f,h])=>{const p=G(r,i,f);return p["checked-data-type"]==="date"&&t.useDateObjects&&(h=gt(h)),["add-triple",c,p.id,h,{mode:"create"}]})}function No(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),c=re(r,i,s),d=Ir(t,[i,c,o,a]);return[["id",c]].concat(Object.entries(u)).map(([h,p])=>{const b=G(r,i,h);return b["checked-data-type"]==="date"&&t.useDateObjects&&(p=gt(p)),["add-triple",c,b.id,p,...d?[d]:[]]})}function Fo({attrs:t},[e,n]){return[["delete-entity",re(t,e,n),e]]}function Ko(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),c=re(r,i,s),d=Ir(t,[i,c,o,a]),f=Object.entries(u).map(([p,b])=>{const y=G(r,i,p);return["deep-merge-triple",c,y.id,b,...d?[d]:[]]});return[["add-triple",c,G(r,i,"id").id,c,...d?[d]:[]]].concat(f)}function Wo({attrs:t},[e,n,r]){return[["rule-params",re(t,e,n),e,r]]}function zo(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 Vo(t,e){const[n,...r]=zo(e);switch(n){case"merge":return Ko(t,r);case"create":return Lo(t,r);case"update":return No(t,r);case"link":return Do(t,r);case"unlink":return $o(t,r);case"delete":return Fo(t,r);case"ruleParams":return Wo(t,r);default:throw new Error(`unsupported action ${n}`)}}function qo(t){switch(t){case"string":case"date":case"boolean":case"number":return t;default:return}}function Go(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=qo(s==null?void 0:s.valueType);return{"index?":a,"unique?":o,"checked-data-type":u}}function Ot(t,e,n,r){const i=t?Go(t,e,n):null,s=q(),a=[q(),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 Bo(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 Qo(t,e,n){const r=Bo(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":[q(),i.on,i.label],"reverse-identity":[q(),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?Qo(t,e,n):null,s=q(),o=[q(),e,n],a=[q(),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 Yo=new Set(["create","update","merge","link","unlink"]),Ho=new Set(["link","unlink"]),Jo=new Set(["create","update","merge"]),Zo=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),gn={"unique?":!0,"index?":!0},Xo=Object.assign(Object.assign({},gn),{cardinality:"one"});function ea(t){const e=[],[n,r,i,s]=t;if(!Zo.has(n))return e;const o=bn(i);if(o&&e.push({etype:r,lookupPair:o}),n==="link")for(const[a,u]of Object.entries(s)){const c=Array.isArray(u)?u:[u];for(const d of c){const f=bn(d);f&&e.push({etype:r,lookupPair:f,linkLabel:a})}}return e}function ta({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 c(f){f!=null&&f.isUnsynced&&!s.has(f.id)&&(a.push(["add-attr",f]),s.add(f.id))}function d(f,h){const p=G(o,f,h),b=Ce(o,f,h);c(p),c(b),!p&&!b&&u(Rr(e,f,h,Xo))}for(const f of n)for(const{etype:h,lookupPair:p,linkLabel:b}of ea(f)){const y=p[0];if(b){d(h,b);const g=G(o,h,b),T=Ce(o,h,b);c(g),c(T);const w=((r=g==null?void 0:g["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(yn(o,w,y))d(w,_n(y));else{const v=G(o,w,y);v||u(Ot(e,w,y,gn)),c(v)}}else if(yn(o,h,y))d(h,_n(y));else{const g=G(o,h,y);g||u(Ot(e,h,y,gn)),c(g)}}for(const f of n){const[h,p,b,y]=f;if(Yo.has(h)){const g=G(o,p,"id");c(g),g||u(Ot(e,p,"id",{"unique?":!0}));for(const T of Object.keys(y)){const w=G(o,p,T);if(c(w),Jo.has(h)&&(w||u(Ot(e,p,T,T==="id"?{"unique?":!0}:null))),Ho.has(h)){const v=Ce(o,p,T);!w&&!v&&u(Rr(e,p,T)),c(v)}}}}return[o,a]}function na(t,e){const r=(Array.isArray(e)?e:[e]).flatMap(u=>Mo(u)),[i,s]=ta(t,r),o=Object.assign(Object.assign({},t),{attrs:i}),a=r.flatMap(u=>Vo(o,u));return[...s,...a]}var tt=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};const ra=2,ia=["kv","querySubs"];function mn(t){return function(n){console.error("Error in IndexedDB event",{source:t,event:n})}}class xr{constructor(e,n){this.dbName=e,this._storeName=n,this._dbPromise=this._init()}_init(){return new Promise((e,n)=>{const r=indexedDB.open(this.dbName,ra);r.onerror=i=>{n(i)},r.onsuccess=i=>{const o=i.target.result;e(o)},r.onupgradeneeded=i=>this._upgradeStore(i)})}_moveQuerySubsToObjectStore(e){const n=e.objectStore("kv"),r=e.objectStore("querySubs"),i=n.get("querySubs");i.onerror=mn("get querySubs from kv store failed"),i.onsuccess=s=>{const o=typeof i.result=="string"?JSON.parse(i.result):i.result;if(!o)return;const a=new Set;for(const[u,c]of Object.entries(o)){const d=r.put(c,u);d.onerror=mn(`Move ${u} to querySubs store failed`),a.add(d)}for(const u of a)u.onsuccess=()=>{if(a.delete(u),a.size===0){const c=n.delete("querySubs");c.onerror=mn("Cleanup querySubs from kv store failed")}}}}_upgradeStore(e){const n=e.target,r=n.result,i=new Set;for(const s of ia)r.objectStoreNames.contains(s)||(i.add(s),r.createObjectStore(s));if(i.has("querySubs")&&!i.has("kv")){const s=n.transaction;this._moveQuerySubsToObjectStore(s)}}getItem(e){return tt(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 tt(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=c=>{s(c)},u.onsuccess=c=>{i()}})})}multiSet(e){return tt(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const s=n.transaction([this._storeName],"readwrite"),o=s.objectStore(this._storeName),a=new Set;for(const[u,c]of e){const d=o.put(c,u);a.add(d)}for(const u of a)u.onerror=c=>{s.abort(),i(c)},u.onsuccess=c=>{a.delete(u),a.size===0&&r()}})})}removeItem(e){return tt(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const a=n.transaction([this._storeName],"readwrite").objectStore(this._storeName).delete(e);a.onerror=u=>{i(u)},a.onsuccess=u=>{r()}})})}getAllKeys(){return tt(this,void 0,void 0,function*(){const e=yield this._dbPromise;return new Promise((n,r)=>{const o=e.transaction([this._storeName],"readwrite").objectStore(this._storeName).getAllKeys();o.onerror=a=>{r(a)},o.onsuccess=a=>{n(o.result.filter(u=>typeof u=="string"))}})})}}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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};class Dr{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 Le 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,Le),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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};class nt extends Le{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,nt),this.name="InstantAPIError",this.status=e.status,this.body=e.body}get[Symbol.toStringTag](){return"InstantAPIError"}}function le(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 nt({status:n.status,body:r}))})}var Ne=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};function aa({apiURI:t,appId:e,email:n}){return le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n,email:r,code:i,refreshToken:s}){return yield le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n}){return yield le(`${e}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n})})})}function $r(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,code:r,codeVerifier:i,refreshToken:s}){return yield le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n,nonce:r,idToken:i,clientName:s,refreshToken:o}){return yield le(`${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 Ne(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield le(`${e}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,refresh_token:r})})})}var rt=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};function ha(t){return rt(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 le(`${e}/storage/upload`,{method:"PUT",headers:u,body:i})})}function pa(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${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 rt(this,arguments,void 0,function*({apiURI:e,appId:n,fileName:r,refreshToken:i,metadata:s={}}){const{data:o}=yield le(`${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 _a(t,e){return rt(this,void 0,void 0,function*(){return(yield fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok})}function ba(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${e}/storage/signed-download-url?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}let wn=!1,Ur=!1,Lr=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(wn=!!window.localStorage.getItem("devBackend"),Ur=!!window.localStorage.getItem("__instantLogging"),Lr=!!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,c=Array.isArray(e==null?void 0:e.peers)&&(e==null?void 0:e.peers.includes(a));if(u||c){const d=Nr(t.peers[a],e==null?void 0:e.keys);s.peers[a]=Object.assign(Object.assign({},d),{peerId:a})}}return s}function ma(t,e){if(t.isLoading!==e.isLoading||t.error!==e.error||(t.user||e.user)&&(!t.user||!e.user||!or(t.user,e.user))||!sr(t.peers,e.peers))return!0;for(const r of Object.keys(t.peers))if(!or(t.peers[r],e.peers[r]))return!0;return!1}class Fr{constructor(){this.promise=new Promise((e,n)=>{this._resolve=e,this._reject=n})}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}var ve=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};function Kr(t,e){typeof requestIdleCallback>"u"?t():requestIdleCallback(t,{timeout:e})}const Tn="__meta";class Wr{constructor(e,n,r,i,s,o,a){var u,c;this._subs=[],this._nextSave=null,this._nextGc=null,this._pendingSaveKeys=new Set,this._loadedKeys=new Set,this._version=0,this._meta={isLoading:!0,onLoadCbs:[],value:null,error:null,attempts:0},this._persister=e,this._onMerge=n,this.serialize=r,this.parse=i,this._objectSize=s,this._log=o,this._saveThrottleMs=(u=a.saveThrottleMs)!==null&&u!==void 0?u:100,this._idleCallbackMaxWaitMs=(c=a.idleCallbackMaxWaitMs)!==null&&c!==void 0?c:1e3,this._gcOpts=a.gc,this.currentValue={},this._loadedKeys=new Set,this._loadingKeys={},this._initMeta()}_initMeta(){return ve(this,void 0,void 0,function*(){this._meta.loadingPromise&&(yield this._meta.loadingPromise);try{const e=this._persister.getItem(Tn);this._meta.loadingPromise=e;const n=yield e;this._meta.isLoading=!1,this._meta.error=null,this._meta.value=n||{}}catch(e){this._meta.error=e,this._meta.attempts++,this._meta.loadingPromise=null}})}_getMeta(){return ve(this,void 0,void 0,function*(){return this._meta.value?this._meta.value:this._meta.loadingPromise?(yield this._meta.loadingPromise,this._meta.value):(this._initMeta(),yield this._meta.loadingPromise,this._meta.value)})}_getFromStorage(e){return ve(this,void 0,void 0,function*(){try{const n=yield this._persister.getItem(e);return this.parse(e,n)}catch(n){return console.error(`Unable to read from storage for key=${e}`,n),null}})}waitForKeyToLoad(e){return ve(this,void 0,void 0,function*(){return this._loadedKeys.has(e)?this.currentValue[e]:(yield this._loadingKeys[e]||this._loadKey(e),this.currentValue[e])})}waitForMetaToLoad(){return ve(this,void 0,void 0,function*(){return this._getMeta()})}unloadKey(e){this._loadedKeys.delete(e),delete this._loadingKeys[e],delete this.currentValue[e]}_loadKey(e){return ve(this,void 0,void 0,function*(){if(this._loadedKeys.has(e)||e in this._loadingKeys)return;const n=this._getFromStorage(e);this._loadingKeys[e]=n;const r=yield n;delete this._loadingKeys[e],this._loadedKeys.add(e);const i=this._onMerge(e,r,this.currentValue[e]);i&&(this.currentValue[e]=i),this.onKeyLoaded&&this.onKeyLoaded(e)})}_writeToStorage(e){var n,r;const i=[],s=e==null?void 0:e.skipGc;if(this._meta.isLoading){const p=new Promise((b,y)=>{var g;setTimeout(()=>this._enqueuePersist(e?Object.assign(Object.assign({},e),{attempts:(e.attempts||0)+1}):{attempts:1}).then(b).catch(y),10+((g=e==null?void 0:e.attempts)!==null&&g!==void 0?g:0)*1e3)});return i.push(p),Promise.all(i).then(b=>b.reduce((y,g)=>y+g,0))}const o=this._meta.value;if(!o)return Promise.resolve(0);const a=[],u=[];for(const p of this._pendingSaveKeys)p in this.currentValue?u.push(p):(a.push(p),delete o.objects[p]);for(const p of a){const b=this._persister.removeItem(p);i.push(b.then(()=>1)),this._loadedKeys.delete(p),this._pendingSaveKeys.delete(p)}const c=[],d=[[Tn,o]],f=(n=o.objects)!==null&&n!==void 0?n:{};o.objects=f;for(const p of u)if(this._loadedKeys.has(p)){const b=this.serialize(p,this.currentValue[p]);d.push([p,b]);const y=this._objectSize(b),g=(r=f[p])!==null&&r!==void 0?r:{createdAt:Date.now(),updatedAt:Date.now(),size:y};g.updatedAt=Date.now(),g.size=y,f[p]=g,this._pendingSaveKeys.delete(p)}else c.push(p);const h=this._persister.multiSet(d);i.push(h.then(()=>1));for(const p of c){const b=this._loadKey(p).then(()=>this._enqueuePersist(e));i.push(b)}return s||this.gc(),Promise.all(i).then(p=>p.reduce((b,y)=>b+y,0))}flush(){return ve(this,void 0,void 0,function*(){return this._nextSave?(clearTimeout(this._nextSave),this._nextSave=null,this._writeToStorage()):void 0})}_gc(){return ve(this,void 0,void 0,function*(){const e=new Set(yield this._persister.getAllKeys());e.delete(Tn);const n=new Set(Object.keys(this.currentValue));for(const u of Object.keys(this._loadingKeys))n.add(u);for(const u of this._loadedKeys)n.add(u);const r=yield this._getMeta();if(!r){this._log.info("Could not gc because we were not able to load meta");return}const i={gcOpts:this._gcOpts,keys:e,sacredKeys:n,removed:[],metaRemoved:[],removedMetaCount:0,removedMissingCount:0,removedOldCount:0,removedThresholdCount:0,removedSizeCount:0};for(const u of e)n.has(u)||u in r.objects||(this._log.info("Lost track of key in meta",u),this._persister.removeItem(u),i.removed.push(u),i.removedMissingCount++);const s=Date.now();for(const[u,c]of Object.entries(r.objects))!n.has(u)&&c.updatedAt<s-this._gcOpts.maxAgeMs&&(this._persister.removeItem(u),delete r.objects[u],i.removed.push(u),i.removedOldCount++);const o=Object.entries(r.objects);if(o.sort(([u,c],[d,f])=>c.updatedAt-f.updatedAt),o.length>this._gcOpts.maxEntries)for(const[u]of o.slice(0,o.length-this._gcOpts.maxEntries))this._persister.removeItem(u),delete r.objects[u],i.removed.push(u),i.removedThresholdCount++,o.splice(0,1);let a=o.reduce((u,[c,d])=>u+d.size,0);for(;a>0&&a>this._gcOpts.maxSize&&o.length;){const[[u,c]]=o.splice(0,1);a-=c.size,this._persister.removeItem(u),delete r.objects[u],i.removed.push(u),i.removedSizeCount++}for(const u of Object.keys(r.objects))!e.has(u)&&!n.has(u)&&delete r.objects[u];(i.removed.length||i.metaRemoved.length)&&this._enqueuePersist({skipGc:!0}),this._log.info("Completed GC",i)})}gc(){this._nextGc||(this._nextGc=setTimeout(()=>{Kr(()=>{this._nextGc=null,this._gc()},30*1e3)},1e3))}_enqueuePersist(e){return new Promise((n,r)=>{if(this._nextSave){n(0);return}this._nextSave=setTimeout(()=>{Kr(()=>{this._nextSave=null,this._writeToStorage(e).then(n).catch(r)},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)})}version(){return this._version}updateInPlace(e){this._version++;const[n,r]=_t(this.currentValue,e,{enablePatches:!0});for(const i of r){const s=i.path[0];s&&typeof s=="string"&&(this._pendingSaveKeys.add(s),this._loadedKeys.has(s)||this._loadKey(s))}for(const i of Object.keys(n))if(!n[i])debugger;this.currentValue=n,this._enqueuePersist();for(const i of this._subs)i(this.currentValue);return n}subscribe(e){return this._subs.push(e),e(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==e)}}}function zr(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);zr(n["child-nodes"],e)})}function Vr(t){const e=[];return zr(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 vn="v0.22.49-experimental.persisted-object-2.19448798235.1";function wa(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 J{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 J(this.valueType,!1,this.isIndexed,this.config)}optional(){return new J(this.valueType,!1,this.isIndexed,this.config)}unique(){return new J(this.valueType,this.required,this.isIndexed,Object.assign(Object.assign({},this.config),{unique:!0}))}indexed(){return new J(this.valueType,this.required,!0,Object.assign(Object.assign({},this.config),{indexed:!0}))}}class Et{constructor(e,n){this.attrs=e,this.links=n}asType(){return new Et(this.attrs,this.links)}}class At{constructor(e,n,r){this.entities=e,this.links=n,this.rooms=r}withRoomSchema(){return new At(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"],Ta=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=(c,d,f)=>{if(!Br(f,d,a))throw new x(`Invalid value for operator '${c}' on attribute '${r}' in entity '${i}'. Expected ${d}, 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 c of e)u(t,n,c);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)}},Fe=(t,e,n,r,i)=>{const s=Ta(n),o=n.valueType==="json";if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(o)return;const u=t;for(const[c,d]of Object.entries(u))va(c,d,s,e,r,n,`${i}.${c}`)}else if(!Br(t,s,o))throw new x(`Invalid value for attribute '${e}' in entity '${r}'. Expected ${s}, but received: ${typeof t}`,i)},Sa=(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 d=0;d<s.length-1;d++){const f=s[d],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"&&!$e(e))throw new x(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${e}`,i);Fe(e,t,new J("string",!1,!0),n,i);return}const c=u.attrs[a];if(Object.keys(u.links).includes(a)){if(typeof e=="string"&&!$e(e))throw new x(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${e}`,i);Fe(e,t,new J("string",!1,!0),n,i);return}if(!c){const d=Object.keys(u.attrs);throw new x(`Attribute '${a}' does not exist on entity '${o}' in dot notation path '${t}'. Available attributes: ${d.length>0?d.join(", ")+", id":"id"}`,i)}Fe(e,t,c,n,i)},Qr=(t,e,n,r)=>{for(const[i,s]of Object.entries(t)){if(i==="or"||i==="and"){if(Array.isArray(s))for(const c of s)typeof c=="object"&&c!==null&&Qr(c,e,n,`${r}.${i}[${c}]`);continue}if(i==="id"){Fe(s,"id",new J("string",!1,!0),e,`${r}.id`);continue}if(i.includes(".")){Sa(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 c=Object.keys(o.attrs),d=Object.keys(o.links);throw new x(`Attribute or link '${i}' does not exist on entity '${e}'. Available attributes: ${c.length>0?c.join(", "):"none"}. Available links: ${d.length>0?d.join(", "):"none"}`,`${r}.${i}`)}if(a)Fe(s,i,a,e,`${r}.${i}`);else if(u){if(typeof s=="string"&&!$e(s))throw new x(`Invalid value for link '${i}' in entity '${e}'. Expected a UUID, but received: ${s}`,`${r}.${i}`);const c=new J("string",!1,!0);Fe(s,i,c,e,`${r}.${i}`)}}},Oa=(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);Qr(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}.$`);Oa(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)}Yr(n[r],r,e,r,0)}}},Jr=t=>typeof t!="string"?!1:St(t)?!0:$e(t);class ue extends Error{constructor(e){super(e),this.name="TransactionValidationError"}}const Zr=t=>t.length>0?t.join(", "):"none",Ea=(t,e)=>new ue(`Entity '${t}' does not exist in schema. Available entities: ${Zr(e)}`),Xr={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},Aa=(t,e)=>{var n,r;return t==null?!0:(r=(n=Xr[e.valueType])===null||n===void 0?void 0:n.call(Xr,t))!==null&&r!==void 0?r:!1},ei=(t,e)=>{const n=e.entities[t];if(!n)throw Ea(t,Object.keys(e.entities));return n},Sn=(t,e,n)=>{const r=ei(t,n);if(typeof e!="object"||e===null)throw new ue(`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&&!Aa(s,o))throw new ue(`Invalid value for attribute '${i}' in entity '${t}'. Expected ${o.valueType}, but received: ${typeof s}`)}},ti=(t,e,n)=>{const r=ei(t,n);if(typeof e!="object"||e===null)throw new ue(`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 ue(`Link '${i}' does not exist on entity '${t}'. Available links: ${Zr(a)}`)}if(s!=null){if(Array.isArray(s)){for(const a of s)if(!Jr(a))throw new ue(`Invalid entity ID in link '${i}' for entity '${t}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!Jr(s))throw new ue(`Invalid UUID in link '${i}' for entity '${t}'. Expected a UUID, but received: ${s}`)}}},ka={create:Sn,update:Sn,merge:Sn,link:ti,unlink:ti,delete:()=>{}},Ca=(t,e)=>{if(!e)return;const[n,r,i,s]=t;if(!Array.isArray(i)&&!$e(i))throw new ue(`Invalid id for entity '${r}'. Expected a UUID, but received: ${i}`);if(typeof r!="string")throw new ue(`Entity name must be a string, but received: ${typeof r}`);const o=ka[n];o&&s!==void 0&&o(r,s,e)},ja=(t,e)=>{const n=Array.isArray(t)?t:[t];for(const r of n){if(!r||typeof r!="object")throw new ue(`Transaction chunk must be an object, but received: ${typeof r}`);if(!Array.isArray(r.__ops))throw new ue(`Transaction chunk must have __ops array, but received: ${typeof r.__ops}`);for(const i of r.__ops){if(!Array.isArray(i))throw new ue(`Transaction operation must be an array, but received: ${typeof i}`);Ca(i,e)}}};var ni=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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})};let ri=0;class ii{constructor(e){this.type="ws",this.id=`${this.type}_${ri++}`,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}_${ri++}`,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 ni(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 ni(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 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(d){try{c(r.next(d))}catch(f){o(f)}}function u(d){try{c(r.throw(d))}catch(f){o(f)}}function c(d){d.done?s(d.value):i(d.value).then(a,u)}c((r=r.apply(t,e||[])).next())})},Ma=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 we={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},Ia=3e4,Ra=3e4,xa=200,Da={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},On="_instant_oauth_redirect",it="currentUser";function $a({transportType:t,appId:e,apiURI:n,wsURI:r,EventSourceImpl:i}){if(!i)return new ii(`${r}?app_id=${e}`);switch(t){case"ws":return new ii(`${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 Ua(){return typeof window<"u"||typeof chrome<"u"}const si={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function La(t,e){var n;const r=typeof t=="string"?JSON.parse(t):t;if(!((n=r==null?void 0:r.result)===null||n===void 0)&&n.store){const i=r.result.store;r.result.store=_s(Object.assign(Object.assign({},i),{useDateObjects:e}))}return r}function Na(t,e){var n;const r=Object.assign({},e);return!((n=e.result)===null||n===void 0)&&n.store&&(r.result=Object.assign(Object.assign({},e.result),{store:ys(e.result.store)})),r}function Fa(t,e){switch(t){case"pendingMutations":return new Map(typeof e=="string"?JSON.parse(e):e);default:return e}}function Ka(t,e){switch(t){case"pendingMutations":return[...e.entries()];default:return e}}function oi(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 Wa{constructor(e,n=xr,r=Dr,i,s){var o,a,u;if(this._isOnline=!0,this._isShutdown=!1,this.status=we.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._onMergeQuerySub=(c,d,f)=>{const h=d==null?void 0:d.result,p=f==null?void 0:f.result;return h&&!p&&f&&(f.result=h),f||d},this._onMergeKv=(c,d,f)=>{var h,p;switch(c){case"pendingMutations":{const b=(h=d==null?void 0:d.entries())!==null&&h!==void 0?h:[],y=(p=f==null?void 0:f.entries())!==null&&p!==void 0?p:[],g=new Map([...b,...y]);return(d?this._rewriteMutationsSorted(this.attrs,d):[]).forEach(([w,v])=>{var M;!(!((M=f==null?void 0:f.pendingMutations)===null||M===void 0)&&M.has(w))&&!v["tx-id"]&&this._sendMutation(w,v)}),g}default:return d||f}},this.getPreviousResult=c=>{const d=ee(c);return this.dataForQuery(d)},this.notifyOne=c=>{var d,f;const h=(d=this.queryCbs[c])!==null&&d!==void 0?d:[],p=(f=this._dataForQueryCache[c])===null||f===void 0?void 0:f.data,b=this.dataForQuery(c);b&&(bt(b,p)||h.forEach(y=>y.cb(b)))},this.notifyOneQueryOnce=c=>{var d;const f=(d=this.queryOnceDfds[c])!==null&&d!==void 0?d:[],h=this.dataForQuery(c);f.forEach(p=>{this._completeQueryOnce(p.q,c,p.dfd),p.dfd.resolve(h)})},this.notifyQueryError=(c,d)=>{(this.queryCbs[c]||[]).forEach(h=>h.cb({error:d}))},this.pushTx=c=>{this.config.disableValidation||ja(c,this.config.schema);try{const d=na({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},c);return this.pushOps(d)}catch(d){return this.pushOps([],d)}},this.pushOps=(c,d)=>{const f=q(),h=[...this._pendingMutations().values()],p=Math.max(0,...h.map(g=>g.order||0))+1,b={op:"transact","tx-steps":c,created:Date.now(),error:d,order:p};this._updatePendingMutations(g=>{g.set(f,b)});const y=new Fr;return this.mutationDeferredStore.set(f,y),this._sendMutation(f,b),this.notifyAll(),y.promise},this._transportOnOpen=c=>{const d=c.target;if(this._transport!==d){this._log.info("[socket][open]",d.id,"skip; this is no longer the current transport");return}this._log.info("[socket][open]",this._transport.id),this._setStatus(we.OPENED),this.getCurrentUser().then(f=>{var h;this._trySend(q(),{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]",d.id,f)})},this._transportOnMessage=c=>{const d=c.target,f=c.message;if(this._transport!==d){this._log.info("[socket][message]",d.id,f,"skip; this is no longer the current transport");return}!this._wsOk&&d.type==="ws"&&(this._wsOk=!0),this._transportType="ws",this._handleReceive(d.id,c.message)},this._transportOnError=c=>{const d=c.target;if(this._transport!==d){this._log.info("[socket][error]",d.id,"skip; this is no longer the current transport");return}this._log.error("[socket][error]",d.id,c)},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=c=>{const d=c.target;if(this._transport!==d){this._log.info("[socket][close]",d.id,"skip; this is no longer the current transport");return}this._setStatus(we.CLOSED);for(const f of Object.values(this._rooms))f.isConnected=!1;if(this._isShutdown){this._log.info("[socket][close]",d.id,"Reactor has been shut down and will not reconnect");return}this._log.info("[socket][close]",d.id,"schedule reconnect, ms =",this._reconnectTimeoutMs),this._scheduleReconnect()},this._EventSource=s,this.config=Object.assign(Object.assign({},Da),e),this.queryCacheLimit=(o=this.config.queryCacheLimit)!==null&&o!==void 0?o:10,this._pendingTxCleanupTimeout=(a=this.config.pendingTxCleanupTimeout)!==null&&a!==void 0?a:Ra,this._pendingMutationCleanupThreshold=(u=this.config.pendingMutationCleanupThreshold)!==null&&u!==void 0?u:xa,this._log=wa(e.verbose||wn||Ur,()=>this._reactorStats()),this.versions=Object.assign(Object.assign({},i||{}),{"@instantdb/core":vn}),this.config.schema&&(this._linkIndex=qr(this.config.schema)),!!Ua()){if(!e.appId)throw new Error("Instant must be initialized with an appId.");if(!$e(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",c=>L(this,void 0,void 0,function*(){var d;try{if(((d=c.data)===null||d===void 0?void 0:d.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._oauthCallbackResponse=this._oauthLoginInit(),this.getCurrentUser(),r.getIsOnline().then(c=>{this._isOnline=c,this._startSocket(),r.listen(d=>{d!==this._isOnline&&(this._log.info("[network] online =",d),this._isOnline=d,this._isOnline?this._startSocket():(this._log.info("Changing status from",this.status,"to",we.CLOSED),this._setStatus(we.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().size,transportType:this._transportType}}_onQuerySubLoaded(e){this.kv.waitForKeyToLoad("pendingMutations").then(()=>this.notifyOne(e))}_initStorage(e){this.querySubs=new Wr(new e(`instant_${this.config.appId}_5`,"querySubs"),this._onMergeQuerySub,Na,(n,r)=>La(r,this.config.useDateObjects),n=>{var r,i,s,o;return(o=(s=(i=(r=n.result)===null||r===void 0?void 0:r.store)===null||i===void 0?void 0:i.triples)===null||s===void 0?void 0:s.length)!==null&&o!==void 0?o:0},this._log,{gc:{maxAgeMs:1e3*60*60*24*7*52,maxEntries:1e3,maxSize:1e6}}),this.querySubs.onKeyLoaded=n=>this._onQuerySubLoaded(n),this.kv=new Wr(new e(`instant_${this.config.appId}_5`,"kv"),this._onMergeKv,Ka,Fa,()=>0,this._log,{saveThrottleMs:100,idleCallbackMaxWaitMs:100,gc:{maxAgeMs:Number.MAX_SAFE_INTEGER,maxEntries:Number.MAX_SAFE_INTEGER,maxSize:Number.MAX_SAFE_INTEGER}}),this.kv.onKeyLoaded=n=>{n==="pendingMutations"&&this.notifyAll()},this.kv.waitForKeyToLoad("pendingMutations"),this.kv.waitForKeyToLoad(it),this._beforeUnloadCbs.push(()=>{this.kv.flush(),this.querySubs.flush()})}_beforeUnload(){for(const e of this._beforeUnloadCbs)e()}_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=Ma(r,["status"]);i.reject(new nt({body:a,status:o}))}else i.reject(new Le(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:c}=o;this._tryBroadcast(e,u,a,c)}}_handleReceive(e,n){var r,i,s,o,a,u;const c=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(si[n.op]||this._log.info("[receive]",e,n.op,n),n.op){case"init-ok":this._setStatus(we.AUTHENTICATED),this._reconnectTimeoutMs=0,this._setAttrs(n.attrs),this._flushPendingMessages(),this._sessionId=n["session-id"];for(const O of Object.keys(this._rooms)){const Z=(i=(r=this._presence[O])===null||r===void 0?void 0:r.result)===null||i===void 0?void 0:i.user;this._tryJoinRoom(O,Z)}break;case"add-query-exists":this.notifyOneQueryOnce(ee(n.q));break;case"add-query-ok":const{q:d,result:f}=n,h=ee(d);if(!this._hasQueryListeners()&&!this.querySubs.currentValue[h])break;const p=(o=(s=f==null?void 0:f[0])===null||s===void 0?void 0:s.data)===null||o===void 0?void 0:o["page-info"],b=(u=(a=f==null?void 0:f[0])===null||a===void 0?void 0:a.data)===null||u===void 0?void 0:u.aggregate,y=Vr(f),g=on(this.attrs,y,c,this._linkIndex,this.config.useDateObjects);this.querySubs.updateInPlace(O=>(O[h].result={store:g,pageInfo:p,aggregate:b,processedTxId:n["processed-tx-id"]},O)),this._cleanupPendingMutationsQueries(),this.notifyOne(h),this.notifyOneQueryOnce(h),this._cleanupPendingMutationsTimeout();break;case"refresh-ok":const{computations:T,attrs:w}=n,v=n["processed-tx-id"];w&&this._setAttrs(w),this._cleanupPendingMutationsTimeout();const M=this._rewriteMutations(this.attrs,this._pendingMutations(),v);M!==this._pendingMutations()&&this.kv.updateInPlace(O=>{O.pendingMutations=M});const E=oi(M.entries()),N=T.map(O=>{var Z,Oe,be,pe;const Y=O["instaql-query"],z=O["instaql-result"],Me=ee(Y),It=Vr(z),Rt=on(this.attrs,It,c,this._linkIndex,this.config.useDateObjects),xt=this._applyOptimisticUpdates(Rt,E,v),Dt=(Oe=(Z=z==null?void 0:z[0])===null||Z===void 0?void 0:Z.data)===null||Oe===void 0?void 0:Oe["page-info"],$t=(pe=(be=z==null?void 0:z[0])===null||be===void 0?void 0:be.data)===null||pe===void 0?void 0:pe.aggregate;return{hash:Me,store:xt,pageInfo:Dt,aggregate:$t}});N.forEach(({hash:O,store:Z,pageInfo:Oe,aggregate:be})=>{this.querySubs.updateInPlace(pe=>(pe[O].result={store:Z,pageInfo:Oe,aggregate:be,processedTxId:v},pe))}),this._cleanupPendingMutationsQueries(),N.forEach(({hash:O})=>{this.notifyOne(O)});break;case"transact-ok":{const{"client-event-id":O,"tx-id":Z}=n;this._inFlightMutationEventIds.delete(O);const be=this._rewriteMutations(this.attrs,this._pendingMutations()).get(O);if(!be)break;this._updatePendingMutations(Y=>{Y.set(O,Object.assign(Object.assign({},Y.get(O)),{"tx-id":Z,confirmed:Date.now()}))});const pe=be["tx-steps"].filter(([Y,...z])=>Y==="add-attr").map(([Y,z])=>z).concat(Object.values(this.attrs));this._setAttrs(pe),this._finishTransaction("synced",O),this._cleanupPendingMutationsTimeout();break}case"patch-presence":{const O=n["room-id"];this._trySetRoomConnected(O,!0),this._patchPresencePeers(O,n.edits),this._notifyPresenceSubs(O);break}case"refresh-presence":{const O=n["room-id"];this._trySetRoomConnected(O,!0),this._setPresencePeers(O,n.data),this._notifyPresenceSubs(O);break}case"server-broadcast":{const O=n["room-id"],Z=n.topic;this._trySetRoomConnected(O,!0),this._notifyBroadcastSubs(O,Z,n);break}case"join-room-ok":{const O=n["room-id"];if(!this._rooms[O]){this._roomsPendingLeave[O]&&(this._tryLeaveRoom(O),delete this._roomsPendingLeave[O]);break}this._trySetRoomConnected(O,!0),this._flushEnqueuedRoomData(O);break}case"leave-room-ok":{const O=n["room-id"];this._trySetRoomConnected(O,!1);break}case"join-room-error":const W=n["room-id"],_e=this._rooms[W];_e&&(_e.error=n.error),this._notifyPresenceSubs(W);break;case"error":this._handleReceiveError(n);break}}_pendingMutations(){var e;return(e=this.kv.currentValue.pendingMutations)!==null&&e!==void 0?e:new Map}_updatePendingMutations(e){this.kv.updateInPlace(n=>{var r;const i=(r=n.pendingMutations)!==null&&r!==void 0?r:new Map;n.pendingMutations=i,e(i)})}_handleMutationError(e,n,r){var i;const s=(i=this.kv.currentValue.pendingMutations)===null||i===void 0?void 0:i.get(n);if(s&&(e!=="timeout"||!s["tx-id"])){this._updatePendingMutations(a=>(a.delete(n),a)),this._inFlightMutationEventIds.delete(n);const o={message:r.message,hint:r.hint};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(o),this._finishTransaction(e,n,r)}}_handleReceiveError(e){var n,r,i,s,o;console.log("error",e);const a=e["client-event-id"];this._inFlightMutationEventIds.delete(a);const u=this._pendingMutations().get(a),c={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(e.hint&&(c.hint=e.hint),u){this._handleMutationError("error",a,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 h=(i=e["original-event"])===null||i===void 0?void 0:i.q,p=ee(h);this.notifyQueryError(ee(h),c),this.notifyQueryOnceError(h,p,a,c);return}if(((s=e["original-event"])===null||s===void 0?void 0:s.op)==="init"){if(e.type==="record-not-found"&&((o=e.hint)===null||o===void 0?void 0:o["record-type"])==="app-user"){this.changeCurrentUser(null);return}this._setStatus(we.ERRORED,c),this.notifyAll();return}const f=Object.assign({},e);delete f.message,delete f.hint,console.error(e.message,f),e.hint&&console.error(`This error comes with some debugging information. Here it is:
2
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=q();return this.querySubs.updateInPlace(i=>{i[n]=i[n]||{q:e,result:null,eventId:r},i[n].lastAccessed=Date.now()}),this._trySendAuthed(r,{op:"add-query",q:e}),r}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=ee(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 Fr;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=ee(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")),Ia),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))}_hasQueryListeners(e){var n,r;return!!(!((n=this.queryCbs[e])===null||n===void 0)&&n.length||!((r=this.queryOnceDfds[e])===null||r===void 0)&&r.length)}_cleanupQuery(e,n){this._hasQueryListeners(n)||(delete this.queryCbs[n],delete this.queryOnceDfds[n],this.querySubs.unloadKey(n),this._trySendAuthed(q(),{op:"remove-query",q:e}))}_rewriteMutations(e,n,r){if(!e)return n;if(!n)return new Map;const i=d=>{const[f,h,p]=d["forward-identity"];return G(e,h,p)},s=d=>{const[f,h,p]=d["forward-identity"];return Ce(e,h,p)},o={attrIdMap:{},refSwapAttrIds:new Set};let a=!1;const u=(d,f)=>{const h=[];for(const p of d){const[b]=p;if(b==="add-attr"){const[g,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 v=s(T);if(v){o.attrIdMap[T.id]=v.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?Io(o,p):p;h.push(y)}return a?h:d},c=new Map;for(const[d,f]of n.entries())c.set(d,Object.assign(Object.assign({},f),{"tx-steps":u(f["tx-steps"],f["tx-id"])}));return a?c:n}_rewriteMutationsSorted(e,n){return oi(this._rewriteMutations(e,n).entries())}optimisticAttrs(){var e;const n=[...this._pendingMutations().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 c=Object.assign(Object.assign({},this.attrs[u.id]),u);i.push(c)}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.kv.currentValue.pendingMutations)return;const r=this.querySubs.version(),i=this.querySubs.currentValue,s=this.kv.version(),o=this._pendingMutations(),{q:a,result:u}=i[e]||{};if(!u)return;const c=this._dataForQueryCache[e];if(c&&r===c.querySubVersion&&s===c.pendingMutationsVersion)return c.data;const{store:d,pageInfo:f,aggregate:h,processedTxId:p}=u,b=this._rewriteMutationsSorted(d.attrs,o),y=this._applyOptimisticUpdates(d,b,p),g=Eo({store:y,pageInfo:f,aggregate:h},a);return this._dataForQueryCache[e]={querySubVersion:r,pendingMutationsVersion:s,data:g},g}_applyOptimisticUpdates(e,n,r){for(const[i,s]of n)(!s["tx-id"]||r&&s["tx-id"]>r)&&(e=Ps(e,s["tx-steps"]));return e}notifyAll(){Object.keys(this.queryCbs).forEach(e=>{this.notifyOne(e)})}loadedNotifyAll(){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!==we.AUTHENTICATED){this._finishTransaction("enqueued",e);return}const r=Math.max(6e3,Math.min(this._inFlightMutationEventIds.size+1,this._pendingMutations().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()).forEach(([i,s])=>{s["tx-id"]||this._sendMutation(i,s)})}_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._updatePendingMutations(n=>{for(const[r,i]of Array.from(n.entries()))i["tx-id"]&&i["tx-id"]<=e&&n.delete(r)})}_cleanupPendingMutationsTimeout(){if(this._pendingMutations().size<this._pendingMutationCleanupThreshold)return;const e=Date.now();this._updatePendingMutations(n=>{for(const[r,i]of Array.from(n.entries()))i.confirmed&&i.confirmed+this._pendingTxCleanupTimeout<e&&n.delete(r)})}_trySendAuthed(...e){this.status===we.AUTHENTICATED&&this._trySend(...e)}_trySend(e,n,r){if(this._transport.isOpen()){switch(si[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=$a({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}`;if(this.kv.currentValue[n])return this.kv.currentValue[n];const r=yield this.kv.waitForKeyToLoad(n);if(r)return r;const i=q();return this.kv.updateInPlace(s=>{s[n]||(s[n]=i)}),yield this.kv.waitForKeyToLoad(n)})}_replaceUrlAfterOAuth(){if(typeof URL>"u")return;const e=new URL(window.location.href);if(e.searchParams.get(On)){const n=e.toString();e.searchParams.delete(On),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(On))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(),c=(u==null?void 0:u.type)==="guest",{user:d}=yield $r({apiURI:this.config.apiURI,appId:this.config.appId,code:a,refreshToken:c?u.refresh_token:void 0});return this.setCurrentUser(d),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||bt(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 Le("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*(){this.kv.updateInPlace(n=>{n[it]=e}),yield this.kv.waitForKeyToLoad(it)})}getCurrentUserCached(){return this._currentUserCached}_getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this.kv.waitForKeyToLoad(it);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.kv.waitForKeyToLoad(it);return typeof e=="string"?JSON.parse(e)!=null:e!=null})}changeCurrentUser(e){return L(this,void 0,void 0,function*(){var n;const{user:r}=yield this.getCurrentUser();if(!bt(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.updateInPlace(r=>{Object.keys(r).forEach(i=>{delete r[i].result})}),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 $r({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(q(),{op:"set-presence","room-id":e,data:n})}_tryJoinRoom(e,n){this._trySendAuthed(q(),{op:"join-room","room-id":e,data:n}),delete this._roomsPendingLeave[e]}_tryLeaveRoom(e){this._trySendAuthed(q(),{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,c;this._presence[n].handlers=(c=(u=(a=this._presence[n])===null||a===void 0?void 0:a.handlers)===null||u===void 0?void 0:u.filter(d=>d!==o))!==null&&c!==void 0?c:[],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&&!ma(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(([c,d])=>[c,{data:d}]));(s=this._presence[e])===null||s===void 0||s.result;const u=_t(a,c=>{for(let[d,f,h]of n)switch(f){case"+":Hi(c,d,h);break;case"r":ur(c,d,h);break;case"-":cr(c,d);break}delete c[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=_t(this._presence,s=>{ur(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(q(),{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,c,d,f,h,p;const b=(u=r.data)===null||u===void 0?void 0:u.data,y=r.data["peer-id"]===this._sessionId?(d=(c=this._presence[e])===null||c===void 0?void 0:c.result)===null||d===void 0?void 0:d.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 _a(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 ba({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}}function za(t,e){return new At(ai(t,e),e,void 0)}function Va(t){return new Et(t,{})}function qa(){return new J("string",!0,!1)}function Ga(){return new J("number",!0,!1)}function Ba(){return new J("boolean",!0,!1)}function Qa(){return new J("date",!0,!1)}function Ya(){return new J("json",!0,!1)}function Ha(){return new J("json",!0,!1)}function ai(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,c])=>[u,new Et(c.attrs,Object.assign(Object.assign({},o.fwd[u]),o.rev[u]))]))}function Ja({entities:t,links:e,rooms:n}){const r=e??{},i=n??{};return new At(ai(t,r),r,i)}const Za={graph:za,schema:Ja,entity:Va,string:qa,number:Ga,boolean:Ba,date:Qa,json:Ya,any:Ha};let kt;function Xa(t,e){kt==null||kt.dispose();const n=su(e),r=nu(e,a),i=tu(eu(t));function s(d){var f;d.source===i.element.contentWindow&&((f=d.data)===null||f===void 0?void 0:f.type)==="close"&&n.isVisible()&&a()}function o(d){const f=d.shiftKey&&d.ctrlKey&&d.key==="0",h=d.key==="Escape"||d.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 c(){document.body.appendChild(n.element),document.body.appendChild(r.element),addEventListener("keydown",o),addEventListener("message",s),kt={dispose:u}}return c()}function eu(t){return`${wn||Lr?"http://localhost:3000":"https://instantdb.com"}/_devtool?appId=${t}`}function tu(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 nu(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"/>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instantdb/react",
3
- "version": "v0.22.49-experimental.persisted-object-2.19448682144.1",
3
+ "version": "v0.22.49-experimental.persisted-object-2.19448798235.1",
4
4
  "description": "Instant DB for React",
5
5
  "homepage": "https://github.com/instantdb/instant/tree/main/client/packages/react",
6
6
  "repository": {
@@ -54,9 +54,9 @@
54
54
  },
55
55
  "dependencies": {
56
56
  "eventsource": "^4.0.0",
57
- "@instantdb/core": "v0.22.49-experimental.persisted-object-2.19448682144.1",
58
- "@instantdb/react-common": "v0.22.49-experimental.persisted-object-2.19448682144.1",
59
- "@instantdb/version": "v0.22.49-experimental.persisted-object-2.19448682144.1"
57
+ "@instantdb/core": "v0.22.49-experimental.persisted-object-2.19448798235.1",
58
+ "@instantdb/react-common": "v0.22.49-experimental.persisted-object-2.19448798235.1",
59
+ "@instantdb/version": "v0.22.49-experimental.persisted-object-2.19448798235.1"
60
60
  },
61
61
  "scripts": {
62
62
  "test": "vitest",