fetchium 0.2.0 → 0.2.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/CHANGELOG.md +6 -0
- package/dist/cjs/development/QueryClient-vYETX2J2.js +2 -0
- package/dist/cjs/development/QueryClient-vYETX2J2.js.map +1 -0
- package/dist/cjs/development/index.js +1 -1
- package/dist/cjs/{production/mutation-Dk0gznwX.js → development/mutation-Beh3eks8.js} +2 -2
- package/dist/cjs/{production/mutation-Dk0gznwX.js.map → development/mutation-Beh3eks8.js.map} +1 -1
- package/dist/cjs/development/react/index.js +1 -1
- package/dist/cjs/development/rest/index.js +1 -1
- package/dist/cjs/development/topic/index.js +1 -1
- package/dist/cjs/production/QueryClient-DJoA1ac6.js +2 -0
- package/dist/cjs/production/QueryClient-DJoA1ac6.js.map +1 -0
- package/dist/cjs/production/index.js +1 -1
- package/dist/cjs/{development/mutation-wUhcGxKl.js → production/mutation-BnIsaYdm.js} +2 -2
- package/dist/cjs/{development/mutation-wUhcGxKl.js.map → production/mutation-BnIsaYdm.js.map} +1 -1
- package/dist/cjs/production/react/index.js +1 -1
- package/dist/cjs/production/rest/index.js +1 -1
- package/dist/cjs/production/topic/index.js +1 -1
- package/dist/esm/development/{QueryClient-BajBmpnA.js → QueryClient-zAD_O9xj.js} +645 -637
- package/dist/esm/development/QueryClient-zAD_O9xj.js.map +1 -0
- package/dist/esm/development/index.js +2 -2
- package/dist/esm/development/{mutation-DAOZE4Ok.js → mutation-lw06SxbJ.js} +2 -2
- package/dist/esm/development/{mutation-DAOZE4Ok.js.map → mutation-lw06SxbJ.js.map} +1 -1
- package/dist/esm/development/react/index.js +1 -1
- package/dist/esm/development/rest/index.js +2 -2
- package/dist/esm/development/topic/index.js +1 -1
- package/dist/esm/production/{QueryClient-KH0Ex_8m.js → QueryClient-DSAzqTG6.js} +785 -777
- package/dist/esm/production/QueryClient-DSAzqTG6.js.map +1 -0
- package/dist/esm/production/index.js +2 -2
- package/dist/esm/production/{mutation-C7BOChR2.js → mutation-Dmb9k9FG.js} +2 -2
- package/dist/esm/production/{mutation-C7BOChR2.js.map → mutation-Dmb9k9FG.js.map} +1 -1
- package/dist/esm/production/react/index.js +1 -1
- package/dist/esm/production/rest/index.js +2 -2
- package/dist/esm/production/topic/index.js +1 -1
- package/dist/esm/retry.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/development/QueryClient-m7BzCIe9.js +0 -2
- package/dist/cjs/development/QueryClient-m7BzCIe9.js.map +0 -1
- package/dist/cjs/production/QueryClient-4T90peFN.js +0 -2
- package/dist/cjs/production/QueryClient-4T90peFN.js.map +0 -1
- package/dist/esm/development/QueryClient-BajBmpnA.js.map +0 -1
- package/dist/esm/production/QueryClient-KH0Ex_8m.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A as r, E as s, G as t, L as o, a as n, M as i, N as M, b as g, c as u, d as y, e as f, Q as C, f as N, g as Q, h as d, R as k, i as l, j as p, k as m, q as E, r as R, t as w } from "./QueryClient-
|
|
1
|
+
import { A as r, E as s, G as t, L as o, a as n, M as i, N as M, b as g, c as u, d as y, e as f, Q as C, f as N, g as Q, h as d, R as k, i as l, j as p, k as m, q as E, r as R, t as w } from "./QueryClient-DSAzqTG6.js";
|
|
2
2
|
import { Q as F } from "./QueryAdapter-Bu5UJjE4.js";
|
|
3
|
-
import { M as A, g as K, m as Y } from "./mutation-
|
|
3
|
+
import { M as A, g as K, m as Y } from "./mutation-Dmb9k9FG.js";
|
|
4
4
|
export {
|
|
5
5
|
r as ARRAY_KEY,
|
|
6
6
|
s as Entity,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getContext as h } from "signalium";
|
|
2
|
-
import { l as y, h as D, m as w, V as u, t as d } from "./QueryClient-
|
|
2
|
+
import { l as y, h as D, m as w, V as u, t as d } from "./QueryClient-DSAzqTG6.js";
|
|
3
3
|
class x {
|
|
4
4
|
static adapter;
|
|
5
5
|
params;
|
|
@@ -55,4 +55,4 @@ export {
|
|
|
55
55
|
S as g,
|
|
56
56
|
C as m
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=mutation-
|
|
58
|
+
//# sourceMappingURL=mutation-Dmb9k9FG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-
|
|
1
|
+
{"version":3,"file":"mutation-Dmb9k9FG.js","sources":["../../../src/mutation.ts"],"sourcesContent":["import { getContext, ReactiveTask } from 'signalium';\nimport { ExtractType, InternalTypeDef, MutationEffects, TypeDef, RetryConfig, TypeDefShape } from './types.js';\nimport { QueryClientContext, type QueryContext } from './QueryClient.js';\nimport { ValidatorDef, t } from './typeDefs.js';\nimport { createDefinitionProxy, extractDefinition, type CapturedDefinition } from './fieldRef.js';\nimport type { QueryAdapter } from './QueryAdapter.js';\n\n// ================================\n// Mutation Definition Types\n// ================================\n\nexport interface MutationConfigOptions {\n retry?: RetryConfig | number | false;\n}\n\nexport interface MutationDefinition<Request, Response> {\n id: string;\n requestShape: InternalTypeDef;\n responseShape: InternalTypeDef | undefined;\n captured: CapturedDefinition<Mutation>;\n optimisticUpdates: boolean;\n config?: MutationConfigOptions;\n effects?: MutationEffects;\n hasGetEffects: boolean;\n adapterClass: typeof QueryAdapter;\n}\n\n// ================================\n// Mutation base class\n// ================================\n\nexport abstract class Mutation {\n static adapter?: typeof QueryAdapter;\n\n readonly params?: TypeDefShape;\n readonly result?: TypeDefShape;\n readonly optimisticUpdates?: boolean;\n readonly config?: MutationConfigOptions;\n readonly effects?: Readonly<MutationEffects>;\n\n declare context: QueryContext;\n\n abstract getIdentityKey(): unknown;\n\n getEffects?(): MutationEffects;\n\n constructor() {\n return createDefinitionProxy(this);\n }\n}\n\n// ================================\n// Mutation definition cache and lookup\n// ================================\n\nconst mutationDefCache = new WeakMap<new () => Mutation, () => MutationDefinition<any, any>>();\n\nexport const mutationKeyForClass = (cls: new () => Mutation): string => {\n const getMutationDef = mutationDefCache.get(cls);\n\n if (getMutationDef === undefined) {\n throw new Error('Mutation definition not found');\n }\n\n return getMutationDef().id;\n};\n\n// ================================\n// Internal: build mutation definition from class\n// ================================\n\nfunction buildMutationDefinition(MutationClass: new () => Mutation): () => MutationDefinition<any, any> {\n let cached = mutationDefCache.get(MutationClass);\n\n if (cached !== undefined) {\n return cached;\n }\n\n let mutationDefinition: MutationDefinition<any, any> | undefined;\n\n const getter = (): MutationDefinition<any, any> => {\n if (mutationDefinition !== undefined) {\n return mutationDefinition;\n }\n\n const instance = new MutationClass();\n const captured = extractDefinition(instance);\n const { fields } = captured;\n\n const id = `mutation:${String(captured.methods.getIdentityKey.call(fields))}`;\n\n const requestDef = fields.params ?? {};\n const requestShape = (requestDef instanceof ValidatorDef\n ? requestDef\n : t.object(requestDef)) as unknown as InternalTypeDef;\n const responseDef = fields.result;\n const responseShape =\n responseDef !== undefined\n ? ((responseDef instanceof ValidatorDef ? responseDef : t.object(responseDef)) as unknown as InternalTypeDef)\n : undefined;\n\n const adapterClass = (MutationClass as typeof Mutation).adapter;\n if (!adapterClass) {\n throw new Error(\n `Mutation class \"${MutationClass.name}\" must define a static \\`adapter\\` property. ` +\n `Extend RESTMutation (from fetchium/rest) or set \\`static adapter = MyAdapter\\` on your mutation class.`,\n );\n }\n\n mutationDefinition = {\n id,\n requestShape,\n responseShape,\n captured,\n optimisticUpdates: fields.optimisticUpdates ?? false,\n config: fields.config,\n effects: fields.effects,\n hasGetEffects: typeof captured.methods.getEffects === 'function',\n adapterClass,\n };\n\n return mutationDefinition;\n };\n\n mutationDefCache.set(MutationClass, getter);\n return getter;\n}\n\n// ================================\n// Public API\n// ================================\n\nexport function getMutation<T extends Mutation>(\n MutationClass: new () => T,\n): ReactiveTask<Readonly<ExtractType<T['result']>>, [ExtractType<T['params']>]> {\n const getMutationDef = buildMutationDefinition(MutationClass);\n\n const queryClient = getContext(QueryClientContext);\n\n if (queryClient === undefined) {\n throw new Error('QueryClient not found');\n }\n\n return queryClient.getMutation<any, any>(getMutationDef());\n}\n"],"names":["Mutation","createDefinitionProxy","mutationDefCache","mutationKeyForClass","cls","getMutationDef","buildMutationDefinition","MutationClass","cached","mutationDefinition","getter","instance","captured","extractDefinition","fields","id","requestDef","requestShape","ValidatorDef","t","responseDef","responseShape","adapterClass","getMutation","queryClient","getContext","QueryClientContext"],"mappings":";;AA+BO,MAAeA,EAAS;AAAA,EAC7B,OAAO;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAQT,cAAc;AACZ,WAAOC,EAAsB,IAAI;AAAA,EACnC;AACF;AAMA,MAAMC,wBAAuB,QAAA,GAEhBC,IAAsB,CAACC,MAAoC;AACtE,QAAMC,IAAiBH,EAAiB,IAAIE,CAAG;AAE/C,MAAIC,MAAmB;AACrB,UAAM,IAAI,MAAM,+BAA+B;AAGjD,SAAOA,IAAiB;AAC1B;AAMA,SAASC,EAAwBC,GAAuE;AACtG,MAAIC,IAASN,EAAiB,IAAIK,CAAa;AAE/C,MAAIC,MAAW;AACb,WAAOA;AAGT,MAAIC;AAEJ,QAAMC,IAAS,MAAoC;AACjD,QAAID,MAAuB;AACzB,aAAOA;AAGT,UAAME,IAAW,IAAIJ,EAAA,GACfK,IAAWC,EAAkBF,CAAQ,GACrC,EAAE,QAAAG,MAAWF,GAEbG,IAAK,YAAY,OAAOH,EAAS,QAAQ,eAAe,KAAKE,CAAM,CAAC,CAAC,IAErEE,IAAaF,EAAO,UAAU,CAAA,GAC9BG,IAAgBD,aAAsBE,IACxCF,IACAG,EAAE,OAAOH,CAAU,GACjBI,IAAcN,EAAO,QACrBO,IACJD,MAAgB,SACVA,aAAuBF,IAAeE,IAAcD,EAAE,OAAOC,CAAW,IAC1E,QAEAE,IAAgBf,EAAkC;AACxD,QAAI,CAACe;AACH,YAAM,IAAI;AAAA,QACR,mBAAmBf,EAAc,IAAI;AAAA,MAAA;AAKzC,WAAAE,IAAqB;AAAA,MACnB,IAAAM;AAAA,MACA,cAAAE;AAAA,MACA,eAAAI;AAAA,MACA,UAAAT;AAAA,MACA,mBAAmBE,EAAO,qBAAqB;AAAA,MAC/C,QAAQA,EAAO;AAAA,MACf,SAASA,EAAO;AAAA,MAChB,eAAe,OAAOF,EAAS,QAAQ,cAAe;AAAA,MACtD,cAAAU;AAAA,IAAA,GAGKb;AAAA,EACT;AAEA,SAAAP,EAAiB,IAAIK,GAAeG,CAAM,GACnCA;AACT;AAMO,SAASa,EACdhB,GAC8E;AAC9E,QAAMF,IAAiBC,EAAwBC,CAAa,GAEtDiB,IAAcC,EAAWC,CAAkB;AAEjD,MAAIF,MAAgB;AAClB,UAAM,IAAI,MAAM,uBAAuB;AAGzC,SAAOA,EAAY,YAAsBnB,GAAgB;AAC3D;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as v, o as U, f as O } from "../QueryClient-
|
|
1
|
+
import { n as v, o as U, f as O } from "../QueryClient-DSAzqTG6.js";
|
|
2
2
|
import { Q as T } from "../QueryAdapter-Bu5UJjE4.js";
|
|
3
|
-
import { M as w } from "../mutation-
|
|
3
|
+
import { M as w } from "../mutation-Dmb9k9FG.js";
|
|
4
4
|
class P extends T {
|
|
5
5
|
_fetch;
|
|
6
6
|
_baseUrl;
|
package/dist/esm/retry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAgBtD,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrE;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const C=require("signalium"),A=require("signalium/utils"),Vt=require("./shared-Ct5zKrt4.js"),Nt=require("./stores/sync.js");var L=(e=>(e.Always="always",e.Online="online",e.OfflineFirst="offlineFirst",e))(L||{}),u=(e=>(e[e.UNDEFINED=1]="UNDEFINED",e[e.NULL=2]="NULL",e[e.NUMBER=4]="NUMBER",e[e.STRING=8]="STRING",e[e.BOOLEAN=16]="BOOLEAN",e[e.OBJECT=32]="OBJECT",e[e.ARRAY=64]="ARRAY",e[e.ID=128]="ID",e[e.RECORD=256]="RECORD",e[e.UNION=512]="UNION",e[e.ENTITY=1024]="ENTITY",e[e.HAS_FORMAT=4096]="HAS_FORMAT",e[e.IS_EAGER_FORMAT=8192]="IS_EAGER_FORMAT",e[e.PARSE_RESULT=16384]="PARSE_RESULT",e[e.LIVE=32768]="LIVE",e))(u||{});const I=Symbol("array"),F=Symbol("record"),dt=Symbol("QUERY_ID");var Z=(e=>(e[e.Array=0]="Array",e[e.Value=1]="Value",e))(Z||{});class ${type;entityDefs;constraintFieldRefs;sort;valueType;onCreate;onUpdate;onDelete;constructor(t,n,i,r,s,o,a,c){this.type=t,this.entityDefs=n,this.constraintFieldRefs=i,this.sort=r,this.valueType=s,this.onCreate=o,this.onUpdate=a,this.onDelete=c}static array(t,n,i){return new $(0,t,n,i,void 0,void 0,void 0,void 0)}static value(t,n,i,r,s,o){return new $(1,t,n,void 0,i,r,s,o)}}const R=new WeakMap;function P(e){return R.get(e)}var tt=(e=>(e[e.Query=0]="Query",e[e.Entity=1]="Entity",e))(tt||{});class Oe{constructor(t,n,i){this._onEvict=n,this._intervalId=setInterval(this._tick,t*6e4*i)}_currentFlush=new Map;_nextFlush=new Map;_intervalId;schedule(t,n){this._nextFlush.set(t,n)}cancel(t){this._currentFlush.delete(t),this._nextFlush.delete(t)}_tick=()=>{const{_currentFlush:t,_nextFlush:n,_onEvict:i}=this;for(const[r,s]of t)i(r,s);this._currentFlush=n,this._nextFlush=new Map};destroy(){clearInterval(this._intervalId)}}class Kt{_buckets=new Map;_nextTickEntries=new Map;_nextTickScheduled=!1;_onEvict;_multiplier;constructor(t,n=1){this._onEvict=t,this._multiplier=n}schedule(t,n,i){if(n===1/0)return;if(n===0){const{_nextTickEntries:o}=this;o.set(t,i),this._nextTickScheduled||(this._nextTickScheduled=!0,setTimeout(this._flushNextTick,0));return}const{_buckets:r}=this;let s=r.get(n);s||(s=new Oe(n,this._onEvict,this._multiplier),r.set(n,s)),s.schedule(t,i)}cancel(t,n){if(n!==1/0){if(n===0){this._nextTickEntries.delete(t);return}this._buckets.get(n)?.cancel(t)}}_flushNextTick=()=>{const{_nextTickEntries:t,_onEvict:n}=this;this._nextTickScheduled=!1;for(const[i,r]of t)n(i,r);t.clear()};destroy(){const{_buckets:t,_nextTickEntries:n}=this;for(const i of t.values())i.destroy();t.clear(),n.clear()}}class Bt{schedule(t,n,i){}cancel(t,n){}destroy(){}}const J=Symbol("fieldRef"),M=Symbol("fieldRefPath"),lt=Symbol("DEFINITION_TARGET"),X=Symbol("CANCEL_PROXY"),Re=/\[([^\]]+)\]/g;function Qt(e){const t={[J]:!0,[M]:e};return new Proxy(t,Se)}const Se={get(e,t){if(t===J)return!0;if(t===M)return e[M];if(t===Symbol.toPrimitive||t==="toString"||t==="valueOf"){const i=e[M];return()=>`[${i.join(".")}]`}if(typeof t=="symbol")return;const n=e[M];return Qt([...n,t])},has(e,t){return t===J||t===M}};function Yt(e){return typeof e=="object"&&e!==null&&e[J]===!0}function Gt(e){return e[M]}function ht(e){let t=!1;return new Proxy(e,{set(n,i,r){return n[i]=r,!0},get(n,i){if(t)throw new Error("Definition proxy accessed after extraction. Avoid arrow functions that capture `this`.");return i===lt?n:i===X?()=>{t=!0}:typeof i=="symbol"?n[i]:Qt([i])}})}function Ht(e){const t=e[lt];e[X]();const n={};for(const s of Object.getOwnPropertyNames(t))n[s]=t[s];const i={};let r=Object.getPrototypeOf(t);for(;r&&r!==Object.prototype;){for(const s of Object.getOwnPropertyNames(r)){if(s==="constructor")continue;const o=Object.getOwnPropertyDescriptor(r,s);typeof o.value=="function"&&!(s in i)&&(i[s]=o.value)}r=Object.getPrototypeOf(r)}return{fields:n,methods:i}}function yt(e,t){let n=t;for(const i of e){if(n==null)return;n=n[i]}return n}function xe(e,t){return e.replace(Re,(n,i)=>{const r=i.split("."),s=yt(r,t);return s!=null?encodeURIComponent(String(s)):""})}function Y(e,t){if(Yt(e))return yt(Gt(e),t);if(typeof e=="string")return xe(e,t);if(Array.isArray(e))return e.map(n=>Y(n,t));if(typeof e=="object"&&e!==null&&Object.getPrototypeOf(e)===Object.prototype){const n={};for(const i of Object.keys(e))n[i]=Y(e[i],t);return n}return e}function st(e,t,n){const i=e.fields,r=e.methods,s={params:t},o={};for(const[a,c]of Object.entries(i))o[a]=Y(c,s);o.params=t,o.context=n;for(const[a,c]of Object.entries(r))o[a]=c.bind(o);return o}class pt{static cache;constructor(){return ht(this)}}const Wt=Object.entries,ot=Object.keys;let zt=()=>{};{const t=(i,r)=>{if(i.size!==r.size)return!1;for(const s of i)if(!r.has(s))return!1;return!0},n=(i,r)=>{if(i===r)return!0;if(typeof i!=typeof r)return!1;if(typeof i=="number"){const s=r;if((i&65535)!==(s&65535))return!1;const o=i>>16,a=s>>16;return!(o!==0&&a!==0&&o!==a)}if(typeof i=="string")return i===r;if(i instanceof Set&&r instanceof Set)return t(i,r);if(i instanceof v&&r instanceof v){const s=i.mask,o=r.mask;if((s&65535)!==(o&65535))return!1;const a=s>>16,c=o>>16;if(a!==0&&c!==0&&a!==c)return!1;if(i.shape===r.shape)return!0;if(i.shape!==void 0&&r.shape!==void 0&&typeof i.shape=="object"&&typeof r.shape=="object"){const f=i.shape,l=r.shape;for(const d of Object.keys(f))if(d in l&&!n(f[d],l[d]))return!1;for(const d of Object.keys(l))if(d in f&&!n(f[d],l[d]))return!1}return!0}return!1};zt=(i,r,s,o)=>{if(!n(s,o))throw new Error(`[fetchium] Entity typename '${i}' has incompatible type for field '${r}' across different entity definitions`)}}function Dt(e){return typeof e=="number"?e|u.UNDEFINED:e instanceof v?(e.mask&u.UNDEFINED)!==0?e:v.cloneWith(e,u.UNDEFINED):e}function It(e){return e instanceof v&&(e.mask&u.OBJECT)!==0&&(e.mask&(u.ENTITY|u.ARRAY|u.UNION|u.RECORD|u.LIVE))===0}function Jt(e,t,n){const i=new Set;for(const s of e)if(s!==void 0)for(const o of Object.keys(s))i.add(o);const r={};for(const s of i){let o=0,a;const c=[];let f=!0;for(const l of e){const d=l?.[s];d!==void 0?(o++,a===void 0&&(a=d),a!==void 0&&d!==a&&!It(d)&&zt(n,s,a,d),It(d)?c.push(d.shape):(f=!1,c.push(void 0))):(f=!1,c.push(void 0))}if(f&&o>0){const l=Jt(c,t,n),d=new v(u.OBJECT,l);r[s]=o<t?Dt(d):d}else r[s]=o<t?Dt(a):a}return r}class v{mask;shape;typenameField=void 0;typenameValue=void 0;idField=void 0;values=void 0;_methods=void 0;_entityConfig=void 0;_entityClass=void 0;_entityCache=void 0;_liveConfig=void 0;constructor(t,n,i,r,s,o){this.mask=t,this.shape=n,this.values=i,this.typenameField=r,this.typenameValue=s,this.idField=o}static merge(t){if(t.length===1)return t[0];const n=t.length,i=t.map(f=>f.shape),r=t[0].typenameValue??"(unknown)",s=Jt(i,n,r);let o,a,c;for(const f of t){if(o===void 0&&f.idField!==void 0)o=f.idField;else if(o!==void 0&&f.idField!==void 0&&f.idField!==o)throw new Error(`[fetchium] Entity typename '${f.typenameValue}' has conflicting id fields: '${String(o)}' vs '${String(f.idField)}'`);a===void 0&&(a=f.typenameField),c===void 0&&(c=f.typenameValue)}return new v(u.ENTITY|u.OBJECT,s,void 0,a,c,o)}static cloneWith(t,n){const i=new v(n|t.mask,t.shape,t.values,t.typenameField,t.typenameValue,t.idField);return i._methods=t._methods,i._entityConfig=t._entityConfig,i._entityClass=t._entityClass,i._entityCache=t._entityCache,i._liveConfig=t._liveConfig,i}}class q extends Set{lowercaseMap;constructor(t){super(t),this.lowercaseMap=new Map;for(const n of t)if(typeof n=="string"){const i=n.toLowerCase(),r=this.lowercaseMap.get(i);if(r!==void 0)throw new Error(`Case-insensitive enum cannot have multiple values with the same lowercase form: '${r}' and '${n}' both become '${i}'`);this.lowercaseMap.set(i,n)}}has(t){return this.get(t)!==void 0}get(t){if(typeof t=="string")return this.lowercaseMap.get(t.toLowerCase());if(super.has(t))return t}}const Ae=1128875347;A.registerCustomHash(q,e=>{let t=Ae;for(const n of e)t+=A.hashValue(n);return t>>>0});function gt(e,t){return new v(e,t)}function Ne(e){return gt(u.ARRAY,e)}function De(e){return gt(u.RECORD|u.OBJECT,e)}function Ie(e){return gt(u.PARSE_RESULT,e)}function Xt(e,t){let n=e,i,r,s;for(const[o,a]of Wt(t))switch(typeof a){case"number":if((a&u.ID)!==0){if(i!==void 0)throw new Error(`Duplicate id field: ${o}`);i=o}break;case"string":if(r!==void 0&&r!==o)throw new Error(`Duplicate typename field: ${o}`);r=o,s=a;break;case"object":if(a instanceof q||a instanceof Set)break;a.mask&u.LIVE&&(n|=u.LIVE);break}return new v(n,t,void 0,r,s,i)}function Fe(e){return Xt(u.OBJECT,e)}function Ft(e,t,n){const i=e.mask;if((i&u.UNION)!==0){const r=e;if(r.typenameField!==void 0){if(n!==void 0&&n!==r.typenameField)throw new Error(`Union typename field conflict: Cannot merge unions with different typename fields ('${n}' vs '${r.typenameField}')`);n=r.typenameField}const s=r.shape;if(s!==void 0)for(const o of[...ot(s),I,F]){const a=s[o];if(t[o]!==void 0&&t[o]!==a)throw new Error(`Union merge conflict: Duplicate typename value '${String(o)}' found when merging nested unions (${String(t[o])} vs ${String(a)})`);t[o]=a}}else if((i&u.ARRAY)!==0){if(t[I]!==void 0)throw new Error("Array shape already defined");t[I]=e.shape}else if((i&u.RECORD)!==0){if(t[F]!==void 0)throw new Error("Record shape already defined");t[F]=e.shape}else{const r=e.typenameField,s=e.typenameValue;if(s===void 0)throw new Error("Object definitions must have a typename to be in a union with other objects, records, or arrays");if(n!==void 0&&r!==n)throw new Error("Object definitions must have the same typename field to be in the same union");n=r,t[s]=e}return n}function vt(...e){const t=e;let n=0,i=0,r,s,o,a,c=0;for(const l of t){if(typeof l=="number"){n|=l;continue}if(l instanceof Set){if(s===void 0)s=new Set(l);else for(const d of l)s.add(d);continue}if(i++,c|=l.mask,i===1){r=l;continue}i===2&&(o=Object.create(null),a=Ft(r,o,a)),a=Ft(l,o,a)}if(i===0)return s===void 0?n:n===0?s:new v(n|u.UNION,void 0,s);if(i===1)return v.cloneWith(r,n);const f=n|c|u.UNION;return new v(f,o,s,a)}function mt(e,t,n){const i=e;if(typeof i=="number")return i|t;if(i instanceof Set)return vt(e,t);let r=n.get(i);return r===void 0&&(r=v.cloneWith(i,t),n.set(i,r)),r}const Me=new WeakMap,ke=new WeakMap,Te=new WeakMap;function Pe(e){return mt(e,u.UNDEFINED|u.NULL,Te)}function je(e){return mt(e,u.UNDEFINED,Me)}function Le(e){return mt(e,u.NULL,ke)}function $e(e){return e}function Ue(e){return new Set([e])}const Zt=((...e)=>new Set(e));Zt.caseInsensitive=(...e)=>new q(e);const _t=16;let qe=0;const at=[],te=[],ee=new Map,ne=new Map,et=new WeakSet;class G{_raw;_formatted;_parsed;_formatId;constructor(t,n,i){this._raw=t,this._formatId=n,i?(this._formatted=at[n](t),this._parsed=!0):this._parsed=!1,et.add(this)}getValue(){return this._parsed||(this._formatted=at[this._formatId](this._raw),this._parsed=!0),this._formatted}toJSON(){return this._parsed?te[this._formatId](this._formatted):this._raw}}function Ve(e){const t=ee.get(e);if(t===void 0)throw new Error(`Format ${e} not registered`);return t}function Mt(e){const t=e>>_t;return ne.get(t)}function wt(e,t,n,i,r){const s=qe++;at[s]=n,te[s]=i,ne.set(s,e);const o=r?.eager??!0,c=s<<_t|t|u.HAS_FORMAT|(o?u.IS_EAGER_FORMAT:0);ee.set(e,c)}wt("date",u.STRING,e=>{const t=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)throw new Error(`Invalid date string: ${e}. Expected YYYY-MM-DD format.`);const[,n,i,r]=t,s=new Date(Date.UTC(parseInt(n,10),parseInt(i,10)-1,parseInt(r,10)));if(isNaN(s.getTime()))throw new Error(`Invalid date string: ${e}`);return s},e=>{const t=e.getUTCFullYear(),n=String(e.getUTCMonth()+1).padStart(2,"0"),i=String(e.getUTCDate()).padStart(2,"0");return`${t}-${n}-${i}`});wt("date-time",u.STRING,e=>{const t=new Date(e);if(isNaN(t.getTime()))throw new Error(`Invalid date-time string: ${e}`);return t},e=>e.toISOString());const kt=new WeakMap;function U(e){let t=kt.get(e);if(t===void 0){const n=new e,i=n[lt]??n;n[X]&&n[X]();const r={};for(const[f,l]of Wt(i)){if(!(typeof l=="number"||typeof l=="string"||l instanceof Set||l instanceof v||l instanceof q))throw new Error(`[fetchium] Entity '${e.name}' field '${f}' has an invalid type definition. All entity fields must be type definitions (e.g. t.string, t.number, t.entity(...), etc). Got: ${typeof l=="object"?l?.constructor?.name??typeof l:typeof l}`);r[f]=l}const s=Object.getPrototypeOf(e.prototype);if(s!=null){const f=s.constructor;if(f!==pt&&typeof f=="function"){const d=U(f).shape;for(const h of ot(d))if(h in r&&r[h]!==d[h])throw new Error(`Cannot extend: field '${h}' already exists in type definition`)}}const o={},a=e.prototype;for(const f of Object.getOwnPropertyNames(a))f!=="constructor"&&typeof a[f]=="function"&&(o[f]=a[f]);t=Xt(u.ENTITY|u.OBJECT,r),t._entityClass=e,ot(o).length>0&&(t._methods=o),typeof o.__subscribe=="function"&&(t._entityConfig={hasSubscribe:!0});const c=e;c.cache&&(t._entityCache=c.cache),kt.set(e,t)}return t}function Ke(e){return U(e)}function ie(e,t){if(t==null)return;const n=new Map;if(Array.isArray(t))for(const i of t){const[r,s]=i,a=U(r).typenameValue;if(a===void 0)continue;const c=[];for(const[f,l]of Object.entries(s))c.push([f,l]);c.length>0&&n.set(a,c)}else{const r=Object.entries(t);if(r.length===0)return;const s=r.map(([o,a])=>[o,a]);for(const o of e){const a=o.typenameValue;a!==void 0&&n.set(a,s)}}return n.size>0?n:void 0}function re(e){return Array.isArray(e)?e.map(t=>U(t)):[U(e)]}function Be(e,t){const n=re(e),i=n.length===1?n[0]:vt(...n.map(o=>o)),r=u.ARRAY|u.LIVE,s=new v(r,i);return s._liveConfig=$.array(n,ie(n,t?.constraints),t?.sort),s}function Qe(e,t,n){const i=re(t),r=e,s=u.LIVE,o=new v(s,void 0);return o._liveConfig=$.value(i,ie(i,n?.constraints),r,n.onCreate,n.onUpdate,n.onDelete),o}const se={format:Ve,typename:$e,const:Ue,enum:Zt,id:u.ID|u.STRING|u.NUMBER,string:u.STRING,number:u.NUMBER,boolean:u.BOOLEAN,null:u.NULL,undefined:u.UNDEFINED,array:Ne,object:Fe,record:De,union:vt,nullish:Pe,optional:je,nullable:Le,result:Ie,entity:Ke,liveArray:Be,liveValue:Qe};function Q(e){if(e instanceof q)return Array.from(e).map(i=>typeof i=="string"?`"${i}"`:String(i)).join(" | ");if(e instanceof Set)return Array.from(e).map(i=>typeof i=="string"?`"${i}"`:String(i)).join(" | ");if(typeof e=="string")return`"${e}"`;if(typeof e=="boolean")return String(e);if(typeof e=="number"){if((e&u.HAS_FORMAT)!==0){const r=Mt(e);if(r)return`"${r}"`}const i=[];return e&u.UNDEFINED&&i.push("undefined"),e&u.NULL&&i.push("null"),e&u.NUMBER&&i.push("number"),e&u.STRING&&i.push("string"),e&u.BOOLEAN&&i.push("boolean"),e&u.OBJECT&&i.push("object"),e&u.ARRAY&&i.push("array"),i.length===0?"unknown":i.length===1?i[0]:i.join(" | ")}let t=e.mask;if(t&u.UNION){const n=e,i=[];if(n.values!==void 0&&n.values.size>0)for(const s of n.values){const o=typeof s=="string"?`"${s}"`:String(s);i.push(o)}if(n.shape!==void 0){n.shape[I]!==void 0&&i.push(`Array<${Q(n.shape[I])}>`),n.shape[F]!==void 0&&i.push(`Record<string, ${Q(n.shape[F])}>`);for(const[s,o]of Object.entries(n.shape))s!==I&&s!==F&&i.push(s)}if(t=n.mask,(t&u.HAS_FORMAT)!==0){const s=Mt(t);s&&i.push(`"${s}"`)}return t&u.UNDEFINED&&i.push("undefined"),t&u.NULL&&i.push("null"),t&u.NUMBER&&i.push("number"),t&u.STRING&&i.push("string"),t&u.BOOLEAN&&i.push("boolean"),i.length===0?"union":i.join(" | ")}if(t&u.ENTITY)return`Entity<${e.typenameValue}>`;if(t&u.ARRAY){const n=e.shape;return`Array<${Q(n)}>`}if(t&u.RECORD){const n=e.shape;return`Record<string, ${Q(n)}>`}if(t&u.OBJECT){const n=e.typenameValue;return n?`Object<${n}>`:"object"}return"unknown"}function B(e,t,n){return new TypeError(`Validation error at ${e}: expected ${Q(t)}, got ${typeof n=="object"?n===null?"null":Array.isArray(n)?"array":"object":typeof n}`)}const oe=Array.isArray;function Tt(e){if(e===null)return u.NULL;switch(typeof e){case"number":return u.NUMBER;case"string":return u.STRING;case"boolean":return u.BOOLEAN;case"undefined":return u.UNDEFINED;case"object":return oe(e)?u.ARRAY:u.OBJECT;default:throw new Error(`Invalid type: ${typeof e}`)}}function Ye(e){return j(e)}function j(e){if(e===null||typeof e!="object")return e;if(oe(e))return e.map(n=>j(n));if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map){const n=new Map;for(const[i,r]of e)n.set(j(i),j(r));return n}if(e instanceof Set){const n=new Set;for(const i of e)n.add(j(i));return n}const t={};for(const n of Object.keys(e))t[n]=j(e[n]);return t}const Et=Object.entries,Ge=()=>{};class ct{queryClient=void 0;preloadedEntities=void 0;warn=Ge;isPartialEvent=!1;seen=void 0;seenByKey=void 0;reset(t,n,i,r=!1){this.queryClient=t,this.preloadedEntities=n,this.warn=i,this.isPartialEvent=r,t!==void 0&&(this.seen===void 0?(this.seen=new Map,this.seenByKey=new Map):(this.seen.clear(),this.seenByKey.clear()))}}function ae(e,t,n){return k(e,t,n,"")}function He(e,t,n){return bt(e,t,n)}function Pt(e,t,n,i){const r=e>>_t;if((e&u.IS_EAGER_FORMAT)!==0)try{return new G(t,r,!0)}catch(o){if((e&u.UNDEFINED)!==0){n.warn("Invalid formatted value for optional type, defaulting to undefined",{value:t,path:i,error:o instanceof Error?o.message:String(o)});return}throw o}return new G(t,r,!1)}function k(e,t,n,i){const r=t;if(r instanceof q){const c=r.get(e);if(c===void 0)throw B(i,r,e);return c}if(r instanceof Set){if(!r.has(e))throw B(i,r,e);return e}if(typeof r=="string"){if(e==null)return r;if(e!==r)throw B(i,r,e);return e}if(typeof r=="number"){const c=Tt(e);if((r&c)===0){if((r&u.UNDEFINED)!==0){n.warn("Invalid value for optional type, defaulting to undefined",{value:e,path:i});return}throw B(i,r,e)}return(r&u.HAS_FORMAT)!==0&&e!==null&&e!==void 0?Pt(r,e,n,i):e}const s=r.mask,o=r._liveConfig;if(o!==void 0&&o.type===Z.Value)return o.valueType!==void 0?k(e,o.valueType,n,i):e;if((s&u.PARSE_RESULT)!==0)try{return{success:!0,value:k(e,r.shape,n,i)}}catch(c){return{success:!1,error:c instanceof Error?c:new Error(String(c))}}const a=Tt(e);if((s&a)===0&&!r.values?.has(e)){if((s&u.UNDEFINED)!==0){n.warn("Invalid value for optional type, defaulting to undefined",{value:e,path:i});return}throw B(i,s,e)}return a<u.OBJECT?(s&u.HAS_FORMAT)!==0&&e!==null&&e!==void 0?Pt(s,e,n,i):e:(s&u.UNION)!==0?We(a,e,r,n,i):a===u.ARRAY?ce(e,r.shape,n,i):(s&u.RECORD)!==0?fe(e,r.shape,n,i):(s&u.ENTITY)!==0&&n.queryClient!==void 0?bt(e,r,n):ue(e,r,n,i)}function We(e,t,n,i,r){if(e===u.ARRAY){const s=n.shape[I];return s===void 0||typeof s=="number"?t:ce(t,s,i,r)}else{const s=n.typenameField,o=s?t[s]:void 0;if(o===void 0||typeof o!="string"){const c=n.shape[F];if(c===void 0)throw new Error(`Typename field '${s}' is required for union discrimination but was not found in the data`);return fe(t,c,i,r)}const a=n.shape[o];if(a===void 0||typeof a=="number")throw new Error(`Unknown typename '${o}' in union`);return a.mask&u.ENTITY&&i.queryClient!==void 0?bt(t,a,i):ue(t,a,i,r)}}function ce(e,t,n,i){const r=[];for(let s=0;s<e.length;s++)try{r.push(k(e[s],t,n,`${i}[${s}]`))}catch(o){n.warn("Failed to parse array item, filtering out",{index:s,value:e[s],error:o instanceof Error?o.message:String(o)})}return r}function fe(e,t,n,i){for(const[r,s]of Et(e))e[r]=k(s,t,n,`${i}["${r}"]`);return e}function ue(e,t,n,i){if(R.has(e))return e;const r=t.shape;for(const[s,o]of Et(r))e[s]=k(e[s],o,n,`${i}.${s}`);return e}function bt(e,t,n){const i=n.queryClient,r=n.preloadedEntities;let s,o;if(r!==void 0)s=e.__entityRef,o=s;else{const p=e[t.idField];if(p==null||typeof p!="string"&&typeof p!="number")throw new Error(`Entity id must be a string or number: ${t.typenameValue} (got ${typeof p})`);o=p,s=A.hashValue([t.typenameValue,o])}const a=n.seenByKey.get(s);if(a!==void 0)return a.data;if(r!==void 0){const w=i.entityMap.getEntity(s)?.data??r.get(s);if(w===void 0)throw new Error(`Cached entity ${s} not found in preloaded map`);e=w}const c={};typeof t.idField=="symbol"&&(c[t.idField]=o);const f=i.entityMap.getEntity(s),l=n.isPartialEvent&&f!==void 0,d={key:s,shape:t,data:c,rawKeys:l?new Set(Object.keys(e)):void 0};n.seen.set(c,d),n.seenByKey.set(s,d);const h=`[[${t.typenameValue}:${o}]]`,g=t.shape;for(const[p,w]of Et(g))l&&!(p in e)||(c[p]=k(e[p],w,n,`${h}.${p}`));return c}function ze(e,t){return Je(e,t.shape,t.typenameField)}function Je(e,t,n){if(t===void 0)return!0;for(const i of Object.keys(t)){if(i===n)continue;const r=t[i];if(r instanceof v){if((r.mask&u.UNDEFINED)!==0)continue;if(!(i in e)||e[i]===void 0)return!1}else if(typeof r=="number"){if((r&u.UNDEFINED)!==0)continue;if(!(i in e)||e[i]===void 0)return!1}else if(!(i in e)||e[i]===void 0)return!1}return!0}const Xe=Object.prototype,z=new WeakMap;function D(e){if(typeof e!="object"||e===null)return e;if(et.has(e))return D(e.getValue());if(R.has(e))return e;if(Array.isArray(e)){let t=z.get(e);return t===void 0&&(t=new Proxy(e,Ze),z.set(e,t)),t}if(Object.getPrototypeOf(e)===Xe){let t=z.get(e);return t===void 0&&(t=new Proxy(e,tn),z.set(e,t)),t}return e}const Ze={get(e,t,n){if(typeof t=="string"){const i=Number(t);if(Number.isInteger(i)&&i>=0&&i<e.length)return D(e[i])}return Reflect.get(e,t,n)},set(){throw new Error("Cannot mutate a read-only array")},deleteProperty(){throw new Error("Cannot mutate a read-only array")}},tn={get(e,t,n){return typeof t=="string"?D(e[t]):Reflect.get(e,t,n)},set(){throw new Error("Cannot mutate a read-only object")},deleteProperty(){throw new Error("Cannot mutate a read-only object")},has(e,t){return t in e},ownKeys(e){return Reflect.ownKeys(e)},getOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)}};class en{_notifier;_queryClient;_proxies=new Map;key;typename;id;idField;data;refCount=0;entityRefs;liveCollections=[];satisfiedDefs=new WeakSet;parseId=-1;_entityCache;_extraMethods;_extraGetters;constructor(t,n,i,r,s,o){this._notifier=C.notifier(),this._queryClient=o,this.key=t,this.typename=n,this.id=i,this.idField=r,this.data=s,this.entityRefs=void 0}retain(){this.refCount++;const t=this._entityCache?.gcTime;t!==void 0&&this._queryClient.gcManager.cancel(this.key,t)}release(){if(--this.refCount>0)return;if(this.refCount<0)throw new Error(`Entity ${this.typename}:${this.id} released more times than retained`);const t=this._entityCache?.gcTime;t!==void 0?this._queryClient.gcManager.schedule(this.key,t,tt.Entity):this.evict()}evict(){const t=this.liveCollections.slice();this.liveCollections.length=0;for(const i of t)i.destroy();this._queryClient.entityMap.remove(this.key);const n=this.entityRefs;if(this.entityRefs=void 0,n)for(const i of n.keys())i.release()}setChildRefs(t,n){const i=this.entityRefs;if(t!==void 0&&t.size>0)for(const r of t.keys())(i===void 0||!i.has(r))&&r.retain();if(i!==void 0&&i.size>0)for(const r of i.keys())(t===void 0||!t.has(r))&&r.release();this.entityRefs=t,n&&this.save()}addChildRef(t){this.entityRefs===void 0&&(this.entityRefs=new Map);const n=this.entityRefs.get(t)??0;this.entityRefs.set(t,n+1),n===0&&t.retain(),this.save()}removeChildRef(t){if(this.entityRefs===void 0)return;const n=this.entityRefs.get(t);n!==void 0&&(n<=1?(this.entityRefs.delete(t),t.release()):this.entityRefs.set(t,n-1),this.save())}getProxy(t){const n=t;let i=this._proxies.get(n);return i===void 0&&(i=rn(this,this.key,t,this._notifier,this._queryClient),this._proxies.set(n,i)),i}get proxy(){return this._proxies.values().next().value}satisfiesDef(t){return this.satisfiedDefs.has(t)?!0:ze(this.data,t)?(this.satisfiedDefs.add(t),!0):!1}save(){this._queryClient.entityMap.save(this)}notify(){this._notifier.notify()}consume(){this._notifier.consume()}}function nn(e,t,n){const i=[];for(const r of e){if(typeof r!="object"||r===null)continue;const s=R.get(r);if(s===void 0)continue;const o=n.entityMap.getEntity(s);o!==void 0&&o.satisfiesDef(t)&&i.push(r)}return i}function rn(e,t,n,i,r){const s=n.shape??{},o=n,a=o._methods,c=o._entityClass,f=o._entityConfig,l=c?c.prototype:pt.prototype,d=n.typenameField,h=new Map,g=new Map,p=()=>({__entityRef:t});let w;f?.hasSubscribe&&a&&"__subscribe"in a&&(w=C.relay(E=>{const y=b=>{b.__eventSource=t,r.applyMutationEvent(b)},_=a.__subscribe.call(m,y);return E.value=m,_}));let m;if(d&&!(d in s))throw new Error(`typenameField "${d}" must be declared in the entity shape`);const S=Object.keys(s);if(S.includes("__typename")||S.push("__typename"),a)for(const E of Object.keys(a))S.includes(E)||S.push(E);let T,x=S;function V(){const E=e._extraMethods;if(E!==T){if(T=E,x=S.slice(),E!==void 0)for(const _ of Object.keys(E))x.includes(_)||x.push(_);const y=e._extraGetters;if(y!==void 0)for(const _ of Object.keys(y))x.includes(_)||x.push(_)}return x}const K={getPrototypeOf(){return l},get(E,y){if(typeof y=="symbol")return;if(y==="toJSON")return p;if(y==="__context")return r.getContext();if(y==="__typename")return e.typename;if(w?.value,i.consume(),typeof y=="string"){const b=e._extraGetters;if(b!==void 0&&y in b)return b[y]();const N=e._extraMethods;if(N!==void 0&&y in N){let O=h.get(y);return O||(O=N[y].bind(m),h.set(y,O)),O}if(a&&y in a){let O=h.get(y);return O||(O=C.reactiveMethod(m,a[y].bind(m)),h.set(y,O)),O}}const _=e.data[y];if(typeof _=="object"&&_!==null&&et.has(_))return D(_.getValue());if(Array.isArray(_)&&typeof y=="string"){const b=s[y];if(b instanceof v&&(b.mask&u.ARRAY)!==0){const N=b.shape;if(N instanceof v&&(N.mask&u.ENTITY)!==0){const O=N.typenameValue;if(O!==void 0){const xt=r.getEntityDefsForTypename(O);if(xt!==void 0&&xt.length>1){const nt=g.get(y);if(nt!==void 0&&nt.source===_)return D(nt.filtered);const At=nn(_,N,r);return g.set(y,{source:_,filtered:At}),D(At)}}}}return D(_)}return D(_)},set(){throw new Error("Entity properties are read-only")},has(E,y){if(y==="__typename")return!0;if(typeof y=="string"){const _=e._extraGetters;if(_&&y in _)return!0;const b=e._extraMethods;if(b&&y in b||a&&y in a)return!0}return y in s},ownKeys(){return V()},getOwnPropertyDescriptor(E,y){if(y==="__typename")return{enumerable:!0,configurable:!0,value:e.typename,writable:!1};if(y in s)return{enumerable:!0,configurable:!0,value:K.get(E,y,m),writable:!1};if(typeof y=="string"){const _=e._extraGetters;if(_&&y in _)return{enumerable:!0,configurable:!0,value:K.get(E,y,m),writable:!1};const b=e._extraMethods;if(b&&y in b)return{enumerable:!0,configurable:!0,value:K.get(E,y,m),writable:!1};if(a&&y in a)return{enumerable:!1,configurable:!0,value:K.get(E,y,m),writable:!1}}}};return m=new Proxy({},K),R.set(m,t),C.setScopeOwner(m,r),m}class sn{instances=new Map;persistEntity;constructor(t){this.persistEntity=t}hasEntity(t){return this.instances.has(t)}getEntity(t){return this.instances.get(t)}getOrCreateEntity(t,n,i,r){let s=this.instances.get(t);if(s===void 0){const o=i.idField;if(o===void 0)throw new Error(`Entity id field is required ${i.typenameValue}`);const a=n[o];if(typeof a!="string"&&typeof a!="number")throw new Error(`Entity id must be string or number: ${i.typenameValue}`);const c=i;s=new en(t,i.typenameValue,a,o,n,r),s._entityCache=c._entityCache,this.instances.set(t,s)}return s.parseId=r.currentParseId,s}remove(t){this.instances.delete(t)}save(t){let n;if(t.entityRefs){n=new Set;for(const i of t.entityRefs.keys())n.add(i.key)}this.persistEntity(t.key,t.data,n)}}class Ct{onlineSignal;manualOverride=void 0;eventListenersAttached=!1;constructor(t){const n=t??this.detectOnlineStatus();this.onlineSignal=C.signal(n),this.canAttachListeners()&&this.attachEventListeners()}get isOnline(){return this.manualOverride!==void 0?this.manualOverride:this.onlineSignal.value}setNetworkStatus(t){this.manualOverride=t,this.onlineSignal.value=t}clearManualOverride(){this.manualOverride=void 0,this.onlineSignal.value=this.detectOnlineStatus()}getOnlineSignal(){return this.onlineSignal}detectOnlineStatus(){return typeof navigator<"u"&&"onLine"in navigator?navigator.onLine:!0}canAttachListeners(){return typeof window<"u"&&typeof window.addEventListener=="function"}destroy(){this.eventListenersAttached&&this.handleOnline&&this.handleOffline&&(window.removeEventListener("online",this.handleOnline),window.removeEventListener("offline",this.handleOffline),this.eventListenersAttached=!1)}handleOnline=void 0;handleOffline=void 0;attachEventListeners(){this.eventListenersAttached||(this.handleOnline=()=>{this.manualOverride===void 0&&(this.onlineSignal.value=!0)},this.handleOffline=()=>{this.manualOverride===void 0&&(this.onlineSignal.value=!1)},window.addEventListener("online",this.handleOnline),window.addEventListener("offline",this.handleOffline),this.eventListenersAttached=!0)}}class Ot{static onlineSignal=C.signal(!0);get isOnline(){return!0}setNetworkStatus(t){}clearManualOverride(){}getOnlineSignal(){return Ot.onlineSignal}destroy(){}}const de=new Ct,on=C.context(de);function Rt(e,t=typeof window>"u"){let n;e===!1?n=0:e===void 0||e===!0?n=t?0:3:typeof e=="number"?n=e:n=e.retries;const i=typeof e=="object"&&e.retryDelay?e.retryDelay:r=>1e3*Math.pow(2,r);return{retries:n,retryDelay:i}}class an{static cache;static adapter;params;config;constructor(){return ht(this)}}const jt=new WeakMap;class W{constructor(t,n){this.captured=n,this.statics=t}statics;createExecutionContext(t,n){return st(this.captured,t,n)}resolveOptions(t){const{methods:n}=this.captured,i=n.getConfig?n.getConfig.call(t):t.config,r=Rt(i?.retry);return{config:i,retryConfig:r}}static for(t){let n=jt.get(t);if(n!==void 0)return n;const i=new t,r=Ht(i),s=String(r.methods.getIdentityKey.call(r.fields)),o=r.fields.result,a=o instanceof v?o:se.object(o),c=(a.mask&u.ENTITY)!==0,f=t.cache,l=r.fields.fetchNext,d=t.adapter;if(!d)throw new Error(`Query class "${t.name}" must define a static \`adapter\` property. Extend RESTQuery (from fetchium/rest) or set \`static adapter = MyAdapter\` on your query class.`);const h=typeof d.prototype.sendNext=="function",g=c?a:new v(u.ENTITY|u.OBJECT,a.shape,void 0,void 0,s,dt);return n=new W({id:s,shape:g,cache:f,rawFetchNext:l,hasSendNext:h,isEntityResult:c,adapterClass:d},r),jt.set(t,n),n}}const cn=(e,t)=>{const n=W.for(e);return St(n,t)};function fn(e,...t){const n=W.for(e),i=C.getContext(Ce);if(i===void 0)throw new Error("QueryClient not found");const r=t[0];return i.getQuery(n,r)}function le(e,t){return new Promise((n,i)=>{if(t?.aborted){i(t.reason);return}const r=setTimeout(n,e);t?.addEventListener("abort",()=>{clearTimeout(r),i(t.reason)},{once:!0})})}async function ft(e,t,n){if(t.retries<0)throw new Error("retries must be non-negative");const i=Math.max(0,t.retries);let r;for(let s=0;s<=i;s++){n?.throwIfAborted();try{return await e()}catch(o){if(r=o,s>=i)throw o;await le(t.retryDelay(s),n)}}throw r}class un{def;queryKey;storageKey=-1;relay;queryClient;initialized=!1;updatedAt=void 0;params=void 0;unsubscribe=void 0;_relayState=void 0;wasPaused=!1;currentParams=void 0;debounceTimer=void 0;config=void 0;retryConfig=Rt(void 0);_abortController=void 0;_executionCtx=void 0;_executionCtxKey=-1;rootEntity;_extraMethods={};_queryId=0;get key(){return this.queryKey}get relayState(){if(!this._relayState)throw new Error("Relay state not initialized");return this._relayState}constructor(t,n,i,r){this.def=t,this.queryClient=n,this.queryKey=i,this.params=r,this._extraMethods={__refetch:this.refetch},t.statics.hasSendNext&&(this._extraMethods.__fetchNext=this.fetchNext);const s=qt(r);this._queryId=s!==void 0?A.hashValue(s):0,this.relay=C.relay(o=>{this._relayState=o;const a=()=>{clearTimeout(this.debounceTimer),this.debounceTimer=void 0,this._abortController?.abort(),this._abortController=void 0,this._fetchNextAbort?.abort(),this._fetchNextAbort=void 0,this._fetchNextPromise=void 0,this.unsubscribe?.(),this.unsubscribe=void 0;const f=this.config?.gcTime??Vt.DEFAULT_GC_TIME;this.queryClient.gcManager.schedule(this.queryKey,f,tt.Query)},c=(f=!1)=>{const{wasPaused:l,isPaused:d,initialized:h}=this;if(this.wasPaused=d,d&&!l&&h){a();return}const g=qt(this.params),p=St(this.def,g),w=p!==this.storageKey;w&&(this.currentParams=g,this.storageKey=p),this.getOrCreateExecutionContext(),this.initialized?l||f?(this.queryClient.activateQuery(this),f&&this.updatedAt!==void 0&&this.setupSubscription(),(this.config?.refreshStaleOnReconnect??!0)&&this.isStale&&this.runDebounced()):w&&(this.setupSubscription(),this.runDebounced()):(this.queryClient.activateQuery(this),this.initialize())};return c(!0),{update:c,deactivate:a}},{desc:`Query(${t.statics.id})`})}applyData(t,n,i=!1,r){const s=this.def;return this.rootEntity=this.queryClient.parseAndApplyRootEntity(t,this._queryId,s.statics.shape,n,i,r),this.rootEntity._extraMethods===void 0&&(this.rootEntity._extraMethods=this._extraMethods,this.rootEntity._extraGetters={__hasNext:()=>this.hasNext,__isFetchingNext:()=>this._fetchNextPromise!==void 0}),this.rootEntity.getProxy(s.statics.shape)}saveQueryMetadata(){if(this.rootEntity===void 0||this.updatedAt===void 0)return;const t=new Map(this.rootEntity.entityRefs??[]);t.set(this.rootEntity,1),this.queryClient.saveQueryData(this.def,this.storageKey,{__entityRef:this.rootEntity.key},this.updatedAt,t)}async initialize(){const t=this.queryClient,n=this.relayState;this.initialized=!0;let i;try{i=await t.loadCachedQuery(this.def,this.storageKey),i!==void 0&&(this.updatedAt=i.updatedAt,n.value=this.applyData(i.value,!1,!1,i.preloadedEntities))}catch(r){t.store.deleteQuery(this.storageKey),t.getContext().log?.warn?.("Failed to initialize query, the query cache may be corrupted or invalid",r)}if(!this.isPaused)try{if(i!==void 0&&this.setupSubscription(),i===void 0||this.isStale){if(await le(0),this.isPaused)return;this.runQueryImmediately()}}catch(r){n.setError(r)}}setupSubscription(){this.unsubscribe?.(),this.unsubscribe=void 0;const t=this.config?.subscribe;if(!t)return;const n=this._executionCtx;this.unsubscribe=t.call(n,i=>{i.__eventSource=this.queryKey,this.queryClient.applyMutationEvent(i)})}getOrCreateExecutionContext(){return(this._executionCtx===void 0||this._executionCtxKey!==this.storageKey)&&(this._executionCtxKey=this.storageKey,this._executionCtx=this.def.createExecutionContext(this.currentParams??{},this.queryClient.getContext()),this._executionCtx.refetch=()=>this.refetch(),this._executionCtx.rawFetchNext=this.def.statics.rawFetchNext),this.resolveAndApplyOptions(),this._executionCtx}resolveAndApplyOptions(){const t=this.def.resolveOptions(this._executionCtx);this.config=t.config,this.retryConfig=t.retryConfig}async runQuery(){const t=this.def;if(this.isPaused)throw new Error("Query is paused due to network status");const n=this.getOrCreateExecutionContext(),i=this.queryClient.getAdapter(t.statics.adapterClass),r=this._abortController?.signal??new AbortController().signal;return ft(async()=>{const s=await i.send(n,r);this.updatedAt=Date.now();const o=this.applyData(s,!0);return this.saveQueryMetadata(),this.unsubscribe===void 0&&this.setupSubscription(),o},this.retryConfig,r)}runQueryImmediately(){this._abortController?.abort(),this._abortController=new AbortController,this._fetchNextAbort?.abort(),this._fetchNextAbort=void 0,this._fetchNextPromise=void 0,this.relayState.setPromise(this.runQuery())}runDebounced(){if(this.relayState.isPending)return;const t=this.config?.debounce??0;clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.debounceTimer=void 0,this.runQueryImmediately()},t)}refetch=()=>this.relayState.isPending?this.relay:(this.runQueryImmediately(),this.relay);markStale(){this.updatedAt=0}get resolvedParams(){return this.currentParams}_fetchNextPromise=void 0;_fetchNextAbort=void 0;fetchNext=()=>{if(this.updatedAt===void 0)throw new Error("Cannot call __fetchNext before initial data has loaded");return this._fetchNextPromise!==void 0?this._fetchNextPromise:(queueMicrotask(()=>this.rootEntity?.notify()),this._fetchNextPromise=this.runFetchNext().then(t=>(this._fetchNextPromise=void 0,this.rootEntity?.notify(),t),t=>{throw this._fetchNextPromise=void 0,this.rootEntity?.notify(),t}),this._fetchNextPromise)};get hasNext(){if(this.rootEntity===void 0||!this._executionCtx)return!1;const t=this.queryClient.getAdapter(this.def.statics.adapterClass);return t.hasNext?(this._executionCtx.resultData=this.rootEntity.data,t.hasNext(this._executionCtx)):!1}async runFetchNext(){const t=this.def;this._fetchNextAbort=new AbortController;const n=this._fetchNextAbort.signal,i=this.getOrCreateExecutionContext();i.resultData=this.rootEntity.data;const r=this.queryClient.getAdapter(t.statics.adapterClass);return ft(async()=>{const s=await r.sendNext(i,n);this.updatedAt=Date.now();const o=this.applyData(s,!0,!0);return this.saveQueryMetadata(),o},this.retryConfig,n)}get isStale(){if(this.updatedAt===void 0)return!0;const t=this.config?.staleTime??0;return Date.now()-this.updatedAt>=t}get isPaused(){const t=this.config?.networkMode??L.Online;if(t===L.Always)return!1;const n=this.queryClient.networkManager.getOnlineSignal().value;switch(t){case L.Online:return!n;case L.OfflineFirst:return!n&&this.updatedAt===void 0;default:return!1}}}class dn{def;queryClient;_inFlight=!1;task;constructor(t,n){this.def=t,this.queryClient=n,this.task=this.createTask()}createTask(){return C.task(async t=>{if(this._inFlight)throw new Error("A mutation is already in progress. Await the previous call before starting a new one.");this._inFlight=!0;try{const n=await this.executeWithRetry(t),i=this.validateResponse(n);return this.processEffects(t,i),i}finally{this._inFlight=!1}},{desc:`Mutation(${this.def.id})`})}validateResponse(t){const n=this.def.responseShape;if(!(n instanceof v))return t;const i=this.queryClient.getContext().log?.warn??(()=>{}),r=new ct;return r.reset(void 0,void 0,i),ae(t,n,r)}processEffects(t,n){let i;if(this.def.hasGetEffects){const s=st(this.def.captured,t??{},this.queryClient.getContext());s.result=n,i=s.getEffects()}else if(this.def.effects!==void 0){const s={params:t,result:n};i=Y(this.def.effects,s)}if(i===void 0)return;const r=this.queryClient;it(i.creates,"create",r),it(i.updates,"update",r),it(i.deletes,"delete",r),i.invalidates&&r.invalidateQueries(i.invalidates)}executeWithRetry(t){const n=Rt(this.def.config?.retry,!0),i=this.queryClient.getAdapter(this.def.adapterClass);if(!i.sendMutation)throw new Error(`Adapter "${this.def.adapterClass.name}" does not implement sendMutation(). Add a sendMutation() method to handle mutations.`);return ft(async()=>{const r=new AbortController,s=st(this.def.captured,t??{},this.queryClient.getContext());return await i.sendMutation(s,r.signal)},n)}}function ln(e){return typeof e=="string"?e:U(e).typenameValue}function it(e,t,n){if(e)for(const[i,r]of e){const s=ln(i);s!==void 0&&n.applyMutationEvent({type:t,typename:s,data:r})}}const he="__eventSource";function ye(e){return{field:e,segments:e.indexOf(".")!==-1?e.split("."):void 0}}function hn(e){return e.map(ye)}function yn(e,t){if(t.segments===void 0)return e[t.field];let n=e;for(const i of t.segments){if(n==null)return;n=n[i]}return n}function pe(e,t){const n=[];for(let i=0;i<t.length;i++){const r=t[i],s=yn(e,r);if(s===void 0)return;n.push(r.field,s)}return A.hashValue(n)}function pn(e,t){if(e===void 0)return;const n=new Map;for(const[i,r]of e){const s=r.slice().sort((c,f)=>c[0]<f[0]?-1:c[0]>f[0]?1:0),o=[];let a=!0;for(const[c,f]of s){let l;if(Yt(f)){const d=Gt(f);l=yt(d,t)}else l=f;if(l===void 0){a=!1;break}o.push(c,l)}a&&n.set(i,A.hashValue(o))}return n.size>0?n:void 0}function Lt(e,t){const n=e.get(t);if(n!==void 0)return n.map(([i])=>i).sort()}class gn{fields;fieldPaths;_bindings=new Map;constructor(t){this.fields=t,this.fieldPaths=t.map(ye)}register(t,n){let i=this._bindings.get(t);i===void 0&&(i=new Set,this._bindings.set(t,i)),i.add(n)}unregister(t,n){const i=this._bindings.get(t);i!==void 0&&(i.delete(n),i.size===0&&this._bindings.delete(t))}getMatching(t){return this._bindings.get(t)}get isEmpty(){return this._bindings.size===0}}function $t(e){return A.hashValue(e)}class vn{_groups=new Map;getOrCreateGroup(t){const n=$t(t);let i=this._groups.get(n);return i===void 0&&(i=new gn(t),this._groups.set(n,i)),i}register(t,n,i){this.getOrCreateGroup(n).register(t,i)}unregister(t,n,i){const r=$t(n),s=this._groups.get(r);s!==void 0&&(s.unregister(t,i),s.isEmpty&&this._groups.delete(r))}registerBinding(t,n){const i=t._constraintHashes.get(n);if(i===void 0)return;const r=Lt(t._constraintFieldRefs,n);r!==void 0&&this.register(i,r,t)}unregisterBinding(t,n){const i=t._constraintHashes.get(n);if(i===void 0)return;const r=Lt(t._constraintFieldRefs,n);r!==void 0&&this.unregister(i,r,t)}routeEvent(t,n,i,r,s,o){for(const a of this._groups.values()){const c=pe(n,a.fieldPaths);if(c===void 0)continue;const f=a.getMatching(c);if(f!==void 0)for(const l of f)l.onEvent(t,i,r,s,o)}}}function Ut(e){const t=new Set;for(const n of e)if(typeof n=="object"&&n!==null){const i=P(n);i!==void 0&&t.add(i)}return t}class ge{_queryClient;_parent;_constraintHashes;_entityDefsByTypename;_constraintFieldRefs;instance;constructor(t,n,i,r,s,o){this._queryClient=i,this._parent=r,this._constraintHashes=s,this._constraintFieldRefs=n,this.instance=o,this._entityDefsByTypename=new Map;for(const a of t)a.typenameValue!==void 0&&this._entityDefsByTypename.set(a.typenameValue,a);et.add(this)}getValue(){return this.instance.getValue()}toJSON(){return this.instance.getRawValue()}reset(t){this.instance.reset(t)}append(t){this.instance.append(t)}onEvent(t,n,i,r,s){const o=this._entityDefsByTypename.get(t);if(o===void 0)return;const a=this._queryClient.entityMap.getEntity(n);if(i==="delete"){const f=a!==void 0?a.getProxy(o):s;f!==void 0&&(this.instance.onEvent(n,f,s??a?.data??{},"delete"),r?.());return}if(a===void 0||!a.satisfiesDef(o))return;r?.();const c=a.getProxy(o);this.instance.onEvent(n,c,a.data,i)}destroy(){this._queryClient.unregisterLiveCollection(this);const t=this._parent.liveCollections,n=t.indexOf(this);n!==-1&&t.splice(n,1)}}class mn{_notifier;_items;_keys;_outputSignal;_queryClient;_parent;constructor(t,n,i,r,s,o){this._notifier=C.notifier(),this._items=i,this._keys=Ut(i),this._queryClient=t,this._parent=n;const a=r!==void 0&&s!==void 0,c=o!==void 0;(a||c)&&(this._outputSignal=C.reactiveSignal(()=>{this._notifier.consume();let f=this._items;if(a){const l=[];for(const d of f){if(typeof d!="object"||d===null){l.push(d);continue}const h=P(d);if(h===void 0){l.push(d);continue}const g=t.entityMap.getEntity(h);if(g===void 0){l.push(d);continue}g.consume(),pe(g.data,r)===s&&l.push(d)}f=l}return c&&(f=(f===this._items?f.slice():f).sort(o)),f}))}onEvent(t,n,i,r){switch(r){case"create":this.add(t,n);break;case"update":!this.has(t)&&n!==void 0&&this.add(t,n);break;case"delete":this.remove(t);break}}getValue(){return this._outputSignal!==void 0?this._outputSignal.value:(this._notifier.consume(),this._items)}getRawValue(){return this._items}add(t,n){if(this._keys.has(t))return!1;this._keys.add(t),this._items.push(n);const i=this._queryClient.entityMap.getEntity(t);return i!==void 0&&(this._parent.addChildRef(i),i.save()),this._notifier.notify(),!0}remove(t){if(!this._keys.has(t))return!1;this._keys.delete(t);const n=this._findIndex(t);n!==-1&&this._items.splice(n,1);const i=this._queryClient.entityMap.getEntity(t);return i!==void 0&&this._parent.removeChildRef(i),this._notifier.notify(),!0}has(t){return this._keys.has(t)}reset(t){const n=this._items,i=Array.isArray(t)?t:[];this._items=i,this._keys=Ut(i);for(const r of i)if(typeof r=="object"&&r!==null){const s=P(r);if(s!==void 0){const o=this._queryClient.entityMap.getEntity(s);o!==void 0&&this._parent.addChildRef(o)}}for(const r of n)if(typeof r=="object"&&r!==null){const s=P(r);if(s!==void 0){const o=this._queryClient.entityMap.getEntity(s);o!==void 0&&this._parent.removeChildRef(o)}}this._notifier.notify()}append(t){if(Array.isArray(t))for(const n of t){if(typeof n!="object"||n===null)continue;const i=P(n);i!==void 0&&this.add(i,n)}}_findIndex(t){for(let n=0;n<this._items.length;n++){const i=this._items[n];if(typeof i=="object"&&i!==null&&P(i)===t)return n}return-1}}class _n{_notifier;_value;_createdKeys;_deletedKeys;_queryClient;_parent;_onCreate;_onUpdate;_onDelete;constructor(t,n,i,r,s,o){this._notifier=C.notifier(),this._value=i,this._createdKeys=new Set,this._deletedKeys=new Set,this._queryClient=t,this._parent=n,this._onCreate=r,this._onUpdate=s,this._onDelete=o}onEvent(t,n,i,r){switch(r){case"create":if(this._createdKeys.has(t))return;this._createdKeys.add(t),this._value=this._onCreate(this._value,n);break;case"update":this._value=this._onUpdate(this._value,n??i);break;case"delete":if(this._deletedKeys.has(t))return;this._deletedKeys.add(t),this._value=this._onDelete(this._value,n??i);break}this._notifier.notify()}getValue(){return this._notifier.consume(),this._value}getRawValue(){return this._value}reset(t){this._value=t,this._createdKeys.clear(),this._deletedKeys.clear(),this._notifier.notify()}append(t){}}function ve(e,t,n,i,r){let s=e.constraintFieldRefs;if(s===void 0){s=new Map;for(const f of e.entityDefs){const l=f.typenameValue;l!==void 0&&s.set(l,[[he,n.key]])}}const o=pn(s,i)??new Map;let a;if(e.type===Z.Array){let f,l;if(e.constraintFieldRefs!==void 0&&o.size>0&&o.size===1)for(const[d]of e.constraintFieldRefs){const h=o.get(d);if(h!==void 0){l=h;const g=e.constraintFieldRefs.get(d);g!==void 0&&(f=hn(g.map(([p])=>p)));break}}a=new mn(r,n,Array.isArray(t)?t:[],f,l,e.sort)}else a=new _n(r,n,t,e.onCreate,e.onUpdate,e.onDelete);const c=new ge(e.entityDefs,s,r,n,o,a);return n.liveCollections.push(c),r.registerLiveCollection(c),c}const me=Object.entries,_e=Object.prototype;function rt(e,t,n,i=!1){const r=e.queryClient;r.currentParseId++;const s=e.seen,o=new Map;return{data:H(t,s,r,n,o,i),entityRefs:o}}function H(e,t,n,i,r,s){if(typeof e!="object"||e===null)return e;const o=t.get(e);if(o!==void 0)return wn(o,t,n,i,r,s);if(Array.isArray(e)){for(let a=0;a<e.length;a++){const c=e[a];typeof c=="object"&&c!==null&&!(c instanceof G)&&!R.has(c)&&(e[a]=H(c,t,n,i,r,s))}return e}if(Object.getPrototypeOf(e)===_e&&!R.has(e)){const a=e;for(const c of Object.keys(a)){const f=a[c];typeof f=="object"&&f!==null&&!(f instanceof G)&&!R.has(f)&&(a[c]=H(f,t,n,i,r,s))}}return e}function we(e){return typeof e=="object"&&e!==null&&!(e instanceof G)&&!R.has(e)}function wn(e,t,n,i,r,s){const{key:o,data:a,shape:c,rawKeys:f}=e,l=c.shape,d=n.prepareEntity(o,a,c),h=d.data,g=h!==a,p=g&&f!==void 0&&d.entityRefs!==void 0?new Map(d.entityRefs):new Map;if(g?(Ee(l,a,h,f,d,h,t,n,i,p,s),d.notify()):be(l,a,d,a,t,n,i,p,s),s&&d.liveCollections.length>0)for(const m of d.liveCollections){const S=m.instance.getRawValue();if(Array.isArray(S))for(const T of S){if(typeof T!="object"||T===null)continue;const x=R.get(T);if(x===void 0)continue;const V=n.entityMap.getEntity(x);V!==void 0&&p.set(V,(p.get(V)??0)+1)}}d.setChildRefs(p.size>0?p:void 0,i);const w=d.getProxy(c);return r.set(d,(r.get(d)??0)+1),w}function Ee(e,t,n,i,r,s,o,a,c,f,l){for(const[d,h]of me(e))if(!(i!==void 0&&!i.has(d)))if(we(t[d])&&(t[d]=H(t[d],o,a,c,f,l)),h instanceof v&&h._liveConfig!==void 0){const g=n[d];g instanceof ge?l?g.append(t[d]):g.reset(t[d]):n[d]=ve(h._liveConfig,t[d],r,s,a)}else{const g=t[d],p=n[d];if(ut(g)&&ut(p)){const w=h instanceof v&&h.shape!==void 0?h.shape:void 0;if(w!==void 0)Ee(w,g,p,void 0,r,s,o,a,c,f,l);else for(const m of Object.keys(g))p[m]=g[m];n[d]=p}else n[d]=g}}function be(e,t,n,i,r,s,o,a,c){for(const[f,l]of me(e))if(f in t)if(we(t[f])&&(t[f]=H(t[f],r,s,o,a,c)),l instanceof v&&l._liveConfig!==void 0)t[f]=ve(l._liveConfig,t[f],n,i,s);else{const d=t[f];if(ut(d)){const h=l instanceof v&&l.shape!==void 0?l.shape:void 0;h!==void 0&&be(h,d,n,i,r,s,o,a,c)}}}function ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===_e&&!R.has(e)}function En(e){if(e!==void 0)return typeof e=="string"?e:typeof e=="function"?e():e.value}function bn(e){return C.isSignal(e)}function qt(e){if(e===void 0)return;const t={};for(const[n,i]of Object.entries(e))bn(i)?t[n]=i.value:t[n]=i;return t}const St=(e,t)=>A.hashValue([e.statics.id,t]);class Cn{entityMap;queryInstances=new Map;mutationInstances=new Map;gcManager;networkManager;isServer;store;currentParseId=0;context;typenameRegistry=new Map;constraintRegistry=new Map;mergedDefCache=new Map;adapters=new Map;networkUnsubscribe;constructor(t={}){const{store:n=new Nt.SyncQueryStore(new Nt.MemoryPersistentStore),log:i,evictionMultiplier:r,adapters:s,networkManager:o,gcManager:a,...c}=t;this.isServer=typeof window>"u",this.store=n,this.context={...c,log:i??console,evictionMultiplier:r},this.gcManager=t.gcManager??(this.isServer?new Bt:new Kt(this.handleEviction,r)),this.networkManager=t.networkManager??new Ct,this.entityMap=new sn((d,h,g)=>this.store.saveEntity(d,h,g));for(const d of t.adapters??[])this.adapters.set(d.constructor,d),d.register(this);const f=this.networkManager.getOnlineSignal(),l=C.watcher(()=>f.value);this.networkUnsubscribe=l.addListener(()=>{const d=f.value;for(const h of this.adapters.values())h.onNetworkStatusChange?.(d)},{skipInitial:!0}),this.store.purgeStaleQueries?.()}getAdapter(t){let n=this.adapters.get(t);if(!n){try{n=new t}catch{throw new Error(`No adapter registered for ${t.name} and auto-instantiation failed. Pass an instance via QueryClient config: new QueryClient({ store, adapters: [new ${t.name}(...)] })`)}this.adapters.set(t,n),n.register(this)}return n}getContext(){return this.context}registerEntityDef(t){const n=t.typenameValue;if(n===void 0||t._entityClass===void 0)return;const i=this.typenameRegistry.get(n);if(i!==void 0){if(i.indexOf(t)!==-1)return;i.push(t),this.mergedDefCache.delete(n),this.getMergedDef(n)}else this.typenameRegistry.set(n,[t])}getEntityDefsForTypename(t){return this.typenameRegistry.get(t)}getMergedDef(t){let n=this.mergedDefCache.get(t);if(n!==void 0)return n;const i=this.typenameRegistry.get(t);if(i!==void 0)return n=v.merge(i),this.mergedDefCache.set(t,n),n}saveQueryData(t,n,i,r,s){const o=s!==void 0&&s.size>0?new Set([...s.keys()].map(a=>a.key)):void 0;this.store.saveQuery(t,n,i,r,o)}activateQuery(t){const{def:n,queryKey:i,storageKey:r,config:s}=t;this.store.activateQuery(n,r);const o=s?.gcTime??Vt.DEFAULT_GC_TIME;this.gcManager.cancel(i,o)}loadCachedQuery(t,n){return this.store.loadQuery(t,n)}getQuery(t,n){const i=St(t,n);let r=this.queryInstances.get(i);return r===void 0&&(r=new un(t,this,i,n),this.queryInstances.set(i,r)),r.relay}getMutation(t){const n=t.id;let i=this.mutationInstances.get(n);return i===void 0&&(i=new dn(t,this),this.mutationInstances.set(n,i)),i.task}parseData(t,n,i){const r=this.context.log?.warn??(()=>{}),s=new ct;return s.reset(this,i,r),{data:ae(t,n,s),ctx:s}}applyRefs(t,n=!0,i=!1){return rt(t.ctx,t.data,n,i)}parseAndApplyRootEntity(t,n,i,r,s=!1,o){typeof i.idField=="symbol"&&typeof t=="object"&&t!==null&&!("__entityRef"in t)&&(t[dt]=n);const a=this.parseData(t,i,o),c=rt(a.ctx,a.data,r,s),f=R.get(c.data);return this.entityMap.getEntity(f)}prepareEntity(t,n,i){return this.registerEntityDef(i),this.entityMap.getOrCreateEntity(t,n,i,this)}applyMutationEvent(t){const{type:n,typename:i}=t,r=this.getMergedDef(i);if(r===void 0)return;const s=r.idField;if(s===void 0||typeof s=="symbol")return;const o=t.data,a=t.id!==void 0?t.id:n==="delete"&&(typeof o=="string"||typeof o=="number")?o:o[s];if(a===void 0)return;const c=A.hashValue([i,a]),f=t.__eventSource,l=typeof o=="object"&&o!==null?o:{},d=this.entityMap.getEntity(c);if(n==="delete"){const w=d!==void 0?d.data:l;this.routeEvent(i,w,c,n,f,void 0,w);return}try{const w=this.context.log?.warn??(()=>{}),m=new ct;m.reset(this,void 0,w,!0);const S=He(l,r,m);rt(m,S,!0)}catch(w){if(this.context.log?.warn?.("Failed to apply mutation event",w),d===void 0){const m=this.entityMap.getEntity(c);m!==void 0&&m.evict()}return}const h=this.entityMap.getEntity(c);if(h===void 0)return;this.entityMap.save(h);const g=d===void 0;let p=!1;this.routeEvent(i,h.data,c,n,f,()=>{p=!0}),g&&!p&&h.evict()}invalidateQueries(t){for(const n of t){const i=Array.isArray(n),r=i?n[0]:n,s=i?n[1]:void 0,a=W.for(r).statics.id;for(const[,c]of this.queryInstances)c.def.statics.id===a&&(s===void 0||On(c.resolvedParams,s))&&c.markStale()}}handleEviction=(t,n)=>{if(n===tt.Query){const r=this.queryInstances.get(t);if(r===void 0)return;r.rootEntity?.evict(),this.queryInstances.delete(t);return}const i=this.entityMap.getEntity(t);i!==void 0&&i.evict()};getOrCreateMatcher(t){let n=this.constraintRegistry.get(t);return n===void 0&&(n=new vn,this.constraintRegistry.set(t,n)),n}registerLiveCollection(t){for(const[n,i]of t._entityDefsByTypename)this.registerEntityDef(i),this.getOrCreateMatcher(n).registerBinding(t,n)}unregisterLiveCollection(t){for(const n of t._entityDefsByTypename.keys()){const i=this.constraintRegistry.get(n);i!==void 0&&i.unregisterBinding(t,n)}}routeEvent(t,n,i,r,s,o,a){const c=this.constraintRegistry.get(t);if(c===void 0)return;const f=s!==void 0?{...n,[he]:s}:n;c.routeEvent(t,f,i,r,o,a)}destroy(){this.networkUnsubscribe?.(),this.gcManager.destroy(),this.networkManager.destroy();for(const t of this.adapters.values())t.destroy?.();this.adapters.clear(),this.queryInstances.clear(),this.mutationInstances.clear(),this.constraintRegistry.clear(),this.typenameRegistry.clear(),this.mergedDefCache.clear()}}const Ce=C.context(void 0);function On(e,t){if(e===void 0)return!1;for(const n in t)if(e[n]!==t[n])return!1;return!0}exports.ARRAY_KEY=I;exports.Entity=pt;exports.GcManager=Kt;exports.LiveFieldConfig=$;exports.LiveFieldType=Z;exports.Mask=u;exports.NetworkManager=Ct;exports.NetworkManagerContext=on;exports.NetworkMode=L;exports.NoOpGcManager=Bt;exports.NoOpNetworkManager=Ot;exports.QUERY_ID=dt;exports.Query=an;exports.QueryClient=Cn;exports.QueryClientContext=Ce;exports.RECORD_KEY=F;exports.ValidatorDef=v;exports.createDefinitionProxy=ht;exports.defaultNetworkManager=de;exports.draft=Ye;exports.extractDefinition=Ht;exports.fetchQuery=fn;exports.queryKeyForClass=cn;exports.registerFormat=wt;exports.reifyValue=Y;exports.resolveBaseUrl=En;exports.t=se;
|
|
2
|
-
//# sourceMappingURL=QueryClient-m7BzCIe9.js.map
|