@instantdb/solidjs 1.0.36 → 1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
|
-
> @instantdb/solidjs@1.0.
|
|
2
|
+
> @instantdb/solidjs@1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1 build /home/runner/work/instant/instant/client/packages/solidjs
|
|
3
3
|
> rm -rf dist; npm run build:tshy && npm run build:standalone && npm run check-exports
|
|
4
4
|
|
|
5
5
|
npm warn Unknown env config "verify-deps-before-run". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
|
|
6
6
|
npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
|
|
7
7
|
|
|
8
|
-
> @instantdb/solidjs@1.0.
|
|
8
|
+
> @instantdb/solidjs@1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1 build:tshy
|
|
9
9
|
> tshy
|
|
10
10
|
|
|
11
11
|
npm warn Unknown env config "verify-deps-before-run". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
|
|
12
12
|
npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
|
|
13
13
|
|
|
14
|
-
> @instantdb/solidjs@1.0.
|
|
14
|
+
> @instantdb/solidjs@1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1 build:standalone
|
|
15
15
|
> vite build
|
|
16
16
|
|
|
17
17
|
[36mvite v5.4.14 [32mbuilding for production...[36m[39m
|
|
@@ -19,17 +19,17 @@ transforming...
|
|
|
19
19
|
[32m✓[39m 71 modules transformed.
|
|
20
20
|
rendering chunks...
|
|
21
21
|
computing gzip size...
|
|
22
|
-
[2mdist/standalone/[22m[36mindex.umd.cjs [39m[1m[2m159.
|
|
23
|
-
[2mdist/standalone/[22m[36mindex.js [39m[1m[2m244.
|
|
24
|
-
[32m✓ built in 1.
|
|
22
|
+
[2mdist/standalone/[22m[36mindex.umd.cjs [39m[1m[2m159.98 kB[22m[1m[22m[2m │ gzip: 48.80 kB[22m
|
|
23
|
+
[2mdist/standalone/[22m[36mindex.js [39m[1m[2m244.16 kB[22m[1m[22m[2m │ gzip: 63.06 kB[22m
|
|
24
|
+
[32m✓ built in 1.57s[39m
|
|
25
25
|
npm warn Unknown env config "verify-deps-before-run". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
|
|
26
26
|
npm warn Unknown user config "always-auth". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
|
|
27
27
|
|
|
28
|
-
> @instantdb/solidjs@1.0.
|
|
28
|
+
> @instantdb/solidjs@1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1 check-exports
|
|
29
29
|
> attw --pack .
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
@instantdb/solidjs v1.0.
|
|
32
|
+
@instantdb/solidjs v1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1
|
|
33
33
|
|
|
34
34
|
Build tools:
|
|
35
35
|
- @arethetypeswrong/cli@^0.17.4
|
package/dist/standalone/index.js
CHANGED
|
@@ -3506,7 +3506,7 @@ function $n(t) {
|
|
|
3506
3506
|
}, e;
|
|
3507
3507
|
}, {});
|
|
3508
3508
|
}
|
|
3509
|
-
const cn = "v1.0.
|
|
3509
|
+
const cn = "v1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1";
|
|
3510
3510
|
function $o(t, e) {
|
|
3511
3511
|
return {
|
|
3512
3512
|
info: t ? (...n) => console.info(...n, e()) : () => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
(function(R,D){typeof exports=="object"&&typeof module<"u"?D(exports):typeof define=="function"&&define.amd?define(["exports"],D):(R=typeof globalThis<"u"?globalThis:R||self,D(R.instantSolidjs={}))})(this,function(R){"use strict";var lc=Object.defineProperty;var fc=(R,D,F)=>D in R?lc(R,D,{enumerable:!0,configurable:!0,writable:!0,value:F}):R[D]=F;var h=(R,D,F)=>fc(R,typeof D!="symbol"?D+"":D,F);function D(t){if(typeof t=="number")return(Math.abs(t*2654435761)>>>0).toString(16);if(typeof t=="boolean")return t?"1":"0";if(t===null)return"null";if(t===void 0)return"undefined";if(typeof t=="string"){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24),e=e>>>0;return e.toString(16)}if(Array.isArray(t)){let e=2166136261;for(let n=0;n<t.length;n++){e^=(n+1)*2654435761;const r=D(t[n]);for(let s=0;s<r.length;s++)e^=r.charCodeAt(s),e*=16777619,e=e>>>0}return e.toString(16)}if(typeof t=="object"){let e=2166136261;const n=Object.keys(t).sort();for(let r=0;r<n.length;r++){const s=n[r];if(t[s]===void 0)continue;const i=D(s);e^=parseInt(i,16),e*=16777619,e=e>>>0;const o=D(t[s]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return D(String(t))}const F={Remove:"remove",Replace:"replace",Add:"add"},ln=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Gr=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),Be=Symbol.iterator,ie={mutable:"mutable",immutable:"immutable"},mt={};function De(t,e){return t instanceof Map?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function fn(t,e){if(e in t){let n=Reflect.getPrototypeOf(t);for(;n;){const r=Reflect.getOwnPropertyDescriptor(n,e);if(r)return r;n=Reflect.getPrototypeOf(n)}}}function St(t){return Object.getPrototypeOf(t)===Set.prototype}function Tt(t){return Object.getPrototypeOf(t)===Map.prototype}function oe(t){var e;return(e=t.copy)!==null&&e!==void 0?e:t.original}function _e(t){return!!E(t)}function E(t){return typeof t!="object"?null:t==null?void 0:t[ln]}function vt(t){var e;const n=E(t);return n?(e=n.copy)!==null&&e!==void 0?e:n.original:t}function ue(t,e){if(!t||typeof t!="object")return!1;let n;return Object.getPrototypeOf(t)===Object.prototype||Array.isArray(t)||t instanceof Map||t instanceof Set||!!(e!=null&&e.mark)&&((n=e.mark(t,ie))===ie.immutable||typeof n=="function")}function dn(t,e=[]){if(Object.hasOwnProperty.call(t,"key")){const n=t.parent.copy,r=E(be(n,t.key));if(r!==null&&(r==null?void 0:r.original)!==t.original)return null;const s=t.parent.type===3,i=s?Array.from(t.parent.setMap.keys()).indexOf(t.key):t.key;if(!(s&&n.size>i||De(n,i)))return null;e.push(i)}if(t.parent)return dn(t.parent,e);e.reverse();try{Hr(t.copy,e)}catch{return null}return e}function me(t){return Array.isArray(t)?1:t instanceof Map?2:t instanceof Set?3:0}function be(t,e){return me(t)===2?t.get(e):t[e]}function xe(t,e,n){me(t)===2?t.set(e,n):t[e]=n}function At(t,e){const n=E(t);return(n?oe(n):t)[e]}function ge(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function kt(t){if(t)for(;t.finalities.revoke.length>0;)t.finalities.revoke.pop()()}function Se(t,e){return e?t:[""].concat(t).map(n=>{const r=`${n}`;return r.indexOf("/")===-1&&r.indexOf("~")===-1?r:r.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")}function Hr(t,e){for(let n=0;n<e.length-1;n+=1){const r=e[n];if(t=be(me(t)===3?Array.from(t):t,r),typeof t!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return t}function Jr(t){const e=Object.create(Object.getPrototypeOf(t));return Reflect.ownKeys(t).forEach(n=>{let r=Reflect.getOwnPropertyDescriptor(t,n);if(r.enumerable&&r.configurable&&r.writable){e[n]=t[n];return}r.writable||(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(r={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[n]}),Reflect.defineProperty(e,n,r)}),e}const Yr=Object.prototype.propertyIsEnumerable;function hn(t,e){let n;if(Array.isArray(t))return Array.prototype.concat.call(t);if(t instanceof Set){if(!St(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t.values())}return Set.prototype.difference?Set.prototype.difference.call(t,new Set):new Set(t.values())}else if(t instanceof Map){if(!Tt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t)}return new Map(t)}else if(e!=null&&e.mark&&(n=e.mark(t,ie),n!==void 0)&&n!==ie.mutable){if(n===ie.immutable)return Jr(t);if(typeof n=="function"){if(e.enablePatches||e.enableAutoFreeze)throw new Error("You can't use mark and patches or auto freeze together.");return n()}throw new Error(`Unsupported mark result: ${n}`)}else if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype){const r={};return Object.keys(t).forEach(s=>{r[s]=t[s]}),Object.getOwnPropertySymbols(t).forEach(s=>{Yr.call(t,s)&&(r[s]=t[s])}),r}else throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function ee(t){t.copy||(t.copy=hn(t.original,t.options))}function Ue(t){if(!ue(t))return vt(t);if(Array.isArray(t))return t.map(Ue);if(t instanceof Map){const n=Array.from(t.entries()).map(([r,s])=>[r,Ue(s)]);if(!Tt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Map(n)}if(t instanceof Set){const n=Array.from(t).map(Ue);if(!St(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Set(n)}const e=Object.create(Object.getPrototypeOf(t));for(const n in t)e[n]=Ue(t[n]);return e}function Ge(t){return _e(t)?Ue(t):t}function de(t){var e;t.assignedMap=(e=t.assignedMap)!==null&&e!==void 0?e:new Map,t.operated||(t.operated=!0,t.parent&&de(t.parent))}function pn(){throw new Error("Cannot modify frozen object")}function Oe(t,e,n,r,s){{n=n??new WeakMap,r=r??[],s=s??[];const o=n.has(t)?n.get(t):t;if(r.length>0){const a=r.indexOf(o);if(o&&typeof o=="object"&&a!==-1)throw r[0]===o?new Error("Forbids circular reference"):new Error(`Forbids circular reference: ~/${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(t)||_e(t)){r.pop(),s.pop();return}switch(me(t)){case 2:for(const[a,c]of t)Oe(a,a,n,r,s),Oe(c,a,n,r,s);t.set=t.clear=t.delete=pn;break;case 3:for(const a of t)Oe(a,a,n,r,s);t.add=t.clear=t.delete=pn;break;case 1:Object.freeze(t);let o=0;for(const a of t)Oe(a,o,n,r,s),o+=1;break;default:Object.freeze(t),Object.keys(t).forEach(a=>{const c=t[a];Oe(c,a,n,r,s)})}r.pop(),s.pop()}function Ot(t,e){const n=me(t);if(n===0)Reflect.ownKeys(t).forEach(r=>{e(r,t[r],t)});else if(n===1){let r=0;for(const s of t)e(r,s,t),r+=1}else t.forEach((r,s)=>e(s,r,t))}function yn(t,e,n){if(_e(t)||!ue(t,n)||e.has(t)||Object.isFrozen(t))return;const r=t instanceof Set,s=r?new Map:void 0;if(e.add(t),Ot(t,(i,o)=>{var a;if(_e(o)){const c=E(o);ee(c);const u=!((a=c.assignedMap)===null||a===void 0)&&a.size||c.operated?c.copy:c.original;xe(r?s:t,i,u)}else yn(o,e,n)}),s){const i=t,o=Array.from(i);i.clear(),o.forEach(a=>{i.add(s.has(a)?s.get(a):a)})}}function Zr(t,e){const n=t.type===3?t.setMap:t.copy;t.finalities.revoke.length>1&&t.assignedMap.get(e)&&n&&yn(be(n,e),t.finalities.handledSet,t.options)}function It(t){t.type===3&&t.copy&&(t.copy.clear(),t.setMap.forEach(e=>{t.copy.add(vt(e))}))}function Ct(t,e,n,r){if(t.operated&&t.assignedMap&&t.assignedMap.size>0&&!t.finalized){if(n&&r){const i=dn(t);i&&e(t,i,n,r)}t.finalized=!0}}function Et(t,e,n,r){const s=E(n);s&&(s.callbacks||(s.callbacks=[]),s.callbacks.push((i,o)=>{var a;const c=t.type===3?t.setMap:t.copy;if(ge(be(c,e),n)){let u=s.original;s.copy&&(u=s.copy),It(t),Ct(t,r,i,o),t.options.enableAutoFreeze&&(t.options.updatedValues=(a=t.options.updatedValues)!==null&&a!==void 0?a:new WeakMap,t.options.updatedValues.set(u,s.original)),xe(c,e,u)}}),t.options.enableAutoFreeze&&s.finalities!==t.finalities&&(t.options.enableAutoFreeze=!1)),ue(n,t.options)&&t.finalities.draft.push(()=>{const i=t.type===3?t.setMap:t.copy;ge(be(i,e),n)&&Zr(t,e)})}function Xr(t,e,n,r,s){let{original:i,assignedMap:o,options:a}=t,c=t.copy;c.length<i.length&&([i,c]=[c,i],[n,r]=[r,n]);for(let u=0;u<i.length;u+=1)if(o.get(u.toString())&&c[u]!==i[u]){const l=e.concat([u]),f=Se(l,s);n.push({op:F.Replace,path:f,value:Ge(c[u])}),r.push({op:F.Replace,path:f,value:Ge(i[u])})}for(let u=i.length;u<c.length;u+=1){const l=e.concat([u]),f=Se(l,s);n.push({op:F.Add,path:f,value:Ge(c[u])})}if(i.length<c.length){const{arrayLengthAssignment:u=!0}=a.enablePatches;if(u){const l=e.concat(["length"]),f=Se(l,s);r.push({op:F.Replace,path:f,value:i.length})}else for(let l=c.length;i.length<l;l-=1){const f=e.concat([l-1]),d=Se(f,s);r.push({op:F.Remove,path:d})}}}function es({original:t,copy:e,assignedMap:n},r,s,i,o){n.forEach((a,c)=>{const u=be(t,c),l=Ge(be(e,c)),f=a?De(t,c)?F.Replace:F.Add:F.Remove;if(ge(u,l)&&f===F.Replace)return;const d=r.concat(c),p=Se(d,o);s.push(f===F.Remove?{op:f,path:p}:{op:f,path:p,value:l}),i.push(f===F.Add?{op:F.Remove,path:p}:f===F.Remove?{op:F.Add,path:p,value:u}:{op:F.Replace,path:p,value:u})})}function ts({original:t,copy:e},n,r,s,i){let o=0;t.forEach(a=>{if(!e.has(a)){const c=n.concat([o]),u=Se(c,i);r.push({op:F.Remove,path:u,value:a}),s.unshift({op:F.Add,path:u,value:a})}o+=1}),o=0,e.forEach(a=>{if(!t.has(a)){const c=n.concat([o]),u=Se(c,i);r.push({op:F.Add,path:u,value:a}),s.unshift({op:F.Remove,path:u,value:a})}o+=1})}function Le(t,e,n,r){const{pathAsArray:s=!0}=t.options.enablePatches;switch(t.type){case 0:case 2:return es(t,e,n,r,s);case 1:return Xr(t,e,n,r,s);case 3:return ts(t,e,n,r,s)}}const He=(t,e,n=!1)=>{if(typeof t=="object"&&t!==null&&(!ue(t,e)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},Pt={get size(){return oe(E(this)).size},has(t){return oe(E(this)).has(t)},set(t,e){const n=E(this),r=oe(n);return(!r.has(t)||!ge(r.get(t),e))&&(ee(n),de(n),n.assignedMap.set(t,!0),n.copy.set(t,e),Et(n,t,e,Le)),this},delete(t){if(!this.has(t))return!1;const e=E(this);return ee(e),de(e),e.original.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.copy.delete(t),!0},clear(){const t=E(this);if(this.size){ee(t),de(t),t.assignedMap=new Map;for(const[e]of t.original)t.assignedMap.set(e,!1);t.copy.clear()}},forEach(t,e){const n=E(this);oe(n).forEach((r,s)=>{t.call(e,this.get(s),s,this)})},get(t){var e,n;const r=E(this),s=oe(r).get(t),i=((n=(e=r.options).mark)===null||n===void 0?void 0:n.call(e,s,ie))===ie.mutable;if(r.options.strict&&He(s,r.options,i),i||r.finalized||!ue(s,r.options)||s!==r.original.get(t))return s;const o=mt.createDraft({original:s,parentDraft:r,key:t,finalities:r.finalities,options:r.options});return ee(r),r.copy.set(t,o),o},keys(){return oe(E(this)).keys()},values(){const t=this.keys();return{[Be]:()=>this.values(),next:()=>{const e=t.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const t=this.keys();return{[Be]:()=>this.entries(),next:()=>{const e=t.next();if(e.done)return e;const n=this.get(e.value);return{done:!1,value:[e.value,n]}}}},[Be](){return this.entries()}},ns=Reflect.ownKeys(Pt),bn=(t,e,{isValuesIterator:n})=>()=>{var r,s;const i=e.next();if(i.done)return i;const o=i.value;let a=t.setMap.get(o);const c=E(a),u=((s=(r=t.options).mark)===null||s===void 0?void 0:s.call(r,a,ie))===ie.mutable;if(t.options.strict&&He(o,t.options,u),!u&&!c&&ue(o,t.options)&&!t.finalized&&t.original.has(o)){const l=mt.createDraft({original:o,parentDraft:t,key:o,finalities:t.finalities,options:t.options});t.setMap.set(o,l),a=l}else c&&(a=c.proxy);return{done:!1,value:n?a:[a,a]}},Je={get size(){return E(this).setMap.size},has(t){const e=E(this);if(e.setMap.has(t))return!0;ee(e);const n=E(t);return!!(n&&e.setMap.has(n.original))},add(t){const e=E(this);return this.has(t)||(ee(e),de(e),e.assignedMap.set(t,!0),e.setMap.set(t,t),Et(e,t,t,Le)),this},delete(t){if(!this.has(t))return!1;const e=E(this);ee(e),de(e);const n=E(t);return n&&e.setMap.has(n.original)?(e.assignedMap.set(n.original,!1),e.setMap.delete(n.original)):(!n&&e.setMap.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.setMap.delete(t))},clear(){if(!this.size)return;const t=E(this);ee(t),de(t);for(const e of t.original)t.assignedMap.set(e,!1);t.setMap.clear()},values(){const t=E(this);ee(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:bn(t,e,{isValuesIterator:!0})}},entries(){const t=E(this);ee(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:bn(t,e,{isValuesIterator:!1})}},keys(){return this.values()},[Be](){return this.values()},forEach(t,e){const n=this.values();let r=n.next();for(;!r.done;)t.call(e,r.value,r.value,this),r=n.next()}};Set.prototype.difference&&Object.assign(Je,{intersection(t){return Set.prototype.intersection.call(new Set(this.values()),t)},union(t){return Set.prototype.union.call(new Set(this.values()),t)},difference(t){return Set.prototype.difference.call(new Set(this.values()),t)},symmetricDifference(t){return Set.prototype.symmetricDifference.call(new Set(this.values()),t)},isSubsetOf(t){return Set.prototype.isSubsetOf.call(new Set(this.values()),t)},isSupersetOf(t){return Set.prototype.isSupersetOf.call(new Set(this.values()),t)},isDisjointFrom(t){return Set.prototype.isDisjointFrom.call(new Set(this.values()),t)}});const rs=Reflect.ownKeys(Je),gn=new WeakSet,wn={get(t,e,n){var r,s;const i=(r=t.copy)===null||r===void 0?void 0:r[e];if(i&&gn.has(i))return i;if(e===ln)return t;let o;if(t.options.mark){const u=e==="size"&&(t.original instanceof Map||t.original instanceof Set)?Reflect.get(t.original,e):Reflect.get(t.original,e,n);if(o=t.options.mark(u,ie),o===ie.mutable)return t.options.strict&&He(u,t.options,!0),u}const a=oe(t);if(a instanceof Map&&ns.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Pt,"size").get.call(t.proxy);const u=Pt[e];if(u)return u.bind(t.proxy)}if(a instanceof Set&&rs.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Je,"size").get.call(t.proxy);const u=Je[e];if(u)return u.bind(t.proxy)}if(!De(a,e)){const u=fn(a,e);return u?"value"in u?u.value:(s=u.get)===null||s===void 0?void 0:s.call(t.proxy):void 0}const c=a[e];if(t.options.strict&&He(c,t.options),t.finalized||!ue(c,t.options))return c;if(c===At(t.original,e)){if(ee(t),t.copy[e]=Mt({original:t.original[e],parentDraft:t,key:t.type===1?Number(e):e,finalities:t.finalities,options:t.options}),typeof o=="function"){const u=E(t.copy[e]);return ee(u),de(u),u.copy}return t.copy[e]}return c},set(t,e,n){var r;if(t.type===3||t.type===2)throw new Error("Map/Set draft does not support any property assignment.");let s;if(t.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=fn(oe(t),e);if(i!=null&&i.set)return i.set.call(t.proxy,n),!0;const o=At(oe(t),e),a=E(o);return a&&ge(a.original,n)?(t.copy[e]=n,t.assignedMap=(r=t.assignedMap)!==null&&r!==void 0?r:new Map,t.assignedMap.set(e,!1),!0):(ge(n,o)&&(n!==void 0||De(t.original,e))||(ee(t),de(t),De(t.original,e)&&ge(n,t.original[e])?t.assignedMap.delete(e):t.assignedMap.set(e,!0),t.copy[e]=n,Et(t,e,n,Le)),!0)},has(t,e){return e in oe(t)},ownKeys(t){return Reflect.ownKeys(oe(t))},getOwnPropertyDescriptor(t,e){const n=oe(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.type!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},getPrototypeOf(t){return Reflect.getPrototypeOf(t.original)},setPrototypeOf(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty(t,e){var n;return t.type===1?wn.set.call(this,t,e,void 0,t.proxy):(At(t.original,e)!==void 0||e in t.original?(ee(t),de(t),t.assignedMap.set(e,!1)):(t.assignedMap=(n=t.assignedMap)!==null&&n!==void 0?n:new Map,t.assignedMap.delete(e)),t.copy&&delete t.copy[e],!0)}};function Mt(t){const{original:e,parentDraft:n,key:r,finalities:s,options:i}=t,o=me(e),a={type:o,finalized:!1,parent:n,original:e,copy:null,proxy:null,finalities:s,options:i,setMap:o===3?new Map(e.entries()):void 0};(r||"key"in t)&&(a.key=r);const{proxy:c,revoke:u}=Proxy.revocable(o===1?Object.assign([],a):a,wn);if(s.revoke.push(u),gn.add(c),a.proxy=c,n){const l=n;l.finalities.draft.push((f,d)=>{var p,y;const b=E(c);let g=l.type===3?l.setMap:l.copy;const _=be(g,r),w=E(_);if(w){let m=w.original;w.operated&&(m=vt(_)),It(w),Ct(w,Le,f,d),l.options.enableAutoFreeze&&(l.options.updatedValues=(p=l.options.updatedValues)!==null&&p!==void 0?p:new WeakMap,l.options.updatedValues.set(m,w.original)),xe(g,r,m)}(y=b.callbacks)===null||y===void 0||y.forEach(m=>{m(f,d)})})}else{const l=E(c);l.finalities.draft.push((f,d)=>{It(l),Ct(l,Le,f,d)})}return c}mt.createDraft=Mt;function ss(t,e,n,r,s){var i;const o=E(t),a=(i=o==null?void 0:o.original)!==null&&i!==void 0?i:t,c=!!e.length;if(o!=null&&o.operated)for(;o.finalities.draft.length>0;)o.finalities.draft.pop()(n,r);const u=c?e[0]:o?o.operated?o.copy:o.original:t;return o&&kt(o),s&&Oe(u,u,o==null?void 0:o.options.updatedValues),[u,n&&c?[{op:F.Replace,path:[],value:e[0]}]:n,r&&c?[{op:F.Replace,path:[],value:a}]:r]}function is(t,e){var n;const r={draft:[],revoke:[],handledSet:new WeakSet};let s,i;e.enablePatches&&(s=[],i=[]);const a=((n=e.mark)===null||n===void 0?void 0:n.call(e,t,ie))===ie.mutable||!ue(t,e)?t:Mt({original:t,parentDraft:null,finalities:r,options:e});return[a,(c=[])=>{const[u,l,f]=ss(a,c,s,i,e.enableAutoFreeze);return e.enablePatches?[u,l,f]:u}]}function $t(t){const{rootDraft:e,value:n,useRawReturn:r=!1,isRoot:s=!0}=t;Ot(n,(i,o,a)=>{const c=E(o);if(c&&e&&c.finalities===e.finalities){t.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 xe(a,i,u)}else typeof o=="object"&&o!==null&&(t.value=o,t.isRoot=!1,$t(t))}),s&&(t.isContainDraft||console.warn("The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance."),r&&console.warn("The return value contains drafts, please don't use 'rawReturn()' to wrap the return value."))}function _n(t){var e;const n=E(t);if(!ue(t,n==null?void 0:n.options))return t;const r=me(t);if(n&&!n.operated)return n.original;let s;function i(){s=r===2?Tt(t)?new Map(t):new(Object.getPrototypeOf(t)).constructor(t):r===3?Array.from(n.setMap.values()):hn(t,n==null?void 0:n.options)}if(n){n.finalized=!0;try{i()}finally{n.finalized=!1}}else s=t;if(Ot(s,(o,a)=>{if(n&&ge(be(n.original,o),a))return;const c=_n(a);c!==a&&(s===t&&i(),xe(s,o,c))}),r===3){const o=(e=n==null?void 0:n.original)!==null&&e!==void 0?e:s;return St(o)?new Set(s):new(Object.getPrototypeOf(o)).constructor(s)}return s}function mn(t){if(!_e(t))throw new Error(`current() is only used for Draft, parameter: ${t}`);return _n(t)}const Ye=(t=>function e(n,r,s){var i,o,a;if(typeof n=="function"&&typeof r!="function")return function(S,...M){return e(S,O=>n.call(this,O,...M),r)};const c=n,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({},t),l);const f=_e(c)?mn(c):c,d=Array.isArray(l.mark)?(S,M)=>{for(const O of l.mark){if(typeof O!="function")throw new Error(`Invalid mark: ${O}, 'mark' should be a function.`);const k=O(S,M);if(k)return k}}:l.mark,p=(i=l.enablePatches)!==null&&i!==void 0?i:!1,y=(o=l.strict)!==null&&o!==void 0?o:!1,g={enableAutoFreeze:(a=l.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:d,strict:y,enablePatches:p};if(!ue(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[_,w]=is(f,g);if(typeof r!="function"){if(!ue(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[_,w]}let m;try{m=u(_)}catch(S){throw kt(E(_)),S}const I=S=>{const M=E(_);if(!_e(S)){if(S!==void 0&&!ge(S,_)&&(M!=null&&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=S==null?void 0:S[Gr];if(k){const z=k[0];return g.strict&&typeof S=="object"&&S!==null&&$t({rootDraft:M,value:S,useRawReturn:!0}),w([z])}if(S!==void 0)return typeof S=="object"&&S!==null&&$t({rootDraft:M,value:S}),w([S])}if(S===_||S===void 0)return w([]);const O=E(S);if(g===O.options){if(O.operated)throw new Error("Cannot return a modified child draft.");return w([mn(S)])}return w([S])};return m instanceof Promise?m.then(I,S=>{throw kt(E(_)),S}):I(m)})();Object.prototype.constructor.toString();function Sn(t,e){const n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&Object.keys(t).every(s=>e.hasOwnProperty(s))}function Tn(t,e){return Object.keys(t).length===Object.keys(e).length&&Object.keys(t).every(n=>e.hasOwnProperty(n)&&t[n]===e[n])}function Ze(t,e){return typeof t!="object"||typeof e!="object"||t===null||e===null?t===e:Sn(t,e)?Object.keys(t).every(n=>Ze(t[n],e[n])):!1}function jt(t){if(!Fe(t))return t;const e={};for(const[n,r]of Object.entries(t))r!==void 0&&(e[n]=r);return e}function vn(t,e){if(!Fe(t)||!Fe(e))return e;const n={...t};for(const r of Object.keys(e)){if(e[r]===void 0)continue;if(e[r]===null){delete n[r];continue}const s=Fe(t[r])&&Fe(e[r]);n[r]=s?vn(t[r],e[r]):e[r]}return n}function Fe(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function os(t,e,n){if(!t||e.length===0)return;let r=t||{};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,n):r[s]=n}function An(t,e,n){if(!t||e.length===0)return;let r=t||{};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]]=n}function kn(t,e){if(!t||e.length===0)return;const[n,...r]=e;if(n in t){if(r.length===0){Array.isArray(t)?t.splice(n,1):delete t[n];return}kn(t[n],r),as(t[n])&&delete t[n]}}function as(t){return t&&Object.keys(t).length===0}const On=/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$/,cs={ZULU:0,YEKT:18e3,YEKST:21600,YAPT:36e3,YAKT:32400,YAKST:32400,XJT:21600,WGT:-10800,WGST:-7200,WFT:43200,WETDST:3600,WET:0,WDT:32400,WAT:3600,WAST:25200,WAKT:43200,WADT:28800,VUT:39600,VOLT:10800,VLAT:36e3,VLAST:36e3,VET:-14400,UZT:18e3,UZST:21600,UYT:-10800,UYST:-7200,UTC:0,UT:0,ULAT:28800,ULAST:32400,UCT:0,TVT:43200,TRUT:36e3,TOT:46800,TMT:18e3,TKT:46800,TJT:18e3,TFT:18e3,TAHT:-36e3,SGT:28800,SCT:14400,SAST:7200,SADT:37800,RET:14400,PYT:-14400,PYST:-10800,PWT:32400,PST:-28800,PONT:39600,PMST:-10800,PMDT:-7200,PKT:18e3,PKST:21600,PHT:28800,PGT:36e3,PETT:43200,PETST:43200,PET:-18e3,PDT:-25200,OMST:21600,OMSST:21600,NZT:43200,NZST:43200,NZDT:46800,NUT:-39600,NST:-12600,NPT:20700,NOVT:25200,NOVST:25200,NFT:-12600,NDT:-9e3,MYT:28800,MVT:18e3,MUT:14400,MUST:18e3,MST:-25200,MSK:10800,MSD:14400,MPT:36e3,MMT:23400,MHT:43200,MEZ:3600,METDST:7200,MET:3600,MESZ:7200,MEST:7200,MDT:-21600,MAWT:18e3,MART:-34200,MAGT:39600,MAGST:39600,LKT:19800,LINT:50400,LIGT:36e3,LHST:37800,LHDT:37800,KST:32400,KRAT:25200,KRAST:25200,KOST:39600,KGT:21600,KGST:21600,KDT:36e3,JST:32400,JAYT:32400,IST:7200,IRT:12600,IRKT:28800,IRKST:28800,IOT:21600,IDT:10800,ICT:25200,HST:-36e3,HKT:28800,GYT:-14400,GMT:0,GILT:43200,GFT:-10800,GET:14400,GEST:14400,GAMT:-32400,GALT:-21600,FNT:-7200,FNST:-3600,FKT:-10800,FKST:-10800,FJT:43200,FJST:46800,FET:10800,EST:-18e3,EGT:-3600,EGST:0,EETDST:10800,EET:7200,EEST:10800,EDT:-14400,EAT:10800,EAST:-21600,EASST:-21600,DDUT:36e3,DAVT:25200,CXT:25200,CST:-21600,COT:-18e3,CLT:-14400,CLST:-10800,CKT:-36e3,CHUT:36e3,CHAST:45900,CHADT:49500,CETDST:7200,CET:3600,CEST:7200,CDT:-18e3,CCT:28800,CAST:34200,CADT:37800,BTT:21600,BST:3600,BRT:-10800,BRST:-7200,BRA:-10800,BOT:-14400,BORT:28800,BNT:28800,BDT:21600,BDST:7200,AZT:14400,AZST:14400,AZOT:-3600,AZOST:0,AWST:28800,AWSST:32400,AST:-14400,ART:-10800,ARST:-10800,ANAT:43200,ANAST:43200,AMT:-14400,AMST:14400,ALMT:21600,ALMST:25200,AKST:-32400,AKDT:-28800,AFT:16200,AEST:36e3,AESST:39600,AEDT:39600,ADT:-10800,ACWST:31500,ACT:-18e3,ACST:34200,ACSST:37800,ACDT:37800};function us(t){return new Date(t)}function ls(t){return new Date(t+"Z")}const fs=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function ds(t){const e=t.match(fs);if(!e)return null;const[n,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 hs(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ps(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ys(t){return new Date(t)}function bs(t){const e=/^(\w{3}) (\w{3}) (\d{2}) (\d{4})$/;if(!t.match(e))throw new Error(`Unable to parse \`${t}\` as a date.`);const r=new Date(t+" UTC");return new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),0,0,0,0))}function gs(t){const e=/^(.+T.+)([+-])(\d{2})$/,n=t.match(e);if(n){const[,r,s,i]=n,o=`${r}${s}${i}:00`;return new Date(o)}return null}function ws(t){const e=/^(\d+)-(\d{1,2})-(\d{1,2})([ T])(\d{1,2})(?::(\d{1,2}))?(?::(\d{1,2}))?(.*)$/,n=t.match(e);if(n){const[,r,s,i,o,a,c,u,l]=n,f=s.padStart(2,"0"),d=i.padStart(2,"0");let p=a.padStart(2,"0");c!==void 0&&(p+=`:${c.padStart(2,"0")}`),u!==void 0&&(p+=`:${u.padStart(2,"0")}`);const y=`${r}-${f}-${d}T${p}${l}`;return new Date(y)}return null}function _s(t){const[e,n]=t.split(", "),[r,s,i]=e.split("/").map(Number),o=n.match(/(\d{1,2}):(\d{2}):(\d{2}) (AM|PM)/);if(!o)throw new Error(`Unable to parse time from: ${t}`);let[,a,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 ms(t){switch(t){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function Ss(t){const e=t.match(On);if(!e)return null;const[n]=e,r=cs[n],s=new Date(t.replace(On,"Z"));return new Date(s.getTime()-r*1e3)}const Ts=[ds,ps,bs,_s,ls,gs,hs,us,ms,Ss,ws,ys];function vs(t,e){try{const n=t(e);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function Rt(t){for(const e of Ts){const n=vs(e,t);if(n)return n}return null}function As(t){try{const e=JSON.parse(t);return typeof e=="string"?Rt(e):null}catch{return null}}function Xe(t){if(t!==void 0){if(t===null)return null;if(t instanceof Date)return t;if(typeof t=="string"){const e=Rt(t)||As(t)||Rt(t.trim());if(!e)throw new Error(`Unable to parse \`${t}\` as a date.`);return e}else if(typeof t=="number")return new Date(t);throw new Error(`Invalid date value \`${t}\`. Expected a date, number, or string, got type ${typeof t}.`)}}class Te{constructor(e,n){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=n}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 n=this.attrs[e.id];n&&(this.attrs[e.id]={...n,...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(xt(e)){const[n,r,s]=e["forward-identity"];ne(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[n,r]=e["forward-identity"];ne(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 n=e["forward-identity"],[r,s,i]=n;ne(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 n=e["reverse-identity"];if(n){const[r,s,i]=n;ne(this._revIdents,[s,i],e)}}return this._revIdents}toJSON(){return{attrs:this.attrs,linkIndex:this.linkIndex}}}function ks(t){return t.cardinality==="one"}function Dt(t){return t["value-type"]==="ref"}function xt(t){return t["value-type"]==="blob"}function Ie(t,e){return e.reduce((n,r)=>n&&n.get(r),t)}function le(t,e){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.delete(e[0]);return}const[n,...r]=e;t.has(n)&&le(t.get(n),r)}function ne(t,e,n){let r=t;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],n)}function In(t,e,n){const r=new Map,s=new Map,i=new Map;for(const o of e){let[a,c,u]=o;const l=t.getAttr(c);if(!l){console.warn("no such attr",c,a);continue}l["checked-data-type"]==="date"&&n&&(u=Xe(u),o[2]=u),Dt(l)&&ne(i,[u,c,a],o),ne(r,[a,c,u],o),ne(s,[c,a,u],o)}return{eav:r,aev:s,vae:i}}function Cn(t){return{triples:re(t.eav,3),cardinalityInference:t.cardinalityInference,useDateObjects:t.useDateObjects,version:1}}function En(t,e){return Ne(t,e.triples,e.cardinalityInference,e.useDateObjects)}function Pn(t,e){if(t)return new Te(t.attrs,t.linkIndex);if(e&&"__type"in e)return new Te(e.attrs,e.linkIndex)}function Os(t,e){return Ie(t.eav,[e])!==void 0}function Ne(t,e,n,r){const s=In(t,e,r);return s.cardinalityInference=n,s.useDateObjects=r,s}function Ke(t,e){var s,i;let n;if(Array.isArray(e[0])){const[o,a]=e[0],c=t.aev.get(o);if(!c)return null;n=(s=re(c,2).find(l=>l[2]===a))==null?void 0:s[0]}else n=e[0];if(!n)return null;const r=e[2];if(Array.isArray(r)&&r.length===2&&t.aev.get(r[0])){const[o,a]=r,c=t.aev.get(o);if(!c)return null;const l=(i=re(c,2).find(b=>b[2]===a))==null?void 0:i[0];if(!l)return null;const[f,d,p,...y]=e;return[n,d,l,...y]}else{const[o,...a]=e;return[n,...a]}}function Mn(t,e,n){const r=Ke(t,n);if(!r)return;const[s,i,o]=r,a=e.getAttr(i);a&&(le(t.eav,[s,i,o]),le(t.aev,[i,s,o]),Dt(a)&&le(t.vae,[o,i,s]))}let Is=0;function $n(t,e,n){const[r,s,i]=n;let o;const a=Ie(t.eav,[r,s,i]);return a&&(o=a[3]),o||Date.now()*10+Is++}function jn(t,e,n){const r=Ke(t,n);if(!r)return;let[s,i,o]=r;const a=e.getAttr(i);if(!a)return;a["checked-data-type"]==="date"&&t.useDateObjects&&(o=Xe(o));const c=Ie(t.eav,[s,i,o]),u=(c==null?void 0:c[3])??$n(t,a,r),l=[s,i,o,u];ks(a)?(ne(t.eav,[s,i],new Map([[o,l]])),ne(t.aev,[i,s],new Map([[o,l]]))):(ne(t.eav,[s,i,o],l),ne(t.aev,[i,s,o],l)),Dt(a)&&ne(t.vae,[o,i,s],l)}function Cs(t,e,n){var p;const r=Ke(t,n);if(!r)return;const[s,i,o]=r,a=e.getAttr(i);if(!a)return;if(!xt(a))throw new Error("merge operation is not supported for links");const c=Ie(t.eav,[s,i]);if(!c)return;const u=(p=c.values().next())==null?void 0:p.value;if(!u)return;const l=u[2],f=vn(l,o),d=[s,i,f,$n(t,a,u)];ne(t.eav,[s,i],new Map([[f,d]])),ne(t.aev,[i,s],new Map([[f,d]]))}function Ut(t,e,n){var u,l;const[r,s]=n,i=Ke(t,[r]);if(!i)return;const[o]=i,a=t.eav.get(o);if(a){for(const f of a.keys()){const d=e.getAttr(f);d&&d["on-delete-reverse"]==="cascade"&&re(a.get(f),1).forEach(([p,y,b])=>{var g;return Ut(t,e,[b,(g=d["reverse-identity"])==null?void 0:g[1]])}),(!s||!d||((u=d["forward-identity"])==null?void 0:u[1])===s)&&(le(t.aev,[f,o]),le(t.eav,[o,f]))}a.size===0&&le(t.eav,[o])}const c=t.vae.get(o)&&re(t.vae.get(o),2);c&&c.forEach(f=>{var g,_,w;const[d,p,y]=f,b=e.getAttr(p);(!s||!b||((g=b["reverse-identity"])==null?void 0:g[1])===s)&&(le(t.eav,[d,p,y]),le(t.aev,[p,d,y]),le(t.vae,[y,p,d])),b&&b["on-delete"]==="cascade"&&((_=b["reverse-identity"])==null?void 0:_[1])===s&&Ut(t,e,[d,(w=b["forward-identity"])==null?void 0:w[1]])}),((l=t.vae.get(o))==null?void 0:l.size)===0&&le(t.vae,[o])}function Rn(t,e,n){const r=In(e,n,t.useDateObjects);Object.keys(r).forEach(s=>{t[s]=r[s]})}function Es(t,[e]){t.addAttr(e)}function Dn(t){return re(t.eav,3)}function Ps(t,e,[n]){if(!e.getAttr(n))return;const r=Dn(t).filter(([s,i])=>i!==n);e.deleteAttr(n),Rn(t,e,r)}function Ms(t,e,[n]){e.getAttr(n.id)&&(e.updateAttr(n),Rn(t,e,Dn(t)))}function $s(t,e,n){const[r,...s]=n;switch(r){case"add-triple":jn(t,e,s);break;case"deep-merge-triple":Cs(t,e,s);break;case"retract-triple":Mn(t,e,s);break;case"delete-entity":Ut(t,e,s);break;case"add-attr":Es(e,s);break;case"delete-attr":Ps(t,e,s);break;case"update-attr":Ms(t,e,s);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${r}`)}}function re(t,e,n=[]){if(!t||e===0)return n;if(e===1){for(const r of t.values())n.push(r);return n}for(const r of t.values())re(r,e-1,n);return n}function et(t,e,n){var i;const r=[];if(n!=null&&n.hasOwnProperty("$not")){for(const o of e.keys())n.$not!==o&&r.push(e.get(o));return r}if(n!=null&&n.hasOwnProperty("$isNull")){const{attrId:o,isNull:a,reverse:c}=n.$isNull;if(c)for(const u of e.keys()){const l=t.vae.get(u),f=!l||!l.get(o);(a?f:!f)&&r.push(e.get(u))}else{const u=t.aev.get(o);for(const l of e.keys()){const f=!u||((i=u.get(l))==null?void 0:i.get(null))||!u.get(l);(a?f:!f)&&r.push(e.get(l))}}return r}if(n!=null&&n.$comparator)return re(e,1).filter(n.$op);const s=n.in||n.$in||[n];for(const o of s){const a=e.get(o);a&&r.push(a)}return r}function js(t,e,n){let r="";return t!==void 0&&(r+="e"),e!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function Rs(t,[e,n,r]){var i,o;switch(js(e,n,r)){case"e":{const a=t.eav.get(e);return re(a,2)}case"ea":{const a=(i=t.eav.get(e))==null?void 0:i.get(n);return re(a,1)}case"eav":{const a=(o=t.eav.get(e))==null?void 0:o.get(n);return a?et(t,a,r):[]}case"ev":{const a=t.eav.get(e);if(!a)return[];const c=[];for(const u of a.values())c.push(...et(t,u,r));return c}case"a":{const a=t.aev.get(n);return re(a,2)}case"av":{const a=t.aev.get(n);if(!a)return[];const c=[];for(const u of a.values())c.push(...et(t,u,r));return c}case"v":{const a=[];for(const c of t.eav.values())for(const u of c.values())a.push(...et(t,u,r));return a}default:return re(t.eav,3)}}function Ds(t,e,n){var s;const r={};if(!e)return r;for(const[i,o]of e.entries()){const a=(s=t.eav.get(n))==null?void 0:s.get(o.id),c=re(a,1);for(const u of c)r[i]=u[2]}return r}function V(t,e,n){var r;return(r=t.forwardIdents.get(e))==null?void 0:r.get(n)}function ve(t,e,n){var r;return(r=t.revIdents.get(e))==null?void 0:r.get(n)}function xs(t,e){return t.blobAttrs.get(e)}function xn(t,e){var r;const n=t.primaryKeys.get(e);return n||((r=t.forwardIdents.get(e))==null?void 0:r.get("id"))}function Us(t,e,n){const r=Ke(t,n);if(!r)return;const[s,i,o]=r;if(e.getAttr(i))return Ie(t.eav,[s,i])}function Ls(t,e,n){const r=n.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 f=e.getAttr(o);if(f){const d=xn(e,f["forward-identity"][1]);l=!!Us(t,e,[i,d==null?void 0:d.id,i])}return!(u==="create"&&l||u==="update"&&!l)});return Ye({store:t,attrsStore:e},s=>{r.forEach(i=>{$s(s.store,s.attrsStore,i)})},{mark:s=>{if(s instanceof Te)return"immutable"}})}function Fs(t){return typeof t=="string"&&t.startsWith("?")}function Ns(t,e,n){if(n.hasOwnProperty(t)){const r=n[t];return Ln(r,e,n)}return{...n,[t]:e}}function Un(t,e,n){return t===e?n:null}function Ks(t){switch(typeof t){case"string":return t.startsWith("?")?Ns:Un;default:return Un}}const qs=["in","$in","$not","$isNull","$comparator"];function zs(t){for(const e of qs)if(t.hasOwnProperty(e))return!0;return!1}function Ln(t,e,n){return n?typeof t=="object"?zs(t)?n:null:Ks(t)(t,e,n):null}function Ws(t,e,n){return t.reduce((r,s,i)=>{const o=e[i];return Ln(s,o,r)},n)}function Qs(t,e,n){return Gs(t,e,n).map(r=>Ws(e,r,n)).filter(r=>r)}function Vs(t,e,n){return e.or?e.or.patterns.flatMap(r=>Lt(t,r,n)):e.and?e.and.patterns.reduce((r,s)=>Lt(t,s,r),n):n.flatMap(r=>Qs(t,e,r))}function Lt(t,e,n=[{}]){return e.reduce((r,s)=>Vs(t,s,r),n)}function Ft(t,e){return Array.isArray(e)?e.map(n=>Ft(t,n)):Fs(e)?t[e]:e}function Bs(t,{find:e,where:n}){return Lt(t,n).map(s=>Ft(s,e))}function Gs(t,e,n){return Rs(t,Ft(n,e))}const Hs=/^(?:[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 Ce(t){return typeof t=="string"&&Hs.test(t)}const G=[];for(let t=0;t<256;++t)G.push((t+256).toString(16).slice(1));function Js(t,e=0){return(G[t[e+0]]+G[t[e+1]]+G[t[e+2]]+G[t[e+3]]+"-"+G[t[e+4]]+G[t[e+5]]+"-"+G[t[e+6]]+G[t[e+7]]+"-"+G[t[e+8]]+G[t[e+9]]+"-"+G[t[e+10]]+G[t[e+11]]+G[t[e+12]]+G[t[e+13]]+G[t[e+14]]+G[t[e+15]]).toLowerCase()}let Nt;const Ys=new Uint8Array(16);function Zs(){if(!Nt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Nt=crypto.getRandomValues.bind(crypto)}return Nt(Ys)}const Fn={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Xs(t,e,n){var s;if(Fn.randomUUID&&!t)return Fn.randomUUID();t=t||{};const r=t.random??((s=t.rng)==null?void 0:s.call(t))??Zs();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,Js(r)}function Nn(t){const e=t.replace(/-/g,""),n=[];for(let r=0;r<e.length;r+=2)n.push(parseInt(e.substring(r,r+2),16));return n}function ei(t,e){for(let n=0;n<t.length;n++){if(t[n]<e[n])return-1;if(t[n]>e[n])return 1}return 0}function ti(t,e){return ei(Nn(t),Nn(e))}function K(){return Xs()}function ni(t,e){return t.localeCompare(e)}function ri(){let t=ni;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{t=Intl.Collator("en-US").compare}catch{}return t}const si=ri();let ii=!0,oi=0;function qe(t){return tt(`_${t}`,oi++)}function tt(t,e){return`?${t}-${e}`}class Ee extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function ai(t,e){const n=xn(t,e);if(!n)throw new Ee(`Could not find id attr for ${e}`);return n}function Kn(t,e,n,r){return[ci(t,e,n,r)]}function ci(t,e,n,r){return[t(n,r),ai(e,n).id,t(n,r),t("time",r)]}function ui(t,e,n){return t.map(r=>r===e?n:r)}function qn(t,e,n,r,s){const i=V(e,n,s),o=ve(e,n,s),a=i||o;if(!a)throw new Ee(`Could not find attr for ${[n,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,p=i?[t(u,r),a.id,t(f,d),qe("time")]:[t(u,d),a.id,t(f,r),qe("time")];return[i?f:u,d,p,a,!!i]}function zn(t,e){if(typeof e!="string")return function(o){return!1};const r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,"."),s=new RegExp(`^${r}$`,t?void 0:"i");return function(o){return typeof o!="string"?!1:s.test(o)}}function li(t,e){if(typeof e!="object"||e.hasOwnProperty("$in")||e.hasOwnProperty("in"))return e;const n=t["checked-data-type"]==="date";if(e.hasOwnProperty("$gt"))return{$comparator:!0,$op:n?function(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:n?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:n?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:n?function(s){return new Date(s[2])<=new Date(e.$lte)}:function(s){return s[2]<=e.$lte}};if(e.hasOwnProperty("$like")){const r=zn(!0,e.$like);return{$comparator:!0,$op:function(i){return r(i[2])}}}if(e.hasOwnProperty("$ilike")){const r=zn(!1,e.$ilike);return{$comparator:!0,$op:function(i){return r(i[2])}}}return e}function fi(t,e,n,r,s,i){const o=V(e,n,s),a=ve(e,n,s),c=o||a;if(!c)throw new Ee(`No attr for etype = ${n} label = ${s}`);if(i!=null&&i.hasOwnProperty("$isNull")){const u=V(e,n,"id");if(!u)throw new Ee(`No attr for etype = ${n} label = id`);return[t(n,r),u.id,{$isNull:{attrId:c.id,isNull:i.$isNull,reverse:!o}},qe("time")]}return o?[t(n,r),c.id,li(c,i),qe("time")]:[i,c.id,t(n,r),qe("time")]}function di(t,e,n,r,s){const[i,o,a]=s.reduce((c,u)=>{const[l,f,d]=c,[p,y,b]=qn(t,e,l,f,u);return[p,y,[...d,b]]},[n,r,[]]);return[i,o,a]}function Kt(t,e,n,r,s,i){const o=s.slice(0,s.length-1),a=s[s.length-1],[c,u,l]=di(t,e,n,r,o),f=fi(t,e,c,u,a,i);return l.concat([f])}function hi(t,e){return e?[e].concat(t):t}function pi([t,e]){return t==="or"&&Array.isArray(e)}function yi([t,e]){return t==="and"&&Array.isArray(e)}function bi(t,e,n){return(r,s)=>{const i=t(r,s);return e==i?i:`${i}-${n}`}}function Wn(t,e,n,r,s,i){const o=t(r,s),a=i.map((c,u)=>{const l=bi(t,o,u);return Vn(l,n,r,s,c)});return{[e]:{patterns:a,joinSym:o}}}function gi(t){const e=[];for(let n=1;n<=t.length;n++)e.push(t.slice(0,n));return e}function Qn(t,e,n,r,s){return gi(s).map(i=>Kt(t,e,n,r,i,{$isNull:!0}))}function Vn(t,e,n,r,s){return Object.entries(s).flatMap(([i,o])=>{if(pi([i,o]))return Wn(t,"or",e,n,r,o);if(yi([i,o]))return Wn(t,"and",e,n,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=Kt(t,e,n,r,a,o),u=Qn(t,e,n,r,a);return[{or:{patterns:[c,...u],joinSym:t(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Qn(t,e,n,r,a),joinSym:t(n,r)}}]:Kt(t,e,n,r,a,o)})}function wi(t,e,n,r){const s=tt;return r?Vn(s,t,e,n,r).concat(Kn(s,t,e,n)):Kn(s,t,e,n)}function _i(t,e,n){return[t(e,n),t("time",n)]}function mi(t,e,n,r,s,i){const[o,a,c,u,l]=qn(t,e,n,r,s),f=ui(c,t(n,r),i);return[o,a,f,u,l]}function Si(t,e,n,{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 b,g,_;const y=!!(e.cardinalityInference&&((_=(g=(b=n.linkIndex)==null?void 0:b[r])==null?void 0:g[p])!=null&&_.isSingular));try{const[w,m,I]=mi(t,n,r,s,p,u),S=Hn(e,n,{etype:w,level:m,form:i[p],join:I}),M=y?S[0]:S;return{[p]:M}}catch(w){if(w instanceof Ee)return{[p]:y?void 0:[]};throw w}}).reduce(function(p,y){return{...p,...y}},l)}):Object.values(o)}function Ti(t,e,n){return n==="string"?si(t,e):t>e?1:-1}function ze(t,e,n,r,s){return e===r||e==null&&r==null?ti(t,n):r==null?1:e==null?-1:Ti(e,r,s)}function nt([t,e],[n,r],s){return ze(t,e,n,r,s)}function qt(t){return t==null?t:new Date(t).getTime()}function Bn(t,e,n){var d;const[r,s,i,o]=t;if(((d=e["forward-identity"])==null?void 0:d[2])==="id")return nt(n,[r,o],null);const[a,c]=n,u=e["checked-data-type"],l=u==="date"?qt(c):c,f=u==="date"?qt(i):i;return nt([a,l],[r,f],u)}function vi(t,e,n,r){const s=Bn(t,e,r);return n==="desc"?s>0:s<0}function Ai(t,e,n,r){const s=Bn(t,e,r);return n==="desc"?s<0:s>0}function ki(t,e){const n=e[1];return t.getAttr(n)}function Oi(t,e,n){const r=Object.keys(n)[0];return V(t,e,r)}function Ii(t,e,n,r){if(n)return ki(t,n);if(r)return Oi(t,e,r)}function Ci(t,e,n){var s,i;if(!Array.isArray(n.fields))return xs(t,e);const r=new Map;for(const o of n.fields){const a=V(t,e,o),c=(s=a==null?void 0:a["forward-identity"])==null?void 0:s[2];c&&xt(a)&&r.set(c,a)}if(!r.has("id")){const o=V(t,e,"id"),a=(i=o==null?void 0:o["forward-identity"])==null?void 0:i[2];a&&r.set(a,o)}return r}function Ei(t,e,{etype:n,pageInfo:r,dq:s,form:i}){var b,g;const o=(b=i==null?void 0:i.$)==null?void 0:b.order,a=Gn(i),c=Pi(i);let u=Bs(t,s);const l=r==null?void 0:r["start-cursor"],f=r==null?void 0:r["end-cursor"],d=Ii(e,n,l,o);if(d&&((g=d==null?void 0:d["forward-identity"])==null?void 0:g[2])!=="id"){const _=d["checked-data-type"]==="date",w=d.id;u=u.map(([m])=>{var S,M,O,k,z;let I=(z=(k=(O=(M=(S=t.eav.get(m))==null?void 0:S.get(w))==null?void 0:M.values())==null?void 0:O.next())==null?void 0:k.value)==null?void 0:z[2];return _&&(I=qt(I)),[m,I]})}u.sort(c==="asc"?function(w,m){return nt(w,m,d==null?void 0:d["checked-data-type"])}:function(w,m){return nt(m,w,d==null?void 0:d["checked-data-type"])});let p={};const y=Ci(e,n,s);for(const _ of u){const[w]=_;if(p[w]||!a&&l&&d&&vi(l,d,c,_)||!a&&f&&d&&Ai(f,d,c,_))continue;const m=Ds(t,y,w);m&&(p[w]=m)}return p}function Pi(t){var n;const e=(n=t.$)==null?void 0:n.order;return e&&e[Object.keys(e)[0]]||"asc"}function Gn(t){var s,i,o;const e=(s=t.$)==null?void 0:s.offset,n=(i=t.$)==null?void 0:i.before,r=(o=t.$)==null?void 0:o.after;return!e&&!n&&!r}function Mi(t,e,{etype:n,level:r,form:s,join:i,pageInfo:o}){var d,p,y,b,g;if(!Gn(s)&&(!o||!o["start-cursor"]))return[];const a=hi(wi(e,n,r,(d=s.$)==null?void 0:d.where),i),c=_i(tt,n,r),u=(p=s.$)==null?void 0:p.fields,l=Ei(t,e,{etype:n,pageInfo:o,form:s,dq:{where:a,find:c,fields:u}}),f=((y=s.$)==null?void 0:y.limit)||((b=s.$)==null?void 0:b.first)||((g=s.$)==null?void 0:g.last);if(f!=null){r>0&&ii&&console.warn("WARNING: Limits in child queries are only run client-side. Data returned from the server will not have a limit.");const _=Object.entries(l);return _.length<=f?l:Object.fromEntries(_.slice(0,f))}return l}function $i(t,e,n){try{return Mi(t,e,n)}catch(r){if(r instanceof Ee)return{};throw r}}function Hn(t,e,n){const r=$i(t,e,n);return Si(tt,t,e,n,r)}function ji(t){const e={};for(const[n,r]of Object.entries(t))e[n]={startCursor:r["start-cursor"],endCursor:r["end-cursor"],hasNextPage:r["has-next-page?"],hasPreviousPage:r["has-previous-page?"]};return e}function Jn({store:t,attrsStore:e,pageInfo:n,aggregate:r},s){const o={data:Object.keys(s).reduce(function(c,u){return r!=null&&r[u]||u==="$$ruleParams"||(c[u]=Hn(t,e,{etype:u,form:s[u],level:0,pageInfo:n==null?void 0:n[u]})),c},{})};return n&&(o.pageInfo=ji(n)),r&&(o.aggregate=r),o}function Ri(){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 Di=Ri();function rt(t,e,n){const r={__etype:t,__ops:n};return new Proxy(r,{get:(s,i)=>{if(i==="__ops")return n;if(i==="__etype")return t;if(Di.has(i))return(o,a)=>rt(t,e,[...n,a?[i,t,e,o,a]:[i,t,e,o]])}})}function Yn(t,e){return`lookup__${t}__${JSON.stringify(e)}`}function st(t){return t.startsWith("lookup__")}function zt(t){const[e,n,...r]=t.split("__");return[n,JSON.parse(r.join("__"))]}function xi(t){return new Proxy({__etype:t},{get(e,n){if(n==="lookup")return(s,i)=>rt(t,zt(Yn(s,i)),[]);if(n==="__etype")return t;const r=n;return st(r)?rt(t,zt(r),[]):rt(t,r,[])}})}function Wt(){return new Proxy({},{get(t,e){return xi(e)}})}const Ui=Wt();function Li(t){return t.__ops}function Fi(t,e){const{attrIdMap:n,refSwapAttrIds:r}=t,s=[];for(const o of e){const a=n[o];if(a)s.push(a);else if(Array.isArray(o)&&o.length==2&&n[o[0]]){const[c,u]=o;s.push([n[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 Ni(t){if(Array.isArray(t))return t;const e=Object.entries(t);if(e.length!==1)throw new Error("lookup must be an object with a single unique attr and value.");return e[0]}function Ki(t,e,n){return n.indexOf(".")!==-1&&!V(t,e,n)}function Qt(t){const[e,n,...r]=t.split(".");if(r.length>0||n!=="id")throw new Error(`${t} is not a valid lookup attribute.`);return e}function qi(t,e,n){if(!Ki(t,e,n))return V(t,e,n);const r=Qt(n),s=V(t,e,r)||ve(t,e,r);if(s&&s["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return s}function Vt(t){return typeof t=="string"&&!st(t)?null:typeof t=="string"&&st(t)?zt(t):Ni(t)}function se(t,e,n){const r=Vt(n);if(r===null)return n;const[s,i]=r,o=qi(t,e,s);if(!o||!o["unique?"])throw new Error(`${s} is not a unique attribute.`);return[o.id,i]}function Zn(t,e,n,r){var o;const s=se(t,e,n);return Array.isArray(s)?[["add-triple",s,(o=V(t,e,"id"))==null?void 0:o.id,s]].concat(r):r}function zi({attrsStore:t},[e,n,r]){const s=Object.entries(r).flatMap(([i,o])=>{const a=Array.isArray(o)?o:[o],c=V(t,e,i),u=ve(t,e,i);return a.map(l=>c?["add-triple",se(t,e,n),c.id,se(t,c["reverse-identity"][1],l)]:["add-triple",se(t,u["forward-identity"][1],l),u==null?void 0:u.id,se(t,e,n)])});return Zn(t,e,n,s)}function Wi({attrsStore:t},[e,n,r]){const s=Object.entries(r).flatMap(([i,o])=>{const a=Array.isArray(o)?o:[o],c=V(t,e,i),u=ve(t,e,i);return a.map(l=>c?["retract-triple",se(t,e,n),c.id,se(t,c["reverse-identity"][1],l)]:["retract-triple",se(t,u["forward-identity"][1],l),u.id,se(t,e,n)])});return Zn(t,e,n,s)}function Qi(t,e,n,r){var s;if(Array.isArray(r)){const[i,o]=r;for(const a of t||[]){const c=a==null?void 0:a.aev.get(i);if(c){for(const[u,l,f]of re(c,2))if(f===o)return!0}}}else for(const i of t||[]){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])==n)return!0}}return!1}function Xn({stores:t,attrsStore:e},[n,r,s,i]){return(i==null?void 0:i.upsert)===!1?{mode:"update"}:(i==null?void 0:i.upsert)===!0?null:Qi(t,e,n,r)?{mode:"update"}:null}function Vi(t,e){const{attrsStore:n}=t,[r,s,i,o]=e,a=jt(i),c=se(n,r,s);return[["id",c]].concat(Object.entries(a)).map(([l,f])=>{const d=V(n,r,l);return d["checked-data-type"]==="date"&&t.useDateObjects&&(f=Xe(f)),["add-triple",c,d.id,f,{mode:"create"}]})}function Bi(t,e){const{attrsStore:n}=t,[r,s,i,o]=e,a=jt(i),c=se(n,r,s),u=Xn(t,[r,c,i,o]);return[["id",c]].concat(Object.entries(a)).map(([f,d])=>{const p=V(n,r,f);return p["checked-data-type"]==="date"&&t.useDateObjects&&(d=Xe(d)),["add-triple",c,p.id,d,...u?[u]:[]]})}function Gi({attrsStore:t},[e,n]){return[["delete-entity",se(t,e,n),e]]}function Hi(t,e){const{attrsStore:n}=t,[r,s,i,o]=e,a=jt(i),c=se(n,r,s),u=Xn(t,[r,c,i,o]),l=Object.entries(a).map(([d,p])=>{const y=V(n,r,d);return["deep-merge-triple",c,y.id,p,...u?[u]:[]]});return[["add-triple",c,V(n,r,"id").id,c,...u?[u]:[]]].concat(l)}function Ji({attrsStore:t},[e,n,r]){return[["rule-params",se(t,e,n),e,r]]}function Yi(t){const[e,n,r,s,i]=t;if(!s)return t;const o={...s};return delete o.id,[e,n,r,o,...i?[i]:[]]}function Zi(t,e){const[n,...r]=Yi(e);switch(n){case"merge":return Hi(t,r);case"create":return Vi(t,r);case"update":return Bi(t,r);case"link":return zi(t,r);case"unlink":return Wi(t,r);case"delete":return Gi(t,r);case"ruleParams":return Ji(t,r);default:throw new Error(`unsupported action ${n}`)}}function Xi(t){switch(t){case"string":case"date":case"boolean":case"number":return t;default:return}}function eo(t,e,n){var a,c;const r=(c=(a=t.entities[e])==null?void 0:a.attrs)==null?void 0:c[n];if(n==="id")return null;if(!r)throw new Error(`${e}.${n} does not exist in your schema`);const{unique:s,indexed:i}=r==null?void 0:r.config,o=Xi(r==null?void 0:r.valueType);return{"index?":i,"unique?":s,"checked-data-type":o}}function it(t,e,n,r){const s=t?eo(t,e,n):null,i=K(),a=[K(),e,n];return{id:i,"forward-identity":a,"value-type":"blob",cardinality:"one","unique?":!1,"index?":!1,isUnsynced:!0,...s||{},...r||{}}}function to(t,e,n){return Object.values(t.links).find(i=>i.forward.on===e&&i.forward.label===n||i.reverse.on===e&&i.reverse.label===n)}function no(t,e,n){const r=to(t,e,n);if(!r)throw new Error(`Couldn't find the link ${e}.${n} in your schema`);const{forward:s,reverse:i}=r;return{"forward-identity":[K(),s.on,s.label],"reverse-identity":[K(),i.on,i.label],cardinality:s.has==="one"?"one":"many","unique?":i.has==="one","on-delete":s.onDelete,"on-delete-reverse":i.onDelete}}function er(t,e,n,r){const s=t?no(t,e,n):null,i=K(),o=[K(),e,n],a=[K(),n,e];return{id:i,"forward-identity":o,"reverse-identity":a,"value-type":"ref",cardinality:"many","unique?":!1,"index?":!1,isUnsynced:!0,...s||{},...r||{}}}const ro=new Set(["create","update","merge","link","unlink"]),so=new Set(["link","unlink"]),io=new Set(["create","update","merge"]),oo=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),Bt={"unique?":!0,"index?":!0},ao={...Bt,cardinality:"one"};function co(t){const e=[],[n,r,s,i]=t;if(!oo.has(n))return e;const o=Vt(s);if(o&&e.push({etype:r,lookupPair:o}),n==="link")for(const[a,c]of Object.entries(i)){const u=Array.isArray(c)?c:[c];for(const l of u){const f=Vt(l);f&&e.push({etype:r,lookupPair:f,linkLabel:a})}}return e}function uo({attrsStore:t,schema:e},n){var d,p;const r=new Set,s=[],i=[];function o(y,b){return V(t,y,b)||s.find(g=>g["forward-identity"][1]===y&&g["forward-identity"][2]===b)}function a(y,b){return ve(t,y,b)||s.find(g=>{var _,w;return((_=g["reverse-identity"])==null?void 0:_[1])===y&&((w=g["reverse-identity"])==null?void 0:w[2])===b})}function c(y){s.push(y),i.push(["add-attr",y]),r.add(y.id)}function u(y){y&&"isUnsynced"in y&&y.isUnsynced&&!r.has(y.id)&&(s.push(y),i.push(["add-attr",y]),r.add(y.id))}function l(y,b){return b.indexOf(".")!==-1&&!o(y,b)}function f(y,b){const g=o(y,b),_=a(y,b);u(g),u(_),!g&&!_&&c(er(e,y,b,ao))}for(const y of n)for(const{etype:b,lookupPair:g,linkLabel:_}of co(y)){const w=g[0];if(_){f(b,_);const m=o(b,_),I=a(b,_);u(m),u(I);const S=((d=m==null?void 0:m["reverse-identity"])==null?void 0:d[1])||((p=I==null?void 0:I["forward-identity"])==null?void 0:p[1])||_;if(l(S,w))f(S,Qt(w));else{const M=o(S,w);M||c(it(e,S,w,Bt)),u(M)}}else if(l(b,w))f(b,Qt(w));else{const m=o(b,w);m||c(it(e,b,w,Bt)),u(m)}}for(const y of n){const[b,g,_,w]=y;if(ro.has(b)){const m=o(g,"id");u(m),m||c(it(e,g,"id",{"unique?":!0}));for(const I of Object.keys(w)){const S=o(g,I);if(u(S),io.has(b)&&(S||c(it(e,g,I,I==="id"?{"unique?":!0}:null))),so.has(b)){const M=a(g,I);!S&&!M&&c(er(e,g,I)),u(M)}}}}if(s.length){const y={...t.attrs};for(const b of s)y[b.id]=b;return[new Te(y,t.linkIndex),i]}return[t,i]}function lo(t,e){const r=(Array.isArray(e)?e:[e]).flatMap(c=>Li(c)),[s,i]=uo(t,r),o={...t,attrsStore:s},a=r.flatMap(c=>Zi(o,c));return[...i,...a]}function tr(t,e){typeof requestIdleCallback>"u"?t():requestIdleCallback(t,{timeout:e})}const Pe="__meta";class nr{constructor(e,n){}}class Gt{constructor(e){h(this,"currentValue");h(this,"_subs",[]);h(this,"_persister");h(this,"_merge");h(this,"serialize");h(this,"parse");h(this,"_saveThrottleMs");h(this,"_idleCallbackMaxWaitMs");h(this,"_nextSave",null);h(this,"_nextGc",null);h(this,"_pendingSaveKeys",new Set);h(this,"_loadedKeys",new Set);h(this,"_loadingKeys");h(this,"_objectSize");h(this,"_log");h(this,"onKeyLoaded");h(this,"_version",0);h(this,"_meta",{isLoading:!0,onLoadCbs:[],value:null,error:null,attempts:0});h(this,"_gcOpts");this._persister=e.persister,this._merge=e.merge,this.serialize=e.serialize,this.parse=e.parse,this._objectSize=e.objectSize,this._log=e.logger,this._saveThrottleMs=e.saveThrottleMs??100,this._idleCallbackMaxWaitMs=e.idleCallbackMaxWaitMs??1e3,this._gcOpts=e.gc,this.currentValue={},this._loadedKeys=new Set,this._loadingKeys={},this._initMeta(),e.preloadEntryCount&&this._preloadEntries(e.preloadEntryCount)}async _initMeta(){var e;this._meta.loadingPromise&&await this._meta.loadingPromise;try{const n=this._persister.getItem(Pe);this._meta.loadingPromise=n;const r=await n;this._meta.isLoading=!1,this._meta.error=null,this._meta.loadingPromise=null,this._meta.attempts=0;const s=((e=this._meta.value)==null?void 0:e.objects)??{},i=r??{},o=i.objects??{};this._meta.value={...i,objects:{...s,...o}}}catch(n){this._meta.error=n,this._meta.attempts++,this._meta.loadingPromise=null}}async _getMeta(){return this._meta.value?this._meta.value:this._meta.loadingPromise?(await this._meta.loadingPromise,this._meta.value):(this._initMeta(),await this._meta.loadingPromise,this._meta.value)}async _refreshMeta(){return await this._initMeta(),this._meta.value}async _preloadEntries(e){const n=await this.waitForMetaToLoad();if(!n)return;const r=Object.entries(n.objects);r.sort(([s,i],[o,a])=>a.updatedAt-i.updatedAt);for(const[s]of r.slice(0,e))this._loadKey(s)}async _getFromStorage(e){try{const n=await this._persister.getItem(e);return n&&this.parse(e,n)}catch(n){return console.error(`Unable to read from storage for key=${e}`,n),null}}async waitForKeyToLoad(e){return this._loadedKeys.has(e)?this.currentValue[e]:(await(this._loadingKeys[e]||this._loadKey(e)),this.currentValue[e])}async waitForMetaToLoad(){return this._getMeta()}unloadKey(e){this._loadedKeys.delete(e),delete this._loadingKeys[e],delete this.currentValue[e]}async _loadKey(e){if(this._loadedKeys.has(e)||e in this._loadingKeys)return;const n=this._getFromStorage(e);this._loadingKeys[e]=n;const r=await n;if(delete this._loadingKeys[e],this._loadedKeys.add(e),r){const s=this._merge(e,r,this.currentValue[e]);s&&(this.currentValue[e]=s)}this.onKeyLoaded&&this.onKeyLoaded(e)}_writeToStorage(e){const n=[],r=e==null?void 0:e.skipGc;if(this._meta.isLoading){const f=new Promise((d,p)=>{setTimeout(()=>this._enqueuePersist(e?{...e,attempts:(e.attempts||0)+1}:{attempts:1}).then(d).catch(p),10+((e==null?void 0:e.attempts)??0)*1e3)});return n.push(f),Promise.all(n).then(d=>d.reduce((p,y)=>p+y,0))}const s=this._meta.value;if(!s)return Promise.resolve(0);const i=[],o=[];for(const f of this._pendingSaveKeys)f in this.currentValue?o.push(f):(i.push(f),delete s.objects[f]);for(const f of i){const d=this._persister.removeItem(f);n.push(d.then(()=>1)),this._loadedKeys.delete(f),this._pendingSaveKeys.delete(f)}const a=[],c=[[Pe,s]],u=s.objects??{};s.objects=u;for(const f of o)if(this._loadedKeys.has(f)){const d=this.serialize(f,this.currentValue[f]);c.push([f,d]);const p=this._objectSize(d),y=u[f]??{createdAt:Date.now(),updatedAt:Date.now(),size:p};y.updatedAt=Date.now(),y.size=p,u[f]=y,this._pendingSaveKeys.delete(f)}else a.push(f);const l=this._persister.multiSet(c);n.push(l.then(()=>1));for(const f of a){const d=this._loadKey(f).then(()=>this._enqueuePersist(e));n.push(d)}return r||this.gc(),Promise.all(n).then(f=>f.reduce((d,p)=>d+p,0))}async flush(){return this._nextSave?(clearTimeout(this._nextSave),this._nextSave=null,this._writeToStorage()):void 0}async _gc(){if(!this._gcOpts)return;const e=new Set(await this._persister.getAllKeys());e.delete(Pe);const n=new Set(Object.keys(this.currentValue));for(const d of Object.keys(this._loadingKeys))n.add(d);for(const d of this._loadedKeys)n.add(d);const r=await this._refreshMeta();if(!r){this._log.info("Could not gc because we were not able to load meta");return}const s=[],i={gcOpts:this._gcOpts,keys:e,sacredKeys:n,removed:[],metaRemoved:[],removedMissingCount:0,removedOldCount:0,removedThresholdCount:0,removedSizeCount:0};for(const d of e)n.has(d)||d in r.objects||(this._log.info("Lost track of key in meta",d),s.push(this._persister.removeItem(d)),i.removed.push(d),i.removedMissingCount++);const o=Date.now();for(const[d,p]of Object.entries(r.objects))!n.has(d)&&p.updatedAt<o-this._gcOpts.maxAgeMs&&(s.push(this._persister.removeItem(d)),delete r.objects[d],i.removed.push(d),i.removedOldCount++);const a=Object.entries(r.objects);a.sort(([d,p],[y,b])=>p.updatedAt-b.updatedAt);const c=a.filter(([d])=>!n.has(d));if(a.length>this._gcOpts.maxEntries)for(const[d]of c.slice(0,a.length-this._gcOpts.maxEntries))s.push(this._persister.removeItem(d)),delete r.objects[d],i.removed.push(d),i.removedThresholdCount++;const u=Object.entries(r.objects);u.sort(([d,p],[y,b])=>p.updatedAt-b.updatedAt);const l=u.filter(([d])=>!n.has(d));let f=u.reduce((d,[p,y])=>d+y.size,0);for(;f>0&&f>this._gcOpts.maxSize&&l.length;){const[[d,p]]=l.splice(0,1);f-=p.size,s.push(this._persister.removeItem(d)),delete r.objects[d],i.removed.push(d),i.removedSizeCount++}for(const d of Object.keys(r.objects))!e.has(d)&&!n.has(d)&&delete r.objects[d];return(i.removed.length||i.metaRemoved.length)&&s.push(this._enqueuePersist({skipGc:!0})),this._log.info("Completed GC",i),await Promise.all(s),i}gc(){this._nextGc||(this._nextGc=setTimeout(()=>{tr(()=>{this._nextGc=null,this._gc()},30*1e3)},1e3*60+Math.random()*500))}_enqueuePersist(e){return new Promise((n,r)=>{if(this._nextSave){n(0);return}this._nextSave=setTimeout(()=>{tr(()=>{this._nextSave=null,this._writeToStorage(e).then(n).catch(r)},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)})}version(){return this._version}updateInPlace(e){this._version++;const[n,r]=Ye(this.currentValue,e,{enablePatches:!0});for(const s of r){const i=s.path[0];i&&typeof i=="string"&&(this._pendingSaveKeys.add(i),this._loadedKeys.has(i)||this._loadKey(i))}this.currentValue=n,this._enqueuePersist();for(const s of this._subs)s(this.currentValue);return n}subscribe(e){return this._subs.push(e),e(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==e)}}async clearUnloadedKeys(){let e=!1;for(const n of await this._persister.getAllKeys())n===Pe||n in this.currentValue||(this._pendingSaveKeys.add(n),e=!0);e&&await this._enqueuePersist()}}const fo=6,ho=["kv","querySubs","syncSubs"];function po(t){return function(n){console.error("Error in IndexedDB event",{source:t,event:n})}}async function yo(t){return new Promise(e=>{const n=indexedDB.open(t);n.onerror=r=>{e(null)},n.onsuccess=r=>{const i=r.target.result;e(i)},n.onupgradeneeded=r=>{var i;(i=r.target.transaction)==null||i.abort(),e(null)}})}async function bo(t,e,n){const r=typeof e=="string"?JSON.parse(e):e;if(!r)return;const s=new Set;return new Promise((i,o)=>{var l,f,d;const a={};for(const[p,y]of Object.entries(r)){const b=typeof y=="string"?JSON.parse(y):y;if(b.lastAccessed){const _={createdAt:b.lastAccessed,updatedAt:b.lastAccessed,size:((d=(f=(l=b.result)==null?void 0:l.store)==null?void 0:f.triples)==null?void 0:d.length)??0};a[p]=_}const g=n.put(b,p);s.add(g)}const c={objects:a},u=n.put(c,Pe);s.add(u);for(const p of s)p.onsuccess=()=>{s.delete(p),s.size===0&&i()},p.onerror=y=>{o(y)}})}async function rr(t,e,n){const r=n.put(e,t);return new Promise((s,i)=>{r.onsuccess=()=>s(),r.onerror=o=>i(o)})}async function go(t,e){const n=await yo(`instant_${t}_5`);if(!n)return;const r=await new Promise((l,f)=>{const y=n.transaction(["kv"],"readonly").objectStore("kv").openCursor();y.onerror=g=>{f(g)};const b=[];y.onsuccess=()=>{const g=y.result;if(g){const _=g.key,w=g.value;b.push([_,w]),g.continue()}else l(b)},y.onerror=g=>{f(g)}}),s=e.transaction(["kv","querySubs"],"readwrite"),i=s.objectStore("kv"),o=s.objectStore("querySubs"),a=[],c={objects:{}};for(const[l,f]of r)switch(l){case"querySubs":{const d=bo(l,f,o);a.push(d);break}default:{const d=rr(l,f,i);a.push(d);const p={createdAt:Date.now(),updatedAt:Date.now(),size:0};c.objects[l]=p;break}}const u=rr(Pe,c,i);a.push(u),await Promise.all(a),await new Promise((l,f)=>{s.oncomplete=d=>l(d),s.onerror=d=>f(d),s.onabort=d=>f(d)})}const sr=new Map;class ir extends nr{constructor(n,r){super(n,r);h(this,"dbName");h(this,"_storeName");h(this,"_appId");h(this,"_prefix");h(this,"_dbPromise");this.dbName=`instant_${n}_${fo}`,this._storeName=r,this._appId=n,this._dbPromise=this._init()}_init(){return new Promise((n,r)=>{let s=!1;const i=indexedDB.open(this.dbName,1);i.onerror=o=>{r(o)},i.onsuccess=o=>{const c=o.target.result;if(c.onclose=()=>{this._dbPromise=this._init()},c.onversionchange=()=>{c.close()},s){const u=go(this._appId,c).catch(l=>{po("Error upgrading store from version 5 to 6.")(l)});sr.set(this.dbName,u),u.then(()=>n(c)).catch(()=>n(c))}else{const u=sr.get(this.dbName);u?u.then(()=>n(c)).catch(()=>n(c)):n(c)}},i.onupgradeneeded=o=>{s=!0,this._upgradeStore(o)}})}_upgradeStore(n){const s=n.target.result;for(const i of ho)s.objectStoreNames.contains(i)||s.createObjectStore(i)}async _withRetry(n){try{const r=await this._dbPromise;return await n(r)}catch(r){if(r instanceof DOMException&&r.name==="InvalidStateError"){this._dbPromise=this._init();const s=await this._dbPromise;return await n(s)}throw r}}async getItem(n){return this._withRetry(r=>new Promise((s,i)=>{const c=r.transaction([this._storeName],"readonly").objectStore(this._storeName).get(n);c.onerror=()=>{i(c.error)},c.onsuccess=()=>{c.result?s(c.result):s(null)}}))}async setItem(n,r){return this._withRetry(s=>new Promise((i,o)=>{const a=s.transaction([this._storeName],"readwrite");a.objectStore(this._storeName).put(r,n),a.oncomplete=()=>i(),a.onerror=()=>o(a.error),a.onabort=()=>o(a.error)}))}async multiSet(n){return this._withRetry(r=>new Promise((s,i)=>{const o=r.transaction([this._storeName],"readwrite"),a=o.objectStore(this._storeName);for(const[c,u]of n)a.put(u,c);o.oncomplete=()=>s(),o.onerror=()=>i(o.error),o.onabort=()=>i(o.error)}))}async removeItem(n){return this._withRetry(r=>new Promise((s,i)=>{const o=r.transaction([this._storeName],"readwrite");o.objectStore(this._storeName).delete(n),o.oncomplete=()=>s(),o.onerror=()=>i(o.error),o.onabort=()=>i(o.error)}))}async getAllKeys(){return this._withRetry(n=>new Promise((r,s)=>{const a=n.transaction([this._storeName],"readonly").objectStore(this._storeName).getAllKeys();a.onerror=()=>{s(a.error)},a.onsuccess=()=>{r(a.result.filter(c=>typeof c=="string"))}}))}}class or{static async getIsOnline(){return navigator.onLine}static listen(e){const n=()=>{e(!0)},r=()=>{e(!1)};return addEventListener("online",n),addEventListener("offline",r),()=>{removeEventListener("online",n),removeEventListener("offline",r)}}}class Y extends Error{constructor(n,r,s){super(n);h(this,"hint");h(this,"traceId");this.hint=r,s&&(this.traceId=s);const i=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,i),Error.captureStackTrace&&Error.captureStackTrace(this,Y),this.name="InstantError"}get[Symbol.toStringTag](){return"InstantError"}}class We extends Y{constructor(n){var i,o;const r=((i=n.body)==null?void 0:i.message)||`API Error (${n.status})`;super(r,n.body.hint,((o=n.body)==null?void 0:o.traceId)||n.body["trace-id"]);h(this,"body");h(this,"status");const s=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,s),Error.captureStackTrace&&Error.captureStackTrace(this,We),this.name="InstantAPIError",this.status=n.status,this.body=n.body}get[Symbol.toStringTag](){return"InstantAPIError"}}async function fe(t,e){const n=await fetch(t,e),r=await n.json();return n.status===200?Promise.resolve(r):Promise.reject(new We({status:n.status,body:r}))}function wo({apiURI:t,appId:e,email:n}){return fe(`${t}/runtime/auth/send_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,email:n})})}async function _o({apiURI:t,appId:e,email:n,code:r,refreshToken:s,extraFields:i}){return await fe(`${t}/runtime/auth/verify_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,email:n,code:r,...s?{"refresh-token":s}:{},...i?{"extra-fields":i}:{}})})}async function mo({apiURI:t,appId:e,refreshToken:n}){return await fe(`${t}/runtime/auth/verify_refresh_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,"refresh-token":n})})}async function So({apiURI:t,appId:e}){return await fe(`${t}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e})})}async function ar({apiURI:t,appId:e,code:n,codeVerifier:r,refreshToken:s,extraFields:i}){return await fe(`${t}/runtime/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:e,code:n,code_verifier:r,refresh_token:s,...i?{extra_fields:i}:{}})})}async function To({apiURI:t,appId:e,nonce:n,idToken:r,clientName:s,refreshToken:i,extraFields:o}){return await fe(`${t}/runtime/oauth/id_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:e,nonce:n,id_token:r,client_name:s,refresh_token:i,...o?{extra_fields:o}:{}})})}async function vo({apiURI:t,appId:e,refreshToken:n}){return await fe(`${t}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:e,refresh_token:n})})}async function Ao({apiURI:t,appId:e,path:n,file:r,refreshToken:s,contentType:i,contentDisposition:o}){const a={app_id:e,path:n,authorization:`Bearer ${s}`,"content-type":i||r.type};return o&&(a["content-disposition"]=o),await fe(`${t}/storage/upload`,{method:"PUT",headers:a,body:r})}async function ko({apiURI:t,appId:e,path:n,refreshToken:r}){const{data:s}=await fe(`${t}/storage/files?app_id=${e}&filename=${encodeURIComponent(n)}`,{method:"DELETE",headers:{"content-type":"application/json",authorization:`Bearer ${r}`}});return s}async function Oo({apiURI:t,appId:e,fileName:n,refreshToken:r,metadata:s={}}){const{data:i}=await fe(`${t}/storage/signed-upload-url`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${r}`},body:JSON.stringify({app_id:e,filename:n})});return i}async function Io(t,e){return(await fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok}async function Co({apiURI:t,appId:e,path:n,refreshToken:r}){const{data:s}=await fe(`${t}/storage/signed-download-url?app_id=${e}&filename=${encodeURIComponent(n)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${r}`}});return s}let Ht=!1,cr=!1,ur=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(Ht=!!window.localStorage.getItem("devBackend"),cr=!!window.localStorage.getItem("__instantLogging"),ur=!!window.localStorage.getItem("__devtoolLocalDash"));function lr(t,e){if(!e)return t;const n={};return e.forEach(r=>{n[r]=t[r]}),n}function Eo(t,e,n){const r={peers:{}};if(e&&"user"in e?e.user:!0){const i=lr(t.user??{},e==null?void 0:e.keys);r.user={...i,peerId:n}}for(const i of Object.keys(t.peers??{})){const o=(e==null?void 0:e.peers)===void 0,a=Array.isArray(e==null?void 0:e.peers)&&(e==null?void 0:e.peers.includes(i));if(o||a){const c=lr(t.peers[i],e==null?void 0:e.keys);r.peers[i]={...c,peerId:i}}}return r}function Po(t,e){if(t.isLoading!==e.isLoading||t.error!==e.error||(t.user||e.user)&&(!t.user||!e.user||!Tn(t.user,e.user))||!Sn(t.peers,e.peers))return!0;for(const r of Object.keys(t.peers))if(!Tn(t.peers[r],e.peers[r]))return!0;return!1}class fr{constructor(){h(this,"promise");h(this,"_resolve");h(this,"_reject");this.promise=new Promise((e,n)=>{this._resolve=e,this._reject=n})}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}function dr(t,e=[]){t.forEach(n=>{const{data:r}=n,{"datalog-result":s}=r,{"join-rows":i}=s;for(const o of i)for(const a of o)e.push(a);dr(n["child-nodes"],e)})}function hr(t){const e=[];return dr(t,e),e}function pr(t){return Object.values(t.links).reduce((e,n)=>{var r,s;return e[r=n.forward.on]??(e[r]={}),e[n.forward.on][n.forward.label]={isForward:!0,isSingular:n.forward.has==="one",link:n},e[s=n.reverse.on]??(e[s]={}),e[n.reverse.on][n.reverse.label]={isForward:!1,isSingular:n.reverse.has==="one",link:n},e},{})}const Jt="v1.0.36";function Mo(t,e){return{info:t?(...n)=>console.info(...n,e()):()=>{},debug:t?(...n)=>console.debug(...n,e()):()=>{},error:t?(...n)=>console.error(...n,e()):()=>{}}}class te{constructor(e,n,r,s={indexed:!1,unique:!1}){h(this,"valueType");h(this,"required");h(this,"isIndexed");h(this,"config");h(this,"metadata",{});this.valueType=e,this.required=n,this.isIndexed=r,this.config=s}clientRequired(){return new te(this.valueType,!1,this.isIndexed,this.config)}optional(){return new te(this.valueType,!1,this.isIndexed,this.config)}unique(){return new te(this.valueType,this.required,this.isIndexed,{...this.config,unique:!0})}indexed(){return new te(this.valueType,this.required,!0,{...this.config,indexed:!0})}}class ot{constructor(e,n){h(this,"attrs");h(this,"links");this.attrs=e,this.links=n}asType(){return new ot(this.attrs,this.links)}}class at{constructor(e,n,r){h(this,"entities");h(this,"links");h(this,"rooms");this.entities=e,this.links=n,this.rooms=r}withRoomSchema(){return new at(this.entities,this.links,{})}}class L extends Error{constructor(e,n){const r=n?`At path '${n}': ${e}`:e;super(r),this.name="QueryValidationError"}}const yr=["where","order","limit","last","first","offset","after","afterInclusive","before","beforeInclusive","fields","aggregate"],$o=t=>t.valueType||"unknown",br=(t,e,n=!1)=>{if(n||t==null)return!0;switch(e){case"string":return typeof t=="string";case"number":return typeof t=="number"&&!isNaN(t);case"boolean":return typeof t=="boolean";case"date":return t instanceof Date||typeof t=="string"||typeof t=="number";default:return!0}},jo=(t,e,n,r,s,i,o)=>{const a=i.valueType==="json",c=(u,l,f)=>{if(!br(f,l,a))throw new L(`Invalid value for operator '${u}' on attribute '${r}' in entity '${s}'. Expected ${l}, but received: ${typeof f}`,o)};switch(t){case"in":case"$in":if(!Array.isArray(e))throw new L(`Operator '${t}' for attribute '${r}' in entity '${s}' must be an array, but received: ${typeof e}`,o);for(const u of e)c(t,n,u);break;case"$not":case"$ne":case"$gt":case"$lt":case"$gte":case"$lte":c(t,n,e);break;case"$like":case"$ilike":if(c(t,"string",e),t==="$ilike"&&!i.isIndexed)throw new L(`Operator '${t}' can only be used with indexed attributes, but '${r}' in entity '${s}' is not indexed`,o);break;case"$isNull":c(t,"boolean",e);break;default:throw new L(`Unknown operator '${t}' for attribute '${r}' in entity '${s}'`,o)}},Me=(t,e,n,r,s)=>{const i=$o(n),o=n.valueType==="json";if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(o)return;const c=t;for(const[u,l]of Object.entries(c))jo(u,l,i,e,r,n,`${s}.${u}`)}else if(!br(t,i,o))throw new L(`Invalid value for attribute '${e}' in entity '${r}'. Expected ${i}, but received: ${typeof t}`,s)},Ro=(t,e,n,r,s)=>{const i=t.split(".");if(i.length<2)throw new L(`Invalid dot notation path '${t}'. Must contain at least one dot.`,s);let o=n;for(let l=0;l<i.length-1;l++){const f=i[l],d=r.entities[o];if(!d)throw new L(`Entity '${o}' does not exist in schema while traversing dot notation path '${t}'.`,s);const p=d.links[f];if(!p){const y=Object.keys(d.links);throw new L(`Link '${f}' does not exist on entity '${o}' in dot notation path '${t}'. Available links: ${y.length>0?y.join(", "):"none"}`,s)}o=p.entityName}const a=i[i.length-1],c=r.entities[o];if(!c)throw new L(`Target entity '${o}' does not exist in schema for dot notation path '${t}'.`,s);if(a==="id"){if(typeof e=="string"&&!Ce(e))throw new L(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${e}`,s);Me(e,t,new te("string",!1,!0),n,s);return}const u=c.attrs[a];if(Object.keys(c.links).includes(a)){if(typeof e=="string"&&!Ce(e))throw new L(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${e}`,s);Me(e,t,new te("string",!1,!0),n,s);return}if(!u){const l=Object.keys(c.attrs);throw new L(`Attribute '${a}' does not exist on entity '${o}' in dot notation path '${t}'. Available attributes: ${l.length>0?l.join(", ")+", id":"id"}`,s)}Me(e,t,u,n,s)},gr=(t,e,n,r)=>{for(const[s,i]of Object.entries(t)){if(s==="or"||s==="and"){if(Array.isArray(i))for(const u of i)typeof u=="object"&&u!==null&&gr(u,e,n,`${r}.${s}[${u}]`);continue}if(s==="id"){Me(i,"id",new te("string",!1,!0),e,`${r}.id`);continue}if(s.includes(".")){Ro(s,i,e,n,`${r}.${s}`);continue}const o=n.entities[e];if(!o)continue;const a=o.attrs[s],c=o.links[s];if(!a&&!c){const u=Object.keys(o.attrs),l=Object.keys(o.links);throw new L(`Attribute or link '${s}' does not exist on entity '${e}'. Available attributes: ${u.length>0?u.join(", "):"none"}. Available links: ${l.length>0?l.join(", "):"none"}`,`${r}.${s}`)}if(a)Me(i,s,a,e,`${r}.${s}`);else if(c){if(typeof i=="string"&&!Ce(i))throw new L(`Invalid value for link '${s}' in entity '${e}'. Expected a UUID, but received: ${i}`,`${r}.${s}`);const u=new te("string",!1,!0);Me(i,s,u,e,`${r}.${s}`)}}},Do=(t,e,n,r,s=0)=>{for(const o of Object.keys(t))if(!yr.includes(o))throw new L(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${yr.join(", ")}. Found: ${o}`,r);const i=["offset","before","beforeInclusive","after","afterInclusive","first","last"];for(const o of i)if(t[o]!==void 0&&s>0)throw new L(`'${o}' can only be used on top-level namespaces. It cannot be used in nested queries.`,r);if(t.where&&n){if(typeof t.where!="object"||t.where===null)throw new L(`'where' clause must be an object in entity '${e}', but received: ${typeof t.where}`,r?`${r}.where`:void 0);gr(t.where,e,n,r?`${r}.where`:"where")}},wr=(t,e,n,r,s=0)=>{var i;if(!t||typeof t!="object")throw new L(`Query part for entity '${e}' must be an object, but received: ${typeof t}`,r);for(const o of Object.keys(t))if(o!=="$"){if(n&&!(o in n.entities[e].links)){const c=Object.keys(n.entities[e].links);throw new L(`Link '${o}' does not exist on entity '${e}'. Available links: ${c.length>0?c.join(", "):"none"}`,`${r}.${o}`)}const a=t[o];if(typeof a=="object"&&a!==null){const c=(i=n==null?void 0:n.entities[e].links[o])==null?void 0:i.entityName;c&&wr(a,c,n,`${r}.${o}`,s+1)}}else{const a=t[o];if(typeof a!="object"||a===null)throw new L(`Query parameter '$' must be an object in entity '${e}', but received: ${typeof a}`,`${r}.$`);Do(a,e,n,`${r}.$`,s)}},_r=(t,e)=>{if(typeof t!="object"||t===null)throw new L(`Query must be an object, but received: ${typeof t}${t===null?" (null)":""}`);if(Array.isArray(t))throw new L(`Query must be an object, but received: ${typeof t}`);const n=t;for(const r of Object.keys(n)){if(Array.isArray(t[r]))throw new L(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(typeof r!="string")throw new L(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(r!=="$$ruleParams"){if(e&&!e.entities[r]){const s=Object.keys(e.entities);throw new L(`Entity '${r}' does not exist in schema. Available entities: ${s.length>0?s.join(", "):"none"}`,r)}wr(n[r],r,e,r,0)}}},mr=t=>typeof t!="string"?!1:st(t)?!0:Ce(t);class ce extends Error{constructor(e){super(e),this.name="TransactionValidationError"}}const Sr=t=>t.length>0?t.join(", "):"none",xo=(t,e)=>new ce(`Entity '${t}' does not exist in schema. Available entities: ${Sr(e)}`),Yt={string:t=>typeof t=="string",number:t=>typeof t=="number"&&!isNaN(t),boolean:t=>typeof t=="boolean",date:t=>t instanceof Date||typeof t=="string"||typeof t=="number",json:()=>!0},Uo=(t,e)=>{var n;return t==null?!0:((n=Yt[e.valueType])==null?void 0:n.call(Yt,t))??!1},Tr=(t,e)=>{const n=e.entities[t];if(!n)throw xo(t,Object.keys(e.entities));return n},Zt=(t,e,n)=>{const r=Tr(t,n);if(typeof e!="object"||e===null)throw new ce(`Arguments for data operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[s,i]of Object.entries(e)){if(s==="id")continue;const o=r.attrs[s];if(o&&!Uo(i,o))throw new ce(`Invalid value for attribute '${s}' in entity '${t}'. Expected ${o.valueType}, but received: ${typeof i}`)}},vr=(t,e,n)=>{const r=Tr(t,n);if(typeof e!="object"||e===null)throw new ce(`Arguments for link operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[s,i]of Object.entries(e)){if(!r.links[s]){const a=Object.keys(r.links);throw new ce(`Link '${s}' does not exist on entity '${t}'. Available links: ${Sr(a)}`)}if(i!=null){if(Array.isArray(i)){for(const a of i)if(!mr(a))throw new ce(`Invalid entity ID in link '${s}' for entity '${t}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!mr(i))throw new ce(`Invalid UUID in link '${s}' for entity '${t}'. Expected a UUID, but received: ${i}`)}}},Lo={create:Zt,update:Zt,merge:Zt,link:vr,unlink:vr,delete:()=>{}},Fo=(t,e)=>{if(!e)return;const[n,r,s,i]=t;if(!Array.isArray(s)&&!Ce(s))throw new ce(`Invalid id for entity '${r}'. Expected a UUID, but received: ${s}`);if(typeof r!="string")throw new ce(`Entity name must be a string, but received: ${typeof r}`);const o=Lo[n];o&&i!==void 0&&o(r,i,e)},No=(t,e)=>{const n=Array.isArray(t)?t:[t];for(const r of n){if(!r||typeof r!="object")throw new ce(`Transaction chunk must be an object, but received: ${typeof r}`);if(!Array.isArray(r.__ops))throw new ce(`Transaction chunk must have __ops array, but received: ${typeof r.__ops}`);for(const s of r.__ops){if(!Array.isArray(s))throw new ce(`Transaction operation must be an array, but received: ${typeof s}`);Fo(s,e)}}};let Ar=0;class kr{constructor(e){h(this,"type","ws");h(this,"conn");h(this,"id");h(this,"onopen");h(this,"onmessage");h(this,"onclose");h(this,"onerror");this.id=`${this.type}_${Ar++}`,this.conn=new WebSocket(e),this.conn.onopen=n=>{this.onopen&&this.onopen({target:this})},this.conn.onmessage=n=>{this.onmessage&&this.onmessage({target:this,message:JSON.parse(n.data.toString())})},this.conn.onclose=n=>{this.onclose&&this.onclose({target:this})},this.conn.onerror=n=>{this.onerror&&this.onerror({target:this})}}close(){this.conn.close()}isOpen(){return this.conn.readyState===(WebSocket.OPEN??1)}isConnecting(){return this.conn.readyState===(WebSocket.CONNECTING??0)}send(e){return this.conn.send(JSON.stringify(e))}}class Ko{constructor(e,n,r){h(this,"type","sse");h(this,"initParams",null);h(this,"sendQueue",[]);h(this,"sendPromise");h(this,"closeFired",!1);h(this,"sseInitTimeout");h(this,"ES");h(this,"messageUrl");h(this,"conn");h(this,"url");h(this,"id");h(this,"onopen");h(this,"onmessage");h(this,"onclose");h(this,"onerror");this.id=`${this.type}_${Ar++}`,this.url=n,this.messageUrl=r||this.url,this.ES=e,this.conn=new e(n),this.sseInitTimeout=setTimeout(()=>{this.initParams||this.handleError()},1e4),this.conn.onmessage=s=>{const i=JSON.parse(s.data);if(Array.isArray(i))for(const o of i)this.handleMessage(o);else this.handleMessage(i)},this.conn.onerror=s=>{this.handleError()}}handleMessage(e){if(e.op==="sse-init"){this.initParams={machineId:e["machine-id"],sessionId:e["session-id"],sseToken:e["sse-token"]},this.onopen&&this.onopen({target:this}),clearTimeout(this.sseInitTimeout);return}this.onmessage&&this.onmessage({target:this,message:e})}handleError(){try{this.onerror&&this.onerror({target:this})}finally{this.handleClose()}}handleClose(){this.conn.close(),this.onclose&&!this.closeFired&&(this.closeFired=!0,this.onclose({target:this}))}async postMessages(e){var n,r,s;try{(await fetch(this.messageUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machine_id:(n=this.initParams)==null?void 0:n.machineId,session_id:(r=this.initParams)==null?void 0:r.sessionId,sse_token:(s=this.initParams)==null?void 0:s.sseToken,messages:e})})).ok||this.handleError()}catch{this.handleError()}}async flushQueue(){if(this.sendPromise||!this.sendQueue.length)return;const e=this.sendQueue;this.sendQueue=[];const n=this.postMessages(e);this.sendPromise=n,n.then(()=>{this.sendPromise=null,this.flushQueue()})}send(e){if(!this.isOpen()||!this.initParams)throw this.isConnecting()?new Error("Failed to execute 'send' on 'EventSource': Still in CONNECTING state."):this.conn.readyState===this.ES.CLOSED?new Error("EventSource is already in CLOSING or CLOSED state."):new Error("EventSource is in invalid state.");this.sendQueue.push(e),this.flushQueue()}isOpen(){return this.conn.readyState===this.ES.OPEN&&this.initParams!==null}isConnecting(){return this.conn.readyState===this.ES.CONNECTING||this.conn.readyState===this.ES.OPEN&&this.initParams===null}close(){this.handleClose()}}function qo(t,e){const n=t.values;if(n){const r=Pn(n.attrsStore,null);if(r){for(const s of n.entities||[])s.store.useDateObjects=e,s.store=En(r,s.store);n.attrsStore=r}}return t}function zo(t,e){var n;if(e.values){const r=[];for(const s of(n=e.values)==null?void 0:n.entities){const i=Cn(s.store);r.push({...s,store:i})}return{...e,values:{attrsStore:e.values.attrsStore.toJSON(),entities:r}}}else return e}function Wo(t,e,n){var i,o;const r=(i=e==null?void 0:e.state)==null?void 0:i.txId,s=(o=n==null?void 0:n.state)==null?void 0:o.txId;return r&&(!s||r>s)?e:s&&(!r||s>r)?n:e||n}function Xt(t,e,n){return Jn({store:e,attrsStore:n,pageInfo:null,aggregate:null},t.query).data[t.table][0]}function Or(t,e,n,r){var o;const s=(o=V(n,t.table,"id"))==null?void 0:o.id;if(!s)return-1;const i=Ie(e.eav,[r,s,r]);return i?i[3]:-1}function Ir(t,e,n){for(const{action:r,triple:s}of n)switch(r){case"added":jn(t,e,s);break;case"removed":Mn(t,e,s);break}}function Qo(t,e,n){var s,i;const r={};for(const{action:o,triple:a}of n){const[c,u,l]=a,f=(i=(s=e.getAttr(u))==null?void 0:s["forward-identity"])==null?void 0:i[2];if(!f)continue;const d=r[c]??{};r[c]=d;const p=d[f]??{};switch(o){case"added":p.newValue=l;break;case"removed":p.oldValue===void 0&&(p.oldValue=l);break}d[f]=p}for(const[o,a]of Object.entries(r))for(const[c,{oldValue:u,newValue:l}]of Object.entries(a))u===l&&delete a[c];return r}function ct(t,e){return{[t.table]:e.map(n=>n.entity)}}function Vo(t,e){var r;if(t.orderFieldType)return t.orderFieldType;const n=t.orderField==="serverCreatedAt"?"number":(r=V(e(),t.table,t.orderField))==null?void 0:r["checked-data-type"];return t.orderFieldType=n,n}function Bo(t,e,n){const r=e;if(t.orderField==="serverCreatedAt"){n.sort(t.orderDirection==="asc"?function(o,a){return ze(o.entity.id,o.serverCreatedAt,a.entity.id,a.serverCreatedAt,r)}:function(o,a){return ze(a.entity.id,a.serverCreatedAt,o.entity.id,o.serverCreatedAt,r)});return}const s=t.orderField;n.sort(t.orderDirection==="asc"?function(o,a){return ze(o.entity.id,o.entity[s],a.entity.id,a.entity[s],r)}:function(o,a){return ze(a.entity.id,a.entity[s],o.entity.id,o.entity[s],r)})}R.SyncTableCallbackEventType=void 0,function(t){t.InitialSyncBatch="InitialSyncBatch",t.InitialSyncComplete="InitialSyncComplete",t.LoadFromStorage="LoadFromStorage",t.SyncTransaction="SyncTransaction",t.Error="Error"}(R.SyncTableCallbackEventType||(R.SyncTableCallbackEventType={}));class Go{constructor(e,n,r,s,i,o){h(this,"trySend");h(this,"subs");h(this,"callbacks",{});h(this,"config");h(this,"idToHash",{});h(this,"log");h(this,"createStore");h(this,"getAttrs");this.trySend=e,this.config=r,this.log=s,this.createStore=i,this.getAttrs=o,this.subs=new Gt({persister:n,merge:Wo,serialize:zo,parse:(a,c)=>qo(c,this.config.useDateObjects),objectSize:a=>{var c;return((c=a.values)==null?void 0:c.entities.length)||0},logger:s,gc:{maxAgeMs:1e3*60*60*24*7*52,maxEntries:1e3,maxSize:1e6}})}beforeUnload(){this.subs.flush()}subscribe(e,n){const r=D(e);return this.callbacks[r]=this.callbacks[r]||[],this.callbacks[r].push(n),this.initSubscription(e,r,n),s=>{this.unsubscribe(r,n,s==null?void 0:s.keepSubscription)}}unsubscribe(e,n,r){const s=(this.callbacks[e]||[]).filter(i=>i!==n);if(this.callbacks[e]=s,!s.length){delete this.callbacks[e];const i=this.subs.currentValue[e];i!=null&&i.state&&this.clearSubscriptionData(i.state.subscriptionId,!!r),r||this.subs.updateInPlace(o=>{delete o[e]})}}sendStart(e){this.trySend(K(),{op:"start-sync",q:e})}sendResync(e,n,r){this.idToHash[n.subscriptionId]=e.hash,this.trySend(n.subscriptionId,{op:"resync-table","subscription-id":n.subscriptionId,"tx-id":r,token:n.token})}sendRemove(e,n){this.trySend(K(),{op:"remove-sync","subscription-id":e.subscriptionId,"keep-subscription":n})}async initSubscription(e,n,r){var u,l,f,d;await this.subs.waitForKeyToLoad(n);const s=this.subs.currentValue[n];if(s&&s.state&&s.state.txId){this.sendResync(s,s.state,s.state.txId),(u=s.values)!=null&&u.entities&&r&&r({type:R.SyncTableCallbackEventType.LoadFromStorage,data:ct(s,(l=s.values)==null?void 0:l.entities)});return}const i=Object.keys(e)[0],o=((d=(f=e[i])==null?void 0:f.$)==null?void 0:d.order)||{serverCreatedAt:"asc"},[a,c]=Object.entries(o)[0];this.subs.updateInPlace(p=>{p[n]={query:e,hash:n,table:i,orderDirection:c,orderField:a,createdAt:Date.now(),updatedAt:Date.now()}}),this.sendStart(e)}async flushPending(){for(const e of Object.keys(this.callbacks)){await this.subs.waitForKeyToLoad(e);const n=this.subs.currentValue[e];n?await this.initSubscription(n.query,n.hash):this.log.error("Missing sub for hash in flushPending",e)}}onStartSyncOk(e){const n=e["subscription-id"],r=e.q,s=D(r);this.idToHash[n]=s,this.subs.updateInPlace(i=>{const o=i[s];if(!o)return this.log.error("Missing sub for hash",s,"subscription-id",n,"query",r),i;o.state={subscriptionId:n,token:e.token}})}notifyCbs(e,n){for(const r of this.callbacks[e]||[])r(n)}onSyncLoadBatch(e){const n=e["subscription-id"],r=e["join-rows"],s=this.idToHash[n];if(!s){this.log.error("Missing hash for subscription",e);return}const i=[],o=this.subs.currentValue[s];if(!o){this.log.error("Missing sub for hash",s,e);return}const a=o.values??{entities:[],attrsStore:this.getAttrs()};o.values=a;const c=a.entities;for(const u of r){const l=this.createStore(u),f=Xt(o,l,a.attrsStore);c.push({store:l,entity:f,serverCreatedAt:Or(o,l,a.attrsStore,f.id)}),i.push(f)}this.subs.updateInPlace(u=>{u[s]=o,u[s].updatedAt=Date.now()}),o.values&&this.notifyCbs(s,{type:R.SyncTableCallbackEventType.InitialSyncBatch,data:ct(o,o.values.entities),batch:i})}onSyncInitFinish(e){var i;const n=e["subscription-id"],r=this.idToHash[n];if(!r){this.log.error("Missing hash for subscription",e);return}this.subs.updateInPlace(o=>{const a=o[r];if(!a){this.log.error("Missing sub for hash",r,e);return}const c=a.state;if(!c)return this.log.error("Sub never set init, missing result",a,e),o;c.txId=e["tx-id"],a.updatedAt=Date.now()});const s=this.subs.currentValue[r];s&&this.notifyCbs(r,{type:R.SyncTableCallbackEventType.InitialSyncComplete,data:ct(s,((i=s.values)==null?void 0:i.entities)||[])})}onSyncUpdateTriples(e){var o;const n=e["subscription-id"],r=this.idToHash[n];if(!r){this.log.error("Missing hash for subscription",e);return}const s=this.subs.currentValue[r];if(!s){this.log.error("Missing sub for hash",r,e);return}const i=s.state;if(!i){this.log.error("Missing state for sub",s,e);return}for(const a of e.txes){if(i.txId&&i.txId>=a["tx-id"])continue;i.txId=a["tx-id"];const c=[],u={};for(const g of a.changes){const _=u[g.triple[0]]??[];u[g.triple[0]]=_,_.push(g)}const l=s.values??{entities:[],attrsStore:this.getAttrs()},f=l.entities;s.values=l;const d=[];e:for(const[g,_]of Object.entries(u))for(let w=0;w<f.length;w++){const m=f[w];if(Os(m.store,g)){Ir(m.store,l.attrsStore,_);const I=Xt(s,m.store,l.attrsStore),S=Qo(m.store,l.attrsStore,_)[g];I?(d.push({oldEntity:m.entity,newEntity:I,changedFields:S||{}}),m.entity=I):c.push(w),delete u[g];continue e}}const p=[];for(const[g,_]of Object.entries(u)){const w=this.createStore([]);Ir(w,l.attrsStore,_);const m=Xt(s,w,l.attrsStore);if(!m){this.log.error("No entity found after applying change",{sub:s,changes:_,store:w});continue}f.push({store:w,entity:m,serverCreatedAt:Or(s,w,l.attrsStore,m.id)}),p.push(m)}const y=[];for(const g of c.sort().reverse())y.push(f[g].entity),f.splice(g,1);const b=Vo(s,this.getAttrs);Bo(s,b,f),this.notifyCbs(r,{type:R.SyncTableCallbackEventType.SyncTransaction,data:ct(s,(o=s.values)==null?void 0:o.entities),added:p,removed:y,updated:d})}this.subs.updateInPlace(a=>{a[r]=s,a[r].updatedAt=Date.now()})}clearSubscriptionData(e,n){const r=this.idToHash[e];if(r){delete this.idToHash[e];const s=this.subs.currentValue[r];if(s.state&&this.sendRemove(s.state,n),n?this.subs.unloadKey(r):this.subs.updateInPlace(i=>{delete i[r]}),s)return s}}onStartSyncError(e){const n=D(e["original-event"].q),r={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa.",status:e.status,type:e.type,hint:e.hint},s=Object.keys(e["original-event"].q)[0];this.notifyCbs(n,{type:R.SyncTableCallbackEventType.Error,data:{[s]:[]},error:r})}onResyncError(e){const n=e["original-event"]["subscription-id"],r=this.clearSubscriptionData(n,!1);r&&this.initSubscription(r.query,r.hash)}}function Ho({WStream:t,opts:e,startStream:n,appendStream:r,registerStream:s}){const i=e.clientId;let o=null,a=null,c=null;const u=K();let l=!1,f=!1;const d=[],p=[],y=[];let b=!1,g=0,_=0;const w=[],m=new TextEncoder;function I(){f=!0;for(const T of d)T(a??void 0)}function S(T){return d.push(T),f&&T(a??void 0),()=>{const v=d.indexOf(T);v!==-1&&d.splice(v,1)}}function M(T){return y.push(T),()=>{const v=y.indexOf(T);v!==-1&&y.splice(v,1)}}e.waitUntil&&e.waitUntil(new Promise(T=>{y.push(T)}));function O(){for(const T of y)try{T()}catch{}}function k(T){return p.push(T),o&&T(o),()=>{const v=p.indexOf(T);v!==-1&&p.splice(v,1)}}function z(T){o=T;for(const v of p)v(o)}function x(){b=!0}function q(T){let v=g,U=0,Q=0;for(const{byteLen:B}of w){const ae=v+B;if(ae>T)break;v=ae,U++,Q+=B}U>0&&(g+=Q,_-=Q,w.splice(0,U))}function N(T,v){a=v,I(),T.error(v),O()}async function J(){const T=await n({clientId:i,reconnectToken:u,ruleParams:e.ruleParams});switch(T.type){case"ok":{const{streamId:v,offset:U}=T;o=v,q(U),w.length&&r({streamId:v,chunks:w.map(Q=>Q.chunk),offset:g}),b=!1;break}case"disconnect":{x();break}case"error":{c&&N(c,T.error);break}}}function W(){x(),J()}function A({offset:T,done:v}){q(T),v&&(l=!0,O())}function P(T){return l?(N(T,new Y("Stream has been closed.")),null):o||(N(T,new Y("Stream has not been initialized.")),null)}async function C(T){c=T;let v=!0,U=0;for(;v;){let Q=Date.now()+Math.min(15e3,500*(U-1));v=!1;const B=await n({clientId:e.clientId,reconnectToken:u,ruleParams:e.ruleParams});switch(B.type){case"ok":{const{streamId:ae,offset:un}=B;if(un!==0){const ke=new Y("Write stream is corrupted");N(T,ke);return}z(ae),s(ae,{onDisconnect:x,onFlush:A,onConnectionReconnect:J,onAppendFailed:W}),b=!1;return}case"disconnect":{v=!0,x(),U++,await new Promise(ae=>{setTimeout(ae,Math.max(0,Q-Date.now()))});break}case"error":{N(T,B.error);return}}}}class $ extends t{constructor(v,U){super(v,U)}async streamId(){return o||new Promise((v,U)=>{const Q=[],B=()=>{for(const ke of Q)ke()},ae=ke=>{v(ke),B()},un=ke=>{U(ke||new Y("Stream is closed.")),B()};Q.push(k(ae)),Q.push(S(un))})}}return{stream:new $({async start(T){try{await C(T)}catch(v){N(T,v)}},write(T,v){const U=P(v);if(U){const Q=m.encode(T).length;w.push({chunk:T,byteLen:Q});const B=g+_;_+=Q,b||r({streamId:U,chunks:[T],offset:B})}},close(){o?r({streamId:o,chunks:[],offset:g+_,isDone:!0}):O(),I()},abort(T){o?r({streamId:o,chunks:[],offset:g+_,isDone:!0,abortReason:T}):O(),I()}}),addCompleteCb:M,closed(){return f}}}class Jo{constructor(){h(this,"items",[]);h(this,"resolvers",[]);h(this,"isClosed",!1)}push(e){if(this.isClosed)return;const n=this.resolvers.shift();n?n({value:e,done:!1}):this.items.push(e)}close(){for(this.isClosed=!0;this.resolvers.length>0;)this.resolvers.shift()({value:void 0,done:!0})}async*[Symbol.asyncIterator](){for(;;)if(this.items.length>0)yield this.items.shift();else{if(this.isClosed)return;{const{value:e,done:n}=await new Promise(r=>{this.resolvers.push(r)});if(n||!e)return;yield e}}}}function Yo({RStream:t,opts:e,startStream:n,cancelStream:r}){let s=e.byteOffset||0,i=!1;const o=new TextDecoder("utf-8"),a=new TextEncoder;let c,u=!1;const l=[],f=[];let d=null,p=null;function y(O){u=!0;for(const k of l)k(O)}function b(O){return l.push(O),()=>{const k=l.indexOf(O);k!==-1&&l.splice(k,1)}}function g(O){return f.push(O),d&&O(d),()=>{const k=f.indexOf(O);k!==-1&&f.splice(k,1)}}function _(O,k){p=k,O.error(k),y(k)}let w=0;async function m(O,k){c=K();const z={...O||{},eventId:c};for await(const x of n(z)){if(i)return;if(x.type==="reconnect")return{retry:!0};if(x.type==="error"){_(k,x.error);return}if(x.offset>s){_(k,new Y("Stream is corrupted.")),i=!0;return}d=x.streamId;for(const N of f)N(d);let q=s-x.offset;if(x.files&&x.files.length){const N=new AbortController;let J=fetch(x.files[0].url,{signal:N.signal});for(let W=0;W<x.files.length;W++){const A=x.files[W+1],C=await J;if(A&&(J=fetch(A.url,{signal:N.signal})),!C.ok){if(w++,w>10){_(k,new Y("Unable to process stream."));return}return{retry:!0}}if(C.body){const $=C.body.getReader();try{for(;;){const{done:j,value:T}=await $.read();if(j)break;if(i){N.abort();return}let v=T;if(q>0&&(v=T.subarray(q),q-=T.length-v.length),!v.length)continue;s+=v.length;const U=o.decode(v);k.enqueue(U)}}finally{$.releaseLock()}}else{const $=await C.arrayBuffer();let j=$;if(i){N.abort();return}if(q>0&&(j=new Uint8Array($).subarray(q),q-=$.byteLength-j.length),!j.byteLength)continue;s+=j.byteLength;const T=o.decode(j);k.enqueue(T)}}}if(w=0,x.content){let N=x.content,J=a.encode(x.content);if(q>0){const W=J.subarray(q);if(q-=J.length-W.length,!W.length)continue;J=W,N=o.decode(W)}s+=J.length,k.enqueue(N)}}}async function I(O){let k=!0,z=0;for(;k;){k=!1;let x=Date.now()+Math.min(15e3,500*(z-1));const q=await m({...e,offset:s},O);q!=null&&q.retry&&(k=!0,z++,x<Date.now()-3e5&&(z=0),await new Promise(N=>{setTimeout(N,Math.max(0,x-Date.now()))}))}!i&&!u&&(O.close(),y())}class S extends t{constructor(k,z){super(k,z)}async streamId(){if(d)return d;if(p)throw p;return new Promise((k,z)=>{const x=[],q=()=>{for(const W of x)W()},N=W=>{k(W),q()},J=W=>{z(W||new Y("Stream is closed.")),q()};x.push(g(N)),x.push(b(J))})}}return{stream:new S({start(O){I(O)},cancel(O){i=!0,c&&r({eventId:c}),y()}}),addCloseCb:b,closed(){return u}}}class Zo{constructor({WStream:e,RStream:n,trySend:r,log:s}){h(this,"trySend");h(this,"WStream");h(this,"RStream");h(this,"writeStreams",{});h(this,"startWriteStreamCbs",{});h(this,"readStreamIterators",{});h(this,"log");h(this,"activeStreams",new Set);this.WStream=e,this.RStream=n,this.trySend=r,this.log=s}createWriteStream(e){const{stream:n,addCompleteCb:r}=Ho({WStream:this.WStream,startStream:this.startWriteStream.bind(this),appendStream:this.appendStream.bind(this),registerStream:this.registerWriteStream.bind(this),opts:e});return this.activeStreams.add(n),r(()=>{this.activeStreams.delete(n)}),n}createReadStream(e){const{stream:n,addCloseCb:r}=Yo({RStream:this.RStream,opts:e,startStream:this.startReadStream.bind(this),cancelStream:this.cancelReadStream.bind(this)});return this.activeStreams.add(n),r(()=>{this.activeStreams.delete(n)}),n}startWriteStream(e){const n=K();let r=null;const s=new Promise(o=>{r=o});this.startWriteStreamCbs[n]=r;const i={op:"start-stream","client-id":e.clientId,"reconnect-token":e.reconnectToken};return e.ruleParams&&(i["rule-params"]=e.ruleParams),this.trySend(n,i),s}registerWriteStream(e,n){this.writeStreams[e]=n}appendStream({streamId:e,chunks:n,isDone:r,offset:s,abortReason:i}){const o={op:"append-stream","stream-id":e,chunks:n,offset:s,done:!!r};i&&(o["abort-reason"]=i),this.trySend(K(),o)}onAppendFailed(e){const n=this.writeStreams[e["stream-id"]];n&&n.onAppendFailed()}onStartStreamOk(e){const n=this.startWriteStreamCbs[e["client-event-id"]];if(!n){this.log.info("No stream for start-stream-ok",e);return}n({type:"ok",streamId:e["stream-id"],offset:e.offset}),delete this.startWriteStreamCbs[e["client-event-id"]]}onStreamFlushed(e){const n=e["stream-id"],r=this.writeStreams[n];if(!r){this.log.info("No stream cbs for stream-flushed",e);return}r.onFlush({offset:e.offset,done:e.done}),e.done&&delete this.writeStreams[n]}startReadStream({eventId:e,clientId:n,streamId:r,offset:s,ruleParams:i}){const o={op:"subscribe-stream"};if(!r&&!n)throw new Error("Must provide one of streamId or clientId to subscribe to the stream.");r&&(o["stream-id"]=r),n&&(o["client-id"]=n),s&&(o.offset=s),i&&(o["rule-params"]=i);const a=new Jo;return this.readStreamIterators[e]=a,this.trySend(e,o),a}cancelReadStream({eventId:e}){const n={op:"unsubscribe-stream","subscribe-event-id":e};this.trySend(K(),n),delete this.readStreamIterators[e]}onStreamAppend(e){const n=e["client-event-id"],r=this.readStreamIterators[n];if(!r){this.log.info("No iterator for read stream",e);return}if(e.error){e.retry?r.push({type:"reconnect"}):r.push({type:"error",error:new Y(e.error)}),r.close(),delete this.readStreamIterators[n];return}r.push({type:"append",offset:e.offset,files:e.files,content:e.content,streamId:e["stream-id"]}),e.done&&(r.close(),delete this.readStreamIterators[n])}onConnectionStatusChange(e){for(const n of Object.values(this.startWriteStreamCbs))n({type:"disconnect"});if(this.startWriteStreamCbs={},e!==he.AUTHENTICATED)for(const{onDisconnect:n}of Object.values(this.writeStreams))n();else{for(const{onConnectionReconnect:n}of Object.values(this.writeStreams))n();for(const n of Object.values(this.readStreamIterators))n.push({type:"reconnect"}),n.close();this.readStreamIterators={}}}onRecieveError(e){const n=e["original-event"];switch(n.op){case"append-stream":{const r=n["stream-id"],s=this.writeStreams[r];s==null||s.onAppendFailed();break}case"start-stream":{const r=e["client-event-id"],s=this.startWriteStreamCbs[r];s&&(s({type:"error",error:new Y(e.message||"Unknown error",e.hint)}),delete this.startWriteStreamCbs[r]);break}case"subscribe-stream":{const r=e["client-event-id"],s=this.readStreamIterators[r];s&&(s.push({type:"error",error:new Y(e.message||"Unknown error",e.hint)}),s.close(),delete this.readStreamIterators[r]);break}}}hasActiveStreams(){return this.activeStreams.size>0}}const he={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},Xo=3e4,ea=3e4,ta=200,na=1e3*60,ra={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},en="_instant_oauth_redirect",tn="_instant_extra_fields_id",ut="oauthExtraFields",$e="currentUser";function sa({transportType:t,appId:e,apiURI:n,wsURI:r,EventSourceImpl:s}){if(!s)return new kr(`${r}?app_id=${e}`);switch(t){case"ws":return new kr(`${r}?app_id=${e}`);case"sse":return new Ko(s,`${n}/runtime/sse?app_id=${e}`);default:throw new Error("Unknown transport type "+t)}}function ia(){return typeof window<"u"||typeof chrome<"u"}const Cr={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function oa(t,e){var r;const n=typeof t=="string"?JSON.parse(t):t;if((r=n==null?void 0:n.result)!=null&&r.store){const s=Pn(n.result.attrsStore,n.result.store);if(s){const i=n.result.store;n.result.store=En(s,{...i,useDateObjects:e}),n.result.attrsStore=s}}return n}function aa(t,e){const{result:n,...r}=e,s=r;if(n){const i={...n,store:Cn(n.store),attrsStore:n.attrsStore.toJSON()};s.result=i}return s}function ca(t,e){switch(t){case"pendingMutations":return new Map(typeof e=="string"?JSON.parse(e):e);default:return e}}function ua(t,e){switch(t){case"pendingMutations":return[...e.entries()];default:return e}}function la(t,e,n){const r=e==null?void 0:e.result,s=n==null?void 0:n.result;return r&&!s&&n&&(n.result=r),n||e}function nn(t){return[...t].sort((e,n)=>{const[r,s]=e,[i,o]=n,a=s.order||0,c=o.order||0;return a==c?r<i?-1:r>i?1:0:a-c})}class fa{constructor(e,n=ir,r=or,s,i){h(this,"attrs");h(this,"_isOnline",!0);h(this,"_isShutdown",!1);h(this,"status",he.CONNECTING);h(this,"querySubs");h(this,"kv");h(this,"_syncTable");h(this,"_instantStream");h(this,"queryCbs",{});h(this,"queryOnceDfds",{});h(this,"authCbs",[]);h(this,"attrsCbs",[]);h(this,"mutationErrorCbs",[]);h(this,"connectionStatusCbs",[]);h(this,"config");h(this,"mutationDeferredStore",new Map);h(this,"_reconnectTimeoutId",null);h(this,"_reconnectTimeoutMs",0);h(this,"_transport");h(this,"_transportType","ws");h(this,"_EventSource");h(this,"_wsOk",null);h(this,"_localIdPromises",{});h(this,"_errorMessage",null);h(this,"_oauthCallbackResponse",null);h(this,"_linkIndex",null);h(this,"_broadcastChannel");h(this,"_rooms",{});h(this,"_roomsPendingLeave",{});h(this,"_presence",{});h(this,"_broadcastQueue",[]);h(this,"_broadcastSubs",{});h(this,"_currentUserCached",{isLoading:!0,error:void 0,user:void 0});h(this,"_beforeUnloadCbs",[]);h(this,"_dataForQueryCache",{});h(this,"_log");h(this,"_pendingTxCleanupTimeout");h(this,"_pendingMutationCleanupThreshold");h(this,"_inFlightMutationEventIds",new Set);h(this,"_frameworkClient",null);h(this,"_onMergeKv",(e,n,r)=>{switch(e){case"pendingMutations":{const s=(n==null?void 0:n.entries())??[],i=(r==null?void 0:r.entries())??[],o=new Map([...s,...i]);return(n?this._rewriteMutationsSorted(this.attrs,n):[]).forEach(([c,u])=>{var l;!((l=r==null?void 0:r.pendingMutations)!=null&&l.has(c))&&!u["tx-id"]&&this._sendMutation(c,u)}),o}default:return r||n}});h(this,"getPreviousResult",e=>{var r;const n=D(e);return(r=this.dataForQuery(n))==null?void 0:r.data});h(this,"notifyOne",e=>{var i;const n=this.queryCbs[e]??[],r=(i=this._dataForQueryCache[e])==null?void 0:i.data,s=this.dataForQuery(e);s!=null&&s.data&&(this._dataForQueryCache[e]=s,!Ze(s.data,r)&&n.forEach(o=>o.cb(s.data)))});h(this,"notifyOneQueryOnce",e=>{var s;const n=this.queryOnceDfds[e]??[],r=(s=this.dataForQuery(e))==null?void 0:s.data;n.forEach(i=>{this._completeQueryOnce(i.q,e,i.dfd),i.dfd.resolve(r)})});h(this,"notifyQueryError",(e,n)=>{(this.queryCbs[e]||[]).forEach(s=>s.cb({error:n}))});h(this,"pushTx",e=>{this.config.disableValidation||No(e,this.config.schema);try{const n=lo({attrsStore:this.optimisticAttrs(),schema:this.config.schema,stores:Object.values(this.querySubs.currentValue).map(r=>{var s;return(s=r==null?void 0:r.result)==null?void 0:s.store}),useDateObjects:this.config.useDateObjects},e);return this.pushOps(n)}catch(n){return this.pushOps([],n)}});h(this,"pushOps",(e,n)=>{const r=K(),s=[...this._pendingMutations().values()],i=Math.max(0,...s.map(c=>c.order||0))+1,o={op:"transact","tx-steps":e,created:Date.now(),error:n,order:i};this._updatePendingMutations(c=>{c.set(r,o)});const a=new fr;return this.mutationDeferredStore.set(r,a),this._sendMutation(r,o),this.notifyAll(),a.promise});h(this,"_transportOnOpen",e=>{const n=e.target;if(this._transport!==n){this._log.info("[socket][open]",n.id,"skip; this is no longer the current transport");return}this._log.info("[socket][open]",this._transport.id),this._setStatus(he.OPENED),this.getCurrentUser().then(r=>{var s;this._trySend(K(),{op:"init","app-id":this.config.appId,"refresh-token":(s=r.user)==null?void 0:s.refresh_token,versions:this.versions,"__admin-token":this.config.__adminToken})}).catch(r=>{this._log.error("[socket][error]",n.id,r)})});h(this,"_transportOnMessage",e=>{const n=e.target,r=e.message;if(this._transport!==n){this._log.info("[socket][message]",n.id,r,"skip; this is no longer the current transport");return}if(!this._wsOk&&n.type==="ws"&&(this._wsOk=!0),this._transportType="ws",Array.isArray(e.message))for(const s of e.message)this._handleReceive(n.id,s);else this._handleReceive(n.id,e.message)});h(this,"_transportOnError",e=>{const n=e.target;if(this._transport!==n){this._log.info("[socket][error]",n.id,"skip; this is no longer the current transport");return}this._log.error("[socket][error]",n.id,e)});h(this,"_scheduleReconnect",()=>{!this._wsOk&&this._transportType!=="sse"&&(this._transportType="sse",this._reconnectTimeoutMs=0),setTimeout(()=>{if(this._reconnectTimeoutMs=Math.min(this._reconnectTimeoutMs+1e3,1e4),!this._isOnline){this._log.info("[socket][close]",this._transport.id,"we are offline, no need to start socket");return}this._startSocket()},this._reconnectTimeoutMs)});h(this,"_transportOnClose",e=>{const n=e.target;if(this._transport!==n){this._log.info("[socket][close]",n.id,"skip; this is no longer the current transport");return}this._setStatus(he.CLOSED);for(const r of Object.values(this._rooms))r.isConnected=!1;if(this._isShutdown){this._log.info("[socket][close]",n.id,"Reactor has been shut down and will not reconnect");return}this._log.info("[socket][close]",n.id,"schedule reconnect, ms =",this._reconnectTimeoutMs),this._scheduleReconnect()});if(this._EventSource=i,this.config={...ra,...e},this.queryCacheLimit=this.config.queryCacheLimit??10,this._pendingTxCleanupTimeout=this.config.pendingTxCleanupTimeout??ea,this._pendingMutationCleanupThreshold=this.config.pendingMutationCleanupThreshold??ta,this._log=Mo(e.verbose||Ht||cr,()=>this._reactorStats()),this.versions={...s||{},"@instantdb/core":Jt},this.config.schema&&(this._linkIndex=pr(this.config.schema)),!!ia()){if(!e.appId)throw new Error("Instant must be initialized with an appId.");if(!Ce(e.appId))throw new Error(`Instant must be initialized with a valid appId. \`${e.appId}\` is not a valid uuid.`);typeof BroadcastChannel=="function"&&(this._broadcastChannel=new BroadcastChannel("@instantdb"),this._broadcastChannel.addEventListener("message",async o=>{var a;try{if(((a=o.data)==null?void 0:a.type)==="auth"){const c=await this.getCurrentUser({forceReadFromStorage:!0});await this.updateUser(c.user).catch(u=>{this._log.error("[error] update user",u)})}}catch(c){this._log.error("[error] handle broadcast channel",c)}})),this._initStorage(n),this._syncTable=new Go(this._trySendAuthed.bind(this),new n(this.config.appId,"syncSubs"),{useDateObjects:this.config.useDateObjects},this._log,o=>Ne(this.ensureAttrs(),o,this.config.enableCardinalityInference,this.config.useDateObjects),()=>this.ensureAttrs()),this._instantStream=new Zo({WStream:this.config.WritableStream||WritableStream,RStream:this.config.ReadableStream||ReadableStream,trySend:this._trySendAuthed.bind(this),log:this._log}),this._oauthCallbackResponse=this._oauthLoginInit(),this.getCurrentUser().then(o=>{this.syncUserToEndpoint(o.user)}),setInterval(async()=>{const o=await this.getCurrentUser();this.syncUserToEndpoint(o.user)},na),r.getIsOnline().then(o=>{this._isOnline=o,this._startSocket(),r.listen(a=>{a!==this._isOnline&&(this._log.info("[network] online =",a),this._isOnline=a,this._isOnline?this._startSocket():(this._log.info("Changing status from",this.status,"to",he.CLOSED),this._setStatus(he.CLOSED)))})}),typeof addEventListener<"u"&&(this._beforeUnload=this._beforeUnload.bind(this),addEventListener("beforeunload",this._beforeUnload))}}getFrameworkClient(){return this._frameworkClient}setFrameworkClient(e){this._frameworkClient=e}ensureAttrs(){if(!this.attrs)throw new Error("attrs have not loaded.");return this.attrs}updateSchema(e){this.config={...this.config,schema:e,cardinalityInference:!!e},this._linkIndex=e?pr(this.config.schema):null}_reactorStats(){return{inFlightMutationCount:this._inFlightMutationEventIds.size,storedMutationCount:this._pendingMutations().size,transportType:this._transportType}}_onQuerySubLoaded(e){this.kv.waitForKeyToLoad("pendingMutations").then(()=>this.notifyOne(e))}_initStorage(e){this.querySubs=new Gt({persister:new e(this.config.appId,"querySubs"),merge:la,serialize:aa,parse:(n,r)=>oa(r,this.config.useDateObjects),objectSize:n=>{var r,s,i;return((i=(s=(r=n==null?void 0:n.result)==null?void 0:r.store)==null?void 0:s.triples)==null?void 0:i.length)??0},logger:this._log,preloadEntryCount:10,gc:{maxAgeMs:1e3*60*60*24*7*52,maxEntries:1e3,maxSize:1e6}}),this.querySubs.onKeyLoaded=n=>this._onQuerySubLoaded(n),this.kv=new Gt({persister:new e(this.config.appId,"kv"),merge:this._onMergeKv,serialize:ua,parse:ca,objectSize:()=>0,logger:this._log,saveThrottleMs:100,idleCallbackMaxWaitMs:100,gc:null}),this.kv.onKeyLoaded=n=>{n==="pendingMutations"&&this.notifyAll()},this.kv.waitForKeyToLoad("pendingMutations"),this.kv.waitForKeyToLoad($e),this._beforeUnloadCbs.push(()=>{this.kv.flush(),this.querySubs.flush()})}_beforeUnload(){for(const e of this._beforeUnloadCbs)e();this._syncTable.beforeUnload()}_finishTransaction(e,n,r){const s=this.mutationDeferredStore.get(n);this.mutationDeferredStore.delete(n);const i=e!=="error"&&e!=="timeout";if(!s&&!i&&console.error("Mutation failed",{status:e,eventId:n,...r}),!!s)if(i)s.resolve({status:e,eventId:n});else if(r!=null&&r.type){const{status:o,...a}=r;s.reject(new We({body:a,status:o??0}))}else s.reject(new Y((r==null?void 0:r.message)||"Unknown error",r==null?void 0:r.hint,r==null?void 0:r.traceId))}_setStatus(e,n){this.status=e,this._errorMessage=n,this.notifyConnectionStatusSubs(e),this._instantStream.onConnectionStatusChange(e)}_flushEnqueuedRoomData(e){var s,i;const n=(i=(s=this._presence[e])==null?void 0:s.result)==null?void 0:i.user,r=this._broadcastQueue[e];if(this._broadcastQueue[e]=[],n&&this._trySetPresence(e,n),r)for(const o of r){const{topic:a,roomType:c,data:u}=o;this._tryBroadcast(e,c,a,u)}}_addQueryData(e,n,r){if(!this.attrs)throw new Error("Attrs in reactor have not been set");const s=D(e),i=this.ensureAttrs(),o=Ne(this.attrs,n.triples,r,this.config.useDateObjects);this.querySubs.updateInPlace(a=>{a[s]={result:{store:o,attrsStore:i,pageInfo:n.pageInfo,processedTxId:void 0,isExternal:!0},q:e}}),this._cleanupPendingMutationsQueries(),this.notifyOne(s),this.notifyOneQueryOnce(s),this._cleanupPendingMutationsTimeout()}_handleReceive(e,n){var s,i,o,a,c,u,l;const r=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(Cr[n.op]||this._log.info("[receive]",e,n.op,n),n.op){case"init-ok":{this._setStatus(he.AUTHENTICATED),this._reconnectTimeoutMs=0,this._setAttrs(n.attrs),this._flushPendingMessages(),this._sessionId=n["session-id"];for(const p of Object.keys(this._rooms)){const y=(i=(s=this._presence[p])==null?void 0:s.result)==null?void 0:i.user,b=(o=this._rooms[p])==null?void 0:o.roomType;this._tryJoinRoom(b,p,y)}break}case"add-query-exists":{this.notifyOneQueryOnce(D(n.q));break}case"add-query-ok":{const{q:p,result:y}=n,b=D(p);if(!this._hasQueryListeners()&&!this.querySubs.currentValue[b])break;const g=(c=(a=y==null?void 0:y[0])==null?void 0:a.data)==null?void 0:c["page-info"],_=(l=(u=y==null?void 0:y[0])==null?void 0:u.data)==null?void 0:l.aggregate,w=hr(y),m=this.ensureAttrs(),I=Ne(m,w,r,this.config.useDateObjects);this.querySubs.updateInPlace(S=>{if(!S[b]){this._log.info("Missing value in querySubs",{hash:b,q:p});return}S[b].result={store:I,attrsStore:m,pageInfo:g,aggregate:_,processedTxId:n["processed-tx-id"]}}),this._cleanupPendingMutationsQueries(),this.notifyOne(b),this.notifyOneQueryOnce(b),this._cleanupPendingMutationsTimeout();break}case"start-sync-ok":{this._syncTable.onStartSyncOk(n);break}case"sync-load-batch":{this._syncTable.onSyncLoadBatch(n);break}case"sync-init-finish":{this._syncTable.onSyncInitFinish(n);break}case"sync-update-triples":{this._syncTable.onSyncUpdateTriples(n);break}case"start-stream-ok":{this._instantStream.onStartStreamOk(n);break}case"stream-flushed":{this._instantStream.onStreamFlushed(n);break}case"append-failed":{this._instantStream.onAppendFailed(n);break}case"stream-append":{this._instantStream.onStreamAppend(n);break}case"refresh-ok":{const{computations:p,attrs:y}=n,b=n["processed-tx-id"];y&&this._setAttrs(y),this._cleanupPendingMutationsTimeout();const g=this._rewriteMutations(this.ensureAttrs(),this._pendingMutations(),b);g!==this._pendingMutations()&&this.kv.updateInPlace(m=>{m.pendingMutations=g});const _=nn(g.entries()),w=p.map(m=>{var W,A,P,C;const I=m["instaql-query"],S=m["instaql-result"],M=D(I),O=hr(S),k=this.ensureAttrs(),z=Ne(k,O,r,this.config.useDateObjects),{store:x,attrsStore:q}=this._applyOptimisticUpdates(z,k,_,b),N=(A=(W=S==null?void 0:S[0])==null?void 0:W.data)==null?void 0:A["page-info"],J=(C=(P=S==null?void 0:S[0])==null?void 0:P.data)==null?void 0:C.aggregate;return{q:I,hash:M,store:x,attrsStore:q,pageInfo:N,aggregate:J}});w.forEach(({hash:m,q:I,store:S,attrsStore:M,pageInfo:O,aggregate:k})=>{this.querySubs.updateInPlace(z=>{if(!z[m]){this._log.error("Missing value in querySubs",{hash:m,q:I});return}z[m].result={store:S,attrsStore:M,pageInfo:O,aggregate:k,processedTxId:b}})}),this._cleanupPendingMutationsQueries(),w.forEach(({hash:m})=>{this.notifyOne(m)});break}case"transact-ok":{const{"client-event-id":p,"tx-id":y}=n;this._inFlightMutationEventIds.delete(p);const g=this._rewriteMutations(this.ensureAttrs(),this._pendingMutations()).get(p);if(!g)break;this._updatePendingMutations(w=>{w.set(p,{...w.get(p),"tx-id":y,confirmed:Date.now()})});const _=[];for(const w of g["tx-steps"])if(w[0]==="add-attr"){const m=w[1];_.push(m)}if(_.length){const w=Object.values(this.ensureAttrs().attrs);this._setAttrs([...w,..._])}this._finishTransaction("synced",p),this._cleanupPendingMutationsTimeout();break}case"patch-presence":{const p=n["room-id"];this._trySetRoomConnected(p,!0),this._patchPresencePeers(p,n.edits),this._notifyPresenceSubs(p);break}case"refresh-presence":{const p=n["room-id"];this._trySetRoomConnected(p,!0),this._setPresencePeers(p,n.data),this._notifyPresenceSubs(p);break}case"server-broadcast":{const p=n["room-id"],y=n.topic;this._trySetRoomConnected(p,!0),this._notifyBroadcastSubs(p,y,n);break}case"join-room-ok":{const p=n["room-id"];if(!this._rooms[p]){this._roomsPendingLeave[p]&&(this._tryLeaveRoom(p),delete this._roomsPendingLeave[p]);break}this._trySetRoomConnected(p,!0),this._flushEnqueuedRoomData(p);break}case"leave-room-ok":{const p=n["room-id"];this._trySetRoomConnected(p,!1);break}case"join-room-error":const f=n["room-id"],d=this._rooms[f];d&&(d.error=n.error),this._notifyPresenceSubs(f);break;case"error":this._handleReceiveError(n);break;default:this._log.info("Unknown op",n.op,n);break}}createWriteStream(e){return this._instantStream.createWriteStream(e)}createReadStream(e){return this._instantStream.createReadStream(e)}_pendingMutations(){return this.kv.currentValue.pendingMutations??new Map}_updatePendingMutations(e){this.kv.updateInPlace(n=>{const r=n.pendingMutations??new Map;n.pendingMutations=r,e(r)})}_handleMutationError(e,n,r){const s=this._pendingMutations().get(n);if(s&&(e!=="timeout"||!s["tx-id"])){this._updatePendingMutations(o=>(o.delete(n),o)),this._inFlightMutationEventIds.delete(n);const i={message:r.message,hint:r.hint,traceId:r.traceId};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(i),this._finishTransaction(e,n,r)}}_handleReceiveError(e){var a,c,u,l,f,d,p,y;console.log("error",e);const n=e["client-event-id"];this._inFlightMutationEventIds.delete(n);const r=this._pendingMutations().get(n),s={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(e.hint&&(s.hint=e.hint),e["trace-id"]||(a=e["original-event"])!=null&&a["trace-id"]){const g=[e["trace-id"],(c=e["original-event"])==null?void 0:c["trace-id"]].filter(Boolean).join(",");s.traceId=g}if(r){this._handleMutationError("error",n,s);return}if((u=e["original-event"])!=null&&u.hasOwnProperty("q")&&((l=e["original-event"])==null?void 0:l.op)==="add-query"){const b=(f=e["original-event"])==null?void 0:f.q,g=D(b);this.notifyQueryError(D(b),s),this.notifyQueryOnceError(b,g,n,s);return}if(((d=e["original-event"])==null?void 0:d.op)==="init"){if(e.type==="record-not-found"&&((p=e.hint)==null?void 0:p["record-type"])==="app-user"){this.changeCurrentUser(null);return}this._setStatus(he.ERRORED,s),this.notifyAll();return}switch((y=e["original-event"])==null?void 0:y.op){case"resync-table":{this._syncTable.onResyncError(e);return}case"start-sync":{this._syncTable.onStartSyncError(e);return}case"start-stream":case"append-stream":case"subscribe-stream":case"unsubscribe-stream":{this._instantStream.onRecieveError(e);return}}const o={...e};delete o.message,delete o.hint,console.error(e.message,o),e.hint&&console.error(`This error comes with some debugging information. Here it is:
|
|
2
|
-
`,e.hint)}notifyQueryOnceError(e,n,r,s){var o;const i=(o=this.queryOnceDfds[n])==null?void 0:o.find(a=>a.eventId===r);i&&(i.dfd.reject(s),this._completeQueryOnce(e,n,i.dfd))}_setAttrs(e){this.attrs=new Te(e.reduce((n,r)=>(n[r.id]=r,n),{}),this._linkIndex),this.notifyAttrsSubs()}_startQuerySub(e,n){const r=K();return this.querySubs.updateInPlace(s=>{s[n]=s[n]||{q:e,result:null,eventId:r},s[n].lastAccessed=Date.now()}),this._trySendAuthed(r,{op:"add-query",q:e}),r}subscribeTable(e,n){return this._syncTable.subscribe(e,n)}subscribeQuery(e,n,r){this.config.disableValidation||_r(e,this.config.schema),r&&"ruleParams"in r&&(e={$$ruleParams:r.ruleParams,...e});const s=D(e),i=this.getPreviousResult(e);return i&&n(i),this.queryCbs[s]=this.queryCbs[s]??[],this.queryCbs[s].push({q:e,cb:n}),this._startQuerySub(e,s),()=>{this._unsubQuery(e,s,n)}}queryOnce(e,n){this.config.disableValidation||_r(e,this.config.schema),n&&"ruleParams"in n&&(e={$$ruleParams:n.ruleParams,...e});const r=new fr;if(!this._isOnline)return r.reject(new Error("We can't run `queryOnce`, because the device is offline.")),r.promise;if(!this.querySubs)return r.reject(new Error("We can't run `queryOnce` on the backend. Use adminAPI.query instead: https://www.instantdb.com/docs/backend#query")),r.promise;const s=D(e),i=this._startQuerySub(e,s);return this.queryOnceDfds[s]=this.queryOnceDfds[s]??[],this.queryOnceDfds[s].push({q:e,dfd:r,eventId:i}),setTimeout(()=>r.reject(new Error("Query timed out")),Xo),r.promise}_completeQueryOnce(e,n,r){this.queryOnceDfds[n]&&(this.queryOnceDfds[n]=this.queryOnceDfds[n].filter(s=>s.dfd!==r),this._cleanupQuery(e,n))}_unsubQuery(e,n,r){this.queryCbs[n]&&(this.queryCbs[n]=this.queryCbs[n].filter(s=>s.cb!==r),this._cleanupQuery(e,n))}_hasQueryListeners(e){var n,r;return!!((n=this.queryCbs[e])!=null&&n.length||(r=this.queryOnceDfds[e])!=null&&r.length)}_cleanupQuery(e,n){this._hasQueryListeners(n)||(delete this.queryCbs[n],delete this.queryOnceDfds[n],delete this._dataForQueryCache[n],this.querySubs.unloadKey(n),this._trySendAuthed(K(),{op:"remove-query",q:e}))}_rewriteMutations(e,n,r){if(!e)return n;if(!n)return new Map;const s=l=>{const[f,d,p]=l["forward-identity"];return V(e,d,p)},i=l=>{const[f,d,p]=l["forward-identity"];return ve(e,d,p)},o={attrIdMap:{},refSwapAttrIds:new Set};let a=!1;const c=(l,f)=>{const d=[];for(const p of l){const[y]=p;if(y==="add-attr"){const[g,_]=p,w=s(_);if(w&&_.id!==w.id){o.attrIdMap[_.id]=w.id,a=!0;continue}if(_["value-type"]==="ref"){const m=i(_);if(m){o.attrIdMap[_.id]=m.id,o.refSwapAttrIds.add(_.id),a=!0;continue}}}if(r&&f&&r>=f&&y==="add-attr"||y==="update-attr"||y==="delete-attr"){a=!0;continue}const b=a?Fi(o,p):p;d.push(b)}return a?d:l},u=new Map;for(const[l,f]of n.entries())u.set(l,{...f,"tx-steps":c(f["tx-steps"],f["tx-id"])});return a?u:n}_rewriteMutationsSorted(e,n){return nn(this._rewriteMutations(e,n).entries())}optimisticAttrs(){var i,o;const e=[...this._pendingMutations().values()].flatMap(a=>a["tx-steps"]),n=new Set(e.filter(([a,c])=>a==="delete-attr").map(([a,c])=>c)),r=[];for(const[a,c]of e)if(a==="add-attr")r.push(c);else if(a==="update-attr"&&c.id&&((i=this.attrs)!=null&&i.getAttr(c.id))){const u={...this.attrs.getAttr(c.id),...c};r.push(u)}if(!n.size&&!r.length)return this.attrs||new Te({},this._linkIndex);const s={...((o=this.attrs)==null?void 0:o.attrs)||{}};for(const a of r)s[a.id]=a;for(const a of n)delete s[a];return new Te(s,this._linkIndex)}dataForQuery(e,n=!0){const r=this._errorMessage;if(r)return{error:r};if(!this.querySubs||!this.kv.currentValue.pendingMutations)return;const s=this.querySubs.version(),i=this.querySubs.currentValue,o=this.kv.version(),a=this._pendingMutations(),{q:c,result:u}=i[e]||{};if(!u)return;const l=this._dataForQueryCache[e];if(l&&s===l.querySubVersion&&o===l.pendingMutationsVersion)return l;let f=u.store,d=u.attrsStore;const{pageInfo:p,aggregate:y,processedTxId:b}=u,g=this._rewriteMutationsSorted(d,a);if(n){const w=this._applyOptimisticUpdates(f,d,g,b);f=w.store,d=w.attrsStore}return{data:Jn({store:f,attrsStore:d,pageInfo:p,aggregate:y},c),querySubVersion:s,pendingMutationsVersion:o}}_applyOptimisticUpdates(e,n,r,s){for(const[i,o]of r)if(!o["tx-id"]||s&&o["tx-id"]>s){const a=Ls(e,n,o["tx-steps"]);e=a.store,n=a.attrsStore}return{store:e,attrsStore:n}}notifyAll(){Object.keys(this.queryCbs).forEach(e=>{this.querySubs.waitForKeyToLoad(e).then(()=>this.notifyOne(e)).catch(()=>this.notifyOne(e))})}loadedNotifyAll(){this.kv.waitForKeyToLoad("pendingMutations").then(()=>this.notifyAll()).catch(()=>this.notifyAll())}shutdown(){var e;this._log.info("[shutdown]",this.config.appId),this._isShutdown=!0,(e=this._transport)==null||e.close()}_sendMutation(e,n){if(n.error){this._handleMutationError("error",e,{message:n.error.message});return}if(this.status!==he.AUTHENTICATED){this._finishTransaction("enqueued",e);return}const r=Math.max(6e3,Math.min(this._inFlightMutationEventIds.size+1,this._pendingMutations().size+1)*6e3);this._isOnline?(this._trySend(e,n),setTimeout(()=>{this._isOnline&&this._handleMutationError("timeout",e,{message:"transaction timed out"})},r)):this._finishTransaction("enqueued",e)}_flushPendingMessages(){Object.keys(this.queryCbs).map(i=>this.querySubs.currentValue[i]).filter(i=>i).forEach(({eventId:i,q:o})=>{this._trySendAuthed(i,{op:"add-query",q:o})}),Object.values(this.queryOnceDfds).flat().forEach(({eventId:i,q:o})=>{this._trySendAuthed(i,{op:"add-query",q:o})});const r=this._rewriteMutations(this.ensureAttrs(),this._pendingMutations());r!==this._pendingMutations()&&this.kv.updateInPlace(i=>{i.pendingMutations=r}),nn(r.entries()).forEach(([i,o])=>{o["tx-id"]||this._sendMutation(i,o)}),this._syncTable.flushPending()}_cleanupPendingMutationsQueries(){let e=Number.MAX_SAFE_INTEGER;for(const{result:n}of Object.values(this.querySubs.currentValue))n!=null&&n.processedTxId&&(e=Math.min(e,n==null?void 0:n.processedTxId));this._updatePendingMutations(n=>{for(const[r,s]of Array.from(n.entries()))s["tx-id"]&&s["tx-id"]<=e&&n.delete(r)})}_cleanupPendingMutationsTimeout(){if(this._pendingMutations().size<this._pendingMutationCleanupThreshold)return;const e=Date.now();this._updatePendingMutations(n=>{for(const[r,s]of Array.from(n.entries()))s.confirmed&&s.confirmed+this._pendingTxCleanupTimeout<e&&n.delete(r)})}_trySendAuthed(...e){this.status===he.AUTHENTICATED&&this._trySend(...e)}_trySend(e,n,r){if(this._transport.isOpen()){switch(Cr[n.op]||this._log.info("[send]",this._transport.id,n.op,{"client-event-id":e,...n}),n.op){case"transact":{this._inFlightMutationEventIds.add(e);break}case"init":this._inFlightMutationEventIds.clear()}this._transport.send({"client-event-id":e,...n})}}_startSocket(){if(this._wsOk=null,this._isShutdown){this._log.info("[socket][start]",this.config.appId,"Reactor has been shut down and will not start a new socket");return}if(this._transport&&this._transport.isConnecting()){this._log.info("[socket][start]",this._transport.id,"maintained as current transport, we were still in a connecting state");return}const e=this._transport;this._transport=sa({transportType:this._transportType,appId:this.config.appId,apiURI:this.config.apiURI,wsURI:this.config.websocketURI,EventSourceImpl:this._EventSource}),this._transport.onopen=this._transportOnOpen,this._transport.onmessage=this._transportOnMessage,this._transport.onclose=this._transportOnClose,this._transport.onerror=this._transportOnError,this._log.info("[socket][start]",this._transport.id),e!=null&&e.isOpen()&&(this._log.info("[socket][start]",this._transport.id,"close previous transport id = ",e.id),e.close())}async getLocalId(e){const n=`localToken_${e}`;if(this.kv.currentValue[n])return this.kv.currentValue[n];const r=await this.kv.waitForKeyToLoad(n);if(r)return r;const s=K();return this.kv.updateInPlace(i=>{i[n]||(i[n]=s)}),await this.kv.waitForKeyToLoad(n)}_replaceUrlAfterOAuth(){if(typeof URL>"u")return;const e=new URL(window.location.href);if(e.searchParams.get(en)){const n=e.toString();e.searchParams.delete(en),e.searchParams.delete(tn),e.searchParams.delete("code"),e.searchParams.delete("error");const r=e.pathname+(e.searchParams.size?"?"+e.searchParams:"")+e.hash;if(history.replaceState(history.state,"",r),typeof navigation=="object"&&typeof navigation.addEventListener=="function"&&typeof navigation.removeEventListener=="function"){let s=!1;const i=o=>{var a;s||(s=!0,navigation.removeEventListener("navigate",i),!o.userInitiated&&o.navigationType==="replace"&&((a=o.destination)==null?void 0:a.url)===n&&history.replaceState(history.state,"",r))};navigation.addEventListener("navigate",i)}}}async _oauthLoginInit(){var i,o,a,c;if(typeof window>"u"||typeof window.location>"u"||typeof URLSearchParams>"u")return null;const e=new URLSearchParams(window.location.search);if(!e.get(en))return null;const n=e.get("error");if(n)return this._replaceUrlAfterOAuth(),{error:{message:n}};const r=e.get("code");if(!r)return null;const s=e.get(tn);this._replaceUrlAfterOAuth();try{let u;const l=await this.kv.waitForKeyToLoad(ut);s&&l&&(u=l[s]),l&&this.kv.updateInPlace(y=>{delete y[ut]});const f=await this._getCurrentUser(),d=(f==null?void 0:f.type)==="guest",{user:p}=await ar({apiURI:this.config.apiURI,appId:this.config.appId,code:r,refreshToken:d?f.refresh_token:void 0,extraFields:u});return this.setCurrentUser(p),null}catch(u){return((i=u==null?void 0:u.body)==null?void 0:i.type)==="record-not-found"&&((a=(o=u==null?void 0:u.body)==null?void 0:o.hint)==null?void 0:a["record-type"])==="app-oauth-code"&&await this._hasCurrentUser()?null:{error:{message:((c=u==null?void 0:u.body)==null?void 0:c.message)||"Error logging in."}}}}async _waitForOAuthCallbackResponse(){return await this._oauthCallbackResponse}__subscribeMutationErrors(e){return this.mutationErrorCbs.push(e),()=>{this.mutationErrorCbs=this.mutationErrorCbs.filter(n=>n!==e)}}subscribeAuth(e){this.authCbs.push(e);const n=this._currentUserCached;n.isLoading||e(this._currentUserCached);let r=!1;return this.getCurrentUser().then(s=>{r||Ze(s,n)||e(s)}),()=>{r=!0,this.authCbs=this.authCbs.filter(s=>s!==e)}}async getAuth(){const{user:e,error:n}=await this.getCurrentUser();if(n)throw new Y("Could not get current user: "+n.message);return e??null}subscribeConnectionStatus(e){return this.connectionStatusCbs.push(e),()=>{this.connectionStatusCbs=this.connectionStatusCbs.filter(n=>n!==e)}}subscribeAttrs(e){return this.attrsCbs.push(e),this.attrs&&e(this.attrs.attrs),()=>{this.attrsCbs=this.attrsCbs.filter(n=>n!==e)}}notifyAuthSubs(e){this.authCbs.forEach(n=>n(e))}notifyMutationErrorSubs(e){this.mutationErrorCbs.forEach(n=>n(e))}notifyAttrsSubs(){if(!this.attrs)return;const e=this.optimisticAttrs();this.attrsCbs.forEach(n=>n(e.attrs))}notifyConnectionStatusSubs(e){this.connectionStatusCbs.forEach(n=>n(e))}async setCurrentUser(e){this.kv.updateInPlace(n=>{n[$e]=e}),await this.kv.waitForKeyToLoad($e)}getCurrentUserCached(){return this._currentUserCached}async _getCurrentUser(e){e!=null&&e.forceReadFromStorage&&await this.kv.unloadKey($e);const n=await this.kv.waitForKeyToLoad($e);return typeof n=="string"?JSON.parse(n):n}async getCurrentUser(e){const n=await this._waitForOAuthCallbackResponse();if(n!=null&&n.error){const r={error:n.error,user:void 0};return this._currentUserCached={isLoading:!1,...r},this._currentUserCached}try{const s={user:await this._getCurrentUser(e),error:void 0};return this._currentUserCached={isLoading:!1,...s},this._currentUserCached}catch(r){return{user:void 0,isLoading:!1,error:{message:(r==null?void 0:r.message)||"Error loading user"}}}}async _hasCurrentUser(){const e=await this.kv.waitForKeyToLoad($e);return typeof e=="string"?JSON.parse(e)!=null:e!=null}async changeCurrentUser(e){var r;const{user:n}=await this.getCurrentUser();if(!Ze(n,e)){this._frameworkClient=null,await this.setCurrentUser(e),await this.updateUser(e);try{await this.kv.flush(),(r=this._broadcastChannel)==null||r.postMessage({type:"auth"})}catch(s){console.error("Error posting message to broadcast channel",s)}}}async syncUserToEndpoint(e){if(this.config.firstPartyPath)try{await fetch(this.config.firstPartyPath+"/",{method:"POST",body:JSON.stringify({type:"sync-user",appId:this.config.appId,user:e}),headers:{"Content-Type":"application/json"}})}catch(n){this._log.error("Error syncing user with external endpoint",n)}}async updateUser(e){try{await this.syncUserToEndpoint(e)}catch(r){this._log.error("Error syncing user with external endpoint",r)}const n={error:void 0,user:e};this._currentUserCached={isLoading:!1,...n},this._dataForQueryCache={},this.querySubs.updateInPlace(r=>{Object.keys(r).forEach(s=>{delete r[s].result})}),this.querySubs.clearUnloadedKeys(),this._updatePendingMutations(r=>{for(const[s,i]of r.entries())this.mutationDeferredStore.get(s)&&this._finishTransaction("error",s,{message:"User changed while transaction was in progress.",type:"user-changed"});r.clear()}),this._reconnectTimeoutMs=0,this._transport.close(),this._oauthCallbackResponse=null,this.notifyAuthSubs(n)}sendMagicCode({email:e}){return wo({apiURI:this.config.apiURI,appId:this.config.appId,email:e})}async signInWithMagicCode(e){var i,o;const n=await this.getCurrentUser(),r=((i=n==null?void 0:n.user)==null?void 0:i.type)==="guest",s=await _o({apiURI:this.config.apiURI,appId:this.config.appId,email:e.email,code:e.code,refreshToken:r?(o=n==null?void 0:n.user)==null?void 0:o.refresh_token:void 0,extraFields:e.extraFields});return await this.changeCurrentUser(s.user),s}async signInWithCustomToken(e){const n=await mo({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:e});return await this.changeCurrentUser(n.user),n}async signInAsGuest(){const e=await So({apiURI:this.config.apiURI,appId:this.config.appId});return await this.changeCurrentUser(e.user),e}potentiallyInvalidateToken(e,n){var i;const r=(i=e==null?void 0:e.user)==null?void 0:i.refresh_token;if(!r)return;if(n.invalidateToken===!1){this._log.info("[auth-invalidate] skipped invalidateToken");return}vo({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:r}).then(()=>{this._log.info("[auth-invalidate] completed invalidateToken")}).catch(o=>{})}async signOut(e){const n=await this.getCurrentUser();this.potentiallyInvalidateToken(n,e),await this.changeCurrentUser(null)}createAuthorizationURL({clientName:e,redirectURL:n,extraFields:r}){const{apiURI:s,appId:i}=this.config;let o=n;if(r){const a=`${Math.random().toString(36).slice(2)}`;this.kv.updateInPlace(c=>{const u=c[ut]||{};u[a]=r,c[ut]=u}),o=`${n}${n.includes("?")?"&":"?"}${tn}=${a}`}return`${s}/runtime/oauth/start?app_id=${i}&client_name=${e}&redirect_uri=${encodeURIComponent(o)}`}async exchangeCodeForToken({code:e,codeVerifier:n,extraFields:r}){var a,c;const s=await this.getCurrentUser(),i=((a=s==null?void 0:s.user)==null?void 0:a.type)==="guest",o=await ar({apiURI:this.config.apiURI,appId:this.config.appId,code:e,codeVerifier:n,refreshToken:i?(c=s==null?void 0:s.user)==null?void 0:c.refresh_token:void 0,extraFields:r});return await this.changeCurrentUser(o.user),o}issuerURI(){const{apiURI:e,appId:n}=this.config;return`${e}/runtime/${n}`}async signInWithIdToken(e){var i;const n=await this.getCurrentUser(),r=(i=n==null?void 0:n.user)==null?void 0:i.refresh_token,s=await To({apiURI:this.config.apiURI,appId:this.config.appId,idToken:e.idToken,clientName:e.clientName,nonce:e.nonce,refreshToken:r,extraFields:e.extraFields});return await this.changeCurrentUser(s.user),s}joinRoom(e,n,r){let s=!1;this._rooms[n]||(s=!0,this._rooms[n]={roomType:e,isConnected:!1,error:void 0}),this._presence[n]=this._presence[n]||{};const i=this._presence[n].result;return r&&!i&&(this._presence[n].result=this._presence[n].result||{},this._presence[n].result.user=r,this._notifyPresenceSubs(n)),s&&this._tryJoinRoom(e,n,r),()=>{this._cleanupRoom(n)}}_cleanupRoom(e){var n,r,s;if(!((r=(n=this._presence[e])==null?void 0:n.handlers)!=null&&r.length)&&!Object.keys(this._broadcastSubs[e]??{}).length){const i=(s=this._rooms[e])==null?void 0:s.isConnected;delete this._rooms[e],delete this._presence[e],delete this._broadcastSubs[e],i?this._tryLeaveRoom(e):this._roomsPendingLeave[e]=!0}}getPresence(e,n,r={}){const s=this._rooms[n],i=this._presence[n];return!s||!i||!i.result?null:{...Eo(i.result,r,this._sessionId),isLoading:!s.isConnected,error:s.error}}publishPresence(e,n,r){const s=this._rooms[n],i=this._presence[n];if(!s||!i)return;i.result=i.result||{};const o={...i.result.user,...r};i.result.user=o,s.isConnected&&(this._trySetPresence(n,o),this._notifyPresenceSubs(n))}_trySetPresence(e,n){this._trySendAuthed(K(),{op:"set-presence","room-id":e,data:n})}_tryJoinRoom(e,n,r){this._trySendAuthed(K(),{op:"join-room","room-type":e,"room-id":n,data:r}),delete this._roomsPendingLeave[n]}_tryLeaveRoom(e){this._trySendAuthed(K(),{op:"leave-room","room-id":e})}_trySetRoomConnected(e,n){const r=this._rooms[e];r&&(r.isConnected=n)}subscribePresence(e,n,r,s){const i=this.joinRoom(e,n,r.initialPresence||r.initialData),o={...r,roomId:n,cb:s,prev:null};return this._presence[n]=this._presence[n]||{},this._presence[n].handlers=this._presence[n].handlers||[],this._presence[n].handlers.push(o),this._notifyPresenceSub(n,o),()=>{var a,c;this._presence[n].handlers=((c=(a=this._presence[n])==null?void 0:a.handlers)==null?void 0:c.filter(u=>u!==o))??[],i()}}_notifyPresenceSubs(e){var n,r;(r=(n=this._presence[e])==null?void 0:n.handlers)==null||r.forEach(s=>{this._notifyPresenceSub(e,s)})}_notifyPresenceSub(e,n){const r=this.getPresence("",e,n);r&&(n.prev&&!Po(r,n.prev)||(n.prev=r,n.cb(r)))}_patchPresencePeers(e,n){var o,a,c;const r=((a=(o=this._presence[e])==null?void 0:o.result)==null?void 0:a.peers)||{};let s=Object.fromEntries(Object.entries(r).map(([u,l])=>[u,{data:l}]));(c=this._presence[e])==null||c.result;const i=Ye(s,u=>{for(let[l,f,d]of n)switch(f){case"+":os(u,l,d);break;case"r":An(u,l,d);break;case"-":kn(u,l);break}delete u[this._sessionId]});this._setPresencePeers(e,i)}_setPresencePeers(e,n){const r={...n};delete r[this._sessionId];const s=Object.fromEntries(Object.entries(r).map(([i,o])=>[i,o.data]));this._presence=Ye(this._presence,i=>{An(i,[e,"result","peers"],s)})}publishTopic({roomType:e,roomId:n,topic:r,data:s}){const i=this._rooms[n];if(i){if(!i.isConnected){this._broadcastQueue[n]=this._broadcastQueue[n]??[],this._broadcastQueue[n].push({topic:r,roomType:e,data:s});return}this._tryBroadcast(n,e,r,s)}}_tryBroadcast(e,n,r,s){this._trySendAuthed(K(),{op:"client-broadcast","room-id":e,roomType:n,topic:r,data:s})}subscribeTopic(e,n,r,s){const i=this.joinRoom(e,n);return this._broadcastSubs[n]=this._broadcastSubs[n]||{},this._broadcastSubs[n][r]=this._broadcastSubs[n][r]||[],this._broadcastSubs[n][r].push(s),this._presence[n]=this._presence[n]||{},()=>{this._broadcastSubs[n][r]=this._broadcastSubs[n][r].filter(o=>o!==s),this._broadcastSubs[n][r].length||delete this._broadcastSubs[n][r],i()}}_notifyBroadcastSubs(e,n,r){var s,i,o;(o=(i=(s=this._broadcastSubs)==null?void 0:s[e])==null?void 0:i[n])==null||o.forEach(a=>{var l,f,d,p,y,b;const c=(l=r.data)==null?void 0:l.data,u=r.data["peer-id"]===this._sessionId?(d=(f=this._presence[e])==null?void 0:f.result)==null?void 0:d.user:(b=(y=(p=this._presence[e])==null?void 0:p.result)==null?void 0:y.peers)==null?void 0:b[r.data["peer-id"]];return a(c,u)})}async uploadFile(e,n,r){var o;const s=await this.getCurrentUser(),i=(o=s==null?void 0:s.user)==null?void 0:o.refresh_token;return Ao({...r,apiURI:this.config.apiURI,appId:this.config.appId,path:e,file:n,refreshToken:i})}async deleteFile(e){var i;const n=await this.getCurrentUser(),r=(i=n==null?void 0:n.user)==null?void 0:i.refresh_token;return await ko({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:r})}async upload(e,n){var c;const r=await this.getCurrentUser(),s=(c=r==null?void 0:r.user)==null?void 0:c.refresh_token,i=e||n.name,o=await Oo({apiURI:this.config.apiURI,appId:this.config.appId,fileName:i,refreshToken:s});return await Io(o,n)}async getDownloadUrl(e){var i;const n=await this.getCurrentUser(),r=(i=n==null?void 0:n.user)==null?void 0:i.refresh_token;return await Co({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:r})}}function da(t,e){return new at(Er(t,e),e,void 0)}function ha(t){return new ot(t,{})}function pa(){return new te("string",!0,!1)}function ya(){return new te("number",!0,!1)}function ba(){return new te("boolean",!0,!1)}function ga(){return new te("date",!0,!1)}function wa(){return new te("json",!0,!1)}function _a(){return new te("json",!0,!1)}function Er(t,e){var s,i,o,a;const n={fwd:{},rev:{}};for(const c of Object.values(e))(s=n.fwd)[i=c.forward.on]||(s[i]={}),(o=n.rev)[a=c.reverse.on]||(o[a]={}),n.fwd[c.forward.on][c.forward.label]={entityName:c.reverse.on,cardinality:c.forward.has},n.rev[c.reverse.on][c.reverse.label]={entityName:c.forward.on,cardinality:c.reverse.has};return Object.fromEntries(Object.entries(t).map(([c,u])=>[c,new ot(u.attrs,{...n.fwd[c],...n.rev[c]})]))}function ma({entities:t,links:e,rooms:n}){const r=e??{},s=n??{};return new at(Er(t,r),r,s)}const Sa={graph:da,schema:ma,entity:ha,string:pa,number:ya,boolean:ba,date:ga,json:wa,any:_a};let lt;function Ta(t,e){lt==null||lt.dispose();const n=Ca(e),r=ka(e,a),s=Aa(va(t));function i(l){var f;l.source===s.element.contentWindow&&((f=l.data)==null?void 0:f.type)==="close"&&n.isVisible()&&a()}function o(l){const f=l.shiftKey&&l.ctrlKey&&l.code==="Digit0",d=l.key==="Escape"||l.key==="Esc";(f||d&&n.isVisible())&&a()}function a(){n.isVisible()?n.element.style.display="none":(n.element.style.display="block",n.element.contains(s.element)||n.element.appendChild(s.element))}function c(){n.element.remove(),r.element.remove(),removeEventListener("keydown",o),removeEventListener("message",i)}function u(){document.body.appendChild(n.element),document.body.appendChild(r.element),addEventListener("keydown",o),addEventListener("message",i),lt={dispose:c}}return u()}function va(t){return`${Ht||ur?"http://localhost:3000":"https://instantdb.com"}/_devtool?appId=${t}`}function Aa(t){const e=document.createElement("iframe");return e.src=t,e.className="instant-devtool-iframe",Object.assign(e.style,{width:"100%",height:"100%",backgroundColor:"white",border:"none"}),{element:e}}function ka(t,e){const n=`
|
|
1
|
+
(function(R,D){typeof exports=="object"&&typeof module<"u"?D(exports):typeof define=="function"&&define.amd?define(["exports"],D):(R=typeof globalThis<"u"?globalThis:R||self,D(R.instantSolidjs={}))})(this,function(R){"use strict";var lc=Object.defineProperty;var fc=(R,D,F)=>D in R?lc(R,D,{enumerable:!0,configurable:!0,writable:!0,value:F}):R[D]=F;var h=(R,D,F)=>fc(R,typeof D!="symbol"?D+"":D,F);function D(t){if(typeof t=="number")return(Math.abs(t*2654435761)>>>0).toString(16);if(typeof t=="boolean")return t?"1":"0";if(t===null)return"null";if(t===void 0)return"undefined";if(typeof t=="string"){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24),e=e>>>0;return e.toString(16)}if(Array.isArray(t)){let e=2166136261;for(let n=0;n<t.length;n++){e^=(n+1)*2654435761;const r=D(t[n]);for(let s=0;s<r.length;s++)e^=r.charCodeAt(s),e*=16777619,e=e>>>0}return e.toString(16)}if(typeof t=="object"){let e=2166136261;const n=Object.keys(t).sort();for(let r=0;r<n.length;r++){const s=n[r];if(t[s]===void 0)continue;const i=D(s);e^=parseInt(i,16),e*=16777619,e=e>>>0;const o=D(t[s]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return D(String(t))}const F={Remove:"remove",Replace:"replace",Add:"add"},ln=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Gr=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),Be=Symbol.iterator,ie={mutable:"mutable",immutable:"immutable"},_t={};function De(t,e){return t instanceof Map?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function fn(t,e){if(e in t){let n=Reflect.getPrototypeOf(t);for(;n;){const r=Reflect.getOwnPropertyDescriptor(n,e);if(r)return r;n=Reflect.getPrototypeOf(n)}}}function St(t){return Object.getPrototypeOf(t)===Set.prototype}function Tt(t){return Object.getPrototypeOf(t)===Map.prototype}function oe(t){var e;return(e=t.copy)!==null&&e!==void 0?e:t.original}function me(t){return!!E(t)}function E(t){return typeof t!="object"?null:t==null?void 0:t[ln]}function vt(t){var e;const n=E(t);return n?(e=n.copy)!==null&&e!==void 0?e:n.original:t}function ue(t,e){if(!t||typeof t!="object")return!1;let n;return Object.getPrototypeOf(t)===Object.prototype||Array.isArray(t)||t instanceof Map||t instanceof Set||!!(e!=null&&e.mark)&&((n=e.mark(t,ie))===ie.immutable||typeof n=="function")}function dn(t,e=[]){if(Object.hasOwnProperty.call(t,"key")){const n=t.parent.copy,r=E(be(n,t.key));if(r!==null&&(r==null?void 0:r.original)!==t.original)return null;const s=t.parent.type===3,i=s?Array.from(t.parent.setMap.keys()).indexOf(t.key):t.key;if(!(s&&n.size>i||De(n,i)))return null;e.push(i)}if(t.parent)return dn(t.parent,e);e.reverse();try{Hr(t.copy,e)}catch{return null}return e}function _e(t){return Array.isArray(t)?1:t instanceof Map?2:t instanceof Set?3:0}function be(t,e){return _e(t)===2?t.get(e):t[e]}function xe(t,e,n){_e(t)===2?t.set(e,n):t[e]=n}function At(t,e){const n=E(t);return(n?oe(n):t)[e]}function ge(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function kt(t){if(t)for(;t.finalities.revoke.length>0;)t.finalities.revoke.pop()()}function Se(t,e){return e?t:[""].concat(t).map(n=>{const r=`${n}`;return r.indexOf("/")===-1&&r.indexOf("~")===-1?r:r.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")}function Hr(t,e){for(let n=0;n<e.length-1;n+=1){const r=e[n];if(t=be(_e(t)===3?Array.from(t):t,r),typeof t!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return t}function Jr(t){const e=Object.create(Object.getPrototypeOf(t));return Reflect.ownKeys(t).forEach(n=>{let r=Reflect.getOwnPropertyDescriptor(t,n);if(r.enumerable&&r.configurable&&r.writable){e[n]=t[n];return}r.writable||(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(r={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[n]}),Reflect.defineProperty(e,n,r)}),e}const Yr=Object.prototype.propertyIsEnumerable;function hn(t,e){let n;if(Array.isArray(t))return Array.prototype.concat.call(t);if(t instanceof Set){if(!St(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t.values())}return Set.prototype.difference?Set.prototype.difference.call(t,new Set):new Set(t.values())}else if(t instanceof Map){if(!Tt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t)}return new Map(t)}else if(e!=null&&e.mark&&(n=e.mark(t,ie),n!==void 0)&&n!==ie.mutable){if(n===ie.immutable)return Jr(t);if(typeof n=="function"){if(e.enablePatches||e.enableAutoFreeze)throw new Error("You can't use mark and patches or auto freeze together.");return n()}throw new Error(`Unsupported mark result: ${n}`)}else if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype){const r={};return Object.keys(t).forEach(s=>{r[s]=t[s]}),Object.getOwnPropertySymbols(t).forEach(s=>{Yr.call(t,s)&&(r[s]=t[s])}),r}else throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function ee(t){t.copy||(t.copy=hn(t.original,t.options))}function Ue(t){if(!ue(t))return vt(t);if(Array.isArray(t))return t.map(Ue);if(t instanceof Map){const n=Array.from(t.entries()).map(([r,s])=>[r,Ue(s)]);if(!Tt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Map(n)}if(t instanceof Set){const n=Array.from(t).map(Ue);if(!St(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Set(n)}const e=Object.create(Object.getPrototypeOf(t));for(const n in t)e[n]=Ue(t[n]);return e}function Ge(t){return me(t)?Ue(t):t}function de(t){var e;t.assignedMap=(e=t.assignedMap)!==null&&e!==void 0?e:new Map,t.operated||(t.operated=!0,t.parent&&de(t.parent))}function pn(){throw new Error("Cannot modify frozen object")}function Oe(t,e,n,r,s){{n=n??new WeakMap,r=r??[],s=s??[];const o=n.has(t)?n.get(t):t;if(r.length>0){const a=r.indexOf(o);if(o&&typeof o=="object"&&a!==-1)throw r[0]===o?new Error("Forbids circular reference"):new Error(`Forbids circular reference: ~/${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(t)||me(t)){r.pop(),s.pop();return}switch(_e(t)){case 2:for(const[a,c]of t)Oe(a,a,n,r,s),Oe(c,a,n,r,s);t.set=t.clear=t.delete=pn;break;case 3:for(const a of t)Oe(a,a,n,r,s);t.add=t.clear=t.delete=pn;break;case 1:Object.freeze(t);let o=0;for(const a of t)Oe(a,o,n,r,s),o+=1;break;default:Object.freeze(t),Object.keys(t).forEach(a=>{const c=t[a];Oe(c,a,n,r,s)})}r.pop(),s.pop()}function Ot(t,e){const n=_e(t);if(n===0)Reflect.ownKeys(t).forEach(r=>{e(r,t[r],t)});else if(n===1){let r=0;for(const s of t)e(r,s,t),r+=1}else t.forEach((r,s)=>e(s,r,t))}function yn(t,e,n){if(me(t)||!ue(t,n)||e.has(t)||Object.isFrozen(t))return;const r=t instanceof Set,s=r?new Map:void 0;if(e.add(t),Ot(t,(i,o)=>{var a;if(me(o)){const c=E(o);ee(c);const u=!((a=c.assignedMap)===null||a===void 0)&&a.size||c.operated?c.copy:c.original;xe(r?s:t,i,u)}else yn(o,e,n)}),s){const i=t,o=Array.from(i);i.clear(),o.forEach(a=>{i.add(s.has(a)?s.get(a):a)})}}function Zr(t,e){const n=t.type===3?t.setMap:t.copy;t.finalities.revoke.length>1&&t.assignedMap.get(e)&&n&&yn(be(n,e),t.finalities.handledSet,t.options)}function It(t){t.type===3&&t.copy&&(t.copy.clear(),t.setMap.forEach(e=>{t.copy.add(vt(e))}))}function Ct(t,e,n,r){if(t.operated&&t.assignedMap&&t.assignedMap.size>0&&!t.finalized){if(n&&r){const i=dn(t);i&&e(t,i,n,r)}t.finalized=!0}}function Et(t,e,n,r){const s=E(n);s&&(s.callbacks||(s.callbacks=[]),s.callbacks.push((i,o)=>{var a;const c=t.type===3?t.setMap:t.copy;if(ge(be(c,e),n)){let u=s.original;s.copy&&(u=s.copy),It(t),Ct(t,r,i,o),t.options.enableAutoFreeze&&(t.options.updatedValues=(a=t.options.updatedValues)!==null&&a!==void 0?a:new WeakMap,t.options.updatedValues.set(u,s.original)),xe(c,e,u)}}),t.options.enableAutoFreeze&&s.finalities!==t.finalities&&(t.options.enableAutoFreeze=!1)),ue(n,t.options)&&t.finalities.draft.push(()=>{const i=t.type===3?t.setMap:t.copy;ge(be(i,e),n)&&Zr(t,e)})}function Xr(t,e,n,r,s){let{original:i,assignedMap:o,options:a}=t,c=t.copy;c.length<i.length&&([i,c]=[c,i],[n,r]=[r,n]);for(let u=0;u<i.length;u+=1)if(o.get(u.toString())&&c[u]!==i[u]){const l=e.concat([u]),f=Se(l,s);n.push({op:F.Replace,path:f,value:Ge(c[u])}),r.push({op:F.Replace,path:f,value:Ge(i[u])})}for(let u=i.length;u<c.length;u+=1){const l=e.concat([u]),f=Se(l,s);n.push({op:F.Add,path:f,value:Ge(c[u])})}if(i.length<c.length){const{arrayLengthAssignment:u=!0}=a.enablePatches;if(u){const l=e.concat(["length"]),f=Se(l,s);r.push({op:F.Replace,path:f,value:i.length})}else for(let l=c.length;i.length<l;l-=1){const f=e.concat([l-1]),d=Se(f,s);r.push({op:F.Remove,path:d})}}}function es({original:t,copy:e,assignedMap:n},r,s,i,o){n.forEach((a,c)=>{const u=be(t,c),l=Ge(be(e,c)),f=a?De(t,c)?F.Replace:F.Add:F.Remove;if(ge(u,l)&&f===F.Replace)return;const d=r.concat(c),p=Se(d,o);s.push(f===F.Remove?{op:f,path:p}:{op:f,path:p,value:l}),i.push(f===F.Add?{op:F.Remove,path:p}:f===F.Remove?{op:F.Add,path:p,value:u}:{op:F.Replace,path:p,value:u})})}function ts({original:t,copy:e},n,r,s,i){let o=0;t.forEach(a=>{if(!e.has(a)){const c=n.concat([o]),u=Se(c,i);r.push({op:F.Remove,path:u,value:a}),s.unshift({op:F.Add,path:u,value:a})}o+=1}),o=0,e.forEach(a=>{if(!t.has(a)){const c=n.concat([o]),u=Se(c,i);r.push({op:F.Add,path:u,value:a}),s.unshift({op:F.Remove,path:u,value:a})}o+=1})}function Le(t,e,n,r){const{pathAsArray:s=!0}=t.options.enablePatches;switch(t.type){case 0:case 2:return es(t,e,n,r,s);case 1:return Xr(t,e,n,r,s);case 3:return ts(t,e,n,r,s)}}const He=(t,e,n=!1)=>{if(typeof t=="object"&&t!==null&&(!ue(t,e)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},Pt={get size(){return oe(E(this)).size},has(t){return oe(E(this)).has(t)},set(t,e){const n=E(this),r=oe(n);return(!r.has(t)||!ge(r.get(t),e))&&(ee(n),de(n),n.assignedMap.set(t,!0),n.copy.set(t,e),Et(n,t,e,Le)),this},delete(t){if(!this.has(t))return!1;const e=E(this);return ee(e),de(e),e.original.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.copy.delete(t),!0},clear(){const t=E(this);if(this.size){ee(t),de(t),t.assignedMap=new Map;for(const[e]of t.original)t.assignedMap.set(e,!1);t.copy.clear()}},forEach(t,e){const n=E(this);oe(n).forEach((r,s)=>{t.call(e,this.get(s),s,this)})},get(t){var e,n;const r=E(this),s=oe(r).get(t),i=((n=(e=r.options).mark)===null||n===void 0?void 0:n.call(e,s,ie))===ie.mutable;if(r.options.strict&&He(s,r.options,i),i||r.finalized||!ue(s,r.options)||s!==r.original.get(t))return s;const o=_t.createDraft({original:s,parentDraft:r,key:t,finalities:r.finalities,options:r.options});return ee(r),r.copy.set(t,o),o},keys(){return oe(E(this)).keys()},values(){const t=this.keys();return{[Be]:()=>this.values(),next:()=>{const e=t.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const t=this.keys();return{[Be]:()=>this.entries(),next:()=>{const e=t.next();if(e.done)return e;const n=this.get(e.value);return{done:!1,value:[e.value,n]}}}},[Be](){return this.entries()}},ns=Reflect.ownKeys(Pt),bn=(t,e,{isValuesIterator:n})=>()=>{var r,s;const i=e.next();if(i.done)return i;const o=i.value;let a=t.setMap.get(o);const c=E(a),u=((s=(r=t.options).mark)===null||s===void 0?void 0:s.call(r,a,ie))===ie.mutable;if(t.options.strict&&He(o,t.options,u),!u&&!c&&ue(o,t.options)&&!t.finalized&&t.original.has(o)){const l=_t.createDraft({original:o,parentDraft:t,key:o,finalities:t.finalities,options:t.options});t.setMap.set(o,l),a=l}else c&&(a=c.proxy);return{done:!1,value:n?a:[a,a]}},Je={get size(){return E(this).setMap.size},has(t){const e=E(this);if(e.setMap.has(t))return!0;ee(e);const n=E(t);return!!(n&&e.setMap.has(n.original))},add(t){const e=E(this);return this.has(t)||(ee(e),de(e),e.assignedMap.set(t,!0),e.setMap.set(t,t),Et(e,t,t,Le)),this},delete(t){if(!this.has(t))return!1;const e=E(this);ee(e),de(e);const n=E(t);return n&&e.setMap.has(n.original)?(e.assignedMap.set(n.original,!1),e.setMap.delete(n.original)):(!n&&e.setMap.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.setMap.delete(t))},clear(){if(!this.size)return;const t=E(this);ee(t),de(t);for(const e of t.original)t.assignedMap.set(e,!1);t.setMap.clear()},values(){const t=E(this);ee(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:bn(t,e,{isValuesIterator:!0})}},entries(){const t=E(this);ee(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:bn(t,e,{isValuesIterator:!1})}},keys(){return this.values()},[Be](){return this.values()},forEach(t,e){const n=this.values();let r=n.next();for(;!r.done;)t.call(e,r.value,r.value,this),r=n.next()}};Set.prototype.difference&&Object.assign(Je,{intersection(t){return Set.prototype.intersection.call(new Set(this.values()),t)},union(t){return Set.prototype.union.call(new Set(this.values()),t)},difference(t){return Set.prototype.difference.call(new Set(this.values()),t)},symmetricDifference(t){return Set.prototype.symmetricDifference.call(new Set(this.values()),t)},isSubsetOf(t){return Set.prototype.isSubsetOf.call(new Set(this.values()),t)},isSupersetOf(t){return Set.prototype.isSupersetOf.call(new Set(this.values()),t)},isDisjointFrom(t){return Set.prototype.isDisjointFrom.call(new Set(this.values()),t)}});const rs=Reflect.ownKeys(Je),gn=new WeakSet,wn={get(t,e,n){var r,s;const i=(r=t.copy)===null||r===void 0?void 0:r[e];if(i&&gn.has(i))return i;if(e===ln)return t;let o;if(t.options.mark){const u=e==="size"&&(t.original instanceof Map||t.original instanceof Set)?Reflect.get(t.original,e):Reflect.get(t.original,e,n);if(o=t.options.mark(u,ie),o===ie.mutable)return t.options.strict&&He(u,t.options,!0),u}const a=oe(t);if(a instanceof Map&&ns.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Pt,"size").get.call(t.proxy);const u=Pt[e];if(u)return u.bind(t.proxy)}if(a instanceof Set&&rs.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Je,"size").get.call(t.proxy);const u=Je[e];if(u)return u.bind(t.proxy)}if(!De(a,e)){const u=fn(a,e);return u?"value"in u?u.value:(s=u.get)===null||s===void 0?void 0:s.call(t.proxy):void 0}const c=a[e];if(t.options.strict&&He(c,t.options),t.finalized||!ue(c,t.options))return c;if(c===At(t.original,e)){if(ee(t),t.copy[e]=Mt({original:t.original[e],parentDraft:t,key:t.type===1?Number(e):e,finalities:t.finalities,options:t.options}),typeof o=="function"){const u=E(t.copy[e]);return ee(u),de(u),u.copy}return t.copy[e]}return c},set(t,e,n){var r;if(t.type===3||t.type===2)throw new Error("Map/Set draft does not support any property assignment.");let s;if(t.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=fn(oe(t),e);if(i!=null&&i.set)return i.set.call(t.proxy,n),!0;const o=At(oe(t),e),a=E(o);return a&&ge(a.original,n)?(t.copy[e]=n,t.assignedMap=(r=t.assignedMap)!==null&&r!==void 0?r:new Map,t.assignedMap.set(e,!1),!0):(ge(n,o)&&(n!==void 0||De(t.original,e))||(ee(t),de(t),De(t.original,e)&&ge(n,t.original[e])?t.assignedMap.delete(e):t.assignedMap.set(e,!0),t.copy[e]=n,Et(t,e,n,Le)),!0)},has(t,e){return e in oe(t)},ownKeys(t){return Reflect.ownKeys(oe(t))},getOwnPropertyDescriptor(t,e){const n=oe(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.type!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},getPrototypeOf(t){return Reflect.getPrototypeOf(t.original)},setPrototypeOf(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty(t,e){var n;return t.type===1?wn.set.call(this,t,e,void 0,t.proxy):(At(t.original,e)!==void 0||e in t.original?(ee(t),de(t),t.assignedMap.set(e,!1)):(t.assignedMap=(n=t.assignedMap)!==null&&n!==void 0?n:new Map,t.assignedMap.delete(e)),t.copy&&delete t.copy[e],!0)}};function Mt(t){const{original:e,parentDraft:n,key:r,finalities:s,options:i}=t,o=_e(e),a={type:o,finalized:!1,parent:n,original:e,copy:null,proxy:null,finalities:s,options:i,setMap:o===3?new Map(e.entries()):void 0};(r||"key"in t)&&(a.key=r);const{proxy:c,revoke:u}=Proxy.revocable(o===1?Object.assign([],a):a,wn);if(s.revoke.push(u),gn.add(c),a.proxy=c,n){const l=n;l.finalities.draft.push((f,d)=>{var p,y;const b=E(c);let g=l.type===3?l.setMap:l.copy;const m=be(g,r),w=E(m);if(w){let _=w.original;w.operated&&(_=vt(m)),It(w),Ct(w,Le,f,d),l.options.enableAutoFreeze&&(l.options.updatedValues=(p=l.options.updatedValues)!==null&&p!==void 0?p:new WeakMap,l.options.updatedValues.set(_,w.original)),xe(g,r,_)}(y=b.callbacks)===null||y===void 0||y.forEach(_=>{_(f,d)})})}else{const l=E(c);l.finalities.draft.push((f,d)=>{It(l),Ct(l,Le,f,d)})}return c}_t.createDraft=Mt;function ss(t,e,n,r,s){var i;const o=E(t),a=(i=o==null?void 0:o.original)!==null&&i!==void 0?i:t,c=!!e.length;if(o!=null&&o.operated)for(;o.finalities.draft.length>0;)o.finalities.draft.pop()(n,r);const u=c?e[0]:o?o.operated?o.copy:o.original:t;return o&&kt(o),s&&Oe(u,u,o==null?void 0:o.options.updatedValues),[u,n&&c?[{op:F.Replace,path:[],value:e[0]}]:n,r&&c?[{op:F.Replace,path:[],value:a}]:r]}function is(t,e){var n;const r={draft:[],revoke:[],handledSet:new WeakSet};let s,i;e.enablePatches&&(s=[],i=[]);const a=((n=e.mark)===null||n===void 0?void 0:n.call(e,t,ie))===ie.mutable||!ue(t,e)?t:Mt({original:t,parentDraft:null,finalities:r,options:e});return[a,(c=[])=>{const[u,l,f]=ss(a,c,s,i,e.enableAutoFreeze);return e.enablePatches?[u,l,f]:u}]}function $t(t){const{rootDraft:e,value:n,useRawReturn:r=!1,isRoot:s=!0}=t;Ot(n,(i,o,a)=>{const c=E(o);if(c&&e&&c.finalities===e.finalities){t.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 xe(a,i,u)}else typeof o=="object"&&o!==null&&(t.value=o,t.isRoot=!1,$t(t))}),s&&(t.isContainDraft||console.warn("The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance."),r&&console.warn("The return value contains drafts, please don't use 'rawReturn()' to wrap the return value."))}function mn(t){var e;const n=E(t);if(!ue(t,n==null?void 0:n.options))return t;const r=_e(t);if(n&&!n.operated)return n.original;let s;function i(){s=r===2?Tt(t)?new Map(t):new(Object.getPrototypeOf(t)).constructor(t):r===3?Array.from(n.setMap.values()):hn(t,n==null?void 0:n.options)}if(n){n.finalized=!0;try{i()}finally{n.finalized=!1}}else s=t;if(Ot(s,(o,a)=>{if(n&&ge(be(n.original,o),a))return;const c=mn(a);c!==a&&(s===t&&i(),xe(s,o,c))}),r===3){const o=(e=n==null?void 0:n.original)!==null&&e!==void 0?e:s;return St(o)?new Set(s):new(Object.getPrototypeOf(o)).constructor(s)}return s}function _n(t){if(!me(t))throw new Error(`current() is only used for Draft, parameter: ${t}`);return mn(t)}const Ye=(t=>function e(n,r,s){var i,o,a;if(typeof n=="function"&&typeof r!="function")return function(S,...M){return e(S,O=>n.call(this,O,...M),r)};const c=n,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({},t),l);const f=me(c)?_n(c):c,d=Array.isArray(l.mark)?(S,M)=>{for(const O of l.mark){if(typeof O!="function")throw new Error(`Invalid mark: ${O}, 'mark' should be a function.`);const k=O(S,M);if(k)return k}}:l.mark,p=(i=l.enablePatches)!==null&&i!==void 0?i:!1,y=(o=l.strict)!==null&&o!==void 0?o:!1,g={enableAutoFreeze:(a=l.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:d,strict:y,enablePatches:p};if(!ue(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[m,w]=is(f,g);if(typeof r!="function"){if(!ue(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[m,w]}let _;try{_=u(m)}catch(S){throw kt(E(m)),S}const I=S=>{const M=E(m);if(!me(S)){if(S!==void 0&&!ge(S,m)&&(M!=null&&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=S==null?void 0:S[Gr];if(k){const z=k[0];return g.strict&&typeof S=="object"&&S!==null&&$t({rootDraft:M,value:S,useRawReturn:!0}),w([z])}if(S!==void 0)return typeof S=="object"&&S!==null&&$t({rootDraft:M,value:S}),w([S])}if(S===m||S===void 0)return w([]);const O=E(S);if(g===O.options){if(O.operated)throw new Error("Cannot return a modified child draft.");return w([_n(S)])}return w([S])};return _ instanceof Promise?_.then(I,S=>{throw kt(E(m)),S}):I(_)})();Object.prototype.constructor.toString();function Sn(t,e){const n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&Object.keys(t).every(s=>e.hasOwnProperty(s))}function Tn(t,e){return Object.keys(t).length===Object.keys(e).length&&Object.keys(t).every(n=>e.hasOwnProperty(n)&&t[n]===e[n])}function Ze(t,e){return typeof t!="object"||typeof e!="object"||t===null||e===null?t===e:Sn(t,e)?Object.keys(t).every(n=>Ze(t[n],e[n])):!1}function jt(t){if(!Fe(t))return t;const e={};for(const[n,r]of Object.entries(t))r!==void 0&&(e[n]=r);return e}function vn(t,e){if(!Fe(t)||!Fe(e))return e;const n={...t};for(const r of Object.keys(e)){if(e[r]===void 0)continue;if(e[r]===null){delete n[r];continue}const s=Fe(t[r])&&Fe(e[r]);n[r]=s?vn(t[r],e[r]):e[r]}return n}function Fe(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function os(t,e,n){if(!t||e.length===0)return;let r=t||{};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,n):r[s]=n}function An(t,e,n){if(!t||e.length===0)return;let r=t||{};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]]=n}function kn(t,e){if(!t||e.length===0)return;const[n,...r]=e;if(n in t){if(r.length===0){Array.isArray(t)?t.splice(n,1):delete t[n];return}kn(t[n],r),as(t[n])&&delete t[n]}}function as(t){return t&&Object.keys(t).length===0}const On=/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$/,cs={ZULU:0,YEKT:18e3,YEKST:21600,YAPT:36e3,YAKT:32400,YAKST:32400,XJT:21600,WGT:-10800,WGST:-7200,WFT:43200,WETDST:3600,WET:0,WDT:32400,WAT:3600,WAST:25200,WAKT:43200,WADT:28800,VUT:39600,VOLT:10800,VLAT:36e3,VLAST:36e3,VET:-14400,UZT:18e3,UZST:21600,UYT:-10800,UYST:-7200,UTC:0,UT:0,ULAT:28800,ULAST:32400,UCT:0,TVT:43200,TRUT:36e3,TOT:46800,TMT:18e3,TKT:46800,TJT:18e3,TFT:18e3,TAHT:-36e3,SGT:28800,SCT:14400,SAST:7200,SADT:37800,RET:14400,PYT:-14400,PYST:-10800,PWT:32400,PST:-28800,PONT:39600,PMST:-10800,PMDT:-7200,PKT:18e3,PKST:21600,PHT:28800,PGT:36e3,PETT:43200,PETST:43200,PET:-18e3,PDT:-25200,OMST:21600,OMSST:21600,NZT:43200,NZST:43200,NZDT:46800,NUT:-39600,NST:-12600,NPT:20700,NOVT:25200,NOVST:25200,NFT:-12600,NDT:-9e3,MYT:28800,MVT:18e3,MUT:14400,MUST:18e3,MST:-25200,MSK:10800,MSD:14400,MPT:36e3,MMT:23400,MHT:43200,MEZ:3600,METDST:7200,MET:3600,MESZ:7200,MEST:7200,MDT:-21600,MAWT:18e3,MART:-34200,MAGT:39600,MAGST:39600,LKT:19800,LINT:50400,LIGT:36e3,LHST:37800,LHDT:37800,KST:32400,KRAT:25200,KRAST:25200,KOST:39600,KGT:21600,KGST:21600,KDT:36e3,JST:32400,JAYT:32400,IST:7200,IRT:12600,IRKT:28800,IRKST:28800,IOT:21600,IDT:10800,ICT:25200,HST:-36e3,HKT:28800,GYT:-14400,GMT:0,GILT:43200,GFT:-10800,GET:14400,GEST:14400,GAMT:-32400,GALT:-21600,FNT:-7200,FNST:-3600,FKT:-10800,FKST:-10800,FJT:43200,FJST:46800,FET:10800,EST:-18e3,EGT:-3600,EGST:0,EETDST:10800,EET:7200,EEST:10800,EDT:-14400,EAT:10800,EAST:-21600,EASST:-21600,DDUT:36e3,DAVT:25200,CXT:25200,CST:-21600,COT:-18e3,CLT:-14400,CLST:-10800,CKT:-36e3,CHUT:36e3,CHAST:45900,CHADT:49500,CETDST:7200,CET:3600,CEST:7200,CDT:-18e3,CCT:28800,CAST:34200,CADT:37800,BTT:21600,BST:3600,BRT:-10800,BRST:-7200,BRA:-10800,BOT:-14400,BORT:28800,BNT:28800,BDT:21600,BDST:7200,AZT:14400,AZST:14400,AZOT:-3600,AZOST:0,AWST:28800,AWSST:32400,AST:-14400,ART:-10800,ARST:-10800,ANAT:43200,ANAST:43200,AMT:-14400,AMST:14400,ALMT:21600,ALMST:25200,AKST:-32400,AKDT:-28800,AFT:16200,AEST:36e3,AESST:39600,AEDT:39600,ADT:-10800,ACWST:31500,ACT:-18e3,ACST:34200,ACSST:37800,ACDT:37800};function us(t){return new Date(t)}function ls(t){return new Date(t+"Z")}const fs=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function ds(t){const e=t.match(fs);if(!e)return null;const[n,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 hs(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ps(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ys(t){return new Date(t)}function bs(t){const e=/^(\w{3}) (\w{3}) (\d{2}) (\d{4})$/;if(!t.match(e))throw new Error(`Unable to parse \`${t}\` as a date.`);const r=new Date(t+" UTC");return new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),0,0,0,0))}function gs(t){const e=/^(.+T.+)([+-])(\d{2})$/,n=t.match(e);if(n){const[,r,s,i]=n,o=`${r}${s}${i}:00`;return new Date(o)}return null}function ws(t){const e=/^(\d+)-(\d{1,2})-(\d{1,2})([ T])(\d{1,2})(?::(\d{1,2}))?(?::(\d{1,2}))?(.*)$/,n=t.match(e);if(n){const[,r,s,i,o,a,c,u,l]=n,f=s.padStart(2,"0"),d=i.padStart(2,"0");let p=a.padStart(2,"0");c!==void 0&&(p+=`:${c.padStart(2,"0")}`),u!==void 0&&(p+=`:${u.padStart(2,"0")}`);const y=`${r}-${f}-${d}T${p}${l}`;return new Date(y)}return null}function ms(t){const[e,n]=t.split(", "),[r,s,i]=e.split("/").map(Number),o=n.match(/(\d{1,2}):(\d{2}):(\d{2}) (AM|PM)/);if(!o)throw new Error(`Unable to parse time from: ${t}`);let[,a,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 _s(t){switch(t){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function Ss(t){const e=t.match(On);if(!e)return null;const[n]=e,r=cs[n],s=new Date(t.replace(On,"Z"));return new Date(s.getTime()-r*1e3)}const Ts=[ds,ps,bs,ms,ls,gs,hs,us,_s,Ss,ws,ys];function vs(t,e){try{const n=t(e);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function Rt(t){for(const e of Ts){const n=vs(e,t);if(n)return n}return null}function As(t){try{const e=JSON.parse(t);return typeof e=="string"?Rt(e):null}catch{return null}}function Xe(t){if(t!==void 0){if(t===null)return null;if(t instanceof Date)return t;if(typeof t=="string"){const e=Rt(t)||As(t)||Rt(t.trim());if(!e)throw new Error(`Unable to parse \`${t}\` as a date.`);return e}else if(typeof t=="number")return new Date(t);throw new Error(`Invalid date value \`${t}\`. Expected a date, number, or string, got type ${typeof t}.`)}}class Te{constructor(e,n){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=n}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 n=this.attrs[e.id];n&&(this.attrs[e.id]={...n,...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(xt(e)){const[n,r,s]=e["forward-identity"];ne(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[n,r]=e["forward-identity"];ne(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 n=e["forward-identity"],[r,s,i]=n;ne(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 n=e["reverse-identity"];if(n){const[r,s,i]=n;ne(this._revIdents,[s,i],e)}}return this._revIdents}toJSON(){return{attrs:this.attrs,linkIndex:this.linkIndex}}}function ks(t){return t.cardinality==="one"}function Dt(t){return t["value-type"]==="ref"}function xt(t){return t["value-type"]==="blob"}function Ie(t,e){return e.reduce((n,r)=>n&&n.get(r),t)}function le(t,e){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.delete(e[0]);return}const[n,...r]=e;t.has(n)&&le(t.get(n),r)}function ne(t,e,n){let r=t;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],n)}function In(t,e,n){const r=new Map,s=new Map,i=new Map;for(const o of e){let[a,c,u]=o;const l=t.getAttr(c);if(!l){console.warn("no such attr",c,a);continue}l["checked-data-type"]==="date"&&n&&(u=Xe(u),o[2]=u),Dt(l)&&ne(i,[u,c,a],o),ne(r,[a,c,u],o),ne(s,[c,a,u],o)}return{eav:r,aev:s,vae:i}}function Cn(t){return{triples:re(t.eav,3),cardinalityInference:t.cardinalityInference,useDateObjects:t.useDateObjects,version:1}}function En(t,e){return Ne(t,e.triples,e.cardinalityInference,e.useDateObjects)}function Pn(t,e){if(t)return new Te(t.attrs,t.linkIndex);if(e&&"__type"in e)return new Te(e.attrs,e.linkIndex)}function Os(t,e){return Ie(t.eav,[e])!==void 0}function Ne(t,e,n,r){const s=In(t,e,r);return s.cardinalityInference=n,s.useDateObjects=r,s}function Ke(t,e){var s,i;let n;if(Array.isArray(e[0])){const[o,a]=e[0],c=t.aev.get(o);if(!c)return null;n=(s=re(c,2).find(l=>l[2]===a))==null?void 0:s[0]}else n=e[0];if(!n)return null;const r=e[2];if(Array.isArray(r)&&r.length===2&&t.aev.get(r[0])){const[o,a]=r,c=t.aev.get(o);if(!c)return null;const l=(i=re(c,2).find(b=>b[2]===a))==null?void 0:i[0];if(!l)return null;const[f,d,p,...y]=e;return[n,d,l,...y]}else{const[o,...a]=e;return[n,...a]}}function Mn(t,e,n){const r=Ke(t,n);if(!r)return;const[s,i,o]=r,a=e.getAttr(i);a&&(le(t.eav,[s,i,o]),le(t.aev,[i,s,o]),Dt(a)&&le(t.vae,[o,i,s]))}let Is=0;function $n(t,e,n){const[r,s,i]=n;let o;const a=Ie(t.eav,[r,s,i]);return a&&(o=a[3]),o||Date.now()*10+Is++}function jn(t,e,n){const r=Ke(t,n);if(!r)return;let[s,i,o]=r;const a=e.getAttr(i);if(!a)return;a["checked-data-type"]==="date"&&t.useDateObjects&&(o=Xe(o));const c=Ie(t.eav,[s,i,o]),u=(c==null?void 0:c[3])??$n(t,a,r),l=[s,i,o,u];ks(a)?(ne(t.eav,[s,i],new Map([[o,l]])),ne(t.aev,[i,s],new Map([[o,l]]))):(ne(t.eav,[s,i,o],l),ne(t.aev,[i,s,o],l)),Dt(a)&&ne(t.vae,[o,i,s],l)}function Cs(t,e,n){var p;const r=Ke(t,n);if(!r)return;const[s,i,o]=r,a=e.getAttr(i);if(!a)return;if(!xt(a))throw new Error("merge operation is not supported for links");const c=Ie(t.eav,[s,i]);if(!c)return;const u=(p=c.values().next())==null?void 0:p.value;if(!u)return;const l=u[2],f=vn(l,o),d=[s,i,f,$n(t,a,u)];ne(t.eav,[s,i],new Map([[f,d]])),ne(t.aev,[i,s],new Map([[f,d]]))}function Ut(t,e,n){var u,l;const[r,s]=n,i=Ke(t,[r]);if(!i)return;const[o]=i,a=t.eav.get(o);if(a){for(const f of a.keys()){const d=e.getAttr(f);d&&d["on-delete-reverse"]==="cascade"&&re(a.get(f),1).forEach(([p,y,b])=>{var g;return Ut(t,e,[b,(g=d["reverse-identity"])==null?void 0:g[1]])}),(!s||!d||((u=d["forward-identity"])==null?void 0:u[1])===s)&&(le(t.aev,[f,o]),le(t.eav,[o,f]))}a.size===0&&le(t.eav,[o])}const c=t.vae.get(o)&&re(t.vae.get(o),2);c&&c.forEach(f=>{var g,m,w;const[d,p,y]=f,b=e.getAttr(p);(!s||!b||((g=b["reverse-identity"])==null?void 0:g[1])===s)&&(le(t.eav,[d,p,y]),le(t.aev,[p,d,y]),le(t.vae,[y,p,d])),b&&b["on-delete"]==="cascade"&&((m=b["reverse-identity"])==null?void 0:m[1])===s&&Ut(t,e,[d,(w=b["forward-identity"])==null?void 0:w[1]])}),((l=t.vae.get(o))==null?void 0:l.size)===0&&le(t.vae,[o])}function Rn(t,e,n){const r=In(e,n,t.useDateObjects);Object.keys(r).forEach(s=>{t[s]=r[s]})}function Es(t,[e]){t.addAttr(e)}function Dn(t){return re(t.eav,3)}function Ps(t,e,[n]){if(!e.getAttr(n))return;const r=Dn(t).filter(([s,i])=>i!==n);e.deleteAttr(n),Rn(t,e,r)}function Ms(t,e,[n]){e.getAttr(n.id)&&(e.updateAttr(n),Rn(t,e,Dn(t)))}function $s(t,e,n){const[r,...s]=n;switch(r){case"add-triple":jn(t,e,s);break;case"deep-merge-triple":Cs(t,e,s);break;case"retract-triple":Mn(t,e,s);break;case"delete-entity":Ut(t,e,s);break;case"add-attr":Es(e,s);break;case"delete-attr":Ps(t,e,s);break;case"update-attr":Ms(t,e,s);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${r}`)}}function re(t,e,n=[]){if(!t||e===0)return n;if(e===1){for(const r of t.values())n.push(r);return n}for(const r of t.values())re(r,e-1,n);return n}function et(t,e,n){var i;const r=[];if(n!=null&&n.hasOwnProperty("$not")){for(const o of e.keys())n.$not!==o&&r.push(e.get(o));return r}if(n!=null&&n.hasOwnProperty("$isNull")){const{attrId:o,isNull:a,reverse:c}=n.$isNull;if(c)for(const u of e.keys()){const l=t.vae.get(u),f=!l||!l.get(o);(a?f:!f)&&r.push(e.get(u))}else{const u=t.aev.get(o);for(const l of e.keys()){const f=!u||((i=u.get(l))==null?void 0:i.get(null))||!u.get(l);(a?f:!f)&&r.push(e.get(l))}}return r}if(n!=null&&n.$comparator)return re(e,1).filter(n.$op);const s=n.in||n.$in||[n];for(const o of s){const a=e.get(o);a&&r.push(a)}return r}function js(t,e,n){let r="";return t!==void 0&&(r+="e"),e!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function Rs(t,[e,n,r]){var i,o;switch(js(e,n,r)){case"e":{const a=t.eav.get(e);return re(a,2)}case"ea":{const a=(i=t.eav.get(e))==null?void 0:i.get(n);return re(a,1)}case"eav":{const a=(o=t.eav.get(e))==null?void 0:o.get(n);return a?et(t,a,r):[]}case"ev":{const a=t.eav.get(e);if(!a)return[];const c=[];for(const u of a.values())c.push(...et(t,u,r));return c}case"a":{const a=t.aev.get(n);return re(a,2)}case"av":{const a=t.aev.get(n);if(!a)return[];const c=[];for(const u of a.values())c.push(...et(t,u,r));return c}case"v":{const a=[];for(const c of t.eav.values())for(const u of c.values())a.push(...et(t,u,r));return a}default:return re(t.eav,3)}}function Ds(t,e,n){var s;const r={};if(!e)return r;for(const[i,o]of e.entries()){const a=(s=t.eav.get(n))==null?void 0:s.get(o.id),c=re(a,1);for(const u of c)r[i]=u[2]}return r}function V(t,e,n){var r;return(r=t.forwardIdents.get(e))==null?void 0:r.get(n)}function ve(t,e,n){var r;return(r=t.revIdents.get(e))==null?void 0:r.get(n)}function xs(t,e){return t.blobAttrs.get(e)}function xn(t,e){var r;const n=t.primaryKeys.get(e);return n||((r=t.forwardIdents.get(e))==null?void 0:r.get("id"))}function Us(t,e,n){const r=Ke(t,n);if(!r)return;const[s,i,o]=r;if(e.getAttr(i))return Ie(t.eav,[s,i])}function Ls(t,e,n){const r=n.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 f=e.getAttr(o);if(f){const d=xn(e,f["forward-identity"][1]);l=!!Us(t,e,[i,d==null?void 0:d.id,i])}return!(u==="create"&&l||u==="update"&&!l)});return Ye({store:t,attrsStore:e},s=>{r.forEach(i=>{$s(s.store,s.attrsStore,i)})},{mark:s=>{if(s instanceof Te)return"immutable"}})}function Fs(t){return typeof t=="string"&&t.startsWith("?")}function Ns(t,e,n){if(n.hasOwnProperty(t)){const r=n[t];return Ln(r,e,n)}return{...n,[t]:e}}function Un(t,e,n){return t===e?n:null}function Ks(t){switch(typeof t){case"string":return t.startsWith("?")?Ns:Un;default:return Un}}const qs=["in","$in","$not","$isNull","$comparator"];function zs(t){for(const e of qs)if(t.hasOwnProperty(e))return!0;return!1}function Ln(t,e,n){return n?typeof t=="object"?zs(t)?n:null:Ks(t)(t,e,n):null}function Ws(t,e,n){return t.reduce((r,s,i)=>{const o=e[i];return Ln(s,o,r)},n)}function Qs(t,e,n){return Gs(t,e,n).map(r=>Ws(e,r,n)).filter(r=>r)}function Vs(t,e,n){return e.or?e.or.patterns.flatMap(r=>Lt(t,r,n)):e.and?e.and.patterns.reduce((r,s)=>Lt(t,s,r),n):n.flatMap(r=>Qs(t,e,r))}function Lt(t,e,n=[{}]){return e.reduce((r,s)=>Vs(t,s,r),n)}function Ft(t,e){return Array.isArray(e)?e.map(n=>Ft(t,n)):Fs(e)?t[e]:e}function Bs(t,{find:e,where:n}){return Lt(t,n).map(s=>Ft(s,e))}function Gs(t,e,n){return Rs(t,Ft(n,e))}const Hs=/^(?:[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 Ce(t){return typeof t=="string"&&Hs.test(t)}const G=[];for(let t=0;t<256;++t)G.push((t+256).toString(16).slice(1));function Js(t,e=0){return(G[t[e+0]]+G[t[e+1]]+G[t[e+2]]+G[t[e+3]]+"-"+G[t[e+4]]+G[t[e+5]]+"-"+G[t[e+6]]+G[t[e+7]]+"-"+G[t[e+8]]+G[t[e+9]]+"-"+G[t[e+10]]+G[t[e+11]]+G[t[e+12]]+G[t[e+13]]+G[t[e+14]]+G[t[e+15]]).toLowerCase()}let Nt;const Ys=new Uint8Array(16);function Zs(){if(!Nt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Nt=crypto.getRandomValues.bind(crypto)}return Nt(Ys)}const Fn={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Xs(t,e,n){var s;if(Fn.randomUUID&&!t)return Fn.randomUUID();t=t||{};const r=t.random??((s=t.rng)==null?void 0:s.call(t))??Zs();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,Js(r)}function Nn(t){const e=t.replace(/-/g,""),n=[];for(let r=0;r<e.length;r+=2)n.push(parseInt(e.substring(r,r+2),16));return n}function ei(t,e){for(let n=0;n<t.length;n++){if(t[n]<e[n])return-1;if(t[n]>e[n])return 1}return 0}function ti(t,e){return ei(Nn(t),Nn(e))}function K(){return Xs()}function ni(t,e){return t.localeCompare(e)}function ri(){let t=ni;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{t=Intl.Collator("en-US").compare}catch{}return t}const si=ri();let ii=!0,oi=0;function qe(t){return tt(`_${t}`,oi++)}function tt(t,e){return`?${t}-${e}`}class Ee extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function ai(t,e){const n=xn(t,e);if(!n)throw new Ee(`Could not find id attr for ${e}`);return n}function Kn(t,e,n,r){return[ci(t,e,n,r)]}function ci(t,e,n,r){return[t(n,r),ai(e,n).id,t(n,r),t("time",r)]}function ui(t,e,n){return t.map(r=>r===e?n:r)}function qn(t,e,n,r,s){const i=V(e,n,s),o=ve(e,n,s),a=i||o;if(!a)throw new Ee(`Could not find attr for ${[n,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,p=i?[t(u,r),a.id,t(f,d),qe("time")]:[t(u,d),a.id,t(f,r),qe("time")];return[i?f:u,d,p,a,!!i]}function zn(t,e){if(typeof e!="string")return function(o){return!1};const r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,"."),s=new RegExp(`^${r}$`,t?void 0:"i");return function(o){return typeof o!="string"?!1:s.test(o)}}function li(t,e){if(typeof e!="object"||e.hasOwnProperty("$in")||e.hasOwnProperty("in"))return e;const n=t["checked-data-type"]==="date";if(e.hasOwnProperty("$gt"))return{$comparator:!0,$op:n?function(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:n?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:n?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:n?function(s){return new Date(s[2])<=new Date(e.$lte)}:function(s){return s[2]<=e.$lte}};if(e.hasOwnProperty("$like")){const r=zn(!0,e.$like);return{$comparator:!0,$op:function(i){return r(i[2])}}}if(e.hasOwnProperty("$ilike")){const r=zn(!1,e.$ilike);return{$comparator:!0,$op:function(i){return r(i[2])}}}return e}function fi(t,e,n,r,s,i){const o=V(e,n,s),a=ve(e,n,s),c=o||a;if(!c)throw new Ee(`No attr for etype = ${n} label = ${s}`);if(i!=null&&i.hasOwnProperty("$isNull")){const u=V(e,n,"id");if(!u)throw new Ee(`No attr for etype = ${n} label = id`);return[t(n,r),u.id,{$isNull:{attrId:c.id,isNull:i.$isNull,reverse:!o}},qe("time")]}return o?[t(n,r),c.id,li(c,i),qe("time")]:[i,c.id,t(n,r),qe("time")]}function di(t,e,n,r,s){const[i,o,a]=s.reduce((c,u)=>{const[l,f,d]=c,[p,y,b]=qn(t,e,l,f,u);return[p,y,[...d,b]]},[n,r,[]]);return[i,o,a]}function Kt(t,e,n,r,s,i){const o=s.slice(0,s.length-1),a=s[s.length-1],[c,u,l]=di(t,e,n,r,o),f=fi(t,e,c,u,a,i);return l.concat([f])}function hi(t,e){return e?[e].concat(t):t}function pi([t,e]){return t==="or"&&Array.isArray(e)}function yi([t,e]){return t==="and"&&Array.isArray(e)}function bi(t,e,n){return(r,s)=>{const i=t(r,s);return e==i?i:`${i}-${n}`}}function Wn(t,e,n,r,s,i){const o=t(r,s),a=i.map((c,u)=>{const l=bi(t,o,u);return Vn(l,n,r,s,c)});return{[e]:{patterns:a,joinSym:o}}}function gi(t){const e=[];for(let n=1;n<=t.length;n++)e.push(t.slice(0,n));return e}function Qn(t,e,n,r,s){return gi(s).map(i=>Kt(t,e,n,r,i,{$isNull:!0}))}function Vn(t,e,n,r,s){return Object.entries(s).flatMap(([i,o])=>{if(pi([i,o]))return Wn(t,"or",e,n,r,o);if(yi([i,o]))return Wn(t,"and",e,n,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=Kt(t,e,n,r,a,o),u=Qn(t,e,n,r,a);return[{or:{patterns:[c,...u],joinSym:t(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Qn(t,e,n,r,a),joinSym:t(n,r)}}]:Kt(t,e,n,r,a,o)})}function wi(t,e,n,r){const s=tt;return r?Vn(s,t,e,n,r).concat(Kn(s,t,e,n)):Kn(s,t,e,n)}function mi(t,e,n){return[t(e,n),t("time",n)]}function _i(t,e,n,r,s,i){const[o,a,c,u,l]=qn(t,e,n,r,s),f=ui(c,t(n,r),i);return[o,a,f,u,l]}function Si(t,e,n,{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 b,g,m;const y=!!(e.cardinalityInference&&((m=(g=(b=n.linkIndex)==null?void 0:b[r])==null?void 0:g[p])!=null&&m.isSingular));try{const[w,_,I]=_i(t,n,r,s,p,u),S=Hn(e,n,{etype:w,level:_,form:i[p],join:I}),M=y?S[0]:S;return{[p]:M}}catch(w){if(w instanceof Ee)return{[p]:y?void 0:[]};throw w}}).reduce(function(p,y){return{...p,...y}},l)}):Object.values(o)}function Ti(t,e,n){return n==="string"?si(t,e):t>e?1:-1}function ze(t,e,n,r,s){return e===r||e==null&&r==null?ti(t,n):r==null?1:e==null?-1:Ti(e,r,s)}function nt([t,e],[n,r],s){return ze(t,e,n,r,s)}function qt(t){return t==null?t:new Date(t).getTime()}function Bn(t,e,n){var d;const[r,s,i,o]=t;if(((d=e["forward-identity"])==null?void 0:d[2])==="id")return nt(n,[r,o],null);const[a,c]=n,u=e["checked-data-type"],l=u==="date"?qt(c):c,f=u==="date"?qt(i):i;return nt([a,l],[r,f],u)}function vi(t,e,n,r){const s=Bn(t,e,r);return n==="desc"?s>0:s<0}function Ai(t,e,n,r){const s=Bn(t,e,r);return n==="desc"?s<0:s>0}function ki(t,e){const n=e[1];return t.getAttr(n)}function Oi(t,e,n){const r=Object.keys(n)[0];return V(t,e,r)}function Ii(t,e,n,r){if(n)return ki(t,n);if(r)return Oi(t,e,r)}function Ci(t,e,n){var s,i;if(!Array.isArray(n.fields))return xs(t,e);const r=new Map;for(const o of n.fields){const a=V(t,e,o),c=(s=a==null?void 0:a["forward-identity"])==null?void 0:s[2];c&&xt(a)&&r.set(c,a)}if(!r.has("id")){const o=V(t,e,"id"),a=(i=o==null?void 0:o["forward-identity"])==null?void 0:i[2];a&&r.set(a,o)}return r}function Ei(t,e,{etype:n,pageInfo:r,dq:s,form:i}){var b,g;const o=(b=i==null?void 0:i.$)==null?void 0:b.order,a=Gn(i),c=Pi(i);let u=Bs(t,s);const l=r==null?void 0:r["start-cursor"],f=r==null?void 0:r["end-cursor"],d=Ii(e,n,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(([_])=>{var S,M,O,k,z;let I=(z=(k=(O=(M=(S=t.eav.get(_))==null?void 0:S.get(w))==null?void 0:M.values())==null?void 0:O.next())==null?void 0:k.value)==null?void 0:z[2];return m&&(I=qt(I)),[_,I]})}u.sort(c==="asc"?function(w,_){return nt(w,_,d==null?void 0:d["checked-data-type"])}:function(w,_){return nt(_,w,d==null?void 0:d["checked-data-type"])});let p={};const y=Ci(e,n,s);for(const m of u){const[w]=m;if(p[w]||!a&&l&&d&&vi(l,d,c,m)||!a&&f&&d&&Ai(f,d,c,m))continue;const _=Ds(t,y,w);_&&(p[w]=_)}return p}function Pi(t){var n;const e=(n=t.$)==null?void 0:n.order;return e&&e[Object.keys(e)[0]]||"asc"}function Gn(t){var s,i,o;const e=(s=t.$)==null?void 0:s.offset,n=(i=t.$)==null?void 0:i.before,r=(o=t.$)==null?void 0:o.after;return!e&&!n&&!r}function Mi(t,e,{etype:n,level:r,form:s,join:i,pageInfo:o}){var d,p,y,b,g;if(!Gn(s)&&(!o||!o["start-cursor"]))return[];const a=hi(wi(e,n,r,(d=s.$)==null?void 0:d.where),i),c=mi(tt,n,r),u=(p=s.$)==null?void 0:p.fields,l=Ei(t,e,{etype:n,pageInfo:o,form:s,dq:{where:a,find:c,fields:u}}),f=((y=s.$)==null?void 0:y.limit)||((b=s.$)==null?void 0:b.first)||((g=s.$)==null?void 0:g.last);if(f!=null){r>0&&ii&&console.warn("WARNING: Limits in child queries are only run client-side. Data returned from the server will not have a limit.");const m=Object.entries(l);return m.length<=f?l:Object.fromEntries(m.slice(0,f))}return l}function $i(t,e,n){try{return Mi(t,e,n)}catch(r){if(r instanceof Ee)return{};throw r}}function Hn(t,e,n){const r=$i(t,e,n);return Si(tt,t,e,n,r)}function ji(t){const e={};for(const[n,r]of Object.entries(t))e[n]={startCursor:r["start-cursor"],endCursor:r["end-cursor"],hasNextPage:r["has-next-page?"],hasPreviousPage:r["has-previous-page?"]};return e}function Jn({store:t,attrsStore:e,pageInfo:n,aggregate:r},s){const o={data:Object.keys(s).reduce(function(c,u){return r!=null&&r[u]||u==="$$ruleParams"||(c[u]=Hn(t,e,{etype:u,form:s[u],level:0,pageInfo:n==null?void 0:n[u]})),c},{})};return n&&(o.pageInfo=ji(n)),r&&(o.aggregate=r),o}function Ri(){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 Di=Ri();function rt(t,e,n){const r={__etype:t,__ops:n};return new Proxy(r,{get:(s,i)=>{if(i==="__ops")return n;if(i==="__etype")return t;if(Di.has(i))return(o,a)=>rt(t,e,[...n,a?[i,t,e,o,a]:[i,t,e,o]])}})}function Yn(t,e){return`lookup__${t}__${JSON.stringify(e)}`}function st(t){return t.startsWith("lookup__")}function zt(t){const[e,n,...r]=t.split("__");return[n,JSON.parse(r.join("__"))]}function xi(t){return new Proxy({__etype:t},{get(e,n){if(n==="lookup")return(s,i)=>rt(t,zt(Yn(s,i)),[]);if(n==="__etype")return t;const r=n;return st(r)?rt(t,zt(r),[]):rt(t,r,[])}})}function Wt(){return new Proxy({},{get(t,e){return xi(e)}})}const Ui=Wt();function Li(t){return t.__ops}function Fi(t,e){const{attrIdMap:n,refSwapAttrIds:r}=t,s=[];for(const o of e){const a=n[o];if(a)s.push(a);else if(Array.isArray(o)&&o.length==2&&n[o[0]]){const[c,u]=o;s.push([n[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 Ni(t){if(Array.isArray(t))return t;const e=Object.entries(t);if(e.length!==1)throw new Error("lookup must be an object with a single unique attr and value.");return e[0]}function Ki(t,e,n){return n.indexOf(".")!==-1&&!V(t,e,n)}function Qt(t){const[e,n,...r]=t.split(".");if(r.length>0||n!=="id")throw new Error(`${t} is not a valid lookup attribute.`);return e}function qi(t,e,n){if(!Ki(t,e,n))return V(t,e,n);const r=Qt(n),s=V(t,e,r)||ve(t,e,r);if(s&&s["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return s}function Vt(t){return typeof t=="string"&&!st(t)?null:typeof t=="string"&&st(t)?zt(t):Ni(t)}function se(t,e,n){const r=Vt(n);if(r===null)return n;const[s,i]=r,o=qi(t,e,s);if(!o||!o["unique?"])throw new Error(`${s} is not a unique attribute.`);return[o.id,i]}function Zn(t,e,n,r){var o;const s=se(t,e,n);return Array.isArray(s)?[["add-triple",s,(o=V(t,e,"id"))==null?void 0:o.id,s]].concat(r):r}function zi({attrsStore:t},[e,n,r]){const s=Object.entries(r).flatMap(([i,o])=>{const a=Array.isArray(o)?o:[o],c=V(t,e,i),u=ve(t,e,i);return a.map(l=>c?["add-triple",se(t,e,n),c.id,se(t,c["reverse-identity"][1],l)]:["add-triple",se(t,u["forward-identity"][1],l),u==null?void 0:u.id,se(t,e,n)])});return Zn(t,e,n,s)}function Wi({attrsStore:t},[e,n,r]){const s=Object.entries(r).flatMap(([i,o])=>{const a=Array.isArray(o)?o:[o],c=V(t,e,i),u=ve(t,e,i);return a.map(l=>c?["retract-triple",se(t,e,n),c.id,se(t,c["reverse-identity"][1],l)]:["retract-triple",se(t,u["forward-identity"][1],l),u.id,se(t,e,n)])});return Zn(t,e,n,s)}function Qi(t,e,n,r){var s;if(Array.isArray(r)){const[i,o]=r;for(const a of t||[]){const c=a==null?void 0:a.aev.get(i);if(c){for(const[u,l,f]of re(c,2))if(f===o)return!0}}}else for(const i of t||[]){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])==n)return!0}}return!1}function Xn({stores:t,attrsStore:e},[n,r,s,i]){return(i==null?void 0:i.upsert)===!1?{mode:"update"}:(i==null?void 0:i.upsert)===!0?null:Qi(t,e,n,r)?{mode:"update"}:null}function Vi(t,e){const{attrsStore:n}=t,[r,s,i,o]=e,a=jt(i),c=se(n,r,s);return[["id",c]].concat(Object.entries(a)).map(([l,f])=>{const d=V(n,r,l);return d["checked-data-type"]==="date"&&t.useDateObjects&&(f=Xe(f)),["add-triple",c,d.id,f,{mode:"create"}]})}function Bi(t,e){const{attrsStore:n}=t,[r,s,i,o]=e,a=jt(i),c=se(n,r,s),u=Xn(t,[r,c,i,o]);return[["id",c]].concat(Object.entries(a)).map(([f,d])=>{const p=V(n,r,f);return p["checked-data-type"]==="date"&&t.useDateObjects&&(d=Xe(d)),["add-triple",c,p.id,d,...u?[u]:[]]})}function Gi({attrsStore:t},[e,n]){return[["delete-entity",se(t,e,n),e]]}function Hi(t,e){const{attrsStore:n}=t,[r,s,i,o]=e,a=jt(i),c=se(n,r,s),u=Xn(t,[r,c,i,o]),l=Object.entries(a).map(([d,p])=>{const y=V(n,r,d);return["deep-merge-triple",c,y.id,p,...u?[u]:[]]});return[["add-triple",c,V(n,r,"id").id,c,...u?[u]:[]]].concat(l)}function Ji({attrsStore:t},[e,n,r]){return[["rule-params",se(t,e,n),e,r]]}function Yi(t){const[e,n,r,s,i]=t;if(!s)return t;const o={...s};return delete o.id,[e,n,r,o,...i?[i]:[]]}function Zi(t,e){const[n,...r]=Yi(e);switch(n){case"merge":return Hi(t,r);case"create":return Vi(t,r);case"update":return Bi(t,r);case"link":return zi(t,r);case"unlink":return Wi(t,r);case"delete":return Gi(t,r);case"ruleParams":return Ji(t,r);default:throw new Error(`unsupported action ${n}`)}}function Xi(t){switch(t){case"string":case"date":case"boolean":case"number":return t;default:return}}function eo(t,e,n){var a,c;const r=(c=(a=t.entities[e])==null?void 0:a.attrs)==null?void 0:c[n];if(n==="id")return null;if(!r)throw new Error(`${e}.${n} does not exist in your schema`);const{unique:s,indexed:i}=r==null?void 0:r.config,o=Xi(r==null?void 0:r.valueType);return{"index?":i,"unique?":s,"checked-data-type":o}}function it(t,e,n,r){const s=t?eo(t,e,n):null,i=K(),a=[K(),e,n];return{id:i,"forward-identity":a,"value-type":"blob",cardinality:"one","unique?":!1,"index?":!1,isUnsynced:!0,...s||{},...r||{}}}function to(t,e,n){return Object.values(t.links).find(i=>i.forward.on===e&&i.forward.label===n||i.reverse.on===e&&i.reverse.label===n)}function no(t,e,n){const r=to(t,e,n);if(!r)throw new Error(`Couldn't find the link ${e}.${n} in your schema`);const{forward:s,reverse:i}=r;return{"forward-identity":[K(),s.on,s.label],"reverse-identity":[K(),i.on,i.label],cardinality:s.has==="one"?"one":"many","unique?":i.has==="one","on-delete":s.onDelete,"on-delete-reverse":i.onDelete}}function er(t,e,n,r){const s=t?no(t,e,n):null,i=K(),o=[K(),e,n],a=[K(),n,e];return{id:i,"forward-identity":o,"reverse-identity":a,"value-type":"ref",cardinality:"many","unique?":!1,"index?":!1,isUnsynced:!0,...s||{},...r||{}}}const ro=new Set(["create","update","merge","link","unlink"]),so=new Set(["link","unlink"]),io=new Set(["create","update","merge"]),oo=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),Bt={"unique?":!0,"index?":!0},ao={...Bt,cardinality:"one"};function co(t){const e=[],[n,r,s,i]=t;if(!oo.has(n))return e;const o=Vt(s);if(o&&e.push({etype:r,lookupPair:o}),n==="link")for(const[a,c]of Object.entries(i)){const u=Array.isArray(c)?c:[c];for(const l of u){const f=Vt(l);f&&e.push({etype:r,lookupPair:f,linkLabel:a})}}return e}function uo({attrsStore:t,schema:e},n){var d,p;const r=new Set,s=[],i=[];function o(y,b){return V(t,y,b)||s.find(g=>g["forward-identity"][1]===y&&g["forward-identity"][2]===b)}function a(y,b){return ve(t,y,b)||s.find(g=>{var m,w;return((m=g["reverse-identity"])==null?void 0:m[1])===y&&((w=g["reverse-identity"])==null?void 0:w[2])===b})}function c(y){s.push(y),i.push(["add-attr",y]),r.add(y.id)}function u(y){y&&"isUnsynced"in y&&y.isUnsynced&&!r.has(y.id)&&(s.push(y),i.push(["add-attr",y]),r.add(y.id))}function l(y,b){return b.indexOf(".")!==-1&&!o(y,b)}function f(y,b){const g=o(y,b),m=a(y,b);u(g),u(m),!g&&!m&&c(er(e,y,b,ao))}for(const y of n)for(const{etype:b,lookupPair:g,linkLabel:m}of co(y)){const w=g[0];if(m){f(b,m);const _=o(b,m),I=a(b,m);u(_),u(I);const S=((d=_==null?void 0:_["reverse-identity"])==null?void 0:d[1])||((p=I==null?void 0:I["forward-identity"])==null?void 0:p[1])||m;if(l(S,w))f(S,Qt(w));else{const M=o(S,w);M||c(it(e,S,w,Bt)),u(M)}}else if(l(b,w))f(b,Qt(w));else{const _=o(b,w);_||c(it(e,b,w,Bt)),u(_)}}for(const y of n){const[b,g,m,w]=y;if(ro.has(b)){const _=o(g,"id");u(_),_||c(it(e,g,"id",{"unique?":!0}));for(const I of Object.keys(w)){const S=o(g,I);if(u(S),io.has(b)&&(S||c(it(e,g,I,I==="id"?{"unique?":!0}:null))),so.has(b)){const M=a(g,I);!S&&!M&&c(er(e,g,I)),u(M)}}}}if(s.length){const y={...t.attrs};for(const b of s)y[b.id]=b;return[new Te(y,t.linkIndex),i]}return[t,i]}function lo(t,e){const r=(Array.isArray(e)?e:[e]).flatMap(c=>Li(c)),[s,i]=uo(t,r),o={...t,attrsStore:s},a=r.flatMap(c=>Zi(o,c));return[...i,...a]}function tr(t,e){typeof requestIdleCallback>"u"?t():requestIdleCallback(t,{timeout:e})}const Pe="__meta";class nr{constructor(e,n){}}class Gt{constructor(e){h(this,"currentValue");h(this,"_subs",[]);h(this,"_persister");h(this,"_merge");h(this,"serialize");h(this,"parse");h(this,"_saveThrottleMs");h(this,"_idleCallbackMaxWaitMs");h(this,"_nextSave",null);h(this,"_nextGc",null);h(this,"_pendingSaveKeys",new Set);h(this,"_loadedKeys",new Set);h(this,"_loadingKeys");h(this,"_objectSize");h(this,"_log");h(this,"onKeyLoaded");h(this,"_version",0);h(this,"_meta",{isLoading:!0,onLoadCbs:[],value:null,error:null,attempts:0});h(this,"_gcOpts");this._persister=e.persister,this._merge=e.merge,this.serialize=e.serialize,this.parse=e.parse,this._objectSize=e.objectSize,this._log=e.logger,this._saveThrottleMs=e.saveThrottleMs??100,this._idleCallbackMaxWaitMs=e.idleCallbackMaxWaitMs??1e3,this._gcOpts=e.gc,this.currentValue={},this._loadedKeys=new Set,this._loadingKeys={},this._initMeta(),e.preloadEntryCount&&this._preloadEntries(e.preloadEntryCount)}async _initMeta(){var e;this._meta.loadingPromise&&await this._meta.loadingPromise;try{const n=this._persister.getItem(Pe);this._meta.loadingPromise=n;const r=await n;this._meta.isLoading=!1,this._meta.error=null,this._meta.loadingPromise=null,this._meta.attempts=0;const s=((e=this._meta.value)==null?void 0:e.objects)??{},i=r??{},o=i.objects??{};this._meta.value={...i,objects:{...s,...o}}}catch(n){this._meta.error=n,this._meta.attempts++,this._meta.loadingPromise=null}}async _getMeta(){return this._meta.value?this._meta.value:this._meta.loadingPromise?(await this._meta.loadingPromise,this._meta.value):(this._initMeta(),await this._meta.loadingPromise,this._meta.value)}async _refreshMeta(){return await this._initMeta(),this._meta.value}async _preloadEntries(e){const n=await this.waitForMetaToLoad();if(!n)return;const r=Object.entries(n.objects);r.sort(([s,i],[o,a])=>a.updatedAt-i.updatedAt);for(const[s]of r.slice(0,e))this._loadKey(s)}async _getFromStorage(e){try{const n=await this._persister.getItem(e);return n&&this.parse(e,n)}catch(n){return console.error(`Unable to read from storage for key=${e}`,n),null}}async waitForKeyToLoad(e){return this._loadedKeys.has(e)?this.currentValue[e]:(await(this._loadingKeys[e]||this._loadKey(e)),this.currentValue[e])}async waitForMetaToLoad(){return this._getMeta()}unloadKey(e){this._loadedKeys.delete(e),delete this._loadingKeys[e],delete this.currentValue[e]}async _loadKey(e){if(this._loadedKeys.has(e)||e in this._loadingKeys)return;const n=this._getFromStorage(e);this._loadingKeys[e]=n;const r=await n;if(delete this._loadingKeys[e],this._loadedKeys.add(e),r){const s=this._merge(e,r,this.currentValue[e]);s&&(this.currentValue[e]=s)}this.onKeyLoaded&&this.onKeyLoaded(e)}_writeToStorage(e){const n=[],r=e==null?void 0:e.skipGc;if(this._meta.isLoading){const f=new Promise((d,p)=>{setTimeout(()=>this._enqueuePersist(e?{...e,attempts:(e.attempts||0)+1}:{attempts:1}).then(d).catch(p),10+((e==null?void 0:e.attempts)??0)*1e3)});return n.push(f),Promise.all(n).then(d=>d.reduce((p,y)=>p+y,0))}const s=this._meta.value;if(!s)return Promise.resolve(0);const i=[],o=[];for(const f of this._pendingSaveKeys)f in this.currentValue?o.push(f):(i.push(f),delete s.objects[f]);for(const f of i){const d=this._persister.removeItem(f);n.push(d.then(()=>1)),this._loadedKeys.delete(f),this._pendingSaveKeys.delete(f)}const a=[],c=[[Pe,s]],u=s.objects??{};s.objects=u;for(const f of o)if(this._loadedKeys.has(f)){const d=this.serialize(f,this.currentValue[f]);c.push([f,d]);const p=this._objectSize(d),y=u[f]??{createdAt:Date.now(),updatedAt:Date.now(),size:p};y.updatedAt=Date.now(),y.size=p,u[f]=y,this._pendingSaveKeys.delete(f)}else a.push(f);const l=this._persister.multiSet(c);n.push(l.then(()=>1));for(const f of a){const d=this._loadKey(f).then(()=>this._enqueuePersist(e));n.push(d)}return r||this.gc(),Promise.all(n).then(f=>f.reduce((d,p)=>d+p,0))}async flush(){return this._nextSave?(clearTimeout(this._nextSave),this._nextSave=null,this._writeToStorage()):void 0}async _gc(){if(!this._gcOpts)return;const e=new Set(await this._persister.getAllKeys());e.delete(Pe);const n=new Set(Object.keys(this.currentValue));for(const d of Object.keys(this._loadingKeys))n.add(d);for(const d of this._loadedKeys)n.add(d);const r=await this._refreshMeta();if(!r){this._log.info("Could not gc because we were not able to load meta");return}const s=[],i={gcOpts:this._gcOpts,keys:e,sacredKeys:n,removed:[],metaRemoved:[],removedMissingCount:0,removedOldCount:0,removedThresholdCount:0,removedSizeCount:0};for(const d of e)n.has(d)||d in r.objects||(this._log.info("Lost track of key in meta",d),s.push(this._persister.removeItem(d)),i.removed.push(d),i.removedMissingCount++);const o=Date.now();for(const[d,p]of Object.entries(r.objects))!n.has(d)&&p.updatedAt<o-this._gcOpts.maxAgeMs&&(s.push(this._persister.removeItem(d)),delete r.objects[d],i.removed.push(d),i.removedOldCount++);const a=Object.entries(r.objects);a.sort(([d,p],[y,b])=>p.updatedAt-b.updatedAt);const c=a.filter(([d])=>!n.has(d));if(a.length>this._gcOpts.maxEntries)for(const[d]of c.slice(0,a.length-this._gcOpts.maxEntries))s.push(this._persister.removeItem(d)),delete r.objects[d],i.removed.push(d),i.removedThresholdCount++;const u=Object.entries(r.objects);u.sort(([d,p],[y,b])=>p.updatedAt-b.updatedAt);const l=u.filter(([d])=>!n.has(d));let f=u.reduce((d,[p,y])=>d+y.size,0);for(;f>0&&f>this._gcOpts.maxSize&&l.length;){const[[d,p]]=l.splice(0,1);f-=p.size,s.push(this._persister.removeItem(d)),delete r.objects[d],i.removed.push(d),i.removedSizeCount++}for(const d of Object.keys(r.objects))!e.has(d)&&!n.has(d)&&delete r.objects[d];return(i.removed.length||i.metaRemoved.length)&&s.push(this._enqueuePersist({skipGc:!0})),this._log.info("Completed GC",i),await Promise.all(s),i}gc(){this._nextGc||(this._nextGc=setTimeout(()=>{tr(()=>{this._nextGc=null,this._gc()},30*1e3)},1e3*60+Math.random()*500))}_enqueuePersist(e){return new Promise((n,r)=>{if(this._nextSave){n(0);return}this._nextSave=setTimeout(()=>{tr(()=>{this._nextSave=null,this._writeToStorage(e).then(n).catch(r)},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)})}version(){return this._version}updateInPlace(e){this._version++;const[n,r]=Ye(this.currentValue,e,{enablePatches:!0});for(const s of r){const i=s.path[0];i&&typeof i=="string"&&(this._pendingSaveKeys.add(i),this._loadedKeys.has(i)||this._loadKey(i))}this.currentValue=n,this._enqueuePersist();for(const s of this._subs)s(this.currentValue);return n}subscribe(e){return this._subs.push(e),e(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==e)}}async clearUnloadedKeys(){let e=!1;for(const n of await this._persister.getAllKeys())n===Pe||n in this.currentValue||(this._pendingSaveKeys.add(n),e=!0);e&&await this._enqueuePersist()}}const fo=6,ho=["kv","querySubs","syncSubs"];function po(t){return function(n){console.error("Error in IndexedDB event",{source:t,event:n})}}async function yo(t){return new Promise(e=>{const n=indexedDB.open(t);n.onerror=r=>{e(null)},n.onsuccess=r=>{const i=r.target.result;e(i)},n.onupgradeneeded=r=>{var i;(i=r.target.transaction)==null||i.abort(),e(null)}})}async function bo(t,e,n){const r=typeof e=="string"?JSON.parse(e):e;if(!r)return;const s=new Set;return new Promise((i,o)=>{var l,f,d;const a={};for(const[p,y]of Object.entries(r)){const b=typeof y=="string"?JSON.parse(y):y;if(b.lastAccessed){const m={createdAt:b.lastAccessed,updatedAt:b.lastAccessed,size:((d=(f=(l=b.result)==null?void 0:l.store)==null?void 0:f.triples)==null?void 0:d.length)??0};a[p]=m}const g=n.put(b,p);s.add(g)}const c={objects:a},u=n.put(c,Pe);s.add(u);for(const p of s)p.onsuccess=()=>{s.delete(p),s.size===0&&i()},p.onerror=y=>{o(y)}})}async function rr(t,e,n){const r=n.put(e,t);return new Promise((s,i)=>{r.onsuccess=()=>s(),r.onerror=o=>i(o)})}async function go(t,e){const n=await yo(`instant_${t}_5`);if(!n)return;const r=await new Promise((l,f)=>{const y=n.transaction(["kv"],"readonly").objectStore("kv").openCursor();y.onerror=g=>{f(g)};const b=[];y.onsuccess=()=>{const g=y.result;if(g){const m=g.key,w=g.value;b.push([m,w]),g.continue()}else l(b)},y.onerror=g=>{f(g)}}),s=e.transaction(["kv","querySubs"],"readwrite"),i=s.objectStore("kv"),o=s.objectStore("querySubs"),a=[],c={objects:{}};for(const[l,f]of r)switch(l){case"querySubs":{const d=bo(l,f,o);a.push(d);break}default:{const d=rr(l,f,i);a.push(d);const p={createdAt:Date.now(),updatedAt:Date.now(),size:0};c.objects[l]=p;break}}const u=rr(Pe,c,i);a.push(u),await Promise.all(a),await new Promise((l,f)=>{s.oncomplete=d=>l(d),s.onerror=d=>f(d),s.onabort=d=>f(d)})}const sr=new Map;class ir extends nr{constructor(n,r){super(n,r);h(this,"dbName");h(this,"_storeName");h(this,"_appId");h(this,"_prefix");h(this,"_dbPromise");this.dbName=`instant_${n}_${fo}`,this._storeName=r,this._appId=n,this._dbPromise=this._init()}_init(){return new Promise((n,r)=>{let s=!1;const i=indexedDB.open(this.dbName,1);i.onerror=o=>{r(o)},i.onsuccess=o=>{const c=o.target.result;if(c.onclose=()=>{this._dbPromise=this._init()},c.onversionchange=()=>{c.close()},s){const u=go(this._appId,c).catch(l=>{po("Error upgrading store from version 5 to 6.")(l)});sr.set(this.dbName,u),u.then(()=>n(c)).catch(()=>n(c))}else{const u=sr.get(this.dbName);u?u.then(()=>n(c)).catch(()=>n(c)):n(c)}},i.onupgradeneeded=o=>{s=!0,this._upgradeStore(o)}})}_upgradeStore(n){const s=n.target.result;for(const i of ho)s.objectStoreNames.contains(i)||s.createObjectStore(i)}async _withRetry(n){try{const r=await this._dbPromise;return await n(r)}catch(r){if(r instanceof DOMException&&r.name==="InvalidStateError"){this._dbPromise=this._init();const s=await this._dbPromise;return await n(s)}throw r}}async getItem(n){return this._withRetry(r=>new Promise((s,i)=>{const c=r.transaction([this._storeName],"readonly").objectStore(this._storeName).get(n);c.onerror=()=>{i(c.error)},c.onsuccess=()=>{c.result?s(c.result):s(null)}}))}async setItem(n,r){return this._withRetry(s=>new Promise((i,o)=>{const a=s.transaction([this._storeName],"readwrite");a.objectStore(this._storeName).put(r,n),a.oncomplete=()=>i(),a.onerror=()=>o(a.error),a.onabort=()=>o(a.error)}))}async multiSet(n){return this._withRetry(r=>new Promise((s,i)=>{const o=r.transaction([this._storeName],"readwrite"),a=o.objectStore(this._storeName);for(const[c,u]of n)a.put(u,c);o.oncomplete=()=>s(),o.onerror=()=>i(o.error),o.onabort=()=>i(o.error)}))}async removeItem(n){return this._withRetry(r=>new Promise((s,i)=>{const o=r.transaction([this._storeName],"readwrite");o.objectStore(this._storeName).delete(n),o.oncomplete=()=>s(),o.onerror=()=>i(o.error),o.onabort=()=>i(o.error)}))}async getAllKeys(){return this._withRetry(n=>new Promise((r,s)=>{const a=n.transaction([this._storeName],"readonly").objectStore(this._storeName).getAllKeys();a.onerror=()=>{s(a.error)},a.onsuccess=()=>{r(a.result.filter(c=>typeof c=="string"))}}))}}class or{static async getIsOnline(){return navigator.onLine}static listen(e){const n=()=>{e(!0)},r=()=>{e(!1)};return addEventListener("online",n),addEventListener("offline",r),()=>{removeEventListener("online",n),removeEventListener("offline",r)}}}class Y extends Error{constructor(n,r,s){super(n);h(this,"hint");h(this,"traceId");this.hint=r,s&&(this.traceId=s);const i=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,i),Error.captureStackTrace&&Error.captureStackTrace(this,Y),this.name="InstantError"}get[Symbol.toStringTag](){return"InstantError"}}class We extends Y{constructor(n){var i,o;const r=((i=n.body)==null?void 0:i.message)||`API Error (${n.status})`;super(r,n.body.hint,((o=n.body)==null?void 0:o.traceId)||n.body["trace-id"]);h(this,"body");h(this,"status");const s=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,s),Error.captureStackTrace&&Error.captureStackTrace(this,We),this.name="InstantAPIError",this.status=n.status,this.body=n.body}get[Symbol.toStringTag](){return"InstantAPIError"}}async function fe(t,e){const n=await fetch(t,e),r=await n.json();return n.status===200?Promise.resolve(r):Promise.reject(new We({status:n.status,body:r}))}function wo({apiURI:t,appId:e,email:n}){return fe(`${t}/runtime/auth/send_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,email:n})})}async function mo({apiURI:t,appId:e,email:n,code:r,refreshToken:s,extraFields:i}){return await fe(`${t}/runtime/auth/verify_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,email:n,code:r,...s?{"refresh-token":s}:{},...i?{"extra-fields":i}:{}})})}async function _o({apiURI:t,appId:e,refreshToken:n}){return await fe(`${t}/runtime/auth/verify_refresh_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,"refresh-token":n})})}async function So({apiURI:t,appId:e}){return await fe(`${t}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e})})}async function ar({apiURI:t,appId:e,code:n,codeVerifier:r,refreshToken:s,extraFields:i}){return await fe(`${t}/runtime/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:e,code:n,code_verifier:r,refresh_token:s,...i?{extra_fields:i}:{}})})}async function To({apiURI:t,appId:e,nonce:n,idToken:r,clientName:s,refreshToken:i,extraFields:o}){return await fe(`${t}/runtime/oauth/id_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:e,nonce:n,id_token:r,client_name:s,refresh_token:i,...o?{extra_fields:o}:{}})})}async function vo({apiURI:t,appId:e,refreshToken:n}){return await fe(`${t}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:e,refresh_token:n})})}async function Ao({apiURI:t,appId:e,path:n,file:r,refreshToken:s,contentType:i,contentDisposition:o}){const a={app_id:e,path:n,authorization:`Bearer ${s}`,"content-type":i||r.type};return o&&(a["content-disposition"]=o),await fe(`${t}/storage/upload`,{method:"PUT",headers:a,body:r})}async function ko({apiURI:t,appId:e,path:n,refreshToken:r}){const{data:s}=await fe(`${t}/storage/files?app_id=${e}&filename=${encodeURIComponent(n)}`,{method:"DELETE",headers:{"content-type":"application/json",authorization:`Bearer ${r}`}});return s}async function Oo({apiURI:t,appId:e,fileName:n,refreshToken:r,metadata:s={}}){const{data:i}=await fe(`${t}/storage/signed-upload-url`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${r}`},body:JSON.stringify({app_id:e,filename:n})});return i}async function Io(t,e){return(await fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok}async function Co({apiURI:t,appId:e,path:n,refreshToken:r}){const{data:s}=await fe(`${t}/storage/signed-download-url?app_id=${e}&filename=${encodeURIComponent(n)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${r}`}});return s}let Ht=!1,cr=!1,ur=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(Ht=!!window.localStorage.getItem("devBackend"),cr=!!window.localStorage.getItem("__instantLogging"),ur=!!window.localStorage.getItem("__devtoolLocalDash"));function lr(t,e){if(!e)return t;const n={};return e.forEach(r=>{n[r]=t[r]}),n}function Eo(t,e,n){const r={peers:{}};if(e&&"user"in e?e.user:!0){const i=lr(t.user??{},e==null?void 0:e.keys);r.user={...i,peerId:n}}for(const i of Object.keys(t.peers??{})){const o=(e==null?void 0:e.peers)===void 0,a=Array.isArray(e==null?void 0:e.peers)&&(e==null?void 0:e.peers.includes(i));if(o||a){const c=lr(t.peers[i],e==null?void 0:e.keys);r.peers[i]={...c,peerId:i}}}return r}function Po(t,e){if(t.isLoading!==e.isLoading||t.error!==e.error||(t.user||e.user)&&(!t.user||!e.user||!Tn(t.user,e.user))||!Sn(t.peers,e.peers))return!0;for(const r of Object.keys(t.peers))if(!Tn(t.peers[r],e.peers[r]))return!0;return!1}class fr{constructor(){h(this,"promise");h(this,"_resolve");h(this,"_reject");this.promise=new Promise((e,n)=>{this._resolve=e,this._reject=n})}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}function dr(t,e=[]){t.forEach(n=>{const{data:r}=n,{"datalog-result":s}=r,{"join-rows":i}=s;for(const o of i)for(const a of o)e.push(a);dr(n["child-nodes"],e)})}function hr(t){const e=[];return dr(t,e),e}function pr(t){return Object.values(t.links).reduce((e,n)=>{var r,s;return e[r=n.forward.on]??(e[r]={}),e[n.forward.on][n.forward.label]={isForward:!0,isSingular:n.forward.has==="one",link:n},e[s=n.reverse.on]??(e[s]={}),e[n.reverse.on][n.reverse.label]={isForward:!1,isSingular:n.reverse.has==="one",link:n},e},{})}const Jt="v1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1";function Mo(t,e){return{info:t?(...n)=>console.info(...n,e()):()=>{},debug:t?(...n)=>console.debug(...n,e()):()=>{},error:t?(...n)=>console.error(...n,e()):()=>{}}}class te{constructor(e,n,r,s={indexed:!1,unique:!1}){h(this,"valueType");h(this,"required");h(this,"isIndexed");h(this,"config");h(this,"metadata",{});this.valueType=e,this.required=n,this.isIndexed=r,this.config=s}clientRequired(){return new te(this.valueType,!1,this.isIndexed,this.config)}optional(){return new te(this.valueType,!1,this.isIndexed,this.config)}unique(){return new te(this.valueType,this.required,this.isIndexed,{...this.config,unique:!0})}indexed(){return new te(this.valueType,this.required,!0,{...this.config,indexed:!0})}}class ot{constructor(e,n){h(this,"attrs");h(this,"links");this.attrs=e,this.links=n}asType(){return new ot(this.attrs,this.links)}}class at{constructor(e,n,r){h(this,"entities");h(this,"links");h(this,"rooms");this.entities=e,this.links=n,this.rooms=r}withRoomSchema(){return new at(this.entities,this.links,{})}}class L extends Error{constructor(e,n){const r=n?`At path '${n}': ${e}`:e;super(r),this.name="QueryValidationError"}}const yr=["where","order","limit","last","first","offset","after","afterInclusive","before","beforeInclusive","fields","aggregate"],$o=t=>t.valueType||"unknown",br=(t,e,n=!1)=>{if(n||t==null)return!0;switch(e){case"string":return typeof t=="string";case"number":return typeof t=="number"&&!isNaN(t);case"boolean":return typeof t=="boolean";case"date":return t instanceof Date||typeof t=="string"||typeof t=="number";default:return!0}},jo=(t,e,n,r,s,i,o)=>{const a=i.valueType==="json",c=(u,l,f)=>{if(!br(f,l,a))throw new L(`Invalid value for operator '${u}' on attribute '${r}' in entity '${s}'. Expected ${l}, but received: ${typeof f}`,o)};switch(t){case"in":case"$in":if(!Array.isArray(e))throw new L(`Operator '${t}' for attribute '${r}' in entity '${s}' must be an array, but received: ${typeof e}`,o);for(const u of e)c(t,n,u);break;case"$not":case"$ne":case"$gt":case"$lt":case"$gte":case"$lte":c(t,n,e);break;case"$like":case"$ilike":if(c(t,"string",e),t==="$ilike"&&!i.isIndexed)throw new L(`Operator '${t}' can only be used with indexed attributes, but '${r}' in entity '${s}' is not indexed`,o);break;case"$isNull":c(t,"boolean",e);break;default:throw new L(`Unknown operator '${t}' for attribute '${r}' in entity '${s}'`,o)}},Me=(t,e,n,r,s)=>{const i=$o(n),o=n.valueType==="json";if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(o)return;const c=t;for(const[u,l]of Object.entries(c))jo(u,l,i,e,r,n,`${s}.${u}`)}else if(!br(t,i,o))throw new L(`Invalid value for attribute '${e}' in entity '${r}'. Expected ${i}, but received: ${typeof t}`,s)},Ro=(t,e,n,r,s)=>{const i=t.split(".");if(i.length<2)throw new L(`Invalid dot notation path '${t}'. Must contain at least one dot.`,s);let o=n;for(let l=0;l<i.length-1;l++){const f=i[l],d=r.entities[o];if(!d)throw new L(`Entity '${o}' does not exist in schema while traversing dot notation path '${t}'.`,s);const p=d.links[f];if(!p){const y=Object.keys(d.links);throw new L(`Link '${f}' does not exist on entity '${o}' in dot notation path '${t}'. Available links: ${y.length>0?y.join(", "):"none"}`,s)}o=p.entityName}const a=i[i.length-1],c=r.entities[o];if(!c)throw new L(`Target entity '${o}' does not exist in schema for dot notation path '${t}'.`,s);if(a==="id"){if(typeof e=="string"&&!Ce(e))throw new L(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${e}`,s);Me(e,t,new te("string",!1,!0),n,s);return}const u=c.attrs[a];if(Object.keys(c.links).includes(a)){if(typeof e=="string"&&!Ce(e))throw new L(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${e}`,s);Me(e,t,new te("string",!1,!0),n,s);return}if(!u){const l=Object.keys(c.attrs);throw new L(`Attribute '${a}' does not exist on entity '${o}' in dot notation path '${t}'. Available attributes: ${l.length>0?l.join(", ")+", id":"id"}`,s)}Me(e,t,u,n,s)},gr=(t,e,n,r)=>{for(const[s,i]of Object.entries(t)){if(s==="or"||s==="and"){if(Array.isArray(i))for(const u of i)typeof u=="object"&&u!==null&&gr(u,e,n,`${r}.${s}[${u}]`);continue}if(s==="id"){Me(i,"id",new te("string",!1,!0),e,`${r}.id`);continue}if(s.includes(".")){Ro(s,i,e,n,`${r}.${s}`);continue}const o=n.entities[e];if(!o)continue;const a=o.attrs[s],c=o.links[s];if(!a&&!c){const u=Object.keys(o.attrs),l=Object.keys(o.links);throw new L(`Attribute or link '${s}' does not exist on entity '${e}'. Available attributes: ${u.length>0?u.join(", "):"none"}. Available links: ${l.length>0?l.join(", "):"none"}`,`${r}.${s}`)}if(a)Me(i,s,a,e,`${r}.${s}`);else if(c){if(typeof i=="string"&&!Ce(i))throw new L(`Invalid value for link '${s}' in entity '${e}'. Expected a UUID, but received: ${i}`,`${r}.${s}`);const u=new te("string",!1,!0);Me(i,s,u,e,`${r}.${s}`)}}},Do=(t,e,n,r,s=0)=>{for(const o of Object.keys(t))if(!yr.includes(o))throw new L(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${yr.join(", ")}. Found: ${o}`,r);const i=["offset","before","beforeInclusive","after","afterInclusive","first","last"];for(const o of i)if(t[o]!==void 0&&s>0)throw new L(`'${o}' can only be used on top-level namespaces. It cannot be used in nested queries.`,r);if(t.where&&n){if(typeof t.where!="object"||t.where===null)throw new L(`'where' clause must be an object in entity '${e}', but received: ${typeof t.where}`,r?`${r}.where`:void 0);gr(t.where,e,n,r?`${r}.where`:"where")}},wr=(t,e,n,r,s=0)=>{var i;if(!t||typeof t!="object")throw new L(`Query part for entity '${e}' must be an object, but received: ${typeof t}`,r);for(const o of Object.keys(t))if(o!=="$"){if(n&&!(o in n.entities[e].links)){const c=Object.keys(n.entities[e].links);throw new L(`Link '${o}' does not exist on entity '${e}'. Available links: ${c.length>0?c.join(", "):"none"}`,`${r}.${o}`)}const a=t[o];if(typeof a=="object"&&a!==null){const c=(i=n==null?void 0:n.entities[e].links[o])==null?void 0:i.entityName;c&&wr(a,c,n,`${r}.${o}`,s+1)}}else{const a=t[o];if(typeof a!="object"||a===null)throw new L(`Query parameter '$' must be an object in entity '${e}', but received: ${typeof a}`,`${r}.$`);Do(a,e,n,`${r}.$`,s)}},mr=(t,e)=>{if(typeof t!="object"||t===null)throw new L(`Query must be an object, but received: ${typeof t}${t===null?" (null)":""}`);if(Array.isArray(t))throw new L(`Query must be an object, but received: ${typeof t}`);const n=t;for(const r of Object.keys(n)){if(Array.isArray(t[r]))throw new L(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(typeof r!="string")throw new L(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(r!=="$$ruleParams"){if(e&&!e.entities[r]){const s=Object.keys(e.entities);throw new L(`Entity '${r}' does not exist in schema. Available entities: ${s.length>0?s.join(", "):"none"}`,r)}wr(n[r],r,e,r,0)}}},_r=t=>typeof t!="string"?!1:st(t)?!0:Ce(t);class ce extends Error{constructor(e){super(e),this.name="TransactionValidationError"}}const Sr=t=>t.length>0?t.join(", "):"none",xo=(t,e)=>new ce(`Entity '${t}' does not exist in schema. Available entities: ${Sr(e)}`),Yt={string:t=>typeof t=="string",number:t=>typeof t=="number"&&!isNaN(t),boolean:t=>typeof t=="boolean",date:t=>t instanceof Date||typeof t=="string"||typeof t=="number",json:()=>!0},Uo=(t,e)=>{var n;return t==null?!0:((n=Yt[e.valueType])==null?void 0:n.call(Yt,t))??!1},Tr=(t,e)=>{const n=e.entities[t];if(!n)throw xo(t,Object.keys(e.entities));return n},Zt=(t,e,n)=>{const r=Tr(t,n);if(typeof e!="object"||e===null)throw new ce(`Arguments for data operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[s,i]of Object.entries(e)){if(s==="id")continue;const o=r.attrs[s];if(o&&!Uo(i,o))throw new ce(`Invalid value for attribute '${s}' in entity '${t}'. Expected ${o.valueType}, but received: ${typeof i}`)}},vr=(t,e,n)=>{const r=Tr(t,n);if(typeof e!="object"||e===null)throw new ce(`Arguments for link operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[s,i]of Object.entries(e)){if(!r.links[s]){const a=Object.keys(r.links);throw new ce(`Link '${s}' does not exist on entity '${t}'. Available links: ${Sr(a)}`)}if(i!=null){if(Array.isArray(i)){for(const a of i)if(!_r(a))throw new ce(`Invalid entity ID in link '${s}' for entity '${t}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!_r(i))throw new ce(`Invalid UUID in link '${s}' for entity '${t}'. Expected a UUID, but received: ${i}`)}}},Lo={create:Zt,update:Zt,merge:Zt,link:vr,unlink:vr,delete:()=>{}},Fo=(t,e)=>{if(!e)return;const[n,r,s,i]=t;if(!Array.isArray(s)&&!Ce(s))throw new ce(`Invalid id for entity '${r}'. Expected a UUID, but received: ${s}`);if(typeof r!="string")throw new ce(`Entity name must be a string, but received: ${typeof r}`);const o=Lo[n];o&&i!==void 0&&o(r,i,e)},No=(t,e)=>{const n=Array.isArray(t)?t:[t];for(const r of n){if(!r||typeof r!="object")throw new ce(`Transaction chunk must be an object, but received: ${typeof r}`);if(!Array.isArray(r.__ops))throw new ce(`Transaction chunk must have __ops array, but received: ${typeof r.__ops}`);for(const s of r.__ops){if(!Array.isArray(s))throw new ce(`Transaction operation must be an array, but received: ${typeof s}`);Fo(s,e)}}};let Ar=0;class kr{constructor(e){h(this,"type","ws");h(this,"conn");h(this,"id");h(this,"onopen");h(this,"onmessage");h(this,"onclose");h(this,"onerror");this.id=`${this.type}_${Ar++}`,this.conn=new WebSocket(e),this.conn.onopen=n=>{this.onopen&&this.onopen({target:this})},this.conn.onmessage=n=>{this.onmessage&&this.onmessage({target:this,message:JSON.parse(n.data.toString())})},this.conn.onclose=n=>{this.onclose&&this.onclose({target:this})},this.conn.onerror=n=>{this.onerror&&this.onerror({target:this})}}close(){this.conn.close()}isOpen(){return this.conn.readyState===(WebSocket.OPEN??1)}isConnecting(){return this.conn.readyState===(WebSocket.CONNECTING??0)}send(e){return this.conn.send(JSON.stringify(e))}}class Ko{constructor(e,n,r){h(this,"type","sse");h(this,"initParams",null);h(this,"sendQueue",[]);h(this,"sendPromise");h(this,"closeFired",!1);h(this,"sseInitTimeout");h(this,"ES");h(this,"messageUrl");h(this,"conn");h(this,"url");h(this,"id");h(this,"onopen");h(this,"onmessage");h(this,"onclose");h(this,"onerror");this.id=`${this.type}_${Ar++}`,this.url=n,this.messageUrl=r||this.url,this.ES=e,this.conn=new e(n),this.sseInitTimeout=setTimeout(()=>{this.initParams||this.handleError()},1e4),this.conn.onmessage=s=>{const i=JSON.parse(s.data);if(Array.isArray(i))for(const o of i)this.handleMessage(o);else this.handleMessage(i)},this.conn.onerror=s=>{this.handleError()}}handleMessage(e){if(e.op==="sse-init"){this.initParams={machineId:e["machine-id"],sessionId:e["session-id"],sseToken:e["sse-token"]},this.onopen&&this.onopen({target:this}),clearTimeout(this.sseInitTimeout);return}this.onmessage&&this.onmessage({target:this,message:e})}handleError(){try{this.onerror&&this.onerror({target:this})}finally{this.handleClose()}}handleClose(){this.conn.close(),this.onclose&&!this.closeFired&&(this.closeFired=!0,this.onclose({target:this}))}async postMessages(e){var n,r,s;try{(await fetch(this.messageUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machine_id:(n=this.initParams)==null?void 0:n.machineId,session_id:(r=this.initParams)==null?void 0:r.sessionId,sse_token:(s=this.initParams)==null?void 0:s.sseToken,messages:e})})).ok||this.handleError()}catch{this.handleError()}}async flushQueue(){if(this.sendPromise||!this.sendQueue.length)return;const e=this.sendQueue;this.sendQueue=[];const n=this.postMessages(e);this.sendPromise=n,n.then(()=>{this.sendPromise=null,this.flushQueue()})}send(e){if(!this.isOpen()||!this.initParams)throw this.isConnecting()?new Error("Failed to execute 'send' on 'EventSource': Still in CONNECTING state."):this.conn.readyState===this.ES.CLOSED?new Error("EventSource is already in CLOSING or CLOSED state."):new Error("EventSource is in invalid state.");this.sendQueue.push(e),this.flushQueue()}isOpen(){return this.conn.readyState===this.ES.OPEN&&this.initParams!==null}isConnecting(){return this.conn.readyState===this.ES.CONNECTING||this.conn.readyState===this.ES.OPEN&&this.initParams===null}close(){this.handleClose()}}function qo(t,e){const n=t.values;if(n){const r=Pn(n.attrsStore,null);if(r){for(const s of n.entities||[])s.store.useDateObjects=e,s.store=En(r,s.store);n.attrsStore=r}}return t}function zo(t,e){var n;if(e.values){const r=[];for(const s of(n=e.values)==null?void 0:n.entities){const i=Cn(s.store);r.push({...s,store:i})}return{...e,values:{attrsStore:e.values.attrsStore.toJSON(),entities:r}}}else return e}function Wo(t,e,n){var i,o;const r=(i=e==null?void 0:e.state)==null?void 0:i.txId,s=(o=n==null?void 0:n.state)==null?void 0:o.txId;return r&&(!s||r>s)?e:s&&(!r||s>r)?n:e||n}function Xt(t,e,n){return Jn({store:e,attrsStore:n,pageInfo:null,aggregate:null},t.query).data[t.table][0]}function Or(t,e,n,r){var o;const s=(o=V(n,t.table,"id"))==null?void 0:o.id;if(!s)return-1;const i=Ie(e.eav,[r,s,r]);return i?i[3]:-1}function Ir(t,e,n){for(const{action:r,triple:s}of n)switch(r){case"added":jn(t,e,s);break;case"removed":Mn(t,e,s);break}}function Qo(t,e,n){var s,i;const r={};for(const{action:o,triple:a}of n){const[c,u,l]=a,f=(i=(s=e.getAttr(u))==null?void 0:s["forward-identity"])==null?void 0:i[2];if(!f)continue;const d=r[c]??{};r[c]=d;const p=d[f]??{};switch(o){case"added":p.newValue=l;break;case"removed":p.oldValue===void 0&&(p.oldValue=l);break}d[f]=p}for(const[o,a]of Object.entries(r))for(const[c,{oldValue:u,newValue:l}]of Object.entries(a))u===l&&delete a[c];return r}function ct(t,e){return{[t.table]:e.map(n=>n.entity)}}function Vo(t,e){var r;if(t.orderFieldType)return t.orderFieldType;const n=t.orderField==="serverCreatedAt"?"number":(r=V(e(),t.table,t.orderField))==null?void 0:r["checked-data-type"];return t.orderFieldType=n,n}function Bo(t,e,n){const r=e;if(t.orderField==="serverCreatedAt"){n.sort(t.orderDirection==="asc"?function(o,a){return ze(o.entity.id,o.serverCreatedAt,a.entity.id,a.serverCreatedAt,r)}:function(o,a){return ze(a.entity.id,a.serverCreatedAt,o.entity.id,o.serverCreatedAt,r)});return}const s=t.orderField;n.sort(t.orderDirection==="asc"?function(o,a){return ze(o.entity.id,o.entity[s],a.entity.id,a.entity[s],r)}:function(o,a){return ze(a.entity.id,a.entity[s],o.entity.id,o.entity[s],r)})}R.SyncTableCallbackEventType=void 0,function(t){t.InitialSyncBatch="InitialSyncBatch",t.InitialSyncComplete="InitialSyncComplete",t.LoadFromStorage="LoadFromStorage",t.SyncTransaction="SyncTransaction",t.Error="Error"}(R.SyncTableCallbackEventType||(R.SyncTableCallbackEventType={}));class Go{constructor(e,n,r,s,i,o){h(this,"trySend");h(this,"subs");h(this,"callbacks",{});h(this,"config");h(this,"idToHash",{});h(this,"log");h(this,"createStore");h(this,"getAttrs");this.trySend=e,this.config=r,this.log=s,this.createStore=i,this.getAttrs=o,this.subs=new Gt({persister:n,merge:Wo,serialize:zo,parse:(a,c)=>qo(c,this.config.useDateObjects),objectSize:a=>{var c;return((c=a.values)==null?void 0:c.entities.length)||0},logger:s,gc:{maxAgeMs:1e3*60*60*24*7*52,maxEntries:1e3,maxSize:1e6}})}beforeUnload(){this.subs.flush()}subscribe(e,n){const r=D(e);return this.callbacks[r]=this.callbacks[r]||[],this.callbacks[r].push(n),this.initSubscription(e,r,n),s=>{this.unsubscribe(r,n,s==null?void 0:s.keepSubscription)}}unsubscribe(e,n,r){const s=(this.callbacks[e]||[]).filter(i=>i!==n);if(this.callbacks[e]=s,!s.length){delete this.callbacks[e];const i=this.subs.currentValue[e];i!=null&&i.state&&this.clearSubscriptionData(i.state.subscriptionId,!!r),r||this.subs.updateInPlace(o=>{delete o[e]})}}sendStart(e){this.trySend(K(),{op:"start-sync",q:e})}sendResync(e,n,r){this.idToHash[n.subscriptionId]=e.hash,this.trySend(n.subscriptionId,{op:"resync-table","subscription-id":n.subscriptionId,"tx-id":r,token:n.token})}sendRemove(e,n){this.trySend(K(),{op:"remove-sync","subscription-id":e.subscriptionId,"keep-subscription":n})}async initSubscription(e,n,r){var u,l,f,d;await this.subs.waitForKeyToLoad(n);const s=this.subs.currentValue[n];if(s&&s.state&&s.state.txId){this.sendResync(s,s.state,s.state.txId),(u=s.values)!=null&&u.entities&&r&&r({type:R.SyncTableCallbackEventType.LoadFromStorage,data:ct(s,(l=s.values)==null?void 0:l.entities)});return}const i=Object.keys(e)[0],o=((d=(f=e[i])==null?void 0:f.$)==null?void 0:d.order)||{serverCreatedAt:"asc"},[a,c]=Object.entries(o)[0];this.subs.updateInPlace(p=>{p[n]={query:e,hash:n,table:i,orderDirection:c,orderField:a,createdAt:Date.now(),updatedAt:Date.now()}}),this.sendStart(e)}async flushPending(){for(const e of Object.keys(this.callbacks)){await this.subs.waitForKeyToLoad(e);const n=this.subs.currentValue[e];n?await this.initSubscription(n.query,n.hash):this.log.error("Missing sub for hash in flushPending",e)}}onStartSyncOk(e){const n=e["subscription-id"],r=e.q,s=D(r);this.idToHash[n]=s,this.subs.updateInPlace(i=>{const o=i[s];if(!o)return this.log.error("Missing sub for hash",s,"subscription-id",n,"query",r),i;o.state={subscriptionId:n,token:e.token}})}notifyCbs(e,n){for(const r of this.callbacks[e]||[])r(n)}onSyncLoadBatch(e){const n=e["subscription-id"],r=e["join-rows"],s=this.idToHash[n];if(!s){this.log.error("Missing hash for subscription",e);return}const i=[],o=this.subs.currentValue[s];if(!o){this.log.error("Missing sub for hash",s,e);return}const a=o.values??{entities:[],attrsStore:this.getAttrs()};o.values=a;const c=a.entities;for(const u of r){const l=this.createStore(u),f=Xt(o,l,a.attrsStore);c.push({store:l,entity:f,serverCreatedAt:Or(o,l,a.attrsStore,f.id)}),i.push(f)}this.subs.updateInPlace(u=>{u[s]=o,u[s].updatedAt=Date.now()}),o.values&&this.notifyCbs(s,{type:R.SyncTableCallbackEventType.InitialSyncBatch,data:ct(o,o.values.entities),batch:i})}onSyncInitFinish(e){var i;const n=e["subscription-id"],r=this.idToHash[n];if(!r){this.log.error("Missing hash for subscription",e);return}this.subs.updateInPlace(o=>{const a=o[r];if(!a){this.log.error("Missing sub for hash",r,e);return}const c=a.state;if(!c)return this.log.error("Sub never set init, missing result",a,e),o;c.txId=e["tx-id"],a.updatedAt=Date.now()});const s=this.subs.currentValue[r];s&&this.notifyCbs(r,{type:R.SyncTableCallbackEventType.InitialSyncComplete,data:ct(s,((i=s.values)==null?void 0:i.entities)||[])})}onSyncUpdateTriples(e){var o;const n=e["subscription-id"],r=this.idToHash[n];if(!r){this.log.error("Missing hash for subscription",e);return}const s=this.subs.currentValue[r];if(!s){this.log.error("Missing sub for hash",r,e);return}const i=s.state;if(!i){this.log.error("Missing state for sub",s,e);return}for(const a of e.txes){if(i.txId&&i.txId>=a["tx-id"])continue;i.txId=a["tx-id"];const c=[],u={};for(const g of a.changes){const m=u[g.triple[0]]??[];u[g.triple[0]]=m,m.push(g)}const l=s.values??{entities:[],attrsStore:this.getAttrs()},f=l.entities;s.values=l;const d=[];e:for(const[g,m]of Object.entries(u))for(let w=0;w<f.length;w++){const _=f[w];if(Os(_.store,g)){Ir(_.store,l.attrsStore,m);const I=Xt(s,_.store,l.attrsStore),S=Qo(_.store,l.attrsStore,m)[g];I?(d.push({oldEntity:_.entity,newEntity:I,changedFields:S||{}}),_.entity=I):c.push(w),delete u[g];continue e}}const p=[];for(const[g,m]of Object.entries(u)){const w=this.createStore([]);Ir(w,l.attrsStore,m);const _=Xt(s,w,l.attrsStore);if(!_){this.log.error("No entity found after applying change",{sub:s,changes:m,store:w});continue}f.push({store:w,entity:_,serverCreatedAt:Or(s,w,l.attrsStore,_.id)}),p.push(_)}const y=[];for(const g of c.sort().reverse())y.push(f[g].entity),f.splice(g,1);const b=Vo(s,this.getAttrs);Bo(s,b,f),this.notifyCbs(r,{type:R.SyncTableCallbackEventType.SyncTransaction,data:ct(s,(o=s.values)==null?void 0:o.entities),added:p,removed:y,updated:d})}this.subs.updateInPlace(a=>{a[r]=s,a[r].updatedAt=Date.now()})}clearSubscriptionData(e,n){const r=this.idToHash[e];if(r){delete this.idToHash[e];const s=this.subs.currentValue[r];if(s.state&&this.sendRemove(s.state,n),n?this.subs.unloadKey(r):this.subs.updateInPlace(i=>{delete i[r]}),s)return s}}onStartSyncError(e){const n=D(e["original-event"].q),r={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa.",status:e.status,type:e.type,hint:e.hint},s=Object.keys(e["original-event"].q)[0];this.notifyCbs(n,{type:R.SyncTableCallbackEventType.Error,data:{[s]:[]},error:r})}onResyncError(e){const n=e["original-event"]["subscription-id"],r=this.clearSubscriptionData(n,!1);r&&this.initSubscription(r.query,r.hash)}}function Ho({WStream:t,opts:e,startStream:n,appendStream:r,registerStream:s}){const i=e.clientId;let o=null,a=null,c=null;const u=K();let l=!1,f=!1;const d=[],p=[],y=[];let b=!1,g=0,m=0;const w=[],_=new TextEncoder;function I(){f=!0;for(const T of d)T(a??void 0)}function S(T){return d.push(T),f&&T(a??void 0),()=>{const v=d.indexOf(T);v!==-1&&d.splice(v,1)}}function M(T){return y.push(T),()=>{const v=y.indexOf(T);v!==-1&&y.splice(v,1)}}e.waitUntil&&e.waitUntil(new Promise(T=>{y.push(T)}));function O(){for(const T of y)try{T()}catch{}}function k(T){return p.push(T),o&&T(o),()=>{const v=p.indexOf(T);v!==-1&&p.splice(v,1)}}function z(T){o=T;for(const v of p)v(o)}function x(){b=!0}function q(T){let v=g,U=0,Q=0;for(const{byteLen:B}of w){const ae=v+B;if(ae>T)break;v=ae,U++,Q+=B}U>0&&(g+=Q,m-=Q,w.splice(0,U))}function N(T,v){a=v,I(),T.error(v),O()}async function J(){const T=await n({clientId:i,reconnectToken:u,ruleParams:e.ruleParams});switch(T.type){case"ok":{const{streamId:v,offset:U}=T;o=v,q(U),w.length&&r({streamId:v,chunks:w.map(Q=>Q.chunk),offset:g}),b=!1;break}case"disconnect":{x();break}case"error":{c&&N(c,T.error);break}}}function W(){x(),J()}function A({offset:T,done:v}){q(T),v&&(l=!0,O())}function P(T){return l?(N(T,new Y("Stream has been closed.")),null):o||(N(T,new Y("Stream has not been initialized.")),null)}async function C(T){c=T;let v=!0,U=0;for(;v;){let Q=Date.now()+Math.min(15e3,500*(U-1));v=!1;const B=await n({clientId:e.clientId,reconnectToken:u,ruleParams:e.ruleParams});switch(B.type){case"ok":{const{streamId:ae,offset:un}=B;if(un!==0){const ke=new Y("Write stream is corrupted");N(T,ke);return}z(ae),s(ae,{onDisconnect:x,onFlush:A,onConnectionReconnect:J,onAppendFailed:W}),b=!1;return}case"disconnect":{v=!0,x(),U++,await new Promise(ae=>{setTimeout(ae,Math.max(0,Q-Date.now()))});break}case"error":{N(T,B.error);return}}}}class $ extends t{constructor(v,U){super(v,U)}async streamId(){return o||new Promise((v,U)=>{const Q=[],B=()=>{for(const ke of Q)ke()},ae=ke=>{v(ke),B()},un=ke=>{U(ke||new Y("Stream is closed.")),B()};Q.push(k(ae)),Q.push(S(un))})}}return{stream:new $({async start(T){try{await C(T)}catch(v){N(T,v)}},write(T,v){const U=P(v);if(U){const Q=_.encode(T).length;w.push({chunk:T,byteLen:Q});const B=g+m;m+=Q,b||r({streamId:U,chunks:[T],offset:B})}},close(){o?r({streamId:o,chunks:[],offset:g+m,isDone:!0}):O(),I()},abort(T){o?r({streamId:o,chunks:[],offset:g+m,isDone:!0,abortReason:T}):O(),I()}}),addCompleteCb:M,closed(){return f}}}class Jo{constructor(){h(this,"items",[]);h(this,"resolvers",[]);h(this,"isClosed",!1)}push(e){if(this.isClosed)return;const n=this.resolvers.shift();n?n({value:e,done:!1}):this.items.push(e)}close(){for(this.isClosed=!0;this.resolvers.length>0;)this.resolvers.shift()({value:void 0,done:!0})}async*[Symbol.asyncIterator](){for(;;)if(this.items.length>0)yield this.items.shift();else{if(this.isClosed)return;{const{value:e,done:n}=await new Promise(r=>{this.resolvers.push(r)});if(n||!e)return;yield e}}}}function Yo({RStream:t,opts:e,startStream:n,cancelStream:r}){let s=e.byteOffset||0,i=!1;const o=new TextDecoder("utf-8"),a=new TextEncoder;let c,u=!1;const l=[],f=[];let d=null,p=null;function y(O){u=!0;for(const k of l)k(O)}function b(O){return l.push(O),()=>{const k=l.indexOf(O);k!==-1&&l.splice(k,1)}}function g(O){return f.push(O),d&&O(d),()=>{const k=f.indexOf(O);k!==-1&&f.splice(k,1)}}function m(O,k){p=k,O.error(k),y(k)}let w=0;async function _(O,k){c=K();const z={...O||{},eventId:c};for await(const x of n(z)){if(i)return;if(x.type==="reconnect")return{retry:!0};if(x.type==="error"){m(k,x.error);return}if(x.offset>s){m(k,new Y("Stream is corrupted.")),i=!0;return}d=x.streamId;for(const N of f)N(d);let q=s-x.offset;if(x.files&&x.files.length){const N=new AbortController;let J=fetch(x.files[0].url,{signal:N.signal});for(let W=0;W<x.files.length;W++){const A=x.files[W+1],C=await J;if(A&&(J=fetch(A.url,{signal:N.signal})),!C.ok){if(w++,w>10){m(k,new Y("Unable to process stream."));return}return{retry:!0}}if(C.body){const $=C.body.getReader();try{for(;;){const{done:j,value:T}=await $.read();if(j)break;if(i){N.abort();return}let v=T;if(q>0&&(v=T.subarray(q),q-=T.length-v.length),!v.length)continue;s+=v.length;const U=o.decode(v);k.enqueue(U)}}finally{$.releaseLock()}}else{const $=await C.arrayBuffer();let j=$;if(i){N.abort();return}if(q>0&&(j=new Uint8Array($).subarray(q),q-=$.byteLength-j.length),!j.byteLength)continue;s+=j.byteLength;const T=o.decode(j);k.enqueue(T)}}}if(w=0,x.content){let N=x.content,J=a.encode(x.content);if(q>0){const W=J.subarray(q);if(q-=J.length-W.length,!W.length)continue;J=W,N=o.decode(W)}s+=J.length,k.enqueue(N)}}}async function I(O){let k=!0,z=0;for(;k;){k=!1;let x=Date.now()+Math.min(15e3,500*(z-1));const q=await _({...e,offset:s},O);q!=null&&q.retry&&(k=!0,z++,x<Date.now()-3e5&&(z=0),await new Promise(N=>{setTimeout(N,Math.max(0,x-Date.now()))}))}!i&&!u&&(O.close(),y())}class S extends t{constructor(k,z){super(k,z)}async streamId(){if(d)return d;if(p)throw p;return new Promise((k,z)=>{const x=[],q=()=>{for(const W of x)W()},N=W=>{k(W),q()},J=W=>{z(W||new Y("Stream is closed.")),q()};x.push(g(N)),x.push(b(J))})}}return{stream:new S({start(O){I(O)},cancel(O){i=!0,c&&r({eventId:c}),y()}}),addCloseCb:b,closed(){return u}}}class Zo{constructor({WStream:e,RStream:n,trySend:r,log:s}){h(this,"trySend");h(this,"WStream");h(this,"RStream");h(this,"writeStreams",{});h(this,"startWriteStreamCbs",{});h(this,"readStreamIterators",{});h(this,"log");h(this,"activeStreams",new Set);this.WStream=e,this.RStream=n,this.trySend=r,this.log=s}createWriteStream(e){const{stream:n,addCompleteCb:r}=Ho({WStream:this.WStream,startStream:this.startWriteStream.bind(this),appendStream:this.appendStream.bind(this),registerStream:this.registerWriteStream.bind(this),opts:e});return this.activeStreams.add(n),r(()=>{this.activeStreams.delete(n)}),n}createReadStream(e){const{stream:n,addCloseCb:r}=Yo({RStream:this.RStream,opts:e,startStream:this.startReadStream.bind(this),cancelStream:this.cancelReadStream.bind(this)});return this.activeStreams.add(n),r(()=>{this.activeStreams.delete(n)}),n}startWriteStream(e){const n=K();let r=null;const s=new Promise(o=>{r=o});this.startWriteStreamCbs[n]=r;const i={op:"start-stream","client-id":e.clientId,"reconnect-token":e.reconnectToken};return e.ruleParams&&(i["rule-params"]=e.ruleParams),this.trySend(n,i),s}registerWriteStream(e,n){this.writeStreams[e]=n}appendStream({streamId:e,chunks:n,isDone:r,offset:s,abortReason:i}){const o={op:"append-stream","stream-id":e,chunks:n,offset:s,done:!!r};i&&(o["abort-reason"]=i),this.trySend(K(),o)}onAppendFailed(e){const n=this.writeStreams[e["stream-id"]];n&&n.onAppendFailed()}onStartStreamOk(e){const n=this.startWriteStreamCbs[e["client-event-id"]];if(!n){this.log.info("No stream for start-stream-ok",e);return}n({type:"ok",streamId:e["stream-id"],offset:e.offset}),delete this.startWriteStreamCbs[e["client-event-id"]]}onStreamFlushed(e){const n=e["stream-id"],r=this.writeStreams[n];if(!r){this.log.info("No stream cbs for stream-flushed",e);return}r.onFlush({offset:e.offset,done:e.done}),e.done&&delete this.writeStreams[n]}startReadStream({eventId:e,clientId:n,streamId:r,offset:s,ruleParams:i}){const o={op:"subscribe-stream"};if(!r&&!n)throw new Error("Must provide one of streamId or clientId to subscribe to the stream.");r&&(o["stream-id"]=r),n&&(o["client-id"]=n),s&&(o.offset=s),i&&(o["rule-params"]=i);const a=new Jo;return this.readStreamIterators[e]=a,this.trySend(e,o),a}cancelReadStream({eventId:e}){const n={op:"unsubscribe-stream","subscribe-event-id":e};this.trySend(K(),n),delete this.readStreamIterators[e]}onStreamAppend(e){const n=e["client-event-id"],r=this.readStreamIterators[n];if(!r){this.log.info("No iterator for read stream",e);return}if(e.error){e.retry?r.push({type:"reconnect"}):r.push({type:"error",error:new Y(e.error)}),r.close(),delete this.readStreamIterators[n];return}r.push({type:"append",offset:e.offset,files:e.files,content:e.content,streamId:e["stream-id"]}),e.done&&(r.close(),delete this.readStreamIterators[n])}onConnectionStatusChange(e){for(const n of Object.values(this.startWriteStreamCbs))n({type:"disconnect"});if(this.startWriteStreamCbs={},e!==he.AUTHENTICATED)for(const{onDisconnect:n}of Object.values(this.writeStreams))n();else{for(const{onConnectionReconnect:n}of Object.values(this.writeStreams))n();for(const n of Object.values(this.readStreamIterators))n.push({type:"reconnect"}),n.close();this.readStreamIterators={}}}onRecieveError(e){const n=e["original-event"];switch(n.op){case"append-stream":{const r=n["stream-id"],s=this.writeStreams[r];s==null||s.onAppendFailed();break}case"start-stream":{const r=e["client-event-id"],s=this.startWriteStreamCbs[r];s&&(s({type:"error",error:new Y(e.message||"Unknown error",e.hint)}),delete this.startWriteStreamCbs[r]);break}case"subscribe-stream":{const r=e["client-event-id"],s=this.readStreamIterators[r];s&&(s.push({type:"error",error:new Y(e.message||"Unknown error",e.hint)}),s.close(),delete this.readStreamIterators[r]);break}}}hasActiveStreams(){return this.activeStreams.size>0}}const he={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},Xo=3e4,ea=3e4,ta=200,na=1e3*60,ra={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},en="_instant_oauth_redirect",tn="_instant_extra_fields_id",ut="oauthExtraFields",$e="currentUser";function sa({transportType:t,appId:e,apiURI:n,wsURI:r,EventSourceImpl:s}){if(!s)return new kr(`${r}?app_id=${e}`);switch(t){case"ws":return new kr(`${r}?app_id=${e}`);case"sse":return new Ko(s,`${n}/runtime/sse?app_id=${e}`);default:throw new Error("Unknown transport type "+t)}}function ia(){return typeof window<"u"||typeof chrome<"u"}const Cr={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function oa(t,e){var r;const n=typeof t=="string"?JSON.parse(t):t;if((r=n==null?void 0:n.result)!=null&&r.store){const s=Pn(n.result.attrsStore,n.result.store);if(s){const i=n.result.store;n.result.store=En(s,{...i,useDateObjects:e}),n.result.attrsStore=s}}return n}function aa(t,e){const{result:n,...r}=e,s=r;if(n){const i={...n,store:Cn(n.store),attrsStore:n.attrsStore.toJSON()};s.result=i}return s}function ca(t,e){switch(t){case"pendingMutations":return new Map(typeof e=="string"?JSON.parse(e):e);default:return e}}function ua(t,e){switch(t){case"pendingMutations":return[...e.entries()];default:return e}}function la(t,e,n){const r=e==null?void 0:e.result,s=n==null?void 0:n.result;return r&&!s&&n&&(n.result=r),n||e}function nn(t){return[...t].sort((e,n)=>{const[r,s]=e,[i,o]=n,a=s.order||0,c=o.order||0;return a==c?r<i?-1:r>i?1:0:a-c})}class fa{constructor(e,n=ir,r=or,s,i){h(this,"attrs");h(this,"_isOnline",!0);h(this,"_isShutdown",!1);h(this,"status",he.CONNECTING);h(this,"querySubs");h(this,"kv");h(this,"_syncTable");h(this,"_instantStream");h(this,"queryCbs",{});h(this,"queryOnceDfds",{});h(this,"authCbs",[]);h(this,"attrsCbs",[]);h(this,"mutationErrorCbs",[]);h(this,"connectionStatusCbs",[]);h(this,"config");h(this,"mutationDeferredStore",new Map);h(this,"_reconnectTimeoutId",null);h(this,"_reconnectTimeoutMs",0);h(this,"_transport");h(this,"_transportType","ws");h(this,"_EventSource");h(this,"_wsOk",null);h(this,"_localIdPromises",{});h(this,"_errorMessage",null);h(this,"_oauthCallbackResponse",null);h(this,"_linkIndex",null);h(this,"_broadcastChannel");h(this,"_rooms",{});h(this,"_roomsPendingLeave",{});h(this,"_presence",{});h(this,"_broadcastQueue",[]);h(this,"_broadcastSubs",{});h(this,"_currentUserCached",{isLoading:!0,error:void 0,user:void 0});h(this,"_beforeUnloadCbs",[]);h(this,"_dataForQueryCache",{});h(this,"_log");h(this,"_pendingTxCleanupTimeout");h(this,"_pendingMutationCleanupThreshold");h(this,"_inFlightMutationEventIds",new Set);h(this,"_frameworkClient",null);h(this,"_onMergeKv",(e,n,r)=>{switch(e){case"pendingMutations":{const s=(n==null?void 0:n.entries())??[],i=(r==null?void 0:r.entries())??[],o=new Map([...s,...i]);return(n?this._rewriteMutationsSorted(this.attrs,n):[]).forEach(([c,u])=>{var l;!((l=r==null?void 0:r.pendingMutations)!=null&&l.has(c))&&!u["tx-id"]&&this._sendMutation(c,u)}),o}default:return r||n}});h(this,"getPreviousResult",e=>{var r;const n=D(e);return(r=this.dataForQuery(n))==null?void 0:r.data});h(this,"notifyOne",e=>{var i;const n=this.queryCbs[e]??[],r=(i=this._dataForQueryCache[e])==null?void 0:i.data,s=this.dataForQuery(e);s!=null&&s.data&&(this._dataForQueryCache[e]=s,!Ze(s.data,r)&&n.forEach(o=>o.cb(s.data)))});h(this,"notifyOneQueryOnce",e=>{var s;const n=this.queryOnceDfds[e]??[],r=(s=this.dataForQuery(e))==null?void 0:s.data;n.forEach(i=>{this._completeQueryOnce(i.q,e,i.dfd),i.dfd.resolve(r)})});h(this,"notifyQueryError",(e,n)=>{(this.queryCbs[e]||[]).forEach(s=>s.cb({error:n}))});h(this,"pushTx",e=>{this.config.disableValidation||No(e,this.config.schema);try{const n=lo({attrsStore:this.optimisticAttrs(),schema:this.config.schema,stores:Object.values(this.querySubs.currentValue).map(r=>{var s;return(s=r==null?void 0:r.result)==null?void 0:s.store}),useDateObjects:this.config.useDateObjects},e);return this.pushOps(n)}catch(n){return this.pushOps([],n)}});h(this,"pushOps",(e,n)=>{const r=K(),s=[...this._pendingMutations().values()],i=Math.max(0,...s.map(c=>c.order||0))+1,o={op:"transact","tx-steps":e,created:Date.now(),error:n,order:i};this._updatePendingMutations(c=>{c.set(r,o)});const a=new fr;return this.mutationDeferredStore.set(r,a),this._sendMutation(r,o),this.notifyAll(),a.promise});h(this,"_transportOnOpen",e=>{const n=e.target;if(this._transport!==n){this._log.info("[socket][open]",n.id,"skip; this is no longer the current transport");return}this._log.info("[socket][open]",this._transport.id),this._setStatus(he.OPENED),this.getCurrentUser().then(r=>{var s;this._trySend(K(),{op:"init","app-id":this.config.appId,"refresh-token":(s=r.user)==null?void 0:s.refresh_token,versions:this.versions,"__admin-token":this.config.__adminToken})}).catch(r=>{this._log.error("[socket][error]",n.id,r)})});h(this,"_transportOnMessage",e=>{const n=e.target,r=e.message;if(this._transport!==n){this._log.info("[socket][message]",n.id,r,"skip; this is no longer the current transport");return}if(!this._wsOk&&n.type==="ws"&&(this._wsOk=!0),this._transportType="ws",Array.isArray(e.message))for(const s of e.message)this._handleReceive(n.id,s);else this._handleReceive(n.id,e.message)});h(this,"_transportOnError",e=>{const n=e.target;if(this._transport!==n){this._log.info("[socket][error]",n.id,"skip; this is no longer the current transport");return}this._log.error("[socket][error]",n.id,e)});h(this,"_scheduleReconnect",()=>{!this._wsOk&&this._transportType!=="sse"&&(this._transportType="sse",this._reconnectTimeoutMs=0),setTimeout(()=>{if(this._reconnectTimeoutMs=Math.min(this._reconnectTimeoutMs+1e3,1e4),!this._isOnline){this._log.info("[socket][close]",this._transport.id,"we are offline, no need to start socket");return}this._startSocket()},this._reconnectTimeoutMs)});h(this,"_transportOnClose",e=>{const n=e.target;if(this._transport!==n){this._log.info("[socket][close]",n.id,"skip; this is no longer the current transport");return}this._setStatus(he.CLOSED);for(const r of Object.values(this._rooms))r.isConnected=!1;if(this._isShutdown){this._log.info("[socket][close]",n.id,"Reactor has been shut down and will not reconnect");return}this._log.info("[socket][close]",n.id,"schedule reconnect, ms =",this._reconnectTimeoutMs),this._scheduleReconnect()});if(this._EventSource=i,this.config={...ra,...e},this.queryCacheLimit=this.config.queryCacheLimit??10,this._pendingTxCleanupTimeout=this.config.pendingTxCleanupTimeout??ea,this._pendingMutationCleanupThreshold=this.config.pendingMutationCleanupThreshold??ta,this._log=Mo(e.verbose||Ht||cr,()=>this._reactorStats()),this.versions={...s||{},"@instantdb/core":Jt},this.config.schema&&(this._linkIndex=pr(this.config.schema)),!!ia()){if(!e.appId)throw new Error("Instant must be initialized with an appId.");if(!Ce(e.appId))throw new Error(`Instant must be initialized with a valid appId. \`${e.appId}\` is not a valid uuid.`);typeof BroadcastChannel=="function"&&(this._broadcastChannel=new BroadcastChannel("@instantdb"),this._broadcastChannel.addEventListener("message",async o=>{var a;try{if(((a=o.data)==null?void 0:a.type)==="auth"){const c=await this.getCurrentUser({forceReadFromStorage:!0});await this.updateUser(c.user).catch(u=>{this._log.error("[error] update user",u)})}}catch(c){this._log.error("[error] handle broadcast channel",c)}})),this._initStorage(n),this._syncTable=new Go(this._trySendAuthed.bind(this),new n(this.config.appId,"syncSubs"),{useDateObjects:this.config.useDateObjects},this._log,o=>Ne(this.ensureAttrs(),o,this.config.enableCardinalityInference,this.config.useDateObjects),()=>this.ensureAttrs()),this._instantStream=new Zo({WStream:this.config.WritableStream||WritableStream,RStream:this.config.ReadableStream||ReadableStream,trySend:this._trySendAuthed.bind(this),log:this._log}),this._oauthCallbackResponse=this._oauthLoginInit(),this.getCurrentUser().then(o=>{this.syncUserToEndpoint(o.user)}),setInterval(async()=>{const o=await this.getCurrentUser();this.syncUserToEndpoint(o.user)},na),r.getIsOnline().then(o=>{this._isOnline=o,this._startSocket(),r.listen(a=>{a!==this._isOnline&&(this._log.info("[network] online =",a),this._isOnline=a,this._isOnline?this._startSocket():(this._log.info("Changing status from",this.status,"to",he.CLOSED),this._setStatus(he.CLOSED)))})}),typeof addEventListener<"u"&&(this._beforeUnload=this._beforeUnload.bind(this),addEventListener("beforeunload",this._beforeUnload))}}getFrameworkClient(){return this._frameworkClient}setFrameworkClient(e){this._frameworkClient=e}ensureAttrs(){if(!this.attrs)throw new Error("attrs have not loaded.");return this.attrs}updateSchema(e){this.config={...this.config,schema:e,cardinalityInference:!!e},this._linkIndex=e?pr(this.config.schema):null}_reactorStats(){return{inFlightMutationCount:this._inFlightMutationEventIds.size,storedMutationCount:this._pendingMutations().size,transportType:this._transportType}}_onQuerySubLoaded(e){this.kv.waitForKeyToLoad("pendingMutations").then(()=>this.notifyOne(e))}_initStorage(e){this.querySubs=new Gt({persister:new e(this.config.appId,"querySubs"),merge:la,serialize:aa,parse:(n,r)=>oa(r,this.config.useDateObjects),objectSize:n=>{var r,s,i;return((i=(s=(r=n==null?void 0:n.result)==null?void 0:r.store)==null?void 0:s.triples)==null?void 0:i.length)??0},logger:this._log,preloadEntryCount:10,gc:{maxAgeMs:1e3*60*60*24*7*52,maxEntries:1e3,maxSize:1e6}}),this.querySubs.onKeyLoaded=n=>this._onQuerySubLoaded(n),this.kv=new Gt({persister:new e(this.config.appId,"kv"),merge:this._onMergeKv,serialize:ua,parse:ca,objectSize:()=>0,logger:this._log,saveThrottleMs:100,idleCallbackMaxWaitMs:100,gc:null}),this.kv.onKeyLoaded=n=>{n==="pendingMutations"&&this.notifyAll()},this.kv.waitForKeyToLoad("pendingMutations"),this.kv.waitForKeyToLoad($e),this._beforeUnloadCbs.push(()=>{this.kv.flush(),this.querySubs.flush()})}_beforeUnload(){for(const e of this._beforeUnloadCbs)e();this._syncTable.beforeUnload()}_finishTransaction(e,n,r){const s=this.mutationDeferredStore.get(n);this.mutationDeferredStore.delete(n);const i=e!=="error"&&e!=="timeout";if(!s&&!i&&console.error("Mutation failed",{status:e,eventId:n,...r}),!!s)if(i)s.resolve({status:e,eventId:n});else if(r!=null&&r.type){const{status:o,...a}=r;s.reject(new We({body:a,status:o??0}))}else s.reject(new Y((r==null?void 0:r.message)||"Unknown error",r==null?void 0:r.hint,r==null?void 0:r.traceId))}_setStatus(e,n){this.status=e,this._errorMessage=n,this.notifyConnectionStatusSubs(e),this._instantStream.onConnectionStatusChange(e)}_flushEnqueuedRoomData(e){var s,i;const n=(i=(s=this._presence[e])==null?void 0:s.result)==null?void 0:i.user,r=this._broadcastQueue[e];if(this._broadcastQueue[e]=[],n&&this._trySetPresence(e,n),r)for(const o of r){const{topic:a,roomType:c,data:u}=o;this._tryBroadcast(e,c,a,u)}}_addQueryData(e,n,r){if(!this.attrs)throw new Error("Attrs in reactor have not been set");const s=D(e),i=this.ensureAttrs(),o=Ne(this.attrs,n.triples,r,this.config.useDateObjects);this.querySubs.updateInPlace(a=>{a[s]={result:{store:o,attrsStore:i,pageInfo:n.pageInfo,processedTxId:void 0,isExternal:!0},q:e}}),this._cleanupPendingMutationsQueries(),this.notifyOne(s),this.notifyOneQueryOnce(s),this._cleanupPendingMutationsTimeout()}_handleReceive(e,n){var s,i,o,a,c,u,l;const r=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(Cr[n.op]||this._log.info("[receive]",e,n.op,n),n.op){case"init-ok":{this._setStatus(he.AUTHENTICATED),this._reconnectTimeoutMs=0,this._setAttrs(n.attrs),this._flushPendingMessages(),this._sessionId=n["session-id"];for(const p of Object.keys(this._rooms)){const y=(i=(s=this._presence[p])==null?void 0:s.result)==null?void 0:i.user,b=(o=this._rooms[p])==null?void 0:o.roomType;this._tryJoinRoom(b,p,y)}break}case"add-query-exists":{this.notifyOneQueryOnce(D(n.q));break}case"add-query-ok":{const{q:p,result:y}=n,b=D(p);if(!this._hasQueryListeners()&&!this.querySubs.currentValue[b])break;const g=(c=(a=y==null?void 0:y[0])==null?void 0:a.data)==null?void 0:c["page-info"],m=(l=(u=y==null?void 0:y[0])==null?void 0:u.data)==null?void 0:l.aggregate,w=hr(y),_=this.ensureAttrs(),I=Ne(_,w,r,this.config.useDateObjects);this.querySubs.updateInPlace(S=>{if(!S[b]){this._log.info("Missing value in querySubs",{hash:b,q:p});return}S[b].result={store:I,attrsStore:_,pageInfo:g,aggregate:m,processedTxId:n["processed-tx-id"]}}),this._cleanupPendingMutationsQueries(),this.notifyOne(b),this.notifyOneQueryOnce(b),this._cleanupPendingMutationsTimeout();break}case"start-sync-ok":{this._syncTable.onStartSyncOk(n);break}case"sync-load-batch":{this._syncTable.onSyncLoadBatch(n);break}case"sync-init-finish":{this._syncTable.onSyncInitFinish(n);break}case"sync-update-triples":{this._syncTable.onSyncUpdateTriples(n);break}case"start-stream-ok":{this._instantStream.onStartStreamOk(n);break}case"stream-flushed":{this._instantStream.onStreamFlushed(n);break}case"append-failed":{this._instantStream.onAppendFailed(n);break}case"stream-append":{this._instantStream.onStreamAppend(n);break}case"refresh-ok":{const{computations:p,attrs:y}=n,b=n["processed-tx-id"];y&&this._setAttrs(y),this._cleanupPendingMutationsTimeout();const g=this._rewriteMutations(this.ensureAttrs(),this._pendingMutations(),b);g!==this._pendingMutations()&&this.kv.updateInPlace(_=>{_.pendingMutations=g});const m=nn(g.entries()),w=p.map(_=>{var W,A,P,C;const I=_["instaql-query"],S=_["instaql-result"],M=D(I),O=hr(S),k=this.ensureAttrs(),z=Ne(k,O,r,this.config.useDateObjects),{store:x,attrsStore:q}=this._applyOptimisticUpdates(z,k,m,b),N=(A=(W=S==null?void 0:S[0])==null?void 0:W.data)==null?void 0:A["page-info"],J=(C=(P=S==null?void 0:S[0])==null?void 0:P.data)==null?void 0:C.aggregate;return{q:I,hash:M,store:x,attrsStore:q,pageInfo:N,aggregate:J}});w.forEach(({hash:_,q:I,store:S,attrsStore:M,pageInfo:O,aggregate:k})=>{this.querySubs.updateInPlace(z=>{if(!z[_]){this._log.error("Missing value in querySubs",{hash:_,q:I});return}z[_].result={store:S,attrsStore:M,pageInfo:O,aggregate:k,processedTxId:b}})}),this._cleanupPendingMutationsQueries(),w.forEach(({hash:_})=>{this.notifyOne(_)});break}case"transact-ok":{const{"client-event-id":p,"tx-id":y}=n;this._inFlightMutationEventIds.delete(p);const g=this._rewriteMutations(this.ensureAttrs(),this._pendingMutations()).get(p);if(!g)break;this._updatePendingMutations(w=>{w.set(p,{...w.get(p),"tx-id":y,confirmed:Date.now()})});const m=[];for(const w of g["tx-steps"])if(w[0]==="add-attr"){const _=w[1];m.push(_)}if(m.length){const w=Object.values(this.ensureAttrs().attrs);this._setAttrs([...w,...m])}this._finishTransaction("synced",p),this._cleanupPendingMutationsTimeout();break}case"patch-presence":{const p=n["room-id"];this._trySetRoomConnected(p,!0),this._patchPresencePeers(p,n.edits),this._notifyPresenceSubs(p);break}case"refresh-presence":{const p=n["room-id"];this._trySetRoomConnected(p,!0),this._setPresencePeers(p,n.data),this._notifyPresenceSubs(p);break}case"server-broadcast":{const p=n["room-id"],y=n.topic;this._trySetRoomConnected(p,!0),this._notifyBroadcastSubs(p,y,n);break}case"join-room-ok":{const p=n["room-id"];if(!this._rooms[p]){this._roomsPendingLeave[p]&&(this._tryLeaveRoom(p),delete this._roomsPendingLeave[p]);break}this._trySetRoomConnected(p,!0),this._flushEnqueuedRoomData(p);break}case"leave-room-ok":{const p=n["room-id"];this._trySetRoomConnected(p,!1);break}case"join-room-error":const f=n["room-id"],d=this._rooms[f];d&&(d.error=n.error),this._notifyPresenceSubs(f);break;case"error":this._handleReceiveError(n);break;default:this._log.info("Unknown op",n.op,n);break}}createWriteStream(e){return this._instantStream.createWriteStream(e)}createReadStream(e){return this._instantStream.createReadStream(e)}_pendingMutations(){return this.kv.currentValue.pendingMutations??new Map}_updatePendingMutations(e){this.kv.updateInPlace(n=>{const r=n.pendingMutations??new Map;n.pendingMutations=r,e(r)})}_handleMutationError(e,n,r){const s=this._pendingMutations().get(n);if(s&&(e!=="timeout"||!s["tx-id"])){this._updatePendingMutations(o=>(o.delete(n),o)),this._inFlightMutationEventIds.delete(n);const i={message:r.message,hint:r.hint,traceId:r.traceId};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(i),this._finishTransaction(e,n,r)}}_handleReceiveError(e){var a,c,u,l,f,d,p,y;console.log("error",e);const n=e["client-event-id"];this._inFlightMutationEventIds.delete(n);const r=this._pendingMutations().get(n),s={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(e.hint&&(s.hint=e.hint),e["trace-id"]||(a=e["original-event"])!=null&&a["trace-id"]){const g=[e["trace-id"],(c=e["original-event"])==null?void 0:c["trace-id"]].filter(Boolean).join(",");s.traceId=g}if(r){this._handleMutationError("error",n,s);return}if((u=e["original-event"])!=null&&u.hasOwnProperty("q")&&((l=e["original-event"])==null?void 0:l.op)==="add-query"){const b=(f=e["original-event"])==null?void 0:f.q,g=D(b);this.notifyQueryError(D(b),s),this.notifyQueryOnceError(b,g,n,s);return}if(((d=e["original-event"])==null?void 0:d.op)==="init"){if(e.type==="record-not-found"&&((p=e.hint)==null?void 0:p["record-type"])==="app-user"){this.changeCurrentUser(null);return}this._setStatus(he.ERRORED,s),this.notifyAll();return}switch((y=e["original-event"])==null?void 0:y.op){case"resync-table":{this._syncTable.onResyncError(e);return}case"start-sync":{this._syncTable.onStartSyncError(e);return}case"start-stream":case"append-stream":case"subscribe-stream":case"unsubscribe-stream":{this._instantStream.onRecieveError(e);return}}const o={...e};delete o.message,delete o.hint,console.error(e.message,o),e.hint&&console.error(`This error comes with some debugging information. Here it is:
|
|
2
|
+
`,e.hint)}notifyQueryOnceError(e,n,r,s){var o;const i=(o=this.queryOnceDfds[n])==null?void 0:o.find(a=>a.eventId===r);i&&(i.dfd.reject(s),this._completeQueryOnce(e,n,i.dfd))}_setAttrs(e){this.attrs=new Te(e.reduce((n,r)=>(n[r.id]=r,n),{}),this._linkIndex),this.notifyAttrsSubs()}_startQuerySub(e,n){const r=K();return this.querySubs.updateInPlace(s=>{s[n]=s[n]||{q:e,result:null,eventId:r},s[n].lastAccessed=Date.now()}),this._trySendAuthed(r,{op:"add-query",q:e}),r}subscribeTable(e,n){return this._syncTable.subscribe(e,n)}subscribeQuery(e,n,r){this.config.disableValidation||mr(e,this.config.schema),r&&"ruleParams"in r&&(e={$$ruleParams:r.ruleParams,...e});const s=D(e),i=this.getPreviousResult(e);return i&&n(i),this.queryCbs[s]=this.queryCbs[s]??[],this.queryCbs[s].push({q:e,cb:n}),this._startQuerySub(e,s),()=>{this._unsubQuery(e,s,n)}}queryOnce(e,n){this.config.disableValidation||mr(e,this.config.schema),n&&"ruleParams"in n&&(e={$$ruleParams:n.ruleParams,...e});const r=new fr;if(!this._isOnline)return r.reject(new Error("We can't run `queryOnce`, because the device is offline.")),r.promise;if(!this.querySubs)return r.reject(new Error("We can't run `queryOnce` on the backend. Use adminAPI.query instead: https://www.instantdb.com/docs/backend#query")),r.promise;const s=D(e),i=this._startQuerySub(e,s);return this.queryOnceDfds[s]=this.queryOnceDfds[s]??[],this.queryOnceDfds[s].push({q:e,dfd:r,eventId:i}),setTimeout(()=>r.reject(new Error("Query timed out")),Xo),r.promise}_completeQueryOnce(e,n,r){this.queryOnceDfds[n]&&(this.queryOnceDfds[n]=this.queryOnceDfds[n].filter(s=>s.dfd!==r),this._cleanupQuery(e,n))}_unsubQuery(e,n,r){this.queryCbs[n]&&(this.queryCbs[n]=this.queryCbs[n].filter(s=>s.cb!==r),this._cleanupQuery(e,n))}_hasQueryListeners(e){var n,r;return!!((n=this.queryCbs[e])!=null&&n.length||(r=this.queryOnceDfds[e])!=null&&r.length)}_cleanupQuery(e,n){this._hasQueryListeners(n)||(delete this.queryCbs[n],delete this.queryOnceDfds[n],delete this._dataForQueryCache[n],this.querySubs.unloadKey(n),this._trySendAuthed(K(),{op:"remove-query",q:e}))}_rewriteMutations(e,n,r){if(!e)return n;if(!n)return new Map;const s=l=>{const[f,d,p]=l["forward-identity"];return V(e,d,p)},i=l=>{const[f,d,p]=l["forward-identity"];return ve(e,d,p)},o={attrIdMap:{},refSwapAttrIds:new Set};let a=!1;const c=(l,f)=>{const d=[];for(const p of l){const[y]=p;if(y==="add-attr"){const[g,m]=p,w=s(m);if(w&&m.id!==w.id){o.attrIdMap[m.id]=w.id,a=!0;continue}if(m["value-type"]==="ref"){const _=i(m);if(_){o.attrIdMap[m.id]=_.id,o.refSwapAttrIds.add(m.id),a=!0;continue}}}if(r&&f&&r>=f&&y==="add-attr"||y==="update-attr"||y==="delete-attr"){a=!0;continue}const b=a?Fi(o,p):p;d.push(b)}return a?d:l},u=new Map;for(const[l,f]of n.entries())u.set(l,{...f,"tx-steps":c(f["tx-steps"],f["tx-id"])});return a?u:n}_rewriteMutationsSorted(e,n){return nn(this._rewriteMutations(e,n).entries())}optimisticAttrs(){var i,o;const e=[...this._pendingMutations().values()].flatMap(a=>a["tx-steps"]),n=new Set(e.filter(([a,c])=>a==="delete-attr").map(([a,c])=>c)),r=[];for(const[a,c]of e)if(a==="add-attr")r.push(c);else if(a==="update-attr"&&c.id&&((i=this.attrs)!=null&&i.getAttr(c.id))){const u={...this.attrs.getAttr(c.id),...c};r.push(u)}if(!n.size&&!r.length)return this.attrs||new Te({},this._linkIndex);const s={...((o=this.attrs)==null?void 0:o.attrs)||{}};for(const a of r)s[a.id]=a;for(const a of n)delete s[a];return new Te(s,this._linkIndex)}dataForQuery(e,n=!0){const r=this._errorMessage;if(r)return{error:r};if(!this.querySubs||!this.kv.currentValue.pendingMutations)return;const s=this.querySubs.version(),i=this.querySubs.currentValue,o=this.kv.version(),a=this._pendingMutations(),{q:c,result:u}=i[e]||{};if(!u)return;const l=this._dataForQueryCache[e];if(l&&s===l.querySubVersion&&o===l.pendingMutationsVersion)return l;let f=u.store,d=u.attrsStore;const{pageInfo:p,aggregate:y,processedTxId:b}=u,g=this._rewriteMutationsSorted(d,a);if(n){const w=this._applyOptimisticUpdates(f,d,g,b);f=w.store,d=w.attrsStore}return{data:Jn({store:f,attrsStore:d,pageInfo:p,aggregate:y},c),querySubVersion:s,pendingMutationsVersion:o}}_applyOptimisticUpdates(e,n,r,s){for(const[i,o]of r)if(!o["tx-id"]||s&&o["tx-id"]>s){const a=Ls(e,n,o["tx-steps"]);e=a.store,n=a.attrsStore}return{store:e,attrsStore:n}}notifyAll(){Object.keys(this.queryCbs).forEach(e=>{this.querySubs.waitForKeyToLoad(e).then(()=>this.notifyOne(e)).catch(()=>this.notifyOne(e))})}loadedNotifyAll(){this.kv.waitForKeyToLoad("pendingMutations").then(()=>this.notifyAll()).catch(()=>this.notifyAll())}shutdown(){var e;this._log.info("[shutdown]",this.config.appId),this._isShutdown=!0,(e=this._transport)==null||e.close()}_sendMutation(e,n){if(n.error){this._handleMutationError("error",e,{message:n.error.message});return}if(this.status!==he.AUTHENTICATED){this._finishTransaction("enqueued",e);return}const r=Math.max(6e3,Math.min(this._inFlightMutationEventIds.size+1,this._pendingMutations().size+1)*6e3);this._isOnline?(this._trySend(e,n),setTimeout(()=>{this._isOnline&&this._handleMutationError("timeout",e,{message:"transaction timed out"})},r)):this._finishTransaction("enqueued",e)}_flushPendingMessages(){Object.keys(this.queryCbs).map(i=>this.querySubs.currentValue[i]).filter(i=>i).forEach(({eventId:i,q:o})=>{this._trySendAuthed(i,{op:"add-query",q:o})}),Object.values(this.queryOnceDfds).flat().forEach(({eventId:i,q:o})=>{this._trySendAuthed(i,{op:"add-query",q:o})});const r=this._rewriteMutations(this.ensureAttrs(),this._pendingMutations());r!==this._pendingMutations()&&this.kv.updateInPlace(i=>{i.pendingMutations=r}),nn(r.entries()).forEach(([i,o])=>{o["tx-id"]||this._sendMutation(i,o)}),this._syncTable.flushPending()}_cleanupPendingMutationsQueries(){let e=Number.MAX_SAFE_INTEGER;for(const{result:n}of Object.values(this.querySubs.currentValue))n!=null&&n.processedTxId&&(e=Math.min(e,n==null?void 0:n.processedTxId));this._updatePendingMutations(n=>{for(const[r,s]of Array.from(n.entries()))s["tx-id"]&&s["tx-id"]<=e&&n.delete(r)})}_cleanupPendingMutationsTimeout(){if(this._pendingMutations().size<this._pendingMutationCleanupThreshold)return;const e=Date.now();this._updatePendingMutations(n=>{for(const[r,s]of Array.from(n.entries()))s.confirmed&&s.confirmed+this._pendingTxCleanupTimeout<e&&n.delete(r)})}_trySendAuthed(...e){this.status===he.AUTHENTICATED&&this._trySend(...e)}_trySend(e,n,r){if(this._transport.isOpen()){switch(Cr[n.op]||this._log.info("[send]",this._transport.id,n.op,{"client-event-id":e,...n}),n.op){case"transact":{this._inFlightMutationEventIds.add(e);break}case"init":this._inFlightMutationEventIds.clear()}this._transport.send({"client-event-id":e,...n})}}_startSocket(){if(this._wsOk=null,this._isShutdown){this._log.info("[socket][start]",this.config.appId,"Reactor has been shut down and will not start a new socket");return}if(this._transport&&this._transport.isConnecting()){this._log.info("[socket][start]",this._transport.id,"maintained as current transport, we were still in a connecting state");return}const e=this._transport;this._transport=sa({transportType:this._transportType,appId:this.config.appId,apiURI:this.config.apiURI,wsURI:this.config.websocketURI,EventSourceImpl:this._EventSource}),this._transport.onopen=this._transportOnOpen,this._transport.onmessage=this._transportOnMessage,this._transport.onclose=this._transportOnClose,this._transport.onerror=this._transportOnError,this._log.info("[socket][start]",this._transport.id),e!=null&&e.isOpen()&&(this._log.info("[socket][start]",this._transport.id,"close previous transport id = ",e.id),e.close())}async getLocalId(e){const n=`localToken_${e}`;if(this.kv.currentValue[n])return this.kv.currentValue[n];const r=await this.kv.waitForKeyToLoad(n);if(r)return r;const s=K();return this.kv.updateInPlace(i=>{i[n]||(i[n]=s)}),await this.kv.waitForKeyToLoad(n)}_replaceUrlAfterOAuth(){if(typeof URL>"u")return;const e=new URL(window.location.href);if(e.searchParams.get(en)){const n=e.toString();e.searchParams.delete(en),e.searchParams.delete(tn),e.searchParams.delete("code"),e.searchParams.delete("error");const r=e.pathname+(e.searchParams.size?"?"+e.searchParams:"")+e.hash;if(history.replaceState(history.state,"",r),typeof navigation=="object"&&typeof navigation.addEventListener=="function"&&typeof navigation.removeEventListener=="function"){let s=!1;const i=o=>{var a;s||(s=!0,navigation.removeEventListener("navigate",i),!o.userInitiated&&o.navigationType==="replace"&&((a=o.destination)==null?void 0:a.url)===n&&history.replaceState(history.state,"",r))};navigation.addEventListener("navigate",i)}}}async _oauthLoginInit(){var i,o,a,c;if(typeof window>"u"||typeof window.location>"u"||typeof URLSearchParams>"u")return null;const e=new URLSearchParams(window.location.search);if(!e.get(en))return null;const n=e.get("error");if(n)return this._replaceUrlAfterOAuth(),{error:{message:n}};const r=e.get("code");if(!r)return null;const s=e.get(tn);this._replaceUrlAfterOAuth();try{let u;const l=await this.kv.waitForKeyToLoad(ut);s&&l&&(u=l[s]),l&&this.kv.updateInPlace(y=>{delete y[ut]});const f=await this._getCurrentUser(),d=(f==null?void 0:f.type)==="guest",{user:p}=await ar({apiURI:this.config.apiURI,appId:this.config.appId,code:r,refreshToken:d?f.refresh_token:void 0,extraFields:u});return this.setCurrentUser(p),null}catch(u){return((i=u==null?void 0:u.body)==null?void 0:i.type)==="record-not-found"&&((a=(o=u==null?void 0:u.body)==null?void 0:o.hint)==null?void 0:a["record-type"])==="app-oauth-code"&&await this._hasCurrentUser()?null:{error:{message:((c=u==null?void 0:u.body)==null?void 0:c.message)||"Error logging in."}}}}async _waitForOAuthCallbackResponse(){return await this._oauthCallbackResponse}__subscribeMutationErrors(e){return this.mutationErrorCbs.push(e),()=>{this.mutationErrorCbs=this.mutationErrorCbs.filter(n=>n!==e)}}subscribeAuth(e){this.authCbs.push(e);const n=this._currentUserCached;n.isLoading||e(this._currentUserCached);let r=!1;return this.getCurrentUser().then(s=>{r||Ze(s,n)||e(s)}),()=>{r=!0,this.authCbs=this.authCbs.filter(s=>s!==e)}}async getAuth(){const{user:e,error:n}=await this.getCurrentUser();if(n)throw new Y("Could not get current user: "+n.message);return e??null}subscribeConnectionStatus(e){return this.connectionStatusCbs.push(e),()=>{this.connectionStatusCbs=this.connectionStatusCbs.filter(n=>n!==e)}}subscribeAttrs(e){return this.attrsCbs.push(e),this.attrs&&e(this.attrs.attrs),()=>{this.attrsCbs=this.attrsCbs.filter(n=>n!==e)}}notifyAuthSubs(e){this.authCbs.forEach(n=>n(e))}notifyMutationErrorSubs(e){this.mutationErrorCbs.forEach(n=>n(e))}notifyAttrsSubs(){if(!this.attrs)return;const e=this.optimisticAttrs();this.attrsCbs.forEach(n=>n(e.attrs))}notifyConnectionStatusSubs(e){this.connectionStatusCbs.forEach(n=>n(e))}async setCurrentUser(e){this.kv.updateInPlace(n=>{n[$e]=e}),await this.kv.waitForKeyToLoad($e)}getCurrentUserCached(){return this._currentUserCached}async _getCurrentUser(e){e!=null&&e.forceReadFromStorage&&await this.kv.unloadKey($e);const n=await this.kv.waitForKeyToLoad($e);return typeof n=="string"?JSON.parse(n):n}async getCurrentUser(e){const n=await this._waitForOAuthCallbackResponse();if(n!=null&&n.error){const r={error:n.error,user:void 0};return this._currentUserCached={isLoading:!1,...r},this._currentUserCached}try{const s={user:await this._getCurrentUser(e),error:void 0};return this._currentUserCached={isLoading:!1,...s},this._currentUserCached}catch(r){return{user:void 0,isLoading:!1,error:{message:(r==null?void 0:r.message)||"Error loading user"}}}}async _hasCurrentUser(){const e=await this.kv.waitForKeyToLoad($e);return typeof e=="string"?JSON.parse(e)!=null:e!=null}async changeCurrentUser(e){var r;const{user:n}=await this.getCurrentUser();if(!Ze(n,e)){this._frameworkClient=null,await this.setCurrentUser(e),await this.updateUser(e);try{await this.kv.flush(),(r=this._broadcastChannel)==null||r.postMessage({type:"auth"})}catch(s){console.error("Error posting message to broadcast channel",s)}}}async syncUserToEndpoint(e){if(this.config.firstPartyPath)try{await fetch(this.config.firstPartyPath+"/",{method:"POST",body:JSON.stringify({type:"sync-user",appId:this.config.appId,user:e}),headers:{"Content-Type":"application/json"}})}catch(n){this._log.error("Error syncing user with external endpoint",n)}}async updateUser(e){try{await this.syncUserToEndpoint(e)}catch(r){this._log.error("Error syncing user with external endpoint",r)}const n={error:void 0,user:e};this._currentUserCached={isLoading:!1,...n},this._dataForQueryCache={},this.querySubs.updateInPlace(r=>{Object.keys(r).forEach(s=>{delete r[s].result})}),this.querySubs.clearUnloadedKeys(),this._updatePendingMutations(r=>{for(const[s,i]of r.entries())this.mutationDeferredStore.get(s)&&this._finishTransaction("error",s,{message:"User changed while transaction was in progress.",type:"user-changed"});r.clear()}),this._reconnectTimeoutMs=0,this._transport.close(),this._oauthCallbackResponse=null,this.notifyAuthSubs(n)}sendMagicCode({email:e}){return wo({apiURI:this.config.apiURI,appId:this.config.appId,email:e})}async signInWithMagicCode(e){var i,o;const n=await this.getCurrentUser(),r=((i=n==null?void 0:n.user)==null?void 0:i.type)==="guest",s=await mo({apiURI:this.config.apiURI,appId:this.config.appId,email:e.email,code:e.code,refreshToken:r?(o=n==null?void 0:n.user)==null?void 0:o.refresh_token:void 0,extraFields:e.extraFields});return await this.changeCurrentUser(s.user),s}async signInWithCustomToken(e){const n=await _o({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:e});return await this.changeCurrentUser(n.user),n}async signInAsGuest(){const e=await So({apiURI:this.config.apiURI,appId:this.config.appId});return await this.changeCurrentUser(e.user),e}potentiallyInvalidateToken(e,n){var i;const r=(i=e==null?void 0:e.user)==null?void 0:i.refresh_token;if(!r)return;if(n.invalidateToken===!1){this._log.info("[auth-invalidate] skipped invalidateToken");return}vo({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:r}).then(()=>{this._log.info("[auth-invalidate] completed invalidateToken")}).catch(o=>{})}async signOut(e){const n=await this.getCurrentUser();this.potentiallyInvalidateToken(n,e),await this.changeCurrentUser(null)}createAuthorizationURL({clientName:e,redirectURL:n,extraFields:r}){const{apiURI:s,appId:i}=this.config;let o=n;if(r){const a=`${Math.random().toString(36).slice(2)}`;this.kv.updateInPlace(c=>{const u=c[ut]||{};u[a]=r,c[ut]=u}),o=`${n}${n.includes("?")?"&":"?"}${tn}=${a}`}return`${s}/runtime/oauth/start?app_id=${i}&client_name=${e}&redirect_uri=${encodeURIComponent(o)}`}async exchangeCodeForToken({code:e,codeVerifier:n,extraFields:r}){var a,c;const s=await this.getCurrentUser(),i=((a=s==null?void 0:s.user)==null?void 0:a.type)==="guest",o=await ar({apiURI:this.config.apiURI,appId:this.config.appId,code:e,codeVerifier:n,refreshToken:i?(c=s==null?void 0:s.user)==null?void 0:c.refresh_token:void 0,extraFields:r});return await this.changeCurrentUser(o.user),o}issuerURI(){const{apiURI:e,appId:n}=this.config;return`${e}/runtime/${n}`}async signInWithIdToken(e){var i;const n=await this.getCurrentUser(),r=(i=n==null?void 0:n.user)==null?void 0:i.refresh_token,s=await To({apiURI:this.config.apiURI,appId:this.config.appId,idToken:e.idToken,clientName:e.clientName,nonce:e.nonce,refreshToken:r,extraFields:e.extraFields});return await this.changeCurrentUser(s.user),s}joinRoom(e,n,r){let s=!1;this._rooms[n]||(s=!0,this._rooms[n]={roomType:e,isConnected:!1,error:void 0}),this._presence[n]=this._presence[n]||{};const i=this._presence[n].result;return r&&!i&&(this._presence[n].result=this._presence[n].result||{},this._presence[n].result.user=r,this._notifyPresenceSubs(n)),s&&this._tryJoinRoom(e,n,r),()=>{this._cleanupRoom(n)}}_cleanupRoom(e){var n,r,s;if(!((r=(n=this._presence[e])==null?void 0:n.handlers)!=null&&r.length)&&!Object.keys(this._broadcastSubs[e]??{}).length){const i=(s=this._rooms[e])==null?void 0:s.isConnected;delete this._rooms[e],delete this._presence[e],delete this._broadcastSubs[e],i?this._tryLeaveRoom(e):this._roomsPendingLeave[e]=!0}}getPresence(e,n,r={}){const s=this._rooms[n],i=this._presence[n];return!s||!i||!i.result?null:{...Eo(i.result,r,this._sessionId),isLoading:!s.isConnected,error:s.error}}publishPresence(e,n,r){const s=this._rooms[n],i=this._presence[n];if(!s||!i)return;i.result=i.result||{};const o={...i.result.user,...r};i.result.user=o,s.isConnected&&(this._trySetPresence(n,o),this._notifyPresenceSubs(n))}_trySetPresence(e,n){this._trySendAuthed(K(),{op:"set-presence","room-id":e,data:n})}_tryJoinRoom(e,n,r){this._trySendAuthed(K(),{op:"join-room","room-type":e,"room-id":n,data:r}),delete this._roomsPendingLeave[n]}_tryLeaveRoom(e){this._trySendAuthed(K(),{op:"leave-room","room-id":e})}_trySetRoomConnected(e,n){const r=this._rooms[e];r&&(r.isConnected=n)}subscribePresence(e,n,r,s){const i=this.joinRoom(e,n,r.initialPresence||r.initialData),o={...r,roomId:n,cb:s,prev:null};return this._presence[n]=this._presence[n]||{},this._presence[n].handlers=this._presence[n].handlers||[],this._presence[n].handlers.push(o),this._notifyPresenceSub(n,o),()=>{var a,c;this._presence[n].handlers=((c=(a=this._presence[n])==null?void 0:a.handlers)==null?void 0:c.filter(u=>u!==o))??[],i()}}_notifyPresenceSubs(e){var n,r;(r=(n=this._presence[e])==null?void 0:n.handlers)==null||r.forEach(s=>{this._notifyPresenceSub(e,s)})}_notifyPresenceSub(e,n){const r=this.getPresence("",e,n);r&&(n.prev&&!Po(r,n.prev)||(n.prev=r,n.cb(r)))}_patchPresencePeers(e,n){var o,a,c;const r=((a=(o=this._presence[e])==null?void 0:o.result)==null?void 0:a.peers)||{};let s=Object.fromEntries(Object.entries(r).map(([u,l])=>[u,{data:l}]));(c=this._presence[e])==null||c.result;const i=Ye(s,u=>{for(let[l,f,d]of n)switch(f){case"+":os(u,l,d);break;case"r":An(u,l,d);break;case"-":kn(u,l);break}delete u[this._sessionId]});this._setPresencePeers(e,i)}_setPresencePeers(e,n){const r={...n};delete r[this._sessionId];const s=Object.fromEntries(Object.entries(r).map(([i,o])=>[i,o.data]));this._presence=Ye(this._presence,i=>{An(i,[e,"result","peers"],s)})}publishTopic({roomType:e,roomId:n,topic:r,data:s}){const i=this._rooms[n];if(i){if(!i.isConnected){this._broadcastQueue[n]=this._broadcastQueue[n]??[],this._broadcastQueue[n].push({topic:r,roomType:e,data:s});return}this._tryBroadcast(n,e,r,s)}}_tryBroadcast(e,n,r,s){this._trySendAuthed(K(),{op:"client-broadcast","room-id":e,roomType:n,topic:r,data:s})}subscribeTopic(e,n,r,s){const i=this.joinRoom(e,n);return this._broadcastSubs[n]=this._broadcastSubs[n]||{},this._broadcastSubs[n][r]=this._broadcastSubs[n][r]||[],this._broadcastSubs[n][r].push(s),this._presence[n]=this._presence[n]||{},()=>{this._broadcastSubs[n][r]=this._broadcastSubs[n][r].filter(o=>o!==s),this._broadcastSubs[n][r].length||delete this._broadcastSubs[n][r],i()}}_notifyBroadcastSubs(e,n,r){var s,i,o;(o=(i=(s=this._broadcastSubs)==null?void 0:s[e])==null?void 0:i[n])==null||o.forEach(a=>{var l,f,d,p,y,b;const c=(l=r.data)==null?void 0:l.data,u=r.data["peer-id"]===this._sessionId?(d=(f=this._presence[e])==null?void 0:f.result)==null?void 0:d.user:(b=(y=(p=this._presence[e])==null?void 0:p.result)==null?void 0:y.peers)==null?void 0:b[r.data["peer-id"]];return a(c,u)})}async uploadFile(e,n,r){var o;const s=await this.getCurrentUser(),i=(o=s==null?void 0:s.user)==null?void 0:o.refresh_token;return Ao({...r,apiURI:this.config.apiURI,appId:this.config.appId,path:e,file:n,refreshToken:i})}async deleteFile(e){var i;const n=await this.getCurrentUser(),r=(i=n==null?void 0:n.user)==null?void 0:i.refresh_token;return await ko({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:r})}async upload(e,n){var c;const r=await this.getCurrentUser(),s=(c=r==null?void 0:r.user)==null?void 0:c.refresh_token,i=e||n.name,o=await Oo({apiURI:this.config.apiURI,appId:this.config.appId,fileName:i,refreshToken:s});return await Io(o,n)}async getDownloadUrl(e){var i;const n=await this.getCurrentUser(),r=(i=n==null?void 0:n.user)==null?void 0:i.refresh_token;return await Co({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:r})}}function da(t,e){return new at(Er(t,e),e,void 0)}function ha(t){return new ot(t,{})}function pa(){return new te("string",!0,!1)}function ya(){return new te("number",!0,!1)}function ba(){return new te("boolean",!0,!1)}function ga(){return new te("date",!0,!1)}function wa(){return new te("json",!0,!1)}function ma(){return new te("json",!0,!1)}function Er(t,e){var s,i,o,a;const n={fwd:{},rev:{}};for(const c of Object.values(e))(s=n.fwd)[i=c.forward.on]||(s[i]={}),(o=n.rev)[a=c.reverse.on]||(o[a]={}),n.fwd[c.forward.on][c.forward.label]={entityName:c.reverse.on,cardinality:c.forward.has},n.rev[c.reverse.on][c.reverse.label]={entityName:c.forward.on,cardinality:c.reverse.has};return Object.fromEntries(Object.entries(t).map(([c,u])=>[c,new ot(u.attrs,{...n.fwd[c],...n.rev[c]})]))}function _a({entities:t,links:e,rooms:n}){const r=e??{},s=n??{};return new at(Er(t,r),r,s)}const Sa={graph:da,schema:_a,entity:ha,string:pa,number:ya,boolean:ba,date:ga,json:wa,any:ma};let lt;function Ta(t,e){lt==null||lt.dispose();const n=Ca(e),r=ka(e,a),s=Aa(va(t));function i(l){var f;l.source===s.element.contentWindow&&((f=l.data)==null?void 0:f.type)==="close"&&n.isVisible()&&a()}function o(l){const f=l.shiftKey&&l.ctrlKey&&l.code==="Digit0",d=l.key==="Escape"||l.key==="Esc";(f||d&&n.isVisible())&&a()}function a(){n.isVisible()?n.element.style.display="none":(n.element.style.display="block",n.element.contains(s.element)||n.element.appendChild(s.element))}function c(){n.element.remove(),r.element.remove(),removeEventListener("keydown",o),removeEventListener("message",i)}function u(){document.body.appendChild(n.element),document.body.appendChild(r.element),addEventListener("keydown",o),addEventListener("message",i),lt={dispose:c}}return u()}function va(t){return`${Ht||ur?"http://localhost:3000":"https://instantdb.com"}/_devtool?appId=${t}`}function Aa(t){const e=document.createElement("iframe");return e.src=t,e.className="instant-devtool-iframe",Object.assign(e.style,{width:"100%",height:"100%",backgroundColor:"white",border:"none"}),{element:e}}function ka(t,e){const n=`
|
|
3
3
|
<svg width="32" height="32" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
4
4
|
<rect width="512" height="512" fill="black"/>
|
|
5
5
|
<rect x="97.0973" y="91.3297" width="140" height="330" fill="white"/>
|
|
6
6
|
</svg>
|
|
7
|
-
`,r=document.createElement("button");return r.innerHTML=n,r.className="instant-devtool-toggler",Object.assign(r.style,{position:"fixed",...Oa(t.position),height:"32px",width:"32px",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"9010",padding:"0",margin:"0",border:"none",cursor:"pointer"}),r.addEventListener("click",e),{element:r}}function Oa(t){switch(t){case"bottom-left":return{bottom:"24px",left:"24px"};case"bottom-right":return{bottom:"24px",right:"24px"};case"top-right":return{top:"24px",right:"24px"};case"top-left":return{top:"24px",left:"24px"}}}function Ia(t){switch(t){case"bottom-left":return{bottom:"24px",right:"24px",left:"60px",top:"72px"};case"bottom-right":return{bottom:"24px",left:"24px",right:"60px",top:"72px"};case"top-right":return{top:"24px",left:"24px",right:"60px",bottom:"72px"};case"top-left":return{top:"24px",right:"24px",left:"60px",bottom:"72px"}}}function Ca(t){const e=document.createElement("div");Object.assign(e.style,{position:"fixed",...Ia(t.position),display:"block",borderRadius:"4px",border:"1px #ccc solid",boxShadow:"0px 0px 8px #00000044",backgroundColor:"#eee",zIndex:"999990"}),e.style.display="none",e.className="instant-devtool-container";function n(){return e.style.display!=="none"}return{element:e,isVisible:n}}function Ea(t,e){return e&&e.refresh_token?new Response(JSON.stringify({ok:!0}),{headers:{"Content-Type":"application/json","Set-Cookie":`instant_user_${t.appId}=${encodeURIComponent(JSON.stringify(e))}; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=604800`}}):new Response(JSON.stringify({ok:!0}),{headers:{"Content-Type":"application/json","Set-Cookie":`instant_user_${t.appId}=; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=-1`}})}function ft(t,e){return new Response(JSON.stringify({ok:!1,error:e}),{status:t,headers:{"Content-Type":"application/json"}})}const Pa=t=>({POST:async e=>{let n;try{n=await e.json()}catch{return ft(400,"Invalid JSON body")}if(!n.type)return ft(400,'Missing "type" field');if(n.appId!==t.appId)return ft(403,"App ID mismatch");switch(n.type){case"sync-user":return Ea(t,n.user??null);default:return ft(400,`Unknown type: ${n.type}`)}}});function Qe(t,e){if(!t)throw new Error("[assertion error] "+e)}const Ma=t=>JSON.stringify(t),Ve=(t,e=!1)=>JSON.stringify([t,e]),Pr=t=>{const[e,n]=JSON.parse(t);return{cursor:e,afterInclusive:n}},je=(t,e,n=!1)=>`${t}:${Ve(e,n)}`,$a=t=>!!t.endCursor,ja=t=>{var n;const e=Array.from(t.values());return e.length===0?!1:((n=e[e.length-1])==null?void 0:n.hasMore)||!1},Mr=t=>{if(!t)return{serverCreatedAt:"asc"};const e=Object.keys(t).at(0);return e?{[e]:t[e]==="asc"?"desc":"asc"}:{serverCreatedAt:"asc"}},$r=t=>t&&Object.keys(t).length>0?t:{serverCreatedAt:"asc"},Ra=(t,e)=>{const n=[...Array.from(e.values()).slice().reverse(),...Array.from(t.values())],r=[...Array.from(e.values()).slice().reverse().flatMap(s=>s.data.slice().reverse()),...Array.from(t.values()).flatMap(s=>s.data)];return{chunks:n,data:r}},rn=["bootstrap","bootstrap","bootstrap",1],Da=(t,e,n,r)=>{var q,N,J,W;const{entityName:s,entityQuery:i}=jr(e),o=((q=i.$)==null?void 0:q.limit)||10,a=s,c=$r((N=i.$)==null?void 0:N.order),u=new Map,l=new Map,f=new Map;let d=!1,p=!0,y=null,b=null;const g=A=>{n({error:A,data:void 0,canLoadNextPage:!1})},_=()=>{if(!p)return;const{chunks:A,data:P}=Ra(u,l);n({data:{[a]:P},chunks:A,canLoadNextPage:ja(u)})},w=(A,P)=>{u.set(Ve(A,P.afterInclusive),P),_()},m=(A,P)=>{l.set(Ve(A),P),k(),_()},I=(A,P)=>{var T,v;const{cursor:C}=Pr(A),$=f.get(je("reverse",C));$==null||$();const j=t.subscribeQuery({[a]:{...i,$:{after:C,before:P.endCursor,beforeInclusive:!0,where:(T=i.$)==null?void 0:T.where,fields:(v=i.$)==null?void 0:v.fields,order:Mr(c)}}},U=>{if(U.error)return g(U.error);const Q=U.data[a],B=U.pageInfo[a];Qe(Q&&B,"Expected query subscription to contain rows and pageInfo"),m(C,{data:Q,status:"frozen",hasMore:B.hasNextPage,endCursor:B.endCursor})},r);f.set(je("reverse",C),j)},S=A=>{var C,$;const P=t.subscribeQuery({[a]:{...i,$:{limit:o,after:A,where:(C=i.$)==null?void 0:C.where,fields:($=i.$)==null?void 0:$.fields,order:Mr(c)}}},j=>{if(j.error)return g(j.error);const T=j.data[a],v=j.pageInfo[a];Qe(T&&v,"Expected rows and pageInfo"),m(A,{data:T,status:"bootstrapping",hasMore:v.hasNextPage,endCursor:v.endCursor})},r);f.set(je("reverse",A),P)},M=(A,P=!1)=>{var $,j;const C=t.subscribeQuery({[a]:{...i,$:{limit:o,after:A,afterInclusive:P,where:($=i.$)==null?void 0:$.where,fields:(j=i.$)==null?void 0:j.fields,order:c}}},T=>{if(T.error)return g(T.error);const v=T.data[a],U=T.pageInfo[a];Qe(v&&U,"Page info and rows"),w(A,{data:v,status:"bootstrapping",hasMore:U.hasNextPage,endCursor:U.endCursor,afterInclusive:P})},r);f.set(je("forward",A,P),C)},O=(A,P=!1)=>{var v,U;const C=Ve(A,P),$=f.get(je("forward",A,P));$==null||$();const j=u.get(C);if(!(j!=null&&j.endCursor))return;const T=t.subscribeQuery({[a]:{...i,$:{after:A,afterInclusive:j.afterInclusive,before:j.endCursor,beforeInclusive:!0,where:(v=i.$)==null?void 0:v.where,fields:(U=i.$)==null?void 0:U.fields,order:c}}},Q=>{if(Q.error)return g(Q.error);const B=Q.data[a],ae=Q.pageInfo[a];Qe(B&&ae,"Expected rows and pageInfo"),w(A,{data:B,status:"frozen",hasMore:ae.hasNextPage,endCursor:ae.endCursor,afterInclusive:j.afterInclusive})},r);f.set(je("forward",A,P),T)},k=()=>{const A=Array.from(l.entries()).at(-1);if(!A)return;const[P,C]=A;if(!(C!=null&&C.hasMore)||!$a(C))return;const $=`${P}:${Ma(C.endCursor)}`;$!=y&&(y=$,I(P,C),S(C.endCursor))},z=()=>{const A=Array.from(u.entries()).at(-1);if(!A)return;const[P,C]=A;if(!C.endCursor)return;const{cursor:$,afterInclusive:j}=Pr(P);O($,j),M(C.endCursor)};return b=t.subscribeQuery({[a]:{...i,$:{limit:o,where:(J=i.$)==null?void 0:J.where,fields:(W=i.$)==null?void 0:W.fields,order:c}}},async A=>{var j;if(d)return;if(A.error)return g(A.error);const P=A.pageInfo[a],C=(j=A==null?void 0:A.data)==null?void 0:j[a];if(Qe(C&&P,"Expected rows and pageInfo"),C.length<o){w(rn,{data:C,status:"pre-bootstrap"});return}const $=P.startCursor;if(!$){w(rn,{data:C,status:"pre-bootstrap"});return}u.delete(Ve(rn)),M($,!0),S(P.startCursor),d=!0},r),{unsubscribe:()=>{if(p){p=!1,b==null||b(),b=null;for(const A of f.values())A==null||A();f.clear()}},loadNextPage:z}},xa=(t,e,n)=>{var u,l,f,d;if(!e)return{canLoadNextPage:!1,data:void 0,error:void 0};const{entityName:r,entityQuery:s}=jr(e),i=((u=s.$)==null?void 0:u.limit)||10,o=$r((l=s.$)==null?void 0:l.order);let a=e?Dr({[r]:{...s,$:{limit:i,where:(f=s.$)==null?void 0:f.where,fields:(d=s.$)==null?void 0:d.fields,order:o}}}):null;n&&"ruleParams"in n&&(a={$$ruleParams:n.ruleParams,...a});const c=t._reactor.getPreviousResult(a);return{canLoadNextPage:!1,data:(c==null?void 0:c.data)||void 0,error:void 0}},jr=t=>{if(Object.keys(t).length!==1)throw new L("subscribeInfiniteQuery expects exactly one entity");const[n,r]=Object.entries(t)[0];if(!n||!r)throw new L("No query provided for infinite query");return{entityName:n,entityQuery:r}},Ua={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"};function La(){return globalThis.__instantDbSchemaHashStore=globalThis.__instantDbSchemaHashStore??new WeakMap,globalThis.__instantDbSchemaHashStore}function Fa(){return globalThis.__instantDbStore=globalThis.__instantDbStore??{},globalThis.__instantDbStore}function sn(t){const e=t.__adminToken,n=t.__extraDedupeKey;return t.appId+"_"+(t.websocketURI||"default_ws_uri")+"_"+(t.apiURI||"default_api_uri")+"_"+(e||"client_only")+"_"+t.useDateObjects+"_"+(n||"")}const on=Fa(),Rr=La();class Na{constructor(e){h(this,"db");h(this,"sendMagicCode",e=>this.db.sendMagicCode(e));h(this,"signInWithMagicCode",e=>this.db.signInWithMagicCode(e));h(this,"signInWithToken",e=>this.db.signInWithCustomToken(e));h(this,"signInAsGuest",()=>this.db.signInAsGuest());h(this,"createAuthorizationURL",e=>this.db.createAuthorizationURL(e));h(this,"signInWithIdToken",e=>this.db.signInWithIdToken(e));h(this,"exchangeOAuthCode",e=>this.db.exchangeCodeForToken(e));h(this,"issuerURI",()=>this.db.issuerURI());h(this,"signOut",(e={invalidateToken:!0})=>this.db.signOut(e));this.db=e}}class Ka{constructor(e){h(this,"db");h(this,"uploadFile",(e,n,r={})=>this.db.uploadFile(e,n,r));h(this,"delete",e=>this.db.deleteFile(e));h(this,"upload",(e,n)=>this.db.upload(e,n));h(this,"put",this.upload);h(this,"getDownloadUrl",e=>this.db.getDownloadUrl(e));this.db=e}}class qa{constructor(e){h(this,"db");h(this,"createReadStream",e=>this.db.createReadStream(e));h(this,"createWriteStream",e=>this.db.createWriteStream(e));this.db=e}}function Dr(t){return JSON.parse(JSON.stringify(t))}class za{constructor(e){h(this,"_reactor");h(this,"auth");h(this,"storage");h(this,"streams");h(this,"tx",Wt());this._reactor=e,this.auth=new Na(this._reactor),this.storage=new Ka(this._reactor),this.streams=new qa(this._reactor)}transact(e){return this._reactor.pushTx(e)}getLocalId(e){return this._reactor.getLocalId(e)}subscribeQuery(e,n,r){return this._reactor.subscribeQuery(e,n,r)}subscribeInfiniteQuery(e,n,r){return Da(this,e,n,r)}subscribeAuth(e){return this._reactor.subscribeAuth(e)}getAuth(){return this._reactor.getAuth()}subscribeConnectionStatus(e){return this._reactor.subscribeConnectionStatus(e)}joinRoom(e="_defaultRoomType",n="_defaultRoomId",r){return{leaveRoom:this._reactor.joinRoom(e,n,r==null?void 0:r.initialPresence),subscribeTopic:(i,o)=>this._reactor.subscribeTopic(e,n,i,o),subscribePresence:(i,o)=>this._reactor.subscribePresence(e,n,i,o),publishTopic:(i,o)=>this._reactor.publishTopic({roomType:e,roomId:n,topic:i,data:o}),publishPresence:i=>this._reactor.publishPresence(e,n,i),getPresence:i=>this._reactor.getPresence(e,n,i)}}shutdown(){delete on[sn(this._reactor.config)],this._reactor.shutdown()}queryOnce(e,n){return this._reactor.queryOnce(e,n)}_syncTableExperimental(e,n){return this._reactor.subscribeTable(e,n)}}function xr(t){if(!t)return"0";const e=Rr.get(t);if(e)return e;const n=D(t);return Rr.set(t,n),n}function Wa(t,e){return xr(t._reactor.config.schema)!==xr(e)}function Qa(t,e,n,r,s){var u;const i={...t,appId:(u=t.appId)==null?void 0:u.trim(),useDateObjects:t.useDateObjects??!1},o=on[sn(i)];if(o)return Wa(o,i.schema)&&o._reactor.updateSchema(i.schema),o;const a=new fa({...Ua,...i,cardinalityInference:!!i.schema},e||ir,n||or,{...r||{},"@instantdb/core":Jt},s),c=new za(a);return on[sn(i)]=c,Va(i.appId,i.devtool),c}function Va(t,e){if(typeof window>"u"||typeof window.location>"u"||typeof document>"u"||typeof e=="boolean"&&!e)return;const n={position:"bottom-right",allowedHosts:["localhost"],...typeof e=="object"?e:{}};n.allowedHosts.includes(window.location.hostname)&&Ta(t,n)}const Ba=!1,dt={equals:(t,e)=>t===e};let Ur=Kr;const Ae=1,ht=2,Ga={};var Z=null;let an=null,Ha=null,H=null,X=null,we=null,pt=0;function Re(t,e){e=e?Object.assign({},dt,e):dt;const n={value:t,observers:null,observerSlots:null,comparator:e.equals||void 0},r=s=>(typeof s=="function"&&(s=s(n.value)),Fr(n,s));return[Lr.bind(n),r]}function pe(t,e,n){Ur=Xa;const r=Nr(t,e,!1,Ae);r.user=!0,we?we.push(r):yt(r)}function cn(t,e,n){n=n?Object.assign({},dt,n):dt;const r=Nr(t,e,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,yt(r),Lr.bind(r)}function Ja(t){if(H===null)return t();const e=H;H=null;try{return t()}finally{H=e}}function ye(t){return Z===null||(Z.cleanups===null?Z.cleanups=[t]:Z.cleanups.push(t)),t}function Lr(){if(this.sources&&this.state)if(this.state===Ae)yt(this);else{const t=X;X=null,gt(()=>wt(this)),X=t}if(H){const t=this.observers?this.observers.length:0;H.sources?(H.sources.push(this),H.sourceSlots.push(t)):(H.sources=[this],H.sourceSlots=[t]),this.observers?(this.observers.push(H),this.observerSlots.push(H.sources.length-1)):(this.observers=[H],this.observerSlots=[H.sources.length-1])}return this.value}function Fr(t,e,n){let r=t.value;return(!t.comparator||!t.comparator(r,e))&&(t.value=e,t.observers&&t.observers.length&>(()=>{for(let s=0;s<t.observers.length;s+=1){const i=t.observers[s],o=an&&an.running;o&&an.disposed.has(i),(o?!i.tState:!i.state)&&(i.pure?X.push(i):we.push(i),i.observers&&qr(i)),o||(i.state=Ae)}if(X.length>1e6)throw X=[],new Error})),e}function yt(t){if(!t.fn)return;_t(t);const e=pt;Ya(t,t.value,e)}function Ya(t,e,n){let r;const s=Z,i=H;H=Z=t;try{r=t.fn(e)}catch(o){return t.pure&&(t.state=Ae,t.owned&&t.owned.forEach(_t),t.owned=null),t.updatedAt=n+1,zr(o)}finally{H=i,Z=s}(!t.updatedAt||t.updatedAt<=n)&&(t.updatedAt!=null&&"observers"in t?Fr(t,r):t.value=r,t.updatedAt=n)}function Nr(t,e,n,r=Ae,s){const i={fn:t,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:e,owner:Z,context:Z?Z.context:null,pure:n};return Z===null||Z!==Ga&&(Z.owned?Z.owned.push(i):Z.owned=[i]),i}function bt(t){if(t.state===0)return;if(t.state===ht)return wt(t);if(t.suspense&&Ja(t.suspense.inFallback))return t.suspense.effects.push(t);const e=[t];for(;(t=t.owner)&&(!t.updatedAt||t.updatedAt<pt);)t.state&&e.push(t);for(let n=e.length-1;n>=0;n--)if(t=e[n],t.state===Ae)yt(t);else if(t.state===ht){const r=X;X=null,gt(()=>wt(t,e[0])),X=r}}function gt(t,e){if(X)return t();let n=!1;X=[],we?n=!0:we=[],pt++;try{const r=t();return Za(n),r}catch(r){n||(we=null),X=null,zr(r)}}function Za(t){if(X&&(Kr(X),X=null),t)return;const e=we;we=null,e.length&>(()=>Ur(e))}function Kr(t){for(let e=0;e<t.length;e++)bt(t[e])}function Xa(t){let e,n=0;for(e=0;e<t.length;e++){const r=t[e];r.user?t[n++]=r:bt(r)}for(e=0;e<n;e++)bt(t[e])}function wt(t,e){t.state=0;for(let n=0;n<t.sources.length;n+=1){const r=t.sources[n];if(r.sources){const s=r.state;s===Ae?r!==e&&(!r.updatedAt||r.updatedAt<pt)&&bt(r):s===ht&&wt(r,e)}}}function qr(t){for(let e=0;e<t.observers.length;e+=1){const n=t.observers[e];n.state||(n.state=ht,n.pure?X.push(n):we.push(n),n.observers&&qr(n))}}function _t(t){let e;if(t.sources)for(;t.sources.length;){const n=t.sources.pop(),r=t.sourceSlots.pop(),s=n.observers;if(s&&s.length){const i=s.pop(),o=n.observerSlots.pop();r<s.length&&(i.sourceSlots[o]=r,s[r]=i,n.observerSlots[r]=o)}}if(t.tOwned){for(e=t.tOwned.length-1;e>=0;e--)_t(t.tOwned[e]);delete t.tOwned}if(t.owned){for(e=t.owned.length-1;e>=0;e--)_t(t.owned[e]);t.owned=null}if(t.cleanups){for(e=t.cleanups.length-1;e>=0;e--)t.cleanups[e]();t.cleanups=null}t.state=0}function ec(t){return t instanceof Error?t:new Error(typeof t=="string"?t:"Unknown error",{cause:t})}function zr(t,e=Z){throw ec(t)}const tc=1e3;function nc(t,e,n){pe(()=>{const r=t.core._reactor.subscribeTopic(t.type,t.id,e,(s,i)=>{n(s,i)});ye(r)})}function rc(t,e){return pe(()=>{const n=t.core._reactor.joinRoom(t.type,t.id);ye(n)}),n=>{t.core._reactor.publishTopic({roomType:t.type,roomId:t.id,topic:e,data:n})}}function sc(t,e={}){const[n,r]=Re(t.core._reactor.getPresence(t.type,t.id,e)??{peers:{},isLoading:!0});pe(()=>{const i=t.core._reactor.subscribePresence(t.type,t.id,e,o=>{r(o)});ye(i)});const s=i=>{t.core._reactor.publishPresence(t.type,t.id,i)};return cn(()=>({...n(),publishPresence:s}))}function ic(t,e,n){pe(()=>{const r=t.core._reactor.joinRoom(t.type,t.id,e);ye(r)}),pe(()=>{n?n.forEach(r=>typeof r=="function"?r():r):JSON.stringify(e),t.core._reactor.publishPresence(t.type,t.id,e)})}function oc(t,e,n={}){let r=null;const s=Wr.usePresence(t,{keys:[e]}),i=cn(()=>{if(n!=null&&n.writeOnly)return[];s();const u=t.core._reactor.getPresence(t.type,t.id);return Object.values((u==null?void 0:u.peers)??{}).filter(l=>l[e]===!0)}),o=u=>{t.core._reactor.publishPresence(t.type,t.id,{[e]:u?!0:null}),r&&(clearTimeout(r),r=null),u&&((n==null?void 0:n.timeout)===null||(n==null?void 0:n.timeout)===0||(r=setTimeout(()=>{t.core._reactor.publishPresence(t.type,t.id,{[e]:null})},(n==null?void 0:n.timeout)??tc)))};return ye(()=>{r&&(clearTimeout(r),r=null),o(!1)}),{active:i,setActive:o,inputProps:{onKeyDown:u=>{const f=!((n==null?void 0:n.stopOnEnter)&&u.key==="Enter");o(f)},onBlur:()=>{o(!1)}}}}const Wr={useTopicEffect:nc,usePublishTopic:rc,usePresence:sc,useSyncPresence:ic,useTypingIndicator:oc};class Qr{constructor(e,n,r){h(this,"core");h(this,"type");h(this,"id");this.core=e,this.type=n,this.id=r}}const Vr={isLoading:!0,data:void 0,pageInfo:void 0,error:void 0},ac={isLoading:!0,user:void 0,error:void 0};function cc(t){return{isLoading:!t,data:void 0,pageInfo:void 0,error:void 0,...t||{}}}class Br{constructor(e){h(this,"tx",Wt());h(this,"auth");h(this,"storage");h(this,"streams");h(this,"core");h(this,"getLocalId",e=>this.core.getLocalId(e));h(this,"transact",e=>this.core.transact(e));h(this,"queryOnce",(e,n)=>this.core.queryOnce(e,n));h(this,"useQuery",(e,n)=>{const[r,s]=Re(Vr);return pe(()=>{const i=typeof e=="function"?e():e;if(!i){s(()=>Vr);return}let o=i;n&&"ruleParams"in n&&(o={$$ruleParams:n.ruleParams,...o});const a=Dr(o),c=this.core._reactor.getPreviousResult(a);c&&s(()=>cc(c));const u=this.core.subscribeQuery(a,l=>{s(()=>Object.assign({isLoading:!1,data:void 0,pageInfo:void 0,error:void 0},l))});ye(u)}),r});h(this,"useInfiniteQuery",(e,n)=>{let r=null;const s=()=>r==null?void 0:r.loadNextPage(),[i,o]=Re({isLoading:!0,error:void 0,data:void 0,canLoadNextPage:!1,loadNextPage:s});return pe(()=>{const a=typeof e=="function"?e():e;if(!a){r=null,o(()=>({isLoading:!0,error:void 0,data:void 0,canLoadNextPage:!1,loadNextPage:s}));return}const c=xa(this.core,a,n);o(()=>({...c,isLoading:!c.data&&!c.error,loadNextPage:s})),r=this.core.subscribeInfiniteQuery(a,u=>{o(()=>({...u,isLoading:!1,loadNextPage:s}))},n),ye(()=>{r==null||r.unsubscribe(),r=null})}),i});h(this,"useAuth",()=>{const[e,n]=Re(this.core._reactor._currentUserCached??ac);return pe(()=>{const r=this.core.subscribeAuth(s=>{n({isLoading:!1,...s})});ye(r)}),e});h(this,"useUser",()=>{const e=this.useAuth();return cn(()=>{const{user:n}=e();if(!n)throw new Y("useUser must be used within an auth-protected route");return n})});h(this,"useConnectionStatus",()=>{const[e,n]=Re(this.core._reactor.status);return pe(()=>{const r=this.core.subscribeConnectionStatus(s=>{n(()=>s)});ye(r)}),e});h(this,"useLocalId",e=>{const[n,r]=Re(null);return pe(()=>{let s=!0;this.getLocalId(e).then(i=>{s&&r(()=>i)}),ye(()=>{s=!1})}),n});h(this,"rooms",Wr);this.core=e,this.auth=this.core.auth,this.storage=this.core.storage,this.streams=this.core.streams}getAuth(){return this.core.getAuth()}room(e="_defaultRoomType",n="_defaultRoomId"){return new Qr(this.core,e,n)}}function uc(t){const e=Qa(t,void 0,void 0,{"@instantdb/solidjs":Jt});return new Br(e)}R.InstantAPIError=We,R.InstantSolidDatabase=Br,R.InstantSolidRoom=Qr,R.StoreInterface=nr,R.createInstantRouteHandler=Pa,R.i=Sa,R.id=K,R.init=uc,R.lookup=Yn,R.tx=Ui,Object.defineProperty(R,Symbol.toStringTag,{value:"Module"})});
|
|
7
|
+
`,r=document.createElement("button");return r.innerHTML=n,r.className="instant-devtool-toggler",Object.assign(r.style,{position:"fixed",...Oa(t.position),height:"32px",width:"32px",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"9010",padding:"0",margin:"0",border:"none",cursor:"pointer"}),r.addEventListener("click",e),{element:r}}function Oa(t){switch(t){case"bottom-left":return{bottom:"24px",left:"24px"};case"bottom-right":return{bottom:"24px",right:"24px"};case"top-right":return{top:"24px",right:"24px"};case"top-left":return{top:"24px",left:"24px"}}}function Ia(t){switch(t){case"bottom-left":return{bottom:"24px",right:"24px",left:"60px",top:"72px"};case"bottom-right":return{bottom:"24px",left:"24px",right:"60px",top:"72px"};case"top-right":return{top:"24px",left:"24px",right:"60px",bottom:"72px"};case"top-left":return{top:"24px",right:"24px",left:"60px",bottom:"72px"}}}function Ca(t){const e=document.createElement("div");Object.assign(e.style,{position:"fixed",...Ia(t.position),display:"block",borderRadius:"4px",border:"1px #ccc solid",boxShadow:"0px 0px 8px #00000044",backgroundColor:"#eee",zIndex:"999990"}),e.style.display="none",e.className="instant-devtool-container";function n(){return e.style.display!=="none"}return{element:e,isVisible:n}}function Ea(t,e){return e&&e.refresh_token?new Response(JSON.stringify({ok:!0}),{headers:{"Content-Type":"application/json","Set-Cookie":`instant_user_${t.appId}=${encodeURIComponent(JSON.stringify(e))}; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=604800`}}):new Response(JSON.stringify({ok:!0}),{headers:{"Content-Type":"application/json","Set-Cookie":`instant_user_${t.appId}=; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=-1`}})}function ft(t,e){return new Response(JSON.stringify({ok:!1,error:e}),{status:t,headers:{"Content-Type":"application/json"}})}const Pa=t=>({POST:async e=>{let n;try{n=await e.json()}catch{return ft(400,"Invalid JSON body")}if(!n.type)return ft(400,'Missing "type" field');if(n.appId!==t.appId)return ft(403,"App ID mismatch");switch(n.type){case"sync-user":return Ea(t,n.user??null);default:return ft(400,`Unknown type: ${n.type}`)}}});function Qe(t,e){if(!t)throw new Error("[assertion error] "+e)}const Ma=t=>JSON.stringify(t),Ve=(t,e=!1)=>JSON.stringify([t,e]),Pr=t=>{const[e,n]=JSON.parse(t);return{cursor:e,afterInclusive:n}},je=(t,e,n=!1)=>`${t}:${Ve(e,n)}`,$a=t=>!!t.endCursor,ja=t=>{var n;const e=Array.from(t.values());return e.length===0?!1:((n=e[e.length-1])==null?void 0:n.hasMore)||!1},Mr=t=>{if(!t)return{serverCreatedAt:"asc"};const e=Object.keys(t).at(0);return e?{[e]:t[e]==="asc"?"desc":"asc"}:{serverCreatedAt:"asc"}},$r=t=>t&&Object.keys(t).length>0?t:{serverCreatedAt:"asc"},Ra=(t,e)=>{const n=[...Array.from(e.values()).slice().reverse(),...Array.from(t.values())],r=[...Array.from(e.values()).slice().reverse().flatMap(s=>s.data.slice().reverse()),...Array.from(t.values()).flatMap(s=>s.data)];return{chunks:n,data:r}},rn=["bootstrap","bootstrap","bootstrap",1],Da=(t,e,n,r)=>{var q,N,J,W;const{entityName:s,entityQuery:i}=jr(e),o=((q=i.$)==null?void 0:q.limit)||10,a=s,c=$r((N=i.$)==null?void 0:N.order),u=new Map,l=new Map,f=new Map;let d=!1,p=!0,y=null,b=null;const g=A=>{n({error:A,data:void 0,canLoadNextPage:!1})},m=()=>{if(!p)return;const{chunks:A,data:P}=Ra(u,l);n({data:{[a]:P},chunks:A,canLoadNextPage:ja(u)})},w=(A,P)=>{u.set(Ve(A,P.afterInclusive),P),m()},_=(A,P)=>{l.set(Ve(A),P),k(),m()},I=(A,P)=>{var T,v;const{cursor:C}=Pr(A),$=f.get(je("reverse",C));$==null||$();const j=t.subscribeQuery({[a]:{...i,$:{after:C,before:P.endCursor,beforeInclusive:!0,where:(T=i.$)==null?void 0:T.where,fields:(v=i.$)==null?void 0:v.fields,order:Mr(c)}}},U=>{if(U.error)return g(U.error);const Q=U.data[a],B=U.pageInfo[a];Qe(Q&&B,"Expected query subscription to contain rows and pageInfo"),_(C,{data:Q,status:"frozen",hasMore:B.hasNextPage,endCursor:B.endCursor})},r);f.set(je("reverse",C),j)},S=A=>{var C,$;const P=t.subscribeQuery({[a]:{...i,$:{limit:o,after:A,where:(C=i.$)==null?void 0:C.where,fields:($=i.$)==null?void 0:$.fields,order:Mr(c)}}},j=>{if(j.error)return g(j.error);const T=j.data[a],v=j.pageInfo[a];Qe(T&&v,"Expected rows and pageInfo"),_(A,{data:T,status:"bootstrapping",hasMore:v.hasNextPage,endCursor:v.endCursor})},r);f.set(je("reverse",A),P)},M=(A,P=!1)=>{var $,j;const C=t.subscribeQuery({[a]:{...i,$:{limit:o,after:A,afterInclusive:P,where:($=i.$)==null?void 0:$.where,fields:(j=i.$)==null?void 0:j.fields,order:c}}},T=>{if(T.error)return g(T.error);const v=T.data[a],U=T.pageInfo[a];Qe(v&&U,"Page info and rows"),w(A,{data:v,status:"bootstrapping",hasMore:U.hasNextPage,endCursor:U.endCursor,afterInclusive:P})},r);f.set(je("forward",A,P),C)},O=(A,P=!1)=>{var v,U;const C=Ve(A,P),$=f.get(je("forward",A,P));$==null||$();const j=u.get(C);if(!(j!=null&&j.endCursor))return;const T=t.subscribeQuery({[a]:{...i,$:{after:A,afterInclusive:j.afterInclusive,before:j.endCursor,beforeInclusive:!0,where:(v=i.$)==null?void 0:v.where,fields:(U=i.$)==null?void 0:U.fields,order:c}}},Q=>{if(Q.error)return g(Q.error);const B=Q.data[a],ae=Q.pageInfo[a];Qe(B&&ae,"Expected rows and pageInfo"),w(A,{data:B,status:"frozen",hasMore:ae.hasNextPage,endCursor:ae.endCursor,afterInclusive:j.afterInclusive})},r);f.set(je("forward",A,P),T)},k=()=>{const A=Array.from(l.entries()).at(-1);if(!A)return;const[P,C]=A;if(!(C!=null&&C.hasMore)||!$a(C))return;const $=`${P}:${Ma(C.endCursor)}`;$!=y&&(y=$,I(P,C),S(C.endCursor))},z=()=>{const A=Array.from(u.entries()).at(-1);if(!A)return;const[P,C]=A;if(!C.endCursor)return;const{cursor:$,afterInclusive:j}=Pr(P);O($,j),M(C.endCursor)};return b=t.subscribeQuery({[a]:{...i,$:{limit:o,where:(J=i.$)==null?void 0:J.where,fields:(W=i.$)==null?void 0:W.fields,order:c}}},async A=>{var j;if(d)return;if(A.error)return g(A.error);const P=A.pageInfo[a],C=(j=A==null?void 0:A.data)==null?void 0:j[a];if(Qe(C&&P,"Expected rows and pageInfo"),C.length<o){w(rn,{data:C,status:"pre-bootstrap"});return}const $=P.startCursor;if(!$){w(rn,{data:C,status:"pre-bootstrap"});return}u.delete(Ve(rn)),M($,!0),S(P.startCursor),d=!0},r),{unsubscribe:()=>{if(p){p=!1,b==null||b(),b=null;for(const A of f.values())A==null||A();f.clear()}},loadNextPage:z}},xa=(t,e,n)=>{var u,l,f,d;if(!e)return{canLoadNextPage:!1,data:void 0,error:void 0};const{entityName:r,entityQuery:s}=jr(e),i=((u=s.$)==null?void 0:u.limit)||10,o=$r((l=s.$)==null?void 0:l.order);let a=e?Dr({[r]:{...s,$:{limit:i,where:(f=s.$)==null?void 0:f.where,fields:(d=s.$)==null?void 0:d.fields,order:o}}}):null;n&&"ruleParams"in n&&(a={$$ruleParams:n.ruleParams,...a});const c=t._reactor.getPreviousResult(a);return{canLoadNextPage:!1,data:(c==null?void 0:c.data)||void 0,error:void 0}},jr=t=>{if(Object.keys(t).length!==1)throw new L("subscribeInfiniteQuery expects exactly one entity");const[n,r]=Object.entries(t)[0];if(!n||!r)throw new L("No query provided for infinite query");return{entityName:n,entityQuery:r}},Ua={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"};function La(){return globalThis.__instantDbSchemaHashStore=globalThis.__instantDbSchemaHashStore??new WeakMap,globalThis.__instantDbSchemaHashStore}function Fa(){return globalThis.__instantDbStore=globalThis.__instantDbStore??{},globalThis.__instantDbStore}function sn(t){const e=t.__adminToken,n=t.__extraDedupeKey;return t.appId+"_"+(t.websocketURI||"default_ws_uri")+"_"+(t.apiURI||"default_api_uri")+"_"+(e||"client_only")+"_"+t.useDateObjects+"_"+(n||"")}const on=Fa(),Rr=La();class Na{constructor(e){h(this,"db");h(this,"sendMagicCode",e=>this.db.sendMagicCode(e));h(this,"signInWithMagicCode",e=>this.db.signInWithMagicCode(e));h(this,"signInWithToken",e=>this.db.signInWithCustomToken(e));h(this,"signInAsGuest",()=>this.db.signInAsGuest());h(this,"createAuthorizationURL",e=>this.db.createAuthorizationURL(e));h(this,"signInWithIdToken",e=>this.db.signInWithIdToken(e));h(this,"exchangeOAuthCode",e=>this.db.exchangeCodeForToken(e));h(this,"issuerURI",()=>this.db.issuerURI());h(this,"signOut",(e={invalidateToken:!0})=>this.db.signOut(e));this.db=e}}class Ka{constructor(e){h(this,"db");h(this,"uploadFile",(e,n,r={})=>this.db.uploadFile(e,n,r));h(this,"delete",e=>this.db.deleteFile(e));h(this,"upload",(e,n)=>this.db.upload(e,n));h(this,"put",this.upload);h(this,"getDownloadUrl",e=>this.db.getDownloadUrl(e));this.db=e}}class qa{constructor(e){h(this,"db");h(this,"createReadStream",e=>this.db.createReadStream(e));h(this,"createWriteStream",e=>this.db.createWriteStream(e));this.db=e}}function Dr(t){return JSON.parse(JSON.stringify(t))}class za{constructor(e){h(this,"_reactor");h(this,"auth");h(this,"storage");h(this,"streams");h(this,"tx",Wt());this._reactor=e,this.auth=new Na(this._reactor),this.storage=new Ka(this._reactor),this.streams=new qa(this._reactor)}transact(e){return this._reactor.pushTx(e)}getLocalId(e){return this._reactor.getLocalId(e)}subscribeQuery(e,n,r){return this._reactor.subscribeQuery(e,n,r)}subscribeInfiniteQuery(e,n,r){return Da(this,e,n,r)}subscribeAuth(e){return this._reactor.subscribeAuth(e)}getAuth(){return this._reactor.getAuth()}subscribeConnectionStatus(e){return this._reactor.subscribeConnectionStatus(e)}joinRoom(e="_defaultRoomType",n="_defaultRoomId",r){return{leaveRoom:this._reactor.joinRoom(e,n,r==null?void 0:r.initialPresence),subscribeTopic:(i,o)=>this._reactor.subscribeTopic(e,n,i,o),subscribePresence:(i,o)=>this._reactor.subscribePresence(e,n,i,o),publishTopic:(i,o)=>this._reactor.publishTopic({roomType:e,roomId:n,topic:i,data:o}),publishPresence:i=>this._reactor.publishPresence(e,n,i),getPresence:i=>this._reactor.getPresence(e,n,i)}}shutdown(){delete on[sn(this._reactor.config)],this._reactor.shutdown()}queryOnce(e,n){return this._reactor.queryOnce(e,n)}_syncTableExperimental(e,n){return this._reactor.subscribeTable(e,n)}}function xr(t){if(!t)return"0";const e=Rr.get(t);if(e)return e;const n=D(t);return Rr.set(t,n),n}function Wa(t,e){return xr(t._reactor.config.schema)!==xr(e)}function Qa(t,e,n,r,s){var u;const i={...t,appId:(u=t.appId)==null?void 0:u.trim(),useDateObjects:t.useDateObjects??!1},o=on[sn(i)];if(o)return Wa(o,i.schema)&&o._reactor.updateSchema(i.schema),o;const a=new fa({...Ua,...i,cardinalityInference:!!i.schema},e||ir,n||or,{...r||{},"@instantdb/core":Jt},s),c=new za(a);return on[sn(i)]=c,Va(i.appId,i.devtool),c}function Va(t,e){if(typeof window>"u"||typeof window.location>"u"||typeof document>"u"||typeof e=="boolean"&&!e)return;const n={position:"bottom-right",allowedHosts:["localhost"],...typeof e=="object"?e:{}};n.allowedHosts.includes(window.location.hostname)&&Ta(t,n)}const Ba=!1,dt={equals:(t,e)=>t===e};let Ur=Kr;const Ae=1,ht=2,Ga={};var Z=null;let an=null,Ha=null,H=null,X=null,we=null,pt=0;function Re(t,e){e=e?Object.assign({},dt,e):dt;const n={value:t,observers:null,observerSlots:null,comparator:e.equals||void 0},r=s=>(typeof s=="function"&&(s=s(n.value)),Fr(n,s));return[Lr.bind(n),r]}function pe(t,e,n){Ur=Xa;const r=Nr(t,e,!1,Ae);r.user=!0,we?we.push(r):yt(r)}function cn(t,e,n){n=n?Object.assign({},dt,n):dt;const r=Nr(t,e,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,yt(r),Lr.bind(r)}function Ja(t){if(H===null)return t();const e=H;H=null;try{return t()}finally{H=e}}function ye(t){return Z===null||(Z.cleanups===null?Z.cleanups=[t]:Z.cleanups.push(t)),t}function Lr(){if(this.sources&&this.state)if(this.state===Ae)yt(this);else{const t=X;X=null,gt(()=>wt(this)),X=t}if(H){const t=this.observers?this.observers.length:0;H.sources?(H.sources.push(this),H.sourceSlots.push(t)):(H.sources=[this],H.sourceSlots=[t]),this.observers?(this.observers.push(H),this.observerSlots.push(H.sources.length-1)):(this.observers=[H],this.observerSlots=[H.sources.length-1])}return this.value}function Fr(t,e,n){let r=t.value;return(!t.comparator||!t.comparator(r,e))&&(t.value=e,t.observers&&t.observers.length&>(()=>{for(let s=0;s<t.observers.length;s+=1){const i=t.observers[s],o=an&&an.running;o&&an.disposed.has(i),(o?!i.tState:!i.state)&&(i.pure?X.push(i):we.push(i),i.observers&&qr(i)),o||(i.state=Ae)}if(X.length>1e6)throw X=[],new Error})),e}function yt(t){if(!t.fn)return;mt(t);const e=pt;Ya(t,t.value,e)}function Ya(t,e,n){let r;const s=Z,i=H;H=Z=t;try{r=t.fn(e)}catch(o){return t.pure&&(t.state=Ae,t.owned&&t.owned.forEach(mt),t.owned=null),t.updatedAt=n+1,zr(o)}finally{H=i,Z=s}(!t.updatedAt||t.updatedAt<=n)&&(t.updatedAt!=null&&"observers"in t?Fr(t,r):t.value=r,t.updatedAt=n)}function Nr(t,e,n,r=Ae,s){const i={fn:t,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:e,owner:Z,context:Z?Z.context:null,pure:n};return Z===null||Z!==Ga&&(Z.owned?Z.owned.push(i):Z.owned=[i]),i}function bt(t){if(t.state===0)return;if(t.state===ht)return wt(t);if(t.suspense&&Ja(t.suspense.inFallback))return t.suspense.effects.push(t);const e=[t];for(;(t=t.owner)&&(!t.updatedAt||t.updatedAt<pt);)t.state&&e.push(t);for(let n=e.length-1;n>=0;n--)if(t=e[n],t.state===Ae)yt(t);else if(t.state===ht){const r=X;X=null,gt(()=>wt(t,e[0])),X=r}}function gt(t,e){if(X)return t();let n=!1;X=[],we?n=!0:we=[],pt++;try{const r=t();return Za(n),r}catch(r){n||(we=null),X=null,zr(r)}}function Za(t){if(X&&(Kr(X),X=null),t)return;const e=we;we=null,e.length&>(()=>Ur(e))}function Kr(t){for(let e=0;e<t.length;e++)bt(t[e])}function Xa(t){let e,n=0;for(e=0;e<t.length;e++){const r=t[e];r.user?t[n++]=r:bt(r)}for(e=0;e<n;e++)bt(t[e])}function wt(t,e){t.state=0;for(let n=0;n<t.sources.length;n+=1){const r=t.sources[n];if(r.sources){const s=r.state;s===Ae?r!==e&&(!r.updatedAt||r.updatedAt<pt)&&bt(r):s===ht&&wt(r,e)}}}function qr(t){for(let e=0;e<t.observers.length;e+=1){const n=t.observers[e];n.state||(n.state=ht,n.pure?X.push(n):we.push(n),n.observers&&qr(n))}}function mt(t){let e;if(t.sources)for(;t.sources.length;){const n=t.sources.pop(),r=t.sourceSlots.pop(),s=n.observers;if(s&&s.length){const i=s.pop(),o=n.observerSlots.pop();r<s.length&&(i.sourceSlots[o]=r,s[r]=i,n.observerSlots[r]=o)}}if(t.tOwned){for(e=t.tOwned.length-1;e>=0;e--)mt(t.tOwned[e]);delete t.tOwned}if(t.owned){for(e=t.owned.length-1;e>=0;e--)mt(t.owned[e]);t.owned=null}if(t.cleanups){for(e=t.cleanups.length-1;e>=0;e--)t.cleanups[e]();t.cleanups=null}t.state=0}function ec(t){return t instanceof Error?t:new Error(typeof t=="string"?t:"Unknown error",{cause:t})}function zr(t,e=Z){throw ec(t)}const tc=1e3;function nc(t,e,n){pe(()=>{const r=t.core._reactor.subscribeTopic(t.type,t.id,e,(s,i)=>{n(s,i)});ye(r)})}function rc(t,e){return pe(()=>{const n=t.core._reactor.joinRoom(t.type,t.id);ye(n)}),n=>{t.core._reactor.publishTopic({roomType:t.type,roomId:t.id,topic:e,data:n})}}function sc(t,e={}){const[n,r]=Re(t.core._reactor.getPresence(t.type,t.id,e)??{peers:{},isLoading:!0});pe(()=>{const i=t.core._reactor.subscribePresence(t.type,t.id,e,o=>{r(o)});ye(i)});const s=i=>{t.core._reactor.publishPresence(t.type,t.id,i)};return cn(()=>({...n(),publishPresence:s}))}function ic(t,e,n){pe(()=>{const r=t.core._reactor.joinRoom(t.type,t.id,e);ye(r)}),pe(()=>{n?n.forEach(r=>typeof r=="function"?r():r):JSON.stringify(e),t.core._reactor.publishPresence(t.type,t.id,e)})}function oc(t,e,n={}){let r=null;const s=Wr.usePresence(t,{keys:[e]}),i=cn(()=>{if(n!=null&&n.writeOnly)return[];s();const u=t.core._reactor.getPresence(t.type,t.id);return Object.values((u==null?void 0:u.peers)??{}).filter(l=>l[e]===!0)}),o=u=>{t.core._reactor.publishPresence(t.type,t.id,{[e]:u?!0:null}),r&&(clearTimeout(r),r=null),u&&((n==null?void 0:n.timeout)===null||(n==null?void 0:n.timeout)===0||(r=setTimeout(()=>{t.core._reactor.publishPresence(t.type,t.id,{[e]:null})},(n==null?void 0:n.timeout)??tc)))};return ye(()=>{r&&(clearTimeout(r),r=null),o(!1)}),{active:i,setActive:o,inputProps:{onKeyDown:u=>{const f=!((n==null?void 0:n.stopOnEnter)&&u.key==="Enter");o(f)},onBlur:()=>{o(!1)}}}}const Wr={useTopicEffect:nc,usePublishTopic:rc,usePresence:sc,useSyncPresence:ic,useTypingIndicator:oc};class Qr{constructor(e,n,r){h(this,"core");h(this,"type");h(this,"id");this.core=e,this.type=n,this.id=r}}const Vr={isLoading:!0,data:void 0,pageInfo:void 0,error:void 0},ac={isLoading:!0,user:void 0,error:void 0};function cc(t){return{isLoading:!t,data:void 0,pageInfo:void 0,error:void 0,...t||{}}}class Br{constructor(e){h(this,"tx",Wt());h(this,"auth");h(this,"storage");h(this,"streams");h(this,"core");h(this,"getLocalId",e=>this.core.getLocalId(e));h(this,"transact",e=>this.core.transact(e));h(this,"queryOnce",(e,n)=>this.core.queryOnce(e,n));h(this,"useQuery",(e,n)=>{const[r,s]=Re(Vr);return pe(()=>{const i=typeof e=="function"?e():e;if(!i){s(()=>Vr);return}let o=i;n&&"ruleParams"in n&&(o={$$ruleParams:n.ruleParams,...o});const a=Dr(o),c=this.core._reactor.getPreviousResult(a);c&&s(()=>cc(c));const u=this.core.subscribeQuery(a,l=>{s(()=>Object.assign({isLoading:!1,data:void 0,pageInfo:void 0,error:void 0},l))});ye(u)}),r});h(this,"useInfiniteQuery",(e,n)=>{let r=null;const s=()=>r==null?void 0:r.loadNextPage(),[i,o]=Re({isLoading:!0,error:void 0,data:void 0,canLoadNextPage:!1,loadNextPage:s});return pe(()=>{const a=typeof e=="function"?e():e;if(!a){r=null,o(()=>({isLoading:!0,error:void 0,data:void 0,canLoadNextPage:!1,loadNextPage:s}));return}const c=xa(this.core,a,n);o(()=>({...c,isLoading:!c.data&&!c.error,loadNextPage:s})),r=this.core.subscribeInfiniteQuery(a,u=>{o(()=>({...u,isLoading:!1,loadNextPage:s}))},n),ye(()=>{r==null||r.unsubscribe(),r=null})}),i});h(this,"useAuth",()=>{const[e,n]=Re(this.core._reactor._currentUserCached??ac);return pe(()=>{const r=this.core.subscribeAuth(s=>{n({isLoading:!1,...s})});ye(r)}),e});h(this,"useUser",()=>{const e=this.useAuth();return cn(()=>{const{user:n}=e();if(!n)throw new Y("useUser must be used within an auth-protected route");return n})});h(this,"useConnectionStatus",()=>{const[e,n]=Re(this.core._reactor.status);return pe(()=>{const r=this.core.subscribeConnectionStatus(s=>{n(()=>s)});ye(r)}),e});h(this,"useLocalId",e=>{const[n,r]=Re(null);return pe(()=>{let s=!0;this.getLocalId(e).then(i=>{s&&r(()=>i)}),ye(()=>{s=!1})}),n});h(this,"rooms",Wr);this.core=e,this.auth=this.core.auth,this.storage=this.core.storage,this.streams=this.core.streams}getAuth(){return this.core.getAuth()}room(e="_defaultRoomType",n="_defaultRoomId"){return new Qr(this.core,e,n)}}function uc(t){const e=Qa(t,void 0,void 0,{"@instantdb/solidjs":Jt});return new Br(e)}R.InstantAPIError=We,R.InstantSolidDatabase=Br,R.InstantSolidRoom=Qr,R.StoreInterface=nr,R.createInstantRouteHandler=Pa,R.i=Sa,R.id=K,R.init=uc,R.lookup=Yn,R.tx=Ui,Object.defineProperty(R,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instantdb/solidjs",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1",
|
|
5
5
|
"description": "SolidJS client for InstantDB",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"solid-js": ">=1.0.0"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@instantdb/core": "1.0.
|
|
50
|
-
"@instantdb/version": "1.0.
|
|
49
|
+
"@instantdb/core": "1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1",
|
|
50
|
+
"@instantdb/version": "1.0.37-branch-fix-admin-deleteuser-url-encoding.26051783246.1"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
53
53
|
"test": "echo \"Error: no test specified\" && exit 1",
|