fetchium 0.2.4 → 0.3.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.
Files changed (53) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cjs/development/QueryClient-BefSCMoE.js +2 -0
  3. package/dist/cjs/development/QueryClient-BefSCMoE.js.map +1 -0
  4. package/dist/cjs/development/index.js +1 -1
  5. package/dist/cjs/{production/mutation-LrsiDsl7.js → development/mutation-OJNwoJcf.js} +2 -2
  6. package/dist/cjs/{production/mutation-LrsiDsl7.js.map → development/mutation-OJNwoJcf.js.map} +1 -1
  7. package/dist/cjs/development/react/index.js +1 -1
  8. package/dist/cjs/development/react/index.js.map +1 -1
  9. package/dist/cjs/development/rest/index.js +1 -1
  10. package/dist/cjs/development/topic/index.js +1 -1
  11. package/dist/cjs/production/QueryClient-rbPYznie.js +2 -0
  12. package/dist/cjs/production/QueryClient-rbPYznie.js.map +1 -0
  13. package/dist/cjs/production/index.js +1 -1
  14. package/dist/cjs/{development/mutation-CUV5TC93.js → production/mutation-CjSajlTU.js} +2 -2
  15. package/dist/cjs/{development/mutation-CUV5TC93.js.map → production/mutation-CjSajlTU.js.map} +1 -1
  16. package/dist/cjs/production/react/index.js +1 -1
  17. package/dist/cjs/production/react/index.js.map +1 -1
  18. package/dist/cjs/production/rest/index.js +1 -1
  19. package/dist/cjs/production/topic/index.js +1 -1
  20. package/dist/esm/EntityInstance.d.ts.map +1 -1
  21. package/dist/esm/QueryResult.d.ts +3 -3
  22. package/dist/esm/QueryResult.d.ts.map +1 -1
  23. package/dist/esm/development/{QueryClient-WObL5AFz.js → QueryClient-DfxP7pt2.js} +584 -570
  24. package/dist/esm/development/QueryClient-DfxP7pt2.js.map +1 -0
  25. package/dist/esm/development/index.js +2 -2
  26. package/dist/esm/development/{mutation-C3e7FM9D.js → mutation-DZAq7Pbu.js} +2 -2
  27. package/dist/esm/development/{mutation-C3e7FM9D.js.map → mutation-DZAq7Pbu.js.map} +1 -1
  28. package/dist/esm/development/react/index.js +5 -36
  29. package/dist/esm/development/react/index.js.map +1 -1
  30. package/dist/esm/development/rest/index.js +2 -2
  31. package/dist/esm/development/topic/index.js +1 -1
  32. package/dist/esm/production/{QueryClient-DqHBCvA1.js → QueryClient-DrWSXg0y.js} +482 -468
  33. package/dist/esm/production/QueryClient-DrWSXg0y.js.map +1 -0
  34. package/dist/esm/production/index.js +2 -2
  35. package/dist/esm/production/{mutation-BOc53DJi.js → mutation-B8dmX5lz.js} +2 -2
  36. package/dist/esm/production/{mutation-BOc53DJi.js.map → mutation-B8dmX5lz.js.map} +1 -1
  37. package/dist/esm/production/react/index.js +5 -36
  38. package/dist/esm/production/react/index.js.map +1 -1
  39. package/dist/esm/production/rest/index.js +2 -2
  40. package/dist/esm/production/topic/index.js +1 -1
  41. package/dist/esm/react/use-query.d.ts +8 -0
  42. package/dist/esm/react/use-query.d.ts.map +1 -1
  43. package/dist/esm/types.d.ts +3 -3
  44. package/dist/esm/types.d.ts.map +1 -1
  45. package/package.json +6 -6
  46. package/plugin/docs/api/fetchium-react.md +5 -4
  47. package/plugin/docs/api/fetchium.md +2 -2
  48. package/dist/cjs/development/QueryClient-DjKxdY2y.js +0 -2
  49. package/dist/cjs/development/QueryClient-DjKxdY2y.js.map +0 -1
  50. package/dist/cjs/production/QueryClient-YzaJT_2g.js +0 -2
  51. package/dist/cjs/production/QueryClient-YzaJT_2g.js.map +0 -1
  52. package/dist/esm/development/QueryClient-WObL5AFz.js.map +0 -1
  53. package/dist/esm/production/QueryClient-DqHBCvA1.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-DqHBCvA1.js";
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-DrWSXg0y.js";
2
2
  import { Q as F } from "./QueryAdapter-Bu5UJjE4.js";
3
- import { M as A, g as K, m as Y } from "./mutation-BOc53DJi.js";
3
+ import { M as A, g as K, m as Y } from "./mutation-B8dmX5lz.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-DqHBCvA1.js";
2
+ import { l as y, h as D, m as w, V as u, t as d } from "./QueryClient-DrWSXg0y.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-BOc53DJi.js.map
58
+ //# sourceMappingURL=mutation-B8dmX5lz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutation-BOc53DJi.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, QueryAdapterClass } 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: QueryAdapterClass;\n}\n\n// ================================\n// Mutation base class\n// ================================\n\nexport abstract class Mutation {\n static adapter?: QueryAdapterClass;\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
+ {"version":3,"file":"mutation-B8dmX5lz.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, QueryAdapterClass } 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: QueryAdapterClass;\n}\n\n// ================================\n// Mutation base class\n// ================================\n\nexport abstract class Mutation {\n static adapter?: QueryAdapterClass;\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,40 +1,9 @@
1
- import { useReactive as i } from "signalium/react";
2
- import { reactive as f } from "signalium";
3
- import { k as u } from "../QueryClient-DqHBCvA1.js";
4
- function n(e) {
5
- if (Array.isArray(e))
6
- return e.map(n);
7
- if (e && typeof e == "object") {
8
- if (e instanceof Date)
9
- return new Date(e);
10
- if (e instanceof RegExp)
11
- return new RegExp(e);
12
- if (e instanceof Map)
13
- return new Map(Array.from(e.entries()).map(([r, o]) => [n(r), n(o)]));
14
- if (e instanceof Set)
15
- return new Set(Array.from(e).map(n));
16
- const t = Object.create(Object.getPrototypeOf(e));
17
- for (const r of Object.keys(e))
18
- t[r] = n(e[r]);
19
- return t;
20
- }
21
- return e;
22
- }
23
- const y = f((e) => n(e.value)), p = f(
24
- (e, ...t) => {
25
- const r = u(e, ...t);
26
- return new Proxy(r, {
27
- get(o, c, s) {
28
- return c === "value" ? y(o) : Reflect.get(o, c, s);
29
- }
30
- });
31
- }
32
- ), m = f((e) => e.value);
33
- function b(e, ...t) {
34
- const r = i(p, e, ...t);
35
- return i(m, r), r;
1
+ import { useReactive as t } from "signalium/react";
2
+ import { k as o } from "../QueryClient-DrWSXg0y.js";
3
+ function i(e, ...r) {
4
+ return t(() => o(e, ...r));
36
5
  }
37
6
  export {
38
- b as useQuery
7
+ i as useQuery
39
8
  };
40
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/react/use-query.ts"],"sourcesContent":["import { useReactive } from 'signalium/react';\nimport { reactive } from 'signalium';\nimport { ExtractType, QueryPromise } from '../types.js';\nimport { ExtractQueryParams, fetchQuery, Query } from '../query.js';\nimport { HasRequiredKeys, Optionalize, Signalize } from '../type-utils.js';\n\nfunction cloneDeep<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map(cloneDeep) as unknown as T;\n }\n if (value && typeof value === 'object') {\n if (value instanceof Date) {\n return new Date(value) as unknown as T;\n }\n if (value instanceof RegExp) {\n return new RegExp(value) as unknown as T;\n }\n if (value instanceof Map) {\n return new Map(Array.from(value.entries()).map(([k, v]) => [cloneDeep(k), cloneDeep(v)])) as unknown as T;\n }\n if (value instanceof Set) {\n return new Set(Array.from(value).map(cloneDeep)) as unknown as T;\n }\n const result: any = Object.create(Object.getPrototypeOf(value));\n for (const key of Object.keys(value)) {\n result[key] = cloneDeep((value as any)[key]);\n }\n return result as T;\n }\n return value;\n}\n\nconst clonedResult = reactive((result: QueryPromise<Query>) => cloneDeep(result.value));\n\nconst reifiedQuery = reactive(\n <T extends Query>(\n QueryClass: new () => T,\n ...args: HasRequiredKeys<ExtractType<T['params']>> extends true\n ? [params: Optionalize<Signalize<ExtractType<T['params']>>>]\n : [params?: Optionalize<Signalize<ExtractType<T['params']>>> | undefined]\n ): QueryPromise<T> => {\n const queryResult = fetchQuery(QueryClass, ...args);\n\n return new Proxy(queryResult, {\n get(target, prop, receiver) {\n if (prop === 'value') {\n return clonedResult(target);\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n },\n);\n\nconst resultValue = reactive((result: QueryPromise<Query>) => result.value);\n\nexport function useQuery<T extends Query>(\n QueryClass: new () => T,\n ...args: HasRequiredKeys<ExtractType<T['params']>> extends true\n ? [params: Optionalize<Signalize<ExtractType<T['params']>>>]\n : [params?: Optionalize<Signalize<ExtractType<T['params']>>> | undefined]\n): QueryPromise<T> {\n const result = useReactive(reifiedQuery, QueryClass, ...args);\n\n useReactive(resultValue, result);\n\n return result;\n}\n"],"names":["cloneDeep","value","k","v","result","key","clonedResult","reactive","reifiedQuery","QueryClass","args","queryResult","fetchQuery","target","prop","receiver","resultValue","useQuery","useReactive"],"mappings":";;;AAMA,SAASA,EAAaC,GAAa;AACjC,MAAI,MAAM,QAAQA,CAAK;AACrB,WAAOA,EAAM,IAAID,CAAS;AAE5B,MAAIC,KAAS,OAAOA,KAAU,UAAU;AACtC,QAAIA,aAAiB;AACnB,aAAO,IAAI,KAAKA,CAAK;AAEvB,QAAIA,aAAiB;AACnB,aAAO,IAAI,OAAOA,CAAK;AAEzB,QAAIA,aAAiB;AACnB,aAAO,IAAI,IAAI,MAAM,KAAKA,EAAM,QAAA,CAAS,EAAE,IAAI,CAAC,CAACC,GAAGC,CAAC,MAAM,CAACH,EAAUE,CAAC,GAAGF,EAAUG,CAAC,CAAC,CAAC,CAAC;AAE1F,QAAIF,aAAiB;AACnB,aAAO,IAAI,IAAI,MAAM,KAAKA,CAAK,EAAE,IAAID,CAAS,CAAC;AAEjD,UAAMI,IAAc,OAAO,OAAO,OAAO,eAAeH,CAAK,CAAC;AAC9D,eAAWI,KAAO,OAAO,KAAKJ,CAAK;AACjC,MAAAG,EAAOC,CAAG,IAAIL,EAAWC,EAAcI,CAAG,CAAC;AAE7C,WAAOD;AAAA,EACT;AACA,SAAOH;AACT;AAEA,MAAMK,IAAeC,EAAS,CAACH,MAAgCJ,EAAUI,EAAO,KAAK,CAAC,GAEhFI,IAAeD;AAAA,EACnB,CACEE,MACGC,MAGiB;AACpB,UAAMC,IAAcC,EAAWH,GAAY,GAAGC,CAAI;AAElD,WAAO,IAAI,MAAMC,GAAa;AAAA,MAC5B,IAAIE,GAAQC,GAAMC,GAAU;AAC1B,eAAID,MAAS,UACJR,EAAaO,CAAM,IAGrB,QAAQ,IAAIA,GAAQC,GAAMC,CAAQ;AAAA,MAC3C;AAAA,IAAA,CACD;AAAA,EACH;AACF,GAEMC,IAAcT,EAAS,CAACH,MAAgCA,EAAO,KAAK;AAEnE,SAASa,EACdR,MACGC,GAGc;AACjB,QAAMN,IAASc,EAAYV,GAAcC,GAAY,GAAGC,CAAI;AAE5D,SAAAQ,EAAYF,GAAaZ,CAAM,GAExBA;AACT;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/react/use-query.ts"],"sourcesContent":["import { useReactive } from 'signalium/react';\nimport { ExtractType, QueryPromise } from '../types.js';\nimport { fetchQuery, Query } from '../query.js';\nimport { HasRequiredKeys, Optionalize, Signalize } from '../type-utils.js';\n\n/**\n * React hook for fetching a query.\n *\n * Returns a structurally-shared deep snapshot of the query's `ReactivePromise`,\n * so memoized children that receive subtrees as props keep stable references\n * when the underlying data is unchanged. Implemented as a thin wrapper around\n * Signalium v3's `useReactive`, which is deep-by-default.\n */\nexport function useQuery<T extends Query>(\n QueryClass: new () => T,\n ...args: HasRequiredKeys<ExtractType<T['params']>> extends true\n ? [params: Optionalize<Signalize<ExtractType<T['params']>>>]\n : [params?: Optionalize<Signalize<ExtractType<T['params']>>> | undefined]\n): QueryPromise<T> {\n return useReactive(() => fetchQuery(QueryClass, ...args)) as QueryPromise<T>;\n}\n"],"names":["useQuery","QueryClass","args","useReactive","fetchQuery"],"mappings":";;AAaO,SAASA,EACdC,MACGC,GAGc;AACjB,SAAOC,EAAY,MAAMC,EAAWH,GAAY,GAAGC,CAAI,CAAC;AAC1D;"}
@@ -1,6 +1,6 @@
1
- import { n as v, o as U, f as O } from "../QueryClient-DqHBCvA1.js";
1
+ import { n as v, o as U, f as O } from "../QueryClient-DrWSXg0y.js";
2
2
  import { Q as T } from "../QueryAdapter-Bu5UJjE4.js";
3
- import { M as w } from "../mutation-BOc53DJi.js";
3
+ import { M as w } from "../mutation-B8dmX5lz.js";
4
4
  class P extends T {
5
5
  _fetch;
6
6
  _baseUrl;
@@ -1,4 +1,4 @@
1
- import { f as l } from "../QueryClient-DqHBCvA1.js";
1
+ import { f as l } from "../QueryClient-DrWSXg0y.js";
2
2
  import { Q as d } from "../QueryAdapter-Bu5UJjE4.js";
3
3
  class f extends d {
4
4
  _topics = /* @__PURE__ */ new Map();
@@ -1,5 +1,13 @@
1
1
  import { ExtractType, QueryPromise } from '../types.js';
2
2
  import { Query } from '../query.js';
3
3
  import { HasRequiredKeys, Optionalize, Signalize } from '../type-utils.js';
4
+ /**
5
+ * React hook for fetching a query.
6
+ *
7
+ * Returns a structurally-shared deep snapshot of the query's `ReactivePromise`,
8
+ * so memoized children that receive subtrees as props keep stable references
9
+ * when the underlying data is unchanged. Implemented as a thin wrapper around
10
+ * Signalium v3's `useReactive`, which is deep-by-default.
11
+ */
4
12
  export declare function useQuery<T extends Query>(QueryClass: new () => T, ...args: HasRequiredKeys<ExtractType<T['params']>> extends true ? [params: Optionalize<Signalize<ExtractType<T['params']>>>] : [params?: Optionalize<Signalize<ExtractType<T['params']>>> | undefined]): QueryPromise<T>;
5
13
  //# sourceMappingURL=use-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-query.d.ts","sourceRoot":"","sources":["../../../src/react/use-query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAkC,KAAK,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAqD3E,wBAAgB,QAAQ,CAAC,CAAC,SAAS,KAAK,EACtC,UAAU,EAAE,UAAU,CAAC,EACvB,GAAG,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3D,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAC1D,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAC1E,YAAY,CAAC,CAAC,CAAC,CAMjB"}
1
+ {"version":3,"file":"use-query.d.ts","sourceRoot":"","sources":["../../../src/react/use-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAc,KAAK,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE3E;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,KAAK,EACtC,UAAU,EAAE,UAAU,CAAC,EACvB,GAAG,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3D,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAC1D,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAC1E,YAAY,CAAC,CAAC,CAAC,CAEjB"}
@@ -1,4 +1,4 @@
1
- import { DiscriminatedReactivePromise, type Signal } from 'signalium';
1
+ import { ReactivePromise, type Signal } from 'signalium';
2
2
  import type { Query } from './query.js';
3
3
  /**
4
4
  * Flexible base URL value - can be a static string, a Signal, or a function.
@@ -208,12 +208,12 @@ export type ExtractType<T> = IsAny<T> extends true ? any : T extends TypeDef<inf
208
208
  } : T;
209
209
  export type TypeDefShape = Record<string, TypeDef> | TypeDef;
210
210
  export type QueryResult<T extends Query> = ExtractType<T['result']> & {
211
- __refetch(): DiscriminatedReactivePromise<QueryResult<T>>;
211
+ __refetch(): ReactivePromise<QueryResult<T>>;
212
212
  __fetchNext(): Promise<QueryResult<T>>;
213
213
  __hasNext: boolean;
214
214
  __isFetchingNext: boolean;
215
215
  };
216
- export type QueryPromise<T extends Query> = DiscriminatedReactivePromise<QueryResult<T>>;
216
+ export type QueryPromise<T extends Query> = ReactivePromise<QueryResult<T>>;
217
217
  export interface CreateEvent {
218
218
  type: 'create';
219
219
  typename: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fetchium",
3
- "version": "0.2.4",
3
+ "version": "0.3.1",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -139,8 +139,8 @@
139
139
  "fetchium-agents": "./plugin/install.mjs"
140
140
  },
141
141
  "peerDependencies": {
142
- "react": ">=18.3.1",
143
- "signalium": ">=2.1.7"
142
+ "react": ">=19.0.0",
143
+ "signalium": ">=3.0.1"
144
144
  },
145
145
  "peerDependenciesMeta": {
146
146
  "react": {
@@ -173,10 +173,10 @@
173
173
  "@vitejs/plugin-react": "^5.0.0",
174
174
  "@vitest/browser": "^3.0.6",
175
175
  "playwright": "^1.50.1",
176
- "react": "^18.3.1",
177
- "react-dom": "^18.3.1",
176
+ "react": "^19.0.0",
177
+ "react-dom": "^19.0.0",
178
178
  "rollup-plugin-const-enum": "^1.1.4",
179
- "signalium": "2.3.1",
179
+ "signalium": "3.0.1",
180
180
  "vite": "^7.1.2",
181
181
  "vite-plugin-babel": "^1.3.0",
182
182
  "vite-plugin-dts": "^4.5.4",
@@ -24,7 +24,7 @@ function useQuery<T extends Query>(
24
24
  ): QueryPromise<T>;
25
25
  ```
26
26
 
27
- React hook for fetching a query. Subscribes the component to the query's reactive state, re-rendering when the query result changes. Internally uses Signalium's `useReactive` to bridge the reactive signal system with React's rendering cycle.
27
+ React hook for fetching a query. Subscribes the component to the query's reactive state, re-rendering when the query result changes. Internally uses Signalium's `useReactive` (deep-by-default in v3) to bridge the reactive signal system with React's rendering cycle.
28
28
 
29
29
  #### Parameters
30
30
 
@@ -35,7 +35,7 @@ React hook for fetching a query. Subscribes the component to the query's reactiv
35
35
 
36
36
  #### Returns
37
37
 
38
- `QueryPromise<T>` — a `DiscriminatedReactivePromise` that provides the query state.
38
+ `QueryPromise<T>` — a `ReactivePromise` that provides the query state.
39
39
 
40
40
  The returned promise object has the following properties:
41
41
 
@@ -130,6 +130,7 @@ const SearchResults = component(() => {
130
130
 
131
131
  #### Notes
132
132
 
133
- - `useQuery` calls `useReactive` twice internally: once for the query itself and once to subscribe to the resolved value for deep entity tracking via Signalium's `CONSUME_DEEP` protocol.
134
- - The `value` property returns a **deep clone** of the query result to prevent accidental mutation of the entity cache. Use `draft()` from `fetchium` if you need a mutable copy for mutations.
133
+ - `useQuery` is a thin wrapper around Signalium v3's `useReactive`, which is deep-by-default. It returns a **structurally-shared snapshot** of the query result, so memoized children that receive subtrees as props keep stable references when the underlying data is unchanged.
134
+ - Fetchium registers a custom snapshot for entity proxies so the snapshot walks into entities (instead of returning them by reference), giving you correct re-rendering on entity field changes.
135
+ - The snapshot is a plain-object copy of the query result to prevent accidental mutation of the entity cache. Use `draft()` from `fetchium` if you need a mutable copy for mutations.
135
136
  - When used with React Suspense, reading `.value` on a pending query will suspend the component.
@@ -405,7 +405,7 @@ function fetchQuery<T extends Query>(
405
405
  ): QueryPromise<T>;
406
406
  ```
407
407
 
408
- Fetches a query reactively. Must be called within a reactive context where `QueryClientContext` is provided. Returns a `QueryPromise` (a `DiscriminatedReactivePromise`) that resolves to the query result.
408
+ Fetches a query reactively. Must be called within a reactive context where `QueryClientContext` is provided. Returns a `QueryPromise` (a `ReactivePromise`) that resolves to the query result.
409
409
 
410
410
  | Parameter | Type | Description |
411
411
  | ------------ | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -599,7 +599,7 @@ The `t` object provides a declarative type definition DSL for describing query p
599
599
 
600
600
  | Type | Definition | Description |
601
601
  | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
602
- | `QueryPromise<T extends Query>` | `DiscriminatedReactivePromise<QueryResult<T>>` | The return type of `fetchQuery`. A reactive promise. |
602
+ | `QueryPromise<T extends Query>` | `ReactivePromise<QueryResult<T>>` | The return type of `fetchQuery`. A reactive promise. |
603
603
  | `QueryResult<T extends Query>` | `ExtractType<T['result']> & { __refetch(), __fetchNext(), __hasNext, __isFetchingNext }` | The resolved value of a query. Includes pagination helpers. |
604
604
  | `QueryCacheOptions` | `{ maxCount?: number; cacheTime?: number }` | Persistent storage cache settings. `cacheTime` is in minutes (default: 1440 / 24 hours). `maxCount` is the LRU queue size. |
605
605
  | `QueryConfigOptions` | `{ gcTime?, staleTime?, debounce?, networkMode?, retry?, refreshStaleOnReconnect?, subscribe? }` | Instance-level query configuration. See property table below. |
@@ -1,2 +0,0 @@
1
- "use strict";const C=require("signalium"),A=require("signalium/utils"),Kt=require("./shared-Ct5zKrt4.js"),Dt=require("./stores/sync.js");var $=(e=>(e.Always="always",e.Online="online",e.OfflineFirst="offlineFirst",e))($||{}),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"),ht=Symbol("QUERY_ID");var Z=(e=>(e[e.Array=0]="Array",e[e.Value=1]="Value",e))(Z||{});class L{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 L(0,t,n,i,void 0,void 0,void 0,void 0)}static value(t,n,i,r,s,o){return new L(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 Re{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 Qt{_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 Re(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"),Se=/\[([^\]]+)\]/g;function Yt(e){const t={[J]:!0,[M]:e};return new Proxy(t,xe)}const xe={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 Yt([...n,t])},has(e,t){return t===J||t===M}};function Gt(e){return typeof e=="object"&&e!==null&&e[J]===!0}function Ht(e){return e[M]}function yt(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]:Yt([i])}})}function Wt(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 pt(e,t){let n=t;for(const i of e){if(n==null)return;n=n[i]}return n}function Ae(e,t){return e.replace(Se,(n,i)=>{const r=i.split("."),s=pt(r,t);return s!=null?encodeURIComponent(String(s)):""})}function Y(e,t){if(Gt(e))return pt(Ht(e),t);if(typeof e=="string")return Ae(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 gt{static cache;constructor(){return yt(this)}}const zt=Object.entries,ot=Object.keys;let Jt=()=>{};{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,h=r.shape;for(const d of Object.keys(f))if(d in h&&!n(f[d],h[d]))return!1;for(const d of Object.keys(h))if(d in f&&!n(f[d],h[d]))return!1}return!0}return!1};Jt=(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 It(e){return typeof e=="number"?e|u.UNDEFINED:e instanceof v?(e.mask&u.UNDEFINED)!==0?e:v.cloneWith(e,u.UNDEFINED):e}function Ft(e){return e instanceof v&&(e.mask&u.OBJECT)!==0&&(e.mask&(u.ENTITY|u.ARRAY|u.UNION|u.RECORD|u.LIVE))===0}function Xt(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 h of e){const d=h?.[s];d!==void 0?(o++,a===void 0&&(a=d),a!==void 0&&d!==a&&!Ft(d)&&Jt(n,s,a,d),Ft(d)?c.push(d.shape):(f=!1,c.push(void 0))):(f=!1,c.push(void 0))}if(f&&o>0){const h=Xt(c,t,n),d=new v(u.OBJECT,h);r[s]=o<t?It(d):d}else r[s]=o<t?It(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=Xt(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 Ne=1128875347;A.registerCustomHash(q,e=>{let t=Ne;for(const n of e)t+=A.hashValue(n);return t>>>0});function vt(e,t){return new v(e,t)}function De(e){return vt(u.ARRAY,e)}function Ie(e){return vt(u.RECORD|u.OBJECT,e)}function Fe(e){return vt(u.PARSE_RESULT,e)}function Zt(e,t){let n=e,i,r,s;for(const[o,a]of zt(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 Me(e){return Zt(u.OBJECT,e)}function Mt(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 mt(...e){const t=e;let n=0,i=0,r,s,o,a,c=0;for(const h of t){if(typeof h=="number"){n|=h;continue}if(h instanceof Set){if(s===void 0)s=new Set(h);else for(const d of h)s.add(d);continue}if(i++,c|=h.mask,i===1){r=h;continue}i===2&&(o=Object.create(null),a=Mt(r,o,a)),a=Mt(h,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 _t(e,t,n){const i=e;if(typeof i=="number")return i|t;if(i instanceof Set)return mt(e,t);let r=n.get(i);return r===void 0&&(r=v.cloneWith(i,t),n.set(i,r)),r}const ke=new WeakMap,Te=new WeakMap,Pe=new WeakMap;function je(e){return _t(e,u.UNDEFINED|u.NULL,Pe)}function $e(e){return _t(e,u.UNDEFINED,ke)}function Le(e){return _t(e,u.NULL,Te)}function Ue(e){return e}function qe(e){return new Set([e])}const te=((...e)=>new Set(e));te.caseInsensitive=(...e)=>new q(e);const wt=16;let Ve=0;const at=[],ee=[],ne=new Map,ie=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?ee[this._formatId](this._formatted):this._raw}}function Ke(e){const t=ne.get(e);if(t===void 0)throw new Error(`Format ${e} not registered`);return t}function kt(e){const t=e>>wt;return ie.get(t)}function Et(e,t,n,i,r){const s=Ve++;at[s]=n,ee[s]=i,ie.set(s,e);const o=r?.eager??!0,c=s<<wt|t|u.HAS_FORMAT|(o?u.IS_EAGER_FORMAT:0);ne.set(e,c)}Et("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}`});Et("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 Tt=new WeakMap;function U(e){let t=Tt.get(e);if(t===void 0){const n=new e,i=n[lt]??n;n[X]&&n[X]();const r={};for(const[f,h]of zt(i)){if(!(typeof h=="number"||typeof h=="string"||h instanceof Set||h instanceof v||h 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 h=="object"?h?.constructor?.name??typeof h:typeof h}`);r[f]=h}const s=Object.getPrototypeOf(e.prototype);if(s!=null){const f=s.constructor;if(f!==gt&&typeof f=="function"){const d=U(f).shape;for(const l of ot(d))if(l in r&&r[l]!==d[l])throw new Error(`Cannot extend: field '${l}' 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=Zt(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),Tt.set(e,t)}return t}function Qe(e){return U(e)}function re(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,h]of Object.entries(s))c.push([f,h]);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 se(e){return Array.isArray(e)?e.map(t=>U(t)):[U(e)]}function Be(e,t){const n=se(e),i=n.length===1?n[0]:mt(...n.map(o=>o)),r=u.ARRAY|u.LIVE,s=new v(r,i);return s._liveConfig=L.array(n,re(n,t?.constraints),t?.sort),s}function Ye(e,t,n){const i=se(t),r=e,s=u.LIVE,o=new v(s,void 0);return o._liveConfig=L.value(i,re(i,n?.constraints),r,n.onCreate,n.onUpdate,n.onDelete),o}const oe={format:Ke,typename:Ue,const:qe,enum:te,id:u.ID|u.STRING|u.NUMBER,string:u.STRING,number:u.NUMBER,boolean:u.BOOLEAN,null:u.NULL,undefined:u.UNDEFINED,array:De,object:Me,record:Ie,union:mt,nullish:je,optional:$e,nullable:Le,result:Fe,entity:Qe,liveArray:Be,liveValue:Ye};function B(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=kt(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<${B(n.shape[I])}>`),n.shape[F]!==void 0&&i.push(`Record<string, ${B(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=kt(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<${B(n)}>`}if(t&u.RECORD){const n=e.shape;return`Record<string, ${B(n)}>`}if(t&u.OBJECT){const n=e.typenameValue;return n?`Object<${n}>`:"object"}return"unknown"}function Q(e,t,n){return new TypeError(`Validation error at ${e}: expected ${B(t)}, got ${typeof n=="object"?n===null?"null":Array.isArray(n)?"array":"object":typeof n}`)}const ae=Array.isArray;function Pt(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 ae(e)?u.ARRAY:u.OBJECT;default:throw new Error(`Invalid type: ${typeof e}`)}}function Ge(e){return j(e)}function j(e){if(e===null||typeof e!="object")return e;if(ae(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 bt=Object.entries,He=()=>{};class ct{queryClient=void 0;preloadedEntities=void 0;warn=He;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 ce(e,t,n){return k(e,t,n,"")}function We(e,t,n){return Ct(e,t,n)}function jt(e,t,n,i){const r=e>>wt;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 Q(i,r,e);return c}if(r instanceof Set){if(!r.has(e))throw Q(i,r,e);return e}if(typeof r=="string"){if(e==null)return r;if(e!==r)throw Q(i,r,e);return e}if(typeof r=="number"){const c=Pt(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 Q(i,r,e)}return(r&u.HAS_FORMAT)!==0&&e!==null&&e!==void 0?jt(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=Pt(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 Q(i,s,e)}return a<u.OBJECT?(s&u.HAS_FORMAT)!==0&&e!==null&&e!==void 0?jt(s,e,n,i):e:(s&u.UNION)!==0?ze(a,e,r,n,i):a===u.ARRAY?fe(e,r.shape,n,i):(s&u.RECORD)!==0?ue(e,r.shape,n,i):(s&u.ENTITY)!==0&&n.queryClient!==void 0?Ct(e,r,n):de(e,r,n,i)}function ze(e,t,n,i,r){if(e===u.ARRAY){const s=n.shape[I];return s===void 0||typeof s=="number"?t:fe(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 ue(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?Ct(t,a,i):de(t,a,i,r)}}function fe(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 ue(e,t,n,i){for(const[r,s]of bt(e))e[r]=k(s,t,n,`${i}["${r}"]`);return e}function de(e,t,n,i){if(R.has(e))return e;const r=t.shape;for(const[s,o]of bt(r))e[s]=k(e[s],o,n,`${i}.${s}`);return e}function Ct(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),h=n.isPartialEvent&&f!==void 0,d={key:s,shape:t,data:c,rawKeys:h?new Set(Object.keys(e)):void 0};n.seen.set(c,d),n.seenByKey.set(s,d);const l=`[[${t.typenameValue}:${o}]]`,g=t.shape;for(const[p,w]of bt(g))h&&!(p in e)||(c[p]=k(e[p],w,n,`${l}.${p}`));return c}function Je(e,t){return Xe(e,t.shape,t.typenameField)}function Xe(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 Ze=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,tn),z.set(e,t)),t}if(Object.getPrototypeOf(e)===Ze){let t=z.get(e);return t===void 0&&(t=new Proxy(e,en),z.set(e,t)),t}return e}const tn={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")}},en={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 nn{_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=sn(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:Je(this.data,t)?(this.satisfiedDefs.add(t),!0):!1}save(){this._queryClient.entityMap.save(this)}notify(){this._notifier.notify()}consume(){this._notifier.consume()}}function rn(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 sn(e,t,n,i,r){const s=n.shape??{},o=n,a=o._methods,c=o._entityClass,f=o._entityConfig,h=c?c.prototype:gt.prototype,d=n.typenameField,l=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 h},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=l.get(y);return O||(O=N[y].bind(m),l.set(y,O)),O}if(a&&y in a){let O=l.get(y);return O||(O=C.reactiveMethod(m,a[y].bind(m)),l.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 At=r.getEntityDefsForTypename(O);if(At!==void 0&&At.length>1){const nt=g.get(y);if(nt!==void 0&&nt.source===_)return D(nt.filtered);const Nt=rn(_,N,r);return g.set(y,{source:_,filtered:Nt}),D(Nt)}}}}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 on{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 nn(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 Ot{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 Rt{static onlineSignal=C.signal(!0);get isOnline(){return!0}setNetworkStatus(t){}clearManualOverride(){}getOnlineSignal(){return Rt.onlineSignal}destroy(){}}const he=new Ot,an=C.context(he);function St(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 cn{static cache;static adapter;params;config;constructor(){return yt(this)}}const $t=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=St(i?.retry);return{config:i,retryConfig:r}}static for(t){let n=$t.get(t);if(n!==void 0)return n;const i=new t,r=Wt(i),s=String(r.methods.getIdentityKey.call(r.fields)),o=r.fields.result,a=o instanceof v?o:oe.object(o),c=(a.mask&u.ENTITY)!==0,f=t.cache,h=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 l=typeof d.prototype.sendNext=="function",g=c?a:new v(u.ENTITY|u.OBJECT,a.shape,void 0,void 0,s,ht);return n=new W({id:s,shape:g,cache:f,rawFetchNext:h,hasSendNext:l,isEntityResult:c,adapterClass:d},r),$t.set(t,n),n}}const fn=(e,t)=>{const n=W.for(e);return xt(n,t)};function un(e,...t){const n=W.for(e),i=C.getContext(Oe);if(i===void 0)throw new Error("QueryClient not found");const r=t[0];return i.getQuery(n,r)}function ft(e){if(e.reason!==void 0)return e.reason;if(typeof DOMException<"u")return new DOMException("The operation was aborted","AbortError");const t=new Error("The operation was aborted");return t.name="AbortError",t}function le(e,t){return new Promise((n,i)=>{if(t?.aborted){i(ft(t));return}const r=setTimeout(n,e);t?.addEventListener("abort",()=>{clearTimeout(r),i(ft(t))},{once:!0})})}async function ut(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++){if(n?.aborted)throw ft(n);try{return await e()}catch(o){if(r=o,s>=i)throw o;await le(t.retryDelay(s),n)}}throw r}class dn{def;queryKey;storageKey=-1;relay;queryClient;initialized=!1;updatedAt=void 0;params=void 0;unsubscribe=void 0;_relayState=void 0;_isActive=!1;wasPaused=!1;currentParams=void 0;debounceTimer=void 0;config=void 0;retryConfig=St(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=Vt(r);this._queryId=s!==void 0?A.hashValue(s):0,this.relay=C.relay(o=>{this._relayState=o;const a=()=>{this._isActive=!1,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??Kt.DEFAULT_GC_TIME;this.queryClient.gcManager.schedule(this.queryKey,f,tt.Query)},c=(f=!1)=>{const{wasPaused:h,isPaused:d,initialized:l}=this;if(this.wasPaused=d,d&&!h&&l){a();return}this._isActive=!0;const g=Vt(this.params),p=xt(this.def,g),w=p!==this.storageKey;w&&(this.currentParams=g,this.storageKey=p),this.getOrCreateExecutionContext(),this.initialized?h||f?(this.queryClient.activateQuery(this),f&&this.updatedAt!==void 0&&this.setupSubscription(),this.relayState.isPending&&this._abortController===void 0?this.runQueryImmediately():(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 ut(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,this._isActive&&!this.isPaused&&this.runDebounced()}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 ut(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??$.Online;if(t===$.Always)return!1;const n=this.queryClient.networkManager.getOnlineSignal().value;switch(t){case $.Online:return!n;case $.OfflineFirst:return!n&&this.updatedAt===void 0;default:return!1}}}class hn{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),ce(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=St(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 ut(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 ye="__eventSource";function pe(e){return{field:e,segments:e.indexOf(".")!==-1?e.split("."):void 0}}function yn(e){return e.map(pe)}function pn(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 ge(e,t){const n=[];for(let i=0;i<t.length;i++){const r=t[i],s=pn(e,r);if(s===void 0)return;n.push(r.field,s)}return A.hashValue(n)}function gn(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 h;if(Gt(f)){const d=Ht(f);h=pt(d,t)}else h=f;if(h===void 0){a=!1;break}o.push(c,h)}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 vn{fields;fieldPaths;_bindings=new Map;constructor(t){this.fields=t,this.fieldPaths=t.map(pe)}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 Ut(e){return A.hashValue(e)}class mn{_groups=new Map;getOrCreateGroup(t){const n=Ut(t);let i=this._groups.get(n);return i===void 0&&(i=new vn(t),this._groups.set(n,i)),i}register(t,n,i){this.getOrCreateGroup(n).register(t,i)}unregister(t,n,i){const r=Ut(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=ge(n,a.fieldPaths);if(c===void 0)continue;const f=a.getMatching(c);if(f!==void 0)for(const h of f)h.onEvent(t,i,r,s,o)}}}function qt(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 ve{_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 _n{_notifier;_items;_keys;_outputSignal;_queryClient;_parent;constructor(t,n,i,r,s,o){this._notifier=C.notifier(),this._items=i,this._keys=qt(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 h=[];for(const d of f){if(typeof d!="object"||d===null){h.push(d);continue}const l=P(d);if(l===void 0){h.push(d);continue}const g=t.entityMap.getEntity(l);if(g===void 0){h.push(d);continue}g.consume(),ge(g.data,r)===s&&h.push(d)}f=h}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=qt(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 wn{_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 me(e,t,n,i,r){let s=e.constraintFieldRefs;if(s===void 0){s=new Map;for(const f of e.entityDefs){const h=f.typenameValue;h!==void 0&&s.set(h,[[ye,n.key]])}}const o=gn(s,i)??new Map;let a;if(e.type===Z.Array){let f,h;if(e.constraintFieldRefs!==void 0&&o.size>0&&o.size===1)for(const[d]of e.constraintFieldRefs){const l=o.get(d);if(l!==void 0){h=l;const g=e.constraintFieldRefs.get(d);g!==void 0&&(f=yn(g.map(([p])=>p)));break}}a=new _n(r,n,Array.isArray(t)?t:[],f,h,e.sort)}else a=new wn(r,n,t,e.onCreate,e.onUpdate,e.onDelete);const c=new ve(e.entityDefs,s,r,n,o,a);return n.liveCollections.push(c),r.registerLiveCollection(c),c}const _e=Object.entries,we=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 En(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)===we&&!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 Ee(e){return typeof e=="object"&&e!==null&&!(e instanceof G)&&!R.has(e)}function En(e,t,n,i,r,s){const{key:o,data:a,shape:c,rawKeys:f}=e,h=c.shape,d=n.prepareEntity(o,a,c),l=d.data,g=l!==a,p=g&&f!==void 0&&d.entityRefs!==void 0?new Map(d.entityRefs):new Map;if(g?(be(h,a,l,f,d,l,t,n,i,p,s),d.notify()):Ce(h,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 be(e,t,n,i,r,s,o,a,c,f,h){for(const[d,l]of _e(e))if(!(i!==void 0&&!i.has(d)))if(Ee(t[d])&&(t[d]=H(t[d],o,a,c,f,h)),l instanceof v&&l._liveConfig!==void 0){const g=n[d];g instanceof ve?h?g.append(t[d]):g.reset(t[d]):n[d]=me(l._liveConfig,t[d],r,s,a)}else{const g=t[d],p=n[d];if(dt(g)&&dt(p)){const w=l instanceof v&&l.shape!==void 0?l.shape:void 0;if(w!==void 0)be(w,g,p,void 0,r,s,o,a,c,f,h);else for(const m of Object.keys(g))p[m]=g[m];n[d]=p}else n[d]=g}}function Ce(e,t,n,i,r,s,o,a,c){for(const[f,h]of _e(e))if(f in t)if(Ee(t[f])&&(t[f]=H(t[f],r,s,o,a,c)),h instanceof v&&h._liveConfig!==void 0)t[f]=me(h._liveConfig,t[f],n,i,s);else{const d=t[f];if(dt(d)){const l=h instanceof v&&h.shape!==void 0?h.shape:void 0;l!==void 0&&Ce(l,d,n,i,r,s,o,a,c)}}}function dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===we&&!R.has(e)}function bn(e){if(e!==void 0)return typeof e=="string"?e:typeof e=="function"?e():e.value}function Cn(e){return C.isSignal(e)}function Vt(e){if(e===void 0)return;const t={};for(const[n,i]of Object.entries(e))Cn(i)?t[n]=i.value:t[n]=i;return t}const xt=(e,t)=>A.hashValue([e.statics.id,t]);class On{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 Dt.SyncQueryStore(new Dt.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 Qt(this.handleEviction,r)),this.networkManager=t.networkManager??new Ot,this.entityMap=new on((d,l,g)=>this.store.saveEntity(d,l,g));for(const d of t.adapters??[])this.adapters.set(d.constructor,d),d.register(this);const f=this.networkManager.getOnlineSignal(),h=C.watcher(()=>f.value);this.networkUnsubscribe=h.addListener(()=>{const d=f.value;for(const l of this.adapters.values())l.onNetworkStatusChange?.(d)},{skipInitial:!0}),this.store.purgeStaleQueries?.()}getAdapter(t){const n=this.adapters.get(t);if(n)return n;let i;for(const s of this.adapters.values())if(s instanceof t){if(i!==void 0)throw new Error(`Adapter lookup for ${t.name} matches multiple registered adapters: ${i.constructor.name} and ${s.constructor.name}. Register only one adapter per lookup base on a single QueryClient, or split into separate QueryClients.`);i??=s}if(i!==void 0)return this.adapters.set(t,i),i;let r;try{r=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}(...)] })`)}return this.adapters.set(t,r),r.register(this),r}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??Kt.DEFAULT_GC_TIME;this.gcManager.cancel(i,o)}loadCachedQuery(t,n){return this.store.loadQuery(t,n)}getQuery(t,n){const i=xt(t,n);let r=this.queryInstances.get(i);return r===void 0&&(r=new dn(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 hn(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:ce(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[ht]=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,h=typeof o=="object"&&o!==null?o:{},d=this.entityMap.getEntity(c);if(n==="delete"){const w=d!==void 0?d.data:h;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=We(h,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 l=this.entityMap.getEntity(c);if(l===void 0)return;this.entityMap.save(l);const g=d===void 0;let p=!1;this.routeEvent(i,l.data,c,n,f,()=>{p=!0}),g&&!p&&l.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||Rn(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 mn,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,[ye]: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 Oe=C.context(void 0);function Rn(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=gt;exports.GcManager=Qt;exports.LiveFieldConfig=L;exports.LiveFieldType=Z;exports.Mask=u;exports.NetworkManager=Ot;exports.NetworkManagerContext=an;exports.NetworkMode=$;exports.NoOpGcManager=Bt;exports.NoOpNetworkManager=Rt;exports.QUERY_ID=ht;exports.Query=cn;exports.QueryClient=On;exports.QueryClientContext=Oe;exports.RECORD_KEY=F;exports.ValidatorDef=v;exports.createDefinitionProxy=yt;exports.defaultNetworkManager=he;exports.draft=Ge;exports.extractDefinition=Wt;exports.fetchQuery=un;exports.queryKeyForClass=fn;exports.registerFormat=Et;exports.reifyValue=Y;exports.resolveBaseUrl=bn;exports.t=oe;
2
- //# sourceMappingURL=QueryClient-DjKxdY2y.js.map