@storesjs/stores 0.8.6 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/config.d.ts +37 -7
  2. package/dist/createBaseStore.d.ts +2 -2
  3. package/dist/createQueryStore.d.ts +7 -23
  4. package/dist/createStoreWithEqualityFn.d.ts +5 -0
  5. package/dist/createVirtualStore.d.ts +4 -3
  6. package/dist/derivedStore/{globalDeriveScheduler.d.ts → cascadeScheduler.d.ts} +9 -1
  7. package/dist/derivedStore/deriveProxy.d.ts +6 -16
  8. package/dist/derivedStore/pathFinder.d.ts +27 -0
  9. package/dist/errors.d.ts +14 -0
  10. package/dist/hooks/useSyncExternalStoreWithSelector.d.ts +5 -0
  11. package/dist/index.d.ts +3 -1
  12. package/dist/logger.d.ts +0 -5
  13. package/dist/middleware/createHydrationGate.d.ts +1 -1
  14. package/dist/native/index.js +1 -1
  15. package/dist/native/index.mjs +1 -1
  16. package/dist/plugins/chrome/chromeExtensionSyncEngine.d.ts +3 -1
  17. package/dist/queryStore/queryStoreDefaults.d.ts +8 -0
  18. package/dist/queryStore/signalTypes.d.ts +13 -0
  19. package/dist/queryStore/types.d.ts +35 -30
  20. package/dist/signal.d.ts +2 -11
  21. package/dist/storage/storageCreators.d.ts +1 -1
  22. package/dist/sync/syncEnhancer.d.ts +4 -0
  23. package/dist/sync/types.d.ts +53 -128
  24. package/dist/types/functions.d.ts +19 -2
  25. package/dist/types/objects.d.ts +10 -3
  26. package/dist/types/utils.d.ts +1 -1
  27. package/dist/types.d.ts +35 -32
  28. package/dist/utils/core.d.ts +23 -4
  29. package/dist/utils/createStoreActions.d.ts +3 -3
  30. package/dist/utils/persistUtils.d.ts +2 -2
  31. package/dist/utils/storeUtils.d.ts +22 -15
  32. package/dist/utils/time.d.ts +0 -3
  33. package/dist/web/chrome.js +1 -1
  34. package/dist/web/chrome.mjs +1 -1
  35. package/dist/web/chunk-3U5A7HQV.mjs +1 -0
  36. package/dist/web/index.js +1 -1
  37. package/dist/web/index.mjs +1 -1
  38. package/package.json +17 -12
  39. package/dist/sync/transport.d.ts +0 -113
  40. package/dist/web/chunk-B3GRBY25.mjs +0 -1
package/dist/config.d.ts CHANGED
@@ -1,13 +1,25 @@
1
1
  import { Logger } from './logger';
2
+ import { QueryStoreConfig } from './queryStore/types';
2
3
  import { SyncEngine } from './sync/types';
3
4
  import { AsyncStorageInterface, SyncStorageInterface } from './types';
5
+ import { NonFunction } from './types/functions';
6
+ import { Prettify } from './types/objects';
4
7
  /**
5
8
  * Global configuration for all stores.
6
9
  */
7
10
  export type StoresConfig = {
8
- /** Custom logger for debug output. Defaults to a no-op logger in production. */
11
+ /**
12
+ * Custom logger for debug output. Defaults to a no-op logger in production.
13
+ */
9
14
  logger: Logger;
10
- /** Storage backend for persisted stores. Defaults to `localStorage` in browsers, MMKV in React Native. */
15
+ /**
16
+ * Default options used by all query stores.
17
+ */
18
+ queryStoreDefaults: QueryStoreDefaults;
19
+ /**
20
+ * Storage backend for persisted stores. Defaults to `localStorage` in browsers,
21
+ * MMKV in React Native.
22
+ */
11
23
  storage: AsyncStorageInterface | SyncStorageInterface;
12
24
  /**
13
25
  * Prefix for storage keys built by the default storage adapter.
@@ -15,15 +27,32 @@ export type StoresConfig = {
15
27
  * @default 'stores:'
16
28
  */
17
29
  storageKeyPrefix: string;
18
- /** Sync engine for cross-client state synchronization. Defaults to cross-tab sync in browsers. */
30
+ /**
31
+ * Sync engine for cross-client state synchronization. Defaults to cross-tab sync
32
+ * in browsers, no-op in other environments.
33
+ */
19
34
  syncEngine: SyncEngine;
20
35
  };
36
+ export type QueryStoreDefaults = Prettify<ConfigDefaults<QueryStoreConfig<unknown, Record<string, unknown>>, 'disableCache' | 'enabled' | 'params', 'retryDelay'>> & {
37
+ /**
38
+ * Minimum stale time for auto-refetching query stores under which to log warnings in development.
39
+ * `false` disables warnings.
40
+ * @default false
41
+ */
42
+ minStaleTime?: number | false;
43
+ };
44
+ type ConfigDefaults<C, Excluded extends keyof C = never, AllowedFunctions extends keyof C = never> = Omit<{
45
+ [K in keyof C as K extends AllowedFunctions ? K : NonFunction<C[K]> extends undefined ? never : K]?: K extends AllowedFunctions ? C[K] : NonFunction<C[K]>;
46
+ }, Excluded>;
47
+ type Options = Pick<StoresConfig, 'queryStoreDefaults'>;
21
48
  type StorageConfig = Pick<StoresConfig, 'storage' | 'syncEngine'>;
22
49
  export declare const DEFAULT_STORAGE_KEY_PREFIX = "stores:";
23
50
  /**
24
- * Configures global defaults for all stores. Must be called before creating any stores.
51
+ * Configures global defaults for all stores.
52
+ *
53
+ * If used, must be called before creating any stores.
25
54
  *
26
- * @see {@link StoresConfig} for details.
55
+ * @see {@link StoresConfig}
27
56
  *
28
57
  * @example
29
58
  * ```ts
@@ -33,8 +62,9 @@ export declare const DEFAULT_STORAGE_KEY_PREFIX = "stores:";
33
62
  * });
34
63
  * ```
35
64
  */
36
- export declare function configureStores(update: Partial<StoresConfig>): void;
37
- export declare function getStoresConfig(): StorageConfig;
65
+ export declare function configureStores(config: Partial<StoresConfig>): void;
66
+ export declare function getOptions(): Options | undefined;
67
+ export declare function getStorageConfig(): StorageConfig;
38
68
  export declare function markStoreCreated(): void;
39
69
  export {};
40
70
  //# sourceMappingURL=config.d.ts.map
@@ -11,14 +11,14 @@ export declare function createBaseStore<S>(createState: StateCreator<S>): Store<
11
11
  * @param options - The configuration options for persistence and sync.
12
12
  * @returns A Zustand store with the specified state and persistence.
13
13
  */
14
- export declare function createBaseStore<S, PersistedState extends Partial<S> = Partial<S>, PersistReturn extends void = void>(createState: StateCreator<S>, options: BaseStoreOptions<S, PersistedState, PersistReturn>): Store<S, PersistedState, false, PersistReturn>;
14
+ export declare function createBaseStore<S, PersistedState extends Partial<S> = Partial<S>, PersistReturn extends void = void>(createState: StateCreator<S>, options: BaseStoreOptions<S, PersistedState, PersistReturn>): Store<S, PersistedState, PersistReturn, false>;
15
15
  /**
16
16
  * Creates a base store with async persistence.
17
17
  * @param createState - The state creator function for the base store.
18
18
  * @param options - The configuration options for persistence and sync.
19
19
  * @returns A Zustand store with the specified state and persistence.
20
20
  */
21
- export declare function createBaseStore<S, PersistedState extends Partial<S> = Partial<S>, PersistReturn extends Promise<void> = Promise<void>>(createState: StateCreator<S>, options: BaseStoreOptions<S, PersistedState, PersistReturn>): Store<S, PersistedState, false, PersistReturn>;
21
+ export declare function createBaseStore<S, PersistedState extends Partial<S> = Partial<S>, PersistReturn extends Promise<void> = Promise<void>>(createState: StateCreator<S>, options: BaseStoreOptions<S, PersistedState, PersistReturn>): Store<S, PersistedState, PersistReturn, false>;
22
22
  /**
23
23
  * Creates a base store with optional persistence.
24
24
  * @param createState - The state creator function for the base store.
@@ -1,3 +1,4 @@
1
+ export { defaultRetryDelay } from './queryStore/queryStoreDefaults';
1
2
  import { QueryStoreConfig, QueryStoreState } from './queryStore/types';
2
3
  import { BaseStoreOptions, OptionallyPersistedStore, PersistedStore, StateCreator, Store } from './types';
3
4
  /**
@@ -8,7 +9,7 @@ import { BaseStoreOptions, OptionallyPersistedStore, PersistedStore, StateCreato
8
9
  * @template TData - The transformed data type, if applicable (defaults to `TQueryFnData`)
9
10
  * @template PersistedState - The persisted state type, if a stricter type than `Partial<CustomState>` is desired
10
11
  */
11
- export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams>> = Partial<QueryStoreState<TData, TParams>>, PersistReturn extends void = void>(config: QueryStoreConfig<TQueryFnData, TParams, TData>, options: BaseStoreOptions<QueryStoreState<TData, TParams>, PersistedState, PersistReturn>): PersistedStore<QueryStoreState<TData, TParams>, PersistedState, false, PersistReturn>;
12
+ export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams>> = Partial<QueryStoreState<TData, TParams>>, PersistReturn extends void = void>(config: QueryStoreConfig<TQueryFnData, TParams, TData>, options: BaseStoreOptions<QueryStoreState<TData, TParams>, PersistedState, PersistReturn>): PersistedStore<QueryStoreState<TData, TParams>, PersistedState, PersistReturn, false>;
12
13
  /**
13
14
  * Creates a persisted, query-enabled store with data fetching capabilities (async storage).
14
15
  *
@@ -17,7 +18,7 @@ export declare function createQueryStore<TQueryFnData, TParams extends Record<st
17
18
  * @template TData - The transformed data type, if applicable (defaults to `TQueryFnData`)
18
19
  * @template PersistedState - The persisted state type, if a stricter type than `Partial<CustomState>` is desired
19
20
  */
20
- export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams>> = Partial<QueryStoreState<TData, TParams>>, PersistReturn extends Promise<void> = Promise<void>>(config: QueryStoreConfig<TQueryFnData, TParams, TData>, options: BaseStoreOptions<QueryStoreState<TData, TParams>, PersistedState, PersistReturn>): PersistedStore<QueryStoreState<TData, TParams>, PersistedState, false, PersistReturn>;
21
+ export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams>> = Partial<QueryStoreState<TData, TParams>>, PersistReturn extends Promise<void> = Promise<void>>(config: QueryStoreConfig<TQueryFnData, TParams, TData>, options: BaseStoreOptions<QueryStoreState<TData, TParams>, PersistedState, PersistReturn>): PersistedStore<QueryStoreState<TData, TParams>, PersistedState, PersistReturn, false>;
21
22
  /**
22
23
  * Creates a persisted, query-enabled store with data fetching capabilities (sync storage).
23
24
  *
@@ -27,7 +28,7 @@ export declare function createQueryStore<TQueryFnData, TParams extends Record<st
27
28
  * @template TData - The transformed data type, if applicable (defaults to `TQueryFnData`)
28
29
  * @template PersistedState - The persisted state type, if a stricter type than `Partial<CustomState>` is desired
29
30
  */
30
- export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, CustomState = unknown, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams, CustomState>> = Partial<QueryStoreState<TData, TParams, CustomState>>, PersistReturn extends void = void>(config: QueryStoreConfig<TQueryFnData, TParams, TData, CustomState>, stateCreator: StateCreator<QueryStoreState<TData, TParams, CustomState>, CustomState>, options: BaseStoreOptions<QueryStoreState<TData, TParams, CustomState>, PersistedState, PersistReturn>): PersistedStore<QueryStoreState<TData, TParams, CustomState>, PersistedState, false, PersistReturn>;
31
+ export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, CustomState = unknown, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams, CustomState>> = Partial<QueryStoreState<TData, TParams, CustomState>>, PersistReturn extends void = void>(config: QueryStoreConfig<TQueryFnData, TParams, TData, CustomState>, stateCreator: StateCreator<QueryStoreState<TData, TParams, CustomState>, CustomState>, options: BaseStoreOptions<QueryStoreState<TData, TParams, CustomState>, PersistedState, PersistReturn>): PersistedStore<QueryStoreState<TData, TParams, CustomState>, PersistedState, PersistReturn, false>;
31
32
  /**
32
33
  * Creates a persisted, query-enabled store with data fetching capabilities (async storage).
33
34
  *
@@ -37,7 +38,7 @@ export declare function createQueryStore<TQueryFnData, TParams extends Record<st
37
38
  * @template TData - The transformed data type, if applicable (defaults to `TQueryFnData`)
38
39
  * @template PersistedState - The persisted state type, if a stricter type than `Partial<CustomState>` is desired
39
40
  */
40
- export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, CustomState = unknown, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams, CustomState>> = Partial<QueryStoreState<TData, TParams, CustomState>>, PersistReturn extends Promise<void> = Promise<void>>(config: QueryStoreConfig<TQueryFnData, TParams, TData, CustomState>, stateCreator: StateCreator<QueryStoreState<TData, TParams, CustomState>, CustomState>, options: BaseStoreOptions<QueryStoreState<TData, TParams, CustomState>, PersistedState, PersistReturn>): PersistedStore<QueryStoreState<TData, TParams, CustomState>, PersistedState, false, PersistReturn>;
41
+ export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, CustomState = unknown, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams, CustomState>> = Partial<QueryStoreState<TData, TParams, CustomState>>, PersistReturn extends Promise<void> = Promise<void>>(config: QueryStoreConfig<TQueryFnData, TParams, TData, CustomState>, stateCreator: StateCreator<QueryStoreState<TData, TParams, CustomState>, CustomState>, options: BaseStoreOptions<QueryStoreState<TData, TParams, CustomState>, PersistedState, PersistReturn>): PersistedStore<QueryStoreState<TData, TParams, CustomState>, PersistedState, PersistReturn, false>;
41
42
  /**
42
43
  * Creates a query-enabled store with data fetching capabilities.
43
44
  *
@@ -91,7 +92,7 @@ export declare function createQueryStore<TQueryFnData, TParams extends Record<st
91
92
  * @template TData - The transformed data type, if applicable (defaults to `TQueryFnData`)
92
93
  * @template PersistedState - The persisted state type, if a stricter type than `Partial<CustomState>` is desired
93
94
  */
94
- export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams>> = Partial<QueryStoreState<TData, TParams>>, PersistReturn extends void = void>(config: QueryStoreConfig<TQueryFnData, TParams, TData, QueryStoreState<TData, TParams>>, options: BaseStoreOptions<QueryStoreState<TData, TParams>, PersistedState, PersistReturn> | undefined): OptionallyPersistedStore<QueryStoreState<TData, TParams>, PersistedState, PersistReturn>;
95
+ export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams>> = Partial<QueryStoreState<TData, TParams>>, PersistReturn extends void = void>(config: QueryStoreConfig<TQueryFnData, TParams, TData>, options: BaseStoreOptions<QueryStoreState<TData, TParams>, PersistedState, PersistReturn> | undefined): OptionallyPersistedStore<QueryStoreState<TData, TParams>, PersistedState, PersistReturn>;
95
96
  /**
96
97
  * Creates a conditionally persisted, query-enabled store with data fetching capabilities (async storage).
97
98
  *
@@ -102,24 +103,7 @@ export declare function createQueryStore<TQueryFnData, TParams extends Record<st
102
103
  * @template TData - The transformed data type, if applicable (defaults to `TQueryFnData`)
103
104
  * @template PersistedState - The persisted state type, if a stricter type than `Partial<CustomState>` is desired
104
105
  */
105
- export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams>> = Partial<QueryStoreState<TData, TParams>>, PersistReturn extends Promise<void> = Promise<void>>(config: QueryStoreConfig<TQueryFnData, TParams, TData, QueryStoreState<TData, TParams>>, options: BaseStoreOptions<QueryStoreState<TData, TParams>, PersistedState, PersistReturn> | undefined): OptionallyPersistedStore<QueryStoreState<TData, TParams>, PersistedState, PersistReturn>;
106
- /**
107
- * The default query store `retryDelay` function.
108
- *
109
- * Exponential backoff starting at `baseDelay` (5s default), doubling each retry, capped at `maxDelay` (5m default).
110
- *
111
- * ```ts
112
- * retryCount => Math.min(baseDelay * Math.pow(2, retryCount), maxDelay)
113
- * ```
114
- */
115
- export declare function defaultRetryDelay(retryCount: number, options?: {
116
- baseDelay?: number;
117
- maxDelay?: number;
118
- }): number;
119
- /**
120
- * @deprecated Use `getQueryKey` instead, unless using for non-parsable query keys.
121
- */
122
- export declare function getLegacyQueryKey<TParams extends Record<string, unknown>>(params: TParams): string;
106
+ export declare function createQueryStore<TQueryFnData, TParams extends Record<string, unknown> = Record<string, never>, TData = TQueryFnData, PersistedState extends Partial<QueryStoreState<TData, TParams>> = Partial<QueryStoreState<TData, TParams>>, PersistReturn extends Promise<void> = Promise<void>>(config: QueryStoreConfig<TQueryFnData, TParams, TData>, options: BaseStoreOptions<QueryStoreState<TData, TParams>, PersistedState, PersistReturn> | undefined): OptionallyPersistedStore<QueryStoreState<TData, TParams>, PersistedState, PersistReturn>;
123
107
  /**
124
108
  * Generates a deterministic query store `queryKey` from the given parameters,
125
109
  * consistent with internally generated keys.
@@ -0,0 +1,5 @@
1
+ import { type Mutate, type StateCreator as ZustandStateCreator, type StoreApi } from 'zustand/vanilla';
2
+ import type { EqualityFn, StoreMutators, StoreMutatorsWithSelector, UseBoundStoreWithEqualityFn } from './types';
3
+ export declare function createStoreWithEqualityFn<State, Mutators extends StoreMutators = []>(initializer: ZustandStateCreator<State, [], StoreMutatorsWithSelector<Mutators>>, defaultEqualityFn?: EqualityFn): UseBoundStoreWithEqualityFn<Mutate<StoreApi<State>, StoreMutatorsWithSelector<Mutators>>, State>;
4
+ export declare function createStoreWithEqualityFn<State>(): <Mutators extends StoreMutators = []>(initializer: ZustandStateCreator<State, [], StoreMutatorsWithSelector<Mutators>>, defaultEqualityFn?: EqualityFn) => UseBoundStoreWithEqualityFn<Mutate<StoreApi<State>, StoreMutatorsWithSelector<Mutators>>, State>;
5
+ //# sourceMappingURL=createStoreWithEqualityFn.d.ts.map
@@ -1,6 +1,7 @@
1
1
  import { DeriveGetter } from './createDerivedStore';
2
2
  import { BaseStore, InferPersistedState, InferSetStateReturn, InferStoreState, OptionallyPersistedStore } from './types';
3
- type MethodOverrides<Store extends BaseStore<State>, State = InferStoreState<Store>> = Partial<Pick<Store, 'getState' | 'setState'>>;
3
+ type MethodOverrides<Store extends BaseStore<unknown>> = Partial<Pick<Store, 'getState' | 'setState'>>;
4
+ type VirtualStore<Store extends BaseStore<unknown>> = OptionallyPersistedStore<InferStoreState<Store>, InferPersistedState<Store>, InferSetStateReturn<Store>>;
4
5
  type VirtualStoreOptions = {
5
6
  debugMode?: boolean;
6
7
  /**
@@ -34,7 +35,7 @@ type VirtualStoreOptions = {
34
35
  * });
35
36
  * ```
36
37
  */
37
- export declare function createVirtualStore<Store extends BaseStore<InferStoreState<Store>>>(createStore: ($: DeriveGetter) => Store, options?: VirtualStoreOptions): OptionallyPersistedStore<InferStoreState<Store>, InferPersistedState<Store, InferStoreState<Store>>, InferSetStateReturn<Store>>;
38
- export declare function createVirtualStore<Store extends BaseStore<InferStoreState<Store>>, Overrides extends MethodOverrides<Store>>(createStore: ($: DeriveGetter) => Store, overrides: (getStore: () => Store) => Overrides, options?: VirtualStoreOptions): OptionallyPersistedStore<InferStoreState<Store>, InferPersistedState<Store, InferStoreState<Store>>, InferSetStateReturn<Store>> & Overrides;
38
+ export declare function createVirtualStore<Store extends BaseStore<InferStoreState<Store>>>(createStore: ($: DeriveGetter) => Store, options?: VirtualStoreOptions): VirtualStore<Store>;
39
+ export declare function createVirtualStore<Store extends BaseStore<InferStoreState<Store>>, Overrides extends MethodOverrides<Store>>(createStore: ($: DeriveGetter) => Store, overrides: (getStore: () => Store) => Overrides, options?: VirtualStoreOptions): VirtualStore<Store> & Overrides;
39
40
  export {};
40
41
  //# sourceMappingURL=createVirtualStore.d.ts.map
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Cascade Scheduler
3
+ *
4
+ * - Coalesces derivations into a single microtask.
5
+ * - Tasks run once at their maximum rank via a ranked dirty queue.
6
+ * - Doesn't retain snapshots or dependency graphs.
7
+ * - Component listeners get notified after all derivations have settled.
8
+ */
1
9
  type Rank = number;
2
10
  type StoreId = string;
3
11
  type Task = () => void;
@@ -20,4 +28,4 @@ export declare function joinCascade(storeId: StoreId, task: Task): void;
20
28
  */
21
29
  export declare function enqueueDerive(task: Task, rank: Rank): void;
22
30
  export {};
23
- //# sourceMappingURL=globalDeriveScheduler.d.ts.map
31
+ //# sourceMappingURL=cascadeScheduler.d.ts.map
@@ -1,25 +1,15 @@
1
- import { BaseStore, Selector } from '../types';
2
- type TrackedInvocation = {
3
- args: unknown[] | undefined;
4
- method: string;
5
- };
6
- type TrackPathFn = (store: BaseStore<unknown>, path: string[], isLeaf: boolean, invocation?: TrackedInvocation) => void;
7
- type SubscriptionBuilder = (store: BaseStore<unknown>, selector: Selector<unknown, unknown>) => void;
1
+ import { BaseStore } from '../types';
2
+ import { TrackPathFn } from './pathFinder';
8
3
  /**
9
4
  * Gets or creates a lightweight tracking proxy that records path access and store
10
5
  * method invocations via proxy traps. Used to auto-generate selectors that point
11
6
  * to either the accessed path or the value returned by an invoked store method.
12
7
  */
13
8
  export declare function getOrCreateProxy<S>(store: BaseStore<S>, rootProxyCache: WeakMap<BaseStore<unknown>, unknown>, trackPath: TrackPathFn): S;
14
- export type PathFinder = {
15
- buildProxySubscriptions(createSubscription: SubscriptionBuilder, shouldLog: boolean): void;
16
- trackPath: TrackPathFn;
17
- };
18
9
  /**
19
- * A factory that returns a proxy path-tracking object with two methods:
20
- * - `buildProxySubscriptions()`: builds subscriptions to the final paths
21
- * - `trackPath()`: records usage of a store path
10
+ * Strips tracking proxies from published values to ensure
11
+ * proxies remain confined to internal tracking contexts.
22
12
  */
23
- export declare function createPathFinder(): PathFinder;
24
- export {};
13
+ export declare function stripProxies<T>(value: T): T;
14
+ export declare function stripProxies(value: unknown, seen?: WeakSet<object>): unknown;
25
15
  //# sourceMappingURL=deriveProxy.d.ts.map
@@ -0,0 +1,27 @@
1
+ import { Selector, SubscribableStore } from '../types';
2
+ type TrackedInvocation = {
3
+ args: unknown[] | undefined;
4
+ method: string;
5
+ };
6
+ type PathEntry = {
7
+ path: string[];
8
+ store: SubscribableStore;
9
+ invocation?: TrackedInvocation;
10
+ isLeaf: boolean;
11
+ };
12
+ type SubscriptionBuilder = (store: SubscribableStore, selector: Selector<unknown, unknown>, path: string[]) => void;
13
+ export type PathFinder = {
14
+ buildProxySubscriptions(createSubscription: SubscriptionBuilder, shouldLog: boolean, minConsolidationDepth?: number, shouldBuild?: (paths: Set<PathEntry>) => boolean): void;
15
+ reset(): void;
16
+ trackPath: TrackPathFn;
17
+ };
18
+ export type TrackPathFn = (store: SubscribableStore, path: string[], isLeaf: boolean, invocation?: TrackedInvocation) => void;
19
+ /**
20
+ * A factory that returns a proxy path-tracking object with three methods:
21
+ * - `buildProxySubscriptions()`: builds subscriptions to the final paths
22
+ * - `reset()`: clears all tracked paths
23
+ * - `trackPath()`: records usage of a store path
24
+ */
25
+ export declare function createPathFinder(): PathFinder;
26
+ export {};
27
+ //# sourceMappingURL=pathFinder.d.ts.map
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Error reported or thrown by the stores package itself.
3
+ *
4
+ * If an underlying thrown value caused the failure, it is available as `cause`.
5
+ */
6
+ export declare class StoresError extends Error {
7
+ cause?: unknown;
8
+ constructor(message: string, cause?: unknown);
9
+ }
10
+ /**
11
+ * Normalizes unknown thrown values for store state and promise rejection paths.
12
+ */
13
+ export declare function ensureError(error: unknown): Error;
14
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1,5 @@
1
+ import type { EqualityFn, Selector, SubscribeOverloads } from '../types';
2
+ export declare function useSyncExternalStoreWithSelector<State>(subscribe: SubscribeOverloads<State>, getSnapshot: () => State, getServerSnapshot?: (() => State) | undefined, selector?: undefined, equalityFn?: undefined): State;
3
+ export declare function useSyncExternalStoreWithSelector<State, Selected>(subscribe: SubscribeOverloads<State>, getSnapshot: () => State, getServerSnapshot: (() => State) | undefined, selector: Selector<State, Selected>, equalityFn?: EqualityFn<Selected>): Selected;
4
+ export declare function useSyncExternalStoreWithSelector<State, Selected>(subscribe: SubscribeOverloads<State>, getSnapshot: () => State, getServerSnapshot: (() => State) | undefined, selector: Selector<State, Selected> | undefined, equalityFn?: EqualityFn<Selected>): State | Selected;
5
+ //# sourceMappingURL=useSyncExternalStoreWithSelector.d.ts.map
package/dist/index.d.ts CHANGED
@@ -3,14 +3,16 @@ export { createBaseStore } from './createBaseStore';
3
3
  export * from './createDerivedStore';
4
4
  export * from './createQueryStore';
5
5
  export * from './createVirtualStore';
6
+ export { StoresError } from './errors';
6
7
  export { replacer, reviver } from './utils/serialization';
7
- export { applyStateUpdate, destroyStore, destroyStores, getStoreName, isDerivedStore, isPersistedStore, isQueryStore, isVirtualStore, } from './utils/storeUtils';
8
+ export { applyStateUpdate, destroyStore, destroyStores, getStoreName, hasGetSnapshot, isDerivedStore, isPersistedStore, isQueryStore, isVirtualStore, } from './utils/storeUtils';
8
9
  export * from './hooks/useListen';
9
10
  export * from './hooks/useStableValue';
10
11
  export * from './sync/types';
11
12
  export * from './queryStore/types';
12
13
  export * from './storage/storageTypes';
13
14
  export * from './types';
15
+ export { identity, nullObject } from './utils/core';
14
16
  export * from './utils/createStoreActions';
15
17
  export { deepEqual, shallowEqual } from './utils/equality';
16
18
  export { time } from './utils/time';
package/dist/logger.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- export declare class StoresError extends Error {
2
- cause: Error;
3
- constructor(message: string, error?: unknown);
4
- }
5
1
  export interface Logger {
6
2
  debug: (message: string, context?: Record<string, unknown>) => void;
7
3
  error: {
@@ -12,6 +8,5 @@ export interface Logger {
12
8
  warn: (message: string, context?: Record<string, unknown>) => void;
13
9
  }
14
10
  export declare let logger: Logger;
15
- export declare function ensureError(error: unknown): Error;
16
11
  export declare function setLogger(customLogger: Logger): void;
17
12
  //# sourceMappingURL=logger.d.ts.map
@@ -1,5 +1,5 @@
1
+ import { SyncContext } from '../sync/syncEnhancer';
1
2
  import { StateCreator } from '../types';
2
- import { SyncContext } from 'src/sync/syncEnhancer';
3
3
  type WrappedOnRehydrateStorage<S> = (userCallback: ((state: S) => ((finalState?: S, error?: unknown) => void) | void) | undefined, syncContext: SyncContext | undefined) => (state: S) => (finalState?: S, error?: unknown) => void;
4
4
  /**
5
5
  * Creates hydration-gating middleware that queues state updates until rehydration completes.
@@ -1 +1 @@
1
- "use strict";var e=require("react-native"),t=require("zustand/middleware"),r=require("zustand/traditional"),n=require("use-sync-external-store/shim/with-selector"),o=require("react"),i=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)(function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),s="ios"===e.Platform.OS;e.Platform.OS;var c="development"===process.env.NODE_ENV,a="test"===process.env.NODE_ENV;function u(e){let t;try{const{MMKV:r}=i("react-native-mmkv"),n=new r({id:e}),{getString:o,...s}=n;t=Object.assign(Object.create(null),s,{get:o})}catch(e){throw new Error("[stores] react-native-mmkv could not be loaded.\n\nPersisted stores require a storage backend. Either:\n - Install MMKV (the default): yarn add react-native-mmkv\n - Or provide a custom adapter via configureStores()\n"+(e instanceof Error?`\n${e.message}`:""))}return function(e){if(!e||"function"!=typeof e.get||"function"!=typeof e.set||"function"!=typeof e.delete||"function"!=typeof e.clearAll)throw new Error("[stores]: Storage instance does not conform to expected interface")}(t),{clearAll:()=>t.clearAll(),contains:e=>t.contains(e),delete:e=>t.delete(e),get:e=>t.get(e),getAllKeys:()=>t.getAllKeys(),set:(e,r)=>t.set(e,r)}}var l=class extends Error{constructor(e,t){super(e),this.name="StoresError",this.cause=d(t)}},f={debug:(e,t)=>{c&&console.debug(e,t)},error:(e,t)=>{c&&!a&&console.error(e,t)},info:(e,t)=>{c&&console.info(e,t)},warn:(e,t)=>{c&&console.warn(e,t)}};function d(e){return e instanceof Error?e:new Error(String(e))}var y,p,h=class{destroy(){}publish(){}},g=class{constructor(){this.sessionId="noop"}register(e){return new h}},b=!1;function m(){return p??(p=v(void 0))}function S(){b=!0}function v(e){return{storage:e?.storage??u(e?.storageKeyPrefix??"stores:"),syncEngine:e?.syncEngine??(y||(y=new g),y)}}function w(){let e,t,r=!1;return{complete:function(){!r&&e&&(r=!0,e(),e=void 0,t=void 0)},isHydrated:function(){return r},fail:function(n){!r&&t&&(r=!0,t(n),t=void 0,e=void 0)},promise:new Promise((r,n)=>{e=r,t=n})}}var O=Math.max,j=Math.min;function q(e,t=0,r={}){let n,o,i,s,c,a,u=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){const r=n,i=o;return n=o=void 0,u=t,s=r?e.apply(i,r):e.apply(i),s}function p(e){const r=e-(a??0);return void 0===a||r>=t||r<0||f&&void 0!==i&&e-u>=i}function h(){const e=F();if(p(e))return g(e);c=setTimeout(h,function(e){const r=t-(e-(a??0));return f&&void 0!==i?j(r,i-(e-u)):r}(e))}function g(e){return c=void 0,d&&n?y(e):(n=o=void 0,s)}function b(...e){const r=F(),i=p(r);if(n=e,o=this,a=r,i){if(void 0===c)return function(e){return u=e,c=setTimeout(h,t),l?y(e):s}(a);if(f)return clearTimeout(c),c=setTimeout(h,t),y(a)}return void 0===c&&(c=setTimeout(h,t)),s}return t=A(t)||0,function(e){const t=typeof e;return null!==e&&("object"===t||"function"===t)}(r)&&(l=!!r.leading,f="maxWait"in r,i=f?O(A(r.maxWait)||0,t):void 0,d="trailing"in r?!!r.trailing:d),b.cancel=function(){void 0!==c&&clearTimeout(c),u=0,n=a=o=c=void 0},b.flush=function(){return void 0===c?s:g(F())},b}function F(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}function A(e){if("number"==typeof e)return e;if("symbol"==typeof e||void 0===e)return NaN;if("object"==typeof e&&null!==e){const t="function"==typeof e.valueOf?e.valueOf():e;e="object"==typeof t?t+"":t}return"string"!=typeof e?0===e?e:+e:(e=e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),/^0b[01]+$/i.test(e)?parseInt(e.slice(2),2):/^0o[0-7]+$/i.test(e)?parseInt(e.slice(2),8):/^[-+]0x[0-9a-f]+$/i.test(e)?NaN:+e)}function C(e,t){return t instanceof Map?{__type:"Map",entries:Array.from(t.entries())}:t instanceof Set?{__type:"Set",values:Array.from(t)}:t}function I(e,t){return function(e){return"object"==typeof e&&null!==e&&"__type"in e&&"Map"===e.__type}(t)?new Map(t.entries):function(e){return"object"==typeof e&&null!==e&&"__type"in e&&"Set"===e.__type}(t)?new Set(t.values):t}function k(e){if(null!==e&&"object"==typeof e){const t={};for(const[r,n]of Object.entries(e))"function"!=typeof n&&(t[r]=n);return t}return e}var T={ms:e=>e,seconds:e=>1e3*e,minutes:e=>T.seconds(60*e),hours:e=>T.minutes(60*e),days:e=>T.hours(24*e),weeks:e=>T.days(7*e),infinity:1/0,zero:0},E=a?0:s?T.seconds(3):T.seconds(5);function x(e){return t=>{if("string"!=typeof t)throw new l("[createBaseStore]: Received non-string serialized state without a custom deserializer. Provide a deserializer on the store or storage adapter.");return function(e,t){try{return JSON.parse(e,t?I:void 0)}catch(e){throw f.error(new l("[createBaseStore]: Failed to deserialize persisted Rainbow store data"),{error:e}),e}}(t,e)}}function M(e){return t=>function(e,t){try{return JSON.stringify(e,t?C:void 0)}catch(e){throw f.error(new l("[createBaseStore]: Failed to serialize Rainbow store data"),{error:e}),e}}(t,e)}var z=Object.freeze({shouldClear:!1});function D(e,t,r){if(!t||!e)return z;const n=e.getFieldTimestampSnapshot();return function(e,t){const r=e.getSessionId(),n=e.getTimestamp();void 0!==r&&void 0!==n&&(t.syncMetadata={origin:r,timestamp:n})}(e,r),r.syncMetadata?n&&Object.keys(n).length>0?(r.syncMetadata.fields=n,{fieldSnapshot:n,shouldClear:!0}):(delete r.syncMetadata.fields,{fieldSnapshot:n,shouldClear:!1}):{fieldSnapshot:n,shouldClear:!1}}function K(e,t){e&&t.shouldClear&&t.fieldSnapshot&&Object.keys(t.fieldSnapshot).length&&e.clearFieldTimestamps(t.fieldSnapshot)}function P(e){return!!e&&!!e.getIsApplyingRemote()}function $(e,...t){return!0===t[1]?V(t[0])?t[0](e):t[0]:{...e,...V(t[0])?t[0](e):t[0]}}function L(e,t){W(e)?e.getState().reset(t?.clearQueryCache):function(e){return"destroy"in e}(e)&&e.destroy()}function R(e){return _(e)?e.persist.getOptions().name??e.name:e.name}function N(e){return"getSnapshot"in e}function W(e){return"_queryStore"in e}function _(e){return"persist"in e}function Q(e){return"_virtualStore"in e}function V(e){return"function"==typeof e}var[J,U]=[0,1];function B(e,t,r){if(!e)return!0;const n=e[J],o=e[U];return!(t<n)&&(t>n||r>o)}function H(e,t){return Object.prototype.hasOwnProperty.call(t,e)}function G(e,t){if(!c)return!0;if(null===e||null===t)return e===t;const r=typeof e;return r===typeof t&&("object"!==r||Object.prototype.toString.call(e)===Object.prototype.toString.call(t))}function X(e){if(null===e)return"null";const t=typeof e;return"object"===t?Object.prototype.toString.call(e):t}function Y(e,n){S();const o=void 0!==n&&"string"==typeof n.storageKey,i=o?n.storageKey:void 0,s=n?.sync?function(e,t){if(!e)return null;if(!0===e){if(!t)throw new l("[createBaseStore]: sync: true requires a storageKey to inherit the key from");return{key:t}}if("string"==typeof e)return{key:e};const r=e,n=r.key??t;if(!n)throw new l("[createBaseStore]: sync requires either a key in the config or a storageKey to inherit from");return{...r,key:n}}(n.sync,i):void 0,c=o?n.storage??m().storage:void 0,a=s?function(e,t,r){const n=t.engine??m().syncEngine,o=function(e){let t,r,n,o=!1;return{isAsync:e,clearFieldTimestamps:function(e){if(e&&n){for(const t of Object.entries(e)){const e=t[0],r=t[1];n[e]===r&&delete n[e]}Object.keys(n).length||(n=void 0)}},getFieldTimestampSnapshot:function(){if(n)return{...n}},getIsApplyingRemote:()=>o,getSessionId:()=>t,getTimestamp:()=>r,mergeFieldTimestamps:function(e){if(n)for(const t of Object.entries(e)){const e=t[0],r=t[1],o=n[e];(void 0===o||r>o)&&(n[e]=r)}else n={...e}},onHydrationComplete:void 0,onHydrationFlushEnd:void 0,setIsApplyingRemote:e=>o=e,setSessionId:e=>t=e,setTimestamp:e=>r=e,setWithoutPersist:void 0}}(r);return{stateCreator:(i,s,c)=>{const a=new Map,u=[],d=[];let y=null,p=!1,h=!1,g=0,b=null,m=[],S=Promise.resolve(),v=!r;const w=(e,t)=>{if(o?.setSessionId&&o?.setTimestamp&&n.sessionId&&(o.setSessionId(n.sessionId),o.setTimestamp(e),o.mergeFieldTimestamps&&t.length>0)){const r=Object.create(null);for(const n of t)r[String(n)]=e;o.mergeFieldTimestamps(r)}},O=function(e,t){if(p||!b)return t?i(e,t):i(e);const r=(()=>{const e=Date.now(),t=e>g?e:g+1;return g=t,t})();let o=[],s=Object.create(null);const c=n=>{const i=$(n,e,t);for(const e of m)Object.is(i[e],n[e])||(o.push(e),s[e]=i[e]);return o.length&&w(r,o),i},u=t?i(c,!0):i(c),l=()=>{o.length&&(e=>{const t=n.sessionId;for(const r of e.keys)a.set(r,[e.timestamp,t]);y&&h?y.publish?.({replace:e.replace,sessionId:t,timestamp:e.timestamp,values:e.values}):d.push(e)})({keys:o,replace:t??!1,values:s,timestamp:r})};return(f=u)&&"object"==typeof f&&"then"in f&&"function"==typeof f.then?u.finally(l):(l(),u);var f},j=c.setState;c.setState=O;const q=e(O,s,c);if(m=t.fields??function(e){const t=[];for(const r of Object.entries(e)){if("function"==typeof r[1])continue;const e=r[0];t.push(e)}return t}(q),!m.length)return q;b=new Set(m);const F=async e=>{g=Math.max(g,e.timestamp);const r=Object.create(null),n=s(),i=e.timestamp;let c;if(e.replace)for(const t of m)H(t,e.values)||B(a.get(t),i,e.sessionId)&&(c??(c=[])).push(t);for(const o of m){if(!H(o,e.values))continue;if(!b?.has(o))continue;if(!B(a.get(o),i,e.sessionId))continue;const s=t.merge?.[o];if(s){const t=e.values[o],c=n[o];if(void 0!==t){const u=s(t,c,n,e.values),d=void 0!==c?c:t;if(!G(u,d))return void f.error(new l(`[sync] Merge function for field "${String(o)}" returned ${X(u)} but expected ${X(d)}`));r[o]=u,a.set(o,[i,e.sessionId])}}else r[o]=e.values[o],a.set(o,[i,e.sessionId])}if(Object.keys(r).length>0||c?.length){p=!0,o&&o.setIsApplyingRemote(!0);try{if(e.replace){const e={...n};let t=!1;if(c?.length){t=!0;for(const t of c)delete e[t],a.delete(t)}for(const n in r){if(!Object.prototype.hasOwnProperty.call(r,n))continue;const o=r[n];void 0!==o&&(Object.is(e[n],o)||(t=!0),e[n]=o)}if(!t)return;await(o.setWithoutPersist??j)(e,!0)}else await(o.setWithoutPersist??j)(r)}finally{p=!1,o&&o.setIsApplyingRemote(!1)}}},A=e=>{r?S=S.then(()=>F(e)):F(e)};y=n.register({apply:e=>{v?A(e):u.push(e)},delta:t.delta,fields:m,getState:s,key:t.key});const C=()=>{h=!0,(()=>{if(y&&d.length){for(const e of d){const t=n.sessionId;for(const r of e.keys)a.set(r,[e.timestamp,t]);w(e.timestamp,e.keys),y.publish?.({replace:e.replace,sessionId:t,timestamp:e.timestamp,values:e.values})}d.length=0}})()},I=()=>{v=!0,(()=>{if(!u.length)return;const e=u.slice();u.length=0;for(const t of e)A(t)})()};return r&&o?(o.onHydrationComplete=C,o.onHydrationFlushEnd=I):y.onHydrated?(y.onHydrated(C),I()):(C(),I()),q},syncContext:o}}(e,s,c?.async??!1):void 0,u=a?.stateCreator??e;if(!o)return r.createWithEqualityFn()(t.subscribeWithSelector(u),Object.is);const y=c?.async?function(e){let t,r,n,o=!1;return{hydrationPromise:()=>o?t?.promise??r??(r=Promise.resolve()):(t||(t=w()),t.promise),stateCreator:(r,i,s)=>{let c;return n=()=>{if(c?.length){for(const e of c)e[1]?s.setState(e[0],e[1]):s.setState(e[0]);c=void 0}},e((...e)=>o?!0===e[1]?r(e[0],e[1]):r(e[0]):(t||(t=w()),c||(c=[]),c.push(e),t.promise),i,s)},wrapOnRehydrateStorage:(e,r)=>i=>{const s=e?.(i);return(e,i)=>{o=!0,r?.onHydrationComplete?.(),n&&n(),r?.onHydrationFlushEnd?.(),i?t?.fail(d(i)):t?.complete(),s?.(e,i)}}}}(u):null,p=function(e,t,r){const n=t??e.storage??m().storage,o=(e.sync?void 0:e.persistThrottleMs??E)||void 0,i=e.version??0,s=n.async?function(e,t,r,n){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),i="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),s=t.partialize??k,c=t.deserializer??e.deserializer??x(o),a=t.serializer??e.serializer??M(o);async function u(t,r){try{if(P(n))return;r.state,r.state=s(r.state);const o=D(n,i,r),c=a(r);try{await e.set(t,c),K(n,o)}catch(e){f.error(new l("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){f.error(new l("[createBaseStore]: Failed to serialize persisted store data"),{error:e})}}const d=void 0!==r?q(u,r,{leading:!1,maxWait:r,trailing:!0}):function(e){let t,r=null;return function(...n){return t=n,r||(r=new Promise(n=>{queueMicrotask(async()=>{try{await e(...t)}finally{r=null,n()}})})),r}}(u);return{getItem:async t=>{const r=await e.get(t);return void 0===r?null:c(r)},setItem:async(e,t)=>{if(!n?.getIsApplyingRemote())return await d(e,t)},removeItem:async t=>{try{await e.delete(t)}catch(e){f.error(new l("[createBaseStore]: Failed to delete persisted store data"),{error:e})}}}}(n,e,o,r):function(e,t,r,n){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),i="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),s=t.partialize??k,c=t.deserializer??e.deserializer??x(o),a=t.serializer??e.serializer??M(o);function u(t,r){try{if(P(n))return;r.state,r.state=s(r.state);const o=D(n,i,r),c=a(r);try{e.set(t,c),K(n,o)}catch(e){f.error(new l("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){f.error(new l("[createBaseStore]: Failed to persist store data"),{error:e})}}const d=void 0!==r?q(u,r,{leading:!1,maxWait:r,trailing:!0}):u;return{getItem:t=>{const r=e.get(t);return void 0===r?null:c(r)},setItem:(e,t)=>{n?.getIsApplyingRemote()||d(e,t)},removeItem:t=>{try{e.delete(t)}catch(e){f.error(new l("[createBaseStore]: Failed to delete persisted store data"),{error:e})}}}}(n,e,o,r);return{persistStorage:s,version:i}}(n,c,a?.syncContext),h=y?y.wrapOnRehydrateStorage(n.onRehydrateStorage,a?.syncContext):n.onRehydrateStorage,g=y?(e,t,r)=>(a&&(a.syncContext.setWithoutPersist=r.setState),y.stateCreator(e,t,r)):u,b=r.createWithEqualityFn()(t.subscribeWithSelector(t.persist(g,function(e,t,r){const n={name:e.storageKey,onRehydrateStorage:r,storage:t.persistStorage,version:t.version};return void 0!==e.merge&&(n.merge=e.merge),void 0!==e.migrate&&(n.migrate=e.migrate),n}(n,p,h))),Object.is);return y?Object.assign(b,{persist:Object.assign(b.persist,{hydrationPromise:y.hydrationPromise})}):b}function Z(e,t,r="s"){return 1===t?e:`${e}${r}`}function ee(e,t,r){const n=t.get(e);if(!n){const n=function(e,t,r,n=[]){return e&&"object"==typeof e?te(e,n,t,r,new WeakSet,new WeakMap):(r(t,n,!0),e)}(N(e)?e.getSnapshot():e.getState(),e,r);return t.set(e,n),n}return n}function te(e,t,r,n,o,i){return new Proxy(e,{get(s,c,a){if(o.has(s))return Reflect.get(s,c,a);if("__proto__"===c||"symbol"==typeof c)return c===Symbol.iterator&&(n(r,t,!0),o.add(s)),Reflect.get(s,c,a);const u=Reflect.get(s,c,s),l=String(c),f=t.concat(l);if("function"==typeof u)return Object.prototype.hasOwnProperty.call(s,c)?function(...e){return n(r,f,!0,{method:l,args:e.length?e:void 0}),Reflect.apply(u,s,e)}:(n(r,t,!0),u.bind(e));const d=!!u&&"object"==typeof u;return n(r,f,!d),d?(i.has(u)||i.set(u,te(u,f,r,n,o,i)),i.get(u)):u},getOwnPropertyDescriptor:(e,i)=>(n(r,t,!0),o.add(e),Reflect.getOwnPropertyDescriptor(e,i)),has:(e,o)=>(n(r,t,!0),Reflect.has(e,o)),ownKeys:e=>(n(r,t,!0),o.add(e),Reflect.ownKeys(e))})}function re(e){return t=>oe(t,e)}function ne(e,t){const r=e.slice(0,-1);return e=>{const n=oe(e,r),o=n?.[t.method];return"function"==typeof o?o.apply(n,t.args):void 0}}function oe(e,t){let r=e;for(const e of t){if(!r||"object"!=typeof r)return r;r=r[e]}return r}function ie(){const e=new Map;return{buildProxySubscriptions(t,r){const n=new Set;for(const[t,r]of e)ae(r,t,[],0,n);!function(e,t,r){for(const r of e)t(r.store,r.invocation?ne(r.path,r.invocation):re(r.path));r&&function(e){const t=e.size;console.log(`[📡 ${t} ${Z("Proxy Subscription",t)} 📡]:`,JSON.stringify(Array.from(e).map(e=>{const t=R(e.store),r=e.path.join(".");if(!e.invocation)return r?`$(${t}).${r}`:`$(${t})`;const n=e.invocation.args?.length??0;return`$(${t}).${r}${n?`(${n}_${Z("arg",n)})`:"()"}`}),null,2))}(e)}(n,t,r)},trackPath(t,r,n,o){let i=e.get(t);i||(i=se(),e.set(t,i)),ce(i,r,0,n,o)}}}function se(){return Object.create(null)}function ce(e,t,r,n,o){if(r===t.length)return n&&(e.isLeaf=!0),void(o&&(e.invocation=o));e.children||(e.children=se());const i=t[r];let s=e.children?.[i];s||(s=se(),e.children[i]=s),ce(s,t,r+1,n,o)}function ae(e,t,r,n,o,i=1){const s=e.children;if(!s)return void o.add({store:t,path:r,invocation:e.invocation,isLeaf:e.isLeaf??!1});const c=Object.keys(s),a=c.length;if(0!==a)if(e.isLeaf||n>=i&&a>1){o.add({store:t,path:r,invocation:e.invocation,isLeaf:e.isLeaf??!1});for(const e of c){const c=s[e];c.invocation&&ae(c,t,[...r,e],n+1,o,i)}}else if(n<i&&a>1&&!e.isLeaf)for(const e of c)ae(s[e],t,[...r,e],n+1,o,i);else{if(1===a){const e=c[0];return void ae(s[e],t,[...r,e],n+1,o,i)}o.add({store:t,path:r,invocation:e.invocation,isLeaf:e.isLeaf??!1})}else o.add({store:t,path:r,invocation:e.invocation,isLeaf:e.isLeaf??!1})}var ue=!1,le=!1,fe=new Map,de=new Map,ye=new Map,pe=null,he=1/0;function ge(){return ue}function be(){return pe}function me(){ue||(ue=!0,le||(le=!0,queueMicrotask(()=>{le=!1,e.unstable_batchedUpdates(()=>{for(;de.size>0;){const e=he,t=ye.get(e);if(t){ye.delete(e);for(const e of t)de.delete(e);pe=e;for(const e of t)e();if(pe=null,ye.size>0){he=1/0;for(const e of ye.keys())e<he&&(he=e)}else he=1/0}else{he=1/0;for(const e of ye.keys())e<he&&(he=e)}}for(;fe.size>0;){const e=Array.from(fe.values());fe.clear();for(const t of e)t()}}),ue=!1,pe=null,de.clear(),ye.clear(),he=1/0})))}function Se(e,t){ue&&fe.set(e,t)}var ve=e=>e;function we(e,t=Object.is){return r=function(e,t=Object.is){const{debounceOptions:r,debugMode:n,equalityFn:o,keepAlive:i,lockDependencies:s}="function"==typeof(l=t)?{debounceOptions:void 0,debugMode:!1,equalityFn:l,keepAlive:!1,lockDependencies:!1}:{debounceOptions:l.debounce,debugMode:(c&&l.debugMode)??!1,equalityFn:l.equalityFn??Object.is,keepAlive:l.keepAlive??!1,lockDependencies:l.lockDependencies??!1},a=String(je+=1),u=new Set;var l;i&&u.add(qe);const f=new Set;let d,y,p=Oe,h=!1,g=!0,b=!0,m=!0,S=0,v=!1,w=null,O=Oe;function j(e,t,r){if(!m||!u.size)return(t??ve)(N(e)?e.getSnapshot():e.getState());if(!t)return d||(d=new WeakMap),y||(y=ie()),ee(e,d,y.trackPath);const n=e.subscribe(t,z,{equalityFn:r??Object.is,isDerivedStore:!0});return f.add(n),t(N(e)?e.getSnapshot():e.getState())}function F(e){for(const t of f)t(e);f.clear()}function A(){if(!b&&Fe(p))return p;b=!1,m&&F(!0);const t=p,r=Fe(t);p=function(t){g=!0;const r=p,i=e(t);return Fe(r)&&o(r,i)?(n&&console.log("[🥷 Derive Complete 🥷]: No change detected"),g=!1,r):i}(j);const i=n&&(!r||"verbose"===n&&m);if(i){r?"verbose"===n&&console.log("[🌀 Rebuilding Subscriptions 🌀]: Created…"):console.log("[🌀 Initial Derive Complete 🌀]: Created…");const e=f.size;console.log(`[🎯 ${e} ${Z("Selector Subscription",e)} 🎯]`)}return y&&m&&(y.buildProxySubscriptions((e,t)=>{const r=e.subscribe(t,z,{equalityFn:Object.is,isDerivedStore:!0});f.add(r)},i),d=void 0,y=void 0),g&&r&&function(e,t){const r=function(){const e=u.has(qe)?u.size-1:u.size;return S>0&&S<e}(),o=!S||r,i=r||null!==be()||ge()&&o;r&&me(),n&&console.log(`[📻 Derive Complete 📻]: Notifying ${u.size} ${Z("watcher",u.size)}`);for(const t of u){if("function"==typeof t||!t.isDerivedWatcher)continue;const r=t.selector(e);if(!t.equalityFn(t.currentSlice,r)){const e=t.currentSlice;t.currentSlice=r,t.listener(r,e)}}i?v||(v=!0,Fe(O)||(O=t),Se(a,I)):C(e,t)}(p,t),s&&(m=!1),p}function C(e,t){for(const r of u)if("function"==typeof r)r(e,t);else if(!r.isDerivedWatcher){const t=r.selector(e);if(!r.equalityFn(r.currentSlice,t)){const e=r.currentSlice;r.currentSlice=t,r.listener(t,e)}}}function I(){u.size&&(v&&function(){if(b&&!S&&A(),!Fe(p))return;const e=Fe(O)?O:p;C(p,e)}(),v=!1,O=Oe)}const k=r?q(E,"number"==typeof r?r:r.delay,"number"==typeof r?{leading:!1,maxWait:r,trailing:!0}:r):void 0,T=k??(()=>{h||(h=!0,queueMicrotask(E))});function E(){u.size&&(h=!1,b&&A())}function x(e){e?queueMicrotask(()=>{u.size||K()}):K()}function M(){E(),w=null}function z(){if(!b){if(b=!0,!k){if(S){me();const e=be(),t=null===e?0:e+1;if(null!==w&&t<=w)return;return w=t,void function(e,t){if(!ue)return;const r=t<0?0:0|t,n=de.get(e);if(void 0===n){de.set(e,r);let t=ye.get(r);return t||(t=new Set,ye.set(r,t)),t.add(e),void(r<he&&(he=r))}if(r>n){const t=ye.get(n);if(t&&(t.delete(e),0===t.size&&(ye.delete(n),n===he))){he=1/0;for(const e of ye.keys())e<he&&(he=e)}de.set(e,r);let o=ye.get(r);o||(o=new Set,ye.set(r,o)),o.add(e),r<he&&(he=r)}}(M,t)}if(ge())return void(v||(v=!0,Fe(p)&&(O=p),Se(a,I)))}w=null,S&&!r?A():T()}}function D(){return b||!Fe(p)?u.size>0?A():e(j):p}function K(e=!0){i&&e||(k?.cancel(),F(),u.clear(),S=0,y=void 0,d=void 0,m=!0,h=!1,b=!0,p=Oe,v=!1,O=Oe,w=null)}return{destroy:()=>K(!1),flushUpdates:function(){u.size&&(k?k.flush():b&&A())},getSnapshot:function(){if(!Fe(p)){u.add(qe);const e=A();return u.delete(qe),e}return h&&E(),p},getState:D,subscribe:function(...e){if(1===e.length){const t=e[0];return u.add(t),1!==u.size||Fe(p)||D(),()=>{u.delete(t),u.size||x(!1)}}const[t,r,n]=e,o=n?.equalityFn??Object.is,i=n?.isDerivedStore??!1,s={currentSlice:void 0,equalityFn:o,isDerivedWatcher:i,listener:r,selector:t};return u.add(s),s.currentSlice=t(D()),i&&(S+=1),n?.fireImmediately&&r(s.currentSlice,s.currentSlice),()=>{u.delete(s),i&&(S-=1),u.size||x(i)}},getInitialState:()=>{throw new Error("[createDerivedStore]: getInitialState() is not available on derived stores.")},setState:()=>{throw new Error("[createDerivedStore]: setState() is not available on derived stores.")}}}(e,t),Object.assign(function(e=ve,t=void 0){return n.useSyncExternalStoreWithSelector(r.subscribe,r.getSnapshot,void 0,e,t)},r);var r}var Oe=Symbol(),je=0;function qe(){}function Fe(e){return e!==Oe}var Ae=class{constructor({disableAutoRefetching:e,initialEnabled:t}){this.count=0,this.enabled=!1,this.lastSubscriptionTime=null,this.fetchThrottleMs=null,this.onSubscribe=null,this.onLastUnsubscribe=null,this.enabled=t,e&&(this.fetchThrottleMs=T.seconds(5))}init({onSubscribe:e,onLastUnsubscribe:t}){this.onSubscribe=e,this.onLastUnsubscribe=t}get(){return{enabled:this.enabled,lastSubscriptionTime:this.lastSubscriptionTime,subscriptionCount:this.count}}setEnabled(e){this.enabled=e}subscribe(){const e=0===this.count,t=null!==this.fetchThrottleMs&&null!==this.lastSubscriptionTime&&!e&&Date.now()-this.lastSubscriptionTime<=this.fetchThrottleMs;return this.onSubscribe?.(this.enabled,e,t),this.count+=1,this.lastSubscriptionTime=Date.now(),e=>{const t=1===this.count;this.count=Math.max(this.count-1,0),t&&(this.onLastUnsubscribe?.(e),this.lastSubscriptionTime=null)}}},Ce={Error:"error",Idle:"idle",Loading:"loading",Success:"success"};function Ie(e,t){const r=Object.prototype.hasOwnProperty;function n(e,t){for(const r of e.keys())if(Ie(r,t))return r}let o,i,s;if(e===t)return!0;if(e&&t&&(o=e.constructor)===t.constructor){if(o===Date)return e.getTime()===t.getTime();if(o===RegExp)return e.toString()===t.toString();if(o===Array){if((i=e.length)===t.length)for(;i--&&Ie(e[i],t[i]););return-1===i}if(o===Set){if(e.size!==t.size)return!1;for(let r of e){if(s=r,s&&"object"==typeof s&&(s=n(t,s),!s))return!1;if(!t.has(s))return!1}return!0}if(o===Map){if(e.size!==t.size)return!1;for(let r of e){if(s=r[0],s&&"object"==typeof s&&(s=n(t,s),!s))return!1;if(!Ie(r[1],t.get(s)))return!1}return!0}if(o===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(o===DataView){if((i=e.byteLength)===t.byteLength)for(;i--&&e.getInt8(i)===t.getInt8(i););return-1===i}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){const r=e,n=t;if((i=r.byteLength)===n.byteLength)for(;i--&&r[i]===n[i];);return-1===i}if(!o||"object"==typeof e){i=0;for(const n in e){if(r.call(e,n)&&++i&&!r.call(t,n))return!1;if(!(n in t)||!Ie(e[n],t[n]))return!1}return Object.keys(t).length===i}}return e!=e&&t!=t}var ke=new WeakMap,Te=new WeakMap;function Ee(e,t=xe,r=Ie){return function(e,t,r){let n=Te.get(e);n||(n=new Map,Te.set(e,n));let o=n.get(t);o||(o=new Map,n.set(t,o));const i=o.get(r);if(i)return i;const[s,c,a]=ze(e,t,r),u=new Map,l=e=>{const t={get(t,r){if("value"===r){let t=c();const r=e.split(".");for(const e of r)e&&(t=t[e]);return t}const n="string"==typeof r?r:r.toString(),o=e?`${e}.${n}`:n,i=u.get(o);if(i)return i;const a=l(o);return ke.set(a,s),u.set(o,a),a},set(t,r,n){const o=e.split(".");return""===o[0]&&o.shift(),a(o,n),!0}};return new Proxy(Object.create(null),t)},f=l("");return s(()=>{}),ke.set(f,s),o.set(r,f),f}(e,t,r)}var xe=e=>e,Me=(e,t,r)=>{if(!t.length)return r;const[n,...o]=t,i=e[n],s=Me(i,o,r);if(Ie(i,s))return e;const c=Array.isArray(e)?e.slice():{...e};return c[n]=s,c},ze=(e,t,r)=>{const n=new Set,o=N(e);let i,s=t(o?e.getSnapshot():e.getState());return[c=>(n.size||(i=e.subscribe(t,e=>{s=e,n.forEach(e=>e())},{equalityFn:r,isDerivedStore:o})),n.add(c),()=>{n.delete(c),!n.size&&i&&(i(),i=void 0)}),()=>(n.size||(s=t(e.getState())),s),(r,n)=>{if(t!==xe)throw new Error("Cannot set a value with a selector");e.setState(e=>Me(e,r,n),!0)}]};function De(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var[Ke,Pe]=[!0,!1],$e={error:Ke,lastFetchedAt:Ke,queryCache:Ke,queryKey:Ke,status:Ke,enabled:Pe,fetch:Pe,getCacheEntry:Pe,getData:Pe,getStatus:Pe,isDataExpired:Pe,isStale:Pe,reset:Pe},Le=T.seconds(5);function Re(e,t){const r=t?.baseDelay??T.seconds(5),n=t?.maxDelay??T.minutes(5),o=Math.pow(2,e);return Math.min(r*o,n)}function Ne(e){return JSON.stringify(Object.keys(e).sort().map(t=>e[t]))}function We(e){return JSON.stringify(_e(e))}function _e(e){return"object"!=typeof e||null===e?e:Object.keys(e).sort().reduce((t,r)=>{const n=e[r];return t[r]=null!==n&&"object"==typeof n?_e(n):n,t},{})}function Qe(e,t,r,n){return n?Ue(n,r)?n:{...Ve(e,t),...n}:Ve(e,t)}function Ve(e,t){const r=t?.params??Object.create(null);for(const t in e?.params){const n=e.params[t];n&&(r[t]=n.value)}return r}function Je(){return Object.create(null)}function Ue(e,t){if(!e)return!1;for(const r of t)if(!(r in e))return!1;return!0}function Be(e,t,r){if(!r.queryCache)return r;const n=Date.now(),o=t??(e&&r.queryKey||null);let i=!1;const s=Object.create(null);for(const e in r.queryCache){if(!De(r.queryCache,e))continue;const c=r.queryCache[e];c&&(n-(c.lastFetchedAt??c.errorInfo.lastFailedAt)<c.cacheTime||e===o)?!t&&c.errorInfo&&c.errorInfo.retryCount>0?(s[e]={...c,errorInfo:{...c.errorInfo,retryCount:0}},i=!0):s[e]=c:i=!0}return i?{...r,queryCache:s}:r}function He(e){return"function"==typeof e}function Ge(e){return!He(e)}function Xe(e,t){return r=>{const n={...r},o={};for(const e in n)De(n,e)&&e in $e&&($e[e]&&(o[e]=n[e]),delete n[e]);return{...t?t(n):k(n),...Be(e,null,o)}}}var Ye=Symbol(),Ze=Object.freeze({debugMode:!1,enabled:!0,equalityFn:Object.is,fireImmediately:!1}),et=Object.freeze({fireImmediately:!1,forceResubscribe:!1});function tt(e,t,r=et){if(t.current.isActive){if(!r?.forceResubscribe)return;t.current.unsubscribe()}t.current.options.debugMode&&console.log("[📡 useListen 📡] Attaching listener"),t.current.isActive=!0,t.current.resubscribe=(r=et)=>tt(e,t,r);const n=e.subscribe(e=>t.current.selector(e),(e,r)=>t.current.react(e,r,()=>{n(),t.current.isActive=!1}),r.fireImmediately?{...t.current.options,fireImmediately:!0}:t.current.options);t.current.unsubscribe=()=>{t.current.isActive&&(n(),t.current.isActive=!1)}}function rt(e){return"function"==typeof e?{equalityFn:e}:e??Ze}var nt=Symbol();function ot(e,t){return function(...r){const n=e.getState()[t];if("function"==typeof n)return n(...r);throw new Error(`[createVirtualStoreAction]: Method ${String(t)} is not a function`)}}function it(e,t){return"function"==typeof e[t]}exports.QueryStatuses=Ce,exports.applyStateUpdate=$,exports.configureStores=function(e){var t;c&&function(){if(b)throw new Error("[stores]: configureStores() called after first store creation. Call it earlier before creating any stores.")}(),e.logger&&(t=e.logger,f=t),p??(p=v(e))},exports.createBaseStore=Y,exports.createDerivedStore=we,exports.createQueryStore=function(e,t,r){S();const n="function"==typeof t?t:Je,o="object"==typeof t?t:r,i=o&&"storageKey"in o?o:void 0,{fetcher:s,onError:u,onFetched:y,setData:p,transform:h,abortInterruptedFetches:g=!0,cacheTime:b=T.days(7),debugMode:m=!1,disableAutoRefetching:v=!1,disableCache:w=!1,enabled:O=!0,keepPreviousData:j=!1,maxRetries:F=5,paramChangeThrottle:A=!1,params:C,retryDelay:I=Re,suppressStaleTimeWarning:k=!1,useParsableQueryKeys:E=!0}=e;let x="function"==typeof e.staleTime?T.minutes(2):e.staleTime??T.minutes(2);c&&!v&&!k&&x<Le&&console.warn(`[createQueryStore${i?.storageKey?`: ${i.storageKey}`:""}] ❌ Stale times under ${Le/1e3} seconds are not recommended. Provided staleTime: ${x/1e3} seconds`);const M=E?We:Ne,z=new Error("[createQueryStore: AbortError] Fetch interrupted"),D="function"==typeof b,K=c&&m,P=Object.keys(e.params??Object.create(null));let $=null,L=null,R=null,N=[],W=!1,_=!1,Q=null,V=null,J=null,U=null,B=null;const H={enabled:"function"!=typeof O&&O,error:null,lastFetchedAt:null,queryCache:{},queryKey:"",status:Ce.Idle},G=new Ae({disableAutoRefetching:v,initialEnabled:H.enabled}),X=()=>{Q&&(V=null,Q.abort(),Q=null)},Z=(t,r,o)=>{const c=o.setState,a=(e,t)=>{const r="function"==typeof e;if(r||void 0!==e.enabled){let t;const n=c(n=>{const i=r?e(n):e,s=void 0!==i.enabled?i.enabled:n.enabled;return s!==n.enabled&&(t=()=>((e,t)=>{e!==t&&B!==t&&(B=t,G.setEnabled(t),t?queueMicrotask(()=>o.getState().fetch(void 0,{updateQueryKey:!0})):(J||g)&&(g&&X(),J&&(clearTimeout(J),J=null)))})(n.enabled,s)),i});return t?.(),n}return c(e)};o.setState=a,G.init({onSubscribe:(n,o,i)=>{if(L||$||!C&&"function"!=typeof e.enabled&&"function"!=typeof e.staleTime){if(n)if(o){const e=Ve($,L),n=M(e),o=r();o.queryKey!==n&&t(e=>({...e,queryKey:n})),o.isStale()?S.fetch(e,void 0,!0):m(e,void 0)}else v&&!i&&S.fetch(void 0,void 0,!0)}else W=!0},onLastUnsubscribe:e=>{J&&(clearTimeout(J),J=null),g&&!e&&X()}});const m=(e,t)=>{if(v||t?.skipStoreUpdates)return;if(x<=0||x===1/0)return;J&&(clearTimeout(J),J=null);const n=M(e),o=r(),i=(w?U===n&&o.lastFetchedAt:o.queryCache[n]?.lastFetchedAt)||null,s=i?x-(Date.now()-i):x;J=setTimeout(()=>{const t=G.get();t.enabled&&t.subscriptionCount>0&&S.fetch(e,{force:!0},!0)},s)},S={...n(a,r,o),...H,async fetch(e,n,o=!1){const c=G.get();if(!n?.force&&!n?.skipStoreUpdates&&!c.enabled)return null;const v=r(),O=v.error,q=v.queryKey,A=v.status,C=Qe($,L,P,e),k=M(C),T=n?.staleTime??x,E=A===Ce.Loading,R=!!n?.skipStoreUpdates,N="boolean"==typeof n?.updateQueryKey?n.updateQueryKey:o?j:!R,W=o||!R&&(N||q===k);if(V?.promise&&V.key===k&&E)return K&&console.log("[🔄 Using Active Fetch 🔄] for params:",JSON.stringify(C)),V.promise;if(g&&!R&&!1!==n?.updateQueryKey&&X(),!n?.force){const e=v.lastFetchedAt,r=v.queryCache[k],o=r?.lastFetchedAt,i=r?.errorInfo,s=i&&i.retryCount>=F,a=(w?U===k&&e:o)||null;if(a&&!(Date.now()-a>=T)&&(!i||s||R))return W&&!R&&!J&&c.subscriptionCount>0&&0!==x&&x!==1/0&&m(C,n),N&&t(e=>e.queryKey!==k?{...e,queryKey:k}:e),K&&console.log("[💾 Returning Cached Data 💾] for params:",JSON.stringify(C)),r?.data??null}!R&&W&&(J&&(clearTimeout(J),J=null),!O&&E||t(e=>({...e,error:null,status:Ce.Loading})),V={key:k});const _=n?.cacheTime??(D?b(C):b),B=async()=>{try{K&&(o||!e||Ue(e,P)?console.log("[🔄 Fetching 🔄] for params:",JSON.stringify(C)):console.log("[🔄 Fetching with Partial Params 🔄]\n","- Provided params:",`${JSON.stringify(e)}\n`,"- Filled in params:",`${JSON.stringify(Object.fromEntries(Object.keys(C).filter(t=>!(t in e)).map(e=>[e,C[e]])))}`));const r=await(g&&!R&&W?(async e=>{const t=new AbortController;Q=t;try{return await new Promise((r,n)=>{t.signal.addEventListener("abort",()=>n(z),{once:!0}),Promise.resolve(s(e,t)).then(r,n)})}finally{Q===t&&(Q=null)}})(C):s(C,null)),c=Date.now();let u;K&&console.log("[✅ Fetch Successful ✅] for params:",JSON.stringify(C));try{u=h?h(r,C):r}catch(e){throw new l(`[createQueryStore: ${i?.storageKey||k}]: transform failed`,e)}if(R)return K&&console.log("[🥷 Successful Parallel Fetch 🥷] for params:",JSON.stringify(C)),"withCache"===n.skipStoreUpdates&&t(e=>{if(!p)return w?{...e,queryCache:{...e.queryCache,[k]:{cacheTime:_,data:u,errorInfo:null,lastFetchedAt:c}}}:e;let t=e;const r=t.queryCache[k];return p({data:u,params:C,queryKey:k,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}}),!w&&Object.is(r,t.queryCache[k])&&(t={...t,queryCache:{...t.queryCache,[k]:{cacheTime:_,data:u,errorInfo:null,lastFetchedAt:c}}}),t}),u;if((p?a:t)(e=>{let t={...e,error:null,lastFetchedAt:c,queryKey:N?k:e.queryKey,status:Ce.Success};if(p||w){if(p){K&&console.log("[💾 Setting Data 💾] for params:",JSON.stringify(C));const e=t.queryCache[k];p({data:u,params:C,queryKey:k,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}}),!w&&Object.is(e,t.queryCache[k])&&(t.queryCache={...t.queryCache,[k]:{cacheTime:_,data:null,errorInfo:null,lastFetchedAt:c}})}}else K&&console.log("[💾 Setting Cache 💾] for params:",JSON.stringify(C),"| Has previous data?:",!!t.queryCache[k]?.data),t.queryCache={...t.queryCache,[k]:{cacheTime:_,data:u,errorInfo:null,lastFetchedAt:c}};return w||b===1/0?t:Be(j,k,t)}),W&&(U=k,m(C,n)),y)try{y({data:u,fetch:S.fetch,params:C,set:a})}catch(e){f.error(new l(`[createQueryStore: ${i?.storageKey||k}]: onFetched callback failed`,e))}return u??null}catch(s){if(s===z)return K&&console.log("[❌ Fetch Aborted ❌] for params:",JSON.stringify(C)),null;const c=!o&&!0===n?.throwOnError,a=d(s);if(R||!W){if(f.error(new l(`[createQueryStore: ${i?.storageKey||k}]: Failed to fetch data`,a)),c)throw a;return null}const y=w?void 0:r().queryCache[k],p=y?.errorInfo?.retryCount??0,h=p+1;if(u?.(a,p),p<F){if(G.get().subscriptionCount>0){const t="function"==typeof I?I(h,a):I;t!==1/0&&(J&&clearTimeout(J),J=setTimeout(()=>{const{enabled:t,subscriptionCount:r}=G.get();t&&r>0&&S.fetch(e,{force:!0},!0)},t))}t(e=>({...e,error:a,queryCache:{...e.queryCache,[k]:{cacheTime:y?.cacheTime??_,data:y?.data??null,lastFetchedAt:y?.lastFetchedAt??null,errorInfo:{error:a,lastFailedAt:Date.now(),retryCount:h}}},queryKey:N?k:e.queryKey,status:Ce.Error}))}else t(e=>({...e,error:a,queryCache:{...e.queryCache,[k]:{cacheTime:y?.cacheTime??_,data:y?.data??null,lastFetchedAt:y?.lastFetchedAt??null,errorInfo:{error:a,lastFailedAt:Date.now(),retryCount:F}}},queryKey:N?k:e.queryKey,status:Ce.Error}));if(f.error(new l(`[createQueryStore: ${i?.storageKey||k}]: Failed to fetch data`,a)),c)throw a;return null}finally{!R&&W&&(V=null)}};return R||!W?B():(V={key:k,promise:B()}).promise},getCacheEntry(e){if(w)return null;const t=r(),n=e?"string"==typeof e?e:M(Qe($,L,P,e)):t.queryKey;return t.queryCache[n]??null},getData(e){if(w)return null;const t=r().getCacheEntry(e);return t&&null!==t.data?j?t.data:t.lastFetchedAt&&Date.now()-t.lastFetchedAt>=t.cacheTime?null:t.data:null},getStatus:function(e){switch(e){case"isIdle":return r().status===Ce.Idle;case"isLoading":return r().status===Ce.Loading;case"isSuccess":{const e=r(),t=e.queryCache[e.queryKey]?.lastFetchedAt;return"number"==typeof t||e.status===Ce.Success}case"isError":case"isInitialLoad":case void 0:{const t=r(),n=t.queryCache[t.queryKey],o=(w?U===t.queryKey&&t.lastFetchedAt:n?.lastFetchedAt)||null,i=t.status;switch(e){case"isError":{const e=t.queryCache[t.queryKey];return w?"error"!==i:"number"==typeof e?.errorInfo?.lastFailedAt}case"isInitialLoad":return!o&&i===Ce.Loading}return{isError:i===Ce.Error,isIdle:i===Ce.Idle,isLoading:i===Ce.Loading,isInitialLoad:!o&&i===Ce.Loading,isSuccess:i===Ce.Success}}}},isDataExpired(e){const t=r(),n=t.queryCache[t.queryKey],o=t.queryKey,i=t.lastFetchedAt,s=(w?U===o&&i:n?.lastFetchedAt)||null;if(!s)return!0;const c=e??n?.cacheTime;return void 0===c||Date.now()-s>=c},isStale(e){const t=r(),n=t.queryKey,o=(w?U===n&&t.lastFetchedAt:t.queryCache[n]?.lastFetchedAt)||null;if(!o)return!0;const i=e??x;return Date.now()-o>=i},reset(e=!1){for(const e of N)e();N=[],$=null,L=null,R=null,X(),J&&(clearTimeout(J),J=null),V=null,U=null,e&&t(e=>({...e,...H}))}},O=o.subscribe;return o.subscribe=(...e)=>{const t=_?()=>{}:G.subscribe(),r=1===e.length?O(e[0]):O(e[0],e[1],e[2]);return e=>{t(e),r()}},S},ee=i?.storageKey?Y(Z,Object.assign(Object.create(null),i,{partialize:Xe(j,i.partialize)})):o&&!("storageKey"in o)?Y(Z,o):Y(Z),te=ee.getState(),re=te.error,ne=te.enabled,oe=te.queryKey;if(oe&&!re&&(U=oe),_=!0,C||"function"==typeof e.enabled){const{directValues:e,enabledAttachVal:t,enabledDirectValue:r,attachVals:n}=function(e,t,r){const n=Object.create(null),o=Object.create(null),i=Object.create(null);for(const e in t){if(!De(t,e))continue;const s=t[e];if(He(s)){const t=s(Ee,r);n[e]=t,i[e]=t.value}else Ge(s)&&(o[e]=s,i[e]=s)}let s,c=null,a=null;if(He(e)){const t=e(Ee,r);s=t.value,c=t}else s=e,a=e;return{attachVals:n,directValues:o,enabledAttachVal:c,enabledDirectValue:a,resolvedEnabled:s,resolvedParams:i}}(O,C,ee);$={enabled:t,params:n},L={enabled:r,params:e}}"function"==typeof e.staleTime&&(R=e.staleTime(Ee,ee),x=R.value);const ie=function(){let e,t=!1;return function(...r){e=r,t||(t=!0,queueMicrotask(()=>{t=!1,(e=>{te.fetch(e??Ve($,L),{updateQueryKey:j})})(...e)}))}}();function se(){let e;if(!j){e=Ve($,L);const t=M(e);ee.setState(e=>({...e,queryKey:t}))}ie(e)}const ce=a||!A?se:q(se,"number"==typeof A?A:A.delay,"number"==typeof A?{leading:!1,maxWait:A,trailing:!0}:A);if($?.enabled){const e=$.enabled,t=ke.get(e);if(t){let r=e.value;ne!==r&&ee.setState(e=>({...e,enabled:r})),r&&G.setEnabled(r),K&&console.log("[🌀 Enabled Subscription 🌀] Initial value:",r);const n=t(()=>{const t=e.value;t!==r&&(K&&console.log("[🌀 Enabled Change 🌀] - [Old]:",`${r},`,"[New]:",t),r=t,ee.setState(e=>({...e,enabled:t})))});N.push(n)}}else ne!==H.enabled&&ee.setState(e=>({...e,enabled:H.enabled}));for(const e in $?.params){const t=$.params[e];if(!t)continue;const r=ke.get(t);if(K&&console.log("[🌀 Param Subscription 🌀] Subscribed to param:",e),r){let n=t.value;const o=r(()=>{const r=t.value;Ie(n,r)||(K&&console.log("[🌀 Param Change 🌀] -",e,"- [Old]:",`${n?.toString()},`,"[New]:",r?.toString()),n=r,ce())});N.push(o)}}if(R){const e=ke.get(R);if(e){const t=R;let r=t.value;K&&console.log("[🌀 StaleTime Subscription 🌀] Initial value:",r);const n=e(()=>{const e=t.value;e!==r&&(K&&console.log("[🌀 StaleTime Change 🌀] - [Old]:",`${r},`,"[New]:",e),r=e,x=e,ee.getState().fetch())});N.push(n)}}return _=!1,W&&queueMicrotask(ce),ae=ee,ue="_queryStore",Object.assign(ae,{[ue]:!0});var ae,ue},exports.createStoreActions=function(e,t){const r=function(e){const t=e.getState(),r=Object.create(null);if(c&&("object"!=typeof t||null===t))throw new Error("[createStoreActions]: State is not an object");if(Q(e)){for(const n in t)it(t,n)&&(r[n]=ot(e,n));return r}for(const e in t)it(t,e)&&(r[e]=t[e]);return r}(e);return t?Object.assign(r,t):r},exports.createVirtualStore=function(e,t,r){const n="function"==typeof t,o=n?t:void 0,i=n?r:t,s=new Set,c=we(e,{debugMode:i?.debugMode??!1,equalityFn:function(e,t){const r=Object.is(e,t);return r||(function(e,t){for(const r of s){r.unsubscribe();const n=r.args;if(1===n.length){const o=n[0],i=e.getState(),s=t.getState(),c=t.subscribe(o);r.unsubscribe=c,Object.is(s,i)||o(s,i);continue}const o=n[0],i=n[1];let s=n[2];s?.fireImmediately&&(s={...s,fireImmediately:!1});const c=o(e.getState()),a=o(t.getState()),u=t.subscribe(o,i,s);r.unsubscribe=u,(s?.equalityFn??Object.is)(c,a)||i(a,c)}}(e,t),L(e)),r},keepAlive:!0,lockDependencies:i?.lockDependencies??!0}),a=c.getState().persist,u=(l=c.getState,function(e,t){return t?l().setState(e,t):l().setState(e)});var l;return Object.assign(function(e,t){const r=c();return e?r(e,t):r()},{_virtualStore:!0,destroy:()=>c.destroy(),getInitialState:()=>c.getState().getInitialState(),getState:()=>c.getState().getState(),persist:a,setState:u,subscribe:function(...e){const t={args:e,unsubscribe:1===e.length?c.getState().subscribe(e[0]):c.getState().subscribe(e[0],e[1],e[2])};return s.add(t),()=>{t.unsubscribe(),s.delete(t)}}},o?o(c.getState):void 0)},exports.deepEqual=function e(t,r){if("object"!=typeof t||null==t||"object"!=typeof r||null==r)return t===r;if(Object.is(t,r))return!0;const n=Object.keys(t);if(n.length!==Object.keys(r).length)return!1;for(const o of n)if(!(o in r)||!e(t[o],r[o]))return!1;return!0},exports.defaultRetryDelay=Re,exports.destroyStore=L,exports.destroyStores=function(e,t){for(const r of Array.isArray(e)?e:Object.values(e))r&&!t?.skipDestroy?.(r)&&L(r,t)},exports.getLegacyQueryKey=Ne,exports.getQueryKey=We,exports.getStoreName=R,exports.isDerivedStore=function(e){return"flushUpdates"in e},exports.isPersistedStore=_,exports.isQueryStore=W,exports.isVirtualStore=Q,exports.parseQueryKey=function(e){return JSON.parse(e)},exports.replacer=C,exports.reviver=I,exports.shallowEqual=function(e,t){if("object"!=typeof e||null==e||"object"!=typeof t||null==t)return e===t;if(Object.is(e,t))return!0;const r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(const n of r)if(!Object.is(e[n],t[n]))return!1;return!0},exports.time=T,exports.useListen=function(e,t,r,n=Ze){const i=function(){const e=o.useRef(Ye);return e.current===Ye&&(e.current=function(e,t,r){return{selector:e,react:t,isActive:!1,options:rt(r),resubscribe:()=>{},unsubscribe:()=>{}}}(t,r,n)),e}(),s=function(e){return"function"==typeof e?Ze.enabled:e?.enabled??Ze.enabled}(n);return i.current.react=r,i.current.selector=t,function(e,t){"function"==typeof t?e.current.options.equalityFn=t:t&&(e.current.options=t??Ze)}(i,n),o.useLayoutEffect(()=>{if(s)return tt(e,i),()=>function(e){e.current.options.debugMode&&console.log("[🗑️ useListen 🗑️] Detaching listener"),e.current.resubscribe=()=>{},e.current.unsubscribe(),e.current.unsubscribe=()=>{},e.current.isActive=!1}(i)},[s,e]),i},exports.useStableValue=function(e){const t=o.useRef(nt);return t.current===nt&&(t.current=e()),t.current};
1
+ var e=require("react-native"),t=require("zustand/middleware"),n=require("zustand/vanilla"),r=require("react"),o=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)(function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),i="ios"===e.Platform.OS;e.Platform.OS;var s="development"===process.env.NODE_ENV,c="test"===process.env.NODE_ENV;function a(e){let t;function n(){if(t)return t;try{const n=function(e){const{createMMKV:t,MMKV:n}=o("react-native-mmkv");if("function"==typeof t)return t({id:e});if("function"==typeof n)return new n({id:e});throw new Error("[stores]: react-native-mmkv module does not export MMKV/createMMKV.")}(e);let r;if("function"==typeof n.delete?r=n.delete.bind(n):"function"==typeof n.remove&&(r=n.remove.bind(n)),"function"!=typeof r)throw new Error("[stores]: Storage instance does not conform to expected interface");const i={clearAll:n.clearAll.bind(n),contains:n.contains.bind(n),delete:r,get:n.getString.bind(n),getAllKeys:n.getAllKeys.bind(n),set:n.set.bind(n)};t=i}catch(e){throw new Error("[stores] react-native-mmkv could not be loaded.\n\nPersisted stores require a storage backend. Either:\n - Install MMKV (the default): yarn add react-native-mmkv\n - Or provide a custom adapter via configureStores()\n"+(e instanceof Error?`\n${e.message}`:""))}return function(e){if(!e||"function"!=typeof e.get||"function"!=typeof e.set||"function"!=typeof e.delete||"function"!=typeof e.clearAll)throw new Error("[stores]: Storage instance does not conform to expected interface")}(t),t}return{clearAll:()=>n().clearAll(),contains:e=>n().contains(e),delete:e=>n().delete(e),get:e=>n().get(e),getAllKeys:()=>n().getAllKeys(),set:(e,t)=>n().set(e,t)}}var u={debug:(e,t)=>{s&&console.debug(e,t)},error:(e,t)=>{s&&!c&&console.error(e,t)},info:(e,t)=>{s&&console.info(e,t)},warn:(e,t)=>{s&&console.warn(e,t)}},l=class extends Error{constructor(e,t){super(e),this.name="StoresError",void 0!==t&&Object.defineProperty(this,"cause",{configurable:!0,value:t,writable:!0})}};function f(e){return e instanceof Error?e:new Error(String(e))}var d=Object.prototype.hasOwnProperty;function y(e,t){return d.call(e,t)}function p(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function h(e){return e}function g(){}Object.freeze(Object.create(null));var b,m,S,v=class{destroy(){}publish(){}},w=class{constructor(){this.sessionId="noop"}register(e){return new v}},q=!1;function O(){return S??(S=F(void 0))}function j(){q=!0}function F(e){return{storage:e?.storage??a(e?.storageKeyPrefix??"stores:"),syncEngine:e?.syncEngine??(b||(b=new w),b)}}var _=Symbol("empty selection"),A=Object.is;function C(e,t,n,o,i=A){const s=r.useRef(null);let c=e,a=t,u=n;if(o){let r=s.current;null===r&&(r=function(e,t,n,r,o){const i={committedEqualityFn:o,committedSelector:r,committedSource:e,committedValue:_,equalityFn:o,getSelectedServerSnapshot:()=>function(e){return T(e,(e.getServerStoreSnapshot??e.getStoreSnapshot)())}(i),getSelectedSnapshot:()=>I(i),getServerStoreSnapshot:n,getStoreSnapshot:t,latestSnapshot:_,latestSource:_,selector:r,selectedSource:e,selectedSubscribe:()=>g,source:e,value:_,valueEqualityFn:o,valueSelector:r,valueSnapshot:_};return i.selectedSubscribe=k(i,e),i}(e,t,n,o,i),s.current=r),function(e,t,n,r,o,i){e.source===t&&e.getStoreSnapshot===n||(e.latestSnapshot=_),e.source=t,e.getStoreSnapshot=n,e.getServerStoreSnapshot=r,e.selector=o,e.equalityFn=i,e.selectedSource!==t&&(e.selectedSource=t,e.selectedSubscribe=k(e,t))}(r,e,t,n,o,i),c=r.selectedSubscribe,a=r.getSelectedSnapshot,u=void 0===n?void 0:r.getSelectedServerSnapshot}const l=r.useSyncExternalStore(c,a,u);return r.useDebugValue(l),l}function k(e,t){return n=>(function(e){e.committedEqualityFn=e.equalityFn,e.committedSelector=e.selector,e.committedSource=e.source,e.committedValue=e.value===_?I(e):e.value}(e),t(r=>{e.latestSnapshot=r,e.latestSource=t;const o=e.committedValue;if(o===_||e.committedSource!==t)return void n();const i=e.committedSelector,s=e.committedEqualityFn;if(e.selector===i&&e.equalityFn===s){const t=i(r);if(s===A?A(o,t):s(o,t))return;return e.committedValue=t,e.value=t,e.valueEqualityFn=s,e.valueSelector=i,e.valueSnapshot=r,void n()}if(e.source!==t)return void n();const c=e.value;if(c===_)return;const a=e.selector(r),u=e.equalityFn(c,a);e.committedEqualityFn=e.equalityFn,e.committedSelector=e.selector,e.committedValue=E(e,r,u?c:a),u||n()}))}function I(e){const t=function(e){if(e.latestSource===e.source&&e.latestSnapshot!==_)return e.latestSnapshot;const t=e.getStoreSnapshot();return e.latestSnapshot=t,e.latestSource=e.source,t}(e);return T(e,t)}function T(e,t){const n=e.value;if(n!==_&&A(e.valueSnapshot,t)&&e.valueSelector===e.selector&&e.valueEqualityFn===e.equalityFn)return n;const r=e.selector(t);if(n!==_&&(e.equalityFn===A?A(n,r):e.equalityFn(n,r)))return E(e,t,n);const o=e.committedValue;return o!==_&&o!==n&&e.committedSource===e.source&&(e.equalityFn===A?A(o,r):e.equalityFn(o,r))?E(e,t,o):E(e,t,r)}function E(e,t,n){return e.value=n,e.valueEqualityFn=e.equalityFn,e.valueSelector=e.selector,e.valueSnapshot=t,n}function x(e,t){return(e,t)=>function(e,t){const r=n.createStore(e);return Object.assign(function(e,n){return C(r.subscribe,r.getState,r.getInitialState,e,n??t)},r)}(e,t)}function D(){let e,t,n=!1;return{complete:function(){!n&&e&&(n=!0,e(),e=void 0,t=void 0)},isHydrated:function(){return n},fail:function(r){!n&&t&&(n=!0,t(r),t=void 0,e=void 0)},promise:new Promise((n,r)=>{e=n,t=r})}}var M=Math.max,z=Math.min;function K(e,t=0,n={}){let r,o,i,s,c,a,u=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){const n=r,i=o;return r=o=void 0,u=t,s=n?e.apply(i,n):e.apply(i),s}function p(e){const n=e-(a??0);return void 0===a||n>=t||n<0||f&&void 0!==i&&e-u>=i}function h(){const e=P();if(p(e))return g(e);c=setTimeout(h,function(e){const n=t-(e-(a??0));return f&&void 0!==i?z(n,i-(e-u)):n}(e))}function g(e){return c=void 0,d&&r?y(e):(r=o=void 0,s)}function b(...e){const n=P(),i=p(n);if(r=e,o=this,a=n,i){if(void 0===c)return function(e){return u=e,c=setTimeout(h,t),l?y(e):s}(a);if(f)return clearTimeout(c),c=setTimeout(h,t),y(a)}return void 0===c&&(c=setTimeout(h,t)),s}return t=R(t)||0,function(e){const t=typeof e;return null!==e&&("object"===t||"function"===t)}(n)&&(l=!!n.leading,f="maxWait"in n,i=f?M(R(n.maxWait)||0,t):void 0,d="trailing"in n?!!n.trailing:d),b.cancel=function(){void 0!==c&&clearTimeout(c),u=0,r=a=o=c=void 0},b.flush=function(){return void 0===c?s:g(P())},b}function P(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}function R(e){if("number"==typeof e)return e;if("symbol"==typeof e||void 0===e)return NaN;if("object"==typeof e&&null!==e){const t="function"==typeof e.valueOf?e.valueOf():e;e="object"==typeof t?t+"":t}return"string"!=typeof e?0===e?e:+e:(e=e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),/^0b[01]+$/i.test(e)?parseInt(e.slice(2),2):/^0o[0-7]+$/i.test(e)?parseInt(e.slice(2),8):/^[-+]0x[0-9a-f]+$/i.test(e)?NaN:+e)}function $(e,t){return t instanceof Map?{__type:"Map",entries:Array.from(t.entries())}:t instanceof Set?{__type:"Set",values:Array.from(t)}:t}function L(e,t){return function(e){return"object"==typeof e&&null!==e&&"__type"in e&&"Map"===e.__type}(t)?new Map(t.entries):function(e){return"object"==typeof e&&null!==e&&"__type"in e&&"Set"===e.__type}(t)?new Set(t.values):t}function V(e){if(!p(e))return e;const t={__proto__:null},n=Object.keys(e);for(let r=0;r<n.length;r++){const o=n[r],i=e[o];"function"!=typeof i&&(t[o]=i)}return t}var N={ms:e=>e,seconds:e=>1e3*e,minutes:e=>6e4*e,hours:e=>36e5*e,days:e=>864e5*e,weeks:e=>6048e5*e,infinity:1/0,zero:0},W=c?0:N.seconds(i?3:5);function U(e){return t=>{if("string"!=typeof t)throw new l("[createBaseStore]: Received non-string serialized state without a custom deserializer. Provide a deserializer on the store or storage adapter.");return function(e,t){try{return JSON.parse(e,t?L:void 0)}catch(e){throw u.error(new l("[createBaseStore]: Failed to deserialize persisted store data",e)),e}}(t,e)}}function H(e){return t=>function(e,t){try{return JSON.stringify(e,t?$:void 0)}catch(e){throw u.error(new l("[createBaseStore]: Failed to serialize store data",e)),e}}(t,e)}var Q=Object.freeze({shouldClear:!1});function B(e,t,n){if(!t||!e)return Q;const r=e.getFieldTimestampSnapshot();return function(e,t){const n=e.getSessionId(),r=e.getTimestamp();void 0!==n&&void 0!==r&&(t.syncMetadata={origin:n,timestamp:r})}(e,n),n.syncMetadata?r&&Object.keys(r).length>0?(n.syncMetadata.fields=r,{fieldSnapshot:r,shouldClear:!0}):(delete n.syncMetadata.fields,{fieldSnapshot:r,shouldClear:!1}):{fieldSnapshot:r,shouldClear:!1}}function J(e,t){e&&t.shouldClear&&t.fieldSnapshot&&Object.keys(t.fieldSnapshot).length&&e.clearFieldTimestamps(t.fieldSnapshot)}function G(e){return!!e&&!!e.getIsApplyingRemote()}var X=Object.freeze({QueryStore:Symbol("queryStore"),VirtualStore:Symbol("virtualStore")});function Y(e,...t){if(!0===t[1])return oe(t[0])?t[0](e):t[0];const n=oe(t[0])?t[0](e):t[0];return function(e){return Array.isArray(e)}(e)?n:{...e,...n}}function Z(e,t){te(e)?e.getState().reset(t?.clearQueryCache):function(e){return"destroy"in e}(e)&&e.destroy()}function ee(e){return"getSnapshot"in e}function te(e){return X.QueryStore in e}function ne(e){return!(!("persist"in e)||!e.persist)&&"string"==typeof e.persist.getOptions().name}function re(e){return X.VirtualStore in e}function oe(e){return"function"==typeof e}var[ie,se]=[0,1];function ce(e,t,n){if(!e)return!0;const r=e[ie],o=e[se];return!(t<r)&&(t>r||n>o)}function ae(e,t){return Object.prototype.hasOwnProperty.call(t,e)}function ue(e,t){if(!s)return!0;if(null===e||null===t)return e===t;const n=typeof e;return n===typeof t&&("object"!==n||Object.prototype.toString.call(e)===Object.prototype.toString.call(t))}function le(e){if(null===e)return"null";const t=typeof e;return"object"===t?Object.prototype.toString.call(e):t}function fe(e,n){j();const r=void 0!==n&&"string"==typeof n.storageKey,o=r?n.storageKey:void 0,i=n?.sync?function(e,t){if(!e)return null;if(!0===e){if(!t)throw new l("[createBaseStore]: sync: true requires a storageKey to inherit the key from");return{key:t}}if("string"==typeof e)return{key:e};const n=e,r=n.key??t;if(!r)throw new l("[createBaseStore]: sync requires either a key in the config or a storageKey to inherit from");return{...n,key:r}}(n.sync,o):void 0,s=r?n.storage??O().storage:void 0,c=i?function(e,t,n){const r=t.engine??O().syncEngine,o=function(e){let t,n,r,o=!1;return{isAsync:e,clearFieldTimestamps:function(e){if(e&&r){for(const t of Object.entries(e)){const e=t[0],n=t[1];r[e]===n&&delete r[e]}Object.keys(r).length||(r=void 0)}},getFieldTimestampSnapshot:function(){if(r)return{...r}},getIsApplyingRemote:()=>o,getSessionId:()=>t,getTimestamp:()=>n,mergeFieldTimestamps:function(e){if(r)for(const t of Object.entries(e)){const e=t[0],n=t[1],o=r[e];(void 0===o||n>o)&&(r[e]=n)}else r={...e}},onHydrationComplete:void 0,onHydrationFlushEnd:void 0,setIsApplyingRemote:e=>o=e,setSessionId:e=>t=e,setTimestamp:e=>n=e,setWithoutPersist:void 0}}(n);return{stateCreator:(i,s,c)=>{const a=new Map,f=[],d=[];let y=null,p=!1,h=!1,g=0,b=null,m=[],S=Promise.resolve(),v=!n;function w(e,t){if(o?.setSessionId&&o?.setTimestamp&&r.sessionId&&(o.setSessionId(r.sessionId),o.setTimestamp(e),o.mergeFieldTimestamps&&t.length>0)){const n={__proto__:null};for(const r of t)n[String(r)]=e;o.mergeFieldTimestamps(n)}}function q(e,t){if(p||!b)return t?i(e,t):i(e);const n=function(){const e=Date.now(),t=e>g?e:g+1;return g=t,t}();let o=[],s={__proto__:null};const c=r=>{const i=Y(r,e,t);for(const e of m)Object.is(i[e],r[e])||(o.push(e),s[e]=i[e]);return o.length&&w(n,o),i},u=t?i(c,!0):i(c);function l(){o.length&&function(e){const t=r.sessionId;for(const n of e.keys)a.set(n,[e.timestamp,t]);y&&h?y.publish?.({replace:e.replace,sessionId:t,timestamp:e.timestamp,values:e.values}):d.push(e)}({keys:o,replace:t??!1,values:s,timestamp:n})}return(f=u)&&"object"==typeof f&&"then"in f&&"function"==typeof f.then?u.finally(l):(l(),u);var f}const O=c.setState;c.setState=q;const j=e(q,s,c);if(m=t.fields??function(e){const t=[];for(const n of Object.entries(e)){if("function"==typeof n[1])continue;const e=n[0];t.push(e)}return t}(j),!m.length)return j;async function F(e){g=Math.max(g,e.timestamp);const n={__proto__:null},r=s(),i=e.timestamp;let c;if(e.replace)for(const t of m)ae(t,e.values)||ce(a.get(t),i,e.sessionId)&&(c??(c=[])).push(t);for(const o of m){if(!ae(o,e.values))continue;if(!b?.has(o))continue;if(!ce(a.get(o),i,e.sessionId))continue;const s=t.merge?.[o];if(s){const t=e.values[o],c=r[o];if(void 0!==t){const f=s(t,c,r,e.values),d=void 0!==c?c:t;if(!ue(f,d))return void u.error(new l(`[sync] Merge function for field "${String(o)}" returned ${le(f)} but expected ${le(d)}`));n[o]=f,a.set(o,[i,e.sessionId])}}else n[o]=e.values[o],a.set(o,[i,e.sessionId])}if(Object.keys(n).length>0||c?.length){p=!0,o&&o.setIsApplyingRemote(!0);try{if(e.replace){const e={...r};let t=!1;if(c?.length){t=!0;for(const t of c)delete e[t],a.delete(t)}for(const r in n){if(!Object.prototype.hasOwnProperty.call(n,r))continue;const o=n[r];void 0!==o&&(Object.is(e[r],o)||(t=!0),e[r]=o)}if(!t)return;await(o.setWithoutPersist??O)(e,!0)}else await(o.setWithoutPersist??O)(n)}finally{p=!1,o&&o.setIsApplyingRemote(!1)}}}function _(e){n?S=S.then(()=>F(e)):F(e)}if(b=new Set(m),y=r.register({apply:e=>{v?_(e):f.push(e)},fields:m,getState:s,key:t.key}),y?.onFirstSubscribe||y?.onLastUnsubscribe){let e=0;const t=c.subscribe;c.subscribe=(...n)=>{e||y.onFirstSubscribe?.(),e+=1;const r=1===n.length?t(n[0]):t(n[0],n[1],n[2]);return()=>{r(),e-=1,e||queueMicrotask(()=>{e||y.onLastUnsubscribe?.()})}}}function A(){h=!0,function(){if(y&&d.length){for(const e of d){const t=r.sessionId;for(const n of e.keys)a.set(n,[e.timestamp,t]);w(e.timestamp,e.keys),y.publish?.({replace:e.replace,sessionId:t,timestamp:e.timestamp,values:e.values})}d.length=0}}()}function C(){v=!0,function(){if(!f.length)return;const e=f.slice();f.length=0;for(const t of e)_(t)}()}return n?(o.onHydrationComplete=A,o.onHydrationFlushEnd=C):y.onHydrated?(y.onHydrated(A),C()):(A(),C()),j},syncContext:o}}(e,i,s?.async??!1):void 0,a=c?.stateCreator??e;if(!r)return x()(t.subscribeWithSelector(a),Object.is);const d=s?.async?function(e){let t,n,r,o=!1;return{hydrationPromise:()=>o?t?.promise??n??(n=Promise.resolve()):(t||(t=D()),t.promise),stateCreator:(n,i,s)=>{let c;return r=()=>{if(c?.length){for(const e of c)e[1]?s.setState(e[0],e[1]):s.setState(e[0]);c=void 0}},e((...e)=>o?!0===e[1]?n(e[0],e[1]):n(e[0]):(t||(t=D()),c||(c=[]),c.push(e),t.promise),i,s)},wrapOnRehydrateStorage:(e,n)=>i=>{const s=e?.(i);return(e,i)=>{o=!0,n?.onHydrationComplete?.(),r&&r(),n?.onHydrationFlushEnd?.(),i?t?.fail(f(i)):t?.complete(),s?.(e,i)}}}}(a):null,y=function(e,t,n){const r=t??e.storage??O().storage,o=(e.sync?void 0:e.persistThrottleMs??W)||void 0,i=e.version??0,s=r.async?function(e,t,n,r){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),i="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),s=t.partialize??V,c=t.deserializer??e.deserializer??U(o),a=t.serializer??e.serializer??H(o);async function f(t,n){try{if(G(r))return;n.state,n.state=s(n.state);const o=B(r,i,n),c=a(n);try{await e.set(t,c),J(r,o)}catch(e){u.error(new l("[createBaseStore]: Failed to persist store data",e))}}catch(e){u.error(new l("[createBaseStore]: Failed to serialize persisted store data",e))}}const d=void 0!==n?K(f,n,{leading:!1,maxWait:n,trailing:!0}):function(e){let t,n=null;return function(...r){return t=r,n||(n=new Promise(r=>{queueMicrotask(async()=>{try{await e(...t)}finally{n=null,r()}})})),n}}(f);return{getItem:async t=>{const n=await e.get(t);return void 0===n?null:c(n)},setItem:async(e,t)=>{if(!r?.getIsApplyingRemote())return await d(e,t)},removeItem:async t=>{try{await e.delete(t)}catch(e){u.error(new l("[createBaseStore]: Failed to delete persisted store data",e))}}}}(r,e,o,n):function(e,t,n,r){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),i="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),s=t.partialize??V,c=t.deserializer??e.deserializer??U(o),a=t.serializer??e.serializer??H(o);function f(t,n){try{if(G(r))return;n.state,n.state=s(n.state);const o=B(r,i,n),c=a(n);try{e.set(t,c),J(r,o)}catch(e){u.error(new l("[createBaseStore]: Failed to persist store data",e))}}catch(e){u.error(new l("[createBaseStore]: Failed to persist store data",e))}}const d=void 0!==n?K(f,n,{leading:!1,maxWait:n,trailing:!0}):f;return{getItem:t=>{const n=e.get(t);return void 0===n?null:c(n)},setItem:(e,t)=>{r?.getIsApplyingRemote()||d(e,t)},removeItem:t=>{try{e.delete(t)}catch(e){u.error(new l("[createBaseStore]: Failed to delete persisted store data",e))}}}}(r,e,o,n);return{persistStorage:s,version:i}}(n,s,c?.syncContext),p=d?d.wrapOnRehydrateStorage(n.onRehydrateStorage,c?.syncContext):n.onRehydrateStorage,h=d?(e,t,n)=>(c&&(c.syncContext.setWithoutPersist=n.setState),d.stateCreator(e,t,n)):a,g=x()(t.subscribeWithSelector(t.persist(h,function(e,t,n){const r={name:e.storageKey,onRehydrateStorage:n,storage:t.persistStorage,version:t.version};return void 0!==e.merge&&(r.merge=e.merge),void 0!==e.migrate&&(r.migrate=e.migrate),r}(n,y,p))),Object.is);return d?Object.assign(g,{persist:Object.assign(g.persist,{hydrationPromise:d.hydrationPromise})}):g}var de=!1,ye=!1,pe=new Map,he=new Map,ge=new Map,be=null,me=1/0;function Se(){return de}function ve(){return be}function we(){de||(de=!0,ye||(ye=!0,queueMicrotask(()=>{ye=!1,e.unstable_batchedUpdates(()=>{for(;he.size>0;){const e=me,t=ge.get(e);if(t){ge.delete(e);for(const e of t)he.delete(e);be=e;for(const e of t)e();if(be=null,ge.size>0){me=1/0;for(const e of ge.keys())e<me&&(me=e)}else me=1/0}else{me=1/0;for(const e of ge.keys())e<me&&(me=e)}}for(;pe.size>0;){const e=Array.from(pe.values());pe.clear();for(const t of e)t()}}),de=!1,be=null,he.clear(),ge.clear(),me=1/0})))}function qe(e,t){de&&pe.set(e,t)}var Oe=Symbol("stores.deriveProxy.unwrap");function je(e,t,n){const r=t.get(e);if(void 0!==r)return r;const o=function(e,t,n,r=[]){return e&&"object"==typeof e?Fe(e,r,t,n,new WeakSet,new WeakMap):(n(t,r,!0),e)}(ee(e)?e.getSnapshot():e.getState(),e,n);return t.set(e,o),o}function Fe(e,t,n,r,o,i){return new Proxy(e,{get(s,c,a){if(c===Oe)return r(n,t,!0),s;if(o.has(s))return Reflect.get(s,c,a);if("__proto__"===c||"symbol"==typeof c)return c===Symbol.iterator&&(r(n,t,!0),o.add(s)),Reflect.get(s,c,a);const u=Reflect.get(s,c,s),l=String(c),f=t.concat(l);if("function"==typeof u)return Object.prototype.hasOwnProperty.call(s,c)?function(...e){return r(n,f,!0,{method:l,args:e.length?e:void 0}),Reflect.apply(u,s,e)}:(r(n,t,!0),u.bind(e));const d=!!u&&"object"==typeof u;return r(n,f,!d),d?(i.has(u)||i.set(u,Fe(u,f,n,r,o,i)),i.get(u)):u},getOwnPropertyDescriptor:(e,i)=>(r(n,t,!0),o.add(e),Reflect.getOwnPropertyDescriptor(e,i)),has:(e,o)=>(r(n,t,!0),Reflect.has(e,o)),ownKeys:e=>(r(n,t,!0),o.add(e),Reflect.ownKeys(e))})}function _e(e,t){if(!e||"object"!=typeof e)return e;const n=function(e){const t=Reflect.get(e,Oe);return t&&"object"==typeof t?t:void 0}(e);return n||(Array.isArray(e)?function(e,t){const n=Ce(e,t);if(n)for(let t=0;t<e.length;t++)Ae(e,String(t),n)}(e,t):p(e)&&function(e,t){const n=Ce(e,t);if(n)for(const t of Reflect.ownKeys(e))Ae(e,t,n)}(e,t),e)}function Ae(e,t,n){const r=Reflect.getOwnPropertyDescriptor(e,t);if(!r||!("value"in r))return;const o=_e(r.value,n);o!==r.value&&(r.value=o,Reflect.defineProperty(e,t,r))}function Ce(e,t){const n=t??new WeakSet;return n.has(e)?null:(n.add(e),n)}function ke(e,t,n="s"){return 1===t?e:`${e}${n}`}var Ie=Object.freeze([]);function Te(){const e=new Map;return{buildProxySubscriptions(t,n,r,o){const i=new Set;for(const t of e)xe(t[1],t[0],[],0,i,r);!1!==o?.(i)&&function(e,t,n){for(const n of e){const e=n.invocation?Me(n.path,n.invocation):De(n.path);t(n.store,e,n.path)}n&&function(e){const t=e.size;console.log(`[📡 ${t} ${ke("Proxy Subscription",t)} 📡]:`,JSON.stringify(Array.from(e).map(e=>{const t="name"in(n=e.store)&&"string"==typeof n.name?n.name:"store";var n;const r=e.path.join(".");if(!e.invocation)return r?`$(${t}).${r}`:`$(${t})`;const o=e.invocation.args?.length??0;return`$(${t}).${r}${o?`(${o}_${ke("arg",o)})`:"()"}`}),null,2))}(e)}(i,t,n)},reset(){e.clear()},trackPath(t,n,r,o){let i=e.get(t);i||(i={__proto__:null},e.set(t,i)),Ee(i,n,0,r,o)}}}function Ee(e,t,n,r,o){if(n===t.length)return r&&(e.isLeaf=!0),void(o&&(e.invocation=o));e.children||(e.children={__proto__:null});const i=t[n];let s=e.children?.[i];s||(s={__proto__:null},e.children[i]=s),Ee(s,t,n+1,r,o)}function xe(e,t,n,r,o,i=2){const s=e.children;if(!s)return void o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1});const c=Object.keys(s),a=c.length;if(0!==a)if(e.isLeaf||r>=i&&a>1){o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1});for(const e of c){const c=s[e];c.invocation&&xe(c,t,[...n,e],r+1,o,i)}}else if(r<i&&a>1&&!e.isLeaf)for(const e of c)xe(s[e],t,[...n,e],r+1,o,i);else{if(1===a){const e=c[0];return void xe(s[e],t,[...n,e],r+1,o,i)}o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1})}else o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1})}function De(e){return t=>ze(t,e)}function Me(e,t){const n=e.slice(0,-1);return e=>{const r=ze(e,n),o=r&&"object"==typeof r?Reflect.get(r,t.method):void 0;return"function"==typeof o?Reflect.apply(o,r,t.args??Ie):void 0}}function ze(e,t){let n=e;for(const e of t){if(!n||"object"!=typeof n)return n;n=Reflect.get(n,e)}return n}function Ke(e,t=Object.is){return n=function(e,t=Object.is){const{debounceOptions:n,debugMode:r,equalityFn:o,keepAlive:i,lockDependencies:c}="function"==typeof(l=t)?{debounceOptions:void 0,debugMode:!1,equalityFn:l,keepAlive:!1,lockDependencies:!1}:{debounceOptions:l.debounce,debugMode:(s&&l.debugMode)??!1,equalityFn:l.equalityFn??Object.is,keepAlive:l.keepAlive??!1,lockDependencies:l.lockDependencies??!1},a=String($e+=1),u=new Set;var l;i&&u.add(Le);const f=new Set;let d,y,p=Pe,g=!1,b=!0,m=!0,S=0,v=!1,w=null,q=Pe;function O(e,t,n){return m&&u.size?t?(f.add(e.subscribe(t,D,n?{equalityFn:n,isDerivedStore:!0}:Re)),t(ee(e)?e.getSnapshot():e.getState())):(d||(d=new WeakMap),y||(y=Te()),je(e,d,y.trackPath)):(t??h)(ee(e)?e.getSnapshot():e.getState())}function j(e){for(const t of f)t(e);f.clear()}let F=!0;function _(){if(!b&&Ve(p))return p;b=!1,m&&j(!0);const t=p,n=Ve(t);p=function(t){F=!0;const n=p,i=e(t),s=y?_e(i):i;return Ve(n)&&o(n,s)?(r&&console.log("[🥷 Derive Complete 🥷]: No change detected"),F=!1,n):s}(O);const i=r&&(!n||"verbose"===r&&m);if(i){n?"verbose"===r&&console.log("[🌀 Rebuilding Subscriptions 🌀]: Created…"):console.log("[🌀 Initial Derive Complete 🌀]: Created…");const e=f.size;console.log(`[🎯 ${e} ${ke("Selector Subscription",e)} 🎯]`)}return y&&m&&(y.buildProxySubscriptions((e,t)=>{f.add(e.subscribe(t,D,Re))},i),d=void 0,y.reset(),c&&(y=void 0)),F&&n&&function(e,t){const n=function(){const e=u.has(Le)?u.size-1:u.size;return S>0&&S<e}(),o=!S||n,i=n||null!==ve()||Se()&&o;n&&we(),r&&console.log(`[📻 Derive Complete 📻]: Notifying ${u.size} ${ke("watcher",u.size)}`);for(const t of u){if("function"==typeof t||!t.isDerivedWatcher)continue;const n=t.selector(e);if(!t.equalityFn(t.currentSlice,n)){const e=t.currentSlice;t.currentSlice=n,t.listener(n,e)}}i?v||(v=!0,Ve(q)||(q=t),qe(a,C)):A(e,t)}(p,t),c&&(m=!1),p}function A(e,t){for(const n of u)if("function"==typeof n)n(e,t);else if(!n.isDerivedWatcher){const t=n.selector(e);if(!n.equalityFn(n.currentSlice,t)){const e=n.currentSlice;n.currentSlice=t,n.listener(t,e)}}}function C(){if(!u.size)return;if(b&&!S&&_(),!Ve(p))return;const e=Ve(q)?q:p;A(p,e),v=!1,q=Pe}const k=n?K(T,"number"==typeof n?n:n.delay,"number"==typeof n?{leading:!1,maxWait:n,trailing:!0}:n):void 0,I=k??(()=>{g||(g=!0,queueMicrotask(T))});function T(){g=!1,u.size?b&&_():z()}function E(e){e||k&&b?queueMicrotask(()=>{u.size||z()}):z()}function x(){T(),w=null}function D(){if(!b){if(b=!0,!k){if(S){we();const e=ve(),t=null===e?0:e+1;if(null!==w&&t<=w)return;return w=t,void function(e,t){if(!de)return;const n=t<0?0:0|t,r=he.get(e);if(void 0===r){he.set(e,n);let t=ge.get(n);return t||(t=new Set,ge.set(n,t)),t.add(e),void(n<me&&(me=n))}if(n>r){const t=ge.get(r);if(t&&(t.delete(e),0===t.size&&(ge.delete(r),r===me))){me=1/0;for(const e of ge.keys())e<me&&(me=e)}he.set(e,n);let o=ge.get(n);o||(o=new Set,ge.set(n,o)),o.add(e),n<me&&(me=n)}}(x,t)}if(Se())return void(v||(v=!0,Ve(p)&&(q=p),qe(a,C)))}w=null,I()}}function M(){return b||!Ve(p)?u.size>0?_():e(O):p}function z(e=!0){i&&e||(k?.cancel(),j(),u.clear(),S=0,y=void 0,d=void 0,m=!0,g=!1,b=!0,p=Pe,v=!1,q=Pe,w=null)}return{destroy:()=>z(!1),flushUpdates:function(){u.size&&(k?k.flush():b&&_())},getSnapshot:function(){if(!Ve(p)){u.add(Le);const e=_();return u.delete(Le),e}return g&&T(),p},getState:M,subscribe:function(...e){if(1===e.length){const t=e[0];return u.add(t),1!==u.size||Ve(p)||M(),()=>{u.delete(t),u.size||E(!1)}}const[t,n,r]=e,o=r?.equalityFn??Object.is,i=r?.isDerivedStore??!1,s={currentSlice:void 0,equalityFn:o,isDerivedWatcher:i,listener:n,selector:t};return u.add(s),s.currentSlice=t(M()),i&&(S+=1),r?.fireImmediately&&n(s.currentSlice,s.currentSlice),()=>{u.delete(s),i&&(S-=1),u.size||E(i)}},getInitialState:()=>{throw new Error("[createDerivedStore]: getInitialState() is not available on derived stores.")},setState:()=>{throw new Error("[createDerivedStore]: setState() is not available on derived stores.")}}}(e,t),Object.assign(function(e=h,t){return C(n.subscribe,n.getSnapshot,void 0,e,t)},n);var n}var Pe=Symbol(),Re=Object.freeze({equalityFn:Object.is,isDerivedStore:!0}),$e=0;function Le(){}function Ve(e){return e!==Pe}var Ne,We=class{constructor({disableAutoRefetching:e,initialEnabled:t}){this.count=0,this.enabled=!1,this.lastSubscriptionTime=null,this.fetchThrottleMs=null,this.onSubscribe=null,this.onLastUnsubscribe=null,this.enabled=t,e&&(this.fetchThrottleMs=N.seconds(5))}init({onSubscribe:e,onLastUnsubscribe:t}){this.onSubscribe=e,this.onLastUnsubscribe=t}get(){return{enabled:this.enabled,lastSubscriptionTime:this.lastSubscriptionTime,subscriptionCount:this.count}}setEnabled(e){this.enabled=e}subscribe(){const e=0===this.count,t=null!==this.fetchThrottleMs&&null!==this.lastSubscriptionTime&&!e&&Date.now()-this.lastSubscriptionTime<=this.fetchThrottleMs;return this.onSubscribe?.(this.enabled,e,t),this.count+=1,this.lastSubscriptionTime=Date.now(),e=>{const t=1===this.count;this.count=Math.max(this.count-1,0),t&&(this.onLastUnsubscribe?.(e),this.lastSubscriptionTime=null)}}};function Ue(e,t){const n=t?.baseDelay??N.seconds(5),r=t?.maxDelay??N.minutes(5);return Math.min(n*Math.pow(2,e),r)}var He={Error:"error",Idle:"idle",Loading:"loading",Success:"success"};function Qe(e,t){const n=Object.prototype.hasOwnProperty;function r(e,t){for(const n of e.keys())if(Qe(n,t))return n}let o,i,s;if(e===t)return!0;if(e&&t&&(o=e.constructor)===t.constructor){if(o===Date)return e.getTime()===t.getTime();if(o===RegExp)return e.toString()===t.toString();if(o===Array){if((i=e.length)===t.length)for(;i--&&Qe(e[i],t[i]););return-1===i}if(o===Set){if(e.size!==t.size)return!1;for(let n of e){if(s=n,s&&"object"==typeof s&&(s=r(t,s),!s))return!1;if(!t.has(s))return!1}return!0}if(o===Map){if(e.size!==t.size)return!1;for(let n of e){if(s=n[0],s&&"object"==typeof s&&(s=r(t,s),!s))return!1;if(!Qe(n[1],t.get(s)))return!1}return!0}if(o===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(o===DataView){if((i=e.byteLength)===t.byteLength)for(;i--&&e.getInt8(i)===t.getInt8(i););return-1===i}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){const n=e,r=t;if((i=n.byteLength)===r.byteLength)for(;i--&&n[i]===r[i];);return-1===i}if(!o||"object"==typeof e){i=0;for(const r in e){if(n.call(e,r)&&++i&&!n.call(t,r))return!1;if(!(r in t)||!Qe(e[r],t[r]))return!1}return Object.keys(t).length===i}}return e!=e&&t!=t}var Be=new WeakMap,Je=new WeakMap;function Ge(e,t=Xe,n=Qe){return function(e,t,n){let r=Je.get(e);r||(r=new Map,Je.set(e,r));let o=r.get(t);o||(o=new Map,r.set(t,o));const i=o.get(n);if(i)return i;const[s,c,a]=Ze(e,t,n),u=new Map,l=e=>new Proxy({__proto__:null},{get(t,n){if("value"===n){let t=c();const n=e.split(".");for(const e of n)e&&(t=t[e]);return t}const r="string"==typeof n?n:n.toString(),o=e?`${e}.${r}`:r,i=u.get(o);if(i)return i;const a=l(o);return Be.set(a,s),u.set(o,a),a},set(t,n,r){const o=e.split(".");return""===o[0]&&o.shift(),a(o,r),!0}}),f=l("");return s(()=>{}),Be.set(f,s),o.set(n,f),f}(e,t,n)}var Xe=e=>e,Ye=(e,t,n)=>{if(!t.length)return n;const[r,...o]=t,i=e[r],s=Ye(i,o,n);if(Qe(i,s))return e;const c=Array.isArray(e)?e.slice():{...e};return c[r]=s,c},Ze=(e,t,n)=>{const r=new Set,o=ee(e);let i,s=t(o?e.getSnapshot():e.getState());return[c=>(r.size||(i=e.subscribe(t,e=>{s=e,r.forEach(e=>e())},{equalityFn:n,isDerivedStore:o})),r.add(c),()=>{r.delete(c),!r.size&&i&&(i(),i=void 0)}),()=>(r.size||(s=t(e.getState())),s),(n,r)=>{if(t!==Xe)throw new Error("Cannot set a value with a selector");e.setState(e=>Ye(e,n,r),!0)}]};function et(e){return Be.get(e)}var tt={error:!0,lastFetchedAt:!0,queryCache:!0,queryKey:!0,status:!0,enabled:!1,fetch:!1,getCacheEntry:!1,getData:!1,getStatus:!1,isDataExpired:!1,isStale:!1,reset:!1},nt=Object.freeze({force:!0}),rt=Object.freeze({once:!0}),ot=Object.freeze({updateQueryKey:!0});function it(e){return JSON.stringify(st(e))}function st(e){return"object"!=typeof e||null===e?e:Object.keys(e).sort().reduce((t,n)=>{const r=e[n];return t[n]=p(r)?st(r):r,t},{__proto__:null})}function ct(e,t,n,r){return r?ut(r,n)?r:{...at(e,t),...r}:at(e,t)}function at(e,t){const n=Object.assign({__proto__:null},t?.params);for(const t in e?.params){const r=e.params[t];r&&(n[t]=r.value)}return n}function ut(e,t){if(!e)return!1;for(const n of t)if(!(n in e))return!1;return!0}function lt(e){return"function"==typeof e}function ft(e){return!lt(e)}function dt(e,t){return n=>{const r={...n},o={__proto__:null};for(const e in r)y(r,e)&&e in tt&&(tt[e]&&(o[e]=r[e]),delete r[e]);return{...t?t(r):V(r),...yt(e,null,o)}}}function yt(e,t,n){if(!n.queryCache)return n;const r=Date.now(),o=t??(e&&n.queryKey||null),i={__proto__:null};let s=!1;for(const e in n.queryCache){if(!y(n.queryCache,e))continue;const c=n.queryCache[e];c&&(r-(c.lastFetchedAt??c.errorInfo.lastFailedAt)<c.cacheTime||e===o)?!t&&c.errorInfo&&c.errorInfo.retryCount>0?(i[e]={...c,errorInfo:{...c.errorInfo,retryCount:0}},s=!0):i[e]=c:s=!0}return s?{...n,queryCache:i}:n}function pt(){return Object.create(null)}function ht(e,t,n){return new l(`[createQueryStore: ${e}]: ${t} failed`,n)}function gt(e){return function(t,n){return n?e().setState(t,n):e().setState(t)}}var bt=Symbol(),mt=Object.freeze({debugMode:!1,enabled:!0,equalityFn:Object.is,fireImmediately:!1}),St=Object.freeze({fireImmediately:!1,forceResubscribe:!1});function vt(e,t,n=St){if(t.current.isActive){if(!n?.forceResubscribe)return;t.current.unsubscribe()}t.current.options.debugMode&&console.log("[📡 useListen 📡] Attaching listener"),t.current.isActive=!0,t.current.resubscribe=(n=St)=>vt(e,t,n);const r=e.subscribe(e=>t.current.selector(e),(e,n)=>t.current.react(e,n,()=>{r(),t.current.isActive=!1}),n.fireImmediately?{...t.current.options,fireImmediately:!0}:t.current.options);t.current.unsubscribe=()=>{t.current.isActive&&(r(),t.current.isActive=!1)}}function wt(e){return"function"==typeof e?{equalityFn:e}:e??mt}var qt=Symbol();function Ot(e,t){return function(...n){const r=e.getState()[t];if("function"==typeof r)return r(...n);throw new Error(`[createVirtualStoreAction]: Method ${String(t)} is not a function`)}}function jt(e,t){return"function"==typeof e[t]}exports.QueryStatuses=He,exports.StoresError=l,exports.applyStateUpdate=Y,exports.configureStores=function(e){var t;s&&function(){if(q)throw new Error("[stores]: configureStores() called after first store creation. Call it earlier before creating any stores.")}(),e.logger&&(t=e.logger,u=t),m??(m=function(e){return e?.queryStoreDefaults?{queryStoreDefaults:e.queryStoreDefaults}:void 0}(e)),S??(S=F(e))},exports.createBaseStore=fe,exports.createDerivedStore=Ke,exports.createQueryStore=function(e,t,n){j();const r="function"==typeof t?t:pt,o="object"==typeof t?t:n,i=o&&"storageKey"in o?o:void 0,a=Ne??(Ne=function(){const e={abortInterruptedFetches:!0,cacheTime:N.days(7),debugMode:!1,disableAutoRefetching:!1,keepPreviousData:!1,maxRetries:5,minStaleTime:!1,paramChangeThrottle:!1,retryDelay:Ue,staleTime:N.minutes(2),suppressStaleTimeWarning:!1},t=function(){if(m)return m}()?.queryStoreDefaults;return t?{...e,...t}:e}()),d=a.minStaleTime,{fetcher:p,onError:h,onFetched:g,setData:b,transform:S,abortInterruptedFetches:v=a.abortInterruptedFetches,cacheTime:w=a.cacheTime,debugMode:q=a.debugMode,disableAutoRefetching:O=a.disableAutoRefetching,disableCache:F=!1,enabled:_=!0,keepPreviousData:A=a.keepPreviousData,maxRetries:C=a.maxRetries,paramChangeThrottle:k=a.paramChangeThrottle,params:I,retryDelay:T=a.retryDelay,staleTime:E=a.staleTime,suppressStaleTimeWarning:x=a.suppressStaleTimeWarning}=e;let D="function"==typeof E?a.staleTime:E;s&&!1!==d&&!O&&!x&&D<d&&console.warn(`[createQueryStore${i?.storageKey?`: ${i.storageKey}`:""}] ❌ Stale times under ${d/1e3} seconds are not recommended. Provided staleTime: ${D/1e3} seconds`);const M=new Error("[createQueryStore: AbortError] Fetch interrupted"),z="function"==typeof w,P=s&&q,R=e.params?Object.keys(e.params):[];let $=null,L=null,V=null,W=[],U=!1,H=!1,Q=null,B=null,J=null,G=null,Y=null;const Z={enabled:"function"!=typeof _&&_,error:null,lastFetchedAt:null,queryCache:{},queryKey:"",status:He.Idle},ee=new We({disableAutoRefetching:O,initialEnabled:Z.enabled});function te(){Q&&(B=null,Q.abort(),Q=null)}function ne(t,n,o){const s=o.setState;function c(e){const t="function"==typeof e;if(t||void 0!==e.enabled){let n;const r=s(r=>{const o=t?e(r):e,i=void 0!==o.enabled?o.enabled:r.enabled;return i!==r.enabled&&(n=()=>function(e,t){e!==t&&Y!==t&&(Y=t,ee.setEnabled(t),t?queueMicrotask(()=>d.fetch(void 0,ot)):(J||v)&&(v&&te(),J&&(clearTimeout(J),J=null)))}(r.enabled,i)),o});return n?.(),r}return s(e)}function a(e,t){if(O||t?.skipStoreUpdates)return;if(D<=0||D===1/0)return;J&&(clearTimeout(J),J=null);const r=it(e),o=n(),i=(F?G===r&&o.lastFetchedAt:o.queryCache[r]?.lastFetchedAt)||null,s=i?D-(Date.now()-i):D;J=setTimeout(()=>{const t=ee.get();t.enabled&&t.subscriptionCount>0&&d.fetch(e,nt,!0)},s)}o.setState=c,ee.init({onSubscribe:(r,o,i)=>{if(L||$||!I&&"function"!=typeof e.enabled&&"function"!=typeof e.staleTime){if(r)if(o){const e=at($,L),r=it(e),o=n();o.queryKey!==r&&t({queryKey:r}),o.isStale()?d.fetch(e,void 0,!0):a(e,void 0)}else O&&!i&&d.fetch(void 0,void 0,!0)}else U=!0},onLastUnsubscribe:e=>{J&&(clearTimeout(J),J=null),v&&!e&&te()}});const d={...r(c,n,o),...Z,async fetch(e,r,o=!1){const s=ee.get();if(!r?.force&&!r?.skipStoreUpdates&&!s.enabled)return null;const y=n(),m=y.error,q=y.queryKey,O=y.status===He.Loading,j=ct($,L,R,e),_=it(j);if(O&&B?.promise&&B.key===_)return P&&console.log("[🔄 Using Active Fetch 🔄] for params:",JSON.stringify(j)),B.promise;const k=r?.staleTime??D,I=!!r?.skipStoreUpdates,E="boolean"==typeof r?.updateQueryKey?r.updateQueryKey:!!o&&A,x=(o||q===_||E)&&!I;if(v&&x&&te(),!r?.force){const e=y.lastFetchedAt,n=y.queryCache[_],o=n?.lastFetchedAt,i=n?.errorInfo,c=i&&i.retryCount>=C,u=(F?G===_&&e:o)||null;if(u&&!(Date.now()-u>=k)&&(!i||c||I))return x&&!J&&s.subscriptionCount>0&&0!==D&&D!==1/0&&a(j,r),E&&t(e=>e.queryKey!==_?{queryKey:_}:e),P&&console.log("[💾 Returning Cached Data 💾] for params:",JSON.stringify(j)),n?.data??null}x&&(J&&(clearTimeout(J),J=null),!m&&O||t({error:null,status:He.Loading}),B={key:_});const K=r?.cacheTime??(z?w(j):w);async function V(){const s=i?.storageKey||_;try{P&&(o||!e||ut(e,R)?console.log("[🔄 Fetching 🔄] for params:",JSON.stringify(j)):console.log("[🔄 Fetching with Partial Params 🔄]\n","- Provided params:",`${JSON.stringify(e)}\n`,"- Filled in params:",`${JSON.stringify(Object.fromEntries(Object.keys(j).filter(t=>!(t in e)).map(e=>[e,j[e]])))}`));const n=await(v&&x?async function(e){const t=new AbortController;Q=t;try{return await new Promise((n,r)=>{t.signal.addEventListener("abort",()=>r(M),rt),Promise.resolve(p(e,t)).then(n,r)})}finally{Q===t&&(Q=null)}}(j):p(j,null)),i=Date.now();let l;P&&console.log("[✅ Fetch Successful ✅] for params:",JSON.stringify(j));try{l=function(e,t,n){return n?n(e,t):e}(n,j,S)}catch(e){throw ht(s,"transform",e)}if(I)return P&&console.log("[🥷 Successful Parallel Fetch 🥷] for params:",JSON.stringify(j)),"withCache"===r.skipStoreUpdates&&t(e=>{if(!b)return F?e:{queryCache:{...e.queryCache,[_]:{cacheTime:K,data:l,errorInfo:null,lastFetchedAt:i}}};let t=e;const n=t.queryCache[_];try{b({data:l,params:j,queryKey:_,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}})}catch(e){throw ht(s,"setData",e)}return!F&&Object.is(n,t.queryCache[_])&&(t={...t,queryCache:{...t.queryCache,[_]:{cacheTime:K,data:null,errorInfo:null,lastFetchedAt:i}}}),t}),l;if((b?c:t)(e=>{let t={...e,error:null,lastFetchedAt:i,queryKey:E?_:e.queryKey,status:He.Success};if(b||F){if(b){P&&console.log("[💾 Setting Data 💾] for params:",JSON.stringify(j));const e=t.queryCache[_];try{b({data:l,params:j,queryKey:_,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}})}catch(e){throw ht(s,"setData",e)}!F&&Object.is(e,t.queryCache[_])&&(t.queryCache={...t.queryCache,[_]:{cacheTime:K,data:null,errorInfo:null,lastFetchedAt:i}})}}else P&&console.log("[💾 Setting Cache 💾] for params:",JSON.stringify(j),"| Has previous data?:",!!t.queryCache[_]?.data),t.queryCache={...t.queryCache,[_]:{cacheTime:K,data:l,errorInfo:null,lastFetchedAt:i}};return F||w===1/0?t:yt(A,_,t)}),x&&(G=_,a(j,r)),g)try{g({data:l,fetch:d.fetch,params:j,set:c})}catch(e){u.error(ht(s,"onFetched callback",e))}return l??null}catch(i){if(i===M)return P&&console.log("[❌ Fetch Aborted ❌] for params:",JSON.stringify(j)),null;const c=!o&&!0===r?.throwOnError,a=f(i);if(a instanceof l&&u.error(a),!x){if(c)throw a;return null}const y=F?void 0:n().queryCache[_],p=y?.errorInfo?.retryCount??0,g=p+1;try{h?.(a,p)}catch(e){u.error(ht(s,"onError callback",e))}if(p<C){if(ee.get().subscriptionCount>0){const t="function"==typeof T?T(g,a):T;t!==1/0&&(J&&clearTimeout(J),J=setTimeout(()=>{const t=ee.get();t.enabled&&t.subscriptionCount>0&&d.fetch(e,nt,!0)},t))}t(e=>({error:a,queryCache:{...e.queryCache,[_]:{cacheTime:y?.cacheTime??K,data:y?.data??null,lastFetchedAt:y?.lastFetchedAt??null,errorInfo:{error:a,lastFailedAt:Date.now(),retryCount:g}}},queryKey:E?_:e.queryKey,status:He.Error}))}else t(e=>({error:a,queryCache:{...e.queryCache,[_]:{cacheTime:y?.cacheTime??K,data:y?.data??null,lastFetchedAt:y?.lastFetchedAt??null,errorInfo:{error:a,lastFailedAt:Date.now(),retryCount:C}}},queryKey:E?_:e.queryKey,status:He.Error}));if(c)throw a;return null}finally{x&&(B=null)}}return x?(B={key:_,promise:V()}).promise:V()},getCacheEntry(e){if(F)return null;const t=n(),r=e?"string"==typeof e?e:it(ct($,L,R,e)):t.queryKey;return t.queryCache[r]??null},getData(e){if(F)return null;const t=n().getCacheEntry(e);return t&&null!==t.data?A?t.data:t.lastFetchedAt&&Date.now()-t.lastFetchedAt>=t.cacheTime?null:t.data:null},getStatus:function(e){const t=n(),r=t.status;switch(e){case"isIdle":return r===He.Idle;case"isLoading":return r===He.Loading;case"isError":case"isInitialLoad":case"isSuccess":case void 0:{const n=t.queryKey,o=t.queryCache[n],i=F?r===He.Error:"number"==typeof o?.errorInfo?.lastFailedAt;if("isError"===e)return i;const s=null!==((F?G===n&&t.lastFetchedAt:o?.lastFetchedAt)||null),c=!s&&!i&&t.enabled;if("isInitialLoad"===e)return c;const a=s&&!i;return"isSuccess"===e?a:{isError:i,isIdle:r===He.Idle,isLoading:r===He.Loading,isInitialLoad:c,isSuccess:a}}}},isDataExpired(e){const t=n(),r=t.queryCache[t.queryKey],o=t.queryKey,i=t.lastFetchedAt,s=(F?G===o&&i:r?.lastFetchedAt)||null;if(!s)return!0;const c=e??r?.cacheTime;return void 0===c||Date.now()-s>=c},isStale(e){const t=n(),r=t.queryKey,o=(F?G===r&&t.lastFetchedAt:t.queryCache[r]?.lastFetchedAt)||null;if(!o)return!0;const i=e??D;return Date.now()-o>=i},reset(e=!1){for(const e of W)e();W=[],$=null,L=null,V=null,te(),J&&(clearTimeout(J),J=null),B=null,G=null,e&&t(Z)}},y=o.subscribe;return o.subscribe=(...e)=>{const t=H?()=>{}:ee.subscribe(),n=1===e.length?y(e[0]):y(e[0],e[1],e[2]);return e=>{t(e),n()}},d}const re=i?.storageKey?fe(ne,(oe=i,void 0===(ie={partialize:dt(A,i.partialize)})?Object.assign({__proto__:null},oe):Object.assign({__proto__:null},oe,ie))):o&&!("storageKey"in o)?fe(ne,o):fe(ne);var oe,ie;const se=re.getState(),ce=se.error,ae=se.enabled,ue=se.queryKey,le=se.fetch;let de;if(ue&&!ce&&(G=ue),H=!0,I||"function"==typeof e.enabled){const{directValues:e,enabledAttachVal:t,enabledDirectValue:n,attachVals:r}=function(e,t,n){const r={__proto__:null},o={__proto__:null},i={__proto__:null};for(const e in t){if(!y(t,e))continue;const s=t[e];if(lt(s)){const t=s(Ge,n);r[e]=t,i[e]=t.value}else ft(s)&&(o[e]=s,i[e]=s)}let s,c=null,a=null;if(lt(e)){const t=e(Ge,n);s=t.value,c=t}else s=e,a=e;return{attachVals:r,directValues:o,enabledAttachVal:c,enabledDirectValue:a,resolvedEnabled:s,resolvedParams:i}}(_,I,re);$={enabled:t,params:r},L={enabled:n,params:e}}"function"==typeof e.staleTime&&(V=e.staleTime(Ge,re),D=V.value);const ye=Object.freeze({updateQueryKey:A}),pe=function(){let e,t=!1;return function(...n){e=n,t||(t=!0,queueMicrotask(()=>{t=!1,(e=>{le(e??at($,L),ye)})(...e)}))}}();function he(){let e;if(!A){e=at($,L);const t=it(e);re.setState({queryKey:t})}pe(e)}const ge=c||!k?he:K(he,"number"==typeof k?k:k.delay,"number"==typeof k?{leading:!1,maxWait:k,trailing:!0}:k);for(const e in $?.params){const t=$.params[e];if(!t)continue;const n=et(t);if(P&&console.log("[🌀 Param Subscription 🌀] Subscribed to param:",e),n){let r=t.value;const o=n(()=>{const n=t.value;Qe(r,n)||(P&&console.log("[🌀 Param Change 🌀] -",e,"- [Old]:",`${r?.toString()},`,"[New]:",n?.toString()),r=n,ge())});W.push(o)}}if(V){const e=et(V);if(e){const t=V;let n=t.value;P&&console.log("[🌀 StaleTime Subscription 🌀] Initial value:",n);const r=e(()=>{const e=t.value;e!==n&&(P&&console.log("[🌀 StaleTime Change 🌀] - [Old]:",`${n},`,"[New]:",e),n=e,D=e,le())});W.push(r)}}if($?.enabled){const e=$.enabled,t=et(e);if(t){let n=e.value;ae!==n&&((de??(de={})).enabled=n),n&&ee.setEnabled(n),P&&console.log("[🌀 Enabled Subscription 🌀] Initial value:",n);const r=t(()=>{const t=e.value;t!==n&&(P&&console.log("[🌀 Enabled Change 🌀] - [Old]:",`${n},`,"[New]:",t),n=t,re.setState({enabled:t}))});W.push(r)}}else ae!==Z.enabled&&((de??(de={})).enabled=Z.enabled);const be=it(at($,L));return be!==ue&&((de??(de={})).queryKey=be),de&&re.setState(de),H=!1,U&&queueMicrotask(ge),me=re,Se=X.QueryStore,Object.assign(me,{[Se]:!0});var me,Se},exports.createStoreActions=function(e,t){const n=function(e){const t=e.getState(),n={__proto__:null},r=n;if(s&&("object"!=typeof t||null===t))throw new Error("[createStoreActions]: State is not an object");if(re(e))for(const n in t)jt(t,n)&&(r[n]=Ot(e,n));else for(const e in t)jt(t,e)&&(r[e]=t[e]);return n}(e);return t?Object.assign(n,t):n},exports.createVirtualStore=function(e,t,n){const r="function"==typeof t,o=r?t:void 0,i=r?n:t,s=new Set,c=Ke(e,{debugMode:i?.debugMode??!1,equalityFn:function(e,t){const n=Object.is(e,t);return n||(function(e,t){for(const n of s){n.unsubscribe();const r=n.args;if(1===r.length){const o=r[0],i=e.getState(),s=t.getState(),c=t.subscribe(o);n.unsubscribe=c,Object.is(s,i)||o(s,i);continue}const o=r[0],i=r[1];let s=r[2];s?.fireImmediately&&(s={...s,fireImmediately:!1});const c=o(e.getState()),a=o(t.getState()),u=t.subscribe(o,i,s);n.unsubscribe=u,(s?.equalityFn??Object.is)(c,a)||i(a,c)}}(e,t),Z(e)),n},keepAlive:!0,lockDependencies:i?.lockDependencies??!0});return Object.assign(function(e,t){const n=c();return e?n(e,t):n()},{[X.VirtualStore]:!0,destroy:c.destroy,getInitialState:()=>c.getState().getInitialState(),getState:()=>c.getState().getState(),persist:(a=c.getState,{clearStorage:()=>a().persist?.clearStorage(),getOptions:()=>a().persist?.getOptions()??{},hasHydrated:()=>a().persist?.hasHydrated()??!0,hydrationPromise:()=>a().persist?.hydrationPromise?.()??Promise.resolve(),onFinishHydration:e=>a().persist?.onFinishHydration(e)??g,onHydrate:e=>a().persist?.onHydrate(e)??g,rehydrate:()=>a().persist?.rehydrate(),setOptions:e=>a().persist?.setOptions(e)}),setState:gt(c.getState),subscribe:function(...e){const t={args:e,unsubscribe:1===e.length?c.getState().subscribe(e[0]):c.getState().subscribe(e[0],e[1],e[2])};return s.add(t),()=>{t.unsubscribe(),s.delete(t)}}},o?.(c.getState));var a},exports.deepEqual=function e(t,n){if("object"!=typeof t||null==t||"object"!=typeof n||null==n)return t===n;if(Object.is(t,n))return!0;const r=Object.keys(t);if(r.length!==Object.keys(n).length)return!1;for(const o of r)if(!(o in n)||!e(t[o],n[o]))return!1;return!0},exports.defaultRetryDelay=Ue,exports.destroyStore=Z,exports.destroyStores=function(e,t){for(const n of Array.isArray(e)?e:Object.values(e))n&&!t?.skipDestroy?.(n)&&Z(n,t)},exports.getQueryKey=it,exports.getStoreName=function(e){return ne(e)?e.persist.getOptions().name??e.name:e.name},exports.hasGetSnapshot=ee,exports.identity=h,exports.isDerivedStore=function(e){return"flushUpdates"in e},exports.isPersistedStore=ne,exports.isQueryStore=te,exports.isVirtualStore=re,exports.nullObject=function(){return{__proto__:null}},exports.parseQueryKey=function(e){return JSON.parse(e)},exports.replacer=$,exports.reviver=L,exports.shallowEqual=function(e,t){if("object"!=typeof e||null==e||"object"!=typeof t||null==t)return e===t;if(Object.is(e,t))return!0;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.is(e[r],t[r]))return!1;return!0},exports.time=N,exports.useListen=function(e,t,n,o=mt){const i=function(){const e=r.useRef(bt);return e.current===bt&&(e.current=function(e,t,n){return{selector:e,react:t,isActive:!1,options:wt(n),resubscribe:()=>{},unsubscribe:()=>{}}}(t,n,o)),e}(),s=function(e){return"function"==typeof e?mt.enabled:e?.enabled??mt.enabled}(o);return i.current.react=n,i.current.selector=t,function(e,t){"function"==typeof t?e.current.options.equalityFn=t:t&&(e.current.options=t??mt)}(i,o),r.useLayoutEffect(()=>{if(s)return vt(e,i),()=>function(e){e.current.options.debugMode&&console.log("[🗑️ useListen 🗑️] Detaching listener"),e.current.resubscribe=()=>{},e.current.unsubscribe(),e.current.unsubscribe=()=>{},e.current.isActive=!1}(i)},[s,e]),i},exports.useStableValue=function(e){const t=r.useRef(qt);return t.current===qt&&(t.current=e()),t.current};