zova-module-a-model 5.1.38 → 5.1.40
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/dist/.metadata/index.d.ts +7 -7
- package/dist/.metadata/index.d.ts.map +1 -1
- package/dist/.metadata/this.d.ts +1 -1
- package/dist/bean/bean.model/bean.model.cookie.d.ts +2 -2
- package/dist/bean/bean.model/bean.model.first.d.ts +1 -1
- package/dist/bean/bean.model/bean.model.last.d.ts +3 -3
- package/dist/bean/bean.model/bean.model.local.d.ts +1 -1
- package/dist/bean/bean.model/bean.model.persister.d.ts +4 -4
- package/dist/bean/bean.model/bean.model.query.d.ts +2 -2
- package/dist/bean/bean.model/bean.model.useMutation.d.ts +2 -2
- package/dist/bean/bean.model/bean.model.useQuery.d.ts +3 -3
- package/dist/bean/bean.model/bean.model.useState.d.ts +3 -3
- package/dist/bean/bean.model/bean.model.useStateGeneral.d.ts +3 -3
- package/dist/bean/bean.modelBase.d.ts +1 -1
- package/dist/common/cookieWrapper.d.ts +1 -1
- package/dist/config/config.d.ts +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/index.d.ts +3 -3
- package/dist/lib/model.d.ts +1 -1
- package/dist/lib/queryRefetch.d.ts +1 -1
- package/dist/lib/utils.d.ts +1 -1
- package/dist/service/storage.d.ts +2 -2
- package/dist/types/index.d.ts +2 -2
- package/dist/types/query.d.ts +1 -1
- package/package.json +2 -2
- package/src/.metadata/index.ts +7 -7
- package/src/.metadata/this.ts +1 -1
- package/src/bean/bean.model/bean.model.cookie.ts +2 -2
- package/src/bean/bean.model/bean.model.first.ts +1 -1
- package/src/bean/bean.model/bean.model.last.ts +4 -4
- package/src/bean/bean.model/bean.model.local.ts +1 -1
- package/src/bean/bean.model/bean.model.persister.ts +8 -8
- package/src/bean/bean.model/bean.model.query.ts +3 -3
- package/src/bean/bean.model/bean.model.useMutation.ts +2 -2
- package/src/bean/bean.model/bean.model.useQuery.ts +5 -5
- package/src/bean/bean.model/bean.model.useState.ts +3 -3
- package/src/bean/bean.model/bean.model.useStateGeneral.ts +4 -4
- package/src/bean/bean.modelBase.ts +1 -1
- package/src/common/cookieWrapper.ts +3 -3
- package/src/config/config.ts +1 -1
- package/src/index.ts +3 -3
- package/src/lib/index.ts +3 -3
- package/src/lib/model.ts +1 -1
- package/src/lib/queryRefetch.ts +1 -1
- package/src/lib/utils.ts +1 -1
- package/src/monkey.ts +1 -1
- package/src/service/storage.ts +2 -2
- package/src/types/index.ts +2 -2
- package/src/types/query.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** bean: begin */
|
|
2
|
-
export * from '../bean/bean.modelBase.
|
|
2
|
+
export * from '../bean/bean.modelBase.ts';
|
|
3
3
|
import 'zova';
|
|
4
4
|
declare module 'zova' {
|
|
5
5
|
}
|
|
@@ -7,7 +7,7 @@ declare module 'zova-module-a-model' {
|
|
|
7
7
|
}
|
|
8
8
|
/** bean: end */
|
|
9
9
|
/** bean: begin */
|
|
10
|
-
import { BeanModelBase } from '../bean/bean.modelBase.
|
|
10
|
+
import type { BeanModelBase } from '../bean/bean.modelBase.ts';
|
|
11
11
|
import 'zova';
|
|
12
12
|
declare module 'zova' {
|
|
13
13
|
interface IBeanRecordGeneral {
|
|
@@ -16,7 +16,7 @@ declare module 'zova' {
|
|
|
16
16
|
}
|
|
17
17
|
/** bean: end */
|
|
18
18
|
/** service: begin */
|
|
19
|
-
export * from '../service/storage.
|
|
19
|
+
export * from '../service/storage.ts';
|
|
20
20
|
import 'zova-module-a-bean';
|
|
21
21
|
declare module 'zova-module-a-bean' {
|
|
22
22
|
interface IServiceRecord {
|
|
@@ -33,7 +33,7 @@ declare module 'zova-module-a-model' {
|
|
|
33
33
|
}
|
|
34
34
|
/** service: end */
|
|
35
35
|
/** service: begin */
|
|
36
|
-
import { ServiceStorage } from '../service/storage.
|
|
36
|
+
import type { ServiceStorage } from '../service/storage.ts';
|
|
37
37
|
import 'zova';
|
|
38
38
|
declare module 'zova' {
|
|
39
39
|
interface IBeanRecordGeneral {
|
|
@@ -42,11 +42,11 @@ declare module 'zova' {
|
|
|
42
42
|
}
|
|
43
43
|
/** service: end */
|
|
44
44
|
/** config: begin */
|
|
45
|
-
export * from '../config/config.
|
|
46
|
-
import { config } from '../config/config.
|
|
45
|
+
export * from '../config/config.ts';
|
|
46
|
+
import { config } from '../config/config.ts';
|
|
47
47
|
/** config: end */
|
|
48
48
|
/** monkey: begin */
|
|
49
|
-
export * from '../monkey.
|
|
49
|
+
export * from '../monkey.ts';
|
|
50
50
|
/** monkey: end */
|
|
51
51
|
/** scope: begin */
|
|
52
52
|
import { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,kBAAkB;AAClB,cAAc,2BAA2B,CAAC;AAE1C,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,qBAAqB,CAAC;CAEpC;AACD,gBAAgB;AAChB,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,kBAAkB;AAClB,cAAc,2BAA2B,CAAC;AAE1C,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,qBAAqB,CAAC;CAEpC;AACD,gBAAgB;AAChB,kBAAkB;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,kBAAkB;QACjC,wBAAwB,EAAE,aAAa,CAAC;KACzC;CACF;AACD,gBAAgB;AAChB,qBAAqB;AACrB,cAAc,uBAAuB,CAAC;AAEtC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,QAAQ,oBAAoB,CAAC;IAEhC,UAAiB,cAAc;QAC7B,iBAAiB,EAAE,KAAK,CAAC;KAC1B;CAGJ;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAE7B,UAAiB,cAAc;KAG9B;IAED,UAAiB,cAAc;QAC7B,IAAI,aAAa,IAAI,yBAAyB,CAAC;QAC/C,IAAI,UAAU,IAAI,iBAAiB,CAAC;KAErC;CACR;AACD,mBAAmB;AACnB,qBAAqB;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,kBAAkB;QACjC,yBAAyB,EAAE,cAAc,CAAC;KAC3C;CACF;AACD,mBAAmB;AACnB,oBAAoB;AACpB,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,kBAAkB;AAClB,oBAAoB;AACpB,cAAc,cAAc,CAAC;AAC7B,kBAAkB;AAClB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAG3E,qBACa,iBAAkB,SAAQ,aAAa;CAAG;AAEvD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC,OAAO,MAAM,CAAC,CAAC;CACvC;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,iBAAiB,CAAC;KAC9B;IAED,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;KACtC;CAKF;AAED,iBAAiB"}
|
package/dist/.metadata/this.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Query } from '@tanstack/vue-query';
|
|
2
|
-
import type { QueryMetaPersisterCookieType } from '../../types/index.
|
|
3
|
-
import { BeanModelLocal } from './bean.model.local.
|
|
2
|
+
import type { QueryMetaPersisterCookieType } from '../../types/index.ts';
|
|
3
|
+
import { BeanModelLocal } from './bean.model.local.ts';
|
|
4
4
|
export declare class BeanModelCookie extends BeanModelLocal {
|
|
5
5
|
$serializeCookie(obj?: Query): string;
|
|
6
6
|
$deserializeCookie(value?: any): {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BeanBase } from 'zova';
|
|
2
|
-
import type { ScopeModule } from '../../.metadata/this.
|
|
3
|
-
import type { IDecoratorModelOptions } from '../../types/model.
|
|
4
|
-
import type { BeanModelBase } from '../bean.modelBase.
|
|
2
|
+
import type { ScopeModule } from '../../.metadata/this.ts';
|
|
3
|
+
import type { IDecoratorModelOptions } from '../../types/model.ts';
|
|
4
|
+
import type { BeanModelBase } from '../bean.modelBase.ts';
|
|
5
5
|
export declare class BeanModelLast extends BeanBase {
|
|
6
6
|
selector: string;
|
|
7
7
|
constructor(selector?: unknown);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Query } from '@tanstack/vue-query';
|
|
2
|
-
import { BeanModelPersister } from './bean.model.persister.
|
|
2
|
+
import { BeanModelPersister } from './bean.model.persister.ts';
|
|
3
3
|
export declare class BeanModelLocal extends BeanModelPersister {
|
|
4
4
|
$serializeLocal(obj?: Query): string;
|
|
5
5
|
$deserializeLocal(value?: string): {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Query, QueryKey } from '@tanstack/vue-query';
|
|
2
|
-
import type { ModelPersistenceToken } from '../../lib/modelPersistence.
|
|
3
|
-
import type { QueryMetaPersister } from '../../types/index.
|
|
4
|
-
import { CookieWrapper } from '../../common/cookieWrapper.
|
|
5
|
-
import { BeanModelLast } from './bean.model.last.
|
|
2
|
+
import type { ModelPersistenceToken } from '../../lib/modelPersistence.ts';
|
|
3
|
+
import type { QueryMetaPersister } from '../../types/index.ts';
|
|
4
|
+
import { CookieWrapper } from '../../common/cookieWrapper.ts';
|
|
5
|
+
import { BeanModelLast } from './bean.model.last.ts';
|
|
6
6
|
export declare class BeanModelPersister extends BeanModelLast {
|
|
7
7
|
private _persisterRestoreErrors;
|
|
8
8
|
$persisterError(queryKey: QueryKey): boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DataTag, DefaultError, InvalidateOptions, InvalidateQueryFilters, Query, QueryFilters, QueryKey, RefetchOptions, RefetchQueryFilters, SetDataOptions, Updater } from '@tanstack/vue-query';
|
|
2
|
-
import type { MaybeRefDeep, NoUnknown } from '../../common/types.
|
|
3
|
-
import { BeanModelCookie } from './bean.model.cookie.
|
|
2
|
+
import type { MaybeRefDeep, NoUnknown } from '../../common/types.ts';
|
|
3
|
+
import { BeanModelCookie } from './bean.model.cookie.ts';
|
|
4
4
|
export declare class BeanModelQuery extends BeanModelCookie {
|
|
5
5
|
$setQueryData<TQueryFnData, TTaggedQueryKey extends QueryKey, TData = TTaggedQueryKey extends DataTag<unknown, infer TaggedValue> ? TaggedValue : TQueryFnData>(queryKey: TTaggedQueryKey, updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>, persisterSave?: boolean, options?: MaybeRefDeep<SetDataOptions>): TData | undefined;
|
|
6
6
|
$setQueryData<TQueryFnData, TData = NoUnknown<TQueryFnData>>(queryKey: MaybeRefDeep<QueryKey>, updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>, persisterSave?: boolean, options?: MaybeRefDeep<SetDataOptions>): TData | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DefaultError, MutationObserverOptions, QueryClient, UseMutationReturnType } from '@tanstack/vue-query';
|
|
2
2
|
import type { UnwrapNestedRefs } from 'vue';
|
|
3
|
-
import type { MaybeRefDeep } from '../../common/types.
|
|
4
|
-
import { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.
|
|
3
|
+
import type { MaybeRefDeep } from '../../common/types.ts';
|
|
4
|
+
import { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.ts';
|
|
5
5
|
declare const SymbolUseMutations: unique symbol;
|
|
6
6
|
export declare class BeanModelUseMutation extends BeanModelUseStateGeneral {
|
|
7
7
|
private [SymbolUseMutations];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tanstack/vue-query';
|
|
2
|
-
import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.
|
|
3
|
-
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.
|
|
4
|
-
import { BeanModelQuery } from './bean.model.query.
|
|
2
|
+
import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.ts';
|
|
3
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.ts';
|
|
4
|
+
import { BeanModelQuery } from './bean.model.query.ts';
|
|
5
5
|
export declare class BeanModelUseQuery extends BeanModelQuery {
|
|
6
6
|
$useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryReturnType<TData, TError>;
|
|
7
7
|
$useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryDefinedReturnType<TData, TError>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tanstack/vue-query';
|
|
2
|
-
import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.
|
|
3
|
-
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType, UseQueryComputedOptions } from '../../types/query.
|
|
4
|
-
import { BeanModelUseQuery } from './bean.model.useQuery.
|
|
2
|
+
import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.ts';
|
|
3
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType, UseQueryComputedOptions } from '../../types/query.ts';
|
|
4
|
+
import { BeanModelUseQuery } from './bean.model.useQuery.ts';
|
|
5
5
|
declare const SymbolUseQueries: unique symbol;
|
|
6
6
|
declare const SymbolUseComputeds: unique symbol;
|
|
7
7
|
export declare class BeanModelUseState extends BeanModelUseQuery {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tanstack/vue-query';
|
|
2
|
-
import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.
|
|
3
|
-
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.
|
|
4
|
-
import { BeanModelUseState } from './bean.model.useState.
|
|
2
|
+
import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.ts';
|
|
3
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.ts';
|
|
4
|
+
import { BeanModelUseState } from './bean.model.useState.ts';
|
|
5
5
|
export declare class BeanModelUseStateGeneral extends BeanModelUseState {
|
|
6
6
|
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'localAsync' | 'local' | 'cookie' | 'mem', options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): TData;
|
|
7
7
|
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'localAsync' | 'local' | 'cookie' | 'mem', options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): TData;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Query } from '@tanstack/vue-query';
|
|
2
2
|
import { BeanSimple } from 'zova';
|
|
3
|
-
import type { QueryMetaPersister } from '../types/index.
|
|
3
|
+
import type { QueryMetaPersister } from '../types/index.ts';
|
|
4
4
|
export declare class CookieWrapper extends BeanSimple {
|
|
5
5
|
options: QueryMetaPersister;
|
|
6
6
|
query: Query;
|
package/dist/config/config.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DefaultOptions } from '@tanstack/vue-query';
|
|
2
2
|
import type { CookieOptions, ZovaSys } from 'zova';
|
|
3
|
-
import type { MaxAgeTime, StaleTimeFunction } from '../types/index.
|
|
3
|
+
import type { MaxAgeTime, StaleTimeFunction } from '../types/index.ts';
|
|
4
4
|
export declare const config: (_sys: ZovaSys) => {
|
|
5
5
|
persister: {
|
|
6
6
|
maxAge: {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './.metadata/index.
|
|
2
|
-
export * from './lib/index.
|
|
3
|
-
export * from './types/index.
|
|
1
|
+
export * from './.metadata/index.ts';
|
|
2
|
+
export * from './lib/index.ts';
|
|
3
|
+
export * from './types/index.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/lib/queryRefetch.ts","../src/types/query.ts","../src/lib/persistenceQueue.ts","../src/.metadata/this.ts","../src/common/cookieWrapper.ts","../src/lib/modelPersistence.ts","../src/lib/queryPersister.ts","../src/bean/bean.model/bean.model.last.ts","../src/bean/bean.model/bean.model.persister.ts","../src/bean/bean.model/bean.model.local.ts","../src/bean/bean.model/bean.model.cookie.ts","../src/bean/bean.model/bean.model.query.ts","../src/bean/bean.model/bean.model.useQuery.ts","../src/bean/bean.model/bean.model.useState.ts","../src/bean/bean.model/bean.model.useStateGeneral.ts","../src/bean/bean.model/bean.model.useMutation.ts","../src/bean/bean.model/bean.model.first.ts","../src/bean/bean.modelBase.ts","../src/service/storage.ts","../src/config/config.ts","../src/monkey.ts","../src/.metadata/index.ts","../src/lib/model.ts","../src/lib/utils.ts"],"sourcesContent":["export function createQueryRefetch(refetch, getQuery) {\n return async refetchOptions => {\n const {\n bypassPersister,\n ...options\n } = refetchOptions ?? {};\n if (!bypassPersister) return refetch(options);\n const query = getQuery();\n // A cold query may already be fetching before its result is returned. Query.fetch\n // deduplicates that request before applying the new fetch metadata, so wait for it\n // before issuing the marked fetch.\n if (query && query.state.fetchStatus !== 'idle' && query.state.data === undefined) {\n await refetch({\n cancelRefetch: false\n });\n }\n\n // TanStack's public RefetchOptions does not expose the internal fetch metadata\n // forwarded by the installed QueryObserver implementation.\n const refetchWithFetchOptions = refetch;\n return await refetchWithFetchOptions({\n ...options,\n meta: {\n bypassPersister: true\n }\n });\n };\n}","import 'zova';\nexport function resolveStaleTime(staleTime, query) {\n return typeof staleTime === 'function' ? staleTime(query) : staleTime;\n}\nexport function resolveMaxAgeTime(maxAge, query) {\n return typeof maxAge === 'function' ? maxAge(query) : maxAge;\n}","export class PersistenceQueue {\n constructor() {\n this._tail = Promise.resolve();\n this._sequence = 0;\n this._failure = void 0;\n this._generation = 0;\n this._keyGenerations = new Map();\n }\n generation(key) {\n return `${this._generation}:${this._keyGenerations.get(key) ?? 0}`;\n }\n invalidate(key) {\n this._keyGenerations.set(key, (this._keyGenerations.get(key) ?? 0) + 1);\n }\n invalidateAll() {\n this._generation++;\n this._keyGenerations.clear();\n }\n enqueue(operation) {\n const sequence = ++this._sequence;\n const result = this._tail.then(operation);\n this._tail = result.catch(error => {\n this._failure ??= {\n sequence,\n error\n };\n });\n return result;\n }\n async flush() {\n const sequence = this._sequence;\n await this._tail;\n if (this._failure && this._failure.sequence <= sequence) {\n const {\n error\n } = this._failure;\n this._failure = undefined;\n throw error;\n }\n }\n}\nconst queues = new WeakMap();\nexport function getPersistenceQueue(storage) {\n let queue = queues.get(storage);\n if (!queue) {\n queue = new PersistenceQueue();\n queues.set(storage, queue);\n }\n return queue;\n}","export const __ThisModule__ = 'a-model';\nexport { ScopeModuleAModel as ScopeModule } from './index.js';","import { BeanSimple } from 'zova';\nimport { __ThisModule__ } from '../.metadata/this.js';\nimport { resolveMaxAgeTime } from '../types/index.js';\nexport class CookieWrapper extends BeanSimple {\n constructor(...args) {\n super(...args);\n this.options = void 0;\n this.query = void 0;\n }\n __init__(options, query) {\n this.options = options;\n this.query = query;\n }\n getItem(key) {\n return this.app.meta.cookie.getItem(key);\n }\n setItem(key, value) {\n const configScope = this.bean.scope(__ThisModule__).config;\n const opts = {\n ...configScope.persister.cookie.options\n };\n let maxAge = resolveMaxAgeTime(this.options.maxAge, this.query);\n if (maxAge !== undefined) {\n if (maxAge === Infinity) maxAge = 1000 * 60 * 60 * 24 * 365;\n opts.expires = new Date(Date.now() + maxAge);\n }\n this.app.meta.cookie.setItem(key, value, opts);\n }\n removeItem(key) {\n this.app.meta.cookie.removeItem(key);\n }\n}","import { notifyManager } from '@tanstack/query-core';\nimport { markRaw, shallowRef } from 'vue';\nconst normalize = value => value == null ? null : String(value);\nexport function getModelPersistenceStorageKey(appName, scope, logicalKey) {\n return JSON.stringify(['zova-model-db', 1, appName, scope, logicalKey]);\n}\nexport function isModelPersistenceDb(options) {\n if (options === false) return false;\n const persister = options && typeof options === 'object' ? options : {};\n return (persister.storage ?? (persister.sync ? 'local' : 'db')) === 'db';\n}\nfunction emptyQueryState() {\n return {\n data: undefined,\n dataUpdateCount: 0,\n dataUpdatedAt: 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'pending',\n fetchStatus: 'idle'\n };\n}\n\n/** App-owned identity; independent of the module providing the current Passport. */\nexport class ModelPersistenceContext {\n constructor(_queryClient, siteId) {\n this._queryClient = _queryClient;\n this._epoch = 0;\n this._version = shallowRef(0);\n this._scope = void 0;\n this._registered = false;\n this._hydrated = new Set();\n this._listeners = new Set();\n // IoC owners can be reactive; do not let Vue unwrap this class's private refs\n // or proxy TanStack Query instances retained for hydration adoption.\n markRaw(this);\n this._scope = Object.freeze([null, normalize(siteId), null]);\n }\n get epoch() {\n void this._version.value;\n return this._epoch;\n }\n capture() {\n return Object.freeze({\n scope: this._scope,\n epoch: this.epoch\n });\n }\n current(token) {\n return token.epoch === this.epoch && token.scope === this._scope;\n }\n markHydrated(queries) {\n if (!this._registered) {\n for (const query of queries) this._hydrated.add(query);\n }\n }\n touch(query) {\n // A transferred Query that has since participated in DB work belongs to the\n // actual invocation scope, not the one-time hydration adoption baseline.\n if (query) this._hydrated.delete(query);\n }\n subscribe(listener) {\n this._listeners.add(listener);\n return () => this._listeners.delete(listener);\n }\n update(values, options = {}) {\n const scope = Object.freeze([normalize(values.instanceId), normalize(values.siteId), normalize(values.userId)]);\n const adopt = !this._registered && options.initial === true;\n this._registered = true;\n if (scope.every((value, index) => value === this._scope[index])) {\n this._hydrated.clear();\n return;\n }\n const affected = this._queryClient.getQueryCache().getAll().filter(query => isModelPersistenceDb(query.meta?.persister) && !(adopt && this._hydrated.has(query)));\n this._scope = scope;\n this._hydrated.clear();\n this._invalidate(affected);\n // Outgoing relogin/logout still resets immediately, but must not refetch\n // protected queries after their authentication has been removed.\n if (options.refetchActive === false) return;\n const token = this.capture();\n // The identity owner installs authentication before publishing this transition.\n // Defer refetch until all synchronous reset/listener work has finished.\n void Promise.resolve().then(() => {\n if (this.current(token)) {\n return this._queryClient.refetchQueries({\n type: 'active',\n predicate: query => affected.includes(query)\n });\n }\n });\n }\n clear() {\n this._hydrated.clear();\n this._invalidate(this._queryClient.getQueryCache().getAll());\n }\n _invalidate(queries) {\n this._epoch++;\n // Cancel every retryer before resetting any query. Silent + non-reverting avoids\n // the old fetch's asynchronous cancellation handler publishing an error/reset.\n for (const query of queries) void query.cancel({\n silent: true,\n revert: false\n });\n notifyManager.batch(() => {\n for (const query of queries) {\n query.setOptions({\n ...query.options,\n initialData: undefined,\n initialDataUpdatedAt: undefined\n });\n for (const observer of query.observers) {\n observer.setOptions({\n ...observer.options,\n initialData: undefined,\n initialDataUpdatedAt: undefined,\n placeholderData: undefined\n });\n }\n query.setState(emptyQueryState());\n }\n });\n this._version.value++;\n const token = this.capture();\n for (const listener of this._listeners) listener(token);\n }\n\n /** Keep later observer option reapplication from reinstalling an old identity. */\n guardOptions(options) {\n if (!isModelPersistenceDb(options.meta?.persister)) return options;\n const token = this.capture();\n const initialData = options.initialData;\n const initialDataUpdatedAt = options.initialDataUpdatedAt;\n const placeholderData = options.placeholderData;\n return {\n ...options,\n initialData: () => this.current(token) ? typeof initialData === 'function' ? initialData() : initialData : undefined,\n initialDataUpdatedAt: () => this.current(token) ? typeof initialDataUpdatedAt === 'function' ? initialDataUpdatedAt() : initialDataUpdatedAt : undefined,\n placeholderData: (...args) => this.current(token) ? typeof placeholderData === 'function' ? placeholderData(...args) : placeholderData : undefined\n };\n }\n}","// TanStack's FetchMeta is internal to the public QueryPersister call path.\n\nexport function createQueryPersister(persisterFn) {\n return (queryFn, context, query) => {\n if (query.state.fetchMeta?.bypassPersister === true) {\n return queryFn(context);\n }\n return persisterFn(queryFn, context, query);\n };\n}","import { BeanBase, cast } from 'zova';\nimport { __ThisModule__ } from '../../.metadata/this.js';\nexport class BeanModelLast extends BeanBase {\n constructor(selector) {\n super();\n this.selector = void 0;\n if (this.$onionOptions?.enableSelector) {\n this.selector = selector ?? '';\n }\n }\n async __init__(_selector) {\n // do nothing\n }\n get $onionOptions() {\n return super.$onionOptions;\n }\n get self() {\n return cast(this);\n }\n get scopeSelf() {\n return this.bean.scope(__ThisModule__);\n }\n}","import { CancelledError, notifyManager } from '@tanstack/query-core';\nimport { experimental_createQueryPersister } from '@tanstack/query-persist-client-core';\nimport { hashKey } from '@tanstack/vue-query';\nimport localforage from 'localforage';\nimport { SymbolBeanFullName } from 'zova';\nimport { CookieWrapper } from '../../common/cookieWrapper.js';\nimport { getModelPersistenceStorageKey } from '../../lib/modelPersistence.js';\nimport { getPersistenceQueue } from '../../lib/persistenceQueue.js';\nimport { createQueryPersister } from '../../lib/queryPersister.js';\nimport { resolveMaxAgeTime } from '../../types/index.js';\nimport { BeanModelLast } from './bean.model.last.js';\nexport class BeanModelPersister extends BeanModelLast {\n constructor(...args) {\n super(...args);\n this._persisterRestoreErrors = new Set();\n }\n $persisterError(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n const options = this._adjustPersisterOptions(query?.meta?.persister);\n return !!options && this._persisterRestoreErrors.has(this._getPersisterStorageKey(options, query, queryKey));\n }\n _persisterLoad_inner(storedData, query, options) {\n if (!storedData) return {\n remove: false\n };\n const persistedQuery = options.deserialize ? options.deserialize(storedData, options.deserializeDefault) : options.deserializeDefault(storedData);\n if (persistedQuery.state.dataUpdatedAt) {\n const queryAge = Date.now() - persistedQuery.state.dataUpdatedAt;\n const expired = queryAge > (resolveMaxAgeTime(options.maxAge, query) ?? Infinity);\n const busted = persistedQuery.buster !== options.buster;\n if (!expired && !busted) {\n return {\n data: persistedQuery.state.data,\n remove: false,\n timestamps: {\n dataUpdatedAt: persistedQuery.state.dataUpdatedAt,\n errorUpdatedAt: persistedQuery.state.errorUpdatedAt\n }\n };\n }\n }\n return {\n remove: true\n };\n }\n $persisterLoad(queryKey) {\n const ctx = this.ctx;\n if (ctx?.disposed) return undefined;\n const persistence = this.$modelPersistence;\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return undefined;\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return undefined;\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return undefined;\n const token = persistence.capture();\n if (options.storage === 'db') persistence.touch(query);\n const storageKey = this._getPersisterStorageKey(options, query, undefined, token);\n this._persisterRestoreErrors.delete(storageKey);\n const queue = getPersistenceQueue(storage);\n const generation = queue.generation(storageKey);\n const current = () => !ctx?.disposed && generation === queue.generation(storageKey) && (options.storage !== 'db' || persistence.current(token));\n if (!options.sync) {\n return queue.enqueue(async () => {\n if (!current()) return undefined;\n const storedData = await storage.getItem(storageKey);\n if (!current()) return undefined;\n try {\n const result = this._persisterLoad_inner(storedData, query, options);\n if (!current()) return undefined;\n if (result.timestamps) query.setState(result.timestamps);\n if (result.remove) await storage.removeItem(storageKey);\n return current() ? result.data : undefined;\n } catch {\n if (!current()) return undefined;\n this._persisterRestoreErrors.add(storageKey);\n await storage.removeItem(storageKey);\n this._reportPersisterError('restore');\n return undefined;\n }\n }).catch(() => {\n if (current()) {\n this._persisterRestoreErrors.add(storageKey);\n this._reportPersisterError('restore');\n }\n return undefined;\n });\n }\n try {\n const result = this._persisterLoad_inner(storage.getItem(storageKey), query, options);\n if (result.timestamps) query.setState(result.timestamps);\n if (result.remove) storage.removeItem(storageKey);\n return result.data;\n } catch {\n this._persisterRestoreErrors.add(storageKey);\n this._reportPersisterError('restore');\n try {\n storage.removeItem(storageKey);\n } catch {\n this._reportPersisterError('remove');\n }\n }\n }\n $persisterGeneration(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n const options = this._adjustPersisterOptions(query?.meta?.persister);\n if (!options) return '';\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return '';\n const storageKey = this._getPersisterStorageKey(options, query, queryKey);\n return `${options.storage === 'db' ? this.$modelPersistence.epoch : ''}:${storageKey}:${getPersistenceQueue(storage).generation(storageKey)}`;\n }\n $persisterSave(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return Promise.resolve();\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return Promise.resolve();\n return this._persisterSave(query, options);\n }\n $persisterSaveTo(queryKey, storageTarget, value) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) {\n if (process.env.DEV) console.warn('Cannot save persisted query because it was not found', queryKey);\n return;\n }\n const persister = query.meta?.persister && typeof query.meta.persister === 'object' ? query.meta.persister : {};\n const options = this._adjustPersisterOptions({\n ...persister,\n storage: storageTarget,\n sync: true,\n serializeDefault: obj => storageTarget === 'cookie' ? String(obj?.state?.data ?? '') : JSON.stringify(obj?.state?.data)\n });\n if (options) this._persisterSave(query, options, value);\n }\n _serializePersister(query, options, value) {\n const params = {\n state: value === undefined ? query.state : {\n ...query.state,\n data: value\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n buster: options.buster\n };\n return options.serialize ? options.serialize(params, options.serializeDefault) : options.serializeDefault(params);\n }\n _persisterSave(query, options, value) {\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return Promise.resolve();\n if (options.storage === 'db') this.$modelPersistence.touch(query);\n const storageKey = this._getPersisterStorageKey(options, query);\n const queue = getPersistenceQueue(storage);\n queue.invalidate(storageKey);\n let data;\n try {\n data = this._serializePersister(query, options, value);\n } catch (error) {\n return this._handlePersisterOperation(queue.enqueue(() => {\n throw error;\n }), 'save');\n }\n if (options.sync === true && options.storage !== 'db') {\n try {\n storage.setItem(storageKey, data);\n return Promise.resolve();\n } catch (error) {\n return this._handlePersisterOperation(Promise.reject(error), 'save');\n }\n }\n // Accepted explicit writes keep their captured physical identity. The shared\n // queue orders them before a later remove or full-store clear.\n return this._handlePersisterOperation(queue.enqueue(async () => {\n await storage.setItem(storageKey, data);\n }), 'save');\n }\n $persisterRemove(queryKey, persister) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query && !persister) return Promise.resolve();\n const options = this._adjustPersisterOptions(persister ?? query?.meta?.persister);\n if (!options) return Promise.resolve();\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return Promise.resolve();\n if (options.storage === 'db') this.$modelPersistence.touch(query);\n const storageKey = this._getPersisterStorageKey(options, query, queryKey);\n const queue = getPersistenceQueue(storage);\n queue.invalidate(storageKey);\n if (options.sync === true && options.storage !== 'db') {\n try {\n storage.removeItem(storageKey);\n return Promise.resolve();\n } catch (error) {\n return this._handlePersisterOperation(Promise.reject(error), 'remove');\n }\n }\n return this._handlePersisterOperation(queue.enqueue(async () => {\n await storage.removeItem(storageKey);\n }), 'remove');\n }\n async $persisterFlush() {\n if (process.env.SERVER) return;\n await getPersistenceQueue(localforage).flush();\n }\n _handlePersisterOperation(operation, action) {\n operation.catch(() => this._reportPersisterError(action));\n return operation;\n }\n _reportPersisterError(action) {\n if (process.env.DEV) console.warn(`Encountered an error attempting to ${action} persisted query cache.`);\n }\n _createPersister(options) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n if (options.storage === 'db') return this._createDbPersister(options);\n const storage = this._getPersisterStorage(options);\n const persisterOptions = options;\n return createQueryPersister((queryFn, context, query) => {\n const queue = storage ? getPersistenceQueue(storage) : undefined;\n const storageKey = `${persisterOptions.prefix}-${query.queryHash}`;\n const generation = queue?.generation(storageKey);\n const current = () => generation === queue?.generation(storageKey);\n const orderedStorage = storage && queue && !persisterOptions.sync ? {\n getItem: key => queue.enqueue(() => current() ? storage.getItem(key) : undefined),\n setItem: (key, data) => this._handlePersisterOperation(queue.enqueue(async () => {\n if (current()) await storage.setItem(key, data);\n }), 'save'),\n removeItem: key => this._handlePersisterOperation(queue.enqueue(async () => {\n if (current()) await storage.removeItem(key);\n }), 'remove')\n } : storage;\n return experimental_createQueryPersister({\n storage: orderedStorage,\n maxAge: persisterOptions.maxAge,\n refetchOnRestore: persisterOptions.refetchOnRestore,\n prefix: persisterOptions.prefix,\n buster: persisterOptions.buster\n }).persisterFn(queryFn, context, query);\n });\n }\n _createDbPersister(options) {\n const ctx = this.ctx;\n const persistence = this.$modelPersistence;\n // Do not use the upstream persister here: its deferred timestamp/refetch/save\n // callbacks can run after a scope transition or owner disposal.\n return async (queryFn, context, query) => {\n if (ctx?.disposed) throw new CancelledError({\n silent: true,\n revert: false\n });\n persistence.touch(query);\n const token = persistence.capture();\n const storage = this._getPersisterStorage(options, query);\n const queue = storage && getPersistenceQueue(storage);\n const storageKey = this._getPersisterStorageKey(options, query, undefined, token);\n const generation = queue?.generation(storageKey);\n const current = () => !ctx?.disposed && persistence.current(token) && generation === queue?.generation(storageKey);\n const assertCurrent = () => {\n if (!current()) throw new CancelledError({\n silent: true,\n revert: false\n });\n };\n const bypass = query.state.fetchMeta?.bypassPersister === true;\n if (!bypass && storage && queue && query.state.data === undefined) {\n this._persisterRestoreErrors.delete(storageKey);\n const restored = await queue.enqueue(async () => {\n if (!current()) return undefined;\n try {\n const storedData = await storage.getItem(storageKey);\n if (!current()) return undefined;\n const result = this._persisterLoad_inner(storedData, query, options);\n if (!current()) return undefined;\n if (result.remove) await storage.removeItem(storageKey);\n return current() ? result : undefined;\n } catch {\n if (current()) {\n this._persisterRestoreErrors.add(storageKey);\n await storage.removeItem(storageKey);\n this._reportPersisterError('restore');\n }\n return undefined;\n }\n }).catch(() => {\n if (current()) {\n this._persisterRestoreErrors.add(storageKey);\n this._reportPersisterError('restore');\n }\n return undefined;\n });\n assertCurrent();\n if (restored?.data !== undefined) {\n notifyManager.schedule(() => {\n if (!current()) return;\n if (restored.timestamps) query.setState(restored.timestamps);\n if (options.refetchOnRestore === 'always' || options.refetchOnRestore === true && query.isStale()) {\n void query.fetch().catch(() => undefined);\n }\n });\n return restored.data;\n }\n }\n assertCurrent();\n let result;\n try {\n result = await queryFn(context);\n } catch (error) {\n assertCurrent();\n throw error;\n }\n assertCurrent();\n if (!bypass && storage && queue) {\n notifyManager.schedule(() => {\n if (!current()) return;\n let data;\n try {\n data = this._serializePersister(query, options, result);\n } catch (error) {\n this._handlePersisterOperation(queue.enqueue(() => {\n throw error;\n }), 'save');\n return;\n }\n this._handlePersisterOperation(queue.enqueue(async () => {\n if (current()) await storage.setItem(storageKey, data);\n }), 'save');\n });\n }\n return result;\n };\n }\n _adjustPersisterOptions(options) {\n if (options === false) return undefined;\n options = options === undefined || options === true ? {} : {\n ...options\n };\n options.storage = options.storage ?? (options.sync ? 'local' : 'db');\n // DB storage is always asynchronous, including custom explicitly synced options.\n if (options.storage === 'db') options.sync = false;\n options.maxAge = options.maxAge ?? this.scopeSelf.config.persister.maxAge[options.storage];\n options.refetchOnRestore = options.refetchOnRestore ?? this.scopeSelf.config.persister.refetchOnRestore;\n options.prefix = options.prefix ?? this._getPersisterPrefix();\n options.buster = options.buster ?? this._getPersisterBuster();\n options.serializeDefault = options.serializeDefault ?? JSON.stringify;\n options.deserializeDefault = options.deserializeDefault ?? JSON.parse;\n return options;\n }\n _getPersisterStorageKey(options, query, queryKey, token) {\n const key = query?.queryKey ?? this._forceQueryKeyPrefix(queryKey);\n const logicalKey = options.storageKeySimplify ? String(key[key.length - 1]) : `${options.prefix}-${query?.queryHash ?? hashKey(key)}`;\n return options.storage === 'db' ? getModelPersistenceStorageKey(this.sys.env.APP_NAME ?? '', (token ?? this.$modelPersistence.capture()).scope, logicalKey) : logicalKey;\n }\n _getPersisterStorage(options, query) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n if (options.storage === 'cookie') return this.bean._newBeanSimple(CookieWrapper, false, options, query);\n if (process.env.SERVER) return undefined;\n if (options.storage === 'local') return localStorage;\n if (options.storage === 'db') return localforage;\n }\n _getPersisterPrefix() {\n return `${this.sys.env.APP_NAME}-query`;\n }\n _getPersisterBuster() {\n return this.sys.env.APP_VERSION;\n }\n _forceQueryKeyPrefix(queryKey) {\n if (!queryKey) queryKey = [];\n if (!this._prefixIsBeanFullName(queryKey[0])) {\n const prefixes = [this[SymbolBeanFullName]];\n if (this.$onionOptions?.enableSelector) prefixes.push(this.selector);\n queryKey = prefixes.concat(queryKey);\n }\n return queryKey;\n }\n _prefixIsBeanFullName(prefix) {\n return prefix === this[SymbolBeanFullName];\n }\n}","import { BeanModelPersister } from './bean.model.persister.js';\nexport class BeanModelLocal extends BeanModelPersister {\n $serializeLocal(obj) {\n return JSON.stringify(obj?.state?.data);\n }\n $deserializeLocal(value) {\n return {\n state: {\n data: value ? JSON.parse(value) : undefined,\n dataUpdateCount: 0,\n dataUpdatedAt: Date.now(),\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'success',\n fetchStatus: 'idle'\n },\n queryKey: undefined,\n queryHash: undefined,\n buster: this._getPersisterBuster()\n };\n }\n}","import { BeanModelLocal } from './bean.model.local.js';\nexport class BeanModelCookie extends BeanModelLocal {\n $serializeCookie(obj) {\n return String(obj?.state?.data ?? '');\n }\n $deserializeCookie(value) {\n return {\n state: {\n data: value,\n dataUpdateCount: 0,\n dataUpdatedAt: Date.now(),\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'success',\n fetchStatus: 'idle'\n },\n queryKey: undefined,\n queryHash: undefined,\n buster: this._getPersisterBuster()\n };\n }\n _cookieCoerce(value, cookieType) {\n if (value === undefined || value === '') return undefined; // string of '' means should delete the cookie\n if (!cookieType || cookieType === 'auto') {\n return value === 'true' ? true : value === 'false' ? false : value;\n } else if (cookieType === 'boolean') {\n return value === 'true' ? true : value === 'false' ? false : Boolean(Number(value));\n } else if (cookieType === 'number') {\n return Number(value);\n } else if (cookieType === 'date') {\n return new Date(value);\n } else if (cookieType === 'string') {\n return value;\n }\n return value;\n }\n}","import localforage from 'localforage';\nimport { cast } from 'zova';\nimport { getPersistenceQueue } from '../../lib/persistenceQueue.js';\nimport { BeanModelCookie } from './bean.model.cookie.js';\nexport class BeanModelQuery extends BeanModelCookie {\n $setQueryData(queryKey, updater, persisterSave, options) {\n queryKey = this._forceQueryKeyPrefix(queryKey);\n const data = this.$queryClient.setQueryData(queryKey, updater, options);\n if (data === undefined) {\n if (persisterSave) {\n this.$persisterRemove(queryKey);\n }\n this.$setQueryDataDirect(queryKey, data);\n } else {\n if (persisterSave) {\n this.$persisterSave(queryKey);\n }\n }\n return data;\n }\n $queryFind(filters) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.getQueryCache().find(filters);\n }\n $invalidateQueries(filters, options) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.invalidateQueries(filters, options);\n }\n $refetchQueries(filters, options) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.refetchQueries(filters, options);\n }\n $setQueryDataDirect(queryKey, value) {\n const query = this.$queryFind({\n queryKey,\n exact: true\n });\n query?.setData(value);\n }\n async $clear() {\n const queue = getPersistenceQueue(localforage);\n // Invalidate in-flight restores and scheduled persisters before clearing memory.\n queue.invalidateAll();\n const clear = process.env.SERVER ? Promise.resolve() : queue.enqueue(async () => {\n await localforage.clear();\n });\n this.$modelPersistence.clear();\n await clear;\n }\n $normalizeFilters(filters) {\n if (!filters) filters = {};\n const queryKey = this._forceQueryKeyPrefix(cast(filters).queryKey);\n return {\n ...filters,\n queryKey\n };\n }\n}","import { useQuery } from '@tanstack/vue-query';\nimport { createQueryRefetch } from '../../lib/queryRefetch.js';\nimport { resolveStaleTime } from '../../types/index.js';\nimport { BeanModelQuery } from './bean.model.query.js';\nexport class BeanModelUseQuery extends BeanModelQuery {\n $useQuery(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const persister = this._createPersister(options.meta?.persister);\n options = this.$modelPersistence.guardOptions(Object.assign({}, options, {\n queryKey,\n persister\n }));\n // staleTime\n const sync = typeof options.meta?.persister === 'object' && options.meta?.persister?.sync;\n if (sync !== true) {\n const staleTime = options.staleTime ?? this.scopeSelf.config.query.staleTime.async;\n const queryCache = this.$queryFind({\n queryKey\n });\n const queryCacheExists = queryCache?.state.data !== undefined;\n options.staleTime = query => {\n if (!queryCacheExists) return resolveStaleTime(0, query);\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n return resolveStaleTime(this.scopeSelf.config.query.staleTime.ssr, query);\n }\n return resolveStaleTime(staleTime, query);\n };\n }\n return this.ctx.util.instanceScope(() => {\n const query = useQuery(options, queryClient);\n query.refetch = createQueryRefetch(query.refetch, () => this.$queryFind({\n queryKey\n }));\n return query;\n });\n }\n}","import { hashKey } from '@tanstack/vue-query';\nimport { deepExtend } from 'zova';\nimport { BeanModelUseQuery } from './bean.model.useQuery.js';\nconst SymbolUseQueries = Symbol('SymbolUseQueries');\nconst SymbolUseComputeds = Symbol('SymbolUseComputeds');\nexport class BeanModelUseState extends BeanModelUseQuery {\n constructor(...args) {\n super(...args);\n this[SymbolUseQueries] = {};\n this[SymbolUseComputeds] = {};\n }\n async $ensureStateLocalAsync(state) {\n return await state;\n }\n $useStateLocalAsync(options, queryClient) {\n options = deepExtend({\n meta: {\n maxAge: this.scopeSelf.config.persister.maxAge.local\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n ssr: {\n dehydrate: false\n },\n persister: {\n storage: 'db',\n sync: false\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleAsyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n }\n $useStateLocal(options, queryClient) {\n options = deepExtend({\n meta: {\n persister: {\n serializeDefault: obj => {\n return this.$serializeLocal(obj);\n },\n deserializeDefault: value => {\n return this.$deserializeLocal(value);\n },\n storageKeySimplify: true\n }\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: {\n storage: 'local',\n sync: true\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, true);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, true, value);\n // },\n // });\n }\n $useStateCookie(options, queryClient) {\n options = deepExtend({\n meta: {\n persister: {\n serializeDefault: obj => {\n return this.$serializeCookie(obj);\n },\n deserializeDefault: value => {\n const cookieType = options.meta.persister.cookieType;\n return this.$deserializeCookie(this._cookieCoerce(value, cookieType));\n },\n storageKeySimplify: true\n }\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: {\n storage: 'cookie',\n sync: true\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, true);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, true, value);\n // },\n // });\n }\n $useStateMem(options, queryClient) {\n options = deepExtend({}, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: false\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, false);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, false, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, false);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, false, value);\n // },\n // });\n }\n $useStateComputed(options) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const queryHash = hashKey(queryKey);\n if (!this[SymbolUseComputeds][queryHash]) {\n this[SymbolUseComputeds][queryHash] = this.$computed(options.queryFn, options.debugOptions);\n }\n return this[SymbolUseComputeds][queryHash];\n }\n $useStateData(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const queryHash = hashKey(queryKey);\n if (!this[SymbolUseQueries][queryHash]) {\n const useQuery = this.$useQuery(options, queryClient);\n this[SymbolUseQueries][queryHash] = useQuery;\n if (!options.meta?.disableSuspenseOnInit) {\n useQuery.suspense();\n }\n }\n return this[SymbolUseQueries][queryHash];\n }\n _handleAsyncDataGet(options, queryClient, persister) {\n if (this.ctx?.disposed) return undefined;\n // Track the context even when the disabled Query already contains data.\n // A scope switch must invalidate the custom-ref consumer synchronously.\n void this.$modelPersistence.epoch;\n const query = this.$useStateData(options, queryClient);\n if (query.data !== undefined) return query.data;\n return this._handleAsyncDataGet_inner(options, queryClient, persister);\n }\n async _handleAsyncDataGet_inner(options, queryClient, persister) {\n const ctx = this.ctx;\n if (ctx?.disposed) return undefined;\n const persistence = this.$modelPersistence;\n const queryKey = options.queryKey;\n const token = persistence.capture();\n const query = this.$useStateData(options, queryClient);\n if (persister) {\n const generation = this.$persisterGeneration(queryKey);\n const data = await this.$persisterLoad(queryKey);\n if (ctx?.disposed || !persistence.current(token) || generation !== this.$persisterGeneration(queryKey)) {\n return undefined;\n }\n if (data !== undefined && query.data === undefined) {\n this.$setQueryData(queryKey, data, false);\n }\n }\n if (query.data === undefined) {\n this._handleSyncDataGet_defaultData(queryKey, options);\n }\n return query.data;\n }\n _handleSyncDataGet(options, queryClient, persister) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n if (query.data !== undefined) return query.data;\n if (persister) {\n const data = this.$persisterLoad(queryKey);\n if (data !== undefined) {\n this.$setQueryData(queryKey, data, false);\n }\n }\n if (query.data === undefined) {\n this._handleSyncDataGet_defaultData(queryKey, options);\n }\n return query.data;\n }\n _handleSyncDataGet_defaultData(queryKey, options) {\n let defaultData = options.meta?.defaultData;\n if (typeof defaultData === 'function') {\n defaultData = defaultData();\n }\n if (defaultData !== undefined) {\n // need not persister save\n this.$setQueryData(queryKey, defaultData, false);\n }\n }\n _handleSyncDataSet(options, queryClient, persister, value) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n this.$setQueryData(queryKey, value, persister);\n return query;\n }\n}","import { BeanModelUseState } from './bean.model.useState.js';\nexport class BeanModelUseStateGeneral extends BeanModelUseState {\n $useState(stateType, options, queryClient) {\n switch (stateType) {\n case 'localAsync':\n return this.$useStateLocalAsync(options, queryClient);\n case 'local':\n return this.$useStateLocal(options, queryClient);\n case 'cookie':\n return this.$useStateCookie(options, queryClient);\n case 'mem':\n return this.$useStateMem(options, queryClient);\n case 'data':\n return this.$useStateData(options, queryClient);\n }\n }\n}","import { hashKey, useMutation } from '@tanstack/vue-query';\nimport { cast } from 'zova';\nimport { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.js';\nconst SymbolUseMutations = Symbol('SymbolUseMutations');\nexport class BeanModelUseMutation extends BeanModelUseStateGeneral {\n constructor(...args) {\n super(...args);\n this[SymbolUseMutations] = {};\n }\n $useMutation(mutationOptions, queryClient) {\n return this.ctx.util.instanceScope(() => {\n return useMutation(mutationOptions, queryClient);\n });\n }\n $useMutationData(mutationOptions, queryClient) {\n let mutationKey = cast(mutationOptions).mutationKey;\n if (!mutationKey || mutationKey.length === 0) throw new Error('should specify mutationKey');\n mutationKey = this.self._forceQueryKeyPrefix(mutationKey);\n const mutationHash = hashKey(mutationKey);\n if (!this[SymbolUseMutations][mutationHash]) {\n mutationOptions = Object.assign({}, mutationOptions, {\n mutationKey\n });\n this[SymbolUseMutations][mutationHash] = this.$useMutation(mutationOptions, queryClient);\n }\n return this[SymbolUseMutations][mutationHash];\n }\n}","import { BeanModelUseMutation } from './bean.model.useMutation.js';\nexport class BeanModelFirst extends BeanModelUseMutation {}","var _dec, _dec2, _dec3, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { Virtual } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\nimport { BeanModelFirst } from './bean.model/bean.model.first.js';\nexport let BeanModelBase = (_dec = Bean(), _dec2 = Virtual(), _dec3 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = _dec3(_class = class BeanModelBase extends BeanModelFirst {}) || _class) || _class) || _class);","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { dehydrate, hydrate, QueryCache, QueryClient, VueQueryPlugin } from '@tanstack/vue-query';\nimport { BeanBase, deepExtend } from 'zova';\nimport { Service } from 'zova-module-a-bean';\nimport { ModelPersistenceContext } from '../lib/modelPersistence.js';\nexport let ServiceStorage = (_dec = Service(), _dec2 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = class ServiceStorage extends BeanBase {\n constructor(...args) {\n super(...args);\n this._queryClient = void 0;\n this._persistence = void 0;\n }\n get epoch() {\n return this._persistence.epoch;\n }\n capture() {\n return this._persistence.capture();\n }\n current(token) {\n return this._persistence.current(token);\n }\n update(values, options) {\n this._persistence.update(values, options);\n }\n subscribe(listener) {\n return this._persistence.subscribe(listener);\n }\n clear() {\n this._persistence.clear();\n }\n touch(query) {\n this._persistence.touch(query);\n }\n guardOptions(options) {\n return this._persistence.guardOptions(options);\n }\n async moduleLoaded() {\n // options\n const options = deepExtend({}, this.scope.config.queryClientConfig.defaultOptions);\n if (process.env.SERVER) {\n options.queries ??= {};\n options.queries.gcTime = Infinity;\n }\n // queryCache\n const queryCache = new QueryCache();\n // queryClient\n const queryClient = this._queryClient = new QueryClient({\n defaultOptions: options,\n queryCache\n });\n this._persistence = new ModelPersistenceContext(queryClient, this.sys.env.SITE_ID);\n // use plugin\n const vueQueryPluginOptions = {\n queryClient\n };\n this.app.vue.use(VueQueryPlugin, vueQueryPluginOptions);\n }\n async appInitialize() {\n // onRendered\n if (process.env.SERVER) {\n this.ctx.meta.$ssr.context.onRendered(err => {\n if (!err) {\n this.ctx.meta.$ssr.stateDefer.query = dehydrate(this._queryClient, {\n shouldDehydrateMutation: () => {\n return false;\n }\n });\n }\n this._queryClient?.clear();\n });\n }\n // client\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n const state = this.ctx.meta.$ssr.stateDefer.query;\n hydrate(this._queryClient, state);\n this._persistence.markHydrated((state?.queries ?? []).flatMap(item => {\n const query = this._queryClient.getQueryCache().get(item.queryHash);\n return query ? [query] : [];\n }));\n }\n }\n}) || _class) || _class);","import { defaultShouldDehydrateQuery } from '@tanstack/vue-query';\nconst defaultOptions = {\n queries: {\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: true,\n gcTime: 1000 * 60 * 5\n },\n dehydrate: {\n shouldDehydrateQuery(query) {\n if (query.meta?.ssr?.dehydrate === false) return false;\n // mem query return true, because mem persister is false\n if (typeof query.meta?.persister === 'object' && query.meta?.persister?.sync) return false;\n return defaultShouldDehydrateQuery(query);\n },\n shouldDehydrateMutation(_mutation) {\n return false;\n }\n }\n};\nexport const config = _sys => {\n return {\n persister: {\n maxAge: {\n cookie: undefined,\n // undefined: session cookie\n local: Infinity,\n db: 1000 * 60 * 60 * 24 // 24 hours\n },\n cookie: {\n options: {}\n },\n refetchOnRestore: true\n },\n query: {\n staleTime: {\n async: 0,\n ssr: Infinity\n }\n },\n queryClientConfig: {\n defaultOptions\n }\n };\n};","import { useQueryClient } from '@tanstack/vue-query';\nimport { markRaw } from 'vue';\nimport { BeanSimple } from 'zova';\nimport { ServiceStorage } from './service/storage.js';\nexport class Monkey extends BeanSimple {\n constructor(moduleSelf) {\n super();\n this._moduleSelf = void 0;\n this._storage = void 0;\n this._moduleSelf = moduleSelf;\n }\n async getStorage() {\n if (!this._storage) {\n this._storage = await this.bean._newBean(ServiceStorage, false);\n }\n return this._storage;\n }\n async appInitialize() {\n const storage = await this.getStorage();\n await storage.appInitialize();\n }\n async moduleLoading(_module) {}\n async moduleLoaded(module) {\n // self\n if (this._moduleSelf === module) {\n const storage = await this.getStorage();\n await storage.moduleLoaded();\n }\n }\n async beanInit(bean, beanInstance) {\n bean.defineProperty(beanInstance, '$modelPersistence', {\n enumerable: false,\n configurable: true,\n get: () => this._storage\n });\n bean.defineProperty(beanInstance, '$queryClient', {\n enumerable: false,\n configurable: true,\n get() {\n return markRaw(useQueryClient());\n }\n });\n }\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** bean: begin */\nexport * from '../bean/bean.modelBase.js';\nimport 'zova';\n/** bean: end */\n/** bean: begin */\n\nimport 'zova';\n/** bean: end */\n/** service: begin */\nexport * from '../service/storage.js';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\nimport { ServiceStorage } from '../service/storage.js';\nimport 'zova';\n/** service: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.js';\n/** monkey: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleAModel = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = class ScopeModuleAModel extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import { createBeanDecorator } from 'zova';\nexport function Model(options) {\n return createBeanDecorator('model', 'ctx', true, options);\n}","export function $QueryGetFresh(fn, isStale) {\n const query = fn();\n if (!query) return;\n if (!isStale(query)) return query.data;\n void query.suspense();\n}\nexport async function $QueryEnsureFresh(fn, isStale) {\n const query = fn();\n if (!query) return;\n if (!isStale(query)) return query.data;\n const result = await query.suspense();\n if (result.error) throw result.error;\n return result.data;\n}\nexport async function $QueryEnsureLoaded(fn) {\n return _QueryEnsureLoadedInner(fn);\n}\nexport async function $QueriesEnsureLoaded(fn1, fn2, fn3, fn4, fn5, ...fns) {\n let promises = [_QueryEnsureLoadedInner(fn1), _QueryEnsureLoadedInner(fn2), _QueryEnsureLoadedInner(fn3), _QueryEnsureLoadedInner(fn4), _QueryEnsureLoadedInner(fn5)];\n if (fns.length > 0) {\n promises = promises.concat(fns.map(fn => _QueryEnsureLoadedInner(fn)));\n }\n return await Promise.all(promises);\n}\nasync function _QueryEnsureLoadedInner(fn) {\n if (!fn) return;\n const query = fn();\n if (query && query.data === undefined) {\n const result = await query.suspense();\n if (result.error) throw result.error;\n }\n return query;\n}"],"mappings":";;;;;;;;AAAA,SAAgB,mBAAmB,SAAS,UAAU;CACpD,OAAO,OAAM,mBAAkB;EAC7B,MAAM,EACJ,iBACA,GAAG,YACD,kBAAkB,CAAC;EACvB,IAAI,CAAC,iBAAiB,OAAO,QAAQ,OAAO;EAC5C,MAAM,QAAQ,SAAS;EAIvB,IAAI,SAAS,MAAM,MAAM,gBAAgB,UAAU,MAAM,MAAM,SAAS,KAAA,GACtE,MAAM,QAAQ,EACZ,eAAe,MACjB,CAAC;EAMH,OAAO,MAAM,QAAwB;GACnC,GAAG;GACH,MAAM,EACJ,iBAAiB,KACnB;EACF,CAAC;CACH;AACF;;;AC1BA,SAAgB,iBAAiB,WAAW,OAAO;CACjD,OAAO,OAAO,cAAc,aAAa,UAAU,KAAK,IAAI;AAC9D;AACA,SAAgB,kBAAkB,QAAQ,OAAO;CAC/C,OAAO,OAAO,WAAW,aAAa,OAAO,KAAK,IAAI;AACxD;;;ACNA,IAAa,mBAAb,MAA8B;CAC5B,cAAc;EACZ,KAAK,QAAQ,QAAQ,QAAQ;EAC7B,KAAK,YAAY;EACjB,KAAK,WAAW,KAAK;EACrB,KAAK,cAAc;EACnB,KAAK,kCAAkB,IAAI,IAAI;CACjC;CACA,WAAW,KAAK;EACd,OAAO,GAAG,KAAK,YAAY,GAAG,KAAK,gBAAgB,IAAI,GAAG,KAAK;CACjE;CACA,WAAW,KAAK;EACd,KAAK,gBAAgB,IAAI,MAAM,KAAK,gBAAgB,IAAI,GAAG,KAAK,KAAK,CAAC;CACxE;CACA,gBAAgB;EACd,KAAK;EACL,KAAK,gBAAgB,MAAM;CAC7B;CACA,QAAQ,WAAW;EACjB,MAAM,WAAW,EAAE,KAAK;EACxB,MAAM,SAAS,KAAK,MAAM,KAAK,SAAS;EACxC,KAAK,QAAQ,OAAO,OAAM,UAAS;GACjC,KAAK,aAAa;IAChB;IACA;GACF;EACF,CAAC;EACD,OAAO;CACT;CACA,MAAM,QAAQ;EACZ,MAAM,WAAW,KAAK;EACtB,MAAM,KAAK;EACX,IAAI,KAAK,YAAY,KAAK,SAAS,YAAY,UAAU;GACvD,MAAM,EACJ,UACE,KAAK;GACT,KAAK,WAAW,KAAA;GAChB,MAAM;EACR;CACF;AACF;AACA,IAAM,yBAAS,IAAI,QAAQ;AAC3B,SAAgB,oBAAoB,SAAS;CAC3C,IAAI,QAAQ,OAAO,IAAI,OAAO;CAC9B,IAAI,CAAC,OAAO;EACV,QAAQ,IAAI,iBAAiB;EAC7B,OAAO,IAAI,SAAS,KAAK;CAC3B;CACA,OAAO;AACT;;;ACjDA,IAAa,iBAAiB;;;ACG9B,IAAa,gBAAb,cAAmC,WAAW;CAC5C,YAAY,GAAG,MAAM;EACnB,MAAM,GAAG,IAAI;EACb,KAAK,UAAU,KAAK;EACpB,KAAK,QAAQ,KAAK;CACpB;CACA,SAAS,SAAS,OAAO;EACvB,KAAK,UAAU;EACf,KAAK,QAAQ;CACf;CACA,QAAQ,KAAK;EACX,OAAO,KAAK,IAAI,KAAK,OAAO,QAAQ,GAAG;CACzC;CACA,QAAQ,KAAK,OAAO;EAElB,MAAM,OAAO,EACX,GAFkB,KAAK,KAAK,MAAM,cAAc,CAAC,CAAC,OAEnC,UAAU,OAAO,QAClC;EACA,IAAI,SAAS,kBAAkB,KAAK,QAAQ,QAAQ,KAAK,KAAK;EAC9D,IAAI,WAAW,KAAA,GAAW;GACxB,IAAI,WAAW,UAAU,SAAS;GAClC,KAAK,UAAU,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM;EAC7C;EACA,KAAK,IAAI,KAAK,OAAO,QAAQ,KAAK,OAAO,IAAI;CAC/C;CACA,WAAW,KAAK;EACd,KAAK,IAAI,KAAK,OAAO,WAAW,GAAG;CACrC;AACF;;;AC7BA,IAAM,aAAY,UAAS,SAAS,OAAO,OAAO,OAAO,KAAK;AAC9D,SAAgB,8BAA8B,SAAS,OAAO,YAAY;CACxE,OAAO,KAAK,UAAU;EAAC;EAAiB;EAAG;EAAS;EAAO;CAAU,CAAC;AACxE;AACA,SAAgB,qBAAqB,SAAS;CAC5C,IAAI,YAAY,OAAO,OAAO;CAC9B,MAAM,YAAY,WAAW,OAAO,YAAY,WAAW,UAAU,CAAC;CACtE,QAAQ,UAAU,YAAY,UAAU,OAAO,UAAU,WAAW;AACtE;AACA,SAAS,kBAAkB;CACzB,OAAO;EACL,MAAM,KAAA;EACN,iBAAiB;EACjB,eAAe;EACf,OAAO;EACP,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;EACnB,oBAAoB;EACpB,WAAW;EACX,eAAe;EACf,QAAQ;EACR,aAAa;CACf;AACF;;AAGA,IAAa,0BAAb,MAAqC;CACnC,YAAY,cAAc,QAAQ;EAChC,KAAK,eAAe;EACpB,KAAK,SAAS;EACd,KAAK,WAAW,WAAW,CAAC;EAC5B,KAAK,SAAS,KAAK;EACnB,KAAK,cAAc;EACnB,KAAK,4BAAY,IAAI,IAAI;EACzB,KAAK,6BAAa,IAAI,IAAI;EAG1B,QAAQ,IAAI;EACZ,KAAK,SAAS,OAAO,OAAO;GAAC;GAAM,UAAU,MAAM;GAAG;EAAI,CAAC;CAC7D;CACA,IAAI,QAAQ;EACV,KAAU,SAAS;EACnB,OAAO,KAAK;CACd;CACA,UAAU;EACR,OAAO,OAAO,OAAO;GACnB,OAAO,KAAK;GACZ,OAAO,KAAK;EACd,CAAC;CACH;CACA,QAAQ,OAAO;EACb,OAAO,MAAM,UAAU,KAAK,SAAS,MAAM,UAAU,KAAK;CAC5D;CACA,aAAa,SAAS;EACpB,IAAI,CAAC,KAAK,aACR,KAAK,MAAM,SAAS,SAAS,KAAK,UAAU,IAAI,KAAK;CAEzD;CACA,MAAM,OAAO;EAGX,IAAI,OAAO,KAAK,UAAU,OAAO,KAAK;CACxC;CACA,UAAU,UAAU;EAClB,KAAK,WAAW,IAAI,QAAQ;EAC5B,aAAa,KAAK,WAAW,OAAO,QAAQ;CAC9C;CACA,OAAO,QAAQ,UAAU,CAAC,GAAG;EAC3B,MAAM,QAAQ,OAAO,OAAO;GAAC,UAAU,OAAO,UAAU;GAAG,UAAU,OAAO,MAAM;GAAG,UAAU,OAAO,MAAM;EAAC,CAAC;EAC9G,MAAM,QAAQ,CAAC,KAAK,eAAe,QAAQ,YAAY;EACvD,KAAK,cAAc;EACnB,IAAI,MAAM,OAAO,OAAO,UAAU,UAAU,KAAK,OAAO,MAAM,GAAG;GAC/D,KAAK,UAAU,MAAM;GACrB;EACF;EACA,MAAM,WAAW,KAAK,aAAa,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,QAAO,UAAS,qBAAqB,MAAM,MAAM,SAAS,KAAK,EAAE,SAAS,KAAK,UAAU,IAAI,KAAK,EAAE;EAChK,KAAK,SAAS;EACd,KAAK,UAAU,MAAM;EACrB,KAAK,YAAY,QAAQ;EAGzB,IAAI,QAAQ,kBAAkB,OAAO;EACrC,MAAM,QAAQ,KAAK,QAAQ;EAG3B,QAAa,QAAQ,CAAC,CAAC,WAAW;GAChC,IAAI,KAAK,QAAQ,KAAK,GACpB,OAAO,KAAK,aAAa,eAAe;IACtC,MAAM;IACN,YAAW,UAAS,SAAS,SAAS,KAAK;GAC7C,CAAC;EAEL,CAAC;CACH;CACA,QAAQ;EACN,KAAK,UAAU,MAAM;EACrB,KAAK,YAAY,KAAK,aAAa,cAAc,CAAC,CAAC,OAAO,CAAC;CAC7D;CACA,YAAY,SAAS;EACnB,KAAK;EAGL,KAAK,MAAM,SAAS,SAAS,MAAW,OAAO;GAC7C,QAAQ;GACR,QAAQ;EACV,CAAC;EACD,cAAc,YAAY;GACxB,KAAK,MAAM,SAAS,SAAS;IAC3B,MAAM,WAAW;KACf,GAAG,MAAM;KACT,aAAa,KAAA;KACb,sBAAsB,KAAA;IACxB,CAAC;IACD,KAAK,MAAM,YAAY,MAAM,WAC3B,SAAS,WAAW;KAClB,GAAG,SAAS;KACZ,aAAa,KAAA;KACb,sBAAsB,KAAA;KACtB,iBAAiB,KAAA;IACnB,CAAC;IAEH,MAAM,SAAS,gBAAgB,CAAC;GAClC;EACF,CAAC;EACD,KAAK,SAAS;EACd,MAAM,QAAQ,KAAK,QAAQ;EAC3B,KAAK,MAAM,YAAY,KAAK,YAAY,SAAS,KAAK;CACxD;;CAGA,aAAa,SAAS;EACpB,IAAI,CAAC,qBAAqB,QAAQ,MAAM,SAAS,GAAG,OAAO;EAC3D,MAAM,QAAQ,KAAK,QAAQ;EAC3B,MAAM,cAAc,QAAQ;EAC5B,MAAM,uBAAuB,QAAQ;EACrC,MAAM,kBAAkB,QAAQ;EAChC,OAAO;GACL,GAAG;GACH,mBAAmB,KAAK,QAAQ,KAAK,IAAI,OAAO,gBAAgB,aAAa,YAAY,IAAI,cAAc,KAAA;GAC3G,4BAA4B,KAAK,QAAQ,KAAK,IAAI,OAAO,yBAAyB,aAAa,qBAAqB,IAAI,uBAAuB,KAAA;GAC/I,kBAAkB,GAAG,SAAS,KAAK,QAAQ,KAAK,IAAI,OAAO,oBAAoB,aAAa,gBAAgB,GAAG,IAAI,IAAI,kBAAkB,KAAA;EAC3I;CACF;AACF;;;AChJA,SAAgB,qBAAqB,aAAa;CAChD,QAAQ,SAAS,SAAS,UAAU;EAClC,IAAI,MAAM,MAAM,WAAW,oBAAoB,MAC7C,OAAO,QAAQ,OAAO;EAExB,OAAO,YAAY,SAAS,SAAS,KAAK;CAC5C;AACF;;;ACPA,IAAa,gBAAb,cAAmC,SAAS;CAC1C,YAAY,UAAU;EACpB,MAAM;EACN,KAAK,WAAW,KAAK;EACrB,IAAI,KAAK,eAAe,gBACtB,KAAK,WAAW,YAAY;CAEhC;CACA,MAAM,SAAS,WAAW,CAE1B;CACA,IAAI,gBAAgB;EAClB,OAAO,MAAM;CACf;CACA,IAAI,OAAO;EACT,OAAO,KAAK,IAAI;CAClB;CACA,IAAI,YAAY;EACd,OAAO,KAAK,KAAK,MAAM,cAAc;CACvC;AACF;;;ACXA,IAAa,qBAAb,cAAwC,cAAc;CACpD,YAAY,GAAG,MAAM;EACnB,MAAM,GAAG,IAAI;EACb,KAAK,0CAA0B,IAAI,IAAI;CACzC;CACA,gBAAgB,UAAU;EACxB,MAAM,QAAQ,KAAK,KAAK,WAAW,EACjC,SACF,CAAC;EACD,MAAM,UAAU,KAAK,wBAAwB,OAAO,MAAM,SAAS;EACnE,OAAO,CAAC,CAAC,WAAW,KAAK,wBAAwB,IAAI,KAAK,wBAAwB,SAAS,OAAO,QAAQ,CAAC;CAC7G;CACA,qBAAqB,YAAY,OAAO,SAAS;EAC/C,IAAI,CAAC,YAAY,OAAO,EACtB,QAAQ,MACV;EACA,MAAM,iBAAiB,QAAQ,cAAc,QAAQ,YAAY,YAAY,QAAQ,kBAAkB,IAAI,QAAQ,mBAAmB,UAAU;EAChJ,IAAI,eAAe,MAAM,eAAe;GAEtC,MAAM,UADW,KAAK,IAAI,IAAI,eAAe,MAAM,iBACvB,kBAAkB,QAAQ,QAAQ,KAAK,KAAK;GACxE,MAAM,SAAS,eAAe,WAAW,QAAQ;GACjD,IAAI,CAAC,WAAW,CAAC,QACf,OAAO;IACL,MAAM,eAAe,MAAM;IAC3B,QAAQ;IACR,YAAY;KACV,eAAe,eAAe,MAAM;KACpC,gBAAgB,eAAe,MAAM;IACvC;GACF;EAEJ;EACA,OAAO,EACL,QAAQ,KACV;CACF;CACA,eAAe,UAAU;EACvB,MAAM,MAAM,KAAK;EACjB,IAAI,KAAK,UAAU,OAAO,KAAA;EAC1B,MAAM,cAAc,KAAK;EACzB,MAAM,QAAQ,KAAK,KAAK,WAAW,EACjC,SACF,CAAC;EACD,IAAI,CAAC,OAAO,OAAO,KAAA;EACnB,MAAM,UAAU,KAAK,wBAAwB,MAAM,MAAM,SAAS;EAClE,IAAI,CAAC,SAAS,OAAO,KAAA;EACrB,MAAM,UAAU,KAAK,qBAAqB,SAAS,KAAK;EACxD,IAAI,CAAC,SAAS,OAAO,KAAA;EACrB,MAAM,QAAQ,YAAY,QAAQ;EAClC,IAAI,QAAQ,YAAY,MAAM,YAAY,MAAM,KAAK;EACrD,MAAM,aAAa,KAAK,wBAAwB,SAAS,OAAO,KAAA,GAAW,KAAK;EAChF,KAAK,wBAAwB,OAAO,UAAU;EAC9C,MAAM,QAAQ,oBAAoB,OAAO;EACzC,MAAM,aAAa,MAAM,WAAW,UAAU;EAC9C,MAAM,gBAAgB,CAAC,KAAK,YAAY,eAAe,MAAM,WAAW,UAAU,MAAM,QAAQ,YAAY,QAAQ,YAAY,QAAQ,KAAK;EAC7I,IAAI,CAAC,QAAQ,MACX,OAAO,MAAM,QAAQ,YAAY;GAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAA;GACvB,MAAM,aAAa,MAAM,QAAQ,QAAQ,UAAU;GACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAA;GACvB,IAAI;IACF,MAAM,SAAS,KAAK,qBAAqB,YAAY,OAAO,OAAO;IACnE,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAA;IACvB,IAAI,OAAO,YAAY,MAAM,SAAS,OAAO,UAAU;IACvD,IAAI,OAAO,QAAQ,MAAM,QAAQ,WAAW,UAAU;IACtD,OAAO,QAAQ,IAAI,OAAO,OAAO,KAAA;GACnC,QAAQ;IACN,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAA;IACvB,KAAK,wBAAwB,IAAI,UAAU;IAC3C,MAAM,QAAQ,WAAW,UAAU;IACnC,KAAK,sBAAsB,SAAS;IACpC;GACF;EACF,CAAC,CAAC,CAAC,YAAY;GACb,IAAI,QAAQ,GAAG;IACb,KAAK,wBAAwB,IAAI,UAAU;IAC3C,KAAK,sBAAsB,SAAS;GACtC;EAEF,CAAC;EAEH,IAAI;GACF,MAAM,SAAS,KAAK,qBAAqB,QAAQ,QAAQ,UAAU,GAAG,OAAO,OAAO;GACpF,IAAI,OAAO,YAAY,MAAM,SAAS,OAAO,UAAU;GACvD,IAAI,OAAO,QAAQ,QAAQ,WAAW,UAAU;GAChD,OAAO,OAAO;EAChB,QAAQ;GACN,KAAK,wBAAwB,IAAI,UAAU;GAC3C,KAAK,sBAAsB,SAAS;GACpC,IAAI;IACF,QAAQ,WAAW,UAAU;GAC/B,QAAQ;IACN,KAAK,sBAAsB,QAAQ;GACrC;EACF;CACF;CACA,qBAAqB,UAAU;EAC7B,MAAM,QAAQ,KAAK,KAAK,WAAW,EACjC,SACF,CAAC;EACD,MAAM,UAAU,KAAK,wBAAwB,OAAO,MAAM,SAAS;EACnE,IAAI,CAAC,SAAS,OAAO;EACrB,MAAM,UAAU,KAAK,qBAAqB,SAAS,KAAK;EACxD,IAAI,CAAC,SAAS,OAAO;EACrB,MAAM,aAAa,KAAK,wBAAwB,SAAS,OAAO,QAAQ;EACxE,OAAO,GAAG,QAAQ,YAAY,OAAO,KAAK,kBAAkB,QAAQ,GAAG,GAAG,WAAW,GAAG,oBAAoB,OAAO,CAAC,CAAC,WAAW,UAAU;CAC5I;CACA,eAAe,UAAU;EACvB,MAAM,QAAQ,KAAK,KAAK,WAAW,EACjC,SACF,CAAC;EACD,IAAI,CAAC,OAAO,OAAO,QAAQ,QAAQ;EACnC,MAAM,UAAU,KAAK,wBAAwB,MAAM,MAAM,SAAS;EAClE,IAAI,CAAC,SAAS,OAAO,QAAQ,QAAQ;EACrC,OAAO,KAAK,eAAe,OAAO,OAAO;CAC3C;CACA,iBAAiB,UAAU,eAAe,OAAO;EAC/C,MAAM,QAAQ,KAAK,KAAK,WAAW,EACjC,SACF,CAAC;EACD,IAAI,CAAC,OAAO;GACV,IAAI,QAAQ,IAAI,KAAK,QAAQ,KAAK,wDAAwD,QAAQ;GAClG;EACF;EACA,MAAM,YAAY,MAAM,MAAM,aAAa,OAAO,MAAM,KAAK,cAAc,WAAW,MAAM,KAAK,YAAY,CAAC;EAC9G,MAAM,UAAU,KAAK,wBAAwB;GAC3C,GAAG;GACH,SAAS;GACT,MAAM;GACN,mBAAkB,QAAO,kBAAkB,WAAW,OAAO,KAAK,OAAO,QAAQ,EAAE,IAAI,KAAK,UAAU,KAAK,OAAO,IAAI;EACxH,CAAC;EACD,IAAI,SAAS,KAAK,eAAe,OAAO,SAAS,KAAK;CACxD;CACA,oBAAoB,OAAO,SAAS,OAAO;EACzC,MAAM,SAAS;GACb,OAAO,UAAU,KAAA,IAAY,MAAM,QAAQ;IACzC,GAAG,MAAM;IACT,MAAM;GACR;GACA,UAAU,MAAM;GAChB,WAAW,MAAM;GACjB,QAAQ,QAAQ;EAClB;EACA,OAAO,QAAQ,YAAY,QAAQ,UAAU,QAAQ,QAAQ,gBAAgB,IAAI,QAAQ,iBAAiB,MAAM;CAClH;CACA,eAAe,OAAO,SAAS,OAAO;EACpC,MAAM,UAAU,KAAK,qBAAqB,SAAS,KAAK;EACxD,IAAI,CAAC,SAAS,OAAO,QAAQ,QAAQ;EACrC,IAAI,QAAQ,YAAY,MAAM,KAAK,kBAAkB,MAAM,KAAK;EAChE,MAAM,aAAa,KAAK,wBAAwB,SAAS,KAAK;EAC9D,MAAM,QAAQ,oBAAoB,OAAO;EACzC,MAAM,WAAW,UAAU;EAC3B,IAAI;EACJ,IAAI;GACF,OAAO,KAAK,oBAAoB,OAAO,SAAS,KAAK;EACvD,SAAS,OAAO;GACd,OAAO,KAAK,0BAA0B,MAAM,cAAc;IACxD,MAAM;GACR,CAAC,GAAG,MAAM;EACZ;EACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,YAAY,MAC/C,IAAI;GACF,QAAQ,QAAQ,YAAY,IAAI;GAChC,OAAO,QAAQ,QAAQ;EACzB,SAAS,OAAO;GACd,OAAO,KAAK,0BAA0B,QAAQ,OAAO,KAAK,GAAG,MAAM;EACrE;EAIF,OAAO,KAAK,0BAA0B,MAAM,QAAQ,YAAY;GAC9D,MAAM,QAAQ,QAAQ,YAAY,IAAI;EACxC,CAAC,GAAG,MAAM;CACZ;CACA,iBAAiB,UAAU,WAAW;EACpC,MAAM,QAAQ,KAAK,KAAK,WAAW,EACjC,SACF,CAAC;EACD,IAAI,CAAC,SAAS,CAAC,WAAW,OAAO,QAAQ,QAAQ;EACjD,MAAM,UAAU,KAAK,wBAAwB,aAAa,OAAO,MAAM,SAAS;EAChF,IAAI,CAAC,SAAS,OAAO,QAAQ,QAAQ;EACrC,MAAM,UAAU,KAAK,qBAAqB,SAAS,KAAK;EACxD,IAAI,CAAC,SAAS,OAAO,QAAQ,QAAQ;EACrC,IAAI,QAAQ,YAAY,MAAM,KAAK,kBAAkB,MAAM,KAAK;EAChE,MAAM,aAAa,KAAK,wBAAwB,SAAS,OAAO,QAAQ;EACxE,MAAM,QAAQ,oBAAoB,OAAO;EACzC,MAAM,WAAW,UAAU;EAC3B,IAAI,QAAQ,SAAS,QAAQ,QAAQ,YAAY,MAC/C,IAAI;GACF,QAAQ,WAAW,UAAU;GAC7B,OAAO,QAAQ,QAAQ;EACzB,SAAS,OAAO;GACd,OAAO,KAAK,0BAA0B,QAAQ,OAAO,KAAK,GAAG,QAAQ;EACvE;EAEF,OAAO,KAAK,0BAA0B,MAAM,QAAQ,YAAY;GAC9D,MAAM,QAAQ,WAAW,UAAU;EACrC,CAAC,GAAG,QAAQ;CACd;CACA,MAAM,kBAAkB;EACtB,IAAI,QAAQ,IAAI,QAAQ;EACxB,MAAM,oBAAoB,WAAW,CAAC,CAAC,MAAM;CAC/C;CACA,0BAA0B,WAAW,QAAQ;EAC3C,UAAU,YAAY,KAAK,sBAAsB,MAAM,CAAC;EACxD,OAAO;CACT;CACA,sBAAsB,QAAQ;EAC5B,IAAI,QAAQ,IAAI,KAAK,QAAQ,KAAK,sCAAsC,OAAO,wBAAwB;CACzG;CACA,iBAAiB,SAAS;EACxB,UAAU,KAAK,wBAAwB,OAAO;EAC9C,IAAI,CAAC,SAAS,OAAO,KAAA;EACrB,IAAI,QAAQ,YAAY,MAAM,OAAO,KAAK,mBAAmB,OAAO;EACpE,MAAM,UAAU,KAAK,qBAAqB,OAAO;EACjD,MAAM,mBAAmB;EACzB,OAAO,sBAAsB,SAAS,SAAS,UAAU;GACvD,MAAM,QAAQ,UAAU,oBAAoB,OAAO,IAAI,KAAA;GACvD,MAAM,aAAa,GAAG,iBAAiB,OAAO,GAAG,MAAM;GACvD,MAAM,aAAa,OAAO,WAAW,UAAU;GAC/C,MAAM,gBAAgB,eAAe,OAAO,WAAW,UAAU;GACjE,MAAM,iBAAiB,WAAW,SAAS,CAAC,iBAAiB,OAAO;IAClE,UAAS,QAAO,MAAM,cAAc,QAAQ,IAAI,QAAQ,QAAQ,GAAG,IAAI,KAAA,CAAS;IAChF,UAAU,KAAK,SAAS,KAAK,0BAA0B,MAAM,QAAQ,YAAY;KAC/E,IAAI,QAAQ,GAAG,MAAM,QAAQ,QAAQ,KAAK,IAAI;IAChD,CAAC,GAAG,MAAM;IACV,aAAY,QAAO,KAAK,0BAA0B,MAAM,QAAQ,YAAY;KAC1E,IAAI,QAAQ,GAAG,MAAM,QAAQ,WAAW,GAAG;IAC7C,CAAC,GAAG,QAAQ;GACd,IAAI;GACJ,OAAO,kCAAkC;IACvC,SAAS;IACT,QAAQ,iBAAiB;IACzB,kBAAkB,iBAAiB;IACnC,QAAQ,iBAAiB;IACzB,QAAQ,iBAAiB;GAC3B,CAAC,CAAC,CAAC,YAAY,SAAS,SAAS,KAAK;EACxC,CAAC;CACH;CACA,mBAAmB,SAAS;EAC1B,MAAM,MAAM,KAAK;EACjB,MAAM,cAAc,KAAK;EAGzB,OAAO,OAAO,SAAS,SAAS,UAAU;GACxC,IAAI,KAAK,UAAU,MAAM,IAAI,eAAe;IAC1C,QAAQ;IACR,QAAQ;GACV,CAAC;GACD,YAAY,MAAM,KAAK;GACvB,MAAM,QAAQ,YAAY,QAAQ;GAClC,MAAM,UAAU,KAAK,qBAAqB,SAAS,KAAK;GACxD,MAAM,QAAQ,WAAW,oBAAoB,OAAO;GACpD,MAAM,aAAa,KAAK,wBAAwB,SAAS,OAAO,KAAA,GAAW,KAAK;GAChF,MAAM,aAAa,OAAO,WAAW,UAAU;GAC/C,MAAM,gBAAgB,CAAC,KAAK,YAAY,YAAY,QAAQ,KAAK,KAAK,eAAe,OAAO,WAAW,UAAU;GACjH,MAAM,sBAAsB;IAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,eAAe;KACvC,QAAQ;KACR,QAAQ;IACV,CAAC;GACH;GACA,MAAM,SAAS,MAAM,MAAM,WAAW,oBAAoB;GAC1D,IAAI,CAAC,UAAU,WAAW,SAAS,MAAM,MAAM,SAAS,KAAA,GAAW;IACjE,KAAK,wBAAwB,OAAO,UAAU;IAC9C,MAAM,WAAW,MAAM,MAAM,QAAQ,YAAY;KAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAA;KACvB,IAAI;MACF,MAAM,aAAa,MAAM,QAAQ,QAAQ,UAAU;MACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAA;MACvB,MAAM,SAAS,KAAK,qBAAqB,YAAY,OAAO,OAAO;MACnE,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAA;MACvB,IAAI,OAAO,QAAQ,MAAM,QAAQ,WAAW,UAAU;MACtD,OAAO,QAAQ,IAAI,SAAS,KAAA;KAC9B,QAAQ;MACN,IAAI,QAAQ,GAAG;OACb,KAAK,wBAAwB,IAAI,UAAU;OAC3C,MAAM,QAAQ,WAAW,UAAU;OACnC,KAAK,sBAAsB,SAAS;MACtC;MACA;KACF;IACF,CAAC,CAAC,CAAC,YAAY;KACb,IAAI,QAAQ,GAAG;MACb,KAAK,wBAAwB,IAAI,UAAU;MAC3C,KAAK,sBAAsB,SAAS;KACtC;IAEF,CAAC;IACD,cAAc;IACd,IAAI,UAAU,SAAS,KAAA,GAAW;KAChC,cAAc,eAAe;MAC3B,IAAI,CAAC,QAAQ,GAAG;MAChB,IAAI,SAAS,YAAY,MAAM,SAAS,SAAS,UAAU;MAC3D,IAAI,QAAQ,qBAAqB,YAAY,QAAQ,qBAAqB,QAAQ,MAAM,QAAQ,GAC9F,MAAW,MAAM,CAAC,CAAC,YAAY,KAAA,CAAS;KAE5C,CAAC;KACD,OAAO,SAAS;IAClB;GACF;GACA,cAAc;GACd,IAAI;GACJ,IAAI;IACF,SAAS,MAAM,QAAQ,OAAO;GAChC,SAAS,OAAO;IACd,cAAc;IACd,MAAM;GACR;GACA,cAAc;GACd,IAAI,CAAC,UAAU,WAAW,OACxB,cAAc,eAAe;IAC3B,IAAI,CAAC,QAAQ,GAAG;IAChB,IAAI;IACJ,IAAI;KACF,OAAO,KAAK,oBAAoB,OAAO,SAAS,MAAM;IACxD,SAAS,OAAO;KACd,KAAK,0BAA0B,MAAM,cAAc;MACjD,MAAM;KACR,CAAC,GAAG,MAAM;KACV;IACF;IACA,KAAK,0BAA0B,MAAM,QAAQ,YAAY;KACvD,IAAI,QAAQ,GAAG,MAAM,QAAQ,QAAQ,YAAY,IAAI;IACvD,CAAC,GAAG,MAAM;GACZ,CAAC;GAEH,OAAO;EACT;CACF;CACA,wBAAwB,SAAS;EAC/B,IAAI,YAAY,OAAO,OAAO,KAAA;EAC9B,UAAU,YAAY,KAAA,KAAa,YAAY,OAAO,CAAC,IAAI,EACzD,GAAG,QACL;EACA,QAAQ,UAAU,QAAQ,YAAY,QAAQ,OAAO,UAAU;EAE/D,IAAI,QAAQ,YAAY,MAAM,QAAQ,OAAO;EAC7C,QAAQ,SAAS,QAAQ,UAAU,KAAK,UAAU,OAAO,UAAU,OAAO,QAAQ;EAClF,QAAQ,mBAAmB,QAAQ,oBAAoB,KAAK,UAAU,OAAO,UAAU;EACvF,QAAQ,SAAS,QAAQ,UAAU,KAAK,oBAAoB;EAC5D,QAAQ,SAAS,QAAQ,UAAU,KAAK,oBAAoB;EAC5D,QAAQ,mBAAmB,QAAQ,oBAAoB,KAAK;EAC5D,QAAQ,qBAAqB,QAAQ,sBAAsB,KAAK;EAChE,OAAO;CACT;CACA,wBAAwB,SAAS,OAAO,UAAU,OAAO;EACvD,MAAM,MAAM,OAAO,YAAY,KAAK,qBAAqB,QAAQ;EACjE,MAAM,aAAa,QAAQ,qBAAqB,OAAO,IAAI,IAAI,SAAS,EAAE,IAAI,GAAG,QAAQ,OAAO,GAAG,OAAO,aAAa,QAAQ,GAAG;EAClI,OAAO,QAAQ,YAAY,OAAO,8BAA8B,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,KAAK,kBAAkB,QAAQ,EAAA,CAAG,OAAO,UAAU,IAAI;CAChK;CACA,qBAAqB,SAAS,OAAO;EACnC,UAAU,KAAK,wBAAwB,OAAO;EAC9C,IAAI,CAAC,SAAS,OAAO,KAAA;EACrB,IAAI,QAAQ,YAAY,UAAU,OAAO,KAAK,KAAK,eAAe,eAAe,OAAO,SAAS,KAAK;EACtG,IAAI,QAAQ,IAAI,QAAQ,OAAO,KAAA;EAC/B,IAAI,QAAQ,YAAY,SAAS,OAAO;EACxC,IAAI,QAAQ,YAAY,MAAM,OAAO;CACvC;CACA,sBAAsB;EACpB,OAAO,GAAG,KAAK,IAAI,IAAI,SAAS;CAClC;CACA,sBAAsB;EACpB,OAAO,KAAK,IAAI,IAAI;CACtB;CACA,qBAAqB,UAAU;EAC7B,IAAI,CAAC,UAAU,WAAW,CAAC;EAC3B,IAAI,CAAC,KAAK,sBAAsB,SAAS,EAAE,GAAG;GAC5C,MAAM,WAAW,CAAC,KAAK,mBAAmB;GAC1C,IAAI,KAAK,eAAe,gBAAgB,SAAS,KAAK,KAAK,QAAQ;GACnE,WAAW,SAAS,OAAO,QAAQ;EACrC;EACA,OAAO;CACT;CACA,sBAAsB,QAAQ;EAC5B,OAAO,WAAW,KAAK;CACzB;AACF;;;ACnYA,IAAa,iBAAb,cAAoC,mBAAmB;CACrD,gBAAgB,KAAK;EACnB,OAAO,KAAK,UAAU,KAAK,OAAO,IAAI;CACxC;CACA,kBAAkB,OAAO;EACvB,OAAO;GACL,OAAO;IACL,MAAM,QAAQ,KAAK,MAAM,KAAK,IAAI,KAAA;IAClC,iBAAiB;IACjB,eAAe,KAAK,IAAI;IACxB,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,WAAW;IACX,eAAe;IACf,QAAQ;IACR,aAAa;GACf;GACA,UAAU,KAAA;GACV,WAAW,KAAA;GACX,QAAQ,KAAK,oBAAoB;EACnC;CACF;AACF;;;ACzBA,IAAa,kBAAb,cAAqC,eAAe;CAClD,iBAAiB,KAAK;EACpB,OAAO,OAAO,KAAK,OAAO,QAAQ,EAAE;CACtC;CACA,mBAAmB,OAAO;EACxB,OAAO;GACL,OAAO;IACL,MAAM;IACN,iBAAiB;IACjB,eAAe,KAAK,IAAI;IACxB,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,WAAW;IACX,eAAe;IACf,QAAQ;IACR,aAAa;GACf;GACA,UAAU,KAAA;GACV,WAAW,KAAA;GACX,QAAQ,KAAK,oBAAoB;EACnC;CACF;CACA,cAAc,OAAO,YAAY;EAC/B,IAAI,UAAU,KAAA,KAAa,UAAU,IAAI,OAAO,KAAA;EAChD,IAAI,CAAC,cAAc,eAAe,QAChC,OAAO,UAAU,SAAS,OAAO,UAAU,UAAU,QAAQ;OACxD,IAAI,eAAe,WACxB,OAAO,UAAU,SAAS,OAAO,UAAU,UAAU,QAAQ,QAAQ,OAAO,KAAK,CAAC;OAC7E,IAAI,eAAe,UACxB,OAAO,OAAO,KAAK;OACd,IAAI,eAAe,QACxB,OAAO,IAAI,KAAK,KAAK;OAChB,IAAI,eAAe,UACxB,OAAO;EAET,OAAO;CACT;AACF;;;ACrCA,IAAa,iBAAb,cAAoC,gBAAgB;CAClD,cAAc,UAAU,SAAS,eAAe,SAAS;EACvD,WAAW,KAAK,qBAAqB,QAAQ;EAC7C,MAAM,OAAO,KAAK,aAAa,aAAa,UAAU,SAAS,OAAO;EACtE,IAAI,SAAS,KAAA,GAAW;GACtB,IAAI,eACF,KAAK,iBAAiB,QAAQ;GAEhC,KAAK,oBAAoB,UAAU,IAAI;EACzC,OACE,IAAI,eACF,KAAK,eAAe,QAAQ;EAGhC,OAAO;CACT;CACA,WAAW,SAAS;EAClB,UAAU,KAAK,kBAAkB,OAAO;EACxC,OAAO,KAAK,aAAa,cAAc,CAAC,CAAC,KAAK,OAAO;CACvD;CACA,mBAAmB,SAAS,SAAS;EACnC,UAAU,KAAK,kBAAkB,OAAO;EACxC,OAAO,KAAK,aAAa,kBAAkB,SAAS,OAAO;CAC7D;CACA,gBAAgB,SAAS,SAAS;EAChC,UAAU,KAAK,kBAAkB,OAAO;EACxC,OAAO,KAAK,aAAa,eAAe,SAAS,OAAO;CAC1D;CACA,oBAAoB,UAAU,OAAO;EAKnC,KAJmB,WAAW;GAC5B;GACA,OAAO;EACT,CACA,CAAA,EAAO,QAAQ,KAAK;CACtB;CACA,MAAM,SAAS;EACb,MAAM,QAAQ,oBAAoB,WAAW;EAE7C,MAAM,cAAc;EACpB,MAAM,QAAQ,QAAQ,IAAI,SAAS,QAAQ,QAAQ,IAAI,MAAM,QAAQ,YAAY;GAC/E,MAAM,YAAY,MAAM;EAC1B,CAAC;EACD,KAAK,kBAAkB,MAAM;EAC7B,MAAM;CACR;CACA,kBAAkB,SAAS;EACzB,IAAI,CAAC,SAAS,UAAU,CAAC;EACzB,MAAM,WAAW,KAAK,qBAAqB,KAAK,OAAO,CAAC,CAAC,QAAQ;EACjE,OAAO;GACL,GAAG;GACH;EACF;CACF;AACF;;;ACrDA,IAAa,oBAAb,cAAuC,eAAe;CACpD,UAAU,SAAS,aAAa;EAC9B,MAAM,WAAW,KAAK,KAAK,qBAAqB,QAAQ,QAAQ;EAChE,MAAM,YAAY,KAAK,iBAAiB,QAAQ,MAAM,SAAS;EAC/D,UAAU,KAAK,kBAAkB,aAAa,OAAO,OAAO,CAAC,GAAG,SAAS;GACvE;GACA;EACF,CAAC,CAAC;EAGF,KADa,OAAO,QAAQ,MAAM,cAAc,YAAY,QAAQ,MAAM,WAAW,UACxE,MAAM;GACjB,MAAM,YAAY,QAAQ,aAAa,KAAK,UAAU,OAAO,MAAM,UAAU;GAI7E,MAAM,mBAHa,KAAK,WAAW,EACjC,SACF,CACyB,CAAA,EAAY,MAAM,SAAS,KAAA;GACpD,QAAQ,aAAY,UAAS;IAC3B,IAAI,CAAC,kBAAkB,OAAO,iBAAiB,GAAG,KAAK;IACvD,IAAI,QAAQ,IAAI,UAAU,KAAK,IAAI,KAAK,KAAK,0BAC3C,OAAO,iBAAiB,KAAK,UAAU,OAAO,MAAM,UAAU,KAAK,KAAK;IAE1E,OAAO,iBAAiB,WAAW,KAAK;GAC1C;EACF;EACA,OAAO,KAAK,IAAI,KAAK,oBAAoB;GACvC,MAAM,QAAQ,SAAS,SAAS,WAAW;GAC3C,MAAM,UAAU,mBAAmB,MAAM,eAAe,KAAK,WAAW,EACtE,SACF,CAAC,CAAC;GACF,OAAO;EACT,CAAC;CACH;AACF;;;ACjCA,IAAM,mBAAmB,OAAO,kBAAkB;AAClD,IAAM,qBAAqB,OAAO,oBAAoB;AACtD,IAAa,oBAAb,cAAuC,kBAAkB;CACvD,YAAY,GAAG,MAAM;EACnB,MAAM,GAAG,IAAI;EACb,KAAK,oBAAoB,CAAC;EAC1B,KAAK,sBAAsB,CAAC;CAC9B;CACA,MAAM,uBAAuB,OAAO;EAClC,OAAO,MAAM;CACf;CACA,oBAAoB,SAAS,aAAa;EACxC,UAAU,WAAW,EACnB,MAAM,EACJ,QAAQ,KAAK,UAAU,OAAO,UAAU,OAAO,MACjD,EACF,GAAG,SAAS;GACV,SAAS;GACT,WAAW;GACX,MAAM;IACJ,KAAK,EACH,WAAW,MACb;IACA,WAAW;KACT,SAAS;KACT,MAAM;IACR;GACF;EACF,CAAC;EACD,MAAM,OAAO;EACb,OAAO,KAAK,iBAAiB;GAC3B,OAAO;IACL,MAAM;KACJ,OAAO,KAAK,oBAAoB,SAAS,aAAa,IAAI;IAC5D;IACA,IAAI,OAAO;KACT,KAAK,mBAAmB,SAAS,aAAa,MAAM,KAAK;IAC3D;GACF;EACF,CAAC;CACH;CACA,eAAe,SAAS,aAAa;EACnC,UAAU,WAAW,EACnB,MAAM,EACJ,WAAW;GACT,mBAAkB,QAAO;IACvB,OAAO,KAAK,gBAAgB,GAAG;GACjC;GACA,qBAAoB,UAAS;IAC3B,OAAO,KAAK,kBAAkB,KAAK;GACrC;GACA,oBAAoB;EACtB,EACF,EACF,GAAG,SAAS;GACV,SAAS;GACT,WAAW;GACX,MAAM,EACJ,WAAW;IACT,SAAS;IACT,MAAM;GACR,EACF;EACF,CAAC;EACD,MAAM,OAAO;EACb,OAAO,KAAK,iBAAiB;GAC3B,OAAO;IACL,MAAM;KACJ,OAAO,KAAK,mBAAmB,SAAS,aAAa,IAAI;IAC3D;IACA,IAAI,OAAO;KACT,KAAK,mBAAmB,SAAS,aAAa,MAAM,KAAK;IAC3D;GACF;EACF,CAAC;CASH;CACA,gBAAgB,SAAS,aAAa;EACpC,UAAU,WAAW,EACnB,MAAM,EACJ,WAAW;GACT,mBAAkB,QAAO;IACvB,OAAO,KAAK,iBAAiB,GAAG;GAClC;GACA,qBAAoB,UAAS;IAC3B,MAAM,aAAa,QAAQ,KAAK,UAAU;IAC1C,OAAO,KAAK,mBAAmB,KAAK,cAAc,OAAO,UAAU,CAAC;GACtE;GACA,oBAAoB;EACtB,EACF,EACF,GAAG,SAAS;GACV,SAAS;GACT,WAAW;GACX,MAAM,EACJ,WAAW;IACT,SAAS;IACT,MAAM;GACR,EACF;EACF,CAAC;EACD,MAAM,OAAO;EACb,OAAO,KAAK,iBAAiB;GAC3B,OAAO;IACL,MAAM;KACJ,OAAO,KAAK,mBAAmB,SAAS,aAAa,IAAI;IAC3D;IACA,IAAI,OAAO;KACT,KAAK,mBAAmB,SAAS,aAAa,MAAM,KAAK;IAC3D;GACF;EACF,CAAC;CASH;CACA,aAAa,SAAS,aAAa;EACjC,UAAU,WAAW,CAAC,GAAG,SAAS;GAChC,SAAS;GACT,WAAW;GACX,MAAM,EACJ,WAAW,MACb;EACF,CAAC;EACD,MAAM,OAAO;EACb,OAAO,KAAK,iBAAiB;GAC3B,OAAO;IACL,MAAM;KACJ,OAAO,KAAK,mBAAmB,SAAS,aAAa,KAAK;IAC5D;IACA,IAAI,OAAO;KACT,KAAK,mBAAmB,SAAS,aAAa,OAAO,KAAK;IAC5D;GACF;EACF,CAAC;CASH;CACA,kBAAkB,SAAS;EACzB,MAAM,WAAW,KAAK,KAAK,qBAAqB,QAAQ,QAAQ;EAChE,MAAM,YAAY,QAAQ,QAAQ;EAClC,IAAI,CAAC,KAAK,mBAAmB,CAAC,YAC5B,KAAK,mBAAmB,CAAC,aAAa,KAAK,UAAU,QAAQ,SAAS,QAAQ,YAAY;EAE5F,OAAO,KAAK,mBAAmB,CAAC;CAClC;CACA,cAAc,SAAS,aAAa;EAClC,MAAM,WAAW,KAAK,KAAK,qBAAqB,QAAQ,QAAQ;EAChE,MAAM,YAAY,QAAQ,QAAQ;EAClC,IAAI,CAAC,KAAK,iBAAiB,CAAC,YAAY;GACtC,MAAM,WAAW,KAAK,UAAU,SAAS,WAAW;GACpD,KAAK,iBAAiB,CAAC,aAAa;GACpC,IAAI,CAAC,QAAQ,MAAM,uBACjB,SAAS,SAAS;EAEtB;EACA,OAAO,KAAK,iBAAiB,CAAC;CAChC;CACA,oBAAoB,SAAS,aAAa,WAAW;EACnD,IAAI,KAAK,KAAK,UAAU,OAAO,KAAA;EAG/B,KAAU,kBAAkB;EAC5B,MAAM,QAAQ,KAAK,cAAc,SAAS,WAAW;EACrD,IAAI,MAAM,SAAS,KAAA,GAAW,OAAO,MAAM;EAC3C,OAAO,KAAK,0BAA0B,SAAS,aAAa,SAAS;CACvE;CACA,MAAM,0BAA0B,SAAS,aAAa,WAAW;EAC/D,MAAM,MAAM,KAAK;EACjB,IAAI,KAAK,UAAU,OAAO,KAAA;EAC1B,MAAM,cAAc,KAAK;EACzB,MAAM,WAAW,QAAQ;EACzB,MAAM,QAAQ,YAAY,QAAQ;EAClC,MAAM,QAAQ,KAAK,cAAc,SAAS,WAAW;EACrD,IAAI,WAAW;GACb,MAAM,aAAa,KAAK,qBAAqB,QAAQ;GACrD,MAAM,OAAO,MAAM,KAAK,eAAe,QAAQ;GAC/C,IAAI,KAAK,YAAY,CAAC,YAAY,QAAQ,KAAK,KAAK,eAAe,KAAK,qBAAqB,QAAQ,GACnG;GAEF,IAAI,SAAS,KAAA,KAAa,MAAM,SAAS,KAAA,GACvC,KAAK,cAAc,UAAU,MAAM,KAAK;EAE5C;EACA,IAAI,MAAM,SAAS,KAAA,GACjB,KAAK,+BAA+B,UAAU,OAAO;EAEvD,OAAO,MAAM;CACf;CACA,mBAAmB,SAAS,aAAa,WAAW;EAClD,MAAM,WAAW,QAAQ;EACzB,MAAM,QAAQ,KAAK,cAAc,SAAS,WAAW;EACrD,IAAI,MAAM,SAAS,KAAA,GAAW,OAAO,MAAM;EAC3C,IAAI,WAAW;GACb,MAAM,OAAO,KAAK,eAAe,QAAQ;GACzC,IAAI,SAAS,KAAA,GACX,KAAK,cAAc,UAAU,MAAM,KAAK;EAE5C;EACA,IAAI,MAAM,SAAS,KAAA,GACjB,KAAK,+BAA+B,UAAU,OAAO;EAEvD,OAAO,MAAM;CACf;CACA,+BAA+B,UAAU,SAAS;EAChD,IAAI,cAAc,QAAQ,MAAM;EAChC,IAAI,OAAO,gBAAgB,YACzB,cAAc,YAAY;EAE5B,IAAI,gBAAgB,KAAA,GAElB,KAAK,cAAc,UAAU,aAAa,KAAK;CAEnD;CACA,mBAAmB,SAAS,aAAa,WAAW,OAAO;EACzD,MAAM,WAAW,QAAQ;EACzB,MAAM,QAAQ,KAAK,cAAc,SAAS,WAAW;EACrD,KAAK,cAAc,UAAU,OAAO,SAAS;EAC7C,OAAO;CACT;AACF;;;AChPA,IAAa,2BAAb,cAA8C,kBAAkB;CAC9D,UAAU,WAAW,SAAS,aAAa;EACzC,QAAQ,WAAR;GACE,KAAK,cACH,OAAO,KAAK,oBAAoB,SAAS,WAAW;GACtD,KAAK,SACH,OAAO,KAAK,eAAe,SAAS,WAAW;GACjD,KAAK,UACH,OAAO,KAAK,gBAAgB,SAAS,WAAW;GAClD,KAAK,OACH,OAAO,KAAK,aAAa,SAAS,WAAW;GAC/C,KAAK,QACH,OAAO,KAAK,cAAc,SAAS,WAAW;EAClD;CACF;AACF;;;ACbA,IAAM,qBAAqB,OAAO,oBAAoB;AACtD,IAAa,uBAAb,cAA0C,yBAAyB;CACjE,YAAY,GAAG,MAAM;EACnB,MAAM,GAAG,IAAI;EACb,KAAK,sBAAsB,CAAC;CAC9B;CACA,aAAa,iBAAiB,aAAa;EACzC,OAAO,KAAK,IAAI,KAAK,oBAAoB;GACvC,OAAO,YAAY,iBAAiB,WAAW;EACjD,CAAC;CACH;CACA,iBAAiB,iBAAiB,aAAa;EAC7C,IAAI,cAAc,KAAK,eAAe,CAAC,CAAC;EACxC,IAAI,CAAC,eAAe,YAAY,WAAW,GAAG,MAAM,IAAI,MAAM,4BAA4B;EAC1F,cAAc,KAAK,KAAK,qBAAqB,WAAW;EACxD,MAAM,eAAe,QAAQ,WAAW;EACxC,IAAI,CAAC,KAAK,mBAAmB,CAAC,eAAe;GAC3C,kBAAkB,OAAO,OAAO,CAAC,GAAG,iBAAiB,EACnD,YACF,CAAC;GACD,KAAK,mBAAmB,CAAC,gBAAgB,KAAK,aAAa,iBAAiB,WAAW;EACzF;EACA,OAAO,KAAK,mBAAmB,CAAC;CAClC;AACF;;;AC1BA,IAAa,iBAAb,cAAoC,qBAAqB,CAAC;;;ACD1D,IAAI;AAAM,IAAA;AAAO,IAAA;AAAO,IAAA;AAKxB,IAAW,iBAAiB,SAAO,KAAK,GAAG,UAAQ,QAAQ,GAAG,QAAQ,SAAa,EACjF,QAAQ,UACV,CAAC,GAAG,OAAK,WAAS,QAAM,WAAS,MAAM,WAAS,MAAM,sBAAsB,eAAe,CAAC,CAAC,KAAK,QAAM,KAAK,QAAM,KAAK;;;ACPxH,IAAI;AAAM,IAAA;AAAO,IAAA;AAMjB,IAAW,kBAAkB,SAAO,QAAQ,GAAG,UAAQ,SAAa,EAClE,QAAQ,UACV,CAAC,GAAG,OAAK,WAAS,QAAM,WAAS,MAAM,uBAAuB,SAAS;CACrE,YAAY,GAAG,MAAM;EACnB,MAAM,GAAG,IAAI;EACb,KAAK,eAAe,KAAK;EACzB,KAAK,eAAe,KAAK;CAC3B;CACA,IAAI,QAAQ;EACV,OAAO,KAAK,aAAa;CAC3B;CACA,UAAU;EACR,OAAO,KAAK,aAAa,QAAQ;CACnC;CACA,QAAQ,OAAO;EACb,OAAO,KAAK,aAAa,QAAQ,KAAK;CACxC;CACA,OAAO,QAAQ,SAAS;EACtB,KAAK,aAAa,OAAO,QAAQ,OAAO;CAC1C;CACA,UAAU,UAAU;EAClB,OAAO,KAAK,aAAa,UAAU,QAAQ;CAC7C;CACA,QAAQ;EACN,KAAK,aAAa,MAAM;CAC1B;CACA,MAAM,OAAO;EACX,KAAK,aAAa,MAAM,KAAK;CAC/B;CACA,aAAa,SAAS;EACpB,OAAO,KAAK,aAAa,aAAa,OAAO;CAC/C;CACA,MAAM,eAAe;EAEnB,MAAM,UAAU,WAAW,CAAC,GAAG,KAAK,MAAM,OAAO,kBAAkB,cAAc;EACjF,IAAI,QAAQ,IAAI,QAAQ;GACtB,QAAQ,YAAY,CAAC;GACrB,QAAQ,QAAQ,SAAS;EAC3B;EAEA,MAAM,aAAa,IAAI,WAAW;EAElC,MAAM,cAAc,KAAK,eAAe,IAAI,YAAY;GACtD,gBAAgB;GAChB;EACF,CAAC;EACD,KAAK,eAAe,IAAI,wBAAwB,aAAa,KAAK,IAAI,IAAI,OAAO;EAEjF,MAAM,wBAAwB,EAC5B,YACF;EACA,KAAK,IAAI,IAAI,IAAI,gBAAgB,qBAAqB;CACxD;CACA,MAAM,gBAAgB;EAEpB,IAAI,QAAQ,IAAI,QACd,KAAK,IAAI,KAAK,KAAK,QAAQ,YAAW,QAAO;GAC3C,IAAI,CAAC,KACH,KAAK,IAAI,KAAK,KAAK,WAAW,QAAQ,UAAU,KAAK,cAAc,EACjE,+BAA+B;IAC7B,OAAO;GACT,EACF,CAAC;GAEH,KAAK,cAAc,MAAM;EAC3B,CAAC;EAGH,IAAI,QAAQ,IAAI,UAAU,KAAK,IAAI,KAAK,KAAK,0BAA0B;GACrE,MAAM,QAAQ,KAAK,IAAI,KAAK,KAAK,WAAW;GAC5C,QAAQ,KAAK,cAAc,KAAK;GAChC,KAAK,aAAa,cAAc,OAAO,WAAW,CAAC,EAAA,CAAG,SAAQ,SAAQ;IACpE,MAAM,QAAQ,KAAK,aAAa,cAAc,CAAC,CAAC,IAAI,KAAK,SAAS;IAClE,OAAO,QAAQ,CAAC,KAAK,IAAI,CAAC;GAC5B,CAAC,CAAC;EACJ;CACF;AACF,CAAC,KAAK,QAAM,KAAK;;;AClFjB,IAAM,iBAAiB;CACrB,SAAS;EACP,OAAO;EACP,sBAAsB;EACtB,gBAAgB;EAChB,oBAAoB;EACpB,QAAQ;CACV;CACA,WAAW;EACT,qBAAqB,OAAO;GAC1B,IAAI,MAAM,MAAM,KAAK,cAAc,OAAO,OAAO;GAEjD,IAAI,OAAO,MAAM,MAAM,cAAc,YAAY,MAAM,MAAM,WAAW,MAAM,OAAO;GACrF,OAAO,4BAA4B,KAAK;EAC1C;EACA,wBAAwB,WAAW;GACjC,OAAO;EACT;CACF;AACF;AACA,IAAa,UAAS,SAAQ;CAC5B,OAAO;EACL,WAAW;GACT,QAAQ;IACN,QAAQ,KAAA;IAER,OAAO;IACP,IAAI;GACN;GACA,QAAQ,EACN,SAAS,CAAC,EACZ;GACA,kBAAkB;EACpB;EACA,OAAO,EACL,WAAW;GACT,OAAO;GACP,KAAK;EACP,EACF;EACA,mBAAmB,EACjB,eACF;CACF;AACF;;;ACzCA,IAAa,SAAb,cAA4B,WAAW;CACrC,YAAY,YAAY;EACtB,MAAM;EACN,KAAK,cAAc,KAAK;EACxB,KAAK,WAAW,KAAK;EACrB,KAAK,cAAc;CACrB;CACA,MAAM,aAAa;EACjB,IAAI,CAAC,KAAK,UACR,KAAK,WAAW,MAAM,KAAK,KAAK,SAAS,gBAAgB,KAAK;EAEhE,OAAO,KAAK;CACd;CACA,MAAM,gBAAgB;EAEpB,OAAM,MADgB,KAAK,WAAW,EAAA,CACxB,cAAc;CAC9B;CACA,MAAM,cAAc,SAAS,CAAC;CAC9B,MAAM,aAAa,QAAQ;EAEzB,IAAI,KAAK,gBAAgB,QAEvB,OAAM,MADgB,KAAK,WAAW,EAAA,CACxB,aAAa;CAE/B;CACA,MAAM,SAAS,MAAM,cAAc;EACjC,KAAK,eAAe,cAAc,qBAAqB;GACrD,YAAY;GACZ,cAAc;GACd,WAAW,KAAK;EAClB,CAAC;EACD,KAAK,eAAe,cAAc,gBAAgB;GAChD,YAAY;GACZ,cAAc;GACd,MAAM;IACJ,OAAO,QAAQ,eAAe,CAAC;GACjC;EACF,CAAC;CACH;AACF;;;;;AC3CA,IAAI;AAAM,IAAA;AAAO,IAAA;AA4BjB,IAAW,qBAAqB,OAAO,MAAM,GAAG,QAAQ,SAAa,EACnE,QAAQ,UACV,CAAC,GAAG,KAAK,SAAS,MAAM,SAAS,MAAM,0BAA0B,cAAc,CAAC,CAAC,KAAK,MAAM,KAAK;;;;AC7BjG,SAAgB,MAAM,SAAS;CAC7B,OAAO,oBAAoB,SAAS,OAAO,MAAM,OAAO;AAC1D;;;ACHA,SAAgB,eAAe,IAAI,SAAS;CAC1C,MAAM,QAAQ,GAAG;CACjB,IAAI,CAAC,OAAO;CACZ,IAAI,CAAC,QAAQ,KAAK,GAAG,OAAO,MAAM;CAClC,MAAW,SAAS;AACtB;AACA,eAAsB,kBAAkB,IAAI,SAAS;CACnD,MAAM,QAAQ,GAAG;CACjB,IAAI,CAAC,OAAO;CACZ,IAAI,CAAC,QAAQ,KAAK,GAAG,OAAO,MAAM;CAClC,MAAM,SAAS,MAAM,MAAM,SAAS;CACpC,IAAI,OAAO,OAAO,MAAM,OAAO;CAC/B,OAAO,OAAO;AAChB;AACA,eAAsB,mBAAmB,IAAI;CAC3C,OAAO,wBAAwB,EAAE;AACnC;AACA,eAAsB,qBAAqB,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK;CAC1E,IAAI,WAAW;EAAC,wBAAwB,GAAG;EAAG,wBAAwB,GAAG;EAAG,wBAAwB,GAAG;EAAG,wBAAwB,GAAG;EAAG,wBAAwB,GAAG;CAAC;CACpK,IAAI,IAAI,SAAS,GACf,WAAW,SAAS,OAAO,IAAI,KAAI,OAAM,wBAAwB,EAAE,CAAC,CAAC;CAEvE,OAAO,MAAM,QAAQ,IAAI,QAAQ;AACnC;AACA,eAAe,wBAAwB,IAAI;CACzC,IAAI,CAAC,IAAI;CACT,MAAM,QAAQ,GAAG;CACjB,IAAI,SAAS,MAAM,SAAS,KAAA,GAAW;EACrC,MAAM,SAAS,MAAM,MAAM,SAAS;EACpC,IAAI,OAAO,OAAO,MAAM,OAAO;CACjC;CACA,OAAO;AACT"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["refetchWithFetchOptions","_dec","_dec2","_class","__z_BeanInfo","_dec","_dec2","_class","__z_BeanInfo","__z_BeanInfo"],"sources":["../src/lib/queryRefetch.ts","../src/types/query.ts","../src/lib/persistenceQueue.ts","../src/.metadata/this.ts","../src/common/cookieWrapper.ts","../src/lib/modelPersistence.ts","../src/lib/queryPersister.ts","../src/bean/bean.model/bean.model.last.ts","../src/bean/bean.model/bean.model.persister.ts","../src/bean/bean.model/bean.model.local.ts","../src/bean/bean.model/bean.model.cookie.ts","../src/bean/bean.model/bean.model.query.ts","../src/bean/bean.model/bean.model.useQuery.ts","../src/bean/bean.model/bean.model.useState.ts","../src/bean/bean.model/bean.model.useStateGeneral.ts","../src/bean/bean.model/bean.model.useMutation.ts","../src/bean/bean.model/bean.model.first.ts","../src/bean/bean.modelBase.ts","../src/service/storage.ts","../src/config/config.ts","../src/monkey.ts","../src/.metadata/index.ts","../src/lib/model.ts","../src/lib/utils.ts"],"sourcesContent":["export function createQueryRefetch(refetch, getQuery) {\n return async refetchOptions => {\n const {\n bypassPersister,\n ...options\n } = refetchOptions ?? {};\n if (!bypassPersister) return refetch(options);\n const query = getQuery();\n // A cold query may already be fetching before its result is returned. Query.fetch\n // deduplicates that request before applying the new fetch metadata, so wait for it\n // before issuing the marked fetch.\n if (query && query.state.fetchStatus !== 'idle' && query.state.data === undefined) {\n await refetch({\n cancelRefetch: false\n });\n }\n\n // TanStack's public RefetchOptions does not expose the internal fetch metadata\n // forwarded by the installed QueryObserver implementation.\n const refetchWithFetchOptions = refetch;\n return await refetchWithFetchOptions({\n ...options,\n meta: {\n bypassPersister: true\n }\n });\n };\n}","import 'zova';\nexport function resolveStaleTime(staleTime, query) {\n return typeof staleTime === 'function' ? staleTime(query) : staleTime;\n}\nexport function resolveMaxAgeTime(maxAge, query) {\n return typeof maxAge === 'function' ? maxAge(query) : maxAge;\n}","export class PersistenceQueue {\n constructor() {\n this._tail = Promise.resolve();\n this._sequence = 0;\n this._failure = void 0;\n this._generation = 0;\n this._keyGenerations = new Map();\n }\n generation(key) {\n return `${this._generation}:${this._keyGenerations.get(key) ?? 0}`;\n }\n invalidate(key) {\n this._keyGenerations.set(key, (this._keyGenerations.get(key) ?? 0) + 1);\n }\n invalidateAll() {\n this._generation++;\n this._keyGenerations.clear();\n }\n enqueue(operation) {\n const sequence = ++this._sequence;\n const result = this._tail.then(operation);\n this._tail = result.catch(error => {\n this._failure ??= {\n sequence,\n error\n };\n });\n return result;\n }\n async flush() {\n const sequence = this._sequence;\n await this._tail;\n if (this._failure && this._failure.sequence <= sequence) {\n const {\n error\n } = this._failure;\n this._failure = undefined;\n throw error;\n }\n }\n}\nconst queues = new WeakMap();\nexport function getPersistenceQueue(storage) {\n let queue = queues.get(storage);\n if (!queue) {\n queue = new PersistenceQueue();\n queues.set(storage, queue);\n }\n return queue;\n}","export const __ThisModule__ = 'a-model';\nexport { ScopeModuleAModel as ScopeModule } from './index.ts';","import { BeanSimple } from 'zova';\nimport { __ThisModule__ } from '../.metadata/this.ts';\nimport { resolveMaxAgeTime } from '../types/index.ts';\nexport class CookieWrapper extends BeanSimple {\n constructor(...args) {\n super(...args);\n this.options = void 0;\n this.query = void 0;\n }\n __init__(options, query) {\n this.options = options;\n this.query = query;\n }\n getItem(key) {\n return this.app.meta.cookie.getItem(key);\n }\n setItem(key, value) {\n const configScope = this.bean.scope(__ThisModule__).config;\n const opts = {\n ...configScope.persister.cookie.options\n };\n let maxAge = resolveMaxAgeTime(this.options.maxAge, this.query);\n if (maxAge !== undefined) {\n if (maxAge === Infinity) maxAge = 1000 * 60 * 60 * 24 * 365;\n opts.expires = new Date(Date.now() + maxAge);\n }\n this.app.meta.cookie.setItem(key, value, opts);\n }\n removeItem(key) {\n this.app.meta.cookie.removeItem(key);\n }\n}","import { notifyManager } from '@tanstack/query-core';\nimport { markRaw, shallowRef } from 'vue';\nconst normalize = value => value == null ? null : String(value);\nexport function getModelPersistenceStorageKey(appName, scope, logicalKey) {\n return JSON.stringify(['zova-model-db', 1, appName, scope, logicalKey]);\n}\nexport function isModelPersistenceDb(options) {\n if (options === false) return false;\n const persister = options && typeof options === 'object' ? options : {};\n return (persister.storage ?? (persister.sync ? 'local' : 'db')) === 'db';\n}\nfunction emptyQueryState() {\n return {\n data: undefined,\n dataUpdateCount: 0,\n dataUpdatedAt: 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'pending',\n fetchStatus: 'idle'\n };\n}\n\n/** App-owned identity; independent of the module providing the current Passport. */\nexport class ModelPersistenceContext {\n constructor(_queryClient, siteId) {\n this._queryClient = _queryClient;\n this._epoch = 0;\n this._version = shallowRef(0);\n this._scope = void 0;\n this._registered = false;\n this._hydrated = new Set();\n this._listeners = new Set();\n // IoC owners can be reactive; do not let Vue unwrap this class's private refs\n // or proxy TanStack Query instances retained for hydration adoption.\n markRaw(this);\n this._scope = Object.freeze([null, normalize(siteId), null]);\n }\n get epoch() {\n void this._version.value;\n return this._epoch;\n }\n capture() {\n return Object.freeze({\n scope: this._scope,\n epoch: this.epoch\n });\n }\n current(token) {\n return token.epoch === this.epoch && token.scope === this._scope;\n }\n markHydrated(queries) {\n if (!this._registered) {\n for (const query of queries) this._hydrated.add(query);\n }\n }\n touch(query) {\n // A transferred Query that has since participated in DB work belongs to the\n // actual invocation scope, not the one-time hydration adoption baseline.\n if (query) this._hydrated.delete(query);\n }\n subscribe(listener) {\n this._listeners.add(listener);\n return () => this._listeners.delete(listener);\n }\n update(values, options = {}) {\n const scope = Object.freeze([normalize(values.instanceId), normalize(values.siteId), normalize(values.userId)]);\n const adopt = !this._registered && options.initial === true;\n this._registered = true;\n if (scope.every((value, index) => value === this._scope[index])) {\n this._hydrated.clear();\n return;\n }\n const affected = this._queryClient.getQueryCache().getAll().filter(query => isModelPersistenceDb(query.meta?.persister) && !(adopt && this._hydrated.has(query)));\n this._scope = scope;\n this._hydrated.clear();\n this._invalidate(affected);\n // Outgoing relogin/logout still resets immediately, but must not refetch\n // protected queries after their authentication has been removed.\n if (options.refetchActive === false) return;\n const token = this.capture();\n // The identity owner installs authentication before publishing this transition.\n // Defer refetch until all synchronous reset/listener work has finished.\n void Promise.resolve().then(() => {\n if (this.current(token)) {\n return this._queryClient.refetchQueries({\n type: 'active',\n predicate: query => affected.includes(query)\n });\n }\n });\n }\n clear() {\n this._hydrated.clear();\n this._invalidate(this._queryClient.getQueryCache().getAll());\n }\n _invalidate(queries) {\n this._epoch++;\n // Cancel every retryer before resetting any query. Silent + non-reverting avoids\n // the old fetch's asynchronous cancellation handler publishing an error/reset.\n for (const query of queries) void query.cancel({\n silent: true,\n revert: false\n });\n notifyManager.batch(() => {\n for (const query of queries) {\n query.setOptions({\n ...query.options,\n initialData: undefined,\n initialDataUpdatedAt: undefined\n });\n for (const observer of query.observers) {\n observer.setOptions({\n ...observer.options,\n initialData: undefined,\n initialDataUpdatedAt: undefined,\n placeholderData: undefined\n });\n }\n query.setState(emptyQueryState());\n }\n });\n this._version.value++;\n const token = this.capture();\n for (const listener of this._listeners) listener(token);\n }\n\n /** Keep later observer option reapplication from reinstalling an old identity. */\n guardOptions(options) {\n if (!isModelPersistenceDb(options.meta?.persister)) return options;\n const token = this.capture();\n const initialData = options.initialData;\n const initialDataUpdatedAt = options.initialDataUpdatedAt;\n const placeholderData = options.placeholderData;\n return {\n ...options,\n initialData: () => this.current(token) ? typeof initialData === 'function' ? initialData() : initialData : undefined,\n initialDataUpdatedAt: () => this.current(token) ? typeof initialDataUpdatedAt === 'function' ? initialDataUpdatedAt() : initialDataUpdatedAt : undefined,\n placeholderData: (...args) => this.current(token) ? typeof placeholderData === 'function' ? placeholderData(...args) : placeholderData : undefined\n };\n }\n}","// TanStack's FetchMeta is internal to the public QueryPersister call path.\n\nexport function createQueryPersister(persisterFn) {\n return (queryFn, context, query) => {\n if (query.state.fetchMeta?.bypassPersister === true) {\n return queryFn(context);\n }\n return persisterFn(queryFn, context, query);\n };\n}","import { BeanBase, cast } from 'zova';\nimport { __ThisModule__ } from '../../.metadata/this.ts';\nexport class BeanModelLast extends BeanBase {\n constructor(selector) {\n super();\n this.selector = void 0;\n if (this.$onionOptions?.enableSelector) {\n this.selector = selector ?? '';\n }\n }\n async __init__(_selector) {\n // do nothing\n }\n get $onionOptions() {\n return super.$onionOptions;\n }\n get self() {\n return cast(this);\n }\n get scopeSelf() {\n return this.bean.scope(__ThisModule__);\n }\n}","import { CancelledError, notifyManager } from '@tanstack/query-core';\nimport { experimental_createQueryPersister } from '@tanstack/query-persist-client-core';\nimport { hashKey } from '@tanstack/vue-query';\nimport localforage from 'localforage';\nimport { SymbolBeanFullName } from 'zova';\nimport { CookieWrapper } from '../../common/cookieWrapper.ts';\nimport { getModelPersistenceStorageKey } from '../../lib/modelPersistence.ts';\nimport { getPersistenceQueue } from '../../lib/persistenceQueue.ts';\nimport { createQueryPersister } from '../../lib/queryPersister.ts';\nimport { resolveMaxAgeTime } from '../../types/index.ts';\nimport { BeanModelLast } from './bean.model.last.ts';\nexport class BeanModelPersister extends BeanModelLast {\n constructor(...args) {\n super(...args);\n this._persisterRestoreErrors = new Set();\n }\n $persisterError(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n const options = this._adjustPersisterOptions(query?.meta?.persister);\n return !!options && this._persisterRestoreErrors.has(this._getPersisterStorageKey(options, query, queryKey));\n }\n _persisterLoad_inner(storedData, query, options) {\n if (!storedData) return {\n remove: false\n };\n const persistedQuery = options.deserialize ? options.deserialize(storedData, options.deserializeDefault) : options.deserializeDefault(storedData);\n if (persistedQuery.state.dataUpdatedAt) {\n const queryAge = Date.now() - persistedQuery.state.dataUpdatedAt;\n const expired = queryAge > (resolveMaxAgeTime(options.maxAge, query) ?? Infinity);\n const busted = persistedQuery.buster !== options.buster;\n if (!expired && !busted) {\n return {\n data: persistedQuery.state.data,\n remove: false,\n timestamps: {\n dataUpdatedAt: persistedQuery.state.dataUpdatedAt,\n errorUpdatedAt: persistedQuery.state.errorUpdatedAt\n }\n };\n }\n }\n return {\n remove: true\n };\n }\n $persisterLoad(queryKey) {\n const ctx = this.ctx;\n if (ctx?.disposed) return undefined;\n const persistence = this.$modelPersistence;\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return undefined;\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return undefined;\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return undefined;\n const token = persistence.capture();\n if (options.storage === 'db') persistence.touch(query);\n const storageKey = this._getPersisterStorageKey(options, query, undefined, token);\n this._persisterRestoreErrors.delete(storageKey);\n const queue = getPersistenceQueue(storage);\n const generation = queue.generation(storageKey);\n const current = () => !ctx?.disposed && generation === queue.generation(storageKey) && (options.storage !== 'db' || persistence.current(token));\n if (!options.sync) {\n return queue.enqueue(async () => {\n if (!current()) return undefined;\n const storedData = await storage.getItem(storageKey);\n if (!current()) return undefined;\n try {\n const result = this._persisterLoad_inner(storedData, query, options);\n if (!current()) return undefined;\n if (result.timestamps) query.setState(result.timestamps);\n if (result.remove) await storage.removeItem(storageKey);\n return current() ? result.data : undefined;\n } catch {\n if (!current()) return undefined;\n this._persisterRestoreErrors.add(storageKey);\n await storage.removeItem(storageKey);\n this._reportPersisterError('restore');\n return undefined;\n }\n }).catch(() => {\n if (current()) {\n this._persisterRestoreErrors.add(storageKey);\n this._reportPersisterError('restore');\n }\n return undefined;\n });\n }\n try {\n const result = this._persisterLoad_inner(storage.getItem(storageKey), query, options);\n if (result.timestamps) query.setState(result.timestamps);\n if (result.remove) storage.removeItem(storageKey);\n return result.data;\n } catch {\n this._persisterRestoreErrors.add(storageKey);\n this._reportPersisterError('restore');\n try {\n storage.removeItem(storageKey);\n } catch {\n this._reportPersisterError('remove');\n }\n }\n }\n $persisterGeneration(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n const options = this._adjustPersisterOptions(query?.meta?.persister);\n if (!options) return '';\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return '';\n const storageKey = this._getPersisterStorageKey(options, query, queryKey);\n return `${options.storage === 'db' ? this.$modelPersistence.epoch : ''}:${storageKey}:${getPersistenceQueue(storage).generation(storageKey)}`;\n }\n $persisterSave(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return Promise.resolve();\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return Promise.resolve();\n return this._persisterSave(query, options);\n }\n $persisterSaveTo(queryKey, storageTarget, value) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) {\n if (process.env.DEV) console.warn('Cannot save persisted query because it was not found', queryKey);\n return;\n }\n const persister = query.meta?.persister && typeof query.meta.persister === 'object' ? query.meta.persister : {};\n const options = this._adjustPersisterOptions({\n ...persister,\n storage: storageTarget,\n sync: true,\n serializeDefault: obj => storageTarget === 'cookie' ? String(obj?.state?.data ?? '') : JSON.stringify(obj?.state?.data)\n });\n if (options) this._persisterSave(query, options, value);\n }\n _serializePersister(query, options, value) {\n const params = {\n state: value === undefined ? query.state : {\n ...query.state,\n data: value\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n buster: options.buster\n };\n return options.serialize ? options.serialize(params, options.serializeDefault) : options.serializeDefault(params);\n }\n _persisterSave(query, options, value) {\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return Promise.resolve();\n if (options.storage === 'db') this.$modelPersistence.touch(query);\n const storageKey = this._getPersisterStorageKey(options, query);\n const queue = getPersistenceQueue(storage);\n queue.invalidate(storageKey);\n let data;\n try {\n data = this._serializePersister(query, options, value);\n } catch (error) {\n return this._handlePersisterOperation(queue.enqueue(() => {\n throw error;\n }), 'save');\n }\n if (options.sync === true && options.storage !== 'db') {\n try {\n storage.setItem(storageKey, data);\n return Promise.resolve();\n } catch (error) {\n return this._handlePersisterOperation(Promise.reject(error), 'save');\n }\n }\n // Accepted explicit writes keep their captured physical identity. The shared\n // queue orders them before a later remove or full-store clear.\n return this._handlePersisterOperation(queue.enqueue(async () => {\n await storage.setItem(storageKey, data);\n }), 'save');\n }\n $persisterRemove(queryKey, persister) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query && !persister) return Promise.resolve();\n const options = this._adjustPersisterOptions(persister ?? query?.meta?.persister);\n if (!options) return Promise.resolve();\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return Promise.resolve();\n if (options.storage === 'db') this.$modelPersistence.touch(query);\n const storageKey = this._getPersisterStorageKey(options, query, queryKey);\n const queue = getPersistenceQueue(storage);\n queue.invalidate(storageKey);\n if (options.sync === true && options.storage !== 'db') {\n try {\n storage.removeItem(storageKey);\n return Promise.resolve();\n } catch (error) {\n return this._handlePersisterOperation(Promise.reject(error), 'remove');\n }\n }\n return this._handlePersisterOperation(queue.enqueue(async () => {\n await storage.removeItem(storageKey);\n }), 'remove');\n }\n async $persisterFlush() {\n if (process.env.SERVER) return;\n await getPersistenceQueue(localforage).flush();\n }\n _handlePersisterOperation(operation, action) {\n operation.catch(() => this._reportPersisterError(action));\n return operation;\n }\n _reportPersisterError(action) {\n if (process.env.DEV) console.warn(`Encountered an error attempting to ${action} persisted query cache.`);\n }\n _createPersister(options) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n if (options.storage === 'db') return this._createDbPersister(options);\n const storage = this._getPersisterStorage(options);\n const persisterOptions = options;\n return createQueryPersister((queryFn, context, query) => {\n const queue = storage ? getPersistenceQueue(storage) : undefined;\n const storageKey = `${persisterOptions.prefix}-${query.queryHash}`;\n const generation = queue?.generation(storageKey);\n const current = () => generation === queue?.generation(storageKey);\n const orderedStorage = storage && queue && !persisterOptions.sync ? {\n getItem: key => queue.enqueue(() => current() ? storage.getItem(key) : undefined),\n setItem: (key, data) => this._handlePersisterOperation(queue.enqueue(async () => {\n if (current()) await storage.setItem(key, data);\n }), 'save'),\n removeItem: key => this._handlePersisterOperation(queue.enqueue(async () => {\n if (current()) await storage.removeItem(key);\n }), 'remove')\n } : storage;\n return experimental_createQueryPersister({\n storage: orderedStorage,\n maxAge: persisterOptions.maxAge,\n refetchOnRestore: persisterOptions.refetchOnRestore,\n prefix: persisterOptions.prefix,\n buster: persisterOptions.buster\n }).persisterFn(queryFn, context, query);\n });\n }\n _createDbPersister(options) {\n const ctx = this.ctx;\n const persistence = this.$modelPersistence;\n // Do not use the upstream persister here: its deferred timestamp/refetch/save\n // callbacks can run after a scope transition or owner disposal.\n return async (queryFn, context, query) => {\n if (ctx?.disposed) throw new CancelledError({\n silent: true,\n revert: false\n });\n persistence.touch(query);\n const token = persistence.capture();\n const storage = this._getPersisterStorage(options, query);\n const queue = storage && getPersistenceQueue(storage);\n const storageKey = this._getPersisterStorageKey(options, query, undefined, token);\n const generation = queue?.generation(storageKey);\n const current = () => !ctx?.disposed && persistence.current(token) && generation === queue?.generation(storageKey);\n const assertCurrent = () => {\n if (!current()) throw new CancelledError({\n silent: true,\n revert: false\n });\n };\n const bypass = query.state.fetchMeta?.bypassPersister === true;\n if (!bypass && storage && queue && query.state.data === undefined) {\n this._persisterRestoreErrors.delete(storageKey);\n const restored = await queue.enqueue(async () => {\n if (!current()) return undefined;\n try {\n const storedData = await storage.getItem(storageKey);\n if (!current()) return undefined;\n const result = this._persisterLoad_inner(storedData, query, options);\n if (!current()) return undefined;\n if (result.remove) await storage.removeItem(storageKey);\n return current() ? result : undefined;\n } catch {\n if (current()) {\n this._persisterRestoreErrors.add(storageKey);\n await storage.removeItem(storageKey);\n this._reportPersisterError('restore');\n }\n return undefined;\n }\n }).catch(() => {\n if (current()) {\n this._persisterRestoreErrors.add(storageKey);\n this._reportPersisterError('restore');\n }\n return undefined;\n });\n assertCurrent();\n if (restored?.data !== undefined) {\n notifyManager.schedule(() => {\n if (!current()) return;\n if (restored.timestamps) query.setState(restored.timestamps);\n if (options.refetchOnRestore === 'always' || options.refetchOnRestore === true && query.isStale()) {\n void query.fetch().catch(() => undefined);\n }\n });\n return restored.data;\n }\n }\n assertCurrent();\n let result;\n try {\n result = await queryFn(context);\n } catch (error) {\n assertCurrent();\n throw error;\n }\n assertCurrent();\n if (!bypass && storage && queue) {\n notifyManager.schedule(() => {\n if (!current()) return;\n let data;\n try {\n data = this._serializePersister(query, options, result);\n } catch (error) {\n this._handlePersisterOperation(queue.enqueue(() => {\n throw error;\n }), 'save');\n return;\n }\n this._handlePersisterOperation(queue.enqueue(async () => {\n if (current()) await storage.setItem(storageKey, data);\n }), 'save');\n });\n }\n return result;\n };\n }\n _adjustPersisterOptions(options) {\n if (options === false) return undefined;\n options = options === undefined || options === true ? {} : {\n ...options\n };\n options.storage = options.storage ?? (options.sync ? 'local' : 'db');\n // DB storage is always asynchronous, including custom explicitly synced options.\n if (options.storage === 'db') options.sync = false;\n options.maxAge = options.maxAge ?? this.scopeSelf.config.persister.maxAge[options.storage];\n options.refetchOnRestore = options.refetchOnRestore ?? this.scopeSelf.config.persister.refetchOnRestore;\n options.prefix = options.prefix ?? this._getPersisterPrefix();\n options.buster = options.buster ?? this._getPersisterBuster();\n options.serializeDefault = options.serializeDefault ?? JSON.stringify;\n options.deserializeDefault = options.deserializeDefault ?? JSON.parse;\n return options;\n }\n _getPersisterStorageKey(options, query, queryKey, token) {\n const key = query?.queryKey ?? this._forceQueryKeyPrefix(queryKey);\n const logicalKey = options.storageKeySimplify ? String(key[key.length - 1]) : `${options.prefix}-${query?.queryHash ?? hashKey(key)}`;\n return options.storage === 'db' ? getModelPersistenceStorageKey(this.sys.env.APP_NAME ?? '', (token ?? this.$modelPersistence.capture()).scope, logicalKey) : logicalKey;\n }\n _getPersisterStorage(options, query) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n if (options.storage === 'cookie') return this.bean._newBeanSimple(CookieWrapper, false, options, query);\n if (process.env.SERVER) return undefined;\n if (options.storage === 'local') return localStorage;\n if (options.storage === 'db') return localforage;\n }\n _getPersisterPrefix() {\n return `${this.sys.env.APP_NAME}-query`;\n }\n _getPersisterBuster() {\n return this.sys.env.APP_VERSION;\n }\n _forceQueryKeyPrefix(queryKey) {\n if (!queryKey) queryKey = [];\n if (!this._prefixIsBeanFullName(queryKey[0])) {\n const prefixes = [this[SymbolBeanFullName]];\n if (this.$onionOptions?.enableSelector) prefixes.push(this.selector);\n queryKey = prefixes.concat(queryKey);\n }\n return queryKey;\n }\n _prefixIsBeanFullName(prefix) {\n return prefix === this[SymbolBeanFullName];\n }\n}","import { BeanModelPersister } from './bean.model.persister.ts';\nexport class BeanModelLocal extends BeanModelPersister {\n $serializeLocal(obj) {\n return JSON.stringify(obj?.state?.data);\n }\n $deserializeLocal(value) {\n return {\n state: {\n data: value ? JSON.parse(value) : undefined,\n dataUpdateCount: 0,\n dataUpdatedAt: Date.now(),\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'success',\n fetchStatus: 'idle'\n },\n queryKey: undefined,\n queryHash: undefined,\n buster: this._getPersisterBuster()\n };\n }\n}","import { BeanModelLocal } from './bean.model.local.ts';\nexport class BeanModelCookie extends BeanModelLocal {\n $serializeCookie(obj) {\n return String(obj?.state?.data ?? '');\n }\n $deserializeCookie(value) {\n return {\n state: {\n data: value,\n dataUpdateCount: 0,\n dataUpdatedAt: Date.now(),\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'success',\n fetchStatus: 'idle'\n },\n queryKey: undefined,\n queryHash: undefined,\n buster: this._getPersisterBuster()\n };\n }\n _cookieCoerce(value, cookieType) {\n if (value === undefined || value === '') return undefined; // string of '' means should delete the cookie\n if (!cookieType || cookieType === 'auto') {\n return value === 'true' ? true : value === 'false' ? false : value;\n } else if (cookieType === 'boolean') {\n return value === 'true' ? true : value === 'false' ? false : Boolean(Number(value));\n } else if (cookieType === 'number') {\n return Number(value);\n } else if (cookieType === 'date') {\n return new Date(value);\n } else if (cookieType === 'string') {\n return value;\n }\n return value;\n }\n}","import localforage from 'localforage';\nimport { cast } from 'zova';\nimport { getPersistenceQueue } from '../../lib/persistenceQueue.ts';\nimport { BeanModelCookie } from './bean.model.cookie.ts';\nexport class BeanModelQuery extends BeanModelCookie {\n $setQueryData(queryKey, updater, persisterSave, options) {\n queryKey = this._forceQueryKeyPrefix(queryKey);\n const data = this.$queryClient.setQueryData(queryKey, updater, options);\n if (data === undefined) {\n if (persisterSave) {\n this.$persisterRemove(queryKey);\n }\n this.$setQueryDataDirect(queryKey, data);\n } else {\n if (persisterSave) {\n this.$persisterSave(queryKey);\n }\n }\n return data;\n }\n $queryFind(filters) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.getQueryCache().find(filters);\n }\n $invalidateQueries(filters, options) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.invalidateQueries(filters, options);\n }\n $refetchQueries(filters, options) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.refetchQueries(filters, options);\n }\n $setQueryDataDirect(queryKey, value) {\n const query = this.$queryFind({\n queryKey,\n exact: true\n });\n query?.setData(value);\n }\n async $clear() {\n const queue = getPersistenceQueue(localforage);\n // Invalidate in-flight restores and scheduled persisters before clearing memory.\n queue.invalidateAll();\n const clear = process.env.SERVER ? Promise.resolve() : queue.enqueue(async () => {\n await localforage.clear();\n });\n this.$modelPersistence.clear();\n await clear;\n }\n $normalizeFilters(filters) {\n if (!filters) filters = {};\n const queryKey = this._forceQueryKeyPrefix(cast(filters).queryKey);\n return {\n ...filters,\n queryKey\n };\n }\n}","import { useQuery } from '@tanstack/vue-query';\nimport { createQueryRefetch } from '../../lib/queryRefetch.ts';\nimport { resolveStaleTime } from '../../types/index.ts';\nimport { BeanModelQuery } from './bean.model.query.ts';\nexport class BeanModelUseQuery extends BeanModelQuery {\n $useQuery(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const persister = this._createPersister(options.meta?.persister);\n options = this.$modelPersistence.guardOptions(Object.assign({}, options, {\n queryKey,\n persister\n }));\n // staleTime\n const sync = typeof options.meta?.persister === 'object' && options.meta?.persister?.sync;\n if (sync !== true) {\n const staleTime = options.staleTime ?? this.scopeSelf.config.query.staleTime.async;\n const queryCache = this.$queryFind({\n queryKey\n });\n const queryCacheExists = queryCache?.state.data !== undefined;\n options.staleTime = query => {\n if (!queryCacheExists) return resolveStaleTime(0, query);\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n return resolveStaleTime(this.scopeSelf.config.query.staleTime.ssr, query);\n }\n return resolveStaleTime(staleTime, query);\n };\n }\n return this.ctx.util.instanceScope(() => {\n const query = useQuery(options, queryClient);\n query.refetch = createQueryRefetch(query.refetch, () => this.$queryFind({\n queryKey\n }));\n return query;\n });\n }\n}","import { hashKey } from '@tanstack/vue-query';\nimport { deepExtend } from 'zova';\nimport { BeanModelUseQuery } from './bean.model.useQuery.ts';\nconst SymbolUseQueries = Symbol('SymbolUseQueries');\nconst SymbolUseComputeds = Symbol('SymbolUseComputeds');\nexport class BeanModelUseState extends BeanModelUseQuery {\n constructor(...args) {\n super(...args);\n this[SymbolUseQueries] = {};\n this[SymbolUseComputeds] = {};\n }\n async $ensureStateLocalAsync(state) {\n return await state;\n }\n $useStateLocalAsync(options, queryClient) {\n options = deepExtend({\n meta: {\n maxAge: this.scopeSelf.config.persister.maxAge.local\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n ssr: {\n dehydrate: false\n },\n persister: {\n storage: 'db',\n sync: false\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleAsyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n }\n $useStateLocal(options, queryClient) {\n options = deepExtend({\n meta: {\n persister: {\n serializeDefault: obj => {\n return this.$serializeLocal(obj);\n },\n deserializeDefault: value => {\n return this.$deserializeLocal(value);\n },\n storageKeySimplify: true\n }\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: {\n storage: 'local',\n sync: true\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, true);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, true, value);\n // },\n // });\n }\n $useStateCookie(options, queryClient) {\n options = deepExtend({\n meta: {\n persister: {\n serializeDefault: obj => {\n return this.$serializeCookie(obj);\n },\n deserializeDefault: value => {\n const cookieType = options.meta.persister.cookieType;\n return this.$deserializeCookie(this._cookieCoerce(value, cookieType));\n },\n storageKeySimplify: true\n }\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: {\n storage: 'cookie',\n sync: true\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, true);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, true, value);\n // },\n // });\n }\n $useStateMem(options, queryClient) {\n options = deepExtend({}, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: false\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, false);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, false, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, false);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, false, value);\n // },\n // });\n }\n $useStateComputed(options) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const queryHash = hashKey(queryKey);\n if (!this[SymbolUseComputeds][queryHash]) {\n this[SymbolUseComputeds][queryHash] = this.$computed(options.queryFn, options.debugOptions);\n }\n return this[SymbolUseComputeds][queryHash];\n }\n $useStateData(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const queryHash = hashKey(queryKey);\n if (!this[SymbolUseQueries][queryHash]) {\n const useQuery = this.$useQuery(options, queryClient);\n this[SymbolUseQueries][queryHash] = useQuery;\n if (!options.meta?.disableSuspenseOnInit) {\n useQuery.suspense();\n }\n }\n return this[SymbolUseQueries][queryHash];\n }\n _handleAsyncDataGet(options, queryClient, persister) {\n if (this.ctx?.disposed) return undefined;\n // Track the context even when the disabled Query already contains data.\n // A scope switch must invalidate the custom-ref consumer synchronously.\n void this.$modelPersistence.epoch;\n const query = this.$useStateData(options, queryClient);\n if (query.data !== undefined) return query.data;\n return this._handleAsyncDataGet_inner(options, queryClient, persister);\n }\n async _handleAsyncDataGet_inner(options, queryClient, persister) {\n const ctx = this.ctx;\n if (ctx?.disposed) return undefined;\n const persistence = this.$modelPersistence;\n const queryKey = options.queryKey;\n const token = persistence.capture();\n const query = this.$useStateData(options, queryClient);\n if (persister) {\n const generation = this.$persisterGeneration(queryKey);\n const data = await this.$persisterLoad(queryKey);\n if (ctx?.disposed || !persistence.current(token) || generation !== this.$persisterGeneration(queryKey)) {\n return undefined;\n }\n if (data !== undefined && query.data === undefined) {\n this.$setQueryData(queryKey, data, false);\n }\n }\n if (query.data === undefined) {\n this._handleSyncDataGet_defaultData(queryKey, options);\n }\n return query.data;\n }\n _handleSyncDataGet(options, queryClient, persister) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n if (query.data !== undefined) return query.data;\n if (persister) {\n const data = this.$persisterLoad(queryKey);\n if (data !== undefined) {\n this.$setQueryData(queryKey, data, false);\n }\n }\n if (query.data === undefined) {\n this._handleSyncDataGet_defaultData(queryKey, options);\n }\n return query.data;\n }\n _handleSyncDataGet_defaultData(queryKey, options) {\n let defaultData = options.meta?.defaultData;\n if (typeof defaultData === 'function') {\n defaultData = defaultData();\n }\n if (defaultData !== undefined) {\n // need not persister save\n this.$setQueryData(queryKey, defaultData, false);\n }\n }\n _handleSyncDataSet(options, queryClient, persister, value) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n this.$setQueryData(queryKey, value, persister);\n return query;\n }\n}","import { BeanModelUseState } from './bean.model.useState.ts';\nexport class BeanModelUseStateGeneral extends BeanModelUseState {\n $useState(stateType, options, queryClient) {\n switch (stateType) {\n case 'localAsync':\n return this.$useStateLocalAsync(options, queryClient);\n case 'local':\n return this.$useStateLocal(options, queryClient);\n case 'cookie':\n return this.$useStateCookie(options, queryClient);\n case 'mem':\n return this.$useStateMem(options, queryClient);\n case 'data':\n return this.$useStateData(options, queryClient);\n }\n }\n}","import { hashKey, useMutation } from '@tanstack/vue-query';\nimport { cast } from 'zova';\nimport { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.ts';\nconst SymbolUseMutations = Symbol('SymbolUseMutations');\nexport class BeanModelUseMutation extends BeanModelUseStateGeneral {\n constructor(...args) {\n super(...args);\n this[SymbolUseMutations] = {};\n }\n $useMutation(mutationOptions, queryClient) {\n return this.ctx.util.instanceScope(() => {\n return useMutation(mutationOptions, queryClient);\n });\n }\n $useMutationData(mutationOptions, queryClient) {\n let mutationKey = cast(mutationOptions).mutationKey;\n if (!mutationKey || mutationKey.length === 0) throw new Error('should specify mutationKey');\n mutationKey = this.self._forceQueryKeyPrefix(mutationKey);\n const mutationHash = hashKey(mutationKey);\n if (!this[SymbolUseMutations][mutationHash]) {\n mutationOptions = Object.assign({}, mutationOptions, {\n mutationKey\n });\n this[SymbolUseMutations][mutationHash] = this.$useMutation(mutationOptions, queryClient);\n }\n return this[SymbolUseMutations][mutationHash];\n }\n}","import { BeanModelUseMutation } from './bean.model.useMutation.ts';\nexport class BeanModelFirst extends BeanModelUseMutation {}","var _dec, _dec2, _dec3, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { Virtual } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\nimport { BeanModelFirst } from './bean.model/bean.model.first.ts';\nexport let BeanModelBase = (_dec = Bean(), _dec2 = Virtual(), _dec3 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = _dec3(_class = class BeanModelBase extends BeanModelFirst {}) || _class) || _class) || _class);","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { dehydrate, hydrate, QueryCache, QueryClient, VueQueryPlugin } from '@tanstack/vue-query';\nimport { BeanBase, deepExtend } from 'zova';\nimport { Service } from 'zova-module-a-bean';\nimport { ModelPersistenceContext } from '../lib/modelPersistence.ts';\nexport let ServiceStorage = (_dec = Service(), _dec2 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = class ServiceStorage extends BeanBase {\n constructor(...args) {\n super(...args);\n this._queryClient = void 0;\n this._persistence = void 0;\n }\n get epoch() {\n return this._persistence.epoch;\n }\n capture() {\n return this._persistence.capture();\n }\n current(token) {\n return this._persistence.current(token);\n }\n update(values, options) {\n this._persistence.update(values, options);\n }\n subscribe(listener) {\n return this._persistence.subscribe(listener);\n }\n clear() {\n this._persistence.clear();\n }\n touch(query) {\n this._persistence.touch(query);\n }\n guardOptions(options) {\n return this._persistence.guardOptions(options);\n }\n async moduleLoaded() {\n // options\n const options = deepExtend({}, this.scope.config.queryClientConfig.defaultOptions);\n if (process.env.SERVER) {\n options.queries ??= {};\n options.queries.gcTime = Infinity;\n }\n // queryCache\n const queryCache = new QueryCache();\n // queryClient\n const queryClient = this._queryClient = new QueryClient({\n defaultOptions: options,\n queryCache\n });\n this._persistence = new ModelPersistenceContext(queryClient, this.sys.env.SITE_ID);\n // use plugin\n const vueQueryPluginOptions = {\n queryClient\n };\n this.app.vue.use(VueQueryPlugin, vueQueryPluginOptions);\n }\n async appInitialize() {\n // onRendered\n if (process.env.SERVER) {\n this.ctx.meta.$ssr.context.onRendered(err => {\n if (!err) {\n this.ctx.meta.$ssr.stateDefer.query = dehydrate(this._queryClient, {\n shouldDehydrateMutation: () => {\n return false;\n }\n });\n }\n this._queryClient?.clear();\n });\n }\n // client\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n const state = this.ctx.meta.$ssr.stateDefer.query;\n hydrate(this._queryClient, state);\n this._persistence.markHydrated((state?.queries ?? []).flatMap(item => {\n const query = this._queryClient.getQueryCache().get(item.queryHash);\n return query ? [query] : [];\n }));\n }\n }\n}) || _class) || _class);","import { defaultShouldDehydrateQuery } from '@tanstack/vue-query';\nconst defaultOptions = {\n queries: {\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: true,\n gcTime: 1000 * 60 * 5\n },\n dehydrate: {\n shouldDehydrateQuery(query) {\n if (query.meta?.ssr?.dehydrate === false) return false;\n // mem query return true, because mem persister is false\n if (typeof query.meta?.persister === 'object' && query.meta?.persister?.sync) return false;\n return defaultShouldDehydrateQuery(query);\n },\n shouldDehydrateMutation(_mutation) {\n return false;\n }\n }\n};\nexport const config = _sys => {\n return {\n persister: {\n maxAge: {\n cookie: undefined,\n // undefined: session cookie\n local: Infinity,\n db: 1000 * 60 * 60 * 24 // 24 hours\n },\n cookie: {\n options: {}\n },\n refetchOnRestore: true\n },\n query: {\n staleTime: {\n async: 0,\n ssr: Infinity\n }\n },\n queryClientConfig: {\n defaultOptions\n }\n };\n};","import { useQueryClient } from '@tanstack/vue-query';\nimport { markRaw } from 'vue';\nimport { BeanSimple } from 'zova';\nimport { ServiceStorage } from './service/storage.ts';\nexport class Monkey extends BeanSimple {\n constructor(moduleSelf) {\n super();\n this._moduleSelf = void 0;\n this._storage = void 0;\n this._moduleSelf = moduleSelf;\n }\n async getStorage() {\n if (!this._storage) {\n this._storage = await this.bean._newBean(ServiceStorage, false);\n }\n return this._storage;\n }\n async appInitialize() {\n const storage = await this.getStorage();\n await storage.appInitialize();\n }\n async moduleLoading(_module) {}\n async moduleLoaded(module) {\n // self\n if (this._moduleSelf === module) {\n const storage = await this.getStorage();\n await storage.moduleLoaded();\n }\n }\n async beanInit(bean, beanInstance) {\n bean.defineProperty(beanInstance, '$modelPersistence', {\n enumerable: false,\n configurable: true,\n get: () => this._storage\n });\n bean.defineProperty(beanInstance, '$queryClient', {\n enumerable: false,\n configurable: true,\n get() {\n return markRaw(useQueryClient());\n }\n });\n }\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** bean: begin */\nexport * from '../bean/bean.modelBase.ts';\nimport 'zova';\n/** bean: end */\n/** bean: begin */\n\nimport 'zova';\n/** bean: end */\n/** service: begin */\nexport * from '../service/storage.ts';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\n\nimport 'zova';\n/** service: end */\n/** config: begin */\nexport * from '../config/config.ts';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.ts';\n/** monkey: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleAModel = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = class ScopeModuleAModel extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import { createBeanDecorator } from 'zova';\nexport function Model(options) {\n return createBeanDecorator('model', 'ctx', true, options);\n}","export function $QueryGetFresh(fn, isStale) {\n const query = fn();\n if (!query) return;\n if (!isStale(query)) return query.data;\n void query.suspense();\n}\nexport async function $QueryEnsureFresh(fn, isStale) {\n const query = fn();\n if (!query) return;\n if (!isStale(query)) return query.data;\n const result = await query.suspense();\n if (result.error) throw result.error;\n return result.data;\n}\nexport async function $QueryEnsureLoaded(fn) {\n return _QueryEnsureLoadedInner(fn);\n}\nexport async function $QueriesEnsureLoaded(fn1, fn2, fn3, fn4, fn5, ...fns) {\n let promises = [_QueryEnsureLoadedInner(fn1), _QueryEnsureLoadedInner(fn2), _QueryEnsureLoadedInner(fn3), _QueryEnsureLoadedInner(fn4), _QueryEnsureLoadedInner(fn5)];\n if (fns.length > 0) {\n promises = promises.concat(fns.map(fn => _QueryEnsureLoadedInner(fn)));\n }\n return await Promise.all(promises);\n}\nasync function _QueryEnsureLoadedInner(fn) {\n if (!fn) return;\n const query = fn();\n if (query && query.data === undefined) {\n const result = await query.suspense();\n if (result.error) throw result.error;\n }\n return query;\n}"],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './model.
|
|
2
|
-
export * from './modelPersistence.
|
|
3
|
-
export * from './utils.
|
|
1
|
+
export * from './model.ts';
|
|
2
|
+
export * from './modelPersistence.ts';
|
|
3
|
+
export * from './utils.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/lib/model.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Query, RefetchOptions } from '@tanstack/query-core';
|
|
2
|
-
import type { QueryRefetchOptions } from '../types/query.
|
|
2
|
+
import type { QueryRefetchOptions } from '../types/query.ts';
|
|
3
3
|
type QueryRefetch<TResult> = (options?: RefetchOptions) => Promise<TResult>;
|
|
4
4
|
export declare function createQueryRefetch<TResult>(refetch: QueryRefetch<TResult>, getQuery: () => Query | undefined): (options?: QueryRefetchOptions) => Promise<TResult>;
|
|
5
5
|
export {};
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DataQuery } from '../types/query.
|
|
1
|
+
import type { DataQuery } from '../types/query.ts';
|
|
2
2
|
export type TypeQueryEnsureLoadedFn<TData, TError = Error | null> = () => DataQuery<TData, TError> | undefined;
|
|
3
3
|
export type TypeQueryIsStaleFn<TData, TError = Error | null> = (query: DataQuery<TData, TError>) => boolean;
|
|
4
4
|
export declare function $QueryGetFresh<TData = any, TError = Error | null>(fn: TypeQueryEnsureLoadedFn<TData, TError>, isStale: TypeQueryIsStaleFn<TData, TError>): TData | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Query } from '@tanstack/vue-query';
|
|
2
2
|
import { BeanBase } from 'zova';
|
|
3
|
-
import type { ModelPersistenceToken, ModelPersistenceValues } from '../lib/modelPersistence.
|
|
4
|
-
import { ModelPersistenceContext } from '../lib/modelPersistence.
|
|
3
|
+
import type { ModelPersistenceToken, ModelPersistenceValues } from '../lib/modelPersistence.ts';
|
|
4
|
+
import { ModelPersistenceContext } from '../lib/modelPersistence.ts';
|
|
5
5
|
export declare class ServiceStorage extends BeanBase {
|
|
6
6
|
private _queryClient;
|
|
7
7
|
private _persistence;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './model.
|
|
2
|
-
export * from './query.
|
|
1
|
+
export * from './model.ts';
|
|
2
|
+
export * from './query.ts';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/types/query.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DefaultError, DehydratedState, Query, QueryKey, QueryObserverResult, RefetchOptions, UseQueryDefinedReturnType as TanStackUseQueryDefinedReturnType, UseQueryReturnType as TanStackUseQueryReturnType, useMutation, useQueryClient } from '@tanstack/vue-query';
|
|
2
2
|
import type { DebuggerOptions, UnwrapNestedRefs } from 'vue';
|
|
3
|
-
import type { ServiceStorage } from '../service/storage.
|
|
3
|
+
import type { ServiceStorage } from '../service/storage.ts';
|
|
4
4
|
import 'zova';
|
|
5
5
|
declare module 'zova' {
|
|
6
6
|
interface BeanBase {
|
package/package.json
CHANGED
package/src/.metadata/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// eslint-disable
|
|
2
2
|
/** bean: begin */
|
|
3
|
-
export * from '../bean/bean.modelBase.
|
|
3
|
+
export * from '../bean/bean.modelBase.ts';
|
|
4
4
|
|
|
5
5
|
import 'zova';
|
|
6
6
|
declare module 'zova' {
|
|
@@ -12,7 +12,7 @@ declare module 'zova-module-a-model' {
|
|
|
12
12
|
}
|
|
13
13
|
/** bean: end */
|
|
14
14
|
/** bean: begin */
|
|
15
|
-
import { BeanModelBase } from '../bean/bean.modelBase.
|
|
15
|
+
import type { BeanModelBase } from '../bean/bean.modelBase.ts';
|
|
16
16
|
import 'zova';
|
|
17
17
|
declare module 'zova' {
|
|
18
18
|
export interface IBeanRecordGeneral {
|
|
@@ -21,7 +21,7 @@ declare module 'zova' {
|
|
|
21
21
|
}
|
|
22
22
|
/** bean: end */
|
|
23
23
|
/** service: begin */
|
|
24
|
-
export * from '../service/storage.
|
|
24
|
+
export * from '../service/storage.ts';
|
|
25
25
|
|
|
26
26
|
import 'zova-module-a-bean';
|
|
27
27
|
declare module 'zova-module-a-bean' {
|
|
@@ -47,7 +47,7 @@ declare module 'zova-module-a-model' {
|
|
|
47
47
|
}
|
|
48
48
|
/** service: end */
|
|
49
49
|
/** service: begin */
|
|
50
|
-
import { ServiceStorage } from '../service/storage.
|
|
50
|
+
import type { ServiceStorage } from '../service/storage.ts';
|
|
51
51
|
import 'zova';
|
|
52
52
|
declare module 'zova' {
|
|
53
53
|
export interface IBeanRecordGeneral {
|
|
@@ -56,11 +56,11 @@ declare module 'zova' {
|
|
|
56
56
|
}
|
|
57
57
|
/** service: end */
|
|
58
58
|
/** config: begin */
|
|
59
|
-
export * from '../config/config.
|
|
60
|
-
import { config } from '../config/config.
|
|
59
|
+
export * from '../config/config.ts';
|
|
60
|
+
import { config } from '../config/config.ts';
|
|
61
61
|
/** config: end */
|
|
62
62
|
/** monkey: begin */
|
|
63
|
-
export * from '../monkey.
|
|
63
|
+
export * from '../monkey.ts';
|
|
64
64
|
/** monkey: end */
|
|
65
65
|
/** scope: begin */
|
|
66
66
|
import { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';
|
package/src/.metadata/this.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const __ThisModule__ = 'a-model';
|
|
2
|
-
export { ScopeModuleAModel as ScopeModule } from './index.
|
|
2
|
+
export { ScopeModuleAModel as ScopeModule } from './index.ts';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Query } from '@tanstack/vue-query';
|
|
2
2
|
|
|
3
|
-
import type { QueryMetaPersisterCookieType } from '../../types/index.
|
|
3
|
+
import type { QueryMetaPersisterCookieType } from '../../types/index.ts';
|
|
4
4
|
|
|
5
|
-
import { BeanModelLocal } from './bean.model.local.
|
|
5
|
+
import { BeanModelLocal } from './bean.model.local.ts';
|
|
6
6
|
|
|
7
7
|
export class BeanModelCookie extends BeanModelLocal {
|
|
8
8
|
$serializeCookie(obj?: Query) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BeanBase, cast } from 'zova';
|
|
2
2
|
|
|
3
|
-
import type { ScopeModule } from '../../.metadata/this.
|
|
4
|
-
import type { IDecoratorModelOptions } from '../../types/model.
|
|
5
|
-
import type { BeanModelBase } from '../bean.modelBase.
|
|
3
|
+
import type { ScopeModule } from '../../.metadata/this.ts';
|
|
4
|
+
import type { IDecoratorModelOptions } from '../../types/model.ts';
|
|
5
|
+
import type { BeanModelBase } from '../bean.modelBase.ts';
|
|
6
6
|
|
|
7
|
-
import { __ThisModule__ } from '../../.metadata/this.
|
|
7
|
+
import { __ThisModule__ } from '../../.metadata/this.ts';
|
|
8
8
|
|
|
9
9
|
export class BeanModelLast extends BeanBase {
|
|
10
10
|
public selector: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Query } from '@tanstack/vue-query';
|
|
2
2
|
|
|
3
|
-
import { BeanModelPersister } from './bean.model.persister.
|
|
3
|
+
import { BeanModelPersister } from './bean.model.persister.ts';
|
|
4
4
|
|
|
5
5
|
export class BeanModelLocal extends BeanModelPersister {
|
|
6
6
|
$serializeLocal(obj?: Query) {
|
|
@@ -6,15 +6,15 @@ import { hashKey } from '@tanstack/vue-query';
|
|
|
6
6
|
import localforage from 'localforage';
|
|
7
7
|
import { SymbolBeanFullName } from 'zova';
|
|
8
8
|
|
|
9
|
-
import type { ModelPersistenceToken } from '../../lib/modelPersistence.
|
|
10
|
-
import type { QueryMetaPersister } from '../../types/index.
|
|
9
|
+
import type { ModelPersistenceToken } from '../../lib/modelPersistence.ts';
|
|
10
|
+
import type { QueryMetaPersister } from '../../types/index.ts';
|
|
11
11
|
|
|
12
|
-
import { CookieWrapper } from '../../common/cookieWrapper.
|
|
13
|
-
import { getModelPersistenceStorageKey } from '../../lib/modelPersistence.
|
|
14
|
-
import { getPersistenceQueue } from '../../lib/persistenceQueue.
|
|
15
|
-
import { createQueryPersister } from '../../lib/queryPersister.
|
|
16
|
-
import { resolveMaxAgeTime } from '../../types/index.
|
|
17
|
-
import { BeanModelLast } from './bean.model.last.
|
|
12
|
+
import { CookieWrapper } from '../../common/cookieWrapper.ts';
|
|
13
|
+
import { getModelPersistenceStorageKey } from '../../lib/modelPersistence.ts';
|
|
14
|
+
import { getPersistenceQueue } from '../../lib/persistenceQueue.ts';
|
|
15
|
+
import { createQueryPersister } from '../../lib/queryPersister.ts';
|
|
16
|
+
import { resolveMaxAgeTime } from '../../types/index.ts';
|
|
17
|
+
import { BeanModelLast } from './bean.model.last.ts';
|
|
18
18
|
|
|
19
19
|
export class BeanModelPersister extends BeanModelLast {
|
|
20
20
|
private _persisterRestoreErrors = new Set<string>();
|
|
@@ -15,10 +15,10 @@ import type {
|
|
|
15
15
|
import localforage from 'localforage';
|
|
16
16
|
import { cast } from 'zova';
|
|
17
17
|
|
|
18
|
-
import type { MaybeRefDeep, NoUnknown } from '../../common/types.
|
|
18
|
+
import type { MaybeRefDeep, NoUnknown } from '../../common/types.ts';
|
|
19
19
|
|
|
20
|
-
import { getPersistenceQueue } from '../../lib/persistenceQueue.
|
|
21
|
-
import { BeanModelCookie } from './bean.model.cookie.
|
|
20
|
+
import { getPersistenceQueue } from '../../lib/persistenceQueue.ts';
|
|
21
|
+
import { BeanModelCookie } from './bean.model.cookie.ts';
|
|
22
22
|
|
|
23
23
|
export class BeanModelQuery extends BeanModelCookie {
|
|
24
24
|
$setQueryData<
|
|
@@ -10,9 +10,9 @@ import type { UnwrapNestedRefs } from 'vue';
|
|
|
10
10
|
import { hashKey, useMutation } from '@tanstack/vue-query';
|
|
11
11
|
import { cast } from 'zova';
|
|
12
12
|
|
|
13
|
-
import type { MaybeRefDeep } from '../../common/types.
|
|
13
|
+
import type { MaybeRefDeep } from '../../common/types.ts';
|
|
14
14
|
|
|
15
|
-
import { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.
|
|
15
|
+
import { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.ts';
|
|
16
16
|
|
|
17
17
|
const SymbolUseMutations = Symbol('SymbolUseMutations');
|
|
18
18
|
|
|
@@ -5,12 +5,12 @@ import { useQuery } from '@tanstack/vue-query';
|
|
|
5
5
|
import type {
|
|
6
6
|
DefinedInitialQueryOptions,
|
|
7
7
|
UndefinedInitialQueryOptions,
|
|
8
|
-
} from '../../common/types.
|
|
9
|
-
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.
|
|
8
|
+
} from '../../common/types.ts';
|
|
9
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.ts';
|
|
10
10
|
|
|
11
|
-
import { createQueryRefetch } from '../../lib/queryRefetch.
|
|
12
|
-
import { resolveStaleTime } from '../../types/index.
|
|
13
|
-
import { BeanModelQuery } from './bean.model.query.
|
|
11
|
+
import { createQueryRefetch } from '../../lib/queryRefetch.ts';
|
|
12
|
+
import { resolveStaleTime } from '../../types/index.ts';
|
|
13
|
+
import { BeanModelQuery } from './bean.model.query.ts';
|
|
14
14
|
|
|
15
15
|
export class BeanModelUseQuery extends BeanModelQuery {
|
|
16
16
|
$useQuery<
|
|
@@ -13,15 +13,15 @@ import { deepExtend } from 'zova';
|
|
|
13
13
|
import type {
|
|
14
14
|
DefinedInitialQueryOptions,
|
|
15
15
|
UndefinedInitialQueryOptions,
|
|
16
|
-
} from '../../common/types.
|
|
16
|
+
} from '../../common/types.ts';
|
|
17
17
|
import type {
|
|
18
18
|
ModelUseQueryDefinedReturnType,
|
|
19
19
|
ModelUseQueryReturnType,
|
|
20
20
|
QueryMetaPersister,
|
|
21
21
|
UseQueryComputedOptions,
|
|
22
|
-
} from '../../types/query.
|
|
22
|
+
} from '../../types/query.ts';
|
|
23
23
|
|
|
24
|
-
import { BeanModelUseQuery } from './bean.model.useQuery.
|
|
24
|
+
import { BeanModelUseQuery } from './bean.model.useQuery.ts';
|
|
25
25
|
|
|
26
26
|
const SymbolUseQueries = Symbol('SymbolUseQueries');
|
|
27
27
|
const SymbolUseComputeds = Symbol('SymbolUseComputeds');
|
|
@@ -3,11 +3,11 @@ import type { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tans
|
|
|
3
3
|
import type {
|
|
4
4
|
DefinedInitialQueryOptions,
|
|
5
5
|
UndefinedInitialQueryOptions,
|
|
6
|
-
} from '../../common/types.
|
|
7
|
-
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.
|
|
8
|
-
import type { StateType } from '../../types/query.
|
|
6
|
+
} from '../../common/types.ts';
|
|
7
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.ts';
|
|
8
|
+
import type { StateType } from '../../types/query.ts';
|
|
9
9
|
|
|
10
|
-
import { BeanModelUseState } from './bean.model.useState.
|
|
10
|
+
import { BeanModelUseState } from './bean.model.useState.ts';
|
|
11
11
|
|
|
12
12
|
export class BeanModelUseStateGeneral extends BeanModelUseState {
|
|
13
13
|
$useState<
|
|
@@ -3,10 +3,10 @@ import type { CookieOptions } from 'zova';
|
|
|
3
3
|
|
|
4
4
|
import { BeanSimple } from 'zova';
|
|
5
5
|
|
|
6
|
-
import type { QueryMetaPersister } from '../types/index.
|
|
6
|
+
import type { QueryMetaPersister } from '../types/index.ts';
|
|
7
7
|
|
|
8
|
-
import { __ThisModule__ } from '../.metadata/this.
|
|
9
|
-
import { resolveMaxAgeTime } from '../types/index.
|
|
8
|
+
import { __ThisModule__ } from '../.metadata/this.ts';
|
|
9
|
+
import { resolveMaxAgeTime } from '../types/index.ts';
|
|
10
10
|
|
|
11
11
|
export class CookieWrapper extends BeanSimple {
|
|
12
12
|
options: QueryMetaPersister;
|
package/src/config/config.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { CookieOptions, ZovaSys } from 'zova';
|
|
|
3
3
|
|
|
4
4
|
import { defaultShouldDehydrateQuery } from '@tanstack/vue-query';
|
|
5
5
|
|
|
6
|
-
import type { MaxAgeTime, StaleTimeFunction } from '../types/index.
|
|
6
|
+
import type { MaxAgeTime, StaleTimeFunction } from '../types/index.ts';
|
|
7
7
|
|
|
8
8
|
const defaultOptions: DefaultOptions = {
|
|
9
9
|
queries: {
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './.metadata/index.
|
|
2
|
-
export * from './lib/index.
|
|
3
|
-
export * from './types/index.
|
|
1
|
+
export * from './.metadata/index.ts';
|
|
2
|
+
export * from './lib/index.ts';
|
|
3
|
+
export * from './types/index.ts';
|
package/src/lib/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './model.
|
|
2
|
-
export * from './modelPersistence.
|
|
3
|
-
export * from './utils.
|
|
1
|
+
export * from './model.ts';
|
|
2
|
+
export * from './modelPersistence.ts';
|
|
3
|
+
export * from './utils.ts';
|
package/src/lib/model.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createBeanDecorator } from 'zova';
|
|
2
2
|
|
|
3
|
-
import type { IDecoratorModelOptions } from '../types/model.
|
|
3
|
+
import type { IDecoratorModelOptions } from '../types/model.ts';
|
|
4
4
|
|
|
5
5
|
export function Model<T extends IDecoratorModelOptions>(options?: T): ClassDecorator {
|
|
6
6
|
return createBeanDecorator('model', 'ctx', true, options);
|
package/src/lib/queryRefetch.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Query, RefetchOptions } from '@tanstack/query-core';
|
|
2
2
|
|
|
3
|
-
import type { QueryRefetchOptions } from '../types/query.
|
|
3
|
+
import type { QueryRefetchOptions } from '../types/query.ts';
|
|
4
4
|
|
|
5
5
|
type QueryRefetch<TResult> = (options?: RefetchOptions) => Promise<TResult>;
|
|
6
6
|
type QueryRefetchWithFetchOptions<TResult> = (
|
package/src/lib/utils.ts
CHANGED
package/src/monkey.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { useQueryClient } from '@tanstack/vue-query';
|
|
|
11
11
|
import { markRaw } from 'vue';
|
|
12
12
|
import { BeanSimple } from 'zova';
|
|
13
13
|
|
|
14
|
-
import { ServiceStorage } from './service/storage.
|
|
14
|
+
import { ServiceStorage } from './service/storage.ts';
|
|
15
15
|
|
|
16
16
|
export class Monkey
|
|
17
17
|
extends BeanSimple
|
package/src/service/storage.ts
CHANGED
|
@@ -4,9 +4,9 @@ import { dehydrate, hydrate, QueryCache, QueryClient, VueQueryPlugin } from '@ta
|
|
|
4
4
|
import { BeanBase, deepExtend } from 'zova';
|
|
5
5
|
import { Service } from 'zova-module-a-bean';
|
|
6
6
|
|
|
7
|
-
import type { ModelPersistenceToken, ModelPersistenceValues } from '../lib/modelPersistence.
|
|
7
|
+
import type { ModelPersistenceToken, ModelPersistenceValues } from '../lib/modelPersistence.ts';
|
|
8
8
|
|
|
9
|
-
import { ModelPersistenceContext } from '../lib/modelPersistence.
|
|
9
|
+
import { ModelPersistenceContext } from '../lib/modelPersistence.ts';
|
|
10
10
|
|
|
11
11
|
@Service()
|
|
12
12
|
export class ServiceStorage extends BeanBase {
|
package/src/types/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './model.
|
|
2
|
-
export * from './query.
|
|
1
|
+
export * from './model.ts';
|
|
2
|
+
export * from './query.ts';
|
package/src/types/query.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
} from '@tanstack/vue-query';
|
|
13
13
|
import type { DebuggerOptions, UnwrapNestedRefs } from 'vue';
|
|
14
14
|
|
|
15
|
-
import type { ServiceStorage } from '../service/storage.
|
|
15
|
+
import type { ServiceStorage } from '../service/storage.ts';
|
|
16
16
|
|
|
17
17
|
import 'zova';
|
|
18
18
|
|