@instantdb/core
Version:
Instant's core local abstraction
1 lines • 148 kB
JavaScript
(function(v,R){typeof exports=="object"&&typeof module<"u"?R(exports):typeof define=="function"&&define.amd?define(["exports"],R):(v=typeof globalThis<"u"?globalThis:v||self,R(v.instant={}))})(this,(function(v){"use strict";function R(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=R(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];if(n[s]===void 0)continue;const i=R(s);e^=parseInt(i,16),e*=16777619,e=e>>>0;const o=R(n[s]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return R(String(n))}const U={Remove:"remove",Replace:"replace",Add:"add"},Vt=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),kr=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),Le=Symbol.iterator,J={mutable:"mutable",immutable:"immutable"},et={};function Ie(n,e){return n instanceof Map?n.has(e):Object.prototype.hasOwnProperty.call(n,e)}function Qt(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 tt(n){return Object.getPrototypeOf(n)===Set.prototype}function nt(n){return Object.getPrototypeOf(n)===Map.prototype}function Y(n){var e;return(e=n.copy)!==null&&e!==void 0?e:n.original}function fe(n){return!!k(n)}function k(n){return typeof n!="object"?null:n?.[Vt]}function rt(n){var e;const t=k(n);return t?(e=t.copy)!==null&&e!==void 0?e:t.original:n}function te(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?.mark&&((t=e.mark(n,J))===J.immutable||typeof t=="function")}function Bt(n,e=[]){if(Object.hasOwnProperty.call(n,"key")){const t=n.parent.copy,r=k(ce(t,n.key));if(r!==null&&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||Ie(t,i)))return null;e.push(i)}if(n.parent)return Bt(n.parent,e);e.reverse();try{Or(n.copy,e)}catch{return null}return e}function he(n){return Array.isArray(n)?1:n instanceof Map?2:n instanceof Set?3:0}function ce(n,e){return he(n)===2?n.get(e):n[e]}function Ce(n,e,t){he(n)===2?n.set(e,t):n[e]=t}function st(n,e){const t=k(n);return(t?Y(t):n)[e]}function ue(n,e){return n===e?n!==0||1/n===1/e:n!==n&&e!==e}function it(n){if(n)for(;n.finalities.revoke.length>0;)n.finalities.revoke.pop()()}function pe(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 Or(n,e){for(let t=0;t<e.length-1;t+=1){const r=e[t];if(n=ce(he(n)===3?Array.from(n):n,r),typeof n!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return n}function Ir(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 Cr=Object.prototype.propertyIsEnumerable;function Gt(n,e){let t;if(Array.isArray(n))return Array.prototype.concat.call(n);if(n instanceof Set){if(!tt(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(!nt(n)){const r=Object.getPrototypeOf(n).constructor;return new r(n)}return new Map(n)}else if(e?.mark&&(t=e.mark(n,J),t!==void 0)&&t!==J.mutable){if(t===J.immutable)return Ir(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=>{Cr.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 z(n){n.copy||(n.copy=Gt(n.original,n.options))}function Ee(n){if(!te(n))return rt(n);if(Array.isArray(n))return n.map(Ee);if(n instanceof Map){const t=Array.from(n.entries()).map(([r,s])=>[r,Ee(s)]);if(!nt(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(Ee);if(!tt(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]=Ee(n[t]);return e}function Ne(n){return fe(n)?Ee(n):n}function oe(n){var e;n.assignedMap=(e=n.assignedMap)!==null&&e!==void 0?e:new Map,n.operated||(n.operated=!0,n.parent&&oe(n.parent))}function Ht(){throw new Error("Cannot modify frozen object")}function ge(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)||fe(n)){r.pop(),s.pop();return}switch(he(n)){case 2:for(const[a,c]of n)ge(a,a,t,r,s),ge(c,a,t,r,s);n.set=n.clear=n.delete=Ht;break;case 3:for(const a of n)ge(a,a,t,r,s);n.add=n.clear=n.delete=Ht;break;case 1:Object.freeze(n);let o=0;for(const a of n)ge(a,o,t,r,s),o+=1;break;default:Object.freeze(n),Object.keys(n).forEach(a=>{const c=n[a];ge(c,a,t,r,s)})}r.pop(),s.pop()}function ot(n,e){const t=he(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 Jt(n,e,t){if(fe(n)||!te(n,t)||e.has(n)||Object.isFrozen(n))return;const r=n instanceof Set,s=r?new Map:void 0;if(e.add(n),ot(n,(i,o)=>{var a;if(fe(o)){const c=k(o);z(c);const u=!((a=c.assignedMap)===null||a===void 0)&&a.size||c.operated?c.copy:c.original;Ce(r?s:n,i,u)}else Jt(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 Er(n,e){const t=n.type===3?n.setMap:n.copy;n.finalities.revoke.length>1&&n.assignedMap.get(e)&&t&&Jt(ce(t,e),n.finalities.handledSet,n.options)}function at(n){n.type===3&&n.copy&&(n.copy.clear(),n.setMap.forEach(e=>{n.copy.add(rt(e))}))}function ct(n,e,t,r){if(n.operated&&n.assignedMap&&n.assignedMap.size>0&&!n.finalized){if(t&&r){const i=Bt(n);i&&e(n,i,t,r)}n.finalized=!0}}function ut(n,e,t,r){const s=k(t);s&&(s.callbacks||(s.callbacks=[]),s.callbacks.push((i,o)=>{var a;const c=n.type===3?n.setMap:n.copy;if(ue(ce(c,e),t)){let u=s.original;s.copy&&(u=s.copy),at(n),ct(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)),Ce(c,e,u)}}),n.options.enableAutoFreeze&&s.finalities!==n.finalities&&(n.options.enableAutoFreeze=!1)),te(t,n.options)&&n.finalities.draft.push(()=>{const i=n.type===3?n.setMap:n.copy;ue(ce(i,e),t)&&Er(n,e)})}function Mr(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]),f=pe(l,s);t.push({op:U.Replace,path:f,value:Ne(c[u])}),r.push({op:U.Replace,path:f,value:Ne(i[u])})}for(let u=i.length;u<c.length;u+=1){const l=e.concat([u]),f=pe(l,s);t.push({op:U.Add,path:f,value:Ne(c[u])})}if(i.length<c.length){const{arrayLengthAssignment:u=!0}=a.enablePatches;if(u){const l=e.concat(["length"]),f=pe(l,s);r.push({op:U.Replace,path:f,value:i.length})}else for(let l=c.length;i.length<l;l-=1){const f=e.concat([l-1]),d=pe(f,s);r.push({op:U.Remove,path:d})}}}function Pr({original:n,copy:e,assignedMap:t},r,s,i,o){t.forEach((a,c)=>{const u=ce(n,c),l=Ne(ce(e,c)),f=a?Ie(n,c)?U.Replace:U.Add:U.Remove;if(ue(u,l)&&f===U.Replace)return;const d=r.concat(c),h=pe(d,o);s.push(f===U.Remove?{op:f,path:h}:{op:f,path:h,value:l}),i.push(f===U.Add?{op:U.Remove,path:h}:f===U.Remove?{op:U.Add,path:h,value:u}:{op:U.Replace,path:h,value:u})})}function jr({original:n,copy:e},t,r,s,i){let o=0;n.forEach(a=>{if(!e.has(a)){const c=t.concat([o]),u=pe(c,i);r.push({op:U.Remove,path:u,value:a}),s.unshift({op:U.Add,path:u,value:a})}o+=1}),o=0,e.forEach(a=>{if(!n.has(a)){const c=t.concat([o]),u=pe(c,i);r.push({op:U.Add,path:u,value:a}),s.unshift({op:U.Remove,path:u,value:a})}o+=1})}function Me(n,e,t,r){const{pathAsArray:s=!0}=n.options.enablePatches;switch(n.type){case 0:case 2:return Pr(n,e,t,r,s);case 1:return Mr(n,e,t,r,s);case 3:return jr(n,e,t,r,s)}}const Fe=(n,e,t=!1)=>{if(typeof n=="object"&&n!==null&&(!te(n,e)||t))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},lt={get size(){return Y(k(this)).size},has(n){return Y(k(this)).has(n)},set(n,e){const t=k(this),r=Y(t);return(!r.has(n)||!ue(r.get(n),e))&&(z(t),oe(t),t.assignedMap.set(n,!0),t.copy.set(n,e),ut(t,n,e,Me)),this},delete(n){if(!this.has(n))return!1;const e=k(this);return z(e),oe(e),e.original.has(n)?e.assignedMap.set(n,!1):e.assignedMap.delete(n),e.copy.delete(n),!0},clear(){const n=k(this);if(this.size){z(n),oe(n),n.assignedMap=new Map;for(const[e]of n.original)n.assignedMap.set(e,!1);n.copy.clear()}},forEach(n,e){const t=k(this);Y(t).forEach((r,s)=>{n.call(e,this.get(s),s,this)})},get(n){var e,t;const r=k(this),s=Y(r).get(n),i=((t=(e=r.options).mark)===null||t===void 0?void 0:t.call(e,s,J))===J.mutable;if(r.options.strict&&Fe(s,r.options,i),i||r.finalized||!te(s,r.options)||s!==r.original.get(n))return s;const o=et.createDraft({original:s,parentDraft:r,key:n,finalities:r.finalities,options:r.options});return z(r),r.copy.set(n,o),o},keys(){return Y(k(this)).keys()},values(){const n=this.keys();return{[Le]:()=>this.values(),next:()=>{const e=n.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const n=this.keys();return{[Le]:()=>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]}}}},[Le](){return this.entries()}},$r=Reflect.ownKeys(lt),Yt=(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=k(a),u=((s=(r=n.options).mark)===null||s===void 0?void 0:s.call(r,a,J))===J.mutable;if(n.options.strict&&Fe(o,n.options,u),!u&&!c&&te(o,n.options)&&!n.finalized&&n.original.has(o)){const l=et.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]}},qe={get size(){return k(this).setMap.size},has(n){const e=k(this);if(e.setMap.has(n))return!0;z(e);const t=k(n);return!!(t&&e.setMap.has(t.original))},add(n){const e=k(this);return this.has(n)||(z(e),oe(e),e.assignedMap.set(n,!0),e.setMap.set(n,n),ut(e,n,n,Me)),this},delete(n){if(!this.has(n))return!1;const e=k(this);z(e),oe(e);const t=k(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=k(this);z(n),oe(n);for(const e of n.original)n.assignedMap.set(e,!1);n.setMap.clear()},values(){const n=k(this);z(n);const e=n.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:Yt(n,e,{isValuesIterator:!0})}},entries(){const n=k(this);z(n);const e=n.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:Yt(n,e,{isValuesIterator:!1})}},keys(){return this.values()},[Le](){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(qe,{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 Rr=Reflect.ownKeys(qe),Zt=new WeakSet,Xt={get(n,e,t){var r,s;const i=(r=n.copy)===null||r===void 0?void 0:r[e];if(i&&Zt.has(i))return i;if(e===Vt)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,J),o===J.mutable)return n.options.strict&&Fe(u,n.options,!0),u}const a=Y(n);if(a instanceof Map&&$r.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(lt,"size").get.call(n.proxy);const u=lt[e];if(u)return u.bind(n.proxy)}if(a instanceof Set&&Rr.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(qe,"size").get.call(n.proxy);const u=qe[e];if(u)return u.bind(n.proxy)}if(!Ie(a,e)){const u=Qt(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&&Fe(c,n.options),n.finalized||!te(c,n.options))return c;if(c===st(n.original,e)){if(z(n),n.copy[e]=dt({original:n.original[e],parentDraft:n,key:n.type===1?Number(e):e,finalities:n.finalities,options:n.options}),typeof o=="function"){const u=k(n.copy[e]);return z(u),oe(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=Qt(Y(n),e);if(i?.set)return i.set.call(n.proxy,t),!0;const o=st(Y(n),e),a=k(o);return a&&ue(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):(ue(t,o)&&(t!==void 0||Ie(n.original,e))||(z(n),oe(n),Ie(n.original,e)&&ue(t,n.original[e])?n.assignedMap.delete(e):n.assignedMap.set(e,!0),n.copy[e]=t,ut(n,e,t,Me)),!0)},has(n,e){return e in Y(n)},ownKeys(n){return Reflect.ownKeys(Y(n))},getOwnPropertyDescriptor(n,e){const t=Y(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?Xt.set.call(this,n,e,void 0,n.proxy):(st(n.original,e)!==void 0||e in n.original?(z(n),oe(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 dt(n){const{original:e,parentDraft:t,key:r,finalities:s,options:i}=n,o=he(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,Xt);if(s.revoke.push(u),Zt.add(c),a.proxy=c,t){const l=t;l.finalities.draft.push((f,d)=>{var h,p;const m=k(c);let g=l.type===3?l.setMap:l.copy;const y=ce(g,r),b=k(y);if(b){let _=b.original;b.operated&&(_=rt(y)),at(b),ct(b,Me,f,d),l.options.enableAutoFreeze&&(l.options.updatedValues=(h=l.options.updatedValues)!==null&&h!==void 0?h:new WeakMap,l.options.updatedValues.set(_,b.original)),Ce(g,r,_)}(p=m.callbacks)===null||p===void 0||p.forEach(_=>{_(f,d)})})}else{const l=k(c);l.finalities.draft.push((f,d)=>{at(l),ct(l,Me,f,d)})}return c}et.createDraft=dt;function Dr(n,e,t,r,s){var i;const o=k(n),a=(i=o?.original)!==null&&i!==void 0?i:n,c=!!e.length;if(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&&it(o),s&&ge(u,u,o?.options.updatedValues),[u,t&&c?[{op:U.Replace,path:[],value:e[0]}]:t,r&&c?[{op:U.Replace,path:[],value:a}]:r]}function Ur(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,J))===J.mutable||!te(n,e)?n:dt({original:n,parentDraft:null,finalities:r,options:e});return[a,(c=[])=>{const[u,l,f]=Dr(a,c,s,i,e.enableAutoFreeze);return e.enablePatches?[u,l,f]:u}]}function ft(n){const{rootDraft:e,value:t,useRawReturn:r=!1,isRoot:s=!0}=n;ot(t,(i,o,a)=>{const c=k(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(f=>a.add(i===f?u:f))}else Ce(a,i,u)}else typeof o=="object"&&o!==null&&(n.value=o,n.isRoot=!1,ft(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 en(n){var e;const t=k(n);if(!te(n,t?.options))return n;const r=he(n);if(t&&!t.operated)return t.original;let s;function i(){s=r===2?nt(n)?new Map(n):new(Object.getPrototypeOf(n)).constructor(n):r===3?Array.from(t.setMap.values()):Gt(n,t?.options)}if(t){t.finalized=!0;try{i()}finally{t.finalized=!1}}else s=n;if(ot(s,(o,a)=>{if(t&&ue(ce(t.original,o),a))return;const c=en(a);c!==a&&(s===n&&i(),Ce(s,o,c))}),r===3){const o=(e=t?.original)!==null&&e!==void 0?e:s;return tt(o)?new Set(s):new(Object.getPrototypeOf(o)).constructor(s)}return s}function tn(n){if(!fe(n))throw new Error(`current() is only used for Draft, parameter: ${n}`);return en(n)}const Ke=(n=>function e(t,r,s){var i,o,a;if(typeof t=="function"&&typeof r!="function")return function(w,...M){return e(w,j=>t.call(this,j,...M),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 f=fe(c)?tn(c):c,d=Array.isArray(l.mark)?((w,M)=>{for(const j of l.mark){if(typeof j!="function")throw new Error(`Invalid mark: ${j}, 'mark' should be a function.`);const K=j(w,M);if(K)return K}}):l.mark,h=(i=l.enablePatches)!==null&&i!==void 0?i:!1,p=(o=l.strict)!==null&&o!==void 0?o:!1,g={enableAutoFreeze:(a=l.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:d,strict:p,enablePatches:h};if(!te(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[y,b]=Ur(f,g);if(typeof r!="function"){if(!te(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[y,b]}let _;try{_=u(y)}catch(w){throw it(k(y)),w}const P=w=>{const M=k(y);if(!fe(w)){if(w!==void 0&&!ue(w,y)&&M?.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 K=w?.[kr];if(K){const X=K[0];return g.strict&&typeof w=="object"&&w!==null&&ft({rootDraft:M,value:w,useRawReturn:!0}),b([X])}if(w!==void 0)return typeof w=="object"&&w!==null&&ft({rootDraft:M,value:w}),b([w])}if(w===y||w===void 0)return b([]);const j=k(w);if(g===j.options){if(j.operated)throw new Error("Cannot return a modified child draft.");return b([tn(w)])}return b([w])};return _ instanceof Promise?_.then(P,w=>{throw it(k(y)),w}):P(_)})();Object.prototype.constructor.toString();function nn(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 rn(n,e){return Object.keys(n).length===Object.keys(e).length&&Object.keys(n).every(t=>e.hasOwnProperty(t)&&n[t]===e[t])}function ze(n,e){return typeof n!="object"||typeof e!="object"||n===null||e===null?n===e:nn(n,e)?Object.keys(n).every(t=>ze(n[t],e[t])):!1}function ht(n){if(!Pe(n))return n;const e={};for(const[t,r]of Object.entries(n))r!==void 0&&(e[t]=r);return e}function sn(n,e){if(!Pe(n)||!Pe(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=Pe(n[r])&&Pe(e[r]);t[r]=s?sn(n[r],e[r]):e[r]}return t}function Pe(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function xr(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 on(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 an(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}an(n[t],r),Lr(n[t])&&delete n[t]}}function Lr(n){return n&&Object.keys(n).length===0}const cn=/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$/,Nr={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 Fr(n){return new Date(n)}function qr(n){return new Date(n+"Z")}const Kr=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function zr(n){const e=n.match(Kr);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 Wr(n){const[e,t]=n.split(" ");return new Date(e+"T"+t+"Z")}function Vr(n){const[e,t]=n.split(" ");return new Date(e+"T"+t+"Z")}function Qr(n){return new Date(n)}function Br(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 Gr(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 Hr(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 Jr(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 Yr(n){switch(n){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function Zr(n){const e=n.match(cn);if(!e)return null;const[t]=e,r=Nr[t],s=new Date(n.replace(cn,"Z"));return new Date(s.getTime()-r*1e3)}const Xr=[zr,Vr,Br,Jr,Qr,qr,Gr,Wr,Fr,Yr,Zr,Hr];function es(n,e){try{const t=n(e);return t instanceof Date&&!isNaN(t.getTime())?t:null}catch{return null}}function pt(n){for(const e of Xr){const t=es(e,n);if(t)return t}return null}function ts(n){try{const e=JSON.parse(n);return typeof e=="string"?pt(e):null}catch{return null}}function je(n){if(n!==void 0){if(n===null)return null;if(n instanceof Date)return n;if(typeof n=="string"){const e=pt(n)||ts(n)||pt(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 de{attrs;linkIndex;_blobAttrs=null;_primaryKeys=null;_forwardIdents=null;_revIdents=null;constructor(e,t){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(bt(e)){const[t,r,s]=e["forward-identity"];Q(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"];Q(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;Q(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;Q(this._revIdents,[s,i],e)}}return this._revIdents}toJSON(){return{attrs:this.attrs,linkIndex:this.linkIndex}}}function ns(n){return n.cardinality==="one"}function yt(n){return n["value-type"]==="ref"}function bt(n){return n["value-type"]==="blob"}function me(n,e){return e.reduce((t,r)=>t&&t.get(r),n)}function ne(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)&&ne(n.get(t),r)}function Q(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 un(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=je(u),o[2]=u),yt(l)&&Q(i,[u,c,a],o),Q(r,[a,c,u],o),Q(s,[c,a,u],o)}return{eav:r,aev:s,vae:i}}function ln(n){return{triples:B(n.eav,3),cardinalityInference:n.cardinalityInference,useDateObjects:n.useDateObjects,version:1}}function dn(n,e){return we(n,e.triples,e.cardinalityInference,e.useDateObjects)}function fn(n,e){if(n)return new de(n.attrs,n.linkIndex);if(e&&"__type"in e)return new de(e.attrs,e.linkIndex)}function rs(n,e){return me(n.eav,[e])!==void 0}function we(n,e,t,r){const s=un(n,e,r);return s.cardinalityInference=t,s.useDateObjects=r,s}function $e(n,e){let t;if(Array.isArray(e[0])){const[s,i]=e[0],o=n.aev.get(s);if(!o)return null;t=B(o,2).find(c=>c[2]===i)?.[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[s,i]=r,o=n.aev.get(s);if(!o)return null;const c=B(o,2).find(h=>h[2]===i)?.[0];if(!c)return null;const[u,l,f,...d]=e;return[t,l,c,...d]}else{const[s,...i]=e;return[t,...i]}}function hn(n,e,t){const r=$e(n,t);if(!r)return;const[s,i,o]=r,a=e.getAttr(i);a&&(ne(n.eav,[s,i,o]),ne(n.aev,[i,s,o]),yt(a)&&ne(n.vae,[o,i,s]))}let ss=0;function pn(n,e,t){const[r,s,i]=t;let o;const a=me(n.eav,[r,s,i]);return a&&(o=a[3]),o||Date.now()*10+ss++}function yn(n,e,t){const r=$e(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=je(o));const u=me(n.eav,[s,i,o])?.[3]??pn(n,a,r),l=[s,i,o,u];ns(a)?(Q(n.eav,[s,i],new Map([[o,l]])),Q(n.aev,[i,s],new Map([[o,l]]))):(Q(n.eav,[s,i,o],l),Q(n.aev,[i,s,o],l)),yt(a)&&Q(n.vae,[o,i,s],l)}function is(n,e,t){const r=$e(n,t);if(!r)return;const[s,i,o]=r,a=e.getAttr(i);if(!a)return;if(!bt(a))throw new Error("merge operation is not supported for links");const c=me(n.eav,[s,i]);if(!c)return;const u=c.values().next()?.value;if(!u)return;const l=u[2],f=sn(l,o),d=[s,i,f,pn(n,a,u)];Q(n.eav,[s,i],new Map([[f,d]])),Q(n.aev,[i,s],new Map([[f,d]]))}function gt(n,e,t){const[r,s]=t,i=$e(n,[r]);if(!i)return;const[o]=i,a=n.eav.get(o);if(a){for(const u of a.keys()){const l=e.getAttr(u);l&&l["on-delete-reverse"]==="cascade"&&B(a.get(u),1).forEach(([f,d,h])=>gt(n,e,[h,l["reverse-identity"]?.[1]])),(!s||!l||l["forward-identity"]?.[1]===s)&&(ne(n.aev,[u,o]),ne(n.eav,[o,u]))}a.size===0&&ne(n.eav,[o])}const c=n.vae.get(o)&&B(n.vae.get(o),2);c&&c.forEach(u=>{const[l,f,d]=u,h=e.getAttr(f);(!s||!h||h["reverse-identity"]?.[1]===s)&&(ne(n.eav,[l,f,d]),ne(n.aev,[f,l,d]),ne(n.vae,[d,f,l])),h&&h["on-delete"]==="cascade"&&h["reverse-identity"]?.[1]===s&>(n,e,[l,h["forward-identity"]?.[1]])}),n.vae.get(o)?.size===0&&ne(n.vae,[o])}function bn(n,e,t){const r=un(e,t,n.useDateObjects);Object.keys(r).forEach(s=>{n[s]=r[s]})}function os(n,[e]){n.addAttr(e)}function gn(n){return B(n.eav,3)}function as(n,e,[t]){if(!e.getAttr(t))return;const r=gn(n).filter(([s,i])=>i!==t);e.deleteAttr(t),bn(n,e,r)}function cs(n,e,[t]){e.getAttr(t.id)&&(e.updateAttr(t),bn(n,e,gn(n)))}function us(n,e,t){const[r,...s]=t;switch(r){case"add-triple":yn(n,e,s);break;case"deep-merge-triple":is(n,e,s);break;case"retract-triple":hn(n,e,s);break;case"delete-entity":gt(n,e,s);break;case"add-attr":os(e,s);break;case"delete-attr":as(n,e,s);break;case"update-attr":cs(n,e,s);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${r}`)}}function B(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())B(r,e-1,t);return t}function We(n,e,t){const r=[];if(t?.hasOwnProperty("$not")){for(const i of e.keys())t.$not!==i&&r.push(e.get(i));return r}if(t?.hasOwnProperty("$isNull")){const{attrId:i,isNull:o,reverse:a}=t.$isNull;if(a)for(const c of e.keys()){const u=n.vae.get(c),l=!u||!u.get(i);(o?l:!l)&&r.push(e.get(c))}else{const c=n.aev.get(i);for(const u of e.keys()){const l=!c||c.get(u)?.get(null)||!c.get(u);(o?l:!l)&&r.push(e.get(u))}}return r}if(t?.$comparator)return B(e,1).filter(t.$op);const s=t.in||t.$in||[t];for(const i of s){const o=e.get(i);o&&r.push(o)}return r}function ls(n,e,t){let r="";return n!==void 0&&(r+="e"),e!==void 0&&(r+="a"),t!==void 0&&(r+="v"),r}function ds(n,[e,t,r]){switch(ls(e,t,r)){case"e":{const i=n.eav.get(e);return B(i,2)}case"ea":{const i=n.eav.get(e)?.get(t);return B(i,1)}case"eav":{const i=n.eav.get(e)?.get(t);return i?We(n,i,r):[]}case"ev":{const i=n.eav.get(e);if(!i)return[];const o=[];for(const a of i.values())o.push(...We(n,a,r));return o}case"a":{const i=n.aev.get(t);return B(i,2)}case"av":{const i=n.aev.get(t);if(!i)return[];const o=[];for(const a of i.values())o.push(...We(n,a,r));return o}case"v":{const i=[];for(const o of n.eav.values())for(const a of o.values())i.push(...We(n,a,r));return i}default:return B(n.eav,3)}}function fs(n,e,t){const r={};if(!e)return r;for(const[s,i]of e.entries()){const o=n.eav.get(t)?.get(i.id),a=B(o,1);for(const c of a)r[s]=c[2]}return r}function L(n,e,t){return n.forwardIdents.get(e)?.get(t)}function ye(n,e,t){return n.revIdents.get(e)?.get(t)}function hs(n,e){return n.blobAttrs.get(e)}function mn(n,e){const t=n.primaryKeys.get(e);return t||n.forwardIdents.get(e)?.get("id")}function ps(n,e,t){const r=$e(n,t);if(!r)return;const[s,i,o]=r;if(e.getAttr(i))return me(n.eav,[s,i])}function ys(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?.mode;if(u!=="create"&&u!=="update")return!0;let l=!1;const f=e.getAttr(o);if(f){const d=mn(e,f["forward-identity"][1]);l=!!ps(n,e,[i,d?.id,i])}return!(u==="create"&&l||u==="update"&&!l)});return Ke({store:n,attrsStore:e},s=>{r.forEach(i=>{us(s.store,s.attrsStore,i)})},{mark:s=>{if(s instanceof de)return"immutable"}})}function bs(n){return typeof n=="string"&&n.startsWith("?")}function gs(n,e,t){if(t.hasOwnProperty(n)){const r=t[n];return _n(r,e,t)}return{...t,[n]:e}}function wn(n,e,t){return n===e?t:null}function ms(n){return typeof n==="string"&&n.startsWith("?")?gs:wn}const ws=["in","$in","$not","$isNull","$comparator"];function _s(n){for(const e of ws)if(n.hasOwnProperty(e))return!0;return!1}function _n(n,e,t){return t?typeof n=="object"?_s(n)?t:null:ms(n)(n,e,t):null}function Ss(n,e,t){return n.reduce((r,s,i)=>{const o=e[i];return _n(s,o,r)},t)}function Ts(n,e,t){return ks(n,e,t).map(r=>Ss(e,r,t)).filter(r=>r)}function vs(n,e,t){return e.or?e.or.patterns.flatMap(r=>mt(n,r,t)):e.and?e.and.patterns.reduce((r,s)=>mt(n,s,r),t):t.flatMap(r=>Ts(n,e,r))}function mt(n,e,t=[{}]){return e.reduce((r,s)=>vs(n,s,r),t)}function wt(n,e){return Array.isArray(e)?e.map(t=>wt(n,t)):bs(e)?n[e]:e}function As(n,{find:e,where:t}){return mt(n,t).map(s=>wt(s,e))}function ks(n,e,t){return ds(n,wt(t,e))}const Os=/^(?:[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(n){return typeof n=="string"&&Os.test(n)}const F=[];for(let n=0;n<256;++n)F.push((n+256).toString(16).slice(1));function Is(n,e=0){return(F[n[e+0]]+F[n[e+1]]+F[n[e+2]]+F[n[e+3]]+"-"+F[n[e+4]]+F[n[e+5]]+"-"+F[n[e+6]]+F[n[e+7]]+"-"+F[n[e+8]]+F[n[e+9]]+"-"+F[n[e+10]]+F[n[e+11]]+F[n[e+12]]+F[n[e+13]]+F[n[e+14]]+F[n[e+15]]).toLowerCase()}let _t;const Cs=new Uint8Array(16);function Es(){if(!_t){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");_t=crypto.getRandomValues.bind(crypto)}return _t(Cs)}const Sn={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ms(n,e,t){if(Sn.randomUUID&&!n)return Sn.randomUUID();n=n||{};const r=n.random??n.rng?.()??Es();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,Is(r)}function Tn(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 Ps(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 js(n,e){return Ps(Tn(n),Tn(e))}function $(){return Ms()}function $s(n,e){return n.localeCompare(e)}function Rs(){let n=$s;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{n=Intl.Collator("en-US").compare}catch{}return n}const Ds=Rs();let vn=!0;const Us=n=>{vn=n};let xs=0;function Re(n){return Ve(`_${n}`,xs++)}function Ve(n,e){return`?${n}-${e}`}class Se extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function Ls(n,e){const t=mn(n,e);if(!t)throw new Se(`Could not find id attr for ${e}`);return t}function An(n,e,t,r){return[Ns(n,e,t,r)]}function Ns(n,e,t,r){return[n(t,r),Ls(e,t).id,n(t,r),n("time",r)]}function Fs(n,e,t){return n.map(r=>r===e?t:r)}function kn(n,e,t,r,s){const i=L(e,t,s),o=ye(e,t,s),a=i||o;if(!a)throw new Se(`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,f]=a["reverse-identity"],d=r+1,h=i?[n(u,r),a.id,n(f,d),Re("time")]:[n(u,d),a.id,n(f,r),Re("time")];return[i?f:u,d,h,a,!!i]}function On(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 qs(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=On(!0,e.$like);return{$comparator:!0,$op:function(i){return r(i[2])}}}if(e.hasOwnProperty("$ilike")){const r=On(!1,e.$ilike);return{$comparator:!0,$op:function(i){return r(i[2])}}}return e}function Ks(n,e,t,r,s,i){const o=L(e,t,s),a=ye(e,t,s),c=o||a;if(!c)throw new Se(`No attr for etype = ${t} label = ${s}`);if(i?.hasOwnProperty("$isNull")){const u=L(e,t,"id");if(!u)throw new Se(`No attr for etype = ${t} label = id`);return[n(t,r),u.id,{$isNull:{attrId:c.id,isNull:i.$isNull,reverse:!o}},Re("time")]}return o?[n(t,r),c.id,qs(c,i),Re("time")]:[i,c.id,n(t,r),Re("time")]}function zs(n,e,t,r,s){const[i,o,a]=s.reduce((c,u)=>{const[l,f,d]=c,[h,p,m]=kn(n,e,l,f,u);return[h,p,[...d,m]]},[t,r,[]]);return[i,o,a]}function St(n,e,t,r,s,i){const o=s.slice(0,s.length-1),a=s[s.length-1],[c,u,l]=zs(n,e,t,r,o),f=Ks(n,e,c,u,a,i);return l.concat([f])}function Ws(n,e){return e?[e].concat(n):n}function Vs([n,e]){return n==="or"&&Array.isArray(e)}function Qs([n,e]){return n==="and"&&Array.isArray(e)}function Bs(n,e,t){return(r,s)=>{const i=n(r,s);return e==i?i:`${i}-${t}`}}function In(n,e,t,r,s,i){const o=n(r,s),a=i.map((c,u)=>{const l=Bs(n,o,u);return En(l,t,r,s,c)});return{[e]:{patterns:a,joinSym:o}}}function Gs(n){const e=[];for(let t=1;t<=n.length;t++)e.push(n.slice(0,t));return e}function Cn(n,e,t,r,s){return Gs(s).map(i=>St(n,e,t,r,i,{$isNull:!0}))}function En(n,e,t,r,s){return Object.entries(s).flatMap(([i,o])=>{if(Vs([i,o]))return In(n,"or",e,t,r,o);if(Qs([i,o]))return In(n,"and",e,t,r,o);if(i==="$entityIdStartsWith")return[];const a=i.split(".");if(o?.hasOwnProperty("$ne")&&(o={...o,$not:o.$ne},delete o.$ne),o?.hasOwnProperty("$not")){const c=St(n,e,t,r,a,o),u=Cn(n,e,t,r,a);return[{or:{patterns:[c,...u],joinSym:n(t,r)}}]}return o?.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Cn(n,e,t,r,a),joinSym:n(t,r)}}]:St(n,e,t,r,a,o)})}function Hs(n,e,t,r){const s=Ve;return r?En(s,n,e,t,r).concat(An(s,n,e,t)):An(s,n,e,t)}function Js(n,e,t){return[n(e,t),n("time",t)]}function Ys(n,e,t,r,s,i){const[o,a,c,u,l]=kn(n,e,t,r,s),f=Fs(c,n(t,r),i);return[o,a,f,u,l]}function Zs(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(h){const p=!!(e.cardinalityInference&&t.linkIndex?.[r]?.[h]?.isSingular);try{const[m,g,y]=Ys(n,t,r,s,h,u),b=jn(e,t,{etype:m,level:g,form:i[h],join:y}),_=p?b[0]:b;return{[h]:_}}catch(m){if(m instanceof Se)return{[h]:p?void 0:[]};throw m}}).reduce(function(h,p){return{...h,...p}},l)}):Object.values(o)}function Xs(n,e,t){return t==="string"?Ds(n,e):n>e?1:-1}function De(n,e,t,r,s){return e===r||e==null&&r==null?js(n,t):r==null?1:e==null?-1:Xs(e,r,s)}function Qe([n,e],[t,r],s){return De(n,e,t,r,s)}function Tt(n){return n==null?n:new Date(n).getTime()}function Mn(n,e,t){const[r,s,i,o]=n;if(e["forward-identity"]?.[2]==="id")return Qe(t,[r,o],null);const[a,c]=t,u=e["checked-data-type"],l=u==="date"?Tt(c):c,f=u==="date"?Tt(i):i;return Qe([a,l],[r,f],u)}function ei(n,e,t,r){const s=Mn(n,e,r);return t==="desc"?s>0:s<0}function ti(n,e,t,r){const s=Mn(n,e,r);return t==="desc"?s<0:s>0}function ni(n,e){const t=e[1];return n.getAttr(t)}function ri(n,e,t){const r=Object.keys(t)[0];return L(n,e,r)}function si(n,e,t,r){if(t)return ni(n,t);if(r)return ri(n,e,r)}function ii(n,e,t){if(!Array.isArray(t.fields))return hs(n,e);const r=new Map;for(const s of t.fields){const i=L(n,e,s),o=i?.["forward-identity"]?.[2];o&&bt(i)&&r.set(o,i)}if(!r.has("id")){const s=L(n,e,"id"),i=s?.["forward-identity"]?.[2];i&&r.set(i,s)}return r}function oi(n,e,{etype:t,pageInfo:r,dq:s,form:i}){const o=i?.$?.order,a=Pn(i),c=ai(i);let u=As(n,s);const l=r?.["start-cursor"],f=r?.["end-cursor"],d=si(e,t,l,o);if(d&&d?.["forward-identity"]?.[2]!=="id"){const m=d["checked-data-type"]==="date",g=d.id;u=u.map(([y])=>{let b=n.eav.get(y)?.get(g)?.values()?.next()?.value?.[2];return m&&(b=Tt(b)),[y,b]})}u.sort(c==="asc"?function(g,y){return Qe(g,y,d?.["checked-data-type"])}:function(g,y){return Qe(y,g,d?.["checked-data-type"])});let h={};const p=ii(e,t,s);for(const m of u){const[g]=m;if(h[g]||!a&&l&&d&&ei(l,d,c,m)||f&&d&&ti(f,d,c,m))continue;const y=fs(n,p,g);y&&(h[g]=y)}return h}function ai(n){const e=n.$?.order;return e&&e[Object.keys(e)[0]]||"asc"}function Pn(n){const e=n.$?.offset,t=n.$?.before,r=n.$?.after;return!e&&!t&&!r}function ci(n,e,{etype:t,level:r,form:s,join:i,pageInfo:o}){if(!Pn(s)&&(!o||!o["start-cursor"]))return[];const a=Ws(Hs(e,t,r,s.$?.where),i),c=Js(Ve,t,r),u=s.$?.fields,l=oi(n,e,{etype:t,pageInfo:o,form:s,dq:{where:a,find:c,fields:u}}),f=s.$?.limit||s.$?.first||s.$?.last;if(f!=null){r>0&&vn&&console.warn("WARNING: Limits in child queries are only run client-side. Data returned from the server will not have a limit.");const d=Object.entries(l);return d.length<=f?l:Object.fromEntries(d.slice(0,f))}return l}function ui(n,e,t){try{return ci(n,e,t)}catch(r){if(r instanceof Se)return{};throw r}}function jn(n,e,t){const r=ui(n,e,t);return Zs(Ve,n,e,t,r)}function li(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 vt({store:n,attrsStore:e,pageInfo:t,aggregate:r},s){const o={data:Object.keys(s).reduce(function(c,u){return r?.[u]||u==="$$ruleParams"||(c[u]=jn(n,e,{etype:u,form:s[u],level:0,pageInfo:t?.[u]})),c},{})};return t&&(o.pageInfo=li(t)),r&&(o.aggregate=r),o}function di(){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 fi=di();function Be(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(fi.has(i))return(o,a)=>Be(n,e,[...t,a?[i,n,e,o,a]:[i,n,e,o]])}})}function $n(n,e){return`lookup__${n}__${JSON.stringify(e)}`}function Ge(n){return n.startsWith("lookup__")}function At(n){const[e,t,...r]=n.split("__");return[t,JSON.parse(r.join("__"))]}function hi(n){return new Proxy({__etype:n},{get(e,t){if(t==="lookup")return(s,i)=>Be(n,At($n(s,i)),[]);if(t==="__etype")return n;const r=t;return Ge(r)?Be(n,At(r),[]):Be(n,r,[])}})}function kt(){return new Proxy({},{get(n,e){return hi(e)}})}const pi=kt();function Rn(n){return n.__ops}function yi(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 bi(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 gi(n,e,t){return t.indexOf(".")!==-1&&!L(n,e,t)}function Ot(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 mi(n,e,t){if(!gi(n,e,t))return L(n,e,t);const r=Ot(t),s=L(n,e,r)||ye(n,e,r);if(s&&s["value-type"]!=="ref")throw new Error(`${t} does not reference a valid link attribute.`);return s}function It(n){return typeof n=="string"&&!Ge(n)?null:typeof n=="string"&&Ge(n)?At(n):bi(n)}function G(n,e,t){const r=It(t);if(r===null)return t;const[s,i]=r,o=mi(n,e,s);if(!o||!o["unique?"])throw new Error(`${s} is not a unique attribute.`);return[o.id,i]}function Dn(n,e,t,r){const s=G(n,e,t);return Array.isArray(s)?[["add-triple",s,L(n,e,"id")?.id,s]].concat(r):r}function wi({attrsStore:n},[e,t,r]){const s=Object.entries(r).flatMap(([i,o])=>{const a=Array.isArray(o)?o:[o],c=L(n,e,i),u=ye(n,e,i);return a.map(l=>c?["add-triple",G(n,e,t),c.id,G(n,c["reverse-identity"][1],l)]:["add-triple",G(n,u["forward-identity"][1],l),u?.id,G(n,e,t)])});return Dn(n,e,t,s)}function _i({attrsStore:n},[e,t,r]){const s=Object.entries(r).flatMap(([i,o])=>{const a=Array.isArray(o)?o:[o],c=L(n,e,i),u=ye(n,e,i);return a.map(l=>c?["retract-triple",G(n,e,t),c.id,G(n,c["reverse-identity"][1],l)]:["retract-triple",G(n,u["forward-identity"][1],l),u.id,G(n,e,t)])});return Dn(n,e,t,s)}function Si(n,e,t,r){if(Array.isArray(r)){const[s,i]=r;for(const o of n||[]){const a=o?.aev.get(s);if(a){for(const[c,u,l]of B(a,2))if(l===i)return!0}}}else for(const s of n||[]){const i=s?.eav.get(r);if(i){for(const o of i.keys())if(e.getAttr(o)?.["forward-identity"][1]==t)return!0}}return!1}function Un({stores:n,attrsStore:e},[t,r,s,i]){return i?.upsert===!1?{mode:"update"}:i?.upsert===!0?null:Si(n,e,t,r)?{mode:"update"}:null}function Ti(n,e){const{attrsStore:t}=n,[r,s,i,o]=e,a=ht(i),c=G(t,r,s);return[["id",c]].concat(Object.entries(a)).map(([l,f])=>{const d=L(t,r,l);return d["checked-data-type"]==="date"&&n.useDateObjects&&(f=je(f)),["add-triple",c,d.id,f,{mode:"create"}]})}function vi(n,e){const{attrsStore:t}=n,[r,s,i,o]=e,a=ht(i),c=G(t,r,s),u=Un(n,[r,c,i,o]);return[["id",c]].concat(Object.entries(a)).map(([f,d])=>{const h=L(t,r,f);return h["checked-data-type"]==="date"&&n.useDateObjects&&(d=je(d)),["add-triple",c,h.id,d,...u?[u]:[]]})}function Ai({attrsStore:n},[e,t]){return[["delete-entity",G(n,e,t),e]]}function ki(n,e){const{attrsStore:t}=n,[r,s,i,o]=e,a=ht(i),c=G(t,r,s),u=Un(n,[r,c,i,o]),l=Object.entries(a).map(([d,h])=>{const p=L(t,r,d);return["deep-merge-triple",c,p.id,h,...u?[u]:[]]});return[["add-triple",c,L(t,r,"id").id,c,...u?[u]:[]]].concat(l)}function Oi({attrsStore:n},[e,t,r]){return[["rule-params",G(n,e,t),e,r]]}function Ii(n){const[e,t,r,s,i]=n;if(!s)return n;const o={...s};return delete o.id,[e,t,r,o,...i?[i]:[]]}function Ci(n,e){const[t,...r]=Ii(e);switch(t){case"merge":return ki(n,r);case"create":return Ti(n,r);case"update":return vi(n,r);case"link":return wi(n,r);case"unlink":return _i(n,r);case"delete":return Ai(n,r);case"ruleParams":return Oi(n,r);default:throw new Error(`unsupported action ${t}`)}}function Ei(n){switch(n){case"string":case"date":case"boolean":case"number":return n;default:return}}function Mi(n,e,t){const r=n.entities[e]?.attrs?.[t];if(t==="id")return null;if(!r)throw new Error(`${e}.${t} does not exist in your schema`);const{unique:s,indexed:i}=r?.config,o=Ei(r?.valueType);return{"index?":i,"unique?":s,"checked-data-type":o}}function He(n,e,t,r){const s=n?Mi(n,e,t):null,i=$(),a=[$(),e,t];return{id:i,"forward-identity":a,"value-type":"blob",cardinality:"one","unique?":!1,"index?":!1,isUnsynced:!0,...s||{},...r||{}}}function Pi(n,e,t){return Object.values(n.links).find(i=>i.forward.on===e&&i.forward.label===t||i.reverse.on===e&&i.reverse.label===t)}function ji(n,e,t){const r=Pi(n,e,t);if(!r)throw new Error(`Couldn't find the link ${e}.${t} in your schema`);con