zova-module-a-model 5.1.17 → 5.1.20

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/LICENSE CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"bean.model.useState.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bean.model.useState.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useState.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/types/query.ts","../src/.metadata/this.ts","../src/common/cookieWrapper.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":["import type {\n DefaultError,\n DehydratedState,\n Query,\n QueryKey,\n useMutation,\n useQuery,\n useQueryClient,\n} from '@tanstack/vue-query';\nimport type { DebuggerOptions, UnwrapNestedRefs } from 'vue';\n\nimport 'zova';\n\ndeclare module 'zova' {\n export interface BeanBase {\n $queryClient: ReturnType<typeof useQueryClient>;\n }\n}\n\ndeclare module 'zova-module-a-ssr' {\n export interface SSRContextStateDefer {\n query: DehydratedState;\n }\n}\n\ndeclare module '@tanstack/vue-query' {\n export interface Register {\n queryMeta: MyQueryMeta;\n mutationMeta: MyMutationMeta;\n }\n}\n\nexport type { UseQueryOptions } from '@tanstack/vue-query';\n\nexport interface MyQueryMetaBase extends Record<string, unknown> {\n defaultData?: (() => any) | any;\n ssr?: QueryMetaSSR;\n persister?: QueryMetaPersister | boolean;\n disableErrorEffect?: boolean;\n disableSuspenseOnInit?: boolean;\n}\n\nexport interface MyQueryMeta extends MyQueryMetaBase {\n errorInfo?: ((error, query) => string) | string;\n}\n\nexport interface MyMutationMeta extends MyQueryMetaBase {\n errorInfo?: ((error, variables, context) => string) | string;\n}\n\nexport interface QueryMetaSSR {\n /** default is true */\n dehydrate?: boolean;\n}\n\nexport type QueryMetaPersisterStorage = 'cookie' | 'local' | 'db' | undefined;\n\nexport type QueryMetaPersisterCookieType =\n | 'auto'\n | 'boolean'\n | 'number'\n | 'date'\n | 'string'\n | undefined;\n\nexport type StateType = 'db' | 'local' | 'cookie' | 'mem' | 'data';\n\nexport type StaleTime = number;\nexport type StaleTimeFunction<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = StaleTime | ((query: Query<TQueryFnData, TError, TData, TQueryKey>) => StaleTime);\n\nexport type MaxAgeTime = StaleTime;\nexport type MaxAgeTimeFunction<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = StaleTimeFunction<TQueryFnData, TError, TData, TQueryKey>;\n\nexport interface QueryMetaPersister {\n /** default is false */\n sync?: boolean;\n /** default is db if async, local if sync */\n storage?: QueryMetaPersisterStorage;\n /** default is false if db, true if local/cookie */\n storageKeySimplify?: boolean;\n /** default is 24 hours */\n maxAge?: MaxAgeTime;\n /**\n * How to serialize the data to storage.\n * @default `JSON.stringify`\n */\n serialize?: (persistedQuery: any, serializeDefault: (persistedQuery: any) => any) => any;\n serializeDefault?: (persistedQuery: any) => any;\n /**\n * How to deserialize the data from storage.\n * @default `JSON.parse`\n */\n deserialize?: (cachedString: any, deserializeDefault: (cachedString: any) => any) => any;\n deserializeDefault?: (cachedString: any) => any;\n prefix?: string;\n buster?: string;\n cookieType?: QueryMetaPersisterCookieType;\n refetchOnRestore?: boolean | 'always';\n}\n\nexport type DataQuery<TData> = UnwrapNestedRefs<\n ReturnType<typeof useQuery<TData | undefined, Error | null>>\n>;\n\nexport type DataMutation<TData = unknown, TVariables = void, TContext = unknown> = UnwrapNestedRefs<\n ReturnType<typeof useMutation<TData, DefaultError, TVariables, TContext>>\n>;\n\nexport function resolveStaleTime<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n staleTime: undefined | StaleTimeFunction<TQueryFnData, TError, TData, TQueryKey>,\n query: Query<TQueryFnData, TError, TData, TQueryKey>,\n): StaleTime | undefined {\n return typeof staleTime === 'function' ? staleTime(query) : staleTime;\n}\n\nexport function resolveMaxAgeTime<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n maxAge: undefined | MaxAgeTimeFunction<TQueryFnData, TError, TData, TQueryKey>,\n query: Query<TQueryFnData, TError, TData, TQueryKey>,\n): MaxAgeTime | undefined {\n return typeof maxAge === 'function' ? maxAge(query) : maxAge;\n}\n\nexport type UseQueryComputedFn<TDATA> = (oldValue?: TDATA) => TDATA;\n\nexport interface UseQueryComputedOptions<TDATA, TQueryKey> {\n queryKey: TQueryKey;\n queryFn: UseQueryComputedFn<TDATA>;\n debugOptions?: DebuggerOptions;\n}\n","export const __ThisModule__ = 'a-model';\nexport { ScopeModuleAModel as ScopeModule } from './index.js';\n","import type { Query } from '@tanstack/vue-query';\nimport type { CookieOptions } from 'zova';\n\nimport { BeanSimple } from 'zova';\n\nimport type { QueryMetaPersister } from '../types/index.js';\n\nimport { __ThisModule__ } from '../.metadata/this.js';\nimport { resolveMaxAgeTime } from '../types/index.js';\n\nexport class CookieWrapper extends BeanSimple {\n options: QueryMetaPersister;\n query: Query;\n\n protected __init__(options: QueryMetaPersister, query: Query) {\n this.options = options;\n this.query = query;\n }\n\n getItem(key: string): string | undefined {\n return this.app.meta.cookie.getItem(key);\n }\n\n setItem(key: string, value: string): void {\n const configScope = this.bean.scope(__ThisModule__).config;\n const opts: CookieOptions = { ...configScope.persister.cookie.options };\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\n removeItem(key: string): void {\n this.app.meta.cookie.removeItem(key);\n }\n}\n","import { BeanBase, cast } from 'zova';\n\nimport type { ScopeModule } from '../../.metadata/this.js';\nimport type { IDecoratorModelOptions } from '../../types/model.js';\nimport type { BeanModelBase } from '../bean.modelBase.js';\n\nimport { __ThisModule__ } from '../../.metadata/this.js';\n\nexport class BeanModelLast extends BeanBase {\n public selector: string;\n\n constructor(selector?: unknown) {\n super();\n if (this.$onionOptions?.enableSelector) {\n this.selector = (selector as string) ?? '';\n }\n }\n\n protected async __init__(_selector?: unknown) {\n // do nothing\n }\n\n public get $onionOptions(): IDecoratorModelOptions | undefined {\n return super.$onionOptions as IDecoratorModelOptions | undefined;\n }\n\n get self() {\n return cast<BeanModelBase>(this);\n }\n\n get scopeSelf(): ScopeModule {\n return this.bean.scope(__ThisModule__);\n }\n}\n","import type { Query, QueryKey } from '@tanstack/vue-query';\n\nimport { experimental_createQueryPersister } from '@tanstack/query-persist-client-core';\nimport localforage from 'localforage';\nimport { SymbolBeanFullName } from 'zova';\n\nimport type { QueryMetaPersister } from '../../types/index.js';\n\nimport { CookieWrapper } from '../../common/cookieWrapper.js';\nimport { resolveMaxAgeTime } from '../../types/index.js';\nimport { BeanModelLast } from './bean.model.last.js';\n\nexport class BeanModelPersister extends BeanModelLast {\n private _persisterLoad_inner<T>(\n storage: Storage,\n storageKey: string,\n storedData: any,\n query: Query,\n options: QueryMetaPersister,\n ): T | undefined {\n if (!storedData) return undefined;\n const persistedQuery = options.deserialize\n ? options.deserialize(storedData as string, options.deserializeDefault!)\n : options.deserializeDefault!(storedData as string);\n\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 storage.removeItem(storageKey);\n } else {\n // Set proper updatedAt, since resolving in the first pass overrides those values\n query.setState({\n dataUpdatedAt: persistedQuery.state.dataUpdatedAt,\n errorUpdatedAt: persistedQuery.state.errorUpdatedAt,\n });\n return persistedQuery.state.data as T;\n }\n } else {\n storage.removeItem(storageKey);\n }\n }\n\n $persisterLoad<T>(queryKey: QueryKey): Promise<T | undefined> | T | undefined {\n const query = this.self.$queryFind({ queryKey });\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 storageKey = this._getPersisterStorageKey(options, query);\n try {\n const storedData = storage.getItem(storageKey);\n if (options.sync) {\n return this._persisterLoad_inner(storage as any, storageKey, storedData, query, options);\n } else {\n return (storedData as Promise<T>).then(storedData => {\n return this._persisterLoad_inner(storage as any, storageKey, storedData, query, options);\n });\n }\n } catch (err) {\n if (process.env.DEV) {\n console.error(err);\n console.warn(\n 'Encountered an error attempting to restore query cache from persisted location.',\n );\n }\n storage.removeItem(storageKey);\n }\n }\n\n $persisterSave(queryKey: QueryKey) {\n const query = this.self.$queryFind({ queryKey });\n if (!query) return;\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);\n const params = {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n buster: options.buster,\n };\n const data = options.serialize\n ? options.serialize(params, options.serializeDefault!)\n : options.serializeDefault!(params);\n if (options.sync === true) {\n storage.setItem(storageKey, data);\n } else {\n // Persist if we have storage defined, we use timeout to get proper state to be persisted\n setTimeout(() => {\n storage.setItem(storageKey, data);\n }, 0);\n }\n }\n\n $persisterRemove(queryKey: QueryKey) {\n const query = this.self.$queryFind({ queryKey });\n if (!query) return;\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);\n if (options.sync === true) {\n storage.removeItem(storageKey);\n } else {\n // Persist if we have storage defined, we use timeout to get proper state to be persisted\n setTimeout(() => {\n storage.removeItem(storageKey);\n }, 0);\n }\n }\n\n protected _createPersister(options?: QueryMetaPersister | boolean): any {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n return experimental_createQueryPersister({\n storage: this._getPersisterStorage(options) as any,\n maxAge: options.maxAge as number,\n refetchOnRestore: options.refetchOnRestore,\n prefix: options.prefix,\n buster: options.buster,\n }).persisterFn;\n }\n\n protected _adjustPersisterOptions(options?: QueryMetaPersister | boolean) {\n if (options === false) return undefined;\n if (options === undefined || options === true) {\n options = {};\n } else {\n options = { ...options };\n }\n options.storage = options.storage ?? (options.sync ? 'local' : 'db');\n options.maxAge = options.maxAge ?? this.scopeSelf.config.persister.maxAge[options.storage];\n options.refetchOnRestore =\n 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\n protected _getPersisterStorageKey(options: QueryMetaPersister, query: Query) {\n if (options.storageKeySimplify) return String(query.queryKey[query.queryKey.length - 1]);\n return `${options.prefix}-${query.queryHash}`;\n }\n\n protected _getPersisterStorage(options?: QueryMetaPersister | boolean, query?: Query) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n // cookie\n if (options.storage === 'cookie')\n return this.bean._newBeanSimple(CookieWrapper, false, options, query);\n // check server\n if (process.env.SERVER) return undefined;\n // local\n if (options.storage === 'local') return localStorage;\n // db\n if (options.storage === 'db') return localforage;\n }\n\n protected _getPersisterPrefix() {\n return `${this.sys.env.APP_NAME}-query`;\n }\n\n protected _getPersisterBuster() {\n return this.sys.env.APP_VERSION;\n }\n\n protected _forceQueryKeyPrefix(queryKey?: QueryKey): QueryKey {\n if (!queryKey) queryKey = [];\n if (!this._prefixIsBeanFullName(queryKey[0])) {\n const prefixes = [this[SymbolBeanFullName]];\n if (this.$onionOptions?.enableSelector) {\n prefixes.push(this.selector);\n }\n queryKey = prefixes.concat(queryKey as any);\n }\n return queryKey;\n }\n\n private _prefixIsBeanFullName(prefix?: any) {\n return prefix === this[SymbolBeanFullName];\n // return (prefix && typeof prefix === 'string' && prefix.split('.').length === 3);\n }\n}\n","import type { Query } from '@tanstack/vue-query';\n\nimport { BeanModelPersister } from './bean.model.persister.js';\n\nexport class BeanModelLocal extends BeanModelPersister {\n $serializeLocal(obj?: Query) {\n return JSON.stringify(obj?.state?.data);\n }\n\n $deserializeLocal(value?: string) {\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}\n","import type { Query } from '@tanstack/vue-query';\n\nimport type { QueryMetaPersisterCookieType } from '../../types/index.js';\n\nimport { BeanModelLocal } from './bean.model.local.js';\n\nexport class BeanModelCookie extends BeanModelLocal {\n $serializeCookie(obj?: Query) {\n return String(obj?.state?.data ?? '');\n }\n\n $deserializeCookie(value?: any) {\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\n protected _cookieCoerce(value?: string, cookieType?: QueryMetaPersisterCookieType) {\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}\n","import type {\n DataTag,\n DefaultError,\n InvalidateOptions,\n InvalidateQueryFilters,\n Query,\n QueryFilters,\n QueryKey,\n RefetchOptions,\n RefetchQueryFilters,\n SetDataOptions,\n Updater,\n} from '@tanstack/vue-query';\n\nimport localforage from 'localforage';\nimport { cast } from 'zova';\n\nimport type { MaybeRefDeep, NoUnknown } from '../../common/types.js';\n\nimport { BeanModelCookie } from './bean.model.cookie.js';\n\nexport class BeanModelQuery extends BeanModelCookie {\n $setQueryData<\n TQueryFnData,\n TTaggedQueryKey extends QueryKey,\n TData = TTaggedQueryKey extends DataTag<unknown, infer TaggedValue>\n ? TaggedValue\n : TQueryFnData,\n >(\n queryKey: TTaggedQueryKey,\n updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>,\n persisterSave?: boolean,\n options?: MaybeRefDeep<SetDataOptions>,\n ): TData | undefined;\n $setQueryData<TQueryFnData, TData = NoUnknown<TQueryFnData>>(\n queryKey: MaybeRefDeep<QueryKey>,\n updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>,\n persisterSave?: boolean,\n options?: MaybeRefDeep<SetDataOptions>,\n ): TData | undefined;\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\n $queryFind<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: QueryFilters,\n ): Query<TQueryFnData, TError, TData> | undefined {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.getQueryCache().find(filters as any);\n }\n\n $invalidateQueries(\n filters?: InvalidateQueryFilters,\n options?: MaybeRefDeep<InvalidateOptions>,\n ): Promise<void> {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.invalidateQueries(filters, options);\n }\n\n $refetchQueries(\n filters?: RefetchQueryFilters,\n options?: MaybeRefDeep<RefetchOptions>,\n ): Promise<void> {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.refetchQueries(filters, options);\n }\n\n $setQueryDataDirect(queryKey: QueryKey, value: any) {\n const query = this.$queryFind({ queryKey, exact: true });\n query?.setData(value);\n }\n\n async $clear() {\n const queries = this.$queryClient.getQueryCache().getAll();\n for (const query of queries) {\n query?.setData(undefined);\n }\n // remove all db cache\n await localforage.clear();\n }\n\n $normalizeFilters<T extends {}>(filters?: T): T {\n if (!filters) filters = {} as T;\n const queryKey = this._forceQueryKeyPrefix(cast(filters).queryKey);\n return { ...filters, queryKey };\n }\n}\n","import type {\n DefaultError,\n QueryClient,\n QueryKey,\n UseQueryDefinedReturnType,\n UseQueryOptions,\n UseQueryReturnType,\n} from '@tanstack/vue-query';\nimport type { UnwrapNestedRefs } from 'vue';\n\nimport { checkErrorJwtExpired } from '@cabloy/utils';\nimport { useQuery } from '@tanstack/vue-query';\nimport { cast } from 'zova';\n\nimport type {\n DefinedInitialQueryOptions,\n UndefinedInitialQueryOptions,\n} from '../../common/types.js';\n\nimport { resolveStaleTime } from '../../types/index.js';\nimport { BeanModelQuery } from './bean.model.query.js';\n\nexport class BeanModelUseQuery extends BeanModelQuery {\n $useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryDefinedReturnType<TData, TError>>;\n $useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useQuery(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const persister = this._createPersister(options.meta?.persister);\n const optionsDefault: any = {};\n if (!cast(options).meta?.disableErrorEffect) {\n optionsDefault.throwOnError = (error: Error, query) => {\n let errorInfo = cast(options).meta?.errorInfo;\n if (typeof errorInfo === 'function') {\n errorInfo = errorInfo(error, query);\n }\n if (!error.message.includes('useQuery:') && !checkErrorJwtExpired(error)) {\n error.message = `useQuery: [${queryKey.join(', ')}]: ${error.message}`;\n }\n this.$errorHandler(error, errorInfo ?? 'useQuery');\n return false;\n };\n }\n options = Object.assign(optionsDefault, options, { queryKey, persister });\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({ queryKey });\n const queryCacheExists = queryCache?.state.data !== undefined;\n options.staleTime = query => {\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration && queryCacheExists) {\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 return useQuery(options, queryClient);\n });\n }\n}\n","import type {\n DefaultError,\n Query,\n QueryClient,\n QueryKey,\n QueryMeta,\n UseQueryDefinedReturnType,\n UseQueryOptions,\n UseQueryReturnType,\n} from '@tanstack/vue-query';\nimport type { UnwrapNestedRefs } from 'vue';\n\nimport { hashKey } from '@tanstack/vue-query';\nimport { deepExtend } from 'zova';\n\nimport type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.js';\nimport type { QueryMetaPersister, UseQueryComputedOptions } from '../../types/query.js';\n\nimport { BeanModelUseQuery } from './bean.model.useQuery.js';\n\nconst SymbolUseQueries = Symbol('SymbolUseQueries');\nconst SymbolUseComputeds = Symbol('SymbolUseComputeds');\n\nexport class BeanModelUseState extends BeanModelUseQuery {\n private [SymbolUseQueries]: Record<string, unknown> = {};\n private [SymbolUseComputeds]: Record<string, unknown> = {};\n\n async $loadStateDb<T>(dbData: T): Promise<T> {\n return await dbData;\n }\n\n $useStateDb<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateDb<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateDb<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateDb(options, queryClient) {\n options = deepExtend(\n {\n meta: {\n maxAge: this.scopeSelf.config.persister.maxAge.local,\n } satisfies QueryMeta,\n },\n options,\n {\n enabled: false,\n staleTime: Infinity,\n meta: {\n ssr: {\n dehydrate: false,\n },\n persister: { storage: 'db', sync: false },\n } satisfies QueryMeta,\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\n $useStateLocal<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateLocal<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateLocal<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateLocal(options, queryClient) {\n options = deepExtend(\n {\n meta: {\n persister: {\n serializeDefault: (obj?: Query) => {\n return this.$serializeLocal(obj);\n },\n deserializeDefault: (value?: string) => {\n return this.$deserializeLocal(value);\n },\n storageKeySimplify: true,\n },\n } satisfies QueryMeta,\n },\n options,\n {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: { storage: 'local', sync: true } satisfies QueryMetaPersister,\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\n $useStateCookie<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateCookie<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateCookie<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateCookie(options, queryClient) {\n options = deepExtend(\n {\n meta: {\n persister: {\n serializeDefault: (obj?: Query) => {\n return this.$serializeCookie(obj);\n },\n deserializeDefault: (value?: string) => {\n const cookieType = options.meta.persister.cookieType;\n return this.$deserializeCookie(this._cookieCoerce(value, cookieType));\n },\n storageKeySimplify: true,\n },\n } satisfies QueryMeta,\n },\n options,\n {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: { storage: 'cookie', sync: true } satisfies QueryMetaPersister,\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\n $useStateMem<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateMem<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateMem<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\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\n $useStateComputed<TDATA, TQueryKey extends QueryKey>(options: UseQueryComputedOptions<TDATA, TQueryKey>): TDATA {\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] as unknown as TDATA;\n }\n\n $useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryDefinedReturnType<TData, TError>>;\n $useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\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\n private _handleAsyncDataGet(options, queryClient, persister) {\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\n private async _handleAsyncDataGet_inner(options, queryClient, persister) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n if (persister) {\n const data = await 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\n private _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\n private _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\n private _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}\n","import type {\n DefaultError,\n QueryClient,\n QueryKey,\n UseQueryDefinedReturnType,\n UseQueryOptions,\n UseQueryReturnType,\n} from '@tanstack/vue-query';\nimport type { UnwrapNestedRefs } from 'vue';\n\nimport type {\n DefinedInitialQueryOptions,\n UndefinedInitialQueryOptions,\n} from '../../common/types.js';\nimport type { StateType } from '../../types/query.js';\n\nimport { BeanModelUseState } from './bean.model.useState.js';\n\nexport class BeanModelUseStateGeneral extends BeanModelUseState {\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'db' | 'local' | 'cookie' | 'mem',\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'db' | 'local' | 'cookie' | 'mem',\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'db' | 'local' | 'cookie' | 'mem',\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'data',\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'data',\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryDefinedReturnType<TData, TError>>;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'data',\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useState(stateType: StateType, options, queryClient) {\n switch (stateType) {\n case 'db':\n return this.$useStateDb(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}\n","import type {\n DefaultError,\n MutationKey,\n MutationObserverOptions,\n QueryClient,\n UseMutationReturnType,\n} from '@tanstack/vue-query';\nimport type { UnwrapNestedRefs } from 'vue';\n\nimport { hashKey, useMutation } from '@tanstack/vue-query';\nimport { cast } from 'zova';\n\nimport type { MaybeRefDeep } from '../../common/types.js';\n\nimport { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.js';\n\nconst SymbolUseMutations = Symbol('SymbolUseMutations');\n\nexport class BeanModelUseMutation extends BeanModelUseStateGeneral {\n private [SymbolUseMutations]: Record<string, unknown> = {};\n\n $useMutation<TData = unknown, TVariables = void, TContext = unknown>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, DefaultError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseMutationReturnType<TData, DefaultError, TVariables, TContext>> {\n return this.ctx.util.instanceScope(() => {\n return useMutation(mutationOptions, queryClient) as any;\n });\n }\n\n $useMutationData<TData = unknown, TVariables = void, TContext = unknown>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, DefaultError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseMutationReturnType<TData, DefaultError, TVariables, TContext>> {\n let mutationKey: 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 const optionsDefault: any = {};\n if (!cast(mutationOptions).meta?.disableErrorEffect) {\n optionsDefault.onError = (error, variables, context) => {\n let errorInfo = cast(mutationOptions).meta?.errorInfo;\n if (typeof errorInfo === 'function') {\n errorInfo = errorInfo(error, variables, context);\n }\n this.$errorHandler(error, errorInfo ?? 'useMutationData');\n };\n }\n mutationOptions = Object.assign(optionsDefault, mutationOptions, { mutationKey });\n this[SymbolUseMutations][mutationHash] = this.$useMutation(mutationOptions, queryClient);\n }\n return this[SymbolUseMutations][mutationHash] as UnwrapNestedRefs<\n UseMutationReturnType<TData, DefaultError, TVariables, TContext>\n >;\n }\n}\n","import { BeanModelUseMutation } from './bean.model.useMutation.js';\n\nexport class BeanModelFirst extends BeanModelUseMutation {}\n","import { Virtual } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\n\nimport { BeanModelFirst } from './bean.model/bean.model.first.js';\n\n@Bean()\n@Virtual()\nexport class BeanModelBase extends BeanModelFirst {}\n","import type { VueQueryPluginOptions } from '@tanstack/vue-query';\n\nimport { dehydrate, hydrate, QueryCache, QueryClient, VueQueryPlugin } from '@tanstack/vue-query';\nimport { BeanBase, deepExtend } from 'zova';\nimport { Service } from 'zova-module-a-bean';\n\n@Service()\nexport class ServiceStorage extends BeanBase {\n private _queryClient: QueryClient;\n\n async moduleLoaded() {\n // options\n let options = this.scope.config.queryClientConfig.defaultOptions;\n if (process.env.SERVER) {\n options = deepExtend({}, options, {\n queries: { gcTime: Infinity },\n });\n }\n // queryCache\n const queryCache = new QueryCache();\n // queryClient\n const queryClient = (this._queryClient = new QueryClient({\n defaultOptions: options,\n queryCache,\n }));\n // use plugin\n const vueQueryPluginOptions: VueQueryPluginOptions = { queryClient };\n this.app.vue.use(VueQueryPlugin, vueQueryPluginOptions);\n }\n\n async appInitialize() {\n // onRendered\n if (process.env.SERVER) {\n this.ctx.meta.$ssr.context.onRendered((err?: Error) => {\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 hydrate(this._queryClient, this.ctx.meta.$ssr.stateDefer.query);\n }\n }\n}\n","import type { DefaultOptions } from '@tanstack/vue-query';\nimport type { CookieOptions, ZovaSys } from 'zova';\n\nimport { defaultShouldDehydrateQuery } from '@tanstack/vue-query';\n\nimport type { MaxAgeTime, StaleTimeFunction } from '../types/index.js';\n\nconst defaultOptions: 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};\n\nexport const config = (_sys: ZovaSys) => {\n return {\n persister: {\n maxAge: {\n cookie: undefined as MaxAgeTime | undefined, // undefined: session cookie\n local: Infinity as MaxAgeTime,\n db: (1000 * 60 * 60 * 24) as number, // 24 hours\n },\n cookie: {\n options: {} as Omit<CookieOptions, 'expires'>,\n },\n refetchOnRestore: true,\n },\n query: {\n staleTime: {\n async: 0 as StaleTimeFunction,\n ssr: Infinity as StaleTimeFunction,\n },\n },\n queryClientConfig: {\n defaultOptions,\n },\n };\n};\n","import type { IModule } from '@cabloy/module-info';\nimport type { BeanBase, BeanContainer, IMonkeyAppInitialize, IMonkeyBeanInit } from 'zova';\n\nimport { useQueryClient } from '@tanstack/vue-query';\nimport { markRaw } from 'vue';\nimport { BeanSimple } from 'zova';\n\nimport { ServiceStorage } from './service/storage.js';\n\nexport class Monkey extends BeanSimple implements IMonkeyAppInitialize, IMonkeyBeanInit {\n private _moduleSelf: IModule;\n private _storage: ServiceStorage;\n\n constructor(moduleSelf: IModule) {\n super();\n this._moduleSelf = moduleSelf;\n }\n\n private async getStorage() {\n if (!this._storage) {\n this._storage = await this.bean._newBean(ServiceStorage, false);\n }\n return this._storage;\n }\n\n async appInitialize() {\n const storage = await this.getStorage();\n await storage.appInitialize();\n }\n\n async moduleLoading(_module: IModule) {}\n async moduleLoaded(module: IModule) {\n // self\n if (this._moduleSelf === module) {\n const storage = await this.getStorage();\n await storage.moduleLoaded();\n }\n }\n\n async beanInit(bean: BeanContainer, beanInstance: BeanBase) {\n bean.defineProperty(beanInstance, '$queryClient', {\n enumerable: false,\n configurable: true,\n get() {\n return markRaw(useQueryClient());\n },\n });\n }\n}\n","// eslint-disable\n/** bean: begin */\nexport * from '../bean/bean.modelBase.js';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-model' {\n \n}\n/** bean: end */\n/** bean: begin */\nimport { BeanModelBase } from '../bean/bean.modelBase.js';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordGeneral {\n 'a-model.bean.modelBase': BeanModelBase;\n }\n}\n/** bean: end */\n/** service: begin */\nexport * from '../service/storage.js';\n\nimport 'zova-module-a-bean';\ndeclare module 'zova-module-a-bean' {\n \n export interface IServiceRecord {\n 'a-model:storage': never;\n }\n\n \n}\ndeclare module 'zova-module-a-model' {\n \n export interface ServiceStorage {\n /** @internal */\n get scope(): ScopeModuleAModel;\n }\n\n export interface ServiceStorage {\n get $beanFullName(): 'a-model.service.storage';\n get $onionName(): 'a-model:storage';\n \n } \n}\n/** service: end */\n/** service: begin */\nimport { ServiceStorage } from '../service/storage.js';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordGeneral {\n 'a-model.service.storage': ServiceStorage;\n }\n}\n/** service: end */\n/** config: begin */\nexport * from '../config/config.js';\nimport { config } from '../config/config.js';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.js';\n/** monkey: end */\n/** scope: begin */\nimport { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\n\n@Scope()\nexport class ScopeModuleAModel extends BeanScopeBase {}\n\nexport interface ScopeModuleAModel {\n util: BeanScopeUtil;\nconfig: TypeModuleConfig<typeof config>;\n}\n\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanScopeRecord {\n 'a-model': ScopeModuleAModel;\n }\n \n export interface IBeanScopeConfig {\n 'a-model': ReturnType<typeof config>;\n }\n\n \n\n \n}\n \n/** scope: end */\n","import { createBeanDecorator } from 'zova';\n\nimport type { IDecoratorModelOptions } from '../types/model.js';\n\nexport function Model<T extends IDecoratorModelOptions>(options?: T): ClassDecorator {\n return createBeanDecorator('model', 'ctx', true, options);\n}\n","import type { DataQuery } from '../types/query.js';\n\nexport type TypeQueryAutoLoadFn<T> = () => DataQuery<T> | undefined;\n\nexport async function $QueryAutoLoad<T = any>(fn: TypeQueryAutoLoadFn<T>) {\n return _QueryAutoLoadInner<T>(fn);\n}\n\nexport async function $QueriesAutoLoad<T1 = any, T2 = any, T3 = any, T4 = any, T5 = any>(\n fn1?: TypeQueryAutoLoadFn<T1>,\n fn2?: TypeQueryAutoLoadFn<T2>,\n fn3?: TypeQueryAutoLoadFn<T3>,\n fn4?: TypeQueryAutoLoadFn<T4>,\n fn5?: TypeQueryAutoLoadFn<T5>,\n ...fns: TypeQueryAutoLoadFn<any>[]\n): Promise<\n [\n DataQuery<T1> | undefined,\n DataQuery<T2> | undefined,\n DataQuery<T3> | undefined,\n DataQuery<T4> | undefined,\n DataQuery<T5> | undefined,\n ...DataQuery<any>[],\n ]\n> {\n let promises: any[] = [\n _QueryAutoLoadInner<T1>(fn1),\n _QueryAutoLoadInner<T2>(fn2),\n _QueryAutoLoadInner<T3>(fn3),\n _QueryAutoLoadInner<T4>(fn4),\n _QueryAutoLoadInner<T5>(fn5),\n ];\n if (fns.length > 0) {\n promises = promises.concat(fns.map(fn => _QueryAutoLoadInner(fn)));\n }\n return (await Promise.all(promises)) as any;\n}\n\nasync function _QueryAutoLoadInner<T = any>(fn?: TypeQueryAutoLoadFn<T>) {\n if (!fn) return;\n const query = fn();\n if (query && query.data === undefined) {\n await query.suspense();\n }\n return query;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/types/query.ts","../src/.metadata/this.ts","../src/common/cookieWrapper.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":["import type {\n DefaultError,\n DehydratedState,\n Query,\n QueryKey,\n useMutation,\n useQuery,\n useQueryClient,\n} from '@tanstack/vue-query';\nimport type { DebuggerOptions, UnwrapNestedRefs } from 'vue';\n\nimport 'zova';\n\ndeclare module 'zova' {\n export interface BeanBase {\n $queryClient: ReturnType<typeof useQueryClient>;\n }\n}\n\ndeclare module 'zova-module-a-ssr' {\n export interface SSRContextStateDefer {\n query: DehydratedState;\n }\n}\n\ndeclare module '@tanstack/vue-query' {\n export interface Register {\n queryMeta: MyQueryMeta;\n mutationMeta: MyMutationMeta;\n }\n}\n\nexport type { UseQueryOptions } from '@tanstack/vue-query';\n\nexport interface MyQueryMetaBase extends Record<string, unknown> {\n defaultData?: (() => any) | any;\n ssr?: QueryMetaSSR;\n persister?: QueryMetaPersister | boolean;\n disableErrorEffect?: boolean;\n disableSuspenseOnInit?: boolean;\n}\n\nexport interface MyQueryMeta extends MyQueryMetaBase {\n errorInfo?: ((error, query) => string) | string;\n}\n\nexport interface MyMutationMeta extends MyQueryMetaBase {\n errorInfo?: ((error, variables, context) => string) | string;\n}\n\nexport interface QueryMetaSSR {\n /** default is true */\n dehydrate?: boolean;\n}\n\nexport type QueryMetaPersisterStorage = 'cookie' | 'local' | 'db' | undefined;\n\nexport type QueryMetaPersisterCookieType =\n | 'auto'\n | 'boolean'\n | 'number'\n | 'date'\n | 'string'\n | undefined;\n\nexport type StateType = 'db' | 'local' | 'cookie' | 'mem' | 'data';\n\nexport type StaleTime = number;\nexport type StaleTimeFunction<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = StaleTime | ((query: Query<TQueryFnData, TError, TData, TQueryKey>) => StaleTime);\n\nexport type MaxAgeTime = StaleTime;\nexport type MaxAgeTimeFunction<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = StaleTimeFunction<TQueryFnData, TError, TData, TQueryKey>;\n\nexport interface QueryMetaPersister {\n /** default is false */\n sync?: boolean;\n /** default is db if async, local if sync */\n storage?: QueryMetaPersisterStorage;\n /** default is false if db, true if local/cookie */\n storageKeySimplify?: boolean;\n /** default is 24 hours */\n maxAge?: MaxAgeTime;\n /**\n * How to serialize the data to storage.\n * @default `JSON.stringify`\n */\n serialize?: (persistedQuery: any, serializeDefault: (persistedQuery: any) => any) => any;\n serializeDefault?: (persistedQuery: any) => any;\n /**\n * How to deserialize the data from storage.\n * @default `JSON.parse`\n */\n deserialize?: (cachedString: any, deserializeDefault: (cachedString: any) => any) => any;\n deserializeDefault?: (cachedString: any) => any;\n prefix?: string;\n buster?: string;\n cookieType?: QueryMetaPersisterCookieType;\n refetchOnRestore?: boolean | 'always';\n}\n\nexport type DataQuery<TData> = UnwrapNestedRefs<\n ReturnType<typeof useQuery<TData | undefined, Error | null>>\n>;\n\nexport type DataMutation<TData = unknown, TVariables = void, TContext = unknown> = UnwrapNestedRefs<\n ReturnType<typeof useMutation<TData, DefaultError, TVariables, TContext>>\n>;\n\nexport function resolveStaleTime<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n staleTime: undefined | StaleTimeFunction<TQueryFnData, TError, TData, TQueryKey>,\n query: Query<TQueryFnData, TError, TData, TQueryKey>,\n): StaleTime | undefined {\n return typeof staleTime === 'function' ? staleTime(query) : staleTime;\n}\n\nexport function resolveMaxAgeTime<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n maxAge: undefined | MaxAgeTimeFunction<TQueryFnData, TError, TData, TQueryKey>,\n query: Query<TQueryFnData, TError, TData, TQueryKey>,\n): MaxAgeTime | undefined {\n return typeof maxAge === 'function' ? maxAge(query) : maxAge;\n}\n\nexport type UseQueryComputedFn<TDATA> = (oldValue?: TDATA) => TDATA;\n\nexport interface UseQueryComputedOptions<TDATA, TQueryKey> {\n queryKey: TQueryKey;\n queryFn: UseQueryComputedFn<TDATA>;\n debugOptions?: DebuggerOptions;\n}\n","export const __ThisModule__ = 'a-model';\nexport { ScopeModuleAModel as ScopeModule } from './index.js';\n","import type { Query } from '@tanstack/vue-query';\nimport type { CookieOptions } from 'zova';\n\nimport { BeanSimple } from 'zova';\n\nimport type { QueryMetaPersister } from '../types/index.js';\n\nimport { __ThisModule__ } from '../.metadata/this.js';\nimport { resolveMaxAgeTime } from '../types/index.js';\n\nexport class CookieWrapper extends BeanSimple {\n options: QueryMetaPersister;\n query: Query;\n\n protected __init__(options: QueryMetaPersister, query: Query) {\n this.options = options;\n this.query = query;\n }\n\n getItem(key: string): string | undefined {\n return this.app.meta.cookie.getItem(key);\n }\n\n setItem(key: string, value: string): void {\n const configScope = this.bean.scope(__ThisModule__).config;\n const opts: CookieOptions = { ...configScope.persister.cookie.options };\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\n removeItem(key: string): void {\n this.app.meta.cookie.removeItem(key);\n }\n}\n","import { BeanBase, cast } from 'zova';\n\nimport type { ScopeModule } from '../../.metadata/this.js';\nimport type { IDecoratorModelOptions } from '../../types/model.js';\nimport type { BeanModelBase } from '../bean.modelBase.js';\n\nimport { __ThisModule__ } from '../../.metadata/this.js';\n\nexport class BeanModelLast extends BeanBase {\n public selector: string;\n\n constructor(selector?: unknown) {\n super();\n if (this.$onionOptions?.enableSelector) {\n this.selector = (selector as string) ?? '';\n }\n }\n\n protected async __init__(_selector?: unknown) {\n // do nothing\n }\n\n public get $onionOptions(): IDecoratorModelOptions | undefined {\n return super.$onionOptions as IDecoratorModelOptions | undefined;\n }\n\n get self() {\n return cast<BeanModelBase>(this);\n }\n\n get scopeSelf(): ScopeModule {\n return this.bean.scope(__ThisModule__);\n }\n}\n","import type { Query, QueryKey } from '@tanstack/vue-query';\n\nimport { experimental_createQueryPersister } from '@tanstack/query-persist-client-core';\nimport localforage from 'localforage';\nimport { SymbolBeanFullName } from 'zova';\n\nimport type { QueryMetaPersister } from '../../types/index.js';\n\nimport { CookieWrapper } from '../../common/cookieWrapper.js';\nimport { resolveMaxAgeTime } from '../../types/index.js';\nimport { BeanModelLast } from './bean.model.last.js';\n\nexport class BeanModelPersister extends BeanModelLast {\n private _persisterLoad_inner<T>(\n storage: Storage,\n storageKey: string,\n storedData: any,\n query: Query,\n options: QueryMetaPersister,\n ): T | undefined {\n if (!storedData) return undefined;\n const persistedQuery = options.deserialize\n ? options.deserialize(storedData as string, options.deserializeDefault!)\n : options.deserializeDefault!(storedData as string);\n\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 storage.removeItem(storageKey);\n } else {\n // Set proper updatedAt, since resolving in the first pass overrides those values\n query.setState({\n dataUpdatedAt: persistedQuery.state.dataUpdatedAt,\n errorUpdatedAt: persistedQuery.state.errorUpdatedAt,\n });\n return persistedQuery.state.data as T;\n }\n } else {\n storage.removeItem(storageKey);\n }\n }\n\n $persisterLoad<T>(queryKey: QueryKey): Promise<T | undefined> | T | undefined {\n const query = this.self.$queryFind({ queryKey });\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 storageKey = this._getPersisterStorageKey(options, query);\n try {\n const storedData = storage.getItem(storageKey);\n if (options.sync) {\n return this._persisterLoad_inner(storage as any, storageKey, storedData, query, options);\n } else {\n return (storedData as Promise<T>).then(storedData => {\n return this._persisterLoad_inner(storage as any, storageKey, storedData, query, options);\n });\n }\n } catch (err) {\n if (process.env.DEV) {\n console.error(err);\n console.warn(\n 'Encountered an error attempting to restore query cache from persisted location.',\n );\n }\n storage.removeItem(storageKey);\n }\n }\n\n $persisterSave(queryKey: QueryKey) {\n const query = this.self.$queryFind({ queryKey });\n if (!query) return;\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);\n const params = {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n buster: options.buster,\n };\n const data = options.serialize\n ? options.serialize(params, options.serializeDefault!)\n : options.serializeDefault!(params);\n if (options.sync === true) {\n storage.setItem(storageKey, data);\n } else {\n // Persist if we have storage defined, we use timeout to get proper state to be persisted\n setTimeout(() => {\n storage.setItem(storageKey, data);\n }, 0);\n }\n }\n\n $persisterRemove(queryKey: QueryKey) {\n const query = this.self.$queryFind({ queryKey });\n if (!query) return;\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);\n if (options.sync === true) {\n storage.removeItem(storageKey);\n } else {\n // Persist if we have storage defined, we use timeout to get proper state to be persisted\n setTimeout(() => {\n storage.removeItem(storageKey);\n }, 0);\n }\n }\n\n protected _createPersister(options?: QueryMetaPersister | boolean): any {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n return experimental_createQueryPersister({\n storage: this._getPersisterStorage(options) as any,\n maxAge: options.maxAge as number,\n refetchOnRestore: options.refetchOnRestore,\n prefix: options.prefix,\n buster: options.buster,\n }).persisterFn;\n }\n\n protected _adjustPersisterOptions(options?: QueryMetaPersister | boolean) {\n if (options === false) return undefined;\n if (options === undefined || options === true) {\n options = {};\n } else {\n options = { ...options };\n }\n options.storage = options.storage ?? (options.sync ? 'local' : 'db');\n options.maxAge = options.maxAge ?? this.scopeSelf.config.persister.maxAge[options.storage];\n options.refetchOnRestore =\n 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\n protected _getPersisterStorageKey(options: QueryMetaPersister, query: Query) {\n if (options.storageKeySimplify) return String(query.queryKey[query.queryKey.length - 1]);\n return `${options.prefix}-${query.queryHash}`;\n }\n\n protected _getPersisterStorage(options?: QueryMetaPersister | boolean, query?: Query) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n // cookie\n if (options.storage === 'cookie')\n return this.bean._newBeanSimple(CookieWrapper, false, options, query);\n // check server\n if (process.env.SERVER) return undefined;\n // local\n if (options.storage === 'local') return localStorage;\n // db\n if (options.storage === 'db') return localforage;\n }\n\n protected _getPersisterPrefix() {\n return `${this.sys.env.APP_NAME}-query`;\n }\n\n protected _getPersisterBuster() {\n return this.sys.env.APP_VERSION;\n }\n\n protected _forceQueryKeyPrefix(queryKey?: QueryKey): QueryKey {\n if (!queryKey) queryKey = [];\n if (!this._prefixIsBeanFullName(queryKey[0])) {\n const prefixes = [this[SymbolBeanFullName]];\n if (this.$onionOptions?.enableSelector) {\n prefixes.push(this.selector);\n }\n queryKey = prefixes.concat(queryKey as any);\n }\n return queryKey;\n }\n\n private _prefixIsBeanFullName(prefix?: any) {\n return prefix === this[SymbolBeanFullName];\n // return (prefix && typeof prefix === 'string' && prefix.split('.').length === 3);\n }\n}\n","import type { Query } from '@tanstack/vue-query';\n\nimport { BeanModelPersister } from './bean.model.persister.js';\n\nexport class BeanModelLocal extends BeanModelPersister {\n $serializeLocal(obj?: Query) {\n return JSON.stringify(obj?.state?.data);\n }\n\n $deserializeLocal(value?: string) {\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}\n","import type { Query } from '@tanstack/vue-query';\n\nimport type { QueryMetaPersisterCookieType } from '../../types/index.js';\n\nimport { BeanModelLocal } from './bean.model.local.js';\n\nexport class BeanModelCookie extends BeanModelLocal {\n $serializeCookie(obj?: Query) {\n return String(obj?.state?.data ?? '');\n }\n\n $deserializeCookie(value?: any) {\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\n protected _cookieCoerce(value?: string, cookieType?: QueryMetaPersisterCookieType) {\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}\n","import type {\n DataTag,\n DefaultError,\n InvalidateOptions,\n InvalidateQueryFilters,\n Query,\n QueryFilters,\n QueryKey,\n RefetchOptions,\n RefetchQueryFilters,\n SetDataOptions,\n Updater,\n} from '@tanstack/vue-query';\n\nimport localforage from 'localforage';\nimport { cast } from 'zova';\n\nimport type { MaybeRefDeep, NoUnknown } from '../../common/types.js';\n\nimport { BeanModelCookie } from './bean.model.cookie.js';\n\nexport class BeanModelQuery extends BeanModelCookie {\n $setQueryData<\n TQueryFnData,\n TTaggedQueryKey extends QueryKey,\n TData = TTaggedQueryKey extends DataTag<unknown, infer TaggedValue>\n ? TaggedValue\n : TQueryFnData,\n >(\n queryKey: TTaggedQueryKey,\n updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>,\n persisterSave?: boolean,\n options?: MaybeRefDeep<SetDataOptions>,\n ): TData | undefined;\n $setQueryData<TQueryFnData, TData = NoUnknown<TQueryFnData>>(\n queryKey: MaybeRefDeep<QueryKey>,\n updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>,\n persisterSave?: boolean,\n options?: MaybeRefDeep<SetDataOptions>,\n ): TData | undefined;\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\n $queryFind<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: QueryFilters,\n ): Query<TQueryFnData, TError, TData> | undefined {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.getQueryCache().find(filters as any);\n }\n\n $invalidateQueries(\n filters?: InvalidateQueryFilters,\n options?: MaybeRefDeep<InvalidateOptions>,\n ): Promise<void> {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.invalidateQueries(filters, options);\n }\n\n $refetchQueries(\n filters?: RefetchQueryFilters,\n options?: MaybeRefDeep<RefetchOptions>,\n ): Promise<void> {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.refetchQueries(filters, options);\n }\n\n $setQueryDataDirect(queryKey: QueryKey, value: any) {\n const query = this.$queryFind({ queryKey, exact: true });\n query?.setData(value);\n }\n\n async $clear() {\n const queries = this.$queryClient.getQueryCache().getAll();\n for (const query of queries) {\n query?.setData(undefined);\n }\n // remove all db cache\n await localforage.clear();\n }\n\n $normalizeFilters<T extends {}>(filters?: T): T {\n if (!filters) filters = {} as T;\n const queryKey = this._forceQueryKeyPrefix(cast(filters).queryKey);\n return { ...filters, queryKey };\n }\n}\n","import type {\n DefaultError,\n QueryClient,\n QueryKey,\n UseQueryDefinedReturnType,\n UseQueryOptions,\n UseQueryReturnType,\n} from '@tanstack/vue-query';\nimport type { UnwrapNestedRefs } from 'vue';\n\nimport { checkErrorJwtExpired } from '@cabloy/utils';\nimport { useQuery } from '@tanstack/vue-query';\nimport { cast } from 'zova';\n\nimport type {\n DefinedInitialQueryOptions,\n UndefinedInitialQueryOptions,\n} from '../../common/types.js';\n\nimport { resolveStaleTime } from '../../types/index.js';\nimport { BeanModelQuery } from './bean.model.query.js';\n\nexport class BeanModelUseQuery extends BeanModelQuery {\n $useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryDefinedReturnType<TData, TError>>;\n $useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useQuery(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const persister = this._createPersister(options.meta?.persister);\n const optionsDefault: any = {};\n if (!cast(options).meta?.disableErrorEffect) {\n optionsDefault.throwOnError = (error: Error, query) => {\n let errorInfo = cast(options).meta?.errorInfo;\n if (typeof errorInfo === 'function') {\n errorInfo = errorInfo(error, query);\n }\n if (!error.message.includes('useQuery:') && !checkErrorJwtExpired(error)) {\n error.message = `useQuery: [${queryKey.join(', ')}]: ${error.message}`;\n }\n this.$errorHandler(error, errorInfo ?? 'useQuery');\n return false;\n };\n }\n options = Object.assign(optionsDefault, options, { queryKey, persister });\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({ queryKey });\n const queryCacheExists = queryCache?.state.data !== undefined;\n options.staleTime = query => {\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration && queryCacheExists) {\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 return useQuery(options, queryClient);\n });\n }\n}\n","import type {\n DefaultError,\n Query,\n QueryClient,\n QueryKey,\n QueryMeta,\n UseQueryDefinedReturnType,\n UseQueryOptions,\n UseQueryReturnType,\n} from '@tanstack/vue-query';\nimport type { UnwrapNestedRefs } from 'vue';\n\nimport { hashKey } from '@tanstack/vue-query';\nimport { deepExtend } from 'zova';\n\nimport type {\n DefinedInitialQueryOptions,\n UndefinedInitialQueryOptions,\n} from '../../common/types.js';\nimport type { QueryMetaPersister, UseQueryComputedOptions } from '../../types/query.js';\n\nimport { BeanModelUseQuery } from './bean.model.useQuery.js';\n\nconst SymbolUseQueries = Symbol('SymbolUseQueries');\nconst SymbolUseComputeds = Symbol('SymbolUseComputeds');\n\nexport class BeanModelUseState extends BeanModelUseQuery {\n private [SymbolUseQueries]: Record<string, unknown> = {};\n private [SymbolUseComputeds]: Record<string, unknown> = {};\n\n async $loadStateDb<T>(dbData: T): Promise<T> {\n return await dbData;\n }\n\n $useStateDb<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateDb<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateDb<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateDb(options, queryClient) {\n options = deepExtend(\n {\n meta: {\n maxAge: this.scopeSelf.config.persister.maxAge.local,\n } satisfies QueryMeta,\n },\n options,\n {\n enabled: false,\n staleTime: Infinity,\n meta: {\n ssr: {\n dehydrate: false,\n },\n persister: { storage: 'db', sync: false },\n } satisfies QueryMeta,\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\n $useStateLocal<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateLocal<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateLocal<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateLocal(options, queryClient) {\n options = deepExtend(\n {\n meta: {\n persister: {\n serializeDefault: (obj?: Query) => {\n return this.$serializeLocal(obj);\n },\n deserializeDefault: (value?: string) => {\n return this.$deserializeLocal(value);\n },\n storageKeySimplify: true,\n },\n } satisfies QueryMeta,\n },\n options,\n {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: { storage: 'local', sync: true } satisfies QueryMetaPersister,\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\n $useStateCookie<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateCookie<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateCookie<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateCookie(options, queryClient) {\n options = deepExtend(\n {\n meta: {\n persister: {\n serializeDefault: (obj?: Query) => {\n return this.$serializeCookie(obj);\n },\n deserializeDefault: (value?: string) => {\n const cookieType = options.meta.persister.cookieType;\n return this.$deserializeCookie(this._cookieCoerce(value, cookieType));\n },\n storageKeySimplify: true,\n },\n } satisfies QueryMeta,\n },\n options,\n {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: { storage: 'cookie', sync: true } satisfies QueryMetaPersister,\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\n $useStateMem<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateMem<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useStateMem<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\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\n $useStateComputed<TDATA, TQueryKey extends QueryKey>(\n options: UseQueryComputedOptions<TDATA, TQueryKey>,\n ): TDATA {\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] as unknown as TDATA;\n }\n\n $useStateData<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useStateData<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryDefinedReturnType<TData, TError>>;\n $useStateData<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\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\n private _handleAsyncDataGet(options, queryClient, persister) {\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\n private async _handleAsyncDataGet_inner(options, queryClient, persister) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n if (persister) {\n const data = await 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\n private _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\n private _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\n private _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}\n","import type {\n DefaultError,\n QueryClient,\n QueryKey,\n UseQueryDefinedReturnType,\n UseQueryOptions,\n UseQueryReturnType,\n} from '@tanstack/vue-query';\nimport type { UnwrapNestedRefs } from 'vue';\n\nimport type {\n DefinedInitialQueryOptions,\n UndefinedInitialQueryOptions,\n} from '../../common/types.js';\nimport type { StateType } from '../../types/query.js';\n\nimport { BeanModelUseState } from './bean.model.useState.js';\n\nexport class BeanModelUseStateGeneral extends BeanModelUseState {\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'db' | 'local' | 'cookie' | 'mem',\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'db' | 'local' | 'cookie' | 'mem',\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'db' | 'local' | 'cookie' | 'mem',\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): TData;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'data',\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'data',\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryDefinedReturnType<TData, TError>>;\n $useState<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n stateType: 'data',\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;\n $useState(stateType: StateType, options, queryClient) {\n switch (stateType) {\n case 'db':\n return this.$useStateDb(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}\n","import type {\n DefaultError,\n MutationKey,\n MutationObserverOptions,\n QueryClient,\n UseMutationReturnType,\n} from '@tanstack/vue-query';\nimport type { UnwrapNestedRefs } from 'vue';\n\nimport { hashKey, useMutation } from '@tanstack/vue-query';\nimport { cast } from 'zova';\n\nimport type { MaybeRefDeep } from '../../common/types.js';\n\nimport { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.js';\n\nconst SymbolUseMutations = Symbol('SymbolUseMutations');\n\nexport class BeanModelUseMutation extends BeanModelUseStateGeneral {\n private [SymbolUseMutations]: Record<string, unknown> = {};\n\n $useMutation<TData = unknown, TVariables = void, TContext = unknown>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, DefaultError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseMutationReturnType<TData, DefaultError, TVariables, TContext>> {\n return this.ctx.util.instanceScope(() => {\n return useMutation(mutationOptions, queryClient) as any;\n });\n }\n\n $useMutationData<TData = unknown, TVariables = void, TContext = unknown>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, DefaultError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n ): UnwrapNestedRefs<UseMutationReturnType<TData, DefaultError, TVariables, TContext>> {\n let mutationKey: 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 const optionsDefault: any = {};\n if (!cast(mutationOptions).meta?.disableErrorEffect) {\n optionsDefault.onError = (error, variables, context) => {\n let errorInfo = cast(mutationOptions).meta?.errorInfo;\n if (typeof errorInfo === 'function') {\n errorInfo = errorInfo(error, variables, context);\n }\n this.$errorHandler(error, errorInfo ?? 'useMutationData');\n };\n }\n mutationOptions = Object.assign(optionsDefault, mutationOptions, { mutationKey });\n this[SymbolUseMutations][mutationHash] = this.$useMutation(mutationOptions, queryClient);\n }\n return this[SymbolUseMutations][mutationHash] as UnwrapNestedRefs<\n UseMutationReturnType<TData, DefaultError, TVariables, TContext>\n >;\n }\n}\n","import { BeanModelUseMutation } from './bean.model.useMutation.js';\n\nexport class BeanModelFirst extends BeanModelUseMutation {}\n","import { Virtual } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\n\nimport { BeanModelFirst } from './bean.model/bean.model.first.js';\n\n@Bean()\n@Virtual()\nexport class BeanModelBase extends BeanModelFirst {}\n","import type { VueQueryPluginOptions } from '@tanstack/vue-query';\n\nimport { dehydrate, hydrate, QueryCache, QueryClient, VueQueryPlugin } from '@tanstack/vue-query';\nimport { BeanBase, deepExtend } from 'zova';\nimport { Service } from 'zova-module-a-bean';\n\n@Service()\nexport class ServiceStorage extends BeanBase {\n private _queryClient: QueryClient;\n\n async moduleLoaded() {\n // options\n let options = this.scope.config.queryClientConfig.defaultOptions;\n if (process.env.SERVER) {\n options = deepExtend({}, options, {\n queries: { gcTime: Infinity },\n });\n }\n // queryCache\n const queryCache = new QueryCache();\n // queryClient\n const queryClient = (this._queryClient = new QueryClient({\n defaultOptions: options,\n queryCache,\n }));\n // use plugin\n const vueQueryPluginOptions: VueQueryPluginOptions = { queryClient };\n this.app.vue.use(VueQueryPlugin, vueQueryPluginOptions);\n }\n\n async appInitialize() {\n // onRendered\n if (process.env.SERVER) {\n this.ctx.meta.$ssr.context.onRendered((err?: Error) => {\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 hydrate(this._queryClient, this.ctx.meta.$ssr.stateDefer.query);\n }\n }\n}\n","import type { DefaultOptions } from '@tanstack/vue-query';\nimport type { CookieOptions, ZovaSys } from 'zova';\n\nimport { defaultShouldDehydrateQuery } from '@tanstack/vue-query';\n\nimport type { MaxAgeTime, StaleTimeFunction } from '../types/index.js';\n\nconst defaultOptions: 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};\n\nexport const config = (_sys: ZovaSys) => {\n return {\n persister: {\n maxAge: {\n cookie: undefined as MaxAgeTime | undefined, // undefined: session cookie\n local: Infinity as MaxAgeTime,\n db: (1000 * 60 * 60 * 24) as number, // 24 hours\n },\n cookie: {\n options: {} as Omit<CookieOptions, 'expires'>,\n },\n refetchOnRestore: true,\n },\n query: {\n staleTime: {\n async: 0 as StaleTimeFunction,\n ssr: Infinity as StaleTimeFunction,\n },\n },\n queryClientConfig: {\n defaultOptions,\n },\n };\n};\n","import type { IModule } from '@cabloy/module-info';\nimport type { BeanBase, BeanContainer, IMonkeyAppInitialize, IMonkeyBeanInit } from 'zova';\n\nimport { useQueryClient } from '@tanstack/vue-query';\nimport { markRaw } from 'vue';\nimport { BeanSimple } from 'zova';\n\nimport { ServiceStorage } from './service/storage.js';\n\nexport class Monkey extends BeanSimple implements IMonkeyAppInitialize, IMonkeyBeanInit {\n private _moduleSelf: IModule;\n private _storage: ServiceStorage;\n\n constructor(moduleSelf: IModule) {\n super();\n this._moduleSelf = moduleSelf;\n }\n\n private async getStorage() {\n if (!this._storage) {\n this._storage = await this.bean._newBean(ServiceStorage, false);\n }\n return this._storage;\n }\n\n async appInitialize() {\n const storage = await this.getStorage();\n await storage.appInitialize();\n }\n\n async moduleLoading(_module: IModule) {}\n async moduleLoaded(module: IModule) {\n // self\n if (this._moduleSelf === module) {\n const storage = await this.getStorage();\n await storage.moduleLoaded();\n }\n }\n\n async beanInit(bean: BeanContainer, beanInstance: BeanBase) {\n bean.defineProperty(beanInstance, '$queryClient', {\n enumerable: false,\n configurable: true,\n get() {\n return markRaw(useQueryClient());\n },\n });\n }\n}\n","// eslint-disable\n/** bean: begin */\nexport * from '../bean/bean.modelBase.js';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-model' {\n \n}\n/** bean: end */\n/** bean: begin */\nimport { BeanModelBase } from '../bean/bean.modelBase.js';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordGeneral {\n 'a-model.bean.modelBase': BeanModelBase;\n }\n}\n/** bean: end */\n/** service: begin */\nexport * from '../service/storage.js';\n\nimport 'zova-module-a-bean';\ndeclare module 'zova-module-a-bean' {\n \n export interface IServiceRecord {\n 'a-model:storage': never;\n }\n\n \n}\ndeclare module 'zova-module-a-model' {\n \n export interface ServiceStorage {\n /** @internal */\n get scope(): ScopeModuleAModel;\n }\n\n export interface ServiceStorage {\n get $beanFullName(): 'a-model.service.storage';\n get $onionName(): 'a-model:storage';\n \n } \n}\n/** service: end */\n/** service: begin */\nimport { ServiceStorage } from '../service/storage.js';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordGeneral {\n 'a-model.service.storage': ServiceStorage;\n }\n}\n/** service: end */\n/** config: begin */\nexport * from '../config/config.js';\nimport { config } from '../config/config.js';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.js';\n/** monkey: end */\n/** scope: begin */\nimport { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\n\n@Scope()\nexport class ScopeModuleAModel extends BeanScopeBase {}\n\nexport interface ScopeModuleAModel {\n util: BeanScopeUtil;\nconfig: TypeModuleConfig<typeof config>;\n}\n\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanScopeRecord {\n 'a-model': ScopeModuleAModel;\n }\n \n export interface IBeanScopeConfig {\n 'a-model': ReturnType<typeof config>;\n }\n\n \n\n \n}\n \n/** scope: end */\n","import { createBeanDecorator } from 'zova';\n\nimport type { IDecoratorModelOptions } from '../types/model.js';\n\nexport function Model<T extends IDecoratorModelOptions>(options?: T): ClassDecorator {\n return createBeanDecorator('model', 'ctx', true, options);\n}\n","import type { DataQuery } from '../types/query.js';\n\nexport type TypeQueryAutoLoadFn<T> = () => DataQuery<T> | undefined;\n\nexport async function $QueryAutoLoad<T = any>(fn: TypeQueryAutoLoadFn<T>) {\n return _QueryAutoLoadInner<T>(fn);\n}\n\nexport async function $QueriesAutoLoad<T1 = any, T2 = any, T3 = any, T4 = any, T5 = any>(\n fn1?: TypeQueryAutoLoadFn<T1>,\n fn2?: TypeQueryAutoLoadFn<T2>,\n fn3?: TypeQueryAutoLoadFn<T3>,\n fn4?: TypeQueryAutoLoadFn<T4>,\n fn5?: TypeQueryAutoLoadFn<T5>,\n ...fns: TypeQueryAutoLoadFn<any>[]\n): Promise<\n [\n DataQuery<T1> | undefined,\n DataQuery<T2> | undefined,\n DataQuery<T3> | undefined,\n DataQuery<T4> | undefined,\n DataQuery<T5> | undefined,\n ...DataQuery<any>[],\n ]\n> {\n let promises: any[] = [\n _QueryAutoLoadInner<T1>(fn1),\n _QueryAutoLoadInner<T2>(fn2),\n _QueryAutoLoadInner<T3>(fn3),\n _QueryAutoLoadInner<T4>(fn4),\n _QueryAutoLoadInner<T5>(fn5),\n ];\n if (fns.length > 0) {\n promises = promises.concat(fns.map(fn => _QueryAutoLoadInner(fn)));\n }\n return (await Promise.all(promises)) as any;\n}\n\nasync function _QueryAutoLoadInner<T = any>(fn?: TypeQueryAutoLoadFn<T>) {\n if (!fn) return;\n const query = fn();\n if (query && query.data === undefined) {\n await query.suspense();\n }\n return query;\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-model",
3
- "version": "5.1.17",
4
- "gitHead": "4c0d437257e2e7a6e050aa4afdd7e135bc48c022",
3
+ "version": "5.1.20",
4
+ "gitHead": "6f675a8cc46d596142c591c28a40cc4d82fcc6cc",
5
5
  "description": "core",
6
6
  "keywords": [
7
7
  "Zova Module"
@@ -23,19 +23,12 @@
23
23
  },
24
24
  "./*": "./*"
25
25
  },
26
- "scripts": {
27
- "clean": "rimraf dist tsconfig.build.tsbuildinfo",
28
- "tsc:publish": "npm run clean && zova :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
29
- "prepublishOnly": "npm run tsc:publish",
30
- "prepack": "clean-package",
31
- "postpack": "clean-package restore && npm run clean"
32
- },
33
26
  "dependencies": {
34
27
  "@tanstack/query-core": "^5.100.10",
35
28
  "@tanstack/query-persist-client-core": "^5.97.0",
36
29
  "@tanstack/vue-query": "^5.100.10",
37
30
  "localforage": "^1.10.0",
38
- "mutate-on-copy": "^1.1.8",
31
+ "mutate-on-copy": "^1.1.10",
39
32
  "table-identity": "^1.1.4"
40
33
  },
41
34
  "title": "a-model",
@@ -76,5 +69,9 @@
76
69
  }
77
70
  ]
78
71
  }
72
+ },
73
+ "scripts": {
74
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
75
+ "tsc:publish": "npm run clean && zova :bin:buildModule --sourcemap && tsc -p tsconfig.build.json"
79
76
  }
80
- }
77
+ }
@@ -13,7 +13,10 @@ import type { UnwrapNestedRefs } from 'vue';
13
13
  import { hashKey } from '@tanstack/vue-query';
14
14
  import { deepExtend } from 'zova';
15
15
 
16
- import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.js';
16
+ import type {
17
+ DefinedInitialQueryOptions,
18
+ UndefinedInitialQueryOptions,
19
+ } from '../../common/types.js';
17
20
  import type { QueryMetaPersister, UseQueryComputedOptions } from '../../types/query.js';
18
21
 
19
22
  import { BeanModelUseQuery } from './bean.model.useQuery.js';
@@ -29,15 +32,30 @@ export class BeanModelUseState extends BeanModelUseQuery {
29
32
  return await dbData;
30
33
  }
31
34
 
32
- $useStateDb<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
35
+ $useStateDb<
36
+ TQueryFnData = unknown,
37
+ TError = DefaultError,
38
+ TData = TQueryFnData,
39
+ TQueryKey extends QueryKey = QueryKey,
40
+ >(
33
41
  options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
34
42
  queryClient?: QueryClient,
35
43
  ): TData;
36
- $useStateDb<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
44
+ $useStateDb<
45
+ TQueryFnData = unknown,
46
+ TError = DefaultError,
47
+ TData = TQueryFnData,
48
+ TQueryKey extends QueryKey = QueryKey,
49
+ >(
37
50
  options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
38
51
  queryClient?: QueryClient,
39
52
  ): TData;
40
- $useStateDb<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
53
+ $useStateDb<
54
+ TQueryFnData = unknown,
55
+ TError = DefaultError,
56
+ TData = TQueryFnData,
57
+ TQueryKey extends QueryKey = QueryKey,
58
+ >(
41
59
  options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
42
60
  queryClient?: QueryClient,
43
61
  ): TData;
@@ -73,15 +91,30 @@ export class BeanModelUseState extends BeanModelUseQuery {
73
91
  });
74
92
  }
75
93
 
76
- $useStateLocal<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
94
+ $useStateLocal<
95
+ TQueryFnData = unknown,
96
+ TError = DefaultError,
97
+ TData = TQueryFnData,
98
+ TQueryKey extends QueryKey = QueryKey,
99
+ >(
77
100
  options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
78
101
  queryClient?: QueryClient,
79
102
  ): TData;
80
- $useStateLocal<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
103
+ $useStateLocal<
104
+ TQueryFnData = unknown,
105
+ TError = DefaultError,
106
+ TData = TQueryFnData,
107
+ TQueryKey extends QueryKey = QueryKey,
108
+ >(
81
109
  options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
82
110
  queryClient?: QueryClient,
83
111
  ): TData;
84
- $useStateLocal<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
112
+ $useStateLocal<
113
+ TQueryFnData = unknown,
114
+ TError = DefaultError,
115
+ TData = TQueryFnData,
116
+ TQueryKey extends QueryKey = QueryKey,
117
+ >(
85
118
  options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
86
119
  queryClient?: QueryClient,
87
120
  ): TData;
@@ -130,15 +163,30 @@ export class BeanModelUseState extends BeanModelUseQuery {
130
163
  // });
131
164
  }
132
165
 
133
- $useStateCookie<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
166
+ $useStateCookie<
167
+ TQueryFnData = unknown,
168
+ TError = DefaultError,
169
+ TData = TQueryFnData,
170
+ TQueryKey extends QueryKey = QueryKey,
171
+ >(
134
172
  options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
135
173
  queryClient?: QueryClient,
136
174
  ): TData;
137
- $useStateCookie<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
175
+ $useStateCookie<
176
+ TQueryFnData = unknown,
177
+ TError = DefaultError,
178
+ TData = TQueryFnData,
179
+ TQueryKey extends QueryKey = QueryKey,
180
+ >(
138
181
  options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
139
182
  queryClient?: QueryClient,
140
183
  ): TData;
141
- $useStateCookie<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
184
+ $useStateCookie<
185
+ TQueryFnData = unknown,
186
+ TError = DefaultError,
187
+ TData = TQueryFnData,
188
+ TQueryKey extends QueryKey = QueryKey,
189
+ >(
142
190
  options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
143
191
  queryClient?: QueryClient,
144
192
  ): TData;
@@ -188,15 +236,30 @@ export class BeanModelUseState extends BeanModelUseQuery {
188
236
  // });
189
237
  }
190
238
 
191
- $useStateMem<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
239
+ $useStateMem<
240
+ TQueryFnData = unknown,
241
+ TError = DefaultError,
242
+ TData = TQueryFnData,
243
+ TQueryKey extends QueryKey = QueryKey,
244
+ >(
192
245
  options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
193
246
  queryClient?: QueryClient,
194
247
  ): TData;
195
- $useStateMem<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
248
+ $useStateMem<
249
+ TQueryFnData = unknown,
250
+ TError = DefaultError,
251
+ TData = TQueryFnData,
252
+ TQueryKey extends QueryKey = QueryKey,
253
+ >(
196
254
  options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
197
255
  queryClient?: QueryClient,
198
256
  ): TData;
199
- $useStateMem<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
257
+ $useStateMem<
258
+ TQueryFnData = unknown,
259
+ TError = DefaultError,
260
+ TData = TQueryFnData,
261
+ TQueryKey extends QueryKey = QueryKey,
262
+ >(
200
263
  options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
201
264
  queryClient?: QueryClient,
202
265
  ): TData;
@@ -229,7 +292,9 @@ export class BeanModelUseState extends BeanModelUseQuery {
229
292
  // });
230
293
  }
231
294
 
232
- $useStateComputed<TDATA, TQueryKey extends QueryKey>(options: UseQueryComputedOptions<TDATA, TQueryKey>): TDATA {
295
+ $useStateComputed<TDATA, TQueryKey extends QueryKey>(
296
+ options: UseQueryComputedOptions<TDATA, TQueryKey>,
297
+ ): TDATA {
233
298
  const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);
234
299
  const queryHash = hashKey(queryKey);
235
300
  if (!this[SymbolUseComputeds][queryHash]) {
@@ -238,15 +303,30 @@ export class BeanModelUseState extends BeanModelUseQuery {
238
303
  return this[SymbolUseComputeds][queryHash] as unknown as TDATA;
239
304
  }
240
305
 
241
- $useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
306
+ $useStateData<
307
+ TQueryFnData = unknown,
308
+ TError = DefaultError,
309
+ TData = TQueryFnData,
310
+ TQueryKey extends QueryKey = QueryKey,
311
+ >(
242
312
  options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
243
313
  queryClient?: QueryClient,
244
314
  ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;
245
- $useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
315
+ $useStateData<
316
+ TQueryFnData = unknown,
317
+ TError = DefaultError,
318
+ TData = TQueryFnData,
319
+ TQueryKey extends QueryKey = QueryKey,
320
+ >(
246
321
  options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
247
322
  queryClient?: QueryClient,
248
323
  ): UnwrapNestedRefs<UseQueryDefinedReturnType<TData, TError>>;
249
- $useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
324
+ $useStateData<
325
+ TQueryFnData = unknown,
326
+ TError = DefaultError,
327
+ TData = TQueryFnData,
328
+ TQueryKey extends QueryKey = QueryKey,
329
+ >(
250
330
  options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
251
331
  queryClient?: QueryClient,
252
332
  ): UnwrapNestedRefs<UseQueryReturnType<TData, TError>>;