@effect-app/vue 4.0.0-beta.308 → 4.0.0-beta.309
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 +11 -0
- package/dist/atomQuery.d.ts +5 -1
- package/dist/atomQuery.d.ts.map +1 -1
- package/dist/atomQuery.js +24 -5
- package/dist/dependencyMetadata.d.ts +1 -0
- package/dist/dependencyMetadata.d.ts.map +1 -1
- package/dist/dependencyMetadata.js +2 -1
- package/dist/liveQueryInvalidation.d.ts +16 -0
- package/dist/liveQueryInvalidation.d.ts.map +1 -0
- package/dist/liveQueryInvalidation.js +115 -0
- package/dist/query.d.ts +4 -0
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +5 -3
- package/package.json +2 -2
- package/src/atomQuery.ts +56 -27
- package/src/dependencyMetadata.ts +4 -0
- package/src/liveQueryInvalidation.ts +138 -0
- package/src/query.ts +11 -2
- package/test/dist/liveQueryInvalidation.test.d.ts.map +1 -0
- package/test/liveQueryInvalidation.test.ts +108 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @effect-app/vue
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.309
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 99c43c4: Add query-owned live invalidation with recorded dependency filtering, connect-before-fetch coordination, race buffering, and configurable client-side coalescing.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [99c43c4]
|
|
12
|
+
- effect-app@4.0.0-beta.309
|
|
13
|
+
|
|
3
14
|
## 4.0.0-beta.308
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/atomQuery.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import * as Stream from "effect/Stream";
|
|
|
7
7
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
8
8
|
import * as Atom from "effect/unstable/reactivity/Atom";
|
|
9
9
|
import * as AtomRegistry from "effect/unstable/reactivity/AtomRegistry";
|
|
10
|
+
import { type LiveQueryOptions } from "./liveQueryInvalidation.js";
|
|
10
11
|
/**
|
|
11
12
|
* Invalidate the given keys and AWAIT the result. `keyAtoms` resolves all matching hierarchical
|
|
12
13
|
* keys to a deduplicated set of query atoms. Refresh that set directly: sending the whole key set
|
|
@@ -54,10 +55,13 @@ export interface AtomQueryOptions {
|
|
|
54
55
|
readonly structuralSharing?: boolean;
|
|
55
56
|
/** poll: re-fetch every N ms (tanstack refetchInterval). */
|
|
56
57
|
readonly refetchInterval?: number;
|
|
58
|
+
/** Refresh when writes intersect the dependencies recorded by this query. */
|
|
59
|
+
readonly live?: boolean | LiveQueryOptions;
|
|
57
60
|
}
|
|
58
61
|
export interface AtomQueryMetadata {
|
|
59
62
|
readonly staleTimeMs: number;
|
|
60
63
|
}
|
|
64
|
+
export declare const queryKeyForAtom: <A, E>(atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>) => ReadonlyArray<unknown> | undefined;
|
|
61
65
|
export declare const captureAtomQueryParentSpan: <A, E>(atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>) => Effect.Effect<void>;
|
|
62
66
|
export declare const refreshAtomWithCurrentSpan: <A, E>(registry: AtomRegistry.AtomRegistry, atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>) => Effect.Effect<void>;
|
|
63
67
|
export declare const getAtomQueryMetadata: <A, E>(atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>) => AtomQueryMetadata | undefined;
|
|
@@ -69,7 +73,7 @@ export interface QueryFetchState {
|
|
|
69
73
|
recovering: boolean;
|
|
70
74
|
}
|
|
71
75
|
export declare const queryFetchStates: WeakMap<Atom.Atom<any>, QueryFetchState>;
|
|
72
|
-
export declare const withQueryOptions: <A, E>(self: Atom.Atom<AsyncResult.AsyncResult<A, E>>, opts?: AtomQueryOptions) => Atom.Atom<AsyncResult.AsyncResult<A, E>>;
|
|
76
|
+
export declare const withQueryOptions: <A, E>(self: Atom.Atom<AsyncResult.AsyncResult<A, E>>, opts?: AtomQueryOptions, liveKey?: ReadonlyArray<unknown>) => Atom.Atom<AsyncResult.AsyncResult<A, E>>;
|
|
73
77
|
/** Constant atom for disabled / `mode:"optional"`-None queries: stays Initial, never fetches. */
|
|
74
78
|
export declare const disabledQueryAtom: Atom.Atom<AsyncResult.AsyncResult<any, any>>;
|
|
75
79
|
/**
|
package/dist/atomQuery.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomQuery.d.ts","sourceRoot":"","sources":["../src/atomQuery.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAG3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAG3C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AACrE,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAA;AACvD,OAAO,KAAK,YAAY,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"atomQuery.d.ts","sourceRoot":"","sources":["../src/atomQuery.ts"],"names":[],"mappings":"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"}
|
package/dist/atomQuery.js
CHANGED
|
@@ -29,8 +29,9 @@ import { isHttpClientError } from "effect/unstable/http/HttpClientError";
|
|
|
29
29
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
30
30
|
import * as Atom from "effect/unstable/reactivity/Atom";
|
|
31
31
|
import * as AtomRegistry from "effect/unstable/reactivity/AtomRegistry";
|
|
32
|
-
import { clearQueryReadDependencies, setQueryReadDependencies } from "./dependencyMetadata.js";
|
|
32
|
+
import { clearQueryReadDependencies, getQueryReadDependencies, setQueryReadDependencies } from "./dependencyMetadata.js";
|
|
33
33
|
import { reportRuntimeError } from "./lib.js";
|
|
34
|
+
import { beginLiveQueryFetch, endLiveQueryFetch, registerLiveQuery } from "./liveQueryInvalidation.js";
|
|
34
35
|
/** All non-empty prefixes of a key, longest last. `[a,b,c]` -> `[[a],[a,b],[a,b,c]]`. */
|
|
35
36
|
const prefixesOf = (key) => key.map((_, i) => key.slice(0, i + 1));
|
|
36
37
|
const uniqueKeys = (keys) => {
|
|
@@ -180,6 +181,8 @@ const isRetryable = (e) => isHttpClientError(e)
|
|
|
180
181
|
const defaults = { staleTime: Duration.seconds(5), gcTime: Duration.minutes(5) };
|
|
181
182
|
const atomQueryMetadata = new WeakMap();
|
|
182
183
|
const atomQueryParentSpans = new WeakMap();
|
|
184
|
+
const atomQueryKeys = new WeakMap();
|
|
185
|
+
export const queryKeyForAtom = (atom) => atomQueryKeys.get(atom);
|
|
183
186
|
const atomSpanTarget = (atom) => {
|
|
184
187
|
let target = atom;
|
|
185
188
|
while (target.initialValueTarget !== undefined) {
|
|
@@ -238,10 +241,18 @@ const recoverStuckWaitingOnMount = (familyAtom) => (wrapped) => Atom.transform(w
|
|
|
238
241
|
}
|
|
239
242
|
return current;
|
|
240
243
|
}, { initialValueTarget: wrapped });
|
|
241
|
-
export const withQueryOptions = (self, opts = {}) => {
|
|
244
|
+
export const withQueryOptions = (self, opts = {}, liveKey) => {
|
|
242
245
|
setAtomQueryMetadata(self, opts);
|
|
243
246
|
const staleTime = opts.staleTime ?? defaults.staleTime;
|
|
244
247
|
let atom = self;
|
|
248
|
+
if (opts.live && liveKey !== undefined) {
|
|
249
|
+
const liveOptions = opts.live === true ? {} : opts.live;
|
|
250
|
+
atom = Atom.transform(atom, (get) => {
|
|
251
|
+
const unregister = registerLiveQuery(liveKey, () => getQueryReadDependencies(liveKey), liveOptions);
|
|
252
|
+
get.addFinalizer(unregister);
|
|
253
|
+
return get(self);
|
|
254
|
+
}, { initialValueTarget: self });
|
|
255
|
+
}
|
|
245
256
|
const revalidateOnFocus = opts.revalidateOnFocus ?? true;
|
|
246
257
|
atom = Atom.swr({
|
|
247
258
|
staleTime,
|
|
@@ -316,7 +327,8 @@ export const buildQueryFamily = (rt, self) => {
|
|
|
316
327
|
// A fetch is now running: the atom is not stuck, and any pending recovery is fulfilled.
|
|
317
328
|
fetchState.recovering = false;
|
|
318
329
|
fetchState.inFlight++;
|
|
319
|
-
const recordReads = Effect
|
|
330
|
+
const recordReads = Effect
|
|
331
|
+
.gen(function* () {
|
|
320
332
|
const readsRef = yield* Ref.make(DataDependencies.empty());
|
|
321
333
|
const writesRef = yield* Ref.make(DataDependencies.empty());
|
|
322
334
|
const recorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef);
|
|
@@ -327,7 +339,13 @@ export const buildQueryFamily = (rt, self) => {
|
|
|
327
339
|
setQueryReadDependencies(fullKey, lastReads);
|
|
328
340
|
return result;
|
|
329
341
|
});
|
|
330
|
-
|
|
342
|
+
let liveFetch = false;
|
|
343
|
+
const effect = Effect
|
|
344
|
+
.gen(function* () {
|
|
345
|
+
liveFetch = yield* Effect.promise(() => beginLiveQueryFetch(fullKey));
|
|
346
|
+
return yield* recordReads.pipe(Effect.retry({ times: 5, while: isRetryable }));
|
|
347
|
+
})
|
|
348
|
+
.pipe(Effect.ensuring(Effect.sync(() => endLiveQueryFetch(liveFetch))), Effect.tapCauseIf(Cause.hasDies, (cause) => reportRuntimeError(cause)),
|
|
331
349
|
// On exit, the compute is no longer in-flight. An interrupt (subscriber lost interest / a
|
|
332
350
|
// superseding refresh) may leave the result at `waiting`; with `inFlight` back at 0 that
|
|
333
351
|
// reads as "stuck", so the next mount recovers it (`recoverStuckWaitingOnMount`). We do not
|
|
@@ -363,6 +381,7 @@ export const buildQueryFamily = (rt, self) => {
|
|
|
363
381
|
const result = setAtomQueryMetadata(Atom.withLabel(`query-cache:${self.id}`)(writableWithTarget));
|
|
364
382
|
// Key the fetch state by the atom `withQueryOptions` receives, so its mount hook can find it.
|
|
365
383
|
queryFetchStates.set(result, fetchState);
|
|
384
|
+
atomQueryKeys.set(result, fullKey);
|
|
366
385
|
return result;
|
|
367
386
|
});
|
|
368
387
|
};
|
|
@@ -383,4 +402,4 @@ export const buildStreamQueryFamily = (rt, self) => {
|
|
|
383
402
|
};
|
|
384
403
|
/** Await the first resolved (non-Waiting) result of an atom. Failing query results fail the Effect. */
|
|
385
404
|
export const awaitAtomResult = (registry, atom) => AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true });
|
|
386
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbVF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F0b21RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDbEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUVuQyxPQUFPLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQTtBQUNqQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUV2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN4RSxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sS0FBSyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDdkQsT0FBTyxLQUFLLFlBQVksTUFBTSx5Q0FBeUMsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFN0MseUZBQXlGO0FBQ3pGLE1BQU0s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
|
|
405
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbVF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F0b21RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDbEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUVuQyxPQUFPLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQTtBQUNqQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUV2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN4RSxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sS0FBSyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDdkQsT0FBTyxLQUFLLFlBQVksTUFBTSx5Q0FBeUMsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN4SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDN0MsT0FBTyxF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
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DataDependencies } from "effect-app/client";
|
|
2
2
|
export declare const setQueryReadDependencies: (key: ReadonlyArray<unknown>, reads: DataDependencies.DataDependencies) => void;
|
|
3
3
|
export declare const clearQueryReadDependencies: (key: ReadonlyArray<unknown>) => void;
|
|
4
|
+
export declare const getQueryReadDependencies: (key: ReadonlyArray<unknown>) => DataDependencies.DataDependencies;
|
|
4
5
|
/**
|
|
5
6
|
* Reactivity keys of every live query whose recorded read-dependencies intersect this
|
|
6
7
|
* mutation's `writeDependencies`. Returned keys are passed to `invalidateAndAwait`, refreshing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencyMetadata.d.ts","sourceRoot":"","sources":["../src/dependencyMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAUpD,eAAO,MAAM,wBAAwB,QAC9B,aAAa,CAAC,OAAO,CAAC,SACpB,gBAAgB,CAAC,gBAAgB,SAKzC,CAAA;AAED,eAAO,MAAM,0BAA0B,QAAS,aAAa,CAAC,OAAO,CAAC,SAErE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,sBAClB,gBAAgB,CAAC,gBAAgB,KACnD,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAOtC,CAAA"}
|
|
1
|
+
{"version":3,"file":"dependencyMetadata.d.ts","sourceRoot":"","sources":["../src/dependencyMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAUpD,eAAO,MAAM,wBAAwB,QAC9B,aAAa,CAAC,OAAO,CAAC,SACpB,gBAAgB,CAAC,gBAAgB,SAKzC,CAAA;AAED,eAAO,MAAM,0BAA0B,QAAS,aAAa,CAAC,OAAO,CAAC,SAErE,CAAA;AAED,eAAO,MAAM,wBAAwB,QAC9B,aAAa,CAAC,OAAO,CAAC,KAC1B,gBAAgB,CAAC,gBAA2F,CAAA;AAE/G;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,sBAClB,gBAAgB,CAAC,gBAAgB,KACnD,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAOtC,CAAA"}
|
|
@@ -11,6 +11,7 @@ export const setQueryReadDependencies = (key, reads) => {
|
|
|
11
11
|
export const clearQueryReadDependencies = (key) => {
|
|
12
12
|
readDependencies.delete(Hash.hash(key));
|
|
13
13
|
};
|
|
14
|
+
export const getQueryReadDependencies = (key) => readDependencies.get(Hash.hash(key))?.reads ?? DataDependencies.empty();
|
|
14
15
|
/**
|
|
15
16
|
* Reactivity keys of every live query whose recorded read-dependencies intersect this
|
|
16
17
|
* mutation's `writeDependencies`. Returned keys are passed to `invalidateAndAwait`, refreshing
|
|
@@ -26,4 +27,4 @@ export const getDerivedInvalidationKeys = (writeDependencies) => {
|
|
|
26
27
|
}
|
|
27
28
|
return keys;
|
|
28
29
|
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeU1ldGFkYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcGVuZGVuY3lNZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNwRCxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQU9uQyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFpQixDQUFBO0FBRWpELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLEdBQTJCLEVBQzNCLEtBQXdDLEVBQ3hDLEVBQUU7SUFDRixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBOztRQUM5RCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDOUMsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxHQUEyQixFQUFFLEVBQUU7SUFDeEUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtBQUN6QyxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxHQUEyQixFQUNRLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtBQUUvRzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsaUJBQW9ELEVBQ2IsRUFBRTtJQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFDOUQsTUFBTSxJQUFJLEdBQWtDLEVBQUUsQ0FBQTtJQUM5QyxLQUFLLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUN2RCxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNFLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQSJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DataDependencies } from "effect-app/client";
|
|
2
|
+
export interface LiveQueryOptions {
|
|
3
|
+
/** Fixed maximum delay from the first matching write. Zero reacts immediately. */
|
|
4
|
+
readonly maxDelayMs?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface LiveQueryInvalidationSource {
|
|
7
|
+
/** Resolve only after events received after this point can no longer be missed. */
|
|
8
|
+
readonly ready: () => Promise<void>;
|
|
9
|
+
readonly subscribe: (onWrites: (writes: DataDependencies.DataDependencies) => void, onReset: () => void) => () => void;
|
|
10
|
+
readonly invalidate: (keys: ReadonlyArray<ReadonlyArray<unknown>>) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const configureLiveQueryInvalidation: (next: LiveQueryInvalidationSource) => void;
|
|
13
|
+
export declare const registerLiveQuery: (key: ReadonlyArray<unknown>, reads: () => DataDependencies.DataDependencies, options: LiveQueryOptions) => () => void;
|
|
14
|
+
export declare const beginLiveQueryFetch: (key: ReadonlyArray<unknown>) => Promise<boolean>;
|
|
15
|
+
export declare const endLiveQueryFetch: (wasLive: boolean) => void;
|
|
16
|
+
//# sourceMappingURL=liveQueryInvalidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveQueryInvalidation.d.ts","sourceRoot":"","sources":["../src/liveQueryInvalidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,CAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,gBAAgB,KAAK,IAAI,EAC7D,OAAO,EAAE,MAAM,IAAI,KAChB,MAAM,IAAI,CAAA;IACf,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAA;CAC3E;AAwDD,eAAO,MAAM,8BAA8B,SAAU,2BAA2B,SAK/E,CAAA;AAED,eAAO,MAAM,iBAAiB,QACvB,aAAa,CAAC,OAAO,CAAC,SACpB,MAAM,gBAAgB,CAAC,gBAAgB,WACrC,gBAAgB,eAkC1B,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAe,aAAa,CAAC,OAAO,CAAC,qBAUpE,CAAA;AAED,eAAO,MAAM,iBAAiB,YAAa,OAAO,SAOjD,CAAA"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { DataDependencies } from "effect-app/client";
|
|
2
|
+
import * as Hash from "effect/Hash";
|
|
3
|
+
const entries = new Map();
|
|
4
|
+
let source;
|
|
5
|
+
let unsubscribe;
|
|
6
|
+
let discovering = 0;
|
|
7
|
+
let bufferedWrites = DataDependencies.empty();
|
|
8
|
+
const invalidateEntry = (entry) => {
|
|
9
|
+
entry.timer = undefined;
|
|
10
|
+
source?.invalidate([entry.key]);
|
|
11
|
+
};
|
|
12
|
+
const schedule = (entry) => {
|
|
13
|
+
if (entry.timer !== undefined)
|
|
14
|
+
return;
|
|
15
|
+
const maxDelayMs = Math.min(...entry.delays.keys());
|
|
16
|
+
if (maxDelayMs <= 0)
|
|
17
|
+
return invalidateEntry(entry);
|
|
18
|
+
entry.timer = setTimeout(() => invalidateEntry(entry), maxDelayMs);
|
|
19
|
+
};
|
|
20
|
+
const dispatch = (writes) => {
|
|
21
|
+
if (!DataDependencies.isNonEmpty(writes))
|
|
22
|
+
return;
|
|
23
|
+
for (const entry of entries.values()) {
|
|
24
|
+
if (DataDependencies.intersects(entry.reads(), writes))
|
|
25
|
+
schedule(entry);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const receive = (writes) => {
|
|
29
|
+
if (discovering > 0) {
|
|
30
|
+
bufferedWrites = DataDependencies.merge(bufferedWrites, writes);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
dispatch(writes);
|
|
34
|
+
};
|
|
35
|
+
const reset = () => {
|
|
36
|
+
bufferedWrites = DataDependencies.empty();
|
|
37
|
+
for (const entry of entries.values()) {
|
|
38
|
+
if (DataDependencies.isNonEmpty(entry.reads()))
|
|
39
|
+
schedule(entry);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const ensureSubscribed = () => {
|
|
43
|
+
if (unsubscribe === undefined && source !== undefined && entries.size > 0) {
|
|
44
|
+
unsubscribe = source.subscribe(receive, reset);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
export const configureLiveQueryInvalidation = (next) => {
|
|
48
|
+
unsubscribe?.();
|
|
49
|
+
unsubscribe = undefined;
|
|
50
|
+
source = next;
|
|
51
|
+
ensureSubscribed();
|
|
52
|
+
};
|
|
53
|
+
export const registerLiveQuery = (key, reads, options) => {
|
|
54
|
+
const hash = Hash.hash(key);
|
|
55
|
+
const delay = options.maxDelayMs ?? 0;
|
|
56
|
+
const current = entries.get(hash);
|
|
57
|
+
if (current !== undefined) {
|
|
58
|
+
current.observers++;
|
|
59
|
+
current.delays.set(delay, (current.delays.get(delay) ?? 0) + 1);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
entries.set(hash, {
|
|
63
|
+
key,
|
|
64
|
+
reads,
|
|
65
|
+
observers: 1,
|
|
66
|
+
delays: new Map([[delay, 1]]),
|
|
67
|
+
timer: undefined
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
ensureSubscribed();
|
|
71
|
+
return () => {
|
|
72
|
+
const entry = entries.get(hash);
|
|
73
|
+
if (entry === undefined)
|
|
74
|
+
return;
|
|
75
|
+
const delayObservers = entry.delays.get(delay) ?? 0;
|
|
76
|
+
if (delayObservers <= 1)
|
|
77
|
+
entry.delays.delete(delay);
|
|
78
|
+
else
|
|
79
|
+
entry.delays.set(delay, delayObservers - 1);
|
|
80
|
+
if (--entry.observers > 0)
|
|
81
|
+
return;
|
|
82
|
+
if (entry.timer !== undefined)
|
|
83
|
+
clearTimeout(entry.timer);
|
|
84
|
+
entries.delete(hash);
|
|
85
|
+
if (entries.size === 0) {
|
|
86
|
+
unsubscribe?.();
|
|
87
|
+
unsubscribe = undefined;
|
|
88
|
+
bufferedWrites = DataDependencies.empty();
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
export const beginLiveQueryFetch = async (key) => {
|
|
93
|
+
if (!entries.has(Hash.hash(key)) || source === undefined)
|
|
94
|
+
return false;
|
|
95
|
+
discovering++;
|
|
96
|
+
try {
|
|
97
|
+
await source.ready();
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
discovering--;
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
export const endLiveQueryFetch = (wasLive) => {
|
|
106
|
+
if (!wasLive)
|
|
107
|
+
return;
|
|
108
|
+
discovering = Math.max(0, discovering - 1);
|
|
109
|
+
if (discovering > 0 || !DataDependencies.isNonEmpty(bufferedWrites))
|
|
110
|
+
return;
|
|
111
|
+
const writes = bufferedWrites;
|
|
112
|
+
bufferedWrites = DataDependencies.empty();
|
|
113
|
+
dispatch(writes);
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZVF1ZXJ5SW52YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xpdmVRdWVyeUludmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNwRCxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQXlCbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUE7QUFDakQsSUFBSSxNQUErQyxDQUFBO0FBQ25ELElBQUksV0FBcUMsQ0FBQTtBQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUE7QUFDbkIsSUFBSSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUE7QUFFN0MsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUU7SUFDaEQsS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUE7SUFDdkIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0FBQ2pDLENBQUMsQ0FBQTtBQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFO0lBQ3pDLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTTtJQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ25ELElBQUksVUFBVSxJQUFJLENBQUM7UUFBRSxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsRCxLQUFLLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUE7QUFDcEUsQ0FBQyxDQUFBO0FBRUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxN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
|
package/dist/query.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
|
10
10
|
import * as Atom from "effect/unstable/reactivity/Atom";
|
|
11
11
|
import { type ComputedRef, type MaybeRefOrGetter, type WatchSource } from "vue";
|
|
12
12
|
import { type AtomClientRuntime } from "./atomQuery.js";
|
|
13
|
+
import type { LiveQueryOptions } from "./liveQueryInvalidation.js";
|
|
13
14
|
type DefaultError = Error;
|
|
14
15
|
type QueryKey = ReadonlyArray<unknown>;
|
|
15
16
|
/** Options accepted by `refetch()` — kept for source compatibility; the atom path ignores them. */
|
|
@@ -60,6 +61,7 @@ export interface CustomUseQueryOptions<TQueryFnData = unknown, TError = DefaultE
|
|
|
60
61
|
readonly structuralSharing?: boolean;
|
|
61
62
|
/** poll: re-fetch every N ms (tanstack refetchInterval) */
|
|
62
63
|
readonly refetchInterval?: number;
|
|
64
|
+
readonly live?: boolean | LiveQueryOptions;
|
|
63
65
|
readonly select?: (data: TQueryFnData) => TData;
|
|
64
66
|
/** accepted for source compatibility; not used by the atom engine */
|
|
65
67
|
readonly retry?: boolean | number;
|
|
@@ -89,6 +91,7 @@ export interface AtomQueryNewOptions<TQueryFnData = unknown, TData = TQueryFnDat
|
|
|
89
91
|
readonly structuralSharing?: boolean;
|
|
90
92
|
readonly refreshEvery?: number;
|
|
91
93
|
readonly refetchInterval?: number;
|
|
94
|
+
readonly live?: boolean | LiveQueryOptions;
|
|
92
95
|
readonly select?: (data: TQueryFnData) => TData;
|
|
93
96
|
}
|
|
94
97
|
export interface AtomStreamQueryOptions {
|
|
@@ -98,6 +101,7 @@ export interface AtomStreamQueryOptions {
|
|
|
98
101
|
readonly revalidateOnFocus?: boolean;
|
|
99
102
|
readonly refetchOnWindowFocus?: boolean;
|
|
100
103
|
readonly refreshEvery?: number;
|
|
104
|
+
readonly live?: boolean | LiveQueryOptions;
|
|
101
105
|
readonly refetchInterval?: number;
|
|
102
106
|
}
|
|
103
107
|
/**
|
package/dist/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAgB,MAAM,kBAAkB,CAAA;AAE/D,OAAO,EAAgB,KAAK,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAoB,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAC3H,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AACrE,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAA;AACvD,OAAO,EAAY,KAAK,WAAW,EAAe,KAAK,gBAAgB,EAA4D,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AAChK,OAAO,EAAE,KAAK,iBAAiB,EAAmL,MAAM,gBAAgB,CAAA;AAIxO,KAAK,YAAY,GAAG,KAAK,CAAA;AACzB,KAAK,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AACtC,mGAAmG;AACnG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAChC;AACD,8EAA8E;AAC9E,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;IACpD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;CACrE;AACD,MAAM,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;CAC1C;AAyBD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,EACpE,QAAQ,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,EAC3C,KAAK,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EACzD,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KACtC,IAAI,CAAA;CACV;AAGD,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACpE,MAAM,MAAM,yBAAyB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC3E,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACpF,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,SAAS;IAC9C,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,WAAW,CAAC,CAAC,CAAC;IACd,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACxD,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAC9B,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,GAC7B;IACA,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;CAC9B,GACC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAE5B,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CACrC,KAAK,EAAE,CAAC,KACL,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChF,MAAM,MAAM,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAyErG,eAAO,MAAM,qBAAqB,mBAAkC,CAAA;AACpE,eAAO,MAAM,6BAA6B,mBAAmC,CAAA;AAE7E,eAAO,MAAM,yBAAyB,UAAW,iBAAiB,UAAU,iBAAiB,KAAG,iBAK9F,CAAA;AAIF,eAAO,MAAM,oBAAoB,YAAa,iBAAiB,SAE9D,CAAA;AAID,MAAM,WAAW,qBAAqB,CACpC,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,UAAU,GAAG,YAAY,EACzB,SAAS,SAAS,QAAQ,GAAG,QAAQ;IAErC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IACxD,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IACrC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,CAAA;IAC/C,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;CACpD;AAGD,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAA;AAEzD,MAAM,WAAW,kCAAkC,CACjD,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,UAAU,GAAG,YAAY,EACzB,SAAS,SAAS,QAAQ,GAAG,QAAQ,CACrC,SAAQ,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,KAAK,UAAU,CAAC,GAAG,SAAS,CAAA;CACrH;AACD,MAAM,WAAW,gCAAgC,CAC/C,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,UAAU,GAAG,YAAY,EACzB,SAAS,SAAS,QAAQ,GAAG,QAAQ,CACrC,SAAQ,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC;IACjF,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,CAAA;IACzD,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,KAAK,UAAU,CAAC,GAAG,SAAS,CAAA;CACrH;AAED,MAAM,WAAW,oCAAoC,CACnD,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,UAAU,GAAG,YAAY,EACzB,SAAS,SAAS,QAAQ,GAAG,QAAQ,CACrC,SAAQ,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,KAAK,UAAU,CAAC,CAAA;CACxG;AAED,MAAM,WAAW,mBAAmB,CAAC,YAAY,GAAG,OAAO,EAAE,KAAK,GAAG,YAAY;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IACrC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,CAAA;CAChD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IACrC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,CAAC,aAExB;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,YAClD,OAAO,KAChB,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAgC3C,CAAA;AA8BD,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KACnD,SAAS,CAAC,CAAC,EAAE,CAAC,CAuBhB,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,CAAC,QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KACnD,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAuCjC,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;CACjC,CAAA;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IAC3C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;IACvG,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;IACxG,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;IACpD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;CACvE;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,QAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KACrD,eAAe,CAAC,CAAC,EAAE,CAAC,CAuCtB,CAAA;AA0HD,eAAO,MAAM,eAAe,GAAI,CAAC,eAAe,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,iBAAiB,MAEvG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,KAC7C,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KACpD,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAM7B,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,eAAe,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,iBAAiB,MAErG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,KAC7C,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KACpD;IACD,CAAC,KAAK,GAAG,CAAC,EACR,GAAG,EAAE,CAAC,EACN,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,GACtD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAWhD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,eAAe,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,iBAAiB,MAEpG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,KAC7C,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KACpD;IACD,CAAC,KAAK,GAAG,CAAC,EACR,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAClC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAC7E,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAEtB,CAAC,KAAK,GAAG,CAAC,EACR,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,EACnC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,GACtC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;CAW3B,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,eAAe,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,iBAAiB,MA6EjG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,QAC1C,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KACvD;IACD,CAAC,KAAK,GAAG,CAAC,EACR,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAClC,OAAO,EAAE,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAC/G,SAAS,CACV,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAC9C,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC,EAC9B,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1F,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC7B,CAAA;IACD,CAAC,KAAK,GAAG,CAAC,EACR,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,gCAAgC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GACrE,SAAS,CACV,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAC9C,WAAW,CAAC,KAAK,CAAC,EAClB,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1F,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC7B,CAAA;IACD,CAAC,KAAK,GAAG,CAAC,EACR,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,oCAAoC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GACzE,SAAS,CACV,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAC9C,WAAW,CAAC,KAAK,CAAC,EAClB,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1F,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC7B,CAAA;IACD,CAAC,KAAK,GAAG,CAAC,EACR,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,EAAE,kCAAkC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GACxE,SAAS,CACV,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAC9C,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC,EAC9B,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1F,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC7B,CAAA;CASN,CAAA;AAGD,MAAM,WAAW,UAAU,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;CAAG;AAYzE,eAAO,MAAM,qBAAqB,GAAI,CAAC,eAAe,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,iBAAiB,MAE7G,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,KAC7C,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAC1D,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAMnC,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,CAAC,eAAe,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,iBAAiB,MAE3G,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,KAC7C,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAC1D,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAO7F,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,eAAe,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,iBAAiB,MAE1G,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,KAC7C,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAC1D,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAQ1F,CAAA;AAED,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,SAAS;IACtC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;IAC5B,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;CAC7B,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,cACnB,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aACzB,MAAM,iBAAiB,MAQ/B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,KAC7C,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAC1D,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAWzD,CAAA;AAGD,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;CAAG;AAQrF,wBAAgB,cAAc,CAC5B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAE3D,OAAO,EAAE,CAAC,EACV,uBAAuB,CAAC,EAAE,OAAO,GAChC,WAAW,CAAC,WAAW,CACxB;KACG,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAChF,KAAK;CACV,EACD;KACG,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAChF,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,CACX,CAwBA;AAED,eAAO,MAAM,cAAc,SAItB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,MAAM,SAC5C,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAClD,CAAC,WACC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KACxC,IAGN,CAAA"}
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/query.js
CHANGED
|
@@ -13,7 +13,7 @@ import * as Stream from "effect/Stream";
|
|
|
13
13
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
14
14
|
import * as Atom from "effect/unstable/reactivity/Atom";
|
|
15
15
|
import { computed, effectScope, onBeforeUnmount, onMounted, onScopeDispose, ref, toValue } from "vue";
|
|
16
|
-
import { awaitAtomResult, buildQueryFamily, buildStreamQueryFamily, disabledQueryAtom, isStaleResult, refreshAtomWithCurrentSpan, staleTimeMsOf, withQueryOptions } from "./atomQuery.js";
|
|
16
|
+
import { awaitAtomResult, buildQueryFamily, buildStreamQueryFamily, disabledQueryAtom, isStaleResult, queryKeyForAtom, refreshAtomWithCurrentSpan, staleTimeMsOf, withQueryOptions } from "./atomQuery.js";
|
|
17
17
|
import { latestDefined } from "./suspense.js";
|
|
18
18
|
const useScopedSuspenseSetup = (setup) => {
|
|
19
19
|
const scope = effectScope();
|
|
@@ -144,6 +144,8 @@ const normalizeQueryOptions = (options) => {
|
|
|
144
144
|
const refetchInterval = options?.refreshEvery ?? options?.refetchInterval;
|
|
145
145
|
if (refetchInterval !== undefined)
|
|
146
146
|
out.refetchInterval = refetchInterval;
|
|
147
|
+
if (options?.live !== undefined)
|
|
148
|
+
out.live = options.live;
|
|
147
149
|
return out;
|
|
148
150
|
};
|
|
149
151
|
export const useAtomQuery = (atom) => {
|
|
@@ -256,7 +258,7 @@ const optionValue = (arr, options) => {
|
|
|
256
258
|
const enabled = options?.enabled;
|
|
257
259
|
return [req, computed(() => enabled === undefined ? true : !!toValue(enabled))];
|
|
258
260
|
};
|
|
259
|
-
const observedAtom = (atom, options) => withQueryOptions(atom, normalizeQueryOptions(options));
|
|
261
|
+
const observedAtom = (atom, options) => withQueryOptions(atom, normalizeQueryOptions(options), queryKeyForAtom(atom));
|
|
260
262
|
const observedStreamAtom = (atom, options) => {
|
|
261
263
|
let next = atom;
|
|
262
264
|
const refetchInterval = options?.refreshEvery ?? options?.refetchInterval;
|
|
@@ -418,4 +420,4 @@ export const useUpdateQuery = () => {
|
|
|
418
420
|
const f = (query, input, updater) => activeQueryCacheUpdater.update(registry, query, input, updater);
|
|
419
421
|
return f;
|
|
420
422
|
};
|
|
421
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLG1CQUFtQixDQUFBO0FBSTFELE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sS0FBSyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBb0IsV0FBVyxFQUF5QixlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFvQixNQUFNLEtBQUssQ0FBQTtBQUNoSyxPQUFPLEVBQWlELGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsMEJBQTBCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDeE8sT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQXVCN0MsTUFBTSxzQkFBc0IsR0FBRyxDQUFJLEtBQWMsRUFBRSxFQUFFO0lBQ25ELE1BQU0sS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBQzNCLE1BQU0sVUFBVSxHQUFHLElBQUksZUFB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
|
|
423
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLG1CQUFtQixDQUFBO0FBSTFELE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sS0FBSyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBb0IsV0FBVyxFQUF5QixlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFvQixNQUFNLEtBQUssQ0FBQTtBQUNoSyxPQUFPLEVBQWlELGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXpQLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUF1QjdDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBSSxLQUFjLEVBQUUsRUFBRTtJQUNuRCxNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQTtJQUMzQixNQUFNLFVBQVUsR0FB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.309",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"@vueuse/core": "^14.3.0",
|
|
16
16
|
"change-case": "^5.4.4",
|
|
17
17
|
"query-string": "^9.4.0",
|
|
18
|
-
"effect-app": "4.0.0-beta.
|
|
18
|
+
"effect-app": "4.0.0-beta.309"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
21
|
"@effect/atom-vue": "^4.0.0-beta.90",
|
package/src/atomQuery.ts
CHANGED
|
@@ -32,8 +32,9 @@ import { isHttpClientError } from "effect/unstable/http/HttpClientError"
|
|
|
32
32
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
|
|
33
33
|
import * as Atom from "effect/unstable/reactivity/Atom"
|
|
34
34
|
import * as AtomRegistry from "effect/unstable/reactivity/AtomRegistry"
|
|
35
|
-
import { clearQueryReadDependencies, setQueryReadDependencies } from "./dependencyMetadata.ts"
|
|
35
|
+
import { clearQueryReadDependencies, getQueryReadDependencies, setQueryReadDependencies } from "./dependencyMetadata.ts"
|
|
36
36
|
import { reportRuntimeError } from "./lib.ts"
|
|
37
|
+
import { beginLiveQueryFetch, endLiveQueryFetch, type LiveQueryOptions, registerLiveQuery } from "./liveQueryInvalidation.ts"
|
|
37
38
|
|
|
38
39
|
/** All non-empty prefixes of a key, longest last. `[a,b,c]` -> `[[a],[a,b],[a,b,c]]`. */
|
|
39
40
|
const prefixesOf = (key: ReadonlyArray<unknown>): ReadonlyArray<ReadonlyArray<unknown>> =>
|
|
@@ -226,6 +227,8 @@ export interface AtomQueryOptions {
|
|
|
226
227
|
readonly structuralSharing?: boolean
|
|
227
228
|
/** poll: re-fetch every N ms (tanstack refetchInterval). */
|
|
228
229
|
readonly refetchInterval?: number
|
|
230
|
+
/** Refresh when writes intersect the dependencies recorded by this query. */
|
|
231
|
+
readonly live?: boolean | LiveQueryOptions
|
|
229
232
|
}
|
|
230
233
|
|
|
231
234
|
const defaults = { staleTime: Duration.seconds(5), gcTime: Duration.minutes(5) }
|
|
@@ -236,6 +239,11 @@ export interface AtomQueryMetadata {
|
|
|
236
239
|
|
|
237
240
|
const atomQueryMetadata = new WeakMap<Atom.Atom<AsyncResult.AsyncResult<any, any>>, AtomQueryMetadata>()
|
|
238
241
|
const atomQueryParentSpans = new WeakMap<Atom.Atom<AsyncResult.AsyncResult<any, any>>, Tracer.AnySpan>()
|
|
242
|
+
const atomQueryKeys = new WeakMap<Atom.Atom<AsyncResult.AsyncResult<any, any>>, ReadonlyArray<unknown>>()
|
|
243
|
+
|
|
244
|
+
export const queryKeyForAtom = <A, E>(
|
|
245
|
+
atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>
|
|
246
|
+
): ReadonlyArray<unknown> | undefined => atomQueryKeys.get(atom)
|
|
239
247
|
|
|
240
248
|
const atomSpanTarget = <A, E>(atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>) => {
|
|
241
249
|
let target = atom
|
|
@@ -351,11 +359,24 @@ const recoverStuckWaitingOnMount =
|
|
|
351
359
|
|
|
352
360
|
export const withQueryOptions = <A, E>(
|
|
353
361
|
self: Atom.Atom<AsyncResult.AsyncResult<A, E>>,
|
|
354
|
-
opts: AtomQueryOptions = {}
|
|
362
|
+
opts: AtomQueryOptions = {},
|
|
363
|
+
liveKey?: ReadonlyArray<unknown>
|
|
355
364
|
): Atom.Atom<AsyncResult.AsyncResult<A, E>> => {
|
|
356
365
|
setAtomQueryMetadata(self, opts)
|
|
357
366
|
const staleTime: Duration.Input = opts.staleTime ?? defaults.staleTime
|
|
358
367
|
let atom = self
|
|
368
|
+
if (opts.live && liveKey !== undefined) {
|
|
369
|
+
const liveOptions = opts.live === true ? {} : opts.live
|
|
370
|
+
atom = Atom.transform(atom, (get) => {
|
|
371
|
+
const unregister = registerLiveQuery(
|
|
372
|
+
liveKey,
|
|
373
|
+
() => getQueryReadDependencies(liveKey),
|
|
374
|
+
liveOptions
|
|
375
|
+
)
|
|
376
|
+
get.addFinalizer(unregister)
|
|
377
|
+
return get(self)
|
|
378
|
+
}, { initialValueTarget: self })
|
|
379
|
+
}
|
|
359
380
|
const revalidateOnFocus = opts.revalidateOnFocus ?? true
|
|
360
381
|
atom = Atom.swr({
|
|
361
382
|
staleTime,
|
|
@@ -442,31 +463,38 @@ export const buildQueryFamily = <I, A, E>(
|
|
|
442
463
|
// A fetch is now running: the atom is not stuck, and any pending recovery is fulfilled.
|
|
443
464
|
fetchState.recovering = false
|
|
444
465
|
fetchState.inFlight++
|
|
445
|
-
const recordReads = Effect
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
Effect.sync(() =>
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
466
|
+
const recordReads = Effect
|
|
467
|
+
.gen(function*() {
|
|
468
|
+
const readsRef = yield* Ref.make(DataDependencies.empty())
|
|
469
|
+
const writesRef = yield* Ref.make(DataDependencies.empty())
|
|
470
|
+
const recorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef)
|
|
471
|
+
const result = yield* self
|
|
472
|
+
.handler(input)
|
|
473
|
+
.pipe(Effect.provideService(DataDependencies.DataDependencyRecorder, recorder))
|
|
474
|
+
lastReads = yield* Ref.get(readsRef)
|
|
475
|
+
setQueryReadDependencies(fullKey, lastReads)
|
|
476
|
+
return result
|
|
477
|
+
})
|
|
478
|
+
let liveFetch = false
|
|
479
|
+
const effect = Effect
|
|
480
|
+
.gen(function*() {
|
|
481
|
+
liveFetch = yield* Effect.promise(() => beginLiveQueryFetch(fullKey))
|
|
482
|
+
return yield* recordReads.pipe(Effect.retry({ times: 5, while: isRetryable }))
|
|
483
|
+
})
|
|
484
|
+
.pipe(
|
|
485
|
+
Effect.ensuring(Effect.sync(() => endLiveQueryFetch(liveFetch))),
|
|
486
|
+
Effect.tapCauseIf(Cause.hasDies, (cause) => reportRuntimeError(cause)),
|
|
487
|
+
// On exit, the compute is no longer in-flight. An interrupt (subscriber lost interest / a
|
|
488
|
+
// superseding refresh) may leave the result at `waiting`; with `inFlight` back at 0 that
|
|
489
|
+
// reads as "stuck", so the next mount recovers it (`recoverStuckWaitingOnMount`). We do not
|
|
490
|
+
// re-fire here — the interrupt was intentional; recovery is driven by a genuine (re)mount.
|
|
491
|
+
Effect.onExit(() =>
|
|
492
|
+
Effect.sync(() => {
|
|
493
|
+
fetchState.inFlight = Math.max(0, fetchState.inFlight - 1)
|
|
494
|
+
})
|
|
495
|
+
),
|
|
496
|
+
Effect.withSpan(`query ${self.id}`, {}, { captureStackTrace: false })
|
|
497
|
+
)
|
|
470
498
|
const parentSpan = takeAtomQueryParentSpan(atom)
|
|
471
499
|
return parentSpan === undefined
|
|
472
500
|
? effect
|
|
@@ -500,6 +528,7 @@ export const buildQueryFamily = <I, A, E>(
|
|
|
500
528
|
const result = setAtomQueryMetadata(Atom.withLabel(`query-cache:${self.id}`)(writableWithTarget))
|
|
501
529
|
// Key the fetch state by the atom `withQueryOptions` receives, so its mount hook can find it.
|
|
502
530
|
queryFetchStates.set(result, fetchState)
|
|
531
|
+
atomQueryKeys.set(result, fullKey)
|
|
503
532
|
return result
|
|
504
533
|
})
|
|
505
534
|
}
|
|
@@ -21,6 +21,10 @@ export const clearQueryReadDependencies = (key: ReadonlyArray<unknown>) => {
|
|
|
21
21
|
readDependencies.delete(Hash.hash(key))
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
export const getQueryReadDependencies = (
|
|
25
|
+
key: ReadonlyArray<unknown>
|
|
26
|
+
): DataDependencies.DataDependencies => readDependencies.get(Hash.hash(key))?.reads ?? DataDependencies.empty()
|
|
27
|
+
|
|
24
28
|
/**
|
|
25
29
|
* Reactivity keys of every live query whose recorded read-dependencies intersect this
|
|
26
30
|
* mutation's `writeDependencies`. Returned keys are passed to `invalidateAndAwait`, refreshing
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { DataDependencies } from "effect-app/client"
|
|
2
|
+
import * as Hash from "effect/Hash"
|
|
3
|
+
|
|
4
|
+
export interface LiveQueryOptions {
|
|
5
|
+
/** Fixed maximum delay from the first matching write. Zero reacts immediately. */
|
|
6
|
+
readonly maxDelayMs?: number
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface LiveQueryInvalidationSource {
|
|
10
|
+
/** Resolve only after events received after this point can no longer be missed. */
|
|
11
|
+
readonly ready: () => Promise<void>
|
|
12
|
+
readonly subscribe: (
|
|
13
|
+
onWrites: (writes: DataDependencies.DataDependencies) => void,
|
|
14
|
+
onReset: () => void
|
|
15
|
+
) => () => void
|
|
16
|
+
readonly invalidate: (keys: ReadonlyArray<ReadonlyArray<unknown>>) => void
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface LiveQueryEntry {
|
|
20
|
+
readonly key: ReadonlyArray<unknown>
|
|
21
|
+
readonly reads: () => DataDependencies.DataDependencies
|
|
22
|
+
observers: number
|
|
23
|
+
readonly delays: Map<number, number>
|
|
24
|
+
timer: ReturnType<typeof setTimeout> | undefined
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const entries = new Map<number, LiveQueryEntry>()
|
|
28
|
+
let source: LiveQueryInvalidationSource | undefined
|
|
29
|
+
let unsubscribe: (() => void) | undefined
|
|
30
|
+
let discovering = 0
|
|
31
|
+
let bufferedWrites = DataDependencies.empty()
|
|
32
|
+
|
|
33
|
+
const invalidateEntry = (entry: LiveQueryEntry) => {
|
|
34
|
+
entry.timer = undefined
|
|
35
|
+
source?.invalidate([entry.key])
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const schedule = (entry: LiveQueryEntry) => {
|
|
39
|
+
if (entry.timer !== undefined) return
|
|
40
|
+
const maxDelayMs = Math.min(...entry.delays.keys())
|
|
41
|
+
if (maxDelayMs <= 0) return invalidateEntry(entry)
|
|
42
|
+
entry.timer = setTimeout(() => invalidateEntry(entry), maxDelayMs)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const dispatch = (writes: DataDependencies.DataDependencies) => {
|
|
46
|
+
if (!DataDependencies.isNonEmpty(writes)) return
|
|
47
|
+
for (const entry of entries.values()) {
|
|
48
|
+
if (DataDependencies.intersects(entry.reads(), writes)) schedule(entry)
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const receive = (writes: DataDependencies.DataDependencies) => {
|
|
53
|
+
if (discovering > 0) {
|
|
54
|
+
bufferedWrites = DataDependencies.merge(bufferedWrites, writes)
|
|
55
|
+
return
|
|
56
|
+
}
|
|
57
|
+
dispatch(writes)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const reset = () => {
|
|
61
|
+
bufferedWrites = DataDependencies.empty()
|
|
62
|
+
for (const entry of entries.values()) {
|
|
63
|
+
if (DataDependencies.isNonEmpty(entry.reads())) schedule(entry)
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const ensureSubscribed = () => {
|
|
68
|
+
if (unsubscribe === undefined && source !== undefined && entries.size > 0) {
|
|
69
|
+
unsubscribe = source.subscribe(receive, reset)
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export const configureLiveQueryInvalidation = (next: LiveQueryInvalidationSource) => {
|
|
74
|
+
unsubscribe?.()
|
|
75
|
+
unsubscribe = undefined
|
|
76
|
+
source = next
|
|
77
|
+
ensureSubscribed()
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export const registerLiveQuery = (
|
|
81
|
+
key: ReadonlyArray<unknown>,
|
|
82
|
+
reads: () => DataDependencies.DataDependencies,
|
|
83
|
+
options: LiveQueryOptions
|
|
84
|
+
) => {
|
|
85
|
+
const hash = Hash.hash(key)
|
|
86
|
+
const delay = options.maxDelayMs ?? 0
|
|
87
|
+
const current = entries.get(hash)
|
|
88
|
+
if (current !== undefined) {
|
|
89
|
+
current.observers++
|
|
90
|
+
current.delays.set(delay, (current.delays.get(delay) ?? 0) + 1)
|
|
91
|
+
} else {
|
|
92
|
+
entries.set(hash, {
|
|
93
|
+
key,
|
|
94
|
+
reads,
|
|
95
|
+
observers: 1,
|
|
96
|
+
delays: new Map([[delay, 1]]),
|
|
97
|
+
timer: undefined
|
|
98
|
+
})
|
|
99
|
+
}
|
|
100
|
+
ensureSubscribed()
|
|
101
|
+
|
|
102
|
+
return () => {
|
|
103
|
+
const entry = entries.get(hash)
|
|
104
|
+
if (entry === undefined) return
|
|
105
|
+
const delayObservers = entry.delays.get(delay) ?? 0
|
|
106
|
+
if (delayObservers <= 1) entry.delays.delete(delay)
|
|
107
|
+
else entry.delays.set(delay, delayObservers - 1)
|
|
108
|
+
if (--entry.observers > 0) return
|
|
109
|
+
if (entry.timer !== undefined) clearTimeout(entry.timer)
|
|
110
|
+
entries.delete(hash)
|
|
111
|
+
if (entries.size === 0) {
|
|
112
|
+
unsubscribe?.()
|
|
113
|
+
unsubscribe = undefined
|
|
114
|
+
bufferedWrites = DataDependencies.empty()
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export const beginLiveQueryFetch = async (key: ReadonlyArray<unknown>) => {
|
|
120
|
+
if (!entries.has(Hash.hash(key)) || source === undefined) return false
|
|
121
|
+
discovering++
|
|
122
|
+
try {
|
|
123
|
+
await source.ready()
|
|
124
|
+
return true
|
|
125
|
+
} catch (error) {
|
|
126
|
+
discovering--
|
|
127
|
+
throw error
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export const endLiveQueryFetch = (wasLive: boolean) => {
|
|
132
|
+
if (!wasLive) return
|
|
133
|
+
discovering = Math.max(0, discovering - 1)
|
|
134
|
+
if (discovering > 0 || !DataDependencies.isNonEmpty(bufferedWrites)) return
|
|
135
|
+
const writes = bufferedWrites
|
|
136
|
+
bufferedWrites = DataDependencies.empty()
|
|
137
|
+
dispatch(writes)
|
|
138
|
+
}
|
package/src/query.ts
CHANGED
|
@@ -17,7 +17,8 @@ import * as Stream from "effect/Stream"
|
|
|
17
17
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
|
|
18
18
|
import * as Atom from "effect/unstable/reactivity/Atom"
|
|
19
19
|
import { computed, type ComputedRef, effectScope, type MaybeRefOrGetter, onBeforeUnmount, onMounted, onScopeDispose, ref, toValue, type WatchSource } from "vue"
|
|
20
|
-
import { type AtomClientRuntime, type AtomQueryOptions, awaitAtomResult, buildQueryFamily, buildStreamQueryFamily, disabledQueryAtom, isStaleResult, refreshAtomWithCurrentSpan, staleTimeMsOf, withQueryOptions } from "./atomQuery.ts"
|
|
20
|
+
import { type AtomClientRuntime, type AtomQueryOptions, awaitAtomResult, buildQueryFamily, buildStreamQueryFamily, disabledQueryAtom, isStaleResult, queryKeyForAtom, refreshAtomWithCurrentSpan, staleTimeMsOf, withQueryOptions } from "./atomQuery.ts"
|
|
21
|
+
import type { LiveQueryOptions } from "./liveQueryInvalidation.ts"
|
|
21
22
|
import { latestDefined } from "./suspense.ts"
|
|
22
23
|
|
|
23
24
|
// --- minimal local types (replacing the former @tanstack/vue-query type imports) ---
|
|
@@ -201,6 +202,7 @@ export interface CustomUseQueryOptions<
|
|
|
201
202
|
readonly structuralSharing?: boolean
|
|
202
203
|
/** poll: re-fetch every N ms (tanstack refetchInterval) */
|
|
203
204
|
readonly refetchInterval?: number
|
|
205
|
+
readonly live?: boolean | LiveQueryOptions
|
|
204
206
|
readonly select?: (data: TQueryFnData) => TData
|
|
205
207
|
/** accepted for source compatibility; not used by the atom engine */
|
|
206
208
|
readonly retry?: boolean | number
|
|
@@ -253,6 +255,7 @@ export interface AtomQueryNewOptions<TQueryFnData = unknown, TData = TQueryFnDat
|
|
|
253
255
|
readonly structuralSharing?: boolean
|
|
254
256
|
readonly refreshEvery?: number
|
|
255
257
|
readonly refetchInterval?: number
|
|
258
|
+
readonly live?: boolean | LiveQueryOptions
|
|
256
259
|
readonly select?: (data: TQueryFnData) => TData
|
|
257
260
|
}
|
|
258
261
|
|
|
@@ -263,6 +266,7 @@ export interface AtomStreamQueryOptions {
|
|
|
263
266
|
readonly revalidateOnFocus?: boolean
|
|
264
267
|
readonly refetchOnWindowFocus?: boolean
|
|
265
268
|
readonly refreshEvery?: number
|
|
269
|
+
readonly live?: boolean | LiveQueryOptions
|
|
266
270
|
readonly refetchInterval?: number
|
|
267
271
|
}
|
|
268
272
|
|
|
@@ -322,6 +326,7 @@ const normalizeQueryOptions = (options?: {
|
|
|
322
326
|
readonly structuralSharing?: boolean
|
|
323
327
|
readonly refetchInterval?: number
|
|
324
328
|
readonly refreshEvery?: number
|
|
329
|
+
readonly live?: boolean | LiveQueryOptions
|
|
325
330
|
}): AtomQueryOptions => {
|
|
326
331
|
const out: {
|
|
327
332
|
staleTime?: number
|
|
@@ -329,6 +334,7 @@ const normalizeQueryOptions = (options?: {
|
|
|
329
334
|
revalidateOnFocus?: boolean
|
|
330
335
|
structuralSharing?: boolean
|
|
331
336
|
refetchInterval?: number
|
|
337
|
+
live?: boolean | LiveQueryOptions
|
|
332
338
|
} = {}
|
|
333
339
|
if (options?.staleTime !== undefined) out.staleTime = options.staleTime
|
|
334
340
|
const gcTime = options?.idleTTL ?? options?.gcTime
|
|
@@ -338,6 +344,7 @@ const normalizeQueryOptions = (options?: {
|
|
|
338
344
|
if (options?.structuralSharing !== undefined) out.structuralSharing = options.structuralSharing
|
|
339
345
|
const refetchInterval = options?.refreshEvery ?? options?.refetchInterval
|
|
340
346
|
if (refetchInterval !== undefined) out.refetchInterval = refetchInterval
|
|
347
|
+
if (options?.live !== undefined) out.live = options.live
|
|
341
348
|
return out
|
|
342
349
|
}
|
|
343
350
|
|
|
@@ -513,8 +520,10 @@ const observedAtom = <A, E>(
|
|
|
513
520
|
readonly structuralSharing?: boolean
|
|
514
521
|
readonly refetchInterval?: number
|
|
515
522
|
readonly refreshEvery?: number
|
|
523
|
+
readonly live?: boolean | LiveQueryOptions
|
|
516
524
|
}
|
|
517
|
-
): Atom.Atom<AsyncResult.AsyncResult<A, E>> =>
|
|
525
|
+
): Atom.Atom<AsyncResult.AsyncResult<A, E>> =>
|
|
526
|
+
withQueryOptions(atom, normalizeQueryOptions(options), queryKeyForAtom(atom))
|
|
518
527
|
|
|
519
528
|
const observedStreamAtom = <A, E>(
|
|
520
529
|
atom: Atom.Writable<Atom.PullResult<A, E>, void>,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveQueryInvalidation.test.d.ts","sourceRoot":"","sources":["../liveQueryInvalidation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { DataDependencies } from "effect-app/client"
|
|
2
|
+
import { afterEach, describe, expect, it, vi } from "vitest"
|
|
3
|
+
import { beginLiveQueryFetch, configureLiveQueryInvalidation, endLiveQueryFetch, registerLiveQuery } from "../src/liveQueryInvalidation.js"
|
|
4
|
+
|
|
5
|
+
const repo = DataDependencies.repo("Inventory", ["item-1"])
|
|
6
|
+
const otherId = DataDependencies.repo("Inventory", ["item-2"])
|
|
7
|
+
|
|
8
|
+
describe("live query invalidation", () => {
|
|
9
|
+
const cleanups: Array<() => void> = []
|
|
10
|
+
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
while (cleanups.length > 0) cleanups.pop()?.()
|
|
13
|
+
vi.useRealTimers()
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
it("invalidates only live queries whose recorded reads intersect", () => {
|
|
17
|
+
const invalidations: Array<ReadonlyArray<ReadonlyArray<unknown>>> = []
|
|
18
|
+
let receive = (_writes: DataDependencies.DataDependencies) => {}
|
|
19
|
+
configureLiveQueryInvalidation({
|
|
20
|
+
ready: () => Promise.resolve(),
|
|
21
|
+
subscribe: (onWrites) => {
|
|
22
|
+
receive = onWrites
|
|
23
|
+
return () => {}
|
|
24
|
+
},
|
|
25
|
+
invalidate: (keys) => invalidations.push(keys)
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
const key = ["$Inventory", "List", undefined]
|
|
29
|
+
cleanups.push(registerLiveQuery(key, () => new Set([repo]), {}))
|
|
30
|
+
receive(new Set([otherId]))
|
|
31
|
+
expect(invalidations).toEqual([])
|
|
32
|
+
|
|
33
|
+
receive(new Set([repo]))
|
|
34
|
+
expect(invalidations).toEqual([[key]])
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
it("replays writes received while the initial query discovers its dependencies", async () => {
|
|
38
|
+
const invalidations: Array<ReadonlyArray<ReadonlyArray<unknown>>> = []
|
|
39
|
+
let receive = (_writes: DataDependencies.DataDependencies) => {}
|
|
40
|
+
let open = () => {}
|
|
41
|
+
const ready = new Promise<void>((resolve) => open = resolve)
|
|
42
|
+
configureLiveQueryInvalidation({
|
|
43
|
+
ready: () => ready,
|
|
44
|
+
subscribe: (onWrites) => {
|
|
45
|
+
receive = onWrites
|
|
46
|
+
return () => {}
|
|
47
|
+
},
|
|
48
|
+
invalidate: (keys) => invalidations.push(keys)
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
const key = ["$Inventory", "Get", { id: "item-1" }]
|
|
52
|
+
let reads = DataDependencies.empty()
|
|
53
|
+
cleanups.push(registerLiveQuery(key, () => reads, {}))
|
|
54
|
+
|
|
55
|
+
const starting = beginLiveQueryFetch(key)
|
|
56
|
+
receive(new Set([repo]))
|
|
57
|
+
open()
|
|
58
|
+
const wasLive = await starting
|
|
59
|
+
reads = new Set([repo])
|
|
60
|
+
endLiveQueryFetch(wasLive)
|
|
61
|
+
|
|
62
|
+
expect(invalidations).toEqual([[key]])
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
it("coalesces matching writes using the query's maximum delay", () => {
|
|
66
|
+
vi.useFakeTimers()
|
|
67
|
+
const invalidations: Array<ReadonlyArray<ReadonlyArray<unknown>>> = []
|
|
68
|
+
let receive = (_writes: DataDependencies.DataDependencies) => {}
|
|
69
|
+
configureLiveQueryInvalidation({
|
|
70
|
+
ready: () => Promise.resolve(),
|
|
71
|
+
subscribe: (onWrites) => {
|
|
72
|
+
receive = onWrites
|
|
73
|
+
return () => {}
|
|
74
|
+
},
|
|
75
|
+
invalidate: (keys) => invalidations.push(keys)
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
const key = ["$Inventory", "List", undefined]
|
|
79
|
+
cleanups.push(registerLiveQuery(key, () => new Set([repo]), { maxDelayMs: 2_000 }))
|
|
80
|
+
receive(new Set([repo]))
|
|
81
|
+
receive(new Set([repo]))
|
|
82
|
+
vi.advanceTimersByTime(1_999)
|
|
83
|
+
expect(invalidations).toEqual([])
|
|
84
|
+
vi.advanceTimersByTime(1)
|
|
85
|
+
expect(invalidations).toEqual([[key]])
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
it("fails safe by invalidating every live query when the source resets", () => {
|
|
89
|
+
const invalidations: Array<ReadonlyArray<ReadonlyArray<unknown>>> = []
|
|
90
|
+
let reset = () => {}
|
|
91
|
+
configureLiveQueryInvalidation({
|
|
92
|
+
ready: () => Promise.resolve(),
|
|
93
|
+
subscribe: (_onWrites, onReset) => {
|
|
94
|
+
reset = onReset
|
|
95
|
+
return () => {}
|
|
96
|
+
},
|
|
97
|
+
invalidate: (keys) => invalidations.push(keys)
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
const first = ["$Inventory", "List", undefined]
|
|
101
|
+
const second = ["$Orders", "List", undefined]
|
|
102
|
+
cleanups.push(registerLiveQuery(first, () => new Set([repo]), {}))
|
|
103
|
+
cleanups.push(registerLiveQuery(second, () => new Set([otherId]), {}))
|
|
104
|
+
reset()
|
|
105
|
+
|
|
106
|
+
expect(invalidations).toEqual([[first], [second]])
|
|
107
|
+
})
|
|
108
|
+
})
|