@instantdb/core
Version:
Instant's core local abstraction
1 lines • 148 kB
JavaScript
(function(A,C){typeof exports=="object"&&typeof module<"u"?C(exports):typeof define=="function"&&define.amd?define(["exports"],C):(A=typeof globalThis<"u"?globalThis:A||self,C(A.instant={}))})(this,function(A){"use strict";var ra=Object.defineProperty;var sa=(A,C,M)=>C in A?ra(A,C,{enumerable:!0,configurable:!0,writable:!0,value:M}):A[C]=M;var h=(A,C,M)=>sa(A,typeof C!="symbol"?C+"":C,M);function C(n){if(typeof n=="number")return(Math.abs(n*2654435761)>>>0).toString(16);if(typeof n=="boolean")return n?"1":"0";if(n===null)return"null";if(n===void 0)return"undefined";if(typeof n=="string"){let e=2166136261;for(let t=0;t<n.length;t++)e^=n.charCodeAt(t),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24),e=e>>>0;return e.toString(16)}if(Array.isArray(n)){let e=2166136261;for(let t=0;t<n.length;t++){e^=(t+1)*2654435761;const r=C(n[t]);for(let s=0;s<r.length;s++)e^=r.charCodeAt(s),e*=16777619,e=e>>>0}return e.toString(16)}if(typeof n=="object"){let e=2166136261;const t=Object.keys(n).sort();for(let r=0;r<t.length;r++){const s=t[r],i=C(s);e^=parseInt(i,16),e*=16777619,e=e>>>0;const o=C(n[s]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return C(String(n))}const M={Remove:"remove",Replace:"replace",Add:"add"},Kt=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),gr=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),$e=Symbol.iterator,B={mutable:"mutable",immutable:"immutable"},Ye={};function Te(n,e){return n instanceof Map?n.has(e):Object.prototype.hasOwnProperty.call(n,e)}function zt(n,e){if(e in n){let t=Reflect.getPrototypeOf(n);for(;t;){const r=Reflect.getOwnPropertyDescriptor(t,e);if(r)return r;t=Reflect.getPrototypeOf(t)}}}function Ze(n){return Object.getPrototypeOf(n)===Set.prototype}function Xe(n){return Object.getPrototypeOf(n)===Map.prototype}function G(n){var e;return(e=n.copy)!==null&&e!==void 0?e:n.original}function ue(n){return!!I(n)}function I(n){return typeof n!="object"?null:n==null?void 0:n[Kt]}function et(n){var e;const t=I(n);return t?(e=t.copy)!==null&&e!==void 0?e:t.original:n}function J(n,e){if(!n||typeof n!="object")return!1;let t;return Object.getPrototypeOf(n)===Object.prototype||Array.isArray(n)||n instanceof Map||n instanceof Set||!!(e!=null&&e.mark)&&((t=e.mark(n,B))===B.immutable||typeof t=="function")}function Wt(n,e=[]){if(Object.hasOwnProperty.call(n,"key")){const t=n.parent.copy,r=I(re(t,n.key));if(r!==null&&(r==null?void 0:r.original)!==n.original)return null;const s=n.parent.type===3,i=s?Array.from(n.parent.setMap.keys()).indexOf(n.key):n.key;if(!(s&&t.size>i||Te(t,i)))return null;e.push(i)}if(n.parent)return Wt(n.parent,e);e.reverse();try{mr(n.copy,e)}catch{return null}return e}function le(n){return Array.isArray(n)?1:n instanceof Map?2:n instanceof Set?3:0}function re(n,e){return le(n)===2?n.get(e):n[e]}function Se(n,e,t){le(n)===2?n.set(e,t):n[e]=t}function tt(n,e){const t=I(n);return(t?G(t):n)[e]}function se(n,e){return n===e?n!==0||1/n===1/e:n!==n&&e!==e}function nt(n){if(n)for(;n.finalities.revoke.length>0;)n.finalities.revoke.pop()()}function de(n,e){return e?n:[""].concat(n).map(t=>{const r=`${t}`;return r.indexOf("/")===-1&&r.indexOf("~")===-1?r:r.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")}function mr(n,e){for(let t=0;t<e.length-1;t+=1){const r=e[t];if(n=re(le(n)===3?Array.from(n):n,r),typeof n!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return n}function _r(n){const e=Object.create(Object.getPrototypeOf(n));return Reflect.ownKeys(n).forEach(t=>{let r=Reflect.getOwnPropertyDescriptor(n,t);if(r.enumerable&&r.configurable&&r.writable){e[t]=n[t];return}r.writable||(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(r={configurable:!0,writable:!0,enumerable:r.enumerable,value:n[t]}),Reflect.defineProperty(e,t,r)}),e}const wr=Object.prototype.propertyIsEnumerable;function Vt(n,e){let t;if(Array.isArray(n))return Array.prototype.concat.call(n);if(n instanceof Set){if(!Ze(n)){const r=Object.getPrototypeOf(n).constructor;return new r(n.values())}return Set.prototype.difference?Set.prototype.difference.call(n,new Set):new Set(n.values())}else if(n instanceof Map){if(!Xe(n)){const r=Object.getPrototypeOf(n).constructor;return new r(n)}return new Map(n)}else if(e!=null&&e.mark&&(t=e.mark(n,B),t!==void 0)&&t!==B.mutable){if(t===B.immutable)return _r(n);if(typeof t=="function"){if(e.enablePatches||e.enableAutoFreeze)throw new Error("You can't use mark and patches or auto freeze together.");return t()}throw new Error(`Unsupported mark result: ${t}`)}else if(typeof n=="object"&&Object.getPrototypeOf(n)===Object.prototype){const r={};return Object.keys(n).forEach(s=>{r[s]=n[s]}),Object.getOwnPropertySymbols(n).forEach(s=>{wr.call(n,s)&&(r[s]=n[s])}),r}else throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function F(n){n.copy||(n.copy=Vt(n.original,n.options))}function Ae(n){if(!J(n))return et(n);if(Array.isArray(n))return n.map(Ae);if(n instanceof Map){const t=Array.from(n.entries()).map(([r,s])=>[r,Ae(s)]);if(!Xe(n)){const r=Object.getPrototypeOf(n).constructor;return new r(t)}return new Map(t)}if(n instanceof Set){const t=Array.from(n).map(Ae);if(!Ze(n)){const r=Object.getPrototypeOf(n).constructor;return new r(t)}return new Set(t)}const e=Object.create(Object.getPrototypeOf(n));for(const t in n)e[t]=Ae(n[t]);return e}function Re(n){return ue(n)?Ae(n):n}function te(n){var e;n.assignedMap=(e=n.assignedMap)!==null&&e!==void 0?e:new Map,n.operated||(n.operated=!0,n.parent&&te(n.parent))}function Qt(){throw new Error("Cannot modify frozen object")}function pe(n,e,t,r,s){{t=t??new WeakMap,r=r??[],s=s??[];const o=t.has(n)?t.get(n):n;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: ~/${s.slice(0,a).map((c,u)=>{if(typeof c=="symbol")return`[${c.toString()}]`;const l=r[u];return typeof c=="object"&&(l instanceof Map||l instanceof Set)?Array.from(l.keys()).indexOf(c):c}).join("/")}`);r.push(o),s.push(e)}else r.push(o)}if(Object.isFrozen(n)||ue(n)){r.pop(),s.pop();return}switch(le(n)){case 2:for(const[a,c]of n)pe(a,a,t,r,s),pe(c,a,t,r,s);n.set=n.clear=n.delete=Qt;break;case 3:for(const a of n)pe(a,a,t,r,s);n.add=n.clear=n.delete=Qt;break;case 1:Object.freeze(n);let o=0;for(const a of n)pe(a,o,t,r,s),o+=1;break;default:Object.freeze(n),Object.keys(n).forEach(a=>{const c=n[a];pe(c,a,t,r,s)})}r.pop(),s.pop()}function rt(n,e){const t=le(n);if(t===0)Reflect.ownKeys(n).forEach(r=>{e(r,n[r],n)});else if(t===1){let r=0;for(const s of n)e(r,s,n),r+=1}else n.forEach((r,s)=>e(s,r,n))}function Bt(n,e,t){if(ue(n)||!J(n,t)||e.has(n)||Object.isFrozen(n))return;const r=n instanceof Set,s=r?new Map:void 0;if(e.add(n),rt(n,(i,o)=>{var a;if(ue(o)){const c=I(o);F(c);const u=!((a=c.assignedMap)===null||a===void 0)&&a.size||c.operated?c.copy:c.original;Se(r?s:n,i,u)}else Bt(o,e,t)}),s){const i=n,o=Array.from(i);i.clear(),o.forEach(a=>{i.add(s.has(a)?s.get(a):a)})}}function Tr(n,e){const t=n.type===3?n.setMap:n.copy;n.finalities.revoke.length>1&&n.assignedMap.get(e)&&t&&Bt(re(t,e),n.finalities.handledSet,n.options)}function st(n){n.type===3&&n.copy&&(n.copy.clear(),n.setMap.forEach(e=>{n.copy.add(et(e))}))}function it(n,e,t,r){if(n.operated&&n.assignedMap&&n.assignedMap.size>0&&!n.finalized){if(t&&r){const i=Wt(n);i&&e(n,i,t,r)}n.finalized=!0}}function ot(n,e,t,r){const s=I(t);s&&(s.callbacks||(s.callbacks=[]),s.callbacks.push((i,o)=>{var a;const c=n.type===3?n.setMap:n.copy;if(se(re(c,e),t)){let u=s.original;s.copy&&(u=s.copy),st(n),it(n,r,i,o),n.options.enableAutoFreeze&&(n.options.updatedValues=(a=n.options.updatedValues)!==null&&a!==void 0?a:new WeakMap,n.options.updatedValues.set(u,s.original)),Se(c,e,u)}}),n.options.enableAutoFreeze&&s.finalities!==n.finalities&&(n.options.enableAutoFreeze=!1)),J(t,n.options)&&n.finalities.draft.push(()=>{const i=n.type===3?n.setMap:n.copy;se(re(i,e),t)&&Tr(n,e)})}function Sr(n,e,t,r,s){let{original:i,assignedMap:o,options:a}=n,c=n.copy;c.length<i.length&&([i,c]=[c,i],[t,r]=[r,t]);for(let u=0;u<i.length;u+=1)if(o.get(u.toString())&&c[u]!==i[u]){const l=e.concat([u]),d=de(l,s);t.push({op:M.Replace,path:d,value:Re(c[u])}),r.push({op:M.Replace,path:d,value:Re(i[u])})}for(let u=i.length;u<c.length;u+=1){const l=e.concat([u]),d=de(l,s);t.push({op:M.Add,path:d,value:Re(c[u])})}if(i.length<c.length){const{arrayLengthAssignment:u=!0}=a.enablePatches;if(u){const l=e.concat(["length"]),d=de(l,s);r.push({op:M.Replace,path:d,value:i.length})}else for(let l=c.length;i.length<l;l-=1){const d=e.concat([l-1]),f=de(d,s);r.push({op:M.Remove,path:f})}}}function Ar({original:n,copy:e,assignedMap:t},r,s,i,o){t.forEach((a,c)=>{const u=re(n,c),l=Re(re(e,c)),d=a?Te(n,c)?M.Replace:M.Add:M.Remove;if(se(u,l)&&d===M.Replace)return;const f=r.concat(c),p=de(f,o);s.push(d===M.Remove?{op:d,path:p}:{op:d,path:p,value:l}),i.push(d===M.Add?{op:M.Remove,path:p}:d===M.Remove?{op:M.Add,path:p,value:u}:{op:M.Replace,path:p,value:u})})}function vr({original:n,copy:e},t,r,s,i){let o=0;n.forEach(a=>{if(!e.has(a)){const c=t.concat([o]),u=de(c,i);r.push({op:M.Remove,path:u,value:a}),s.unshift({op:M.Add,path:u,value:a})}o+=1}),o=0,e.forEach(a=>{if(!n.has(a)){const c=t.concat([o]),u=de(c,i);r.push({op:M.Add,path:u,value:a}),s.unshift({op:M.Remove,path:u,value:a})}o+=1})}function ve(n,e,t,r){const{pathAsArray:s=!0}=n.options.enablePatches;switch(n.type){case 0:case 2:return Ar(n,e,t,r,s);case 1:return Sr(n,e,t,r,s);case 3:return vr(n,e,t,r,s)}}const xe=(n,e,t=!1)=>{if(typeof n=="object"&&n!==null&&(!J(n,e)||t))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},at={get size(){return G(I(this)).size},has(n){return G(I(this)).has(n)},set(n,e){const t=I(this),r=G(t);return(!r.has(n)||!se(r.get(n),e))&&(F(t),te(t),t.assignedMap.set(n,!0),t.copy.set(n,e),ot(t,n,e,ve)),this},delete(n){if(!this.has(n))return!1;const e=I(this);return F(e),te(e),e.original.has(n)?e.assignedMap.set(n,!1):e.assignedMap.delete(n),e.copy.delete(n),!0},clear(){const n=I(this);if(this.size){F(n),te(n),n.assignedMap=new Map;for(const[e]of n.original)n.assignedMap.set(e,!1);n.copy.clear()}},forEach(n,e){const t=I(this);G(t).forEach((r,s)=>{n.call(e,this.get(s),s,this)})},get(n){var e,t;const r=I(this),s=G(r).get(n),i=((t=(e=r.options).mark)===null||t===void 0?void 0:t.call(e,s,B))===B.mutable;if(r.options.strict&&xe(s,r.options,i),i||r.finalized||!J(s,r.options)||s!==r.original.get(n))return s;const o=Ye.createDraft({original:s,parentDraft:r,key:n,finalities:r.finalities,options:r.options});return F(r),r.copy.set(n,o),o},keys(){return G(I(this)).keys()},values(){const n=this.keys();return{[$e]:()=>this.values(),next:()=>{const e=n.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const n=this.keys();return{[$e]:()=>this.entries(),next:()=>{const e=n.next();if(e.done)return e;const t=this.get(e.value);return{done:!1,value:[e.value,t]}}}},[$e](){return this.entries()}},kr=Reflect.ownKeys(at),Gt=(n,e,{isValuesIterator:t})=>()=>{var r,s;const i=e.next();if(i.done)return i;const o=i.value;let a=n.setMap.get(o);const c=I(a),u=((s=(r=n.options).mark)===null||s===void 0?void 0:s.call(r,a,B))===B.mutable;if(n.options.strict&&xe(o,n.options,u),!u&&!c&&J(o,n.options)&&!n.finalized&&n.original.has(o)){const l=Ye.createDraft({original:o,parentDraft:n,key:o,finalities:n.finalities,options:n.options});n.setMap.set(o,l),a=l}else c&&(a=c.proxy);return{done:!1,value:t?a:[a,a]}},Ue={get size(){return I(this).setMap.size},has(n){const e=I(this);if(e.setMap.has(n))return!0;F(e);const t=I(n);return!!(t&&e.setMap.has(t.original))},add(n){const e=I(this);return this.has(n)||(F(e),te(e),e.assignedMap.set(n,!0),e.setMap.set(n,n),ot(e,n,n,ve)),this},delete(n){if(!this.has(n))return!1;const e=I(this);F(e),te(e);const t=I(n);return t&&e.setMap.has(t.original)?(e.assignedMap.set(t.original,!1),e.setMap.delete(t.original)):(!t&&e.setMap.has(n)?e.assignedMap.set(n,!1):e.assignedMap.delete(n),e.setMap.delete(n))},clear(){if(!this.size)return;const n=I(this);F(n),te(n);for(const e of n.original)n.assignedMap.set(e,!1);n.setMap.clear()},values(){const n=I(this);F(n);const e=n.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:Gt(n,e,{isValuesIterator:!0})}},entries(){const n=I(this);F(n);const e=n.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:Gt(n,e,{isValuesIterator:!1})}},keys(){return this.values()},[$e](){return this.values()},forEach(n,e){const t=this.values();let r=t.next();for(;!r.done;)n.call(e,r.value,r.value,this),r=t.next()}};Set.prototype.difference&&Object.assign(Ue,{intersection(n){return Set.prototype.intersection.call(new Set(this.values()),n)},union(n){return Set.prototype.union.call(new Set(this.values()),n)},difference(n){return Set.prototype.difference.call(new Set(this.values()),n)},symmetricDifference(n){return Set.prototype.symmetricDifference.call(new Set(this.values()),n)},isSubsetOf(n){return Set.prototype.isSubsetOf.call(new Set(this.values()),n)},isSupersetOf(n){return Set.prototype.isSupersetOf.call(new Set(this.values()),n)},isDisjointFrom(n){return Set.prototype.isDisjointFrom.call(new Set(this.values()),n)}});const Or=Reflect.ownKeys(Ue),Ht=new WeakSet,Jt={get(n,e,t){var r,s;const i=(r=n.copy)===null||r===void 0?void 0:r[e];if(i&&Ht.has(i))return i;if(e===Kt)return n;let o;if(n.options.mark){const u=e==="size"&&(n.original instanceof Map||n.original instanceof Set)?Reflect.get(n.original,e):Reflect.get(n.original,e,t);if(o=n.options.mark(u,B),o===B.mutable)return n.options.strict&&xe(u,n.options,!0),u}const a=G(n);if(a instanceof Map&&kr.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(at,"size").get.call(n.proxy);const u=at[e];if(u)return u.bind(n.proxy)}if(a instanceof Set&&Or.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Ue,"size").get.call(n.proxy);const u=Ue[e];if(u)return u.bind(n.proxy)}if(!Te(a,e)){const u=zt(a,e);return u?"value"in u?u.value:(s=u.get)===null||s===void 0?void 0:s.call(n.proxy):void 0}const c=a[e];if(n.options.strict&&xe(c,n.options),n.finalized||!J(c,n.options))return c;if(c===tt(n.original,e)){if(F(n),n.copy[e]=ct({original:n.original[e],parentDraft:n,key:n.type===1?Number(e):e,finalities:n.finalities,options:n.options}),typeof o=="function"){const u=I(n.copy[e]);return F(u),te(u),u.copy}return n.copy[e]}return c},set(n,e,t){var r;if(n.type===3||n.type===2)throw new Error("Map/Set draft does not support any property assignment.");let s;if(n.type===1&&e!=="length"&&!(Number.isInteger(s=Number(e))&&s>=0&&(e===0||s===0||String(s)===String(e))))throw new Error("Only supports setting array indices and the 'length' property.");const i=zt(G(n),e);if(i!=null&&i.set)return i.set.call(n.proxy,t),!0;const o=tt(G(n),e),a=I(o);return a&&se(a.original,t)?(n.copy[e]=t,n.assignedMap=(r=n.assignedMap)!==null&&r!==void 0?r:new Map,n.assignedMap.set(e,!1),!0):(se(t,o)&&(t!==void 0||Te(n.original,e))||(F(n),te(n),Te(n.original,e)&&se(t,n.original[e])?n.assignedMap.delete(e):n.assignedMap.set(e,!0),n.copy[e]=t,ot(n,e,t,ve)),!0)},has(n,e){return e in G(n)},ownKeys(n){return Reflect.ownKeys(G(n))},getOwnPropertyDescriptor(n,e){const t=G(n),r=Reflect.getOwnPropertyDescriptor(t,e);return r&&{writable:!0,configurable:n.type!==1||e!=="length",enumerable:r.enumerable,value:t[e]}},getPrototypeOf(n){return Reflect.getPrototypeOf(n.original)},setPrototypeOf(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty(n,e){var t;return n.type===1?Jt.set.call(this,n,e,void 0,n.proxy):(tt(n.original,e)!==void 0||e in n.original?(F(n),te(n),n.assignedMap.set(e,!1)):(n.assignedMap=(t=n.assignedMap)!==null&&t!==void 0?t:new Map,n.assignedMap.delete(e)),n.copy&&delete n.copy[e],!0)}};function ct(n){const{original:e,parentDraft:t,key:r,finalities:s,options:i}=n,o=le(e),a={type:o,finalized:!1,parent:t,original:e,copy:null,proxy:null,finalities:s,options:i,setMap:o===3?new Map(e.entries()):void 0};(r||"key"in n)&&(a.key=r);const{proxy:c,revoke:u}=Proxy.revocable(o===1?Object.assign([],a):a,Jt);if(s.revoke.push(u),Ht.add(c),a.proxy=c,t){const l=t;l.finalities.draft.push((d,f)=>{var p,y;const g=I(c);let m=l.type===3?l.setMap:l.copy;const w=re(m,r),b=I(w);if(b){let _=b.original;b.operated&&(_=et(w)),st(b),it(b,ve,d,f),l.options.enableAutoFreeze&&(l.options.updatedValues=(p=l.options.updatedValues)!==null&&p!==void 0?p:new WeakMap,l.options.updatedValues.set(_,b.original)),Se(m,r,_)}(y=g.callbacks)===null||y===void 0||y.forEach(_=>{_(d,f)})})}else{const l=I(c);l.finalities.draft.push((d,f)=>{st(l),it(l,ve,d,f)})}return c}Ye.createDraft=ct;function Ir(n,e,t,r,s){var i;const o=I(n),a=(i=o==null?void 0:o.original)!==null&&i!==void 0?i:n,c=!!e.length;if(o!=null&&o.operated)for(;o.finalities.draft.length>0;)o.finalities.draft.pop()(t,r);const u=c?e[0]:o?o.operated?o.copy:o.original:n;return o&&nt(o),s&&pe(u,u,o==null?void 0:o.options.updatedValues),[u,t&&c?[{op:M.Replace,path:[],value:e[0]}]:t,r&&c?[{op:M.Replace,path:[],value:a}]:r]}function Er(n,e){var t;const r={draft:[],revoke:[],handledSet:new WeakSet};let s,i;e.enablePatches&&(s=[],i=[]);const a=((t=e.mark)===null||t===void 0?void 0:t.call(e,n,B))===B.mutable||!J(n,e)?n:ct({original:n,parentDraft:null,finalities:r,options:e});return[a,(c=[])=>{const[u,l,d]=Ir(a,c,s,i,e.enableAutoFreeze);return e.enablePatches?[u,l,d]:u}]}function ut(n){const{rootDraft:e,value:t,useRawReturn:r=!1,isRoot:s=!0}=n;rt(t,(i,o,a)=>{const c=I(o);if(c&&e&&c.finalities===e.finalities){n.isContainDraft=!0;const u=c.original;if(a instanceof Set){const l=Array.from(a);a.clear(),l.forEach(d=>a.add(i===d?u:d))}else Se(a,i,u)}else typeof o=="object"&&o!==null&&(n.value=o,n.isRoot=!1,ut(n))}),s&&(n.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 Yt(n){var e;const t=I(n);if(!J(n,t==null?void 0:t.options))return n;const r=le(n);if(t&&!t.operated)return t.original;let s;function i(){s=r===2?Xe(n)?new Map(n):new(Object.getPrototypeOf(n)).constructor(n):r===3?Array.from(t.setMap.values()):Vt(n,t==null?void 0:t.options)}if(t){t.finalized=!0;try{i()}finally{t.finalized=!1}}else s=n;if(rt(s,(o,a)=>{if(t&&se(re(t.original,o),a))return;const c=Yt(a);c!==a&&(s===n&&i(),Se(s,o,c))}),r===3){const o=(e=t==null?void 0:t.original)!==null&&e!==void 0?e:s;return Ze(o)?new Set(s):new(Object.getPrototypeOf(o)).constructor(s)}return s}function Zt(n){if(!ue(n))throw new Error(`current() is only used for Draft, parameter: ${n}`);return Yt(n)}const Le=(n=>function e(t,r,s){var i,o,a;if(typeof t=="function"&&typeof r!="function")return function(T,...S){return e(T,v=>t.call(this,v,...S),r)};const c=t,u=r;let l=s;if(typeof r!="function"&&(l=r),l!==void 0&&Object.prototype.toString.call(l)!=="[object Object]")throw new Error(`Invalid options: ${l}, 'options' should be an object.`);l=Object.assign(Object.assign({},n),l);const d=ue(c)?Zt(c):c,f=Array.isArray(l.mark)?(T,S)=>{for(const v of l.mark){if(typeof v!="function")throw new Error(`Invalid mark: ${v}, 'mark' should be a function.`);const D=v(T,S);if(D)return D}}:l.mark,p=(i=l.enablePatches)!==null&&i!==void 0?i:!1,y=(o=l.strict)!==null&&o!==void 0?o:!1,m={enableAutoFreeze:(a=l.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:f,strict:y,enablePatches:p};if(!J(d,m)&&typeof d=="object"&&d!==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[w,b]=Er(d,m);if(typeof r!="function"){if(!J(d,m))throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");return[w,b]}let _;try{_=u(w)}catch(T){throw nt(I(w)),T}const k=T=>{const S=I(w);if(!ue(T)){if(T!==void 0&&!se(T,w)&&(S!=null&&S.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 D=T==null?void 0:T[gr];if(D){const U=D[0];return m.strict&&typeof T=="object"&&T!==null&&ut({rootDraft:S,value:T,useRawReturn:!0}),b([U])}if(T!==void 0)return typeof T=="object"&&T!==null&&ut({rootDraft:S,value:T}),b([T])}if(T===w||T===void 0)return b([]);const v=I(T);if(m===v.options){if(v.operated)throw new Error("Cannot return a modified child draft.");return b([Zt(T)])}return b([T])};return _ instanceof Promise?_.then(k,T=>{throw nt(I(w)),T}):k(_)})();Object.prototype.constructor.toString();function Xt(n,e){const t=Object.keys(n),r=Object.keys(e);return t.length===r.length&&Object.keys(n).every(s=>e.hasOwnProperty(s))}function en(n,e){return Object.keys(n).length===Object.keys(e).length&&Object.keys(n).every(t=>e.hasOwnProperty(t)&&n[t]===e[t])}function Fe(n,e){return typeof n!="object"||typeof e!="object"||n===null||e===null?n===e:Xt(n,e)?Object.keys(n).every(t=>Fe(n[t],e[t])):!1}function lt(n){if(!ke(n))return n;const e={};for(const[t,r]of Object.entries(n))r!==void 0&&(e[t]=r);return e}function tn(n,e){if(!ke(n)||!ke(e))return e;const t={...n};for(const r of Object.keys(e)){if(e[r]===void 0)continue;if(e[r]===null){delete t[r];continue}const s=ke(n[r])&&ke(e[r]);t[r]=s?tn(n[r],e[r]):e[r]}return t}function ke(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function Cr(n,e,t){if(!n||e.length===0)return;let r=n||{};for(let i=0;i<e.length-1;i++){const o=e[i];(!(o in r)||typeof r[o]!="object")&&(r[o]=typeof e[i+1]=="number"?[]:{}),r=r[o]}const s=e[e.length-1];Array.isArray(r)&&typeof s=="number"?r.splice(s,0,t):r[s]=t}function nn(n,e,t){if(!n||e.length===0)return;let r=n||{};for(let s=0;s<e.length-1;s++){const i=e[s];(!(i in r)||typeof r[i]!="object")&&(r[i]=typeof e[s+1]=="number"?[]:{}),r=r[i]}r[e[e.length-1]]=t}function rn(n,e){if(!n||e.length===0)return;const[t,...r]=e;if(t in n){if(r.length===0){Array.isArray(n)?n.splice(t,1):delete n[t];return}rn(n[t],r),Mr(n[t])&&delete n[t]}}function Mr(n){return n&&Object.keys(n).length===0}const sn=/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$/,Pr={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 jr(n){return new Date(n)}function Dr(n){return new Date(n+"Z")}const $r=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function Rr(n){const e=n.match($r);if(!e)return null;const[t,r,s,i]=e;return r<=0||s<=0||i<=0?null:r>999?new Date(Date.UTC(r,s-1,i,0,0,0,0)):new Date(Date.UTC(i,r-1,s,0,0,0,0))}function xr(n){const[e,t]=n.split(" ");return new Date(e+"T"+t+"Z")}function Ur(n){const[e,t]=n.split(" ");return new Date(e+"T"+t+"Z")}function Lr(n){return new Date(n)}function Fr(n){const e=/^(\w{3}) (\w{3}) (\d{2}) (\d{4})$/;if(!n.match(e))throw new Error(`Unable to parse \`${n}\` as a date.`);const r=new Date(n+" UTC");return new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),0,0,0,0))}function Nr(n){const e=/^(.+T.+)([+-])(\d{2})$/,t=n.match(e);if(t){const[,r,s,i]=t,o=`${r}${s}${i}:00`;return new Date(o)}return null}function qr(n){const e=/^(\d+)-(\d{1,2})-(\d{1,2})([ T])(.+)$/,t=n.match(e);if(t){const[,r,s,i,o,a]=t,c=s.padStart(2,"0"),u=i.padStart(2,"0"),l=`${r}-${c}-${u}T${a}`;return new Date(l)}return null}function Kr(n){const[e,t]=n.split(", "),[r,s,i]=e.split("/").map(Number),o=t.match(/(\d{1,2}):(\d{2}):(\d{2}) (AM|PM)/);if(!o)throw new Error(`Unable to parse time from: ${n}`);let[,a,c,u,l]=o;return a=Number(a),c=Number(c),u=Number(u),l==="PM"&&a!==12?a+=12:l==="AM"&&a===12&&(a=0),new Date(Date.UTC(i,r-1,s,a,c,u))}function zr(n){switch(n){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function Wr(n){const e=n.match(sn);if(!e)return null;const[t]=e,r=Pr[t],s=new Date(n.replace(sn,"Z"));return new Date(s.getTime()-r*1e3)}const Vr=[Rr,Ur,Fr,Kr,Lr,Dr,Nr,xr,jr,zr,Wr,qr];function Qr(n,e){try{const t=n(e);return t instanceof Date&&!isNaN(t.getTime())?t:null}catch{return null}}function dt(n){for(const e of Vr){const t=Qr(e,n);if(t)return t}return null}function Br(n){try{const e=JSON.parse(n);return typeof e=="string"?dt(e):null}catch{return null}}function Oe(n){if(n!==void 0){if(n===null)return null;if(n instanceof Date)return n;if(typeof n=="string"){const e=dt(n)||Br(n)||dt(n.trim());if(!e)throw new Error(`Unable to parse \`${n}\` as a date.`);return e}else if(typeof n=="number")return new Date(n);throw new Error(`Invalid date value \`${n}\`. Expected a date, number, or string, got type ${typeof n}.`)}}class oe{constructor(e,t){h(this,"attrs");h(this,"linkIndex");h(this,"_blobAttrs",null);h(this,"_primaryKeys",null);h(this,"_forwardIdents",null);h(this,"_revIdents",null);this.attrs=e,this.linkIndex=t}resetAttrIndexes(){this._blobAttrs=null,this._primaryKeys=null,this._forwardIdents=null,this._revIdents=null}addAttr(e){this.attrs[e.id]=e,this.resetAttrIndexes()}deleteAttr(e){delete this.attrs[e],this.resetAttrIndexes()}updateAttr(e){const t=this.attrs[e.id];t&&(this.attrs[e.id]={...t,...e},this.resetAttrIndexes())}getAttr(e){return this.attrs[e]}get blobAttrs(){if(this._blobAttrs)return this._blobAttrs;this._blobAttrs=new Map;for(const e of Object.values(this.attrs))if(ht(e)){const[t,r,s]=e["forward-identity"];z(this.blobAttrs,[r,s],e)}return this._blobAttrs}get primaryKeys(){if(this._primaryKeys)return this._primaryKeys;this._primaryKeys=new Map;for(const e of Object.values(this.attrs))if(e["primary?"]){const[t,r]=e["forward-identity"];z(this._primaryKeys,[r],e)}return this._primaryKeys}get forwardIdents(){if(this._forwardIdents)return this._forwardIdents;this._forwardIdents=new Map;for(const e of Object.values(this.attrs)){const t=e["forward-identity"],[r,s,i]=t;z(this._forwardIdents,[s,i],e)}return this._forwardIdents}get revIdents(){if(this._revIdents)return this._revIdents;this._revIdents=new Map;for(const e of Object.values(this.attrs)){const t=e["reverse-identity"];if(t){const[r,s,i]=t;z(this._revIdents,[s,i],e)}}return this._revIdents}toJSON(){return{attrs:this.attrs,linkIndex:this.linkIndex}}}function Gr(n){return n.cardinality==="one"}function ft(n){return n["value-type"]==="ref"}function ht(n){return n["value-type"]==="blob"}function ye(n,e){return e.reduce((t,r)=>t&&t.get(r),n)}function Y(n,e){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){n.delete(e[0]);return}const[t,...r]=e;n.has(t)&&Y(n.get(t),r)}function z(n,e,t){let r=n;const s=e.length-1;for(let i=0;i<s;i++){const o=e[i];let a=r.get(o);a===void 0&&(a=new Map,r.set(o,a)),r=a}s>-1&&r.set(e[s],t)}function on(n,e,t){const r=new Map,s=new Map,i=new Map;for(const o of e){let[a,c,u]=o;const l=n.getAttr(c);if(!l){console.warn("no such attr",c,a);continue}l["checked-data-type"]==="date"&&t&&(u=Oe(u),o[2]=u),ft(l)&&z(i,[u,c,a],o),z(r,[a,c,u],o),z(s,[c,a,u],o)}return{eav:r,aev:s,vae:i}}function an(n){return{triples:W(n.eav,3),cardinalityInference:n.cardinalityInference,useDateObjects:n.useDateObjects,version:1}}function cn(n,e){return be(n,e.triples,e.cardinalityInference,e.useDateObjects)}function un(n,e){if(n)return new oe(n.attrs,n.linkIndex);if(e&&"__type"in e)return new oe(e.attrs,e.linkIndex)}function Hr(n,e){return ye(n.eav,[e])!==void 0}function be(n,e,t,r){const s=on(n,e,r);return s.cardinalityInference=t,s.useDateObjects=r,s}function Ie(n,e){var s,i;let t;if(Array.isArray(e[0])){const[o,a]=e[0],c=n.aev.get(o);if(!c)return null;t=(s=W(c,2).find(l=>l[2]===a))==null?void 0:s[0]}else t=e[0];if(!t)return null;const r=e[2];if(Array.isArray(r)&&r.length===2&&n.aev.get(r[0])){const[o,a]=r,c=n.aev.get(o);if(!c)return null;const l=(i=W(c,2).find(g=>g[2]===a))==null?void 0:i[0];if(!l)return null;const[d,f,p,...y]=e;return[t,f,l,...y]}else{const[o,...a]=e;return[t,...a]}}function ln(n,e,t){const r=Ie(n,t);if(!r)return;const[s,i,o]=r,a=e.getAttr(i);a&&(Y(n.eav,[s,i,o]),Y(n.aev,[i,s,o]),ft(a)&&Y(n.vae,[o,i,s]))}let Jr=0;function dn(n,e,t){const[r,s,i]=t;let o;const a=ye(n.eav,[r,s,i]);return a&&(o=a[3]),o||Date.now()*10+Jr++}function fn(n,e,t){const r=Ie(n,t);if(!r)return;let[s,i,o]=r;const a=e.getAttr(i);if(!a)return;a["checked-data-type"]==="date"&&n.useDateObjects&&(o=Oe(o));const c=ye(n.eav,[s,i,o]),u=(c==null?void 0:c[3])??dn(n,a,r),l=[s,i,o,u];Gr(a)?(z(n.eav,[s,i],new Map([[o,l]])),z(n.aev,[i,s],new Map([[o,l]]))):(z(n.eav,[s,i,o],l),z(n.aev,[i,s,o],l)),ft(a)&&z(n.vae,[o,i,s],l)}function Yr(n,e,t){var p;const r=Ie(n,t);if(!r)return;const[s,i,o]=r,a=e.getAttr(i);if(!a)return;if(!ht(a))throw new Error("merge operation is not supported for links");const c=ye(n.eav,[s,i]);if(!c)return;const u=(p=c.values().next())==null?void 0:p.value;if(!u)return;const l=u[2],d=tn(l,o),f=[s,i,d,dn(n,a,u)];z(n.eav,[s,i],new Map([[d,f]])),z(n.aev,[i,s],new Map([[d,f]]))}function pt(n,e,t){var u,l;const[r,s]=t,i=Ie(n,[r]);if(!i)return;const[o]=i,a=n.eav.get(o);if(a){for(const d of a.keys()){const f=e.getAttr(d);f&&f["on-delete-reverse"]==="cascade"&&W(a.get(d),1).forEach(([p,y,g])=>{var m;return pt(n,e,[g,(m=f["reverse-identity"])==null?void 0:m[1]])}),(!s||!f||((u=f["forward-identity"])==null?void 0:u[1])===s)&&(Y(n.aev,[d,o]),Y(n.eav,[o,d]))}a.size===0&&Y(n.eav,[o])}const c=n.vae.get(o)&&W(n.vae.get(o),2);c&&c.forEach(d=>{var m,w,b;const[f,p,y]=d,g=e.getAttr(p);(!s||!g||((m=g["reverse-identity"])==null?void 0:m[1])===s)&&(Y(n.eav,[f,p,y]),Y(n.aev,[p,f,y]),Y(n.vae,[y,p,f])),g&&g["on-delete"]==="cascade"&&((w=g["reverse-identity"])==null?void 0:w[1])===s&&pt(n,e,[f,(b=g["forward-identity"])==null?void 0:b[1]])}),((l=n.vae.get(o))==null?void 0:l.size)===0&&Y(n.vae,[o])}function hn(n,e,t){const r=on(e,t,n.useDateObjects);Object.keys(r).forEach(s=>{n[s]=r[s]})}function Zr(n,[e]){n.addAttr(e)}function pn(n){return W(n.eav,3)}function Xr(n,e,[t]){if(!e.getAttr(t))return;const r=pn(n).filter(([s,i])=>i!==t);e.deleteAttr(t),hn(n,e,r)}function es(n,e,[t]){e.getAttr(t.id)&&(e.updateAttr(t),hn(n,e,pn(n)))}function ts(n,e,t){const[r,...s]=t;switch(r){case"add-triple":fn(n,e,s);break;case"deep-merge-triple":Yr(n,e,s);break;case"retract-triple":ln(n,e,s);break;case"delete-entity":pt(n,e,s);break;case"add-attr":Zr(e,s);break;case"delete-attr":Xr(n,e,s);break;case"update-attr":es(n,e,s);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${r}`)}}function W(n,e,t=[]){if(!n||e===0)return t;if(e===1){for(const r of n.values())t.push(r);return t}for(const r of n.values())W(r,e-1,t);return t}function Ne(n,e,t){var i;const r=[];if(t!=null&&t.hasOwnProperty("$not")){for(const o of e.keys())t.$not!==o&&r.push(e.get(o));return r}if(t!=null&&t.hasOwnProperty("$isNull")){const{attrId:o,isNull:a,reverse:c}=t.$isNull;if(c)for(const u of e.keys()){const l=n.vae.get(u),d=!l||!l.get(o);(a?d:!d)&&r.push(e.get(u))}else{const u=n.aev.get(o);for(const l of e.keys()){const d=!u||((i=u.get(l))==null?void 0:i.get(null))||!u.get(l);(a?d:!d)&&r.push(e.get(l))}}return r}if(t!=null&&t.$comparator)return W(e,1).filter(t.$op);const s=t.in||t.$in||[t];for(const o of s){const a=e.get(o);a&&r.push(a)}return r}function ns(n,e,t){let r="";return n!==void 0&&(r+="e"),e!==void 0&&(r+="a"),t!==void 0&&(r+="v"),r}function rs(n,[e,t,r]){var i,o;switch(ns(e,t,r)){case"e":{const a=n.eav.get(e);return W(a,2)}case"ea":{const a=(i=n.eav.get(e))==null?void 0:i.get(t);return W(a,1)}case"eav":{const a=(o=n.eav.get(e))==null?void 0:o.get(t);return a?Ne(n,a,r):[]}case"ev":{const a=n.eav.get(e);if(!a)return[];const c=[];for(const u of a.values())c.push(...Ne(n,u,r));return c}case"a":{const a=n.aev.get(t);return W(a,2)}case"av":{const a=n.aev.get(t);if(!a)return[];const c=[];for(const u of a.values())c.push(...Ne(n,u,r));return c}case"v":{const a=[];for(const c of n.eav.values())for(const u of c.values())a.push(...Ne(n,u,r));return a}default:return W(n.eav,3)}}function ss(n,e,t){var s;const r={};if(!e)return r;for(const[i,o]of e.entries()){const a=(s=n.eav.get(t))==null?void 0:s.get(o.id),c=W(a,1);for(const u of c)r[i]=u[2]}return r}function R(n,e,t){var r;return(r=n.forwardIdents.get(e))==null?void 0:r.get(t)}function fe(n,e,t){var r;return(r=n.revIdents.get(e))==null?void 0:r.get(t)}function is(n,e){return n.blobAttrs.get(e)}function yn(n,e){var r;const t=n.primaryKeys.get(e);return t||((r=n.forwardIdents.get(e))==null?void 0:r.get("id"))}function os(n,e,t){const r=Ie(n,t);if(!r)return;const[s,i,o]=r;if(e.getAttr(i))return ye(n.eav,[s,i])}function as(n,e,t){const r=t.filter(([s,i,o,a,c])=>{if(s!=="add-triple"&&s!=="deep-merge-triple")return!0;const u=c==null?void 0:c.mode;if(u!=="create"&&u!=="update")return!0;let l=!1;const d=e.getAttr(o);if(d){const f=yn(e,d["forward-identity"][1]);l=!!os(n,e,[i,f==null?void 0:f.id,i])}return!(u==="create"&&l||u==="update"&&!l)});return Le({store:n,attrsStore:e},s=>{r.forEach(i=>{ts(s.store,s.attrsStore,i)})},{mark:s=>{if(s instanceof oe)return"immutable"}})}function cs(n){return typeof n=="string"&&n.startsWith("?")}function us(n,e,t){if(t.hasOwnProperty(n)){const r=t[n];return gn(r,e,t)}return{...t,[n]:e}}function bn(n,e,t){return n===e?t:null}function ls(n){switch(typeof n){case"string":return n.startsWith("?")?us:bn;default:return bn}}const ds=["in","$in","$not","$isNull","$comparator"];function fs(n){for(const e of ds)if(n.hasOwnProperty(e))return!0;return!1}function gn(n,e,t){return t?typeof n=="object"?fs(n)?t:null:ls(n)(n,e,t):null}function hs(n,e,t){return n.reduce((r,s,i)=>{const o=e[i];return gn(s,o,r)},t)}function ps(n,e,t){return gs(n,e,t).map(r=>hs(e,r,t)).filter(r=>r)}function ys(n,e,t){return e.or?e.or.patterns.flatMap(r=>yt(n,r,t)):e.and?e.and.patterns.reduce((r,s)=>yt(n,s,r),t):t.flatMap(r=>ps(n,e,r))}function yt(n,e,t=[{}]){return e.reduce((r,s)=>ys(n,s,r),t)}function bt(n,e){return Array.isArray(e)?e.map(t=>bt(n,t)):cs(e)?n[e]:e}function bs(n,{find:e,where:t}){return yt(n,t).map(s=>bt(s,e))}function gs(n,e,t){return rs(n,bt(t,e))}const ms=/^(?:[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 ge(n){return typeof n=="string"&&ms.test(n)}const x=[];for(let n=0;n<256;++n)x.push((n+256).toString(16).slice(1));function _s(n,e=0){return(x[n[e+0]]+x[n[e+1]]+x[n[e+2]]+x[n[e+3]]+"-"+x[n[e+4]]+x[n[e+5]]+"-"+x[n[e+6]]+x[n[e+7]]+"-"+x[n[e+8]]+x[n[e+9]]+"-"+x[n[e+10]]+x[n[e+11]]+x[n[e+12]]+x[n[e+13]]+x[n[e+14]]+x[n[e+15]]).toLowerCase()}let gt;const ws=new Uint8Array(16);function Ts(){if(!gt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");gt=crypto.getRandomValues.bind(crypto)}return gt(ws)}const mn={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ss(n,e,t){var s;if(mn.randomUUID&&!n)return mn.randomUUID();n=n||{};const r=n.random??((s=n.rng)==null?void 0:s.call(n))??Ts();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,_s(r)}function _n(n){const e=n.replace(/-/g,""),t=[];for(let r=0;r<e.length;r+=2)t.push(parseInt(e.substring(r,r+2),16));return t}function As(n,e){for(let t=0;t<n.length;t++){if(n[t]<e[t])return-1;if(n[t]>e[t])return 1}return 0}function vs(n,e){return As(_n(n),_n(e))}function j(){return Ss()}function ks(n,e){return n.localeCompare(e)}function Os(){let n=ks;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{n=Intl.Collator("en-US").compare}catch{}return n}const Is=Os();let wn=!0;const Es=n=>{wn=n};let Cs=0;function Ee(n){return qe(`_${n}`,Cs++)}function qe(n,e){return`?${n}-${e}`}class me extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function Ms(n,e){const t=yn(n,e);if(!t)throw new me(`Could not find id attr for ${e}`);return t}function Tn(n,e,t,r){return[Ps(n,e,t,r)]}function Ps(n,e,t,r){return[n(t,r),Ms(e,t).id,n(t,r),n("time",r)]}function js(n,e,t){return n.map(r=>r===e?t:r)}function Sn(n,e,t,r,s){const i=R(e,t,s),o=fe(e,t,s),a=i||o;if(!a)throw new me(`Could not find attr for ${[t,s]}`);if(a["value-type"]!=="ref")throw new Error(`Attr ${a.id} is not a ref`);const[c,u]=a["forward-identity"],[l,d]=a["reverse-identity"],f=r+1,p=i?[n(u,r),a.id,n(d,f),Ee("time")]:[n(u,f),a.id,n(d,r),Ee("time")];return[i?d:u,f,p,a,!!i]}function An(n,e){if(typeof e!="string")return function(o){return!1};const r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,"."),s=new RegExp(`^${r}$`,n?void 0:"i");return function(o){return typeof o!="string"?!1:s.test(o)}}function Ds(n,e){if(typeof e!="object"||e.hasOwnProperty("$in")||e.hasOwnProperty("in"))return e;const t=n["checked-data-type"]==="date";if(e.hasOwnProperty("$gt"))return{$comparator:!0,$op:t?function(s){return new Date(s[2])>new Date(e.$gt)}:function(s){return s[2]>e.$gt}};if(e.hasOwnProperty("$gte"))return{$comparator:!0,$op:t?function(s){return new Date(s[2])>=new Date(e.$gte)}:function(s){return s[2]>=e.$gte}};if(e.hasOwnProperty("$lt"))return{$comparator:!0,$op:t?function(s){return new Date(s[2])<new Date(e.$lt)}:function(s){return s[2]<e.$lt}};if(e.hasOwnProperty("$lte"))return{$comparator:!0,$op:t?function(s){return new Date(s[2])<=new Date(e.$lte)}:function(s){return s[2]<=e.$lte}};if(e.hasOwnProperty("$like")){const r=An(!0,e.$like);return{$comparator:!0,$op:function(i){return r(i[2])}}}if(e.hasOwnProperty("$ilike")){const r=An(!1,e.$ilike);return{$comparator:!0,$op:function(i){return r(i[2])}}}return e}function $s(n,e,t,r,s,i){const o=R(e,t,s),a=fe(e,t,s),c=o||a;if(!c)throw new me(`No attr for etype = ${t} label = ${s}`);if(i!=null&&i.hasOwnProperty("$isNull")){const u=R(e,t,"id");if(!u)throw new me(`No attr for etype = ${t} label = id`);return[n(t,r),u.id,{$isNull:{attrId:c.id,isNull:i.$isNull,reverse:!o}},Ee("time")]}return o?[n(t,r),c.id,Ds(c,i),Ee("time")]:[i,c.id,n(t,r),Ee("time")]}function Rs(n,e,t,r,s){const[i,o,a]=s.reduce((c,u)=>{const[l,d,f]=c,[p,y,g]=Sn(n,e,l,d,u);return[p,y,[...f,g]]},[t,r,[]]);return[i,o,a]}function mt(n,e,t,r,s,i){const o=s.slice(0,s.length-1),a=s[s.length-1],[c,u,l]=Rs(n,e,t,r,o),d=$s(n,e,c,u,a,i);return l.concat([d])}function xs(n,e){return e?[e].concat(n):n}function Us([n,e]){return n==="or"&&Array.isArray(e)}function Ls([n,e]){return n==="and"&&Array.isArray(e)}function Fs(n,e,t){return(r,s)=>{const i=n(r,s);return e==i?i:`${i}-${t}`}}function vn(n,e,t,r,s,i){const o=n(r,s),a=i.map((c,u)=>{const l=Fs(n,o,u);return On(l,t,r,s,c)});return{[e]:{patterns:a,joinSym:o}}}function Ns(n){const e=[];for(let t=1;t<=n.length;t++)e.push(n.slice(0,t));return e}function kn(n,e,t,r,s){return Ns(s).map(i=>mt(n,e,t,r,i,{$isNull:!0}))}function On(n,e,t,r,s){return Object.entries(s).flatMap(([i,o])=>{if(Us([i,o]))return vn(n,"or",e,t,r,o);if(Ls([i,o]))return vn(n,"and",e,t,r,o);if(i==="$entityIdStartsWith")return[];const a=i.split(".");if(o!=null&&o.hasOwnProperty("$ne")&&(o={...o,$not:o.$ne},delete o.$ne),o!=null&&o.hasOwnProperty("$not")){const c=mt(n,e,t,r,a,o),u=kn(n,e,t,r,a);return[{or:{patterns:[c,...u],joinSym:n(t,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:kn(n,e,t,r,a),joinSym:n(t,r)}}]:mt(n,e,t,r,a,o)})}function qs(n,e,t,r){const s=qe;return r?On(s,n,e,t,r).concat(Tn(s,n,e,t)):Tn(s,n,e,t)}function Ks(n,e,t){return[n(e,t),n("time",t)]}function zs(n,e,t,r,s,i){const[o,a,c,u,l]=Sn(n,e,t,r,s),d=js(c,n(t,r),i);return[o,a,d,u,l]}function Ws(n,e,t,{etype:r,level:s,form:i},o){const a=Object.keys(i).filter(c=>c!=="$");return a.length?Object.entries(o).map(function([u,l]){return a.map(function(p){var g,m,w;const y=!!(e.cardinalityInference&&((w=(m=(g=t.linkIndex)==null?void 0:g[r])==null?void 0:m[p])!=null&&w.isSingular));try{const[b,_,k]=zs(n,t,r,s,p,u),T=En(e,t,{etype:b,level:_,form:i[p],join:k}),S=y?T[0]:T;return{[p]:S}}catch(b){if(b instanceof me)return{[p]:y?void 0:[]};throw b}}).reduce(function(p,y){return{...p,...y}},l)}):Object.values(o)}function Vs(n,e,t){return t==="string"?Is(n,e):n>e?1:-1}function Ce(n,e,t,r,s){return e===r||e==null&&r==null?vs(n,t):r==null?1:e==null?-1:Vs(e,r,s)}function Ke([n,e],[t,r],s){return Ce(n,e,t,r,s)}function _t(n){return n==null?n:new Date(n).getTime()}function Qs(n,e,t,r){var y;const[s,i,o,a]=n,c=t==="desc"?1:-1;if(((y=e["forward-identity"])==null?void 0:y[2])==="id")return Ke(r,[s,a],null)===c;const[u,l]=r,d=e["checked-data-type"],f=d==="date"?_t(l):l,p=d==="date"?_t(o):o;return Ke([u,f],[s,p],d)===c}function Bs(n,e){const t=e[1];return n.getAttr(t)}function Gs(n,e,t){const r=Object.keys(t)[0];return R(n,e,r)}function Hs(n,e,t,r){if(t)return Bs(n,t);if(r)return Gs(n,e,r)}function Js(n,e,t){var s,i;if(!Array.isArray(t.fields))return is(n,e);const r=new Map;for(const o of t.fields){const a=R(n,e,o),c=(s=a==null?void 0:a["forward-identity"])==null?void 0:s[2];c&&ht(a)&&r.set(c,a)}if(!r.has("id")){const o=R(n,e,"id"),a=(i=o==null?void 0:o["forward-identity"])==null?void 0:i[2];a&&r.set(a,o)}return r}function Ys(n,e,{etype:t,pageInfo:r,dq:s,form:i}){var y,g;const o=(y=i==null?void 0:i.$)==null?void 0:y.order,a=In(i),c=Zs(i);let u=bs(n,s);const l=r==null?void 0:r["start-cursor"],d=Hs(e,t,l,o);if(d&&((g=d==null?void 0:d["forward-identity"])==null?void 0:g[2])!=="id"){const m=d["checked-data-type"]==="date",w=d.id;u=u.map(([b])=>{var k,T,S,v,D;let _=(D=(v=(S=(T=(k=n.eav.get(b))==null?void 0:k.get(w))==null?void 0:T.values())==null?void 0:S.next())==null?void 0:v.value)==null?void 0:D[2];return m&&(_=_t(_)),[b,_]})}u.sort(c==="asc"?function(w,b){return Ke(w,b,d==null?void 0:d["checked-data-type"])}:function(w,b){return Ke(b,w,d==null?void 0:d["checked-data-type"])});let f={};const p=Js(e,t,s);for(const m of u){const[w]=m;if(f[w]||!a&&l&&d&&Qs(l,d,c,m))continue;const b=ss(n,p,w);b&&(f[w]=b)}return f}function Zs(n){var t;const e=(t=n.$)==null?void 0:t.order;return e&&e[Object.keys(e)[0]]||"asc"}function In(n){var s,i,o;const e=(s=n.$)==null?void 0:s.offset,t=(i=n.$)==null?void 0:i.before,r=(o=n.$)==null?void 0:o.after;return!e&&!t&&!r}function Xs(n,e,{etype:t,level:r,form:s,join:i,pageInfo:o}){var f,p,y,g,m;if(!In(s)&&(!o||!o["start-cursor"]))return[];const a=xs(qs(e,t,r,(f=s.$)==null?void 0:f.where),i),c=Ks(qe,t,r),u=(p=s.$)==null?void 0:p.fields,l=Ys(n,e,{etype:t,pageInfo:o,form:s,dq:{where:a,find:c,fields:u}}),d=((y=s.$)==null?void 0:y.limit)||((g=s.$)==null?void 0:g.first)||((m=s.$)==null?void 0:m.last);if(d!=null){r>0&&wn&&console.warn("WARNING: Limits in child queries are only run client-side. Data returned from the server will not have a limit.");const w=Object.entries(l);return w.length<=d?l:Object.fromEntries(w.slice(0,d))}return l}function ei(n,e,t){try{return Xs(n,e,t)}catch(r){if(r instanceof me)return{};throw r}}function En(n,e,t){const r=ei(n,e,t);return Ws(qe,n,e,t,r)}function ti(n){const e={};for(const[t,r]of Object.entries(n))e[t]={startCursor:r["start-cursor"],endCursor:r["end-cursor"],hasNextPage:r["has-next-page?"],hasPreviousPage:r["has-previous-page?"]};return e}function wt({store:n,attrsStore:e,pageInfo:t,aggregate:r},s){const o={data:Object.keys(s).reduce(function(c,u){return r!=null&&r[u]||u==="$$ruleParams"||(c[u]=En(n,e,{etype:u,form:s[u],level:0,pageInfo:t==null?void 0:t[u]})),c},{})};return t&&(o.pageInfo=ti(t)),r&&(o.aggregate=r),o}function ni(){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 ri=ni();function ze(n,e,t){const r={__etype:n,__ops:t};return new Proxy(r,{get:(s,i)=>{if(i==="__ops")return t;if(i==="__etype")return n;if(ri.has(i))return(o,a)=>ze(n,e,[...t,a?[i,n,e,o,a]:[i,n,e,o]])}})}function Cn(n,e){return`lookup__${n}__${JSON.stringify(e)}`}function We(n){return n.startsWith("lookup__")}function Tt(n){const[e,t,...r]=n.split("__");return[t,JSON.parse(r.join("__"))]}function si(n){return new Proxy({__etype:n},{get(e,t){if(t==="lookup")return(s,i)=>ze(n,Tt(Cn(s,i)),[]);if(t==="__etype")return n;const r=t;return We(r)?ze(n,Tt(r),[]):ze(n,r,[])}})}function St(){return new Proxy({},{get(n,e){return si(e)}})}const ii=St();function Mn(n){return n.__ops}function oi(n,e){const{attrIdMap:t,refSwapAttrIds:r}=n,s=[];for(const o of e){const a=t[o];if(a)s.push(a);else if(Array.isArray(o)&&o.length==2&&t[o[0]]){const[c,u]=o;s.push([t[c],u])}else s.push(o)}const[i]=e;if((i==="add-triple"||i==="retract-triple")&&r.has(e[2])){const o=s[1];s[1]=s[3],s[3]=o}return s}function ai(n){if(Array.isArray(n))return n;const e=Object.entries(n);if(e.length!==1)throw new Error("lookup must be an object with a single unique attr and value.");return e[0]}function ci(n,e,t){return t.indexOf(".")!==-1&&!R(n,e,t)}function At(n){const[e,t,...r]=n.split(".");if(r.length>0||t!=="id")throw new Error(`${n} is not a valid lookup attribute.`);return e}function ui(n,e,t){if(!ci(n,e,t))return R(n,e,t);const r=At(t),s=R(n,e,r)||fe(n,e,r);if(s&&s["value-type"]!=="ref")throw new Error(`${t} does not reference a valid link attribute.`);return s}function vt(n){return typeof n=="string"&&!We(n)?null:typeof n=="string"&&We(n)?Tt(n):ai(n)}function V(n,e,t){const r=vt(t);if(r===null)return t;const[s,i]=r,o=ui(n,e,s);if(!o||!o["unique?"])throw new Error(`${s} is not a unique attribute.`);return[o.id,i]}function Pn(n,e,t,r){var o;const s=V(n,e,t);return Array.isArray(s)?[["add-triple",s,(o=R(n,e,"id"))==null?void 0:o.id,s]].concat(r):r}function li({attrsStore:n},[e,t,r]){const s=Object.entries(r).flatMap(([i,o])=>{const a=Array.isArray(o)?o:[o],c=R(n,e,i),u=fe(n,e,i);return a.map(l=>c?["add-triple",V(n,e,t),c.id,V(n,c["reverse-identity"][1],l)]:["add-triple",V(n,u["forward-identity"][1],l),u==null?void 0:u.id,V(n,e,t)])});return Pn(n,e,t,s)}function di({attrsStore:n},[e,t,r]){const s=Object.entries(r).flatMap(([i,o])=>{const a=Array.isArray(o)?o:[o],c=R(n,e,i),u=fe(n,e,i);return a.map(l=>c?["retract-triple",V(n,e,t),c.id,V(n,c["reverse-identity"][1],l)]:["retract-triple",V(n,u["forward-identity"][1],l),u.id,V(n,e,t)])});return Pn(n,e,t,s)}function fi(n,e,t,r){var s;if(Array.isArray(r)){const[i,o]=r;for(const a of n||[]){const c=a==null?void 0:a.aev.get(i);if(c){for(const[u,l,d]of W(c,2))if(d===o)return!0}}}else for(const i of n||[]){const o=i==null?void 0:i.eav.get(r);if(o){for(const a of o.keys())if(((s=e.getAttr(a))==null?void 0:s["forward-identity"][1])==t)return!0}}return!1}function jn({stores:n,attrsStore:e},[t,r,s,i]){return(i==null?void 0:i.upsert)===!1?{mode:"update"}:(i==null?void 0:i.upsert)===!0?null:fi(n,e,t,r)?{mode:"update"}:null}function hi(n,e){const{attrsStore:t}=n,[r,s,i,o]=e,a=lt(i),c=V(t,r,s);return[["id",c]].concat(Object.entries(a)).map(([l,d])=>{const f=R(t,r,l);return f["checked-data-type"]==="date"&&n.useDateObjects&&(d=Oe(d)),["add-triple",c,f.id,d,{mode:"create"}]})}function pi(n,e){const{attrsStore:t}=n,[r,s,i,o]=e,a=lt(i),c=V(t,r,s),u=jn(n,[r,c,i,o]);return[["id",c]].concat(Object.entries(a)).map(([d,f])=>{const p=R(t,r,d);return p["checked-data-type"]==="date"&&n.useDateObjects&&(f=Oe(f)),["add-triple",c,p.id,f,...u?[u]:[]]})}function yi({attrsStore:n},[e,t]){return[["delete-entity",V(n,e,t),e]]}function bi(n,e){const{attrsStore:t}=n,[r,s,i,o]=e,a=lt(i),c=V(t,r,s),u=jn(n,[r,c,i,o]),l=Obj