@storesjs/stores 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +147 -0
- package/dist/native/index.js +1 -1
- package/package.json +1 -1
- package/dist/middleware/createSubscriptionManager.d.ts +0 -10
- package/dist/plugins/chrome/utils.d.ts +0 -1
- package/dist/plugins/delta/deltaInstrumentation.d.ts +0 -42
- package/dist/plugins/delta/index.d.ts +0 -1
- package/dist/plugins/delta/recordDelta.d.ts +0 -14
- package/dist/plugins/network/index.d.ts +0 -2
- package/dist/plugins/router/RouteErrorBoundary.d.ts +0 -19
- package/dist/plugins/router/__tests__/router-types.test.d.ts +0 -0
- package/dist/plugins/router/constants.d.ts +0 -38
- package/dist/plugins/router/createRouter-old-version.d.ts +0 -183
- package/dist/plugins/router/createRouter.d.ts +0 -183
- package/dist/plugins/router/errorBoundary.d.ts +0 -23
- package/dist/plugins/router/index.d.ts +0 -6
- package/dist/plugins/router/lazy.d.ts +0 -14
- package/dist/plugins/router/locationStore.d.ts +0 -24
- package/dist/plugins/router/pathMatching.d.ts +0 -28
- package/dist/plugins/router/scrollRestoration.d.ts +0 -8
- package/dist/plugins/router/searchParams.d.ts +0 -53
- package/dist/plugins/router/test-link-params.d.ts +0 -1
- package/dist/plugins/router/test-prefetch.d.ts +0 -17
- package/dist/plugins/router/test-types.d.ts +0 -1
- package/dist/plugins/router/types.d.ts +0 -11
- package/dist/plugins/router/utils.d.ts +0 -14
- package/dist/plugins/router/vite.d.ts +0 -5
- package/dist/presence/heartbeat.d.ts +0 -23
- package/dist/presence/presenceChannel.d.ts +0 -19
- package/dist/presence/pruning.d.ts +0 -34
- package/dist/queryStore/createParamManager.d.ts +0 -27
- package/dist/sync/networkSyncEngine.d.ts +0 -137
- package/dist/tsconfig.tsbuildinfo +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Stores
|
|
2
|
+
|
|
3
|
+
Stores provides a minimal, reactive state layer built on top of Zustand.
|
|
4
|
+
|
|
5
|
+
It defines three types of runtime-evaluated stores—**base**, **derived**, and **query**—each representing a distinct state type: local, computed, or asynchronously fetched. Stores track dependencies at runtime, evaluate lazily, and clean up automatically when unused.
|
|
6
|
+
|
|
7
|
+
All stores expose a consistent interface and can be used both inside and outside React. Each store is a node. Together they form a composed graph.
|
|
8
|
+
|
|
9
|
+
- **Base stores** define synchronous local state with explicit update methods.
|
|
10
|
+
- **Derived stores** compute values from other stores and re-run only when inputs change.
|
|
11
|
+
- **Query stores** fetch and cache async data, refetching when reactive parameters change.
|
|
12
|
+
|
|
13
|
+
All store types share a common interface: a React-compatible hook, a
|
|
14
|
+
stable store object with `.getState()` and `.subscribe()`, and optional
|
|
15
|
+
support for persistence. They compose naturally, interoperate cleanly,
|
|
16
|
+
and scale as application complexity grows.
|
|
17
|
+
|
|
18
|
+
## Base Store
|
|
19
|
+
|
|
20
|
+
A base store defines local state along with an interface for reading and
|
|
21
|
+
updating that state.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
export const useSettingsStore = createBaseStore<Settings>(set => ({
|
|
25
|
+
currency: 'USD',
|
|
26
|
+
setCurrency: currency => set({ currency }),
|
|
27
|
+
}));
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
In React, subscribe to values with selectors:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
const currency = useSettingsStore(s => s.currency);
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Outside React:
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
useSettingsStore.getState().currency;
|
|
40
|
+
useSettingsStore.subscribe(selector, listener, options);
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Enable persistence per store:
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
createBaseStore<Settings>(set => ({ ... }), {
|
|
47
|
+
storageKey: 'settings',
|
|
48
|
+
partialize: state => ({ currency: state.currency }),
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
You can also export actions as a stable object:
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
export const settingsActions = createStoreActions(useSettingsStore);
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Derived Store
|
|
59
|
+
|
|
60
|
+
Derived stores compute values from other stores. The `$` accessor tracks
|
|
61
|
+
dependencies at runtime:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
export const useTotal = createDerivedStore($ => {
|
|
65
|
+
const { currency } = $(useSettingsStore);
|
|
66
|
+
const { subtotal, tax } = $(useCartStore);
|
|
67
|
+
return formatTotal(currency, subtotal, tax);
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
If `currency`, `subtotal`, or `tax` change, the store re-computes.
|
|
72
|
+
|
|
73
|
+
If the store is not observed, nothing runs.
|
|
74
|
+
|
|
75
|
+
## Query Store
|
|
76
|
+
|
|
77
|
+
Query stores manage remote data. They fetch, cache, and revalidate based
|
|
78
|
+
on reactive parameters:
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
export const useAccountStore = createQueryStore<Account, Params>({
|
|
82
|
+
fetcher: fetchAccount,
|
|
83
|
+
params: {
|
|
84
|
+
userId: $ => $(useAuthStore).userId,
|
|
85
|
+
},
|
|
86
|
+
staleTime: time.minutes(10),
|
|
87
|
+
});
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
When `userId` changes, the store refetches. If unobserved, it remains
|
|
91
|
+
idle.
|
|
92
|
+
|
|
93
|
+
Use it in React:
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
const account = useAccountStore(s => s.getData());
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Or imperatively:
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
useAccountStore.getState().fetch();
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Query stores support full customization: extended local state, manual cache control, configurable staleness and retry behavior, and optional persistence.
|
|
106
|
+
|
|
107
|
+
They deduplicate fetches across consumers and compute stable query keys automatically.
|
|
108
|
+
|
|
109
|
+
## Store Interface
|
|
110
|
+
|
|
111
|
+
All stores implement the same API:
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
useStore()
|
|
115
|
+
useStore(selector, equalityFn?)
|
|
116
|
+
|
|
117
|
+
useStore.getState()
|
|
118
|
+
useStore.setState() // Except for derived stores
|
|
119
|
+
useStore.subscribe(selector, listener, options?)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Composed Example
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
export const useCurrencyFormatter = createDerivedStore($ => {
|
|
126
|
+
const { currency, locale } = $(useSettingsStore);
|
|
127
|
+
return new Intl.NumberFormat(locale, {
|
|
128
|
+
currency,
|
|
129
|
+
style: 'currency',
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
```ts
|
|
135
|
+
export const useAccountBalance = createDerivedStore($ => {
|
|
136
|
+
const balance = $(useAccountStore).getData()?.balance ?? 0;
|
|
137
|
+
const formatter = $(useCurrencyFormatter);
|
|
138
|
+
return formatter.format(balance);
|
|
139
|
+
});
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
function AccountSummary() {
|
|
144
|
+
const balance = useAccountBalance();
|
|
145
|
+
return <Text>Balance: {balance}</Text>;
|
|
146
|
+
}
|
|
147
|
+
```
|
package/dist/native/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t=require("zustand/middleware"),r=require("zustand/traditional"),n=require("use-sync-external-store/shim/with-selector"),o=require("react"),s=(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="undefined"!=typeof window&&"undefined"!=typeof document;try{const{MMKV:t}=s("react-native-mmkv"),r=new t({id:"stores-storage"}),{getString:n,...o}=r;e=Object.assign(Object.create(null),o,{get:n})}catch(e){throw new Error("[stores]: You must install react-native-mmkv for persistence to work in React Native.\n\n See: https://github.com/mrousavy/react-native-mmkv\n "+(e instanceof Error?`\n\nError: ${e.message}`:""))}!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")}(e);var a={clearAll(){e.clearAll()},contains:t=>e.contains(t),delete(t){e.delete(t)},getAllKeys:()=>e.getAllKeys(),get:t=>e.get(t),set(t,r){e.set(t,r)}},c=class extends Error{constructor(e,t){super(e),this.name="StoresError",this.cause=l(t)}},u={debug:(e,t)=>{},error:(e,t)=>{},info:(e,t)=>{},warn:(e,t)=>{}};function l(e){return e instanceof Error?e:new Error(String(e))}var f="stores/core/sync-channel",d=`${f}:storage:`;function y(){try{return"undefined"!=typeof window?window.localStorage:null}catch{return null}}var p,h,g=class{constructor(e){this.broadcast=e.broadcast,this.origin=e.origin,this.storeKey=e.storeKey,this.teardown=e.teardown}destroy(){this.teardown()}publish(e){const t=Object.create(null);for(const r of Object.entries(e.values))t[r[0]]=r[1];const r={origin:this.origin,replace:e.replace,sessionId:e.sessionId,storeKey:this.storeKey,timestamp:e.timestamp,values:t};this.broadcast(r)}},b=class{destroy(){}publish(){}},m={storage:a,syncEngine:i?(p||(p=new class{constructor(){this.listeners=new Map,this.origin="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${Math.random().toString(36).slice(2)}:${Date.now().toString(36)}`,this.onChannelMessage=e=>{e.data&&this.dispatch(e.data)},this.onStorageEvent=e=>{if(e.key&&e.newValue&&e.key.startsWith(d))try{const t=JSON.parse(e.newValue);this.dispatch(t)}catch(e){u.error(new c("[sync] Failed to parse storage event payload"),{error:e})}},this.channel="undefined"==typeof BroadcastChannel?null:new BroadcastChannel(f),this.storage=y(),this.channel&&this.channel.addEventListener("message",this.onChannelMessage),i&&window.addEventListener("storage",this.onStorageEvent)}get sessionId(){return this.origin}register(e){const t=t=>{if(t.origin===this.origin||t.storeKey!==e.key)return;const r=Object.create(null);for(const n of e.fields)Object.prototype.hasOwnProperty.call(t.values,n)&&(r[n]=t.values[n]);Object.keys(r).length&&e.apply({replace:t.replace,sessionId:t.sessionId,timestamp:t.timestamp,values:r})};let r=this.listeners.get(e.key);return r||(r=new Set,this.listeners.set(e.key,r)),r.add(t),new g({broadcast:e=>this.broadcast(e),origin:this.origin,storeKey:e.key,teardown:()=>this.removeListener(e.key,t)})}broadcast(e){try{this.channel&&this.channel.postMessage(e),this.writeToStorage(e)}catch(e){u.error(new c("[sync] Failed to broadcast update"),{error:e})}}dispatch(e){if(!e.storeKey)return;const t=this.listeners.get(e.storeKey);if(t&&t.size)for(const r of t)r(e)}removeListener(e,t){const r=this.listeners.get(e);r&&(r.delete(t),r.size||this.listeners.delete(e))}writeToStorage(e){if(this.storage||(this.storage=y()),!this.storage)return;const t=`${d}${e.storeKey}`;try{this.storage.setItem(t,JSON.stringify(e))}catch(e){u.error(new c("[sync] Failed to write broadcast payload to storage"),{error:e})}}}),p):(h||(h=new class{constructor(){this.sessionId="noop"}register(e){return new b}}),h)};function S(){return m}function v(){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 w=Math.max,j=Math.min;function q(e,t=0,r={}){let n,o,s,i,a,c,u=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){const r=n,s=o;return n=o=void 0,u=t,i=r?e.apply(s,r):e.apply(s),i}function p(e){const r=e-(c??0);return void 0===c||r>=t||r<0||f&&void 0!==s&&e-u>=s}function h(){const e=O();if(p(e))return g(e);a=setTimeout(h,function(e){const r=t-(e-(c??0));return f&&void 0!==s?j(r,s-(e-u)):r}(e))}function g(e){return a=void 0,d&&n?y(e):(n=o=void 0,i)}function b(...e){const r=O(),s=p(r);if(n=e,o=this,c=r,s){if(void 0===a)return function(e){return u=e,a=setTimeout(h,t),l?y(e):i}(c);if(f)return clearTimeout(a),a=setTimeout(h,t),y(c)}return void 0===a&&(a=setTimeout(h,t)),i}return t=F(t)||0,function(e){const t=typeof e;return null!==e&&("object"===t||"function"===t)}(r)&&(l=!!r.leading,f="maxWait"in r,s=f?w(F(r.maxWait)||0,t):void 0,d="trailing"in r?!!r.trailing:d),b.cancel=function(){void 0!==a&&clearTimeout(a),u=0,n=c=o=a=void 0},b.flush=function(){return void 0===a?i:g(O())},b}function O(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}function F(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 A(e,t){return t instanceof Map?{__type:"Map",entries:Array.from(t.entries())}:t instanceof Set?{__type:"Set",values:Array.from(t)}:t}function k(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 I(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 C={ms:e=>e,seconds:e=>1e3*e,minutes:e=>C.seconds(60*e),hours:e=>C.minutes(60*e),days:e=>C.hours(24*e),weeks:e=>C.days(7*e),infinity:1/0,zero:0},T=i?C.ms(200):C.seconds(5);function K(e){return t=>{if("string"!=typeof t)throw new c("[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?k:void 0)}catch(e){throw u.error(new c("[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?A:void 0)}catch(e){throw u.error(new c("[createBaseStore]: Failed to serialize Rainbow store data"),{error:e}),e}}(t,e)}var E=Object.freeze({shouldClear:!1});function x(e,t,r){if(!t||!e)return E;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 z(e,t){e&&t.shouldClear&&t.fieldSnapshot&&Object.keys(t.fieldSnapshot).length&&e.clearFieldTimestamps(t.fieldSnapshot)}function D(e){return!!e&&!!e.getIsApplyingRemote()}function L(e,...t){return!0===t[1]?Q(t[0])?t[0](e):t[0]:{...e,...Q(t[0])?t[0](e):t[0]}}function P(e,t){W(e)?e.getState().reset(t?.clearQueryCache):function(e){return"destroy"in e}(e)&&e.destroy()}function R(e){return"getSnapshot"in e}function W(e){return"_queryStore"in e}function $(e){return"persist"in e}function _(e){return"_virtualStore"in e}function Q(e){return"function"==typeof e}var[U,V]=[0,1];function B(e,t,r){if(!e)return!0;const n=e[U],o=e[V];return!(t<n)&&(t>n||r>o)}function N(e,t){return Object.prototype.hasOwnProperty.call(t,e)}function H(e,t){return!0}function J(e){if(null===e)return"null";const t=typeof e;return"object"===t?Object.prototype.toString.call(e):t}function Y(e,n){const o=void 0!==n&&"string"==typeof n.storageKey,s=o?n.storageKey:void 0,i=n?.sync?function(e,t){if(!e)return null;if(!0===e){if(!t)throw new c("[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 c("[createBaseStore]: sync requires either a key in the config or a storageKey to inherit from");return{...r,key:n}}(n.sync,s):void 0,a=o?n.storage??S().storage:void 0,f=i?function(e,t,r){const n=t.engine??S().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:(s,i,a)=>{const l=new Map,f=[],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)}},j=function(e,t){if(p||!b)return t?s(e,t):s(e);const r=(()=>{const e=Date.now(),t=e>g?e:g+1;return g=t,t})();let o=[],i=Object.create(null);const a=n=>{const s=L(n,e,t);for(const e of m)Object.is(s[e],n[e])||(o.push(e),i[e]=s[e]);return o.length&&w(r,o),s},c=t?s(a,!0):s(a),u=()=>{o.length&&(e=>{const t=n.sessionId;for(const r of e.keys)l.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:i,timestamp:r})};return(f=c)&&"object"==typeof f&&"then"in f&&"function"==typeof f.then?c.finally(u):(u(),c);var f},q=a.setState;a.setState=j;const O=e(j,i,a);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}(O),!m.length)return O;b=new Set(m);const F=async e=>{g=Math.max(g,e.timestamp);const r=Object.create(null),n=i(),s=e.timestamp;let a;if(e.replace)for(const t of m)N(t,e.values)||B(l.get(t),s,e.sessionId)&&(a??(a=[])).push(t);for(const o of m){if(!N(o,e.values))continue;if(!b?.has(o))continue;if(!B(l.get(o),s,e.sessionId))continue;const i=t.merge?.[o];if(i){const t=e.values[o],a=n[o];if(void 0!==t){const f=i(t,a,n,e.values),d=void 0!==a?a:t;if(!H())return void u.error(new c(`[sync] Merge function for field "${String(o)}" returned ${J(f)} but expected ${J(d)}`));r[o]=f,l.set(o,[s,e.sessionId])}}else r[o]=e.values[o],l.set(o,[s,e.sessionId])}if(Object.keys(r).length>0||a?.length){p=!0,o&&o.setIsApplyingRemote(!0);try{if(e.replace){const e={...n};let t=!1;if(a?.length){t=!0;for(const t of a)delete e[t],l.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??q)(e,!0)}else await(o.setWithoutPersist??q)(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):f.push(e)},delta:t.delta,fields:m,getState:i,key:t.key});const k=()=>{h=!0,(()=>{if(y&&d.length){for(const e of d){const t=n.sessionId;for(const r of e.keys)l.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(!f.length)return;const e=f.slice();f.length=0;for(const t of e)A(t)})()};return r&&o?(o.onHydrationComplete=k,o.onHydrationFlushEnd=I):y.onHydrated?(y.onHydrated(k),I()):(k(),I()),O},syncContext:o}}(e,i,a?.async??!1):void 0,d=f?.stateCreator??e;if(!o)return r.createWithEqualityFn()(t.subscribeWithSelector(d),Object.is);const y=a?.async?function(e){let t,r,n,o=!1;return{hydrationPromise:()=>o?t?.promise??r??(r=Promise.resolve()):(t||(t=v()),t.promise),stateCreator:(r,s,i)=>{let a;return n=()=>{if(a?.length){for(const e of a)e[1]?i.setState(e[0],e[1]):i.setState(e[0]);a=void 0}},e((...e)=>o?!0===e[1]?r(e[0],e[1]):r(e[0]):(t||(t=v()),a||(a=[]),a.push(e),t.promise),s,i)},wrapOnRehydrateStorage:(e,r)=>s=>{const i=e?.(s);return(e,s)=>{o=!0,r?.onHydrationComplete?.(),n&&n(),r?.onHydrationFlushEnd?.(),s?t?.fail(l(s)):t?.complete(),i?.(e,s)}}}}(d):null,p=function(e,t,r){const n=t??e.storage??S().storage,o=(e.sync?void 0:e.persistThrottleMs??T)||void 0,s=e.version??0,i=n.async?function(e,t,r,n){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),s="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),i=t.partialize??I,a=t.deserializer??e.deserializer??K(o),l=t.serializer??e.serializer??M(o);async function f(t,r){try{if(D(n))return;r.state=i(r.state);const o=x(n,s,r),a=l(r);try{await e.set(t,a),z(n,o)}catch(e){u.error(new c("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){u.error(new c("[createBaseStore]: Failed to serialize persisted store data"),{error:e})}}const d=void 0!==r?q(f,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}}(f);return{getItem:async t=>{const r=await e.get(t);return void 0===r?null:a(r)},setItem:async(e,t)=>{if(!n?.getIsApplyingRemote())return await d(e,t)},removeItem:async t=>{try{await e.delete(t)}catch(e){u.error(new c("[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),s="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),i=t.partialize??I,a=t.deserializer??e.deserializer??K(o),l=t.serializer??e.serializer??M(o);function f(t,r){try{if(D(n))return;r.state=i(r.state);const o=x(n,s,r),a=l(r);try{e.set(t,a),z(n,o)}catch(e){u.error(new c("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){u.error(new c("[createBaseStore]: Failed to persist store data"),{error:e})}}const d=void 0!==r?q(f,r,{leading:!1,maxWait:r,trailing:!0}):f;return{getItem:t=>{const r=e.get(t);return void 0===r?null:a(r)},setItem:(e,t)=>{n?.getIsApplyingRemote()||d(e,t)},removeItem:t=>{try{e.delete(t)}catch(e){u.error(new c("[createBaseStore]: Failed to delete persisted store data"),{error:e})}}}}(n,e,o,r);return{persistStorage:i,version:s}}(n,a,f?.syncContext),h=y?y.wrapOnRehydrateStorage(n.onRehydrateStorage,f?.syncContext):n.onRehydrateStorage,g=y?(e,t,r)=>(f&&(f.syncContext.setWithoutPersist=r.setState),y.stateCreator(e,t,r)):d,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 G(e,t,r){const n=t.get(e);if(!n){const n=function(e,t,r,n=[]){return e&&"object"==typeof e?X(e,n,t,r,new WeakSet,new WeakMap):(r(t,n,!0),e)}(R(e)?e.getSnapshot():e.getState(),e,r);return t.set(e,n),n}return n}function X(e,t,r,n,o,s){return new Proxy(e,{get(i,a,c){if(o.has(i))return Reflect.get(i,a,c);if("__proto__"===a||"symbol"==typeof a)return a===Symbol.iterator&&(n(r,t,!0),o.add(i)),Reflect.get(i,a,c);const u=Reflect.get(i,a,i),l=String(a),f=t.concat(l);if("function"==typeof u)return Object.prototype.hasOwnProperty.call(i,a)?function(...e){return n(r,f,!0,{method:l,args:e.length?e:void 0}),Reflect.apply(u,i,e)}:(n(r,t,!0),u.bind(e));const d=!!u&&"object"==typeof u;return n(r,f,!d),d?(s.has(u)||s.set(u,X(u,f,r,n,o,s)),s.get(u)):u},getOwnPropertyDescriptor:(e,s)=>(n(r,t,!0),o.add(e),Reflect.getOwnPropertyDescriptor(e,s)),has:(e,o)=>(n(r,t,!0),Reflect.has(e,o)),ownKeys:e=>(n(r,t,!0),o.add(e),Reflect.ownKeys(e))})}function Z(e){return t=>te(t,e)}function ee(e,t){const r=e.slice(0,-1);return e=>{const n=te(e,r),o=n?.[t.method];return"function"==typeof o?o.apply(n,t.args):void 0}}function te(e,t){let r=e;for(const e of t){if(!r||"object"!=typeof r)return r;r=r[e]}return r}function re(){const e=new Map;return{buildProxySubscriptions(t,r){const n=new Set;for(const[t,r]of e)se(r,t,[],0,n);!function(e,t,r){for(const r of e)t(r.store,r.invocation?ee(r.path,r.invocation):Z(r.path));r&&e.size}(n,t,r)},trackPath(t,r,n,o){let s=e.get(t);s||(s=ne(),e.set(t,s)),oe(s,r,0,n,o)}}}function ne(){return Object.create(null)}function oe(e,t,r,n,o){if(r===t.length)return n&&(e.isLeaf=!0),void(o&&(e.invocation=o));e.children||(e.children=ne());const s=t[r];let i=e.children?.[s];i||(i=ne(),e.children[s]=i),oe(i,t,r+1,n,o)}function se(e,t,r,n,o,s=1){const i=e.children;if(!i)return void o.add({store:t,path:r,invocation:e.invocation,isLeaf:e.isLeaf??!1});const a=Object.keys(i),c=a.length;if(0!==c)if(e.isLeaf||n>=s&&c>1){o.add({store:t,path:r,invocation:e.invocation,isLeaf:e.isLeaf??!1});for(const e of a){const a=i[e];a.invocation&&se(a,t,[...r,e],n+1,o,s)}}else if(n<s&&c>1&&!e.isLeaf)for(const e of a)se(i[e],t,[...r,e],n+1,o,s);else{if(1===c){const e=a[0];return void se(i[e],t,[...r,e],n+1,o,s)}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 ie=!1,ae=!1,ce=new Map,ue=new Map,le=new Map,fe=null,de=1/0;function ye(){return ie}function pe(){return fe}function he(){ie||(ie=!0,ae||(ae=!0,queueMicrotask(()=>{ae=!1,(()=>{for(;ue.size>0;){const e=de,t=le.get(e);if(t){le.delete(e);for(const e of t)ue.delete(e);fe=e;for(const e of t)e();if(fe=null,le.size>0){de=1/0;for(const e of le.keys())e<de&&(de=e)}else de=1/0}else{de=1/0;for(const e of le.keys())e<de&&(de=e)}}for(;ce.size>0;){const e=Array.from(ce.values());ce.clear();for(const t of e)t()}})(),ie=!1,fe=null,ue.clear(),le.clear(),de=1/0})))}function ge(e,t){ie&&ce.set(e,t)}var be=e=>e;function me(e,t=Object.is){return r=function(e,t=Object.is){const{debounceOptions:r,debugMode:n,equalityFn:o,keepAlive:s,lockDependencies:i}="function"==typeof(u=t)?{debounceOptions:void 0,debugMode:!1,equalityFn:u,keepAlive:!1,lockDependencies:!1}:{debounceOptions:u.debounce,debugMode:false,equalityFn:u.equalityFn??Object.is,keepAlive:u.keepAlive??!1,lockDependencies:u.lockDependencies??!1},a=String(ve+=1),c=new Set;var u;s&&c.add(we);const l=new Set;let f,d,y=Se,p=!1,h=!0,g=!0,b=!0,m=0,S=!1,v=null,w=Se;function j(e,t,r){if(!b||!c.size)return(t??be)(R(e)?e.getSnapshot():e.getState());if(!t)return f||(f=new WeakMap),d||(d=re()),G(e,f,d.trackPath);const n=e.subscribe(t,E,{equalityFn:r??Object.is,isDerivedStore:!0});return l.add(n),t(R(e)?e.getSnapshot():e.getState())}function O(e){for(const t of l)t(e);l.clear()}function F(){if(!g&&je(y))return y;g=!1,b&&O(!0);const t=y,r=je(t);y=function(t){h=!0;const r=y,n=e(t);return je(r)&&o(r,n)?(h=!1,r):n}(j);const s=n&&(!r||"verbose"===n&&b);return s&&l.size,d&&b&&(d.buildProxySubscriptions((e,t)=>{const r=e.subscribe(t,E,{equalityFn:Object.is,isDerivedStore:!0});l.add(r)},s),f=void 0,d=void 0),h&&r&&function(e,t){const r=function(){const e=c.has(we)?c.size-1:c.size;return m>0&&m<e}(),n=!m||r,o=r||null!==pe()||ye()&&n;r&&he();for(const t of c){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)}}o?S||(S=!0,je(w)||(w=t),ge(a,k)):A(e,t)}(y,t),i&&(b=!1),y}function A(e,t){for(const r of c)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 k(){c.size&&(S&&function(){if(g&&!m&&F(),!je(y))return;const e=je(w)?w:y;A(y,e)}(),S=!1,w=Se)}const I=r?q(T,"number"==typeof r?r:r.delay,"number"==typeof r?{leading:!1,maxWait:r,trailing:!0}:r):void 0,C=I??(()=>{p||(p=!0,queueMicrotask(T))});function T(){c.size&&(p=!1,g&&F())}function K(e){e?queueMicrotask(()=>{c.size||z()}):z()}function M(){T(),v=null}function E(){if(!g){if(g=!0,!I){if(m){he();const e=pe(),t=null===e?0:e+1;if(null!==v&&t<=v)return;return v=t,void function(e,t){if(!ie)return;const r=t<0?0:0|t,n=ue.get(e);if(void 0===n){ue.set(e,r);let t=le.get(r);return t||(t=new Set,le.set(r,t)),t.add(e),void(r<de&&(de=r))}if(r>n){const t=le.get(n);if(t&&(t.delete(e),0===t.size&&(le.delete(n),n===de))){de=1/0;for(const e of le.keys())e<de&&(de=e)}ue.set(e,r);let o=le.get(r);o||(o=new Set,le.set(r,o)),o.add(e),r<de&&(de=r)}}(M,t)}if(ye())return void(S||(S=!0,je(y)&&(w=y),ge(a,k)))}v=null,m&&!r?F():C()}}function x(){return g||!je(y)?c.size>0?F():e(j):y}function z(e=!0){s&&e||(I?.cancel(),O(),c.clear(),m=0,d=void 0,f=void 0,b=!0,p=!1,g=!0,y=Se,S=!1,w=Se,v=null)}return{destroy:()=>z(!1),flushUpdates:function(){c.size&&(I?I.flush():g&&F())},getSnapshot:function(){if(!je(y)){c.add(we);const e=F();return c.delete(we),e}return p&&T(),y},getState:x,subscribe:function(...e){if(1===e.length){const t=e[0];return c.add(t),1!==c.size||je(y)||x(),()=>{c.delete(t),c.size||K(!1)}}const[t,r,n]=e,o=n?.equalityFn??Object.is,s=n?.isDerivedStore??!1,i={currentSlice:void 0,equalityFn:o,isDerivedWatcher:s,listener:r,selector:t};return c.add(i),i.currentSlice=t(x()),s&&(m+=1),n?.fireImmediately&&r(i.currentSlice,i.currentSlice),()=>{c.delete(i),s&&(m-=1),c.size||K(s)}},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=be,t=void 0){return n.useSyncExternalStoreWithSelector(r.subscribe,r.getSnapshot,void 0,e,t)},r);var r}var Se=Symbol(),ve=0;function we(){}function je(e){return e!==Se}var qe=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=C.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)}}},Oe={Error:"error",Idle:"idle",Loading:"loading",Success:"success"};function Fe(e,t){const r=Object.prototype.hasOwnProperty;function n(e,t){for(const r of e.keys())if(Fe(r,t))return r}let o,s,i;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((s=e.length)===t.length)for(;s--&&Fe(e[s],t[s]););return-1===s}if(o===Set){if(e.size!==t.size)return!1;for(let r of e){if(i=r,i&&"object"==typeof i&&(i=n(t,i),!i))return!1;if(!t.has(i))return!1}return!0}if(o===Map){if(e.size!==t.size)return!1;for(let r of e){if(i=r[0],i&&"object"==typeof i&&(i=n(t,i),!i))return!1;if(!Fe(r[1],t.get(i)))return!1}return!0}if(o===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(o===DataView){if((s=e.byteLength)===t.byteLength)for(;s--&&e.getInt8(s)===t.getInt8(s););return-1===s}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){const r=e,n=t;if((s=r.byteLength)===n.byteLength)for(;s--&&r[s]===n[s];);return-1===s}if(!o||"object"==typeof e){s=0;for(const n in e){if(r.call(e,n)&&++s&&!r.call(t,n))return!1;if(!(n in t)||!Fe(e[n],t[n]))return!1}return Object.keys(t).length===s}}return e!=e&&t!=t}var Ae=new WeakMap,ke=new WeakMap;function Ie(e,t=Ce,r=Fe){return function(e,t,r){let n=ke.get(e);n||(n=new Map,ke.set(e,n));let o=n.get(t);o||(o=new Map,n.set(t,o));const s=o.get(r);if(s)return s;const[i,a,c]=Ke(e,t,r),u=new Map,l=e=>{const t={get(t,r){if("value"===r){let t=a();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,s=u.get(o);if(s)return s;const c=l(o);return Ae.set(c,i),u.set(o,c),c},set(t,r,n){const o=e.split(".");return""===o[0]&&o.shift(),c(o,n),!0}};return new Proxy(Object.create(null),t)},f=l("");return i(()=>{}),Ae.set(f,i),o.set(r,f),f}(e,t,r)}var Ce=e=>e,Te=(e,t,r)=>{if(!t.length)return r;const[n,...o]=t,s=e[n],i=Te(s,o,r);if(Fe(s,i))return e;const a=Array.isArray(e)?e.slice():{...e};return a[n]=i,a},Ke=(e,t,r)=>{const n=new Set,o=R(e);let s,i=t(o?e.getSnapshot():e.getState());return[a=>(n.size||(s=e.subscribe(t,e=>{i=e,n.forEach(e=>e())},{equalityFn:r,isDerivedStore:o})),n.add(a),()=>{n.delete(a),!n.size&&s&&(s(),s=void 0)}),()=>(n.size||(i=t(e.getState())),i),(r,n)=>{if(t!==Ce)throw new Error("Cannot set a value with a selector");e.setState(e=>Te(e,r,n),!0)}]};function Me(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var[Ee,xe]=[!0,!1],ze={error:Ee,lastFetchedAt:Ee,queryCache:Ee,queryKey:Ee,status:Ee,enabled:xe,fetch:xe,getCacheEntry:xe,getData:xe,getStatus:xe,isDataExpired:xe,isStale:xe,reset:xe};function De(e,t){const r=t?.baseDelay??C.seconds(5),n=t?.maxDelay??C.minutes(5),o=Math.pow(2,e);return Math.min(r*o,n)}function Le(e){return JSON.stringify(Object.keys(e).sort().map(t=>e[t]))}function Pe(e){return JSON.stringify(Re(e))}function Re(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?Re(n):n,t},{})}function We(e,t,r,n){return n?function(e,t){if(!e)return!1;for(const r of t)if(!(r in e))return!1;return!0}(n,r)?n:{...$e(e,t),...n}:$e(e,t)}function $e(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 _e(){return Object.create(null)}function Qe(e,t,r){if(!r.queryCache)return r;const n=Date.now(),o=t??(e&&r.queryKey||null);let s=!1;const i=Object.create(null);for(const e in r.queryCache){if(!Me(r.queryCache,e))continue;const a=r.queryCache[e];a&&(n-(a.lastFetchedAt??a.errorInfo.lastFailedAt)<a.cacheTime||e===o)?!t&&a.errorInfo&&a.errorInfo.retryCount>0?(i[e]={...a,errorInfo:{...a.errorInfo,retryCount:0}},s=!0):i[e]=a:s=!0}return s?{...r,queryCache:i}:r}function Ue(e){return"function"==typeof e}function Ve(e){return!Ue(e)}function Be(e,t){return r=>{const n={...r},o={};for(const e in n)Me(n,e)&&e in ze&&(ze[e]&&(o[e]=n[e]),delete n[e]);return{...t?t(n):I(n),...Qe(e,null,o)}}}C.seconds(5);var Ne=Symbol(),He=Object.freeze({debugMode:!1,enabled:!0,equalityFn:Object.is,fireImmediately:!1}),Je=Object.freeze({fireImmediately:!1,forceResubscribe:!1});function Ye(e,t,r=Je){if(t.current.isActive){if(!r?.forceResubscribe)return;t.current.unsubscribe()}t.current.options.debugMode,t.current.isActive=!0,t.current.resubscribe=(r=Je)=>Ye(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 Ge(e){return"function"==typeof e?{equalityFn:e}:e??He}var Xe=Symbol();function Ze(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 et(e,t){return"function"==typeof e[t]}exports.QueryStatuses=Oe,exports.applyStateUpdate=L,exports.configureStores=function(e){var t;e.logger&&(t=e.logger,u=t),e.storage&&(m.storage=e.storage),e.syncEngine&&(m.syncEngine=e.syncEngine)},exports.createBaseStore=Y,exports.createDerivedStore=me,exports.createQueryStore=function(e,t,r){const n="function"==typeof t?t:_e,o="object"==typeof t?t:r,s=o&&"storageKey"in o?o:void 0,{fetcher:i,onError:a,onFetched:f,setData:d,transform:y,abortInterruptedFetches:p=!0,cacheTime:h=C.days(7),debugMode:g=!1,disableAutoRefetching:b=!1,disableCache:m=!1,enabled:S=!0,keepPreviousData:v=!1,maxRetries:w=5,paramChangeThrottle:j=!1,params:O,retryDelay:F=De,suppressStaleTimeWarning:A=!1,useParsableQueryKeys:k=!0}=e;let I="function"==typeof e.staleTime?C.minutes(2):e.staleTime??C.minutes(2);const T=k?Pe:Le,K=new Error("[createQueryStore: AbortError] Fetch interrupted"),M="function"==typeof h,E=Object.keys(e.params??Object.create(null));let x=null,z=null,D=null,L=[],P=!1,R=!1,W=null,$=null,_=null,Q=null,U=null;const V={enabled:"function"!=typeof S&&S,error:null,lastFetchedAt:null,queryCache:{},queryKey:"",status:Oe.Idle},B=new qe({disableAutoRefetching:b,initialEnabled:V.enabled}),N=()=>{W&&($=null,W.abort(),W=null)},H=(t,r,o)=>{const g=o.setState,S=(e,t)=>{const r="function"==typeof e;if(r||void 0!==e.enabled){let t;const n=g(n=>{const s=r?e(n):e,i=void 0!==s.enabled?s.enabled:n.enabled;return i!==n.enabled&&(t=()=>((e,t)=>{e!==t&&U!==t&&(U=t,B.setEnabled(t),t?queueMicrotask(()=>o.getState().fetch(void 0,{updateQueryKey:!0})):(_||p)&&(p&&N(),_&&(clearTimeout(_),_=null)))})(n.enabled,i)),s});return t?.(),n}return g(e)};o.setState=S,B.init({onSubscribe:(n,o,s)=>{if(z||x||!O&&"function"!=typeof e.enabled&&"function"!=typeof e.staleTime){if(n)if(o){const e=$e(x,z),n=T(e),o=r();o.queryKey!==n&&t(e=>({...e,queryKey:n})),o.isStale()?q.fetch(e,void 0,!0):j(e,void 0)}else b&&!s&&q.fetch(void 0,void 0,!0)}else P=!0},onLastUnsubscribe:e=>{_&&(clearTimeout(_),_=null),p&&!e&&N()}});const j=(e,t)=>{if(b||t?.skipStoreUpdates)return;if(I<=0||I===1/0)return;_&&(clearTimeout(_),_=null);const n=T(e),o=r(),s=(m?Q===n&&o.lastFetchedAt:o.queryCache[n]?.lastFetchedAt)||null,i=s?I-(Date.now()-s):I;_=setTimeout(()=>{const t=B.get();t.enabled&&t.subscriptionCount>0&&q.fetch(e,{force:!0},!0)},i)},q={...n(S,r,o),...V,async fetch(e,n,o=!1){const g=B.get();if(!n?.force&&!n?.skipStoreUpdates&&!g.enabled)return null;const b=r(),O=b.error,A=b.queryKey,k=b.status,C=We(x,z,E,e),D=T(C),L=n?.staleTime??I,P=k===Oe.Loading,R=!!n?.skipStoreUpdates,U="boolean"==typeof n?.updateQueryKey?n.updateQueryKey:o?v:!R,V=o||!R&&(U||A===D);if($?.promise&&$.key===D&&P)return $.promise;if(p&&!R&&!1!==n?.updateQueryKey&&N(),!n?.force){const e=b.lastFetchedAt,r=b.queryCache[D],o=r?.lastFetchedAt,s=r?.errorInfo,i=s&&s.retryCount>=w,a=(m?Q===D&&e:o)||null;if(a&&!(Date.now()-a>=L)&&(!s||i||R))return V&&!R&&!_&&g.subscriptionCount>0&&0!==I&&I!==1/0&&j(C,n),U&&t(e=>e.queryKey!==D?{...e,queryKey:D}:e),r?.data??null}!R&&V&&(_&&(clearTimeout(_),_=null),!O&&P||t(e=>({...e,error:null,status:Oe.Loading})),$={key:D});const H=n?.cacheTime??(M?h(C):h),J=async()=>{try{const e=await(p&&!R&&V?(async e=>{const t=new AbortController;W=t;try{return await new Promise((r,n)=>{t.signal.addEventListener("abort",()=>n(K),{once:!0}),Promise.resolve(i(e,t)).then(r,n)})}finally{W===t&&(W=null)}})(C):i(C,null)),r=Date.now();let o;try{o=y?y(e,C):e}catch(e){throw new c(`[createQueryStore: ${s?.storageKey||D}]: transform failed`,e)}if(R)return"withCache"===n.skipStoreUpdates&&t(e=>{if(!d)return m?{...e,queryCache:{...e.queryCache,[D]:{cacheTime:H,data:o,errorInfo:null,lastFetchedAt:r}}}:e;let t=e;const n=t.queryCache[D];return d({data:o,params:C,queryKey:D,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}}),!m&&Object.is(n,t.queryCache[D])&&(t={...t,queryCache:{...t.queryCache,[D]:{cacheTime:H,data:o,errorInfo:null,lastFetchedAt:r}}}),t}),o;if((d?S:t)(e=>{let t={...e,error:null,lastFetchedAt:r,queryKey:U?D:e.queryKey,status:Oe.Success};if(d||m){if(d){const e=t.queryCache[D];d({data:o,params:C,queryKey:D,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}}),!m&&Object.is(e,t.queryCache[D])&&(t.queryCache={...t.queryCache,[D]:{cacheTime:H,data:null,errorInfo:null,lastFetchedAt:r}})}}else t.queryCache={...t.queryCache,[D]:{cacheTime:H,data:o,errorInfo:null,lastFetchedAt:r}};return m||h===1/0?t:Qe(v,D,t)}),V&&(Q=D,j(C,n)),f)try{f({data:o,fetch:q.fetch,params:C,set:S})}catch(e){u.error(new c(`[createQueryStore: ${s?.storageKey||D}]: onFetched callback failed`,e))}return o??null}catch(i){if(i===K)return null;const f=!o&&!0===n?.throwOnError,d=l(i);if(R||!V){if(u.error(new c(`[createQueryStore: ${s?.storageKey||D}]: Failed to fetch data`,d)),f)throw d;return null}const y=m?void 0:r().queryCache[D],p=y?.errorInfo?.retryCount??0,h=p+1;if(a?.(d,p),p<w){if(B.get().subscriptionCount>0){const t="function"==typeof F?F(h,d):F;t!==1/0&&(_&&clearTimeout(_),_=setTimeout(()=>{const{enabled:t,subscriptionCount:r}=B.get();t&&r>0&&q.fetch(e,{force:!0},!0)},t))}t(e=>({...e,error:d,queryCache:{...e.queryCache,[D]:{cacheTime:y?.cacheTime??H,data:y?.data??null,lastFetchedAt:y?.lastFetchedAt??null,errorInfo:{error:d,lastFailedAt:Date.now(),retryCount:h}}},queryKey:U?D:e.queryKey,status:Oe.Error}))}else t(e=>({...e,error:d,queryCache:{...e.queryCache,[D]:{cacheTime:y?.cacheTime??H,data:y?.data??null,lastFetchedAt:y?.lastFetchedAt??null,errorInfo:{error:d,lastFailedAt:Date.now(),retryCount:w}}},queryKey:U?D:e.queryKey,status:Oe.Error}));if(u.error(new c(`[createQueryStore: ${s?.storageKey||D}]: Failed to fetch data`,d)),f)throw d;return null}finally{!R&&V&&($=null)}};return R||!V?J():($={key:D,promise:J()}).promise},getCacheEntry(e){if(m)return null;const t=r(),n=e?"string"==typeof e?e:T(We(x,z,E,e)):t.queryKey;return t.queryCache[n]??null},getData(e){if(m)return null;const t=r().getCacheEntry(e);return t&&null!==t.data?v?t.data:t.lastFetchedAt&&Date.now()-t.lastFetchedAt>=t.cacheTime?null:t.data:null},getStatus:function(e){switch(e){case"isIdle":return r().status===Oe.Idle;case"isLoading":return r().status===Oe.Loading;case"isSuccess":{const e=r(),t=e.queryCache[e.queryKey]?.lastFetchedAt;return"number"==typeof t||e.status===Oe.Success}case"isError":case"isInitialLoad":case void 0:{const t=r(),n=t.queryCache[t.queryKey],o=(m?Q===t.queryKey&&t.lastFetchedAt:n?.lastFetchedAt)||null,s=t.status;switch(e){case"isError":{const e=t.queryCache[t.queryKey];return m?"error"!==s:"number"==typeof e?.errorInfo?.lastFailedAt}case"isInitialLoad":return!o&&s===Oe.Loading}return{isError:s===Oe.Error,isIdle:s===Oe.Idle,isLoading:s===Oe.Loading,isInitialLoad:!o&&s===Oe.Loading,isSuccess:s===Oe.Success}}}},isDataExpired(e){const t=r(),n=t.queryCache[t.queryKey],o=t.queryKey,s=t.lastFetchedAt,i=(m?Q===o&&s:n?.lastFetchedAt)||null;if(!i)return!0;const a=e??n?.cacheTime;return void 0===a||Date.now()-i>=a},isStale(e){const t=r(),n=t.queryKey,o=(m?Q===n&&t.lastFetchedAt:t.queryCache[n]?.lastFetchedAt)||null;if(!o)return!0;const s=e??I;return Date.now()-o>=s},reset(e=!1){for(const e of L)e();L=[],x=null,z=null,D=null,N(),_&&(clearTimeout(_),_=null),$=null,Q=null,e&&t(e=>({...e,...V}))}},A=o.subscribe;return o.subscribe=(...e)=>{const t=R?()=>{}:B.subscribe(),r=1===e.length?A(e[0]):A(...e);return e=>{t(e),r()}},q},J=s?.storageKey?Y(H,Object.assign(Object.create(null),s,{partialize:Be(v,s.partialize)})):o&&!("storageKey"in o)?Y(H,o):Y(H),G=J.getState(),X=G.error,Z=G.enabled,ee=G.queryKey;if(ee&&!X&&(Q=ee),R=!0,O||"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),s=Object.create(null);for(const e in t){if(!Me(t,e))continue;const i=t[e];if(Ue(i)){const t=i(Ie,r);n[e]=t,s[e]=t.value}else Ve(i)&&(o[e]=i,s[e]=i)}let i,a=null,c=null;if(Ue(e)){const t=e(Ie,r);i=t.value,a=t}else i=e,c=e;return{attachVals:n,directValues:o,enabledAttachVal:a,enabledDirectValue:c,resolvedEnabled:i,resolvedParams:s}}(S,O,J);x={enabled:t,params:n},z={enabled:r,params:e}}"function"==typeof e.staleTime&&(D=e.staleTime(Ie,J),I=D.value);const te=function(){let e,t=!1;return function(...r){e=r,t||(t=!0,queueMicrotask(()=>{t=!1,(e=>{G.fetch(e??$e(x,z),{updateQueryKey:v})})(...e)}))}}();function re(){let e;if(!v){e=$e(x,z);const t=T(e);J.setState(e=>({...e,queryKey:t}))}te(e)}const ne=j?q(re,"number"==typeof j?j:j.delay,"number"==typeof j?{leading:!1,maxWait:j,trailing:!0}:j):re;if(x?.enabled){const e=x.enabled,t=Ae.get(e);if(t){let r=e.value;Z!==r&&J.setState(e=>({...e,enabled:r})),r&&B.setEnabled(r);const n=t(()=>{const t=e.value;t!==r&&(r=t,J.setState(e=>({...e,enabled:t})))});L.push(n)}}else Z!==V.enabled&&J.setState(e=>({...e,enabled:V.enabled}));for(const e in x?.params){const t=x.params[e];if(!t)continue;const r=Ae.get(t);if(r){let e=t.value;const n=r(()=>{const r=t.value;Fe(e,r)||(e=r,ne())});L.push(n)}}if(D){const e=Ae.get(D);if(e){const t=D;let r=t.value;const n=e(()=>{const e=t.value;e!==r&&(r=e,I=e,J.getState().fetch())});L.push(n)}}return R=!1,P&&queueMicrotask(ne),oe=J,se="_queryStore",Object.assign(oe,{[se]:!0});var oe,se},exports.createStoreActions=function(e,t){const r=function(e){const t=e.getState(),r=Object.create(null);if(_(e)){for(const n in t)et(t,n)&&(r[n]=Ze(e,n));return r}for(const e in t)et(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,s=n?r:t,i=new Set,a=me(e,{debugMode:s?.debugMode??!1,equalityFn:function(e,t){const r=Object.is(e,t);return r||(function(e,t){for(const r of i){r.unsubscribe();const n=r.args;if(1===n.length){const o=n[0],s=e.getState(),i=t.getState(),a=t.subscribe(o);r.unsubscribe=a,Object.is(i,s)||o(i,s);continue}const o=n[0],s=n[1];let i=n[2];i?.fireImmediately&&(i={...i,fireImmediately:!1});const a=i?.equalityFn??Object.is,c=o(e.getState()),u=o(t.getState()),l=t.subscribe(...n);r.unsubscribe=l,a(c,u)||s(u,c)}}(e,t),P(e)),r},keepAlive:!0,lockDependencies:s?.lockDependencies??!0}),c=a.getState().persist,u=(l=a.getState,function(e,t){return t?l().setState(e,t):l().setState(e)});var l;return Object.assign(function(e,t){const r=a();return e?r(e,t):r()},{_virtualStore:!0,destroy:()=>a.destroy(),getInitialState:()=>a.getState().getInitialState(),getState:()=>a.getState().getState(),persist:c,setState:u,subscribe:function(...e){const t={args:e,unsubscribe:1===e.length?a.getState().subscribe(e[0]):a.getState().subscribe(...e)};return i.add(t),()=>{t.unsubscribe(),i.delete(t)}}},o?o(a.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=De,exports.destroyStore=P,exports.destroyStores=function(e,t){for(const r of Array.isArray(e)?e:Object.values(e))r&&!t?.skipDestroy?.(r)&&P(r,t)},exports.getLegacyQueryKey=Le,exports.getQueryKey=Pe,exports.getStoreName=function(e){return $(e)?e.persist.getOptions().name??e.name:e.name},exports.isDerivedStore=function(e){return"flushUpdates"in e},exports.isPersistedStore=$,exports.isQueryStore=W,exports.isVirtualStore=_,exports.parseQueryKey=function(e){return JSON.parse(e)},exports.replacer=A,exports.reviver=k,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=C,exports.useListen=function(e,t,r,n=He){const s=function(){const e=o.useRef(Ne);return e.current===Ne&&(e.current=function(e,t,r){return{selector:e,react:t,isActive:!1,options:Ge(r),resubscribe:()=>{},unsubscribe:()=>{}}}(t,r,n)),e}(),i=function(e){return"function"==typeof e?He.enabled:e?.enabled??He.enabled}(n);return s.current.react=r,s.current.selector=t,function(e,t){"function"==typeof t?e.current.options.equalityFn=t:t&&(e.current.options=t??He)}(s,n),o.useLayoutEffect(()=>{if(i)return Ye(e,s),()=>function(e){e.current.options.debugMode,e.current.resubscribe=()=>{},e.current.unsubscribe(),e.current.unsubscribe=()=>{},e.current.isActive=!1}(s)},[i,e]),s},exports.useStableValue=function(e){const t=o.useRef(Xe);return t.current===Xe&&(t.current=e()),t.current};
|
|
1
|
+
var e,t=require("zustand/middleware"),r=require("zustand/traditional"),n=require("use-sync-external-store/shim/with-selector"),o=require("react"),s=(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="undefined"!=typeof window&&"undefined"!=typeof document;try{const{MMKV:t}=s("react-native-mmkv"),r=new t({id:"stores-storage"}),{getString:n,...o}=r;e=Object.assign(Object.create(null),o,{get:n})}catch(e){throw new Error("[stores]: You must install react-native-mmkv for persistence to work in React Native.\n\n See: https://github.com/mrousavy/react-native-mmkv\n "+(e instanceof Error?`\n\nError: ${e.message}`:""))}!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")}(e);var a={clearAll(){e.clearAll()},contains:t=>e.contains(t),delete(t){e.delete(t)},getAllKeys:()=>e.getAllKeys(),get:t=>e.get(t),set(t,r){e.set(t,r)}},c=class extends Error{constructor(e,t){super(e),this.name="StoresError",this.cause=l(t)}},u={debug:(e,t)=>{},error:(e,t)=>{},info:(e,t)=>{},warn:(e,t)=>{}};function l(e){return e instanceof Error?e:new Error(String(e))}var f="stores/core/sync-channel",d=`${f}:storage:`;function y(){try{return"undefined"!=typeof window?window.localStorage:null}catch{return null}}var p,h,g=class{constructor(e){this.broadcast=e.broadcast,this.origin=e.origin,this.storeKey=e.storeKey,this.teardown=e.teardown}destroy(){this.teardown()}publish(e){const t=Object.create(null);for(const r of Object.entries(e.values))t[r[0]]=r[1];const r={origin:this.origin,replace:e.replace,sessionId:e.sessionId,storeKey:this.storeKey,timestamp:e.timestamp,values:t};this.broadcast(r)}},b=class{destroy(){}publish(){}},m={storage:a,syncEngine:i?(p||(p=new class{constructor(){this.listeners=new Map,this.origin="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${Math.random().toString(36).slice(2)}:${Date.now().toString(36)}`,this.onChannelMessage=e=>{e.data&&this.dispatch(e.data)},this.onStorageEvent=e=>{if(e.key&&e.newValue&&e.key.startsWith(d))try{const t=JSON.parse(e.newValue);this.dispatch(t)}catch(e){u.error(new c("[sync] Failed to parse storage event payload"),{error:e})}},this.channel="undefined"==typeof BroadcastChannel?null:new BroadcastChannel(f),this.storage=y(),this.channel&&this.channel.addEventListener("message",this.onChannelMessage),i&&window.addEventListener("storage",this.onStorageEvent)}get sessionId(){return this.origin}register(e){const t=t=>{if(t.origin===this.origin||t.storeKey!==e.key)return;const r=Object.create(null);for(const n of e.fields)Object.prototype.hasOwnProperty.call(t.values,n)&&(r[n]=t.values[n]);Object.keys(r).length&&e.apply({replace:t.replace,sessionId:t.sessionId,timestamp:t.timestamp,values:r})};let r=this.listeners.get(e.key);return r||(r=new Set,this.listeners.set(e.key,r)),r.add(t),new g({broadcast:e=>this.broadcast(e),origin:this.origin,storeKey:e.key,teardown:()=>this.removeListener(e.key,t)})}broadcast(e){try{this.channel&&this.channel.postMessage(e),this.writeToStorage(e)}catch(e){u.error(new c("[sync] Failed to broadcast update"),{error:e})}}dispatch(e){if(!e.storeKey)return;const t=this.listeners.get(e.storeKey);if(t&&t.size)for(const r of t)r(e)}removeListener(e,t){const r=this.listeners.get(e);r&&(r.delete(t),r.size||this.listeners.delete(e))}writeToStorage(e){if(this.storage||(this.storage=y()),!this.storage)return;const t=`${d}${e.storeKey}`;try{this.storage.setItem(t,JSON.stringify(e))}catch(e){u.error(new c("[sync] Failed to write broadcast payload to storage"),{error:e})}}}),p):(h||(h=new class{constructor(){this.sessionId="noop"}register(e){return new b}}),h)};function S(){return m}function v(){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 w=Math.max,j=Math.min;function q(e,t=0,r={}){let n,o,s,i,a,c,u=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){const r=n,s=o;return n=o=void 0,u=t,i=r?e.apply(s,r):e.apply(s),i}function p(e){const r=e-(c??0);return void 0===c||r>=t||r<0||f&&void 0!==s&&e-u>=s}function h(){const e=O();if(p(e))return g(e);a=setTimeout(h,function(e){const r=t-(e-(c??0));return f&&void 0!==s?j(r,s-(e-u)):r}(e))}function g(e){return a=void 0,d&&n?y(e):(n=o=void 0,i)}function b(...e){const r=O(),s=p(r);if(n=e,o=this,c=r,s){if(void 0===a)return function(e){return u=e,a=setTimeout(h,t),l?y(e):i}(c);if(f)return clearTimeout(a),a=setTimeout(h,t),y(c)}return void 0===a&&(a=setTimeout(h,t)),i}return t=F(t)||0,function(e){const t=typeof e;return null!==e&&("object"===t||"function"===t)}(r)&&(l=!!r.leading,f="maxWait"in r,s=f?w(F(r.maxWait)||0,t):void 0,d="trailing"in r?!!r.trailing:d),b.cancel=function(){void 0!==a&&clearTimeout(a),u=0,n=c=o=a=void 0},b.flush=function(){return void 0===a?i:g(O())},b}function O(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}function F(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 A(e,t){return t instanceof Map?{__type:"Map",entries:Array.from(t.entries())}:t instanceof Set?{__type:"Set",values:Array.from(t)}:t}function k(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 I(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 C={ms:e=>e,seconds:e=>1e3*e,minutes:e=>C.seconds(60*e),hours:e=>C.minutes(60*e),days:e=>C.hours(24*e),weeks:e=>C.days(7*e),infinity:1/0,zero:0},T=i?C.ms(200):C.seconds(5);function K(e){return t=>{if("string"!=typeof t)throw new c("[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?k:void 0)}catch(e){throw u.error(new c("[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?A:void 0)}catch(e){throw u.error(new c("[createBaseStore]: Failed to serialize Rainbow store data"),{error:e}),e}}(t,e)}var E=Object.freeze({shouldClear:!1});function x(e,t,r){if(!t||!e)return E;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 z(e,t){e&&t.shouldClear&&t.fieldSnapshot&&Object.keys(t.fieldSnapshot).length&&e.clearFieldTimestamps(t.fieldSnapshot)}function D(e){return!!e&&!!e.getIsApplyingRemote()}function L(e,...t){return!0===t[1]?Q(t[0])?t[0](e):t[0]:{...e,...Q(t[0])?t[0](e):t[0]}}function P(e,t){W(e)?e.getState().reset(t?.clearQueryCache):function(e){return"destroy"in e}(e)&&e.destroy()}function R(e){return"getSnapshot"in e}function W(e){return"_queryStore"in e}function $(e){return"persist"in e}function _(e){return"_virtualStore"in e}function Q(e){return"function"==typeof e}var[U,V]=[0,1];function B(e,t,r){if(!e)return!0;const n=e[U],o=e[V];return!(t<n)&&(t>n||r>o)}function N(e,t){return Object.prototype.hasOwnProperty.call(t,e)}function H(e,t){return!0}function J(e){if(null===e)return"null";const t=typeof e;return"object"===t?Object.prototype.toString.call(e):t}function Y(e,n){const o=void 0!==n&&"string"==typeof n.storageKey,s=o?n.storageKey:void 0,i=n?.sync?function(e,t){if(!e)return null;if(!0===e){if(!t)throw new c("[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 c("[createBaseStore]: sync requires either a key in the config or a storageKey to inherit from");return{...r,key:n}}(n.sync,s):void 0,a=o?n.storage??S().storage:void 0,f=i?function(e,t,r){const n=t.engine??S().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:(s,i,a)=>{const l=new Map,f=[],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)}},j=function(e,t){if(p||!b)return t?s(e,t):s(e);const r=(()=>{const e=Date.now(),t=e>g?e:g+1;return g=t,t})();let o=[],i=Object.create(null);const a=n=>{const s=L(n,e,t);for(const e of m)Object.is(s[e],n[e])||(o.push(e),i[e]=s[e]);return o.length&&w(r,o),s},c=t?s(a,!0):s(a),u=()=>{o.length&&(e=>{const t=n.sessionId;for(const r of e.keys)l.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:i,timestamp:r})};return(f=c)&&"object"==typeof f&&"then"in f&&"function"==typeof f.then?c.finally(u):(u(),c);var f},q=a.setState;a.setState=j;const O=e(j,i,a);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}(O),!m.length)return O;b=new Set(m);const F=async e=>{g=Math.max(g,e.timestamp);const r=Object.create(null),n=i(),s=e.timestamp;let a;if(e.replace)for(const t of m)N(t,e.values)||B(l.get(t),s,e.sessionId)&&(a??(a=[])).push(t);for(const o of m){if(!N(o,e.values))continue;if(!b?.has(o))continue;if(!B(l.get(o),s,e.sessionId))continue;const i=t.merge?.[o];if(i){const t=e.values[o],a=n[o];if(void 0!==t){const f=i(t,a,n,e.values),d=void 0!==a?a:t;if(!H())return void u.error(new c(`[sync] Merge function for field "${String(o)}" returned ${J(f)} but expected ${J(d)}`));r[o]=f,l.set(o,[s,e.sessionId])}}else r[o]=e.values[o],l.set(o,[s,e.sessionId])}if(Object.keys(r).length>0||a?.length){p=!0,o&&o.setIsApplyingRemote(!0);try{if(e.replace){const e={...n};let t=!1;if(a?.length){t=!0;for(const t of a)delete e[t],l.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??q)(e,!0)}else await(o.setWithoutPersist??q)(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):f.push(e)},delta:t.delta,fields:m,getState:i,key:t.key});const k=()=>{h=!0,(()=>{if(y&&d.length){for(const e of d){const t=n.sessionId;for(const r of e.keys)l.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(!f.length)return;const e=f.slice();f.length=0;for(const t of e)A(t)})()};return r&&o?(o.onHydrationComplete=k,o.onHydrationFlushEnd=I):y.onHydrated?(y.onHydrated(k),I()):(k(),I()),O},syncContext:o}}(e,i,a?.async??!1):void 0,d=f?.stateCreator??e;if(!o)return r.createWithEqualityFn()(t.subscribeWithSelector(d),Object.is);const y=a?.async?function(e){let t,r,n,o=!1;return{hydrationPromise:()=>o?t?.promise??r??(r=Promise.resolve()):(t||(t=v()),t.promise),stateCreator:(r,s,i)=>{let a;return n=()=>{if(a?.length){for(const e of a)e[1]?i.setState(e[0],e[1]):i.setState(e[0]);a=void 0}},e((...e)=>o?!0===e[1]?r(e[0],e[1]):r(e[0]):(t||(t=v()),a||(a=[]),a.push(e),t.promise),s,i)},wrapOnRehydrateStorage:(e,r)=>s=>{const i=e?.(s);return(e,s)=>{o=!0,r?.onHydrationComplete?.(),n&&n(),r?.onHydrationFlushEnd?.(),s?t?.fail(l(s)):t?.complete(),i?.(e,s)}}}}(d):null,p=function(e,t,r){const n=t??e.storage??S().storage,o=(e.sync?void 0:e.persistThrottleMs??T)||void 0,s=e.version??0,i=n.async?function(e,t,r,n){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),s="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),i=t.partialize??I,a=t.deserializer??e.deserializer??K(o),l=t.serializer??e.serializer??M(o);async function f(t,r){try{if(D(n))return;r.state=i(r.state);const o=x(n,s,r),a=l(r);try{await e.set(t,a),z(n,o)}catch(e){u.error(new c("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){u.error(new c("[createBaseStore]: Failed to serialize persisted store data"),{error:e})}}const d=void 0!==r?q(f,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}}(f);return{getItem:async t=>{const r=await e.get(t);return void 0===r?null:a(r)},setItem:async(e,t)=>{if(!n?.getIsApplyingRemote())return await d(e,t)},removeItem:async t=>{try{await e.delete(t)}catch(e){u.error(new c("[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),s="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),i=t.partialize??I,a=t.deserializer??e.deserializer??K(o),l=t.serializer??e.serializer??M(o);function f(t,r){try{if(D(n))return;r.state=i(r.state);const o=x(n,s,r),a=l(r);try{e.set(t,a),z(n,o)}catch(e){u.error(new c("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){u.error(new c("[createBaseStore]: Failed to persist store data"),{error:e})}}const d=void 0!==r?q(f,r,{leading:!1,maxWait:r,trailing:!0}):f;return{getItem:t=>{const r=e.get(t);return void 0===r?null:a(r)},setItem:(e,t)=>{n?.getIsApplyingRemote()||d(e,t)},removeItem:t=>{try{e.delete(t)}catch(e){u.error(new c("[createBaseStore]: Failed to delete persisted store data"),{error:e})}}}}(n,e,o,r);return{persistStorage:i,version:s}}(n,a,f?.syncContext),h=y?y.wrapOnRehydrateStorage(n.onRehydrateStorage,f?.syncContext):n.onRehydrateStorage,g=y?(e,t,r)=>(f&&(f.syncContext.setWithoutPersist=r.setState),y.stateCreator(e,t,r)):d,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 G(e,t,r){const n=t.get(e);if(!n){const n=function(e,t,r,n=[]){return e&&"object"==typeof e?X(e,n,t,r,new WeakSet,new WeakMap):(r(t,n,!0),e)}(R(e)?e.getSnapshot():e.getState(),e,r);return t.set(e,n),n}return n}function X(e,t,r,n,o,s){return new Proxy(e,{get(i,a,c){if(o.has(i))return Reflect.get(i,a,c);if("__proto__"===a||"symbol"==typeof a)return a===Symbol.iterator&&(n(r,t,!0),o.add(i)),Reflect.get(i,a,c);const u=Reflect.get(i,a,i),l=String(a),f=t.concat(l);if("function"==typeof u)return Object.prototype.hasOwnProperty.call(i,a)?function(...e){return n(r,f,!0,{method:l,args:e.length?e:void 0}),Reflect.apply(u,i,e)}:(n(r,t,!0),u.bind(e));const d=!!u&&"object"==typeof u;return n(r,f,!d),d?(s.has(u)||s.set(u,X(u,f,r,n,o,s)),s.get(u)):u},getOwnPropertyDescriptor:(e,s)=>(n(r,t,!0),o.add(e),Reflect.getOwnPropertyDescriptor(e,s)),has:(e,o)=>(n(r,t,!0),Reflect.has(e,o)),ownKeys:e=>(n(r,t,!0),o.add(e),Reflect.ownKeys(e))})}function Z(e){return t=>te(t,e)}function ee(e,t){const r=e.slice(0,-1);return e=>{const n=te(e,r),o=n?.[t.method];return"function"==typeof o?o.apply(n,t.args):void 0}}function te(e,t){let r=e;for(const e of t){if(!r||"object"!=typeof r)return r;r=r[e]}return r}function re(){const e=new Map;return{buildProxySubscriptions(t,r){const n=new Set;for(const[t,r]of e)se(r,t,[],0,n);!function(e,t,r){for(const r of e)t(r.store,r.invocation?ee(r.path,r.invocation):Z(r.path));r&&e.size}(n,t,r)},trackPath(t,r,n,o){let s=e.get(t);s||(s=ne(),e.set(t,s)),oe(s,r,0,n,o)}}}function ne(){return Object.create(null)}function oe(e,t,r,n,o){if(r===t.length)return n&&(e.isLeaf=!0),void(o&&(e.invocation=o));e.children||(e.children=ne());const s=t[r];let i=e.children?.[s];i||(i=ne(),e.children[s]=i),oe(i,t,r+1,n,o)}function se(e,t,r,n,o,s=1){const i=e.children;if(!i)return void o.add({store:t,path:r,invocation:e.invocation,isLeaf:e.isLeaf??!1});const a=Object.keys(i),c=a.length;if(0!==c)if(e.isLeaf||n>=s&&c>1){o.add({store:t,path:r,invocation:e.invocation,isLeaf:e.isLeaf??!1});for(const e of a){const a=i[e];a.invocation&&se(a,t,[...r,e],n+1,o,s)}}else if(n<s&&c>1&&!e.isLeaf)for(const e of a)se(i[e],t,[...r,e],n+1,o,s);else{if(1===c){const e=a[0];return void se(i[e],t,[...r,e],n+1,o,s)}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 ie=!1,ae=!1,ce=new Map,ue=new Map,le=new Map,fe=null,de=1/0;function ye(){return ie}function pe(){return fe}function he(){ie||(ie=!0,ae||(ae=!0,queueMicrotask(()=>{ae=!1,(()=>{for(;ue.size>0;){const e=de,t=le.get(e);if(t){le.delete(e);for(const e of t)ue.delete(e);fe=e;for(const e of t)e();if(fe=null,le.size>0){de=1/0;for(const e of le.keys())e<de&&(de=e)}else de=1/0}else{de=1/0;for(const e of le.keys())e<de&&(de=e)}}for(;ce.size>0;){const e=Array.from(ce.values());ce.clear();for(const t of e)t()}})(),ie=!1,fe=null,ue.clear(),le.clear(),de=1/0})))}function ge(e,t){ie&&ce.set(e,t)}var be=e=>e;function me(e,t=Object.is){return r=function(e,t=Object.is){const{debounceOptions:r,debugMode:n,equalityFn:o,keepAlive:s,lockDependencies:i}="function"==typeof(u=t)?{debounceOptions:void 0,debugMode:!1,equalityFn:u,keepAlive:!1,lockDependencies:!1}:{debounceOptions:u.debounce,debugMode:false,equalityFn:u.equalityFn??Object.is,keepAlive:u.keepAlive??!1,lockDependencies:u.lockDependencies??!1},a=String(ve+=1),c=new Set;var u;s&&c.add(we);const l=new Set;let f,d,y=Se,p=!1,h=!0,g=!0,b=!0,m=0,S=!1,v=null,w=Se;function j(e,t,r){if(!b||!c.size)return(t??be)(R(e)?e.getSnapshot():e.getState());if(!t)return f||(f=new WeakMap),d||(d=re()),G(e,f,d.trackPath);const n=e.subscribe(t,E,{equalityFn:r??Object.is,isDerivedStore:!0});return l.add(n),t(R(e)?e.getSnapshot():e.getState())}function O(e){for(const t of l)t(e);l.clear()}function F(){if(!g&&je(y))return y;g=!1,b&&O(!0);const t=y,r=je(t);y=function(t){h=!0;const r=y,n=e(t);return je(r)&&o(r,n)?(h=!1,r):n}(j);const s=n&&(!r||"verbose"===n&&b);return s&&l.size,d&&b&&(d.buildProxySubscriptions((e,t)=>{const r=e.subscribe(t,E,{equalityFn:Object.is,isDerivedStore:!0});l.add(r)},s),f=void 0,d=void 0),h&&r&&function(e,t){const r=function(){const e=c.has(we)?c.size-1:c.size;return m>0&&m<e}(),n=!m||r,o=r||null!==pe()||ye()&&n;r&&he();for(const t of c){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)}}o?S||(S=!0,je(w)||(w=t),ge(a,k)):A(e,t)}(y,t),i&&(b=!1),y}function A(e,t){for(const r of c)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 k(){c.size&&(S&&function(){if(g&&!m&&F(),!je(y))return;const e=je(w)?w:y;A(y,e)}(),S=!1,w=Se)}const I=r?q(T,"number"==typeof r?r:r.delay,"number"==typeof r?{leading:!1,maxWait:r,trailing:!0}:r):void 0,C=I??(()=>{p||(p=!0,queueMicrotask(T))});function T(){c.size&&(p=!1,g&&F())}function K(e){e?queueMicrotask(()=>{c.size||z()}):z()}function M(){T(),v=null}function E(){if(!g){if(g=!0,!I){if(m){he();const e=pe(),t=null===e?0:e+1;if(null!==v&&t<=v)return;return v=t,void function(e,t){if(!ie)return;const r=t<0?0:0|t,n=ue.get(e);if(void 0===n){ue.set(e,r);let t=le.get(r);return t||(t=new Set,le.set(r,t)),t.add(e),void(r<de&&(de=r))}if(r>n){const t=le.get(n);if(t&&(t.delete(e),0===t.size&&(le.delete(n),n===de))){de=1/0;for(const e of le.keys())e<de&&(de=e)}ue.set(e,r);let o=le.get(r);o||(o=new Set,le.set(r,o)),o.add(e),r<de&&(de=r)}}(M,t)}if(ye())return void(S||(S=!0,je(y)&&(w=y),ge(a,k)))}v=null,m&&!r?F():C()}}function x(){return g||!je(y)?c.size>0?F():e(j):y}function z(e=!0){s&&e||(I?.cancel(),O(),c.clear(),m=0,d=void 0,f=void 0,b=!0,p=!1,g=!0,y=Se,S=!1,w=Se,v=null)}return{destroy:()=>z(!1),flushUpdates:function(){c.size&&(I?I.flush():g&&F())},getSnapshot:function(){if(!je(y)){c.add(we);const e=F();return c.delete(we),e}return p&&T(),y},getState:x,subscribe:function(...e){if(1===e.length){const t=e[0];return c.add(t),1!==c.size||je(y)||x(),()=>{c.delete(t),c.size||K(!1)}}const[t,r,n]=e,o=n?.equalityFn??Object.is,s=n?.isDerivedStore??!1,i={currentSlice:void 0,equalityFn:o,isDerivedWatcher:s,listener:r,selector:t};return c.add(i),i.currentSlice=t(x()),s&&(m+=1),n?.fireImmediately&&r(i.currentSlice,i.currentSlice),()=>{c.delete(i),s&&(m-=1),c.size||K(s)}},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=be,t=void 0){return n.useSyncExternalStoreWithSelector(r.subscribe,r.getSnapshot,void 0,e,t)},r);var r}var Se=Symbol(),ve=0;function we(){}function je(e){return e!==Se}var qe=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=C.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)}}},Oe={Error:"error",Idle:"idle",Loading:"loading",Success:"success"};function Fe(e,t){const r=Object.prototype.hasOwnProperty;function n(e,t){for(const r of e.keys())if(Fe(r,t))return r}let o,s,i;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((s=e.length)===t.length)for(;s--&&Fe(e[s],t[s]););return-1===s}if(o===Set){if(e.size!==t.size)return!1;for(let r of e){if(i=r,i&&"object"==typeof i&&(i=n(t,i),!i))return!1;if(!t.has(i))return!1}return!0}if(o===Map){if(e.size!==t.size)return!1;for(let r of e){if(i=r[0],i&&"object"==typeof i&&(i=n(t,i),!i))return!1;if(!Fe(r[1],t.get(i)))return!1}return!0}if(o===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(o===DataView){if((s=e.byteLength)===t.byteLength)for(;s--&&e.getInt8(s)===t.getInt8(s););return-1===s}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){const r=e,n=t;if((s=r.byteLength)===n.byteLength)for(;s--&&r[s]===n[s];);return-1===s}if(!o||"object"==typeof e){s=0;for(const n in e){if(r.call(e,n)&&++s&&!r.call(t,n))return!1;if(!(n in t)||!Fe(e[n],t[n]))return!1}return Object.keys(t).length===s}}return e!=e&&t!=t}var Ae=new WeakMap,ke=new WeakMap;function Ie(e,t=Ce,r=Fe){return function(e,t,r){let n=ke.get(e);n||(n=new Map,ke.set(e,n));let o=n.get(t);o||(o=new Map,n.set(t,o));const s=o.get(r);if(s)return s;const[i,a,c]=Ke(e,t,r),u=new Map,l=e=>{const t={get(t,r){if("value"===r){let t=a();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,s=u.get(o);if(s)return s;const c=l(o);return Ae.set(c,i),u.set(o,c),c},set(t,r,n){const o=e.split(".");return""===o[0]&&o.shift(),c(o,n),!0}};return new Proxy(Object.create(null),t)},f=l("");return i(()=>{}),Ae.set(f,i),o.set(r,f),f}(e,t,r)}var Ce=e=>e,Te=(e,t,r)=>{if(!t.length)return r;const[n,...o]=t,s=e[n],i=Te(s,o,r);if(Fe(s,i))return e;const a=Array.isArray(e)?e.slice():{...e};return a[n]=i,a},Ke=(e,t,r)=>{const n=new Set,o=R(e);let s,i=t(o?e.getSnapshot():e.getState());return[a=>(n.size||(s=e.subscribe(t,e=>{i=e,n.forEach(e=>e())},{equalityFn:r,isDerivedStore:o})),n.add(a),()=>{n.delete(a),!n.size&&s&&(s(),s=void 0)}),()=>(n.size||(i=t(e.getState())),i),(r,n)=>{if(t!==Ce)throw new Error("Cannot set a value with a selector");e.setState(e=>Te(e,r,n),!0)}]};function Me(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var[Ee,xe]=[!0,!1],ze={error:Ee,lastFetchedAt:Ee,queryCache:Ee,queryKey:Ee,status:Ee,enabled:xe,fetch:xe,getCacheEntry:xe,getData:xe,getStatus:xe,isDataExpired:xe,isStale:xe,reset:xe};function De(e,t){const r=t?.baseDelay??C.seconds(5),n=t?.maxDelay??C.minutes(5),o=Math.pow(2,e);return Math.min(r*o,n)}function Le(e){return JSON.stringify(Object.keys(e).sort().map(t=>e[t]))}function Pe(e){return JSON.stringify(Re(e))}function Re(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?Re(n):n,t},{})}function We(e,t,r,n){return n?function(e,t){if(!e)return!1;for(const r of t)if(!(r in e))return!1;return!0}(n,r)?n:{...$e(e,t),...n}:$e(e,t)}function $e(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 _e(){return Object.create(null)}function Qe(e,t,r){if(!r.queryCache)return r;const n=Date.now(),o=t??(e&&r.queryKey||null);let s=!1;const i=Object.create(null);for(const e in r.queryCache){if(!Me(r.queryCache,e))continue;const a=r.queryCache[e];a&&(n-(a.lastFetchedAt??a.errorInfo.lastFailedAt)<a.cacheTime||e===o)?!t&&a.errorInfo&&a.errorInfo.retryCount>0?(i[e]={...a,errorInfo:{...a.errorInfo,retryCount:0}},s=!0):i[e]=a:s=!0}return s?{...r,queryCache:i}:r}function Ue(e){return"function"==typeof e}function Ve(e){return!Ue(e)}function Be(e,t){return r=>{const n={...r},o={};for(const e in n)Me(n,e)&&e in ze&&(ze[e]&&(o[e]=n[e]),delete n[e]);return{...t?t(n):I(n),...Qe(e,null,o)}}}C.seconds(5);var Ne=Symbol(),He=Object.freeze({debugMode:!1,enabled:!0,equalityFn:Object.is,fireImmediately:!1}),Je=Object.freeze({fireImmediately:!1,forceResubscribe:!1});function Ye(e,t,r=Je){if(t.current.isActive){if(!r?.forceResubscribe)return;t.current.unsubscribe()}t.current.options.debugMode,t.current.isActive=!0,t.current.resubscribe=(r=Je)=>Ye(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 Ge(e){return"function"==typeof e?{equalityFn:e}:e??He}var Xe=Symbol();function Ze(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 et(e,t){return"function"==typeof e[t]}exports.QueryStatuses=Oe,exports.applyStateUpdate=L,exports.configureStores=function(e){var t;e.logger&&(t=e.logger,u=t),e.storage&&(m.storage=e.storage),e.syncEngine&&(m.syncEngine=e.syncEngine)},exports.createBaseStore=Y,exports.createDerivedStore=me,exports.createQueryStore=function(e,t,r){const n="function"==typeof t?t:_e,o="object"==typeof t?t:r,s=o&&"storageKey"in o?o:void 0,{fetcher:i,onError:a,onFetched:f,setData:d,transform:y,abortInterruptedFetches:p=!0,cacheTime:h=C.days(7),debugMode:g=!1,disableAutoRefetching:b=!1,disableCache:m=!1,enabled:S=!0,keepPreviousData:v=!1,maxRetries:w=5,paramChangeThrottle:j=!1,params:O,retryDelay:F=De,suppressStaleTimeWarning:A=!1,useParsableQueryKeys:k=!0}=e;let I="function"==typeof e.staleTime?C.minutes(2):e.staleTime??C.minutes(2);const T=k?Pe:Le,K=new Error("[createQueryStore: AbortError] Fetch interrupted"),M="function"==typeof h,E=Object.keys(e.params??Object.create(null));let x=null,z=null,D=null,L=[],P=!1,R=!1,W=null,$=null,_=null,Q=null,U=null;const V={enabled:"function"!=typeof S&&S,error:null,lastFetchedAt:null,queryCache:{},queryKey:"",status:Oe.Idle},B=new qe({disableAutoRefetching:b,initialEnabled:V.enabled}),N=()=>{W&&($=null,W.abort(),W=null)},H=(t,r,o)=>{const g=o.setState,S=(e,t)=>{const r="function"==typeof e;if(r||void 0!==e.enabled){let t;const n=g(n=>{const s=r?e(n):e,i=void 0!==s.enabled?s.enabled:n.enabled;return i!==n.enabled&&(t=()=>((e,t)=>{e!==t&&U!==t&&(U=t,B.setEnabled(t),t?queueMicrotask(()=>o.getState().fetch(void 0,{updateQueryKey:!0})):(_||p)&&(p&&N(),_&&(clearTimeout(_),_=null)))})(n.enabled,i)),s});return t?.(),n}return g(e)};o.setState=S,B.init({onSubscribe:(n,o,s)=>{if(z||x||!O&&"function"!=typeof e.enabled&&"function"!=typeof e.staleTime){if(n)if(o){const e=$e(x,z),n=T(e),o=r();o.queryKey!==n&&t(e=>({...e,queryKey:n})),o.isStale()?q.fetch(e,void 0,!0):j(e,void 0)}else b&&!s&&q.fetch(void 0,void 0,!0)}else P=!0},onLastUnsubscribe:e=>{_&&(clearTimeout(_),_=null),p&&!e&&N()}});const j=(e,t)=>{if(b||t?.skipStoreUpdates)return;if(I<=0||I===1/0)return;_&&(clearTimeout(_),_=null);const n=T(e),o=r(),s=(m?Q===n&&o.lastFetchedAt:o.queryCache[n]?.lastFetchedAt)||null,i=s?I-(Date.now()-s):I;_=setTimeout(()=>{const t=B.get();t.enabled&&t.subscriptionCount>0&&q.fetch(e,{force:!0},!0)},i)},q={...n(S,r,o),...V,async fetch(e,n,o=!1){const g=B.get();if(!n?.force&&!n?.skipStoreUpdates&&!g.enabled)return null;const b=r(),O=b.error,A=b.queryKey,k=b.status,C=We(x,z,E,e),D=T(C),L=n?.staleTime??I,P=k===Oe.Loading,R=!!n?.skipStoreUpdates,U="boolean"==typeof n?.updateQueryKey?n.updateQueryKey:o?v:!R,V=o||!R&&(U||A===D);if($?.promise&&$.key===D&&P)return $.promise;if(p&&!R&&!1!==n?.updateQueryKey&&N(),!n?.force){const e=b.lastFetchedAt,r=b.queryCache[D],o=r?.lastFetchedAt,s=r?.errorInfo,i=s&&s.retryCount>=w,a=(m?Q===D&&e:o)||null;if(a&&!(Date.now()-a>=L)&&(!s||i||R))return V&&!R&&!_&&g.subscriptionCount>0&&0!==I&&I!==1/0&&j(C,n),U&&t(e=>e.queryKey!==D?{...e,queryKey:D}:e),r?.data??null}!R&&V&&(_&&(clearTimeout(_),_=null),!O&&P||t(e=>({...e,error:null,status:Oe.Loading})),$={key:D});const H=n?.cacheTime??(M?h(C):h),J=async()=>{try{const e=await(p&&!R&&V?(async e=>{const t=new AbortController;W=t;try{return await new Promise((r,n)=>{t.signal.addEventListener("abort",()=>n(K),{once:!0}),Promise.resolve(i(e,t)).then(r,n)})}finally{W===t&&(W=null)}})(C):i(C,null)),r=Date.now();let o;try{o=y?y(e,C):e}catch(e){throw new c(`[createQueryStore: ${s?.storageKey||D}]: transform failed`,e)}if(R)return"withCache"===n.skipStoreUpdates&&t(e=>{if(!d)return m?{...e,queryCache:{...e.queryCache,[D]:{cacheTime:H,data:o,errorInfo:null,lastFetchedAt:r}}}:e;let t=e;const n=t.queryCache[D];return d({data:o,params:C,queryKey:D,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}}),!m&&Object.is(n,t.queryCache[D])&&(t={...t,queryCache:{...t.queryCache,[D]:{cacheTime:H,data:o,errorInfo:null,lastFetchedAt:r}}}),t}),o;if((d?S:t)(e=>{let t={...e,error:null,lastFetchedAt:r,queryKey:U?D:e.queryKey,status:Oe.Success};if(d||m){if(d){const e=t.queryCache[D];d({data:o,params:C,queryKey:D,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}}),!m&&Object.is(e,t.queryCache[D])&&(t.queryCache={...t.queryCache,[D]:{cacheTime:H,data:null,errorInfo:null,lastFetchedAt:r}})}}else t.queryCache={...t.queryCache,[D]:{cacheTime:H,data:o,errorInfo:null,lastFetchedAt:r}};return m||h===1/0?t:Qe(v,D,t)}),V&&(Q=D,j(C,n)),f)try{f({data:o,fetch:q.fetch,params:C,set:S})}catch(e){u.error(new c(`[createQueryStore: ${s?.storageKey||D}]: onFetched callback failed`,e))}return o??null}catch(i){if(i===K)return null;const f=!o&&!0===n?.throwOnError,d=l(i);if(R||!V){if(u.error(new c(`[createQueryStore: ${s?.storageKey||D}]: Failed to fetch data`,d)),f)throw d;return null}const y=m?void 0:r().queryCache[D],p=y?.errorInfo?.retryCount??0,h=p+1;if(a?.(d,p),p<w){if(B.get().subscriptionCount>0){const t="function"==typeof F?F(h,d):F;t!==1/0&&(_&&clearTimeout(_),_=setTimeout(()=>{const{enabled:t,subscriptionCount:r}=B.get();t&&r>0&&q.fetch(e,{force:!0},!0)},t))}t(e=>({...e,error:d,queryCache:{...e.queryCache,[D]:{cacheTime:y?.cacheTime??H,data:y?.data??null,lastFetchedAt:y?.lastFetchedAt??null,errorInfo:{error:d,lastFailedAt:Date.now(),retryCount:h}}},queryKey:U?D:e.queryKey,status:Oe.Error}))}else t(e=>({...e,error:d,queryCache:{...e.queryCache,[D]:{cacheTime:y?.cacheTime??H,data:y?.data??null,lastFetchedAt:y?.lastFetchedAt??null,errorInfo:{error:d,lastFailedAt:Date.now(),retryCount:w}}},queryKey:U?D:e.queryKey,status:Oe.Error}));if(u.error(new c(`[createQueryStore: ${s?.storageKey||D}]: Failed to fetch data`,d)),f)throw d;return null}finally{!R&&V&&($=null)}};return R||!V?J():($={key:D,promise:J()}).promise},getCacheEntry(e){if(m)return null;const t=r(),n=e?"string"==typeof e?e:T(We(x,z,E,e)):t.queryKey;return t.queryCache[n]??null},getData(e){if(m)return null;const t=r().getCacheEntry(e);return t&&null!==t.data?v?t.data:t.lastFetchedAt&&Date.now()-t.lastFetchedAt>=t.cacheTime?null:t.data:null},getStatus:function(e){switch(e){case"isIdle":return r().status===Oe.Idle;case"isLoading":return r().status===Oe.Loading;case"isSuccess":{const e=r(),t=e.queryCache[e.queryKey]?.lastFetchedAt;return"number"==typeof t||e.status===Oe.Success}case"isError":case"isInitialLoad":case void 0:{const t=r(),n=t.queryCache[t.queryKey],o=(m?Q===t.queryKey&&t.lastFetchedAt:n?.lastFetchedAt)||null,s=t.status;switch(e){case"isError":{const e=t.queryCache[t.queryKey];return m?"error"!==s:"number"==typeof e?.errorInfo?.lastFailedAt}case"isInitialLoad":return!o&&s===Oe.Loading}return{isError:s===Oe.Error,isIdle:s===Oe.Idle,isLoading:s===Oe.Loading,isInitialLoad:!o&&s===Oe.Loading,isSuccess:s===Oe.Success}}}},isDataExpired(e){const t=r(),n=t.queryCache[t.queryKey],o=t.queryKey,s=t.lastFetchedAt,i=(m?Q===o&&s:n?.lastFetchedAt)||null;if(!i)return!0;const a=e??n?.cacheTime;return void 0===a||Date.now()-i>=a},isStale(e){const t=r(),n=t.queryKey,o=(m?Q===n&&t.lastFetchedAt:t.queryCache[n]?.lastFetchedAt)||null;if(!o)return!0;const s=e??I;return Date.now()-o>=s},reset(e=!1){for(const e of L)e();L=[],x=null,z=null,D=null,N(),_&&(clearTimeout(_),_=null),$=null,Q=null,e&&t(e=>({...e,...V}))}},A=o.subscribe;return o.subscribe=(...e)=>{const t=R?()=>{}:B.subscribe(),r=1===e.length?A(e[0]):A(...e);return e=>{t(e),r()}},q},J=s?.storageKey?Y(H,Object.assign(Object.create(null),s,{partialize:Be(v,s.partialize)})):o&&!("storageKey"in o)?Y(H,o):Y(H),G=J.getState(),X=G.error,Z=G.enabled,ee=G.queryKey;if(ee&&!X&&(Q=ee),R=!0,O||"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),s=Object.create(null);for(const e in t){if(!Me(t,e))continue;const i=t[e];if(Ue(i)){const t=i(Ie,r);n[e]=t,s[e]=t.value}else Ve(i)&&(o[e]=i,s[e]=i)}let i,a=null,c=null;if(Ue(e)){const t=e(Ie,r);i=t.value,a=t}else i=e,c=e;return{attachVals:n,directValues:o,enabledAttachVal:a,enabledDirectValue:c,resolvedEnabled:i,resolvedParams:s}}(S,O,J);x={enabled:t,params:n},z={enabled:r,params:e}}"function"==typeof e.staleTime&&(D=e.staleTime(Ie,J),I=D.value);const te=function(){let e,t=!1;return function(...r){e=r,t||(t=!0,queueMicrotask(()=>{t=!1,(e=>{G.fetch(e??$e(x,z),{updateQueryKey:v})})(...e)}))}}();function re(){let e;if(!v){e=$e(x,z);const t=T(e);J.setState(e=>({...e,queryKey:t}))}te(e)}const ne=j?q(re,"number"==typeof j?j:j.delay,"number"==typeof j?{leading:!1,maxWait:j,trailing:!0}:j):re;if(x?.enabled){const e=x.enabled,t=Ae.get(e);if(t){let r=e.value;Z!==r&&J.setState(e=>({...e,enabled:r})),r&&B.setEnabled(r);const n=t(()=>{const t=e.value;t!==r&&(r=t,J.setState(e=>({...e,enabled:t})))});L.push(n)}}else Z!==V.enabled&&J.setState(e=>({...e,enabled:V.enabled}));for(const e in x?.params){const t=x.params[e];if(!t)continue;const r=Ae.get(t);if(r){let e=t.value;const n=r(()=>{const r=t.value;Fe(e,r)||(e=r,ne())});L.push(n)}}if(D){const e=Ae.get(D);if(e){const t=D;let r=t.value;const n=e(()=>{const e=t.value;e!==r&&(r=e,I=e,J.getState().fetch())});L.push(n)}}return R=!1,P&&queueMicrotask(ne),oe=J,se="_queryStore",Object.assign(oe,{[se]:!0});var oe,se},exports.createStoreActions=function(e,t){const r=function(e){const t=e.getState(),r=Object.create(null);if(_(e)){for(const n in t)et(t,n)&&(r[n]=Ze(e,n));return r}for(const e in t)et(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,s=n?r:t,i=new Set,a=me(e,{debugMode:s?.debugMode??!1,equalityFn:function(e,t){const r=Object.is(e,t);return r||(function(e,t){for(const r of i){r.unsubscribe();const n=r.args;if(1===n.length){const o=n[0],s=e.getState(),i=t.getState(),a=t.subscribe(o);r.unsubscribe=a,Object.is(i,s)||o(i,s);continue}const o=n[0],s=n[1];let i=n[2];i?.fireImmediately&&(i={...i,fireImmediately:!1});const a=i?.equalityFn??Object.is,c=o(e.getState()),u=o(t.getState()),l=t.subscribe(...n);r.unsubscribe=l,a(c,u)||s(u,c)}}(e,t),P(e)),r},keepAlive:!0,lockDependencies:s?.lockDependencies??!0}),c=a.getState().persist,u=(l=a.getState,function(e,t){return t?l().setState(e,t):l().setState(e)});var l;return Object.assign(function(e,t){const r=a();return e?r(e,t):r()},{_virtualStore:!0,destroy:()=>a.destroy(),getInitialState:()=>a.getState().getInitialState(),getState:()=>a.getState().getState(),persist:c,setState:u,subscribe:function(...e){const t={args:e,unsubscribe:1===e.length?a.getState().subscribe(e[0]):a.getState().subscribe(...e)};return i.add(t),()=>{t.unsubscribe(),i.delete(t)}}},o?o(a.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=De,exports.destroyStore=P,exports.destroyStores=function(e,t){for(const r of Array.isArray(e)?e:Object.values(e))r&&!t?.skipDestroy?.(r)&&P(r,t)},exports.getLegacyQueryKey=Le,exports.getQueryKey=Pe,exports.getStoreName=function(e){return $(e)?e.persist.getOptions().name??e.name:e.name},exports.isDerivedStore=function(e){return"flushUpdates"in e},exports.isPersistedStore=$,exports.isQueryStore=W,exports.isVirtualStore=_,exports.parseQueryKey=function(e){return JSON.parse(e)},exports.replacer=A,exports.reviver=k,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=C,exports.useListen=function(e,t,r,n=He){const s=function(){const e=o.useRef(Ne);return e.current===Ne&&(e.current=function(e,t,r){return{selector:e,react:t,isActive:!1,options:Ge(r),resubscribe:()=>{},unsubscribe:()=>{}}}(t,r,n)),e}(),i=function(e){return"function"==typeof e?He.enabled:e?.enabled??He.enabled}(n);return s.current.react=r,s.current.selector=t,function(e,t){"function"==typeof t?e.current.options.equalityFn=t:t&&(e.current.options=t??He)}(s,n),o.useLayoutEffect(()=>{if(i)return Ye(e,s),()=>function(e){e.current.options.debugMode,e.current.resubscribe=()=>{},e.current.unsubscribe(),e.current.unsubscribe=()=>{},e.current.isActive=!1}(s)},[i,e]),s},exports.useStableValue=function(e){const t=o.useRef(Xe);return t.current===Xe&&(t.current=e()),t.current};
|
package/package.json
CHANGED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export type SubscriptionLifecycleHandlers = {
|
|
2
|
-
readonly onSubscribe?: (isFirstSubscription: boolean) => void;
|
|
3
|
-
readonly onLastUnsubscribe?: () => void;
|
|
4
|
-
};
|
|
5
|
-
export type SubscriptionManager = {
|
|
6
|
-
readonly getSubscriptionCount: () => number;
|
|
7
|
-
readonly setHandlers: (handlers: SubscriptionLifecycleHandlers | null) => void;
|
|
8
|
-
readonly subscribe: () => () => void;
|
|
9
|
-
};
|
|
10
|
-
export declare function createSubscriptionManager(): SubscriptionManager;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { SyncDeltaDescriptor, SyncDeltaPayload } from '../../sync/types';
|
|
2
|
-
export declare const ENABLE_DELTA_INSTRUMENTATION = false;
|
|
3
|
-
export type DeltaDecisionReason = 'delta-selected' | 'missing-previous-snapshot' | 'non-record-value' | 'no-delta' | 'unknown-next-size' | 'unknown-delta-size' | 'delta-not-smaller' | 'ratio-threshold' | 'bytes-threshold';
|
|
4
|
-
export type DeltaDecisionDiagnostics = {
|
|
5
|
-
reason: DeltaDecisionReason;
|
|
6
|
-
savingsRatio: number | null;
|
|
7
|
-
savingsBytes: number | null;
|
|
8
|
-
};
|
|
9
|
-
export type DeltaFieldLog = {
|
|
10
|
-
field: string;
|
|
11
|
-
decision: 'delta' | 'full';
|
|
12
|
-
descriptor: SyncDeltaDescriptor;
|
|
13
|
-
reason: DeltaDecisionReason;
|
|
14
|
-
metrics: {
|
|
15
|
-
computeMs: number;
|
|
16
|
-
decisionMs: number;
|
|
17
|
-
snapshotMs: number;
|
|
18
|
-
totalMs: number;
|
|
19
|
-
traversedKeys: number;
|
|
20
|
-
deltaBytes: number | null;
|
|
21
|
-
nextBytes: number | null;
|
|
22
|
-
savingsBytes: number | null;
|
|
23
|
-
savingsRatio: number | null;
|
|
24
|
-
};
|
|
25
|
-
payload?: SyncDeltaPayload<unknown>;
|
|
26
|
-
};
|
|
27
|
-
export type DeltaBatchLog = {
|
|
28
|
-
storeKey: string;
|
|
29
|
-
replace: boolean;
|
|
30
|
-
sessionId: string;
|
|
31
|
-
timestamp: number;
|
|
32
|
-
fields: ReadonlyArray<DeltaFieldLog>;
|
|
33
|
-
payloadStringifyMs: number | null;
|
|
34
|
-
};
|
|
35
|
-
export declare function deltaNow(): number;
|
|
36
|
-
export declare function formatMs(duration: number): string;
|
|
37
|
-
export declare function formatRatio(ratio: number | null | undefined): string;
|
|
38
|
-
export declare function formatBytes(bytes: number | null | undefined): string;
|
|
39
|
-
export declare function computeTraversalKeyCount(previous: Record<string, unknown> | null, next: Record<string, unknown>): number;
|
|
40
|
-
export declare function createDecisionDiagnostics(): DeltaDecisionDiagnostics;
|
|
41
|
-
export declare function logDeltaBatch(batch: DeltaBatchLog): void;
|
|
42
|
-
export declare function measureStringifyDuration(value: unknown): number | null;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { applyRecordDelta, computeRecordDelta, createRecordSnapshot, recordDeltaOperationCount, recordEntryCount } from './recordDelta';
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { RecordDeltaPayload } from '../../sync/types';
|
|
2
|
-
type RecordData<T = unknown> = Record<string, T>;
|
|
3
|
-
type NullableRecord<T = unknown> = RecordData<T> | null | undefined;
|
|
4
|
-
type DeltaComputation<T = unknown> = {
|
|
5
|
-
delta: RecordDeltaPayload<T> | null;
|
|
6
|
-
deltaBytes: number | null;
|
|
7
|
-
nextBytes: number | null;
|
|
8
|
-
};
|
|
9
|
-
export declare function createRecordSnapshot<T>(value: NullableRecord<T>): RecordData<T> | null;
|
|
10
|
-
export declare function computeRecordDelta<T = unknown>(previous: NullableRecord<T>, next: NullableRecord<T>): DeltaComputation<T>;
|
|
11
|
-
export declare function applyRecordDelta(previous: NullableRecord, delta: RecordDeltaPayload): RecordData;
|
|
12
|
-
export declare function recordDeltaOperationCount<T = unknown>(delta: RecordDeltaPayload<T>): number;
|
|
13
|
-
export declare function recordEntryCount<T = unknown>(value: NullableRecord<T>): number;
|
|
14
|
-
export {};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Component, ReactNode } from 'react';
|
|
2
|
-
export type ErrorFallback = (error: unknown, reset: () => void) => ReactNode;
|
|
3
|
-
export type RouteErrorBoundaryProps = {
|
|
4
|
-
children?: ReactNode;
|
|
5
|
-
fallback: ErrorFallback;
|
|
6
|
-
resetKey?: string;
|
|
7
|
-
};
|
|
8
|
-
type ErrorBoundaryState = {
|
|
9
|
-
error: unknown;
|
|
10
|
-
hasError: boolean;
|
|
11
|
-
};
|
|
12
|
-
export declare class RouteErrorBoundary extends Component<RouteErrorBoundaryProps, ErrorBoundaryState> {
|
|
13
|
-
state: ErrorBoundaryState;
|
|
14
|
-
static getDerivedStateFromError(error: unknown): ErrorBoundaryState;
|
|
15
|
-
componentDidUpdate(prevProps: RouteErrorBoundaryProps): void;
|
|
16
|
-
private reset;
|
|
17
|
-
render(): ReactNode;
|
|
18
|
-
}
|
|
19
|
-
export {};
|
|
File without changes
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Keys for caching route data across page loads.
|
|
3
|
-
*/
|
|
4
|
-
export declare enum RouterCacheKeys {
|
|
5
|
-
/**
|
|
6
|
-
* `localStorage`: Page backgrounds as `{ [pathname]: color }`
|
|
7
|
-
*/
|
|
8
|
-
Backgrounds = "__rb",
|
|
9
|
-
/**
|
|
10
|
-
* - `DOM`: Snapshot overlay ID
|
|
11
|
-
* - `sessionStorage`: Cached HTML snapshot
|
|
12
|
-
*/
|
|
13
|
-
ContentSnapshot = "__rc",
|
|
14
|
-
/**
|
|
15
|
-
* `window`: href clicked during preload, processed on paint
|
|
16
|
-
*/
|
|
17
|
-
PendingNav = "__pendingNav",
|
|
18
|
-
/**
|
|
19
|
-
* `DOM`: CSS class added to `#root` when React has rendered
|
|
20
|
-
*/
|
|
21
|
-
RootReady = "_rr",
|
|
22
|
-
/**
|
|
23
|
-
* `history.state`: Key for scroll position lookup
|
|
24
|
-
*/
|
|
25
|
-
ScrollKey = "__scrollKey",
|
|
26
|
-
/**
|
|
27
|
-
* `sessionStorage`: Scroll positions as `{ [key]: { x, y } }`
|
|
28
|
-
*/
|
|
29
|
-
ScrollPositions = "stores:router:scroll",
|
|
30
|
-
/**
|
|
31
|
-
* `DOM`: CSS class on `<html>` while snapshot overlay is visible
|
|
32
|
-
*/
|
|
33
|
-
SnapshotActive = "_sa",
|
|
34
|
-
/**
|
|
35
|
-
* `localStorage`: Page titles as `{ [pathname]: title }`
|
|
36
|
-
*/
|
|
37
|
-
Titles = "__rt"
|
|
38
|
-
}
|