@storesjs/stores 0.8.7 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -29
- package/dist/createBaseStore.d.ts +6 -6
- package/dist/createDerivedStore.d.ts +9 -17
- package/dist/createQueryStore.d.ts +6 -21
- package/dist/createVirtualStore.d.ts +5 -5
- package/dist/env.native.d.ts +0 -2
- package/dist/env.web.d.ts +0 -1
- package/dist/hooks/useListen.d.ts +2 -2
- package/dist/hooks/useSyncExternalStoreWithSelector.d.ts +5 -0
- package/dist/index.d.ts +1 -14
- package/dist/index.shared.d.ts +14 -0
- package/dist/index.vanilla.d.ts +2 -0
- package/dist/internal/baseStore.d.ts +2 -0
- package/dist/internal/config.d.ts +64 -0
- package/dist/{utils → internal}/createStoreActions.d.ts +5 -6
- package/dist/internal/derivedStore/cascadeScheduler.d.ts +31 -0
- package/dist/internal/derivedStore/deriveProxy.d.ts +15 -0
- package/dist/internal/derivedStore/pathFinder.d.ts +26 -0
- package/dist/internal/derivedStore.d.ts +2 -0
- package/dist/internal/errors.d.ts +10 -0
- package/dist/{logger.d.ts → internal/logger.d.ts} +0 -7
- package/dist/internal/middleware/createHydrationGate.d.ts +20 -0
- package/dist/internal/queryStore/queryStoreDefaults.d.ts +8 -0
- package/dist/internal/queryStore.d.ts +2 -0
- package/dist/internal/runtime.d.ts +13 -0
- package/dist/internal/signal.d.ts +12 -0
- package/dist/internal/storage/storageCreators.d.ts +12 -0
- package/dist/{utils → internal}/storeUtils.d.ts +4 -22
- package/dist/internal/sync/browserSyncEngine.d.ts +3 -0
- package/dist/internal/sync/noopSyncEngine.d.ts +3 -0
- package/dist/internal/sync/syncEnhancer.d.ts +26 -0
- package/dist/{sync → internal/sync}/syncUtils.d.ts +1 -1
- package/dist/internal/utils/persistUtils.d.ts +9 -0
- package/dist/internal/virtualStore.d.ts +2 -0
- package/dist/native/index.js +1 -1
- package/dist/native/index.mjs +1 -1
- package/dist/plugins/chrome/chromeExtensionSyncEngine.d.ts +3 -1
- package/dist/queryStore/queryKey.d.ts +3 -0
- package/dist/queryStore/signalTypes.d.ts +14 -0
- package/dist/queryStore/types.d.ts +39 -33
- package/dist/store/attachStoreHook.react.d.ts +5 -0
- package/dist/store/attachStoreHook.vanilla.d.ts +6 -0
- package/dist/store/batchStoreNotifications.native.d.ts +3 -0
- package/dist/store/batchStoreNotifications.web.d.ts +2 -0
- package/dist/store/createStore.d.ts +6 -0
- package/dist/store/persist.d.ts +14 -0
- package/dist/store/stateUpdate.d.ts +10 -0
- package/dist/store/types.d.ts +108 -0
- package/dist/sync/types.d.ts +53 -128
- package/dist/types/functions.d.ts +19 -2
- package/dist/types/objects.d.ts +10 -3
- package/dist/types/setState.d.ts +22 -0
- package/dist/types/subscribe.d.ts +28 -0
- package/dist/types/useStoreCallSignatures.d.ts +2 -0
- package/dist/types/useStoreCallSignatures.react.d.ts +6 -0
- package/dist/types/useStoreCallSignatures.vanilla.d.ts +2 -0
- package/dist/types/utils.d.ts +4 -0
- package/dist/types.d.ts +59 -110
- package/dist/utils/core.d.ts +23 -4
- package/dist/utils/time.d.ts +0 -10
- package/dist/vanilla/createBaseStore.d.ts +35 -0
- package/dist/vanilla/createDerivedStore.d.ts +62 -0
- package/dist/vanilla/createQueryStore.d.ts +116 -0
- package/dist/vanilla/createVirtualStore.d.ts +39 -0
- package/dist/vanilla/env.web.d.ts +6 -0
- package/dist/vanilla/index.d.ts +1 -0
- package/dist/vanilla/index.js +1 -0
- package/dist/vanilla/index.mjs +1 -0
- package/dist/vanilla/index.shared.d.ts +13 -0
- package/dist/vanilla/index.vanilla.d.ts +1 -0
- package/dist/vanilla/internal/baseStore.d.ts +1 -0
- package/dist/vanilla/internal/config.d.ts +63 -0
- package/dist/vanilla/internal/createStoreActions.d.ts +23 -0
- package/dist/{derivedStore → vanilla/internal/derivedStore}/cascadeScheduler.d.ts +8 -1
- package/dist/vanilla/internal/derivedStore/deriveProxy.d.ts +14 -0
- package/dist/vanilla/internal/derivedStore/pathFinder.d.ts +25 -0
- package/dist/vanilla/internal/derivedStore.d.ts +1 -0
- package/dist/vanilla/internal/errors.d.ts +9 -0
- package/dist/vanilla/internal/logger.d.ts +9 -0
- package/dist/{middleware → vanilla/internal/middleware}/createHydrationGate.d.ts +1 -2
- package/dist/vanilla/internal/queryStore/queryStoreDefaults.d.ts +7 -0
- package/dist/vanilla/internal/queryStore.d.ts +1 -0
- package/dist/vanilla/internal/runtime.d.ts +12 -0
- package/dist/vanilla/internal/signal.d.ts +11 -0
- package/dist/vanilla/internal/storage/storageCreators.d.ts +11 -0
- package/dist/vanilla/internal/storeUtils.d.ts +45 -0
- package/dist/vanilla/internal/sync/browserSyncEngine.d.ts +2 -0
- package/dist/vanilla/internal/sync/noopSyncEngine.d.ts +2 -0
- package/dist/{sync → vanilla/internal/sync}/syncEnhancer.d.ts +6 -3
- package/dist/{utils → vanilla/internal/utils}/persistUtils.d.ts +2 -3
- package/dist/vanilla/internal/virtualStore.d.ts +1 -0
- package/dist/vanilla/queryStore/classes/SubscriptionManager.d.ts +66 -0
- package/dist/vanilla/queryStore/queryKey.d.ts +2 -0
- package/dist/vanilla/queryStore/signalTypes.d.ts +13 -0
- package/dist/vanilla/queryStore/types.d.ts +402 -0
- package/dist/vanilla/storage/storageTypes.d.ts +12 -0
- package/dist/vanilla/store/attachStoreHook.d.ts +5 -0
- package/dist/vanilla/store/attachStoreHook.vanilla.d.ts +5 -0
- package/dist/vanilla/store/batchStoreNotifications.web.d.ts +1 -0
- package/dist/vanilla/store/createStore.d.ts +5 -0
- package/dist/vanilla/store/persist.d.ts +13 -0
- package/dist/vanilla/store/stateUpdate.d.ts +9 -0
- package/dist/vanilla/store/types.d.ts +107 -0
- package/dist/vanilla/storesStorage.web.d.ts +2 -0
- package/dist/vanilla/sync/types.d.ts +114 -0
- package/dist/vanilla/types/functions.d.ts +23 -0
- package/dist/vanilla/types/objects.d.ts +10 -0
- package/dist/vanilla/types/setState.d.ts +21 -0
- package/dist/vanilla/types/subscribe.d.ts +27 -0
- package/dist/vanilla/types/useStoreCallSignatures.d.ts +1 -0
- package/dist/vanilla/types/useStoreCallSignatures.vanilla.d.ts +1 -0
- package/dist/vanilla/types/utils.d.ts +12 -0
- package/dist/vanilla/types.d.ts +285 -0
- package/dist/vanilla/utils/core.d.ts +25 -0
- package/dist/vanilla/utils/createAsyncMicrotaskScheduler.d.ts +34 -0
- package/dist/vanilla/utils/createMicrotaskScheduler.d.ts +27 -0
- package/dist/vanilla/utils/debounce.d.ts +21 -0
- package/dist/vanilla/utils/equality.d.ts +37 -0
- package/dist/vanilla/utils/hydrationCoordinator.d.ts +12 -0
- package/dist/vanilla/utils/promiseUtils.d.ts +1 -0
- package/dist/vanilla/utils/serialization.d.ts +13 -0
- package/dist/vanilla/utils/stringUtils.d.ts +6 -0
- package/dist/vanilla/utils/time.d.ts +36 -0
- package/dist/web/chrome.js +1 -1
- package/dist/web/chrome.mjs +1 -1
- package/dist/web/chunk-QJLWBD7M.mjs +1 -0
- package/dist/web/chunk-V4LHP7LR.mjs +1 -0
- package/dist/web/index.js +1 -1
- package/dist/web/index.mjs +1 -1
- package/dist/web/internal/runtime.js +1 -0
- package/dist/web/internal/runtime.mjs +1 -0
- package/package.json +21 -15
- package/dist/config.d.ts +0 -40
- package/dist/derivedStore/deriveProxy.d.ts +0 -25
- package/dist/hooks/compareHooks.d.ts +0 -50
- package/dist/signal.d.ts +0 -20
- package/dist/storage/storageCreators.d.ts +0 -22
- package/dist/sync/browserSyncEngine.d.ts +0 -3
- package/dist/sync/noopSyncEngine.d.ts +0 -3
- package/dist/sync/transport.d.ts +0 -113
- package/dist/web/chunk-MMPMCVRC.mjs +0 -1
package/dist/native/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Platform as e,unstable_batchedUpdates as t}from"react-native";import{createMMKV as n,MMKV as r}from"react-native-mmkv";import{subscribeWithSelector as o,persist as i}from"zustand/middleware";import{createWithEqualityFn as s}from"zustand/traditional";import{useSyncExternalStoreWithSelector as c}from"use-sync-external-store/shim/with-selector";import{useLayoutEffect as a,useRef as u}from"react";var l="ios"===e.OS;e.OS;var f="development"===process.env.NODE_ENV,d="test"===process.env.NODE_ENV;function y(e){let t;function o(){if(t)return t;try{const o=function(e){if("function"==typeof n)return n({id:e});if("function"==typeof r)return new r({id:e});throw new Error("[stores]: react-native-mmkv module does not export MMKV/createMMKV.")}(e);let i;if("function"==typeof o.delete){const e=o.delete;i=t=>e.call(o,t)}else if("function"==typeof o.remove){const e=o.remove;i=t=>e.call(o,t)}if("function"!=typeof i)throw new Error("[stores]: Storage instance does not conform to expected interface");t={clearAll:()=>o.clearAll(),contains:e=>o.contains(e),delete:e=>i(e),get:e=>o.getString(e),getAllKeys:()=>o.getAllKeys(),set:(e,t)=>o.set(e,t)}}catch(e){throw new Error("[stores] react-native-mmkv could not be loaded.\n\nPersisted stores require a storage backend. Either:\n - Install MMKV (the default): yarn add react-native-mmkv\n - Or provide a custom adapter via configureStores()\n"+(e instanceof Error?`\n${e.message}`:""))}return function(e){if(!e||"function"!=typeof e.get||"function"!=typeof e.set||"function"!=typeof e.delete||"function"!=typeof e.clearAll)throw new Error("[stores]: Storage instance does not conform to expected interface")}(t),t}return{clearAll:()=>o().clearAll(),contains:e=>o().contains(e),delete:e=>o().delete(e),get:e=>o().get(e),getAllKeys:()=>o().getAllKeys(),set:(e,t)=>o().set(e,t)}}var p=class extends Error{constructor(e,t){super(e),this.name="StoresError",this.cause=g(t)}},h={debug:(e,t)=>{f&&console.debug(e,t)},error:(e,t)=>{f&&!d&&console.error(e,t)},info:(e,t)=>{f&&console.info(e,t)},warn:(e,t)=>{f&&console.warn(e,t)}};function g(e){return e instanceof Error?e:new Error(String(e))}var b,m,S=class{destroy(){}publish(){}},v=class{constructor(){this.sessionId="noop"}register(e){return new S}},w=!1;function O(e){var t;f&&function(){if(w)throw new Error("[stores]: configureStores() called after first store creation. Call it earlier before creating any stores.")}(),e.logger&&(t=e.logger,h=t),m??(m=q(e))}function j(){return m??(m=q(void 0))}function A(){w=!0}function q(e){return{storage:e?.storage??y(e?.storageKeyPrefix??"stores:"),syncEngine:e?.syncEngine??(b||(b=new v),b)}}function F(){let e,t,n=!1;return{complete:function(){!n&&e&&(n=!0,e(),e=void 0,t=void 0)},isHydrated:function(){return n},fail:function(r){!n&&t&&(n=!0,t(r),t=void 0,e=void 0)},promise:new Promise((n,r)=>{e=n,t=r})}}var C=Math.max,I=Math.min;function k(e,t=0,n={}){let r,o,i,s,c,a,u=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){const n=r,i=o;return r=o=void 0,u=t,s=n?e.apply(i,n):e.apply(i),s}function p(e){const n=e-(a??0);return void 0===a||n>=t||n<0||f&&void 0!==i&&e-u>=i}function h(){const e=T();if(p(e))return g(e);c=setTimeout(h,function(e){const n=t-(e-(a??0));return f&&void 0!==i?I(n,i-(e-u)):n}(e))}function g(e){return c=void 0,d&&r?y(e):(r=o=void 0,s)}function b(...e){const n=T(),i=p(n);if(r=e,o=this,a=n,i){if(void 0===c)return function(e){return u=e,c=setTimeout(h,t),l?y(e):s}(a);if(f)return clearTimeout(c),c=setTimeout(h,t),y(a)}return void 0===c&&(c=setTimeout(h,t)),s}return t=M(t)||0,function(e){const t=typeof e;return null!==e&&("object"===t||"function"===t)}(n)&&(l=!!n.leading,f="maxWait"in n,i=f?C(M(n.maxWait)||0,t):void 0,d="trailing"in n?!!n.trailing:d),b.cancel=function(){void 0!==c&&clearTimeout(c),u=0,r=a=o=c=void 0},b.flush=function(){return void 0===c?s:g(T())},b}function T(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}function M(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 z(e,t){return t instanceof Map?{__type:"Map",entries:Array.from(t.entries())}:t instanceof Set?{__type:"Set",values:Array.from(t)}:t}function E(e,t){return function(e){return"object"==typeof e&&null!==e&&"__type"in e&&"Map"===e.__type}(t)?new Map(t.entries):function(e){return"object"==typeof e&&null!==e&&"__type"in e&&"Set"===e.__type}(t)?new Set(t.values):t}function K(e){if(null!==e&&"object"==typeof e){const t={};for(const[n,r]of Object.entries(e))"function"!=typeof r&&(t[n]=r);return t}return e}var D={ms:e=>e,seconds:e=>1e3*e,minutes:e=>D.seconds(60*e),hours:e=>D.minutes(60*e),days:e=>D.hours(24*e),weeks:e=>D.days(7*e),infinity:1/0,zero:0},$=d?0:l?D.seconds(3):D.seconds(5);function P(e){return t=>{if("string"!=typeof t)throw new p("[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?E:void 0)}catch(e){throw h.error(new p("[createBaseStore]: Failed to deserialize persisted store data"),{error:e}),e}}(t,e)}}function x(e){return t=>function(e,t){try{return JSON.stringify(e,t?z:void 0)}catch(e){throw h.error(new p("[createBaseStore]: Failed to serialize store data"),{error:e}),e}}(t,e)}var L=Object.freeze({shouldClear:!1});function N(e,t,n){if(!t||!e)return L;const r=e.getFieldTimestampSnapshot();return function(e,t){const n=e.getSessionId(),r=e.getTimestamp();void 0!==n&&void 0!==r&&(t.syncMetadata={origin:n,timestamp:r})}(e,n),n.syncMetadata?r&&Object.keys(r).length>0?(n.syncMetadata.fields=r,{fieldSnapshot:r,shouldClear:!0}):(delete n.syncMetadata.fields,{fieldSnapshot:r,shouldClear:!1}):{fieldSnapshot:r,shouldClear:!1}}function R(e,t){e&&t.shouldClear&&t.fieldSnapshot&&Object.keys(t.fieldSnapshot).length&&e.clearFieldTimestamps(t.fieldSnapshot)}function V(e){return!!e&&!!e.getIsApplyingRemote()}var W=Object.freeze({QueryStore:Symbol("queryStore"),VirtualStore:Symbol("virtualStore")});function _(e,...t){if(!0===t[1])return Z(t[0])?t[0](e):t[0];const n=Z(t[0])?t[0](e):t[0];return function(e){return Array.isArray(e)}(e)?n:{...e,...n}}function J(e,t){H(e)?e.getState().reset(t?.clearQueryCache):function(e){return"destroy"in e}(e)&&e.destroy()}function Q(e,t){for(const n of Array.isArray(e)?e:Object.values(e))n&&!t?.skipDestroy?.(n)&&J(n,t)}function B(e){return X(e)?e.persist.getOptions().name??e.name:e.name}function U(e){return"getSnapshot"in e}function H(e){return W.QueryStore in e}function G(e){return"flushUpdates"in e}function X(e){return"persist"in e}function Y(e){return W.VirtualStore in e}function Z(e){return"function"==typeof e}var[ee,te]=[0,1];function ne(e,t,n){if(!e)return!0;const r=e[ee],o=e[te];return!(t<r)&&(t>r||n>o)}function re(e,t){return Object.prototype.hasOwnProperty.call(t,e)}function oe(e,t){if(!f)return!0;if(null===e||null===t)return e===t;const n=typeof e;return n===typeof t&&("object"!==n||Object.prototype.toString.call(e)===Object.prototype.toString.call(t))}function ie(e){if(null===e)return"null";const t=typeof e;return"object"===t?Object.prototype.toString.call(e):t}function se(e,t){A();const n=void 0!==t&&"string"==typeof t.storageKey,r=n?t.storageKey:void 0,c=t?.sync?function(e,t){if(!e)return null;if(!0===e){if(!t)throw new p("[createBaseStore]: sync: true requires a storageKey to inherit the key from");return{key:t}}if("string"==typeof e)return{key:e};const n=e,r=n.key??t;if(!r)throw new p("[createBaseStore]: sync requires either a key in the config or a storageKey to inherit from");return{...n,key:r}}(t.sync,r):void 0,a=n?t.storage??j().storage:void 0,u=c?function(e,t,n){const r=t.engine??j().syncEngine,o=function(e){let t,n,r,o=!1;return{isAsync:e,clearFieldTimestamps:function(e){if(e&&r){for(const t of Object.entries(e)){const e=t[0],n=t[1];r[e]===n&&delete r[e]}Object.keys(r).length||(r=void 0)}},getFieldTimestampSnapshot:function(){if(r)return{...r}},getIsApplyingRemote:()=>o,getSessionId:()=>t,getTimestamp:()=>n,mergeFieldTimestamps:function(e){if(r)for(const t of Object.entries(e)){const e=t[0],n=t[1],o=r[e];(void 0===o||n>o)&&(r[e]=n)}else r={...e}},onHydrationComplete:void 0,onHydrationFlushEnd:void 0,setIsApplyingRemote:e=>o=e,setSessionId:e=>t=e,setTimestamp:e=>n=e,setWithoutPersist:void 0}}(n);return{stateCreator:(i,s,c)=>{const a=new Map,u=[],l=[];let f=null,d=!1,y=!1,g=0,b=null,m=[],S=Promise.resolve(),v=!n;const w=(e,t)=>{if(o?.setSessionId&&o?.setTimestamp&&r.sessionId&&(o.setSessionId(r.sessionId),o.setTimestamp(e),o.mergeFieldTimestamps&&t.length>0)){const n=Object.create(null);for(const r of t)n[String(r)]=e;o.mergeFieldTimestamps(n)}},O=function(e,t){if(d||!b)return t?i(e,t):i(e);const n=(()=>{const e=Date.now(),t=e>g?e:g+1;return g=t,t})();let o=[],s=Object.create(null);const c=r=>{const i=_(r,e,t);for(const e of m)Object.is(i[e],r[e])||(o.push(e),s[e]=i[e]);return o.length&&w(n,o),i},u=t?i(c,!0):i(c),p=()=>{o.length&&(e=>{const t=r.sessionId;for(const n of e.keys)a.set(n,[e.timestamp,t]);f&&y?f.publish?.({replace:e.replace,sessionId:t,timestamp:e.timestamp,values:e.values}):l.push(e)})({keys:o,replace:t??!1,values:s,timestamp:n})};return(h=u)&&"object"==typeof h&&"then"in h&&"function"==typeof h.then?u.finally(p):(p(),u);var h},j=c.setState;c.setState=O;const A=e(O,s,c);if(m=t.fields??function(e){const t=[];for(const n of Object.entries(e)){if("function"==typeof n[1])continue;const e=n[0];t.push(e)}return t}(A),!m.length)return A;b=new Set(m);const q=async e=>{g=Math.max(g,e.timestamp);const n=Object.create(null),r=s(),i=e.timestamp;let c;if(e.replace)for(const t of m)re(t,e.values)||ne(a.get(t),i,e.sessionId)&&(c??(c=[])).push(t);for(const o of m){if(!re(o,e.values))continue;if(!b?.has(o))continue;if(!ne(a.get(o),i,e.sessionId))continue;const s=t.merge?.[o];if(s){const t=e.values[o],c=r[o];if(void 0!==t){const u=s(t,c,r,e.values),l=void 0!==c?c:t;if(!oe(u,l))return void h.error(new p(`[sync] Merge function for field "${String(o)}" returned ${ie(u)} but expected ${ie(l)}`));n[o]=u,a.set(o,[i,e.sessionId])}}else n[o]=e.values[o],a.set(o,[i,e.sessionId])}if(Object.keys(n).length>0||c?.length){d=!0,o&&o.setIsApplyingRemote(!0);try{if(e.replace){const e={...r};let t=!1;if(c?.length){t=!0;for(const t of c)delete e[t],a.delete(t)}for(const r in n){if(!Object.prototype.hasOwnProperty.call(n,r))continue;const o=n[r];void 0!==o&&(Object.is(e[r],o)||(t=!0),e[r]=o)}if(!t)return;await(o.setWithoutPersist??j)(e,!0)}else await(o.setWithoutPersist??j)(n)}finally{d=!1,o&&o.setIsApplyingRemote(!1)}}},F=e=>{n?S=S.then(()=>q(e)):q(e)};f=r.register({apply:e=>{v?F(e):u.push(e)},delta:t.delta,fields:m,getState:s,key:t.key});const C=()=>{y=!0,(()=>{if(f&&l.length){for(const e of l){const t=r.sessionId;for(const n of e.keys)a.set(n,[e.timestamp,t]);w(e.timestamp,e.keys),f.publish?.({replace:e.replace,sessionId:t,timestamp:e.timestamp,values:e.values})}l.length=0}})()},I=()=>{v=!0,(()=>{if(!u.length)return;const e=u.slice();u.length=0;for(const t of e)F(t)})()};return n&&o?(o.onHydrationComplete=C,o.onHydrationFlushEnd=I):f.onHydrated?(f.onHydrated(C),I()):(C(),I()),A},syncContext:o}}(e,c,a?.async??!1):void 0,l=u?.stateCreator??e;if(!n)return s()(o(l),Object.is);const f=a?.async?function(e){let t,n,r,o=!1;return{hydrationPromise:()=>o?t?.promise??n??(n=Promise.resolve()):(t||(t=F()),t.promise),stateCreator:(n,i,s)=>{let c;return r=()=>{if(c?.length){for(const e of c)e[1]?s.setState(e[0],e[1]):s.setState(e[0]);c=void 0}},e((...e)=>o?!0===e[1]?n(e[0],e[1]):n(e[0]):(t||(t=F()),c||(c=[]),c.push(e),t.promise),i,s)},wrapOnRehydrateStorage:(e,n)=>i=>{const s=e?.(i);return(e,i)=>{o=!0,n?.onHydrationComplete?.(),r&&r(),n?.onHydrationFlushEnd?.(),i?t?.fail(g(i)):t?.complete(),s?.(e,i)}}}}(l):null,d=function(e,t,n){const r=t??e.storage??j().storage,o=(e.sync?void 0:e.persistThrottleMs??$)||void 0,i=e.version??0,s=r.async?function(e,t,n,r){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),i="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),s=t.partialize??K,c=t.deserializer??e.deserializer??P(o),a=t.serializer??e.serializer??x(o);async function u(t,n){try{if(V(r))return;n.state,n.state=s(n.state);const o=N(r,i,n),c=a(n);try{await e.set(t,c),R(r,o)}catch(e){h.error(new p("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){h.error(new p("[createBaseStore]: Failed to serialize persisted store data"),{error:e})}}const l=void 0!==n?k(u,n,{leading:!1,maxWait:n,trailing:!0}):function(e){let t,n=null;return function(...r){return t=r,n||(n=new Promise(r=>{queueMicrotask(async()=>{try{await e(...t)}finally{n=null,r()}})})),n}}(u);return{getItem:async t=>{const n=await e.get(t);return void 0===n?null:c(n)},setItem:async(e,t)=>{if(!r?.getIsApplyingRemote())return await l(e,t)},removeItem:async t=>{try{await e.delete(t)}catch(e){h.error(new p("[createBaseStore]: Failed to delete persisted store data"),{error:e})}}}}(r,e,o,n):function(e,t,n,r){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),i="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),s=t.partialize??K,c=t.deserializer??e.deserializer??P(o),a=t.serializer??e.serializer??x(o);function u(t,n){try{if(V(r))return;n.state,n.state=s(n.state);const o=N(r,i,n),c=a(n);try{e.set(t,c),R(r,o)}catch(e){h.error(new p("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){h.error(new p("[createBaseStore]: Failed to persist store data"),{error:e})}}const l=void 0!==n?k(u,n,{leading:!1,maxWait:n,trailing:!0}):u;return{getItem:t=>{const n=e.get(t);return void 0===n?null:c(n)},setItem:(e,t)=>{r?.getIsApplyingRemote()||l(e,t)},removeItem:t=>{try{e.delete(t)}catch(e){h.error(new p("[createBaseStore]: Failed to delete persisted store data"),{error:e})}}}}(r,e,o,n);return{persistStorage:s,version:i}}(t,a,u?.syncContext),y=f?f.wrapOnRehydrateStorage(t.onRehydrateStorage,u?.syncContext):t.onRehydrateStorage,b=f?(e,t,n)=>(u&&(u.syncContext.setWithoutPersist=n.setState),f.stateCreator(e,t,n)):l,m=s()(o(i(b,function(e,t,n){const r={name:e.storageKey,onRehydrateStorage:n,storage:t.persistStorage,version:t.version};return void 0!==e.merge&&(r.merge=e.merge),void 0!==e.migrate&&(r.migrate=e.migrate),r}(t,d,y))),Object.is);return f?Object.assign(m,{persist:Object.assign(m.persist,{hydrationPromise:f.hydrationPromise})}):m}function ce(e,t,n="s"){return 1===t?e:`${e}${n}`}function ae(e,t,n){const r=t.get(e);if(!r){const r=function(e,t,n,r=[]){return e&&"object"==typeof e?ue(e,r,t,n,new WeakSet,new WeakMap):(n(t,r,!0),e)}(U(e)?e.getSnapshot():e.getState(),e,n);return t.set(e,r),r}return r}function ue(e,t,n,r,o,i){return new Proxy(e,{get(s,c,a){if(o.has(s))return Reflect.get(s,c,a);if("__proto__"===c||"symbol"==typeof c)return c===Symbol.iterator&&(r(n,t,!0),o.add(s)),Reflect.get(s,c,a);const u=Reflect.get(s,c,s),l=String(c),f=t.concat(l);if("function"==typeof u)return Object.prototype.hasOwnProperty.call(s,c)?function(...e){return r(n,f,!0,{method:l,args:e.length?e:void 0}),Reflect.apply(u,s,e)}:(r(n,t,!0),u.bind(e));const d=!!u&&"object"==typeof u;return r(n,f,!d),d?(i.has(u)||i.set(u,ue(u,f,n,r,o,i)),i.get(u)):u},getOwnPropertyDescriptor:(e,i)=>(r(n,t,!0),o.add(e),Reflect.getOwnPropertyDescriptor(e,i)),has:(e,o)=>(r(n,t,!0),Reflect.has(e,o)),ownKeys:e=>(r(n,t,!0),o.add(e),Reflect.ownKeys(e))})}function le(e){return t=>de(t,e)}function fe(e,t){const n=e.slice(0,-1);return e=>{const r=de(e,n),o=r?.[t.method];return"function"==typeof o?o.apply(r,t.args):void 0}}function de(e,t){let n=e;for(const e of t){if(!n||"object"!=typeof n)return n;n=n[e]}return n}function ye(){const e=new Map;return{buildProxySubscriptions(t,n){const r=new Set;for(const[t,n]of e)ge(n,t,[],0,r);!function(e,t,n){for(const n of e)t(n.store,n.invocation?fe(n.path,n.invocation):le(n.path));n&&function(e){const t=e.size;console.log(`[📡 ${t} ${ce("Proxy Subscription",t)} 📡]:`,JSON.stringify(Array.from(e).map(e=>{const t=B(e.store),n=e.path.join(".");if(!e.invocation)return n?`$(${t}).${n}`:`$(${t})`;const r=e.invocation.args?.length??0;return`$(${t}).${n}${r?`(${r}_${ce("arg",r)})`:"()"}`}),null,2))}(e)}(r,t,n)},trackPath(t,n,r,o){let i=e.get(t);i||(i=pe(),e.set(t,i)),he(i,n,0,r,o)}}}function pe(){return Object.create(null)}function he(e,t,n,r,o){if(n===t.length)return r&&(e.isLeaf=!0),void(o&&(e.invocation=o));e.children||(e.children=pe());const i=t[n];let s=e.children?.[i];s||(s=pe(),e.children[i]=s),he(s,t,n+1,r,o)}function ge(e,t,n,r,o,i=1){const s=e.children;if(!s)return void o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1});const c=Object.keys(s),a=c.length;if(0!==a)if(e.isLeaf||r>=i&&a>1){o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1});for(const e of c){const c=s[e];c.invocation&&ge(c,t,[...n,e],r+1,o,i)}}else if(r<i&&a>1&&!e.isLeaf)for(const e of c)ge(s[e],t,[...n,e],r+1,o,i);else{if(1===a){const e=c[0];return void ge(s[e],t,[...n,e],r+1,o,i)}o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1})}else o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1})}var be=!1,me=!1,Se=new Map,ve=new Map,we=new Map,Oe=null,je=1/0;function Ae(){return be}function qe(){return Oe}function Fe(){be||(be=!0,me||(me=!0,queueMicrotask(()=>{me=!1,t(()=>{for(;ve.size>0;){const e=je,t=we.get(e);if(t){we.delete(e);for(const e of t)ve.delete(e);Oe=e;for(const e of t)e();if(Oe=null,we.size>0){je=1/0;for(const e of we.keys())e<je&&(je=e)}else je=1/0}else{je=1/0;for(const e of we.keys())e<je&&(je=e)}}for(;Se.size>0;){const e=Array.from(Se.values());Se.clear();for(const t of e)t()}}),be=!1,Oe=null,ve.clear(),we.clear(),je=1/0})))}function Ce(e,t){be&&Se.set(e,t)}var Ie=e=>e;function ke(e,t=Object.is){return n=function(e,t=Object.is){const{debounceOptions:n,debugMode:r,equalityFn:o,keepAlive:i,lockDependencies:s}="function"==typeof(u=t)?{debounceOptions:void 0,debugMode:!1,equalityFn:u,keepAlive:!1,lockDependencies:!1}:{debounceOptions:u.debounce,debugMode:(f&&u.debugMode)??!1,equalityFn:u.equalityFn??Object.is,keepAlive:u.keepAlive??!1,lockDependencies:u.lockDependencies??!1},c=String(Me+=1),a=new Set;var u;i&&a.add(ze);const l=new Set;let d,y,p=Te,h=!1,g=!0,b=!0,m=0,S=!1,v=null,w=Te;function O(e,t,n){if(!b||!a.size)return(t??Ie)(U(e)?e.getSnapshot():e.getState());if(!t)return d||(d=new WeakMap),y||(y=ye()),ae(e,d,y.trackPath);const r=e.subscribe(t,K,{equalityFn:n??Object.is,isDerivedStore:!0});return l.add(r),t(U(e)?e.getSnapshot():e.getState())}function j(e){for(const t of l)t(e);l.clear()}let A=!0;function q(){if(!g&&Ee(p))return p;g=!1,b&&j(!0);const t=p,n=Ee(t);p=function(t){A=!0;const n=p,i=e(t);return Ee(n)&&o(n,i)?(r&&console.log("[🥷 Derive Complete 🥷]: No change detected"),A=!1,n):i}(O);const i=r&&(!n||"verbose"===r&&b);if(i){n?"verbose"===r&&console.log("[🌀 Rebuilding Subscriptions 🌀]: Created…"):console.log("[🌀 Initial Derive Complete 🌀]: Created…");const e=l.size;console.log(`[🎯 ${e} ${ce("Selector Subscription",e)} 🎯]`)}return y&&b&&(y.buildProxySubscriptions((e,t)=>{const n=e.subscribe(t,K,{equalityFn:Object.is,isDerivedStore:!0});l.add(n)},i),d=void 0,y=void 0),A&&n&&function(e,t){const n=function(){const e=a.has(ze)?a.size-1:a.size;return m>0&&m<e}(),o=!m||n,i=n||null!==qe()||Ae()&&o;n&&Fe(),r&&console.log(`[📻 Derive Complete 📻]: Notifying ${a.size} ${ce("watcher",a.size)}`);for(const t of a){if("function"==typeof t||!t.isDerivedWatcher)continue;const n=t.selector(e);if(!t.equalityFn(t.currentSlice,n)){const e=t.currentSlice;t.currentSlice=n,t.listener(n,e)}}i?S||(S=!0,Ee(w)||(w=t),Ce(c,C)):F(e,t)}(p,t),s&&(b=!1),p}function F(e,t){for(const n of a)if("function"==typeof n)n(e,t);else if(!n.isDerivedWatcher){const t=n.selector(e);if(!n.equalityFn(n.currentSlice,t)){const e=n.currentSlice;n.currentSlice=t,n.listener(t,e)}}}function C(){if(!a.size)return;if(g&&!m&&q(),!Ee(p))return;const e=Ee(w)?w:p;F(p,e),S=!1,w=Te}const I=n?k(M,"number"==typeof n?n:n.delay,"number"==typeof n?{leading:!1,maxWait:n,trailing:!0}:n):void 0,T=I??(()=>{h||(h=!0,queueMicrotask(M))});function M(){a.size&&(h=!1,g&&q())}function z(e){e?queueMicrotask(()=>{a.size||$()}):$()}function E(){M(),v=null}function K(){if(!g){if(g=!0,!I){if(m){Fe();const e=qe(),t=null===e?0:e+1;if(null!==v&&t<=v)return;return v=t,void function(e,t){if(!be)return;const n=t<0?0:0|t,r=ve.get(e);if(void 0===r){ve.set(e,n);let t=we.get(n);return t||(t=new Set,we.set(n,t)),t.add(e),void(n<je&&(je=n))}if(n>r){const t=we.get(r);if(t&&(t.delete(e),0===t.size&&(we.delete(r),r===je))){je=1/0;for(const e of we.keys())e<je&&(je=e)}ve.set(e,n);let o=we.get(n);o||(o=new Set,we.set(n,o)),o.add(e),n<je&&(je=n)}}(E,t)}if(Ae())return void(S||(S=!0,Ee(p)&&(w=p),Ce(c,C)))}v=null,T()}}function D(){return g||!Ee(p)?a.size>0?q():e(O):p}function $(e=!0){i&&e||(I?.cancel(),j(),a.clear(),m=0,y=void 0,d=void 0,b=!0,h=!1,g=!0,p=Te,S=!1,w=Te,v=null)}return{destroy:()=>$(!1),flushUpdates:function(){a.size&&(I?I.flush():g&&q())},getSnapshot:function(){if(!Ee(p)){a.add(ze);const e=q();return a.delete(ze),e}return h&&M(),p},getState:D,subscribe:function(...e){if(1===e.length){const t=e[0];return a.add(t),1!==a.size||Ee(p)||D(),()=>{a.delete(t),a.size||z(!1)}}const[t,n,r]=e,o=r?.equalityFn??Object.is,i=r?.isDerivedStore??!1,s={currentSlice:void 0,equalityFn:o,isDerivedWatcher:i,listener:n,selector:t};return a.add(s),s.currentSlice=t(D()),i&&(m+=1),r?.fireImmediately&&n(s.currentSlice,s.currentSlice),()=>{a.delete(s),i&&(m-=1),a.size||z(i)}},getInitialState:()=>{throw new Error("[createDerivedStore]: getInitialState() is not available on derived stores.")},setState:()=>{throw new Error("[createDerivedStore]: setState() is not available on derived stores.")}}}(e,t),Object.assign(function(e=Ie,t=void 0){return c(n.subscribe,n.getSnapshot,void 0,e,t)},n);var n}var Te=Symbol(),Me=0;function ze(){}function Ee(e){return e!==Te}var Ke=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=D.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)}}},De={Error:"error",Idle:"idle",Loading:"loading",Success:"success"};function $e(e,t){if("object"!=typeof e||null==e||"object"!=typeof t||null==t)return e===t;if(Object.is(e,t))return!0;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!(r in t)||!$e(e[r],t[r]))return!1;return!0}function Pe(e,t){if("object"!=typeof e||null==e||"object"!=typeof t||null==t)return e===t;if(Object.is(e,t))return!0;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.is(e[r],t[r]))return!1;return!0}function xe(e,t){const n=Object.prototype.hasOwnProperty;function r(e,t){for(const n of e.keys())if(xe(n,t))return n}let o,i,s;if(e===t)return!0;if(e&&t&&(o=e.constructor)===t.constructor){if(o===Date)return e.getTime()===t.getTime();if(o===RegExp)return e.toString()===t.toString();if(o===Array){if((i=e.length)===t.length)for(;i--&&xe(e[i],t[i]););return-1===i}if(o===Set){if(e.size!==t.size)return!1;for(let n of e){if(s=n,s&&"object"==typeof s&&(s=r(t,s),!s))return!1;if(!t.has(s))return!1}return!0}if(o===Map){if(e.size!==t.size)return!1;for(let n of e){if(s=n[0],s&&"object"==typeof s&&(s=r(t,s),!s))return!1;if(!xe(n[1],t.get(s)))return!1}return!0}if(o===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(o===DataView){if((i=e.byteLength)===t.byteLength)for(;i--&&e.getInt8(i)===t.getInt8(i););return-1===i}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){const n=e,r=t;if((i=n.byteLength)===r.byteLength)for(;i--&&n[i]===r[i];);return-1===i}if(!o||"object"==typeof e){i=0;for(const r in e){if(n.call(e,r)&&++i&&!n.call(t,r))return!1;if(!(r in t)||!xe(e[r],t[r]))return!1}return Object.keys(t).length===i}}return e!=e&&t!=t}var Le=new WeakMap,Ne=new WeakMap;function Re(e,t=Ve,n=xe){return function(e,t,n){let r=Ne.get(e);r||(r=new Map,Ne.set(e,r));let o=r.get(t);o||(o=new Map,r.set(t,o));const i=o.get(n);if(i)return i;const[s,c,a]=_e(e,t,n),u=new Map,l=e=>{const t={get(t,n){if("value"===n){let t=c();const n=e.split(".");for(const e of n)e&&(t=t[e]);return t}const r="string"==typeof n?n:n.toString(),o=e?`${e}.${r}`:r,i=u.get(o);if(i)return i;const a=l(o);return Le.set(a,s),u.set(o,a),a},set(t,n,r){const o=e.split(".");return""===o[0]&&o.shift(),a(o,r),!0}};return new Proxy(Object.create(null),t)},f=l("");return s(()=>{}),Le.set(f,s),o.set(n,f),f}(e,t,n)}var Ve=e=>e,We=(e,t,n)=>{if(!t.length)return n;const[r,...o]=t,i=e[r],s=We(i,o,n);if(xe(i,s))return e;const c=Array.isArray(e)?e.slice():{...e};return c[r]=s,c},_e=(e,t,n)=>{const r=new Set,o=U(e);let i,s=t(o?e.getSnapshot():e.getState());return[c=>(r.size||(i=e.subscribe(t,e=>{s=e,r.forEach(e=>e())},{equalityFn:n,isDerivedStore:o})),r.add(c),()=>{r.delete(c),!r.size&&i&&(i(),i=void 0)}),()=>(r.size||(s=t(e.getState())),s),(n,r)=>{if(t!==Ve)throw new Error("Cannot set a value with a selector");e.setState(e=>We(e,n,r),!0)}]},Je=Object.prototype.hasOwnProperty;function Qe(e,t){return Je.call(e,t)}var[Be,Ue]=[!0,!1],He={error:Be,lastFetchedAt:Be,queryCache:Be,queryKey:Be,status:Be,enabled:Ue,fetch:Ue,getCacheEntry:Ue,getData:Ue,getStatus:Ue,isDataExpired:Ue,isStale:Ue,reset:Ue},Ge=D.seconds(5);function Xe(e,t,n){A();const r="function"==typeof t?t:it,o="object"==typeof t?t:n,i=o&&"storageKey"in o?o:void 0,{fetcher:s,onError:c,onFetched:a,setData:u,transform:l,abortInterruptedFetches:y=!0,cacheTime:b=D.days(7),debugMode:m=!1,disableAutoRefetching:S=!1,disableCache:v=!1,enabled:w=!0,keepPreviousData:O=!1,maxRetries:j=5,paramChangeThrottle:q=!1,params:F,retryDelay:C=Ye,suppressStaleTimeWarning:I=!1,useParsableQueryKeys:T=!0}=e;let M="function"==typeof e.staleTime?D.minutes(2):e.staleTime??D.minutes(2);f&&!S&&!I&&M<Ge&&console.warn(`[createQueryStore${i?.storageKey?`: ${i.storageKey}`:""}] ❌ Stale times under ${Ge/1e3} seconds are not recommended. Provided staleTime: ${M/1e3} seconds`);const z=T?et:Ze,E=new Error("[createQueryStore: AbortError] Fetch interrupted"),K="function"==typeof b,$=f&&m,P=Object.keys(e.params??Object.create(null));let x=null,L=null,N=null,R=[],V=!1,_=!1,J=null,Q=null,B=null,U=null,H=null;const G={enabled:"function"!=typeof w&&w,error:null,lastFetchedAt:null,queryCache:{},queryKey:"",status:De.Idle},X=new Ke({disableAutoRefetching:S,initialEnabled:G.enabled}),Y=()=>{J&&(Q=null,J.abort(),J=null)},Z=(t,n,o)=>{const f=o.setState,d=(e,t)=>{const n="function"==typeof e;if(n||void 0!==e.enabled){let t;const r=f(r=>{const i=n?e(r):e,s=void 0!==i.enabled?i.enabled:r.enabled;return s!==r.enabled&&(t=()=>((e,t)=>{e!==t&&H!==t&&(H=t,X.setEnabled(t),t?queueMicrotask(()=>o.getState().fetch(void 0,{updateQueryKey:!0})):(B||y)&&(y&&Y(),B&&(clearTimeout(B),B=null)))})(r.enabled,s)),i});return t?.(),r}return f(e)};o.setState=d,X.init({onSubscribe:(r,o,i)=>{if(L||x||!F&&"function"!=typeof e.enabled&&"function"!=typeof e.staleTime){if(r)if(o){const e=ot(x,L),r=z(e),o=n();o.queryKey!==r&&t(e=>({...e,queryKey:r})),o.isStale()?w.fetch(e,void 0,!0):m(e,void 0)}else S&&!i&&w.fetch(void 0,void 0,!0)}else V=!0},onLastUnsubscribe:e=>{B&&(clearTimeout(B),B=null),y&&!e&&Y()}});const m=(e,t)=>{if(S||t?.skipStoreUpdates)return;if(M<=0||M===1/0)return;B&&(clearTimeout(B),B=null);const r=z(e),o=n(),i=(v?U===r&&o.lastFetchedAt:o.queryCache[r]?.lastFetchedAt)||null,s=i?M-(Date.now()-i):M;B=setTimeout(()=>{const t=X.get();t.enabled&&t.subscriptionCount>0&&w.fetch(e,{force:!0},!0)},s)},w={...r(d,n,o),...G,async fetch(e,r,o=!1){const f=X.get();if(!r?.force&&!r?.skipStoreUpdates&&!f.enabled)return null;const S=n(),A=S.error,q=S.queryKey,F=S.status,I=rt(x,L,P,e),k=z(I),T=r?.staleTime??M,D=F===De.Loading,N=!!r?.skipStoreUpdates,R="boolean"==typeof r?.updateQueryKey?r.updateQueryKey:o?O:!N,V=o||!N&&(R||q===k);if(Q?.promise&&Q.key===k&&D)return $&&console.log("[🔄 Using Active Fetch 🔄] for params:",JSON.stringify(I)),Q.promise;if(y&&!N&&!1!==r?.updateQueryKey&&Y(),!r?.force){const e=S.lastFetchedAt,n=S.queryCache[k],o=n?.lastFetchedAt,i=n?.errorInfo,s=i&&i.retryCount>=j,c=(v?U===k&&e:o)||null;if(c&&!(Date.now()-c>=T)&&(!i||s||N))return V&&!N&&!B&&f.subscriptionCount>0&&0!==M&&M!==1/0&&m(I,r),R&&t(e=>e.queryKey!==k?{...e,queryKey:k}:e),$&&console.log("[💾 Returning Cached Data 💾] for params:",JSON.stringify(I)),n?.data??null}!N&&V&&(B&&(clearTimeout(B),B=null),!A&&D||t(e=>({...e,error:null,status:De.Loading})),Q={key:k});const W=r?.cacheTime??(K?b(I):b),_=async()=>{try{$&&(o||!e||st(e,P)?console.log("[🔄 Fetching 🔄] for params:",JSON.stringify(I)):console.log("[🔄 Fetching with Partial Params 🔄]\n","- Provided params:",`${JSON.stringify(e)}\n`,"- Filled in params:",`${JSON.stringify(Object.fromEntries(Object.keys(I).filter(t=>!(t in e)).map(e=>[e,I[e]])))}`));const n=await(y&&!N&&V?(async e=>{const t=new AbortController;J=t;try{return await new Promise((n,r)=>{t.signal.addEventListener("abort",()=>r(E),{once:!0}),Promise.resolve(s(e,t)).then(n,r)})}finally{J===t&&(J=null)}})(I):s(I,null)),c=Date.now();let f;$&&console.log("[✅ Fetch Successful ✅] for params:",JSON.stringify(I));try{f=l?l(n,I):n}catch(e){throw new p(`[createQueryStore: ${i?.storageKey||k}]: transform failed`,e)}if(N)return $&&console.log("[🥷 Successful Parallel Fetch 🥷] for params:",JSON.stringify(I)),"withCache"===r.skipStoreUpdates&&t(e=>{if(!u)return v?{...e,queryCache:{...e.queryCache,[k]:{cacheTime:W,data:f,errorInfo:null,lastFetchedAt:c}}}:e;let t=e;const n=t.queryCache[k];return u({data:f,params:I,queryKey:k,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}}),!v&&Object.is(n,t.queryCache[k])&&(t={...t,queryCache:{...t.queryCache,[k]:{cacheTime:W,data:f,errorInfo:null,lastFetchedAt:c}}}),t}),f;if((u?d:t)(e=>{let t={...e,error:null,lastFetchedAt:c,queryKey:R?k:e.queryKey,status:De.Success};if(u||v){if(u){$&&console.log("[💾 Setting Data 💾] for params:",JSON.stringify(I));const e=t.queryCache[k];u({data:f,params:I,queryKey:k,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}}),!v&&Object.is(e,t.queryCache[k])&&(t.queryCache={...t.queryCache,[k]:{cacheTime:W,data:null,errorInfo:null,lastFetchedAt:c}})}}else $&&console.log("[💾 Setting Cache 💾] for params:",JSON.stringify(I),"| Has previous data?:",!!t.queryCache[k]?.data),t.queryCache={...t.queryCache,[k]:{cacheTime:W,data:f,errorInfo:null,lastFetchedAt:c}};return v||b===1/0?t:ct(O,k,t)}),V&&(U=k,m(I,r)),a)try{a({data:f,fetch:w.fetch,params:I,set:d})}catch(e){h.error(new p(`[createQueryStore: ${i?.storageKey||k}]: onFetched callback failed`,e))}return f??null}catch(s){if(s===E)return $&&console.log("[❌ Fetch Aborted ❌] for params:",JSON.stringify(I)),null;const a=!o&&!0===r?.throwOnError,u=g(s);if(N||!V){if(h.error(new p(`[createQueryStore: ${i?.storageKey||k}]: Failed to fetch data`,u)),a)throw u;return null}const l=v?void 0:n().queryCache[k],f=l?.errorInfo?.retryCount??0,d=f+1;if(c?.(u,f),f<j){if(X.get().subscriptionCount>0){const t="function"==typeof C?C(d,u):C;t!==1/0&&(B&&clearTimeout(B),B=setTimeout(()=>{const{enabled:t,subscriptionCount:n}=X.get();t&&n>0&&w.fetch(e,{force:!0},!0)},t))}t(e=>({...e,error:u,queryCache:{...e.queryCache,[k]:{cacheTime:l?.cacheTime??W,data:l?.data??null,lastFetchedAt:l?.lastFetchedAt??null,errorInfo:{error:u,lastFailedAt:Date.now(),retryCount:d}}},queryKey:R?k:e.queryKey,status:De.Error}))}else t(e=>({...e,error:u,queryCache:{...e.queryCache,[k]:{cacheTime:l?.cacheTime??W,data:l?.data??null,lastFetchedAt:l?.lastFetchedAt??null,errorInfo:{error:u,lastFailedAt:Date.now(),retryCount:j}}},queryKey:R?k:e.queryKey,status:De.Error}));if(h.error(new p(`[createQueryStore: ${i?.storageKey||k}]: Failed to fetch data`,u)),a)throw u;return null}finally{!N&&V&&(Q=null)}};return N||!V?_():(Q={key:k,promise:_()}).promise},getCacheEntry(e){if(v)return null;const t=n(),r=e?"string"==typeof e?e:z(rt(x,L,P,e)):t.queryKey;return t.queryCache[r]??null},getData(e){if(v)return null;const t=n().getCacheEntry(e);return t&&null!==t.data?O?t.data:t.lastFetchedAt&&Date.now()-t.lastFetchedAt>=t.cacheTime?null:t.data:null},getStatus:function(e){switch(e){case"isIdle":return n().status===De.Idle;case"isLoading":return n().status===De.Loading;case"isSuccess":{const e=n(),t=e.queryCache[e.queryKey]?.lastFetchedAt;return"number"==typeof t||e.status===De.Success}case"isError":case"isInitialLoad":case void 0:{const t=n(),r=t.queryCache[t.queryKey],o=(v?U===t.queryKey&&t.lastFetchedAt:r?.lastFetchedAt)||null,i=t.status;switch(e){case"isError":{const e=t.queryCache[t.queryKey];return v?"error"!==i:"number"==typeof e?.errorInfo?.lastFailedAt}case"isInitialLoad":return!o&&i===De.Loading}return{isError:i===De.Error,isIdle:i===De.Idle,isLoading:i===De.Loading,isInitialLoad:!o&&i===De.Loading,isSuccess:i===De.Success}}}},isDataExpired(e){const t=n(),r=t.queryCache[t.queryKey],o=t.queryKey,i=t.lastFetchedAt,s=(v?U===o&&i:r?.lastFetchedAt)||null;if(!s)return!0;const c=e??r?.cacheTime;return void 0===c||Date.now()-s>=c},isStale(e){const t=n(),r=t.queryKey,o=(v?U===r&&t.lastFetchedAt:t.queryCache[r]?.lastFetchedAt)||null;if(!o)return!0;const i=e??M;return Date.now()-o>=i},reset(e=!1){for(const e of R)e();R=[],x=null,L=null,N=null,Y(),B&&(clearTimeout(B),B=null),Q=null,U=null,e&&t(e=>({...e,...G}))}},A=o.subscribe;return o.subscribe=(...e)=>{const t=_?()=>{}:X.subscribe(),n=1===e.length?A(e[0]):A(e[0],e[1],e[2]);return e=>{t(e),n()}},w},ee=i?.storageKey?se(Z,Object.assign(Object.create(null),i,{partialize:lt(O,i.partialize)})):o&&!("storageKey"in o)?se(Z,o):se(Z),te=ee.getState(),ne=te.error,re=te.enabled,oe=te.queryKey;if(oe&&!ne&&(U=oe),_=!0,F||"function"==typeof e.enabled){const{directValues:e,enabledAttachVal:t,enabledDirectValue:n,attachVals:r}=function(e,t,n){const r=Object.create(null),o=Object.create(null),i=Object.create(null);for(const e in t){if(!Qe(t,e))continue;const s=t[e];if(at(s)){const t=s(Re,n);r[e]=t,i[e]=t.value}else ut(s)&&(o[e]=s,i[e]=s)}let s,c=null,a=null;if(at(e)){const t=e(Re,n);s=t.value,c=t}else s=e,a=e;return{attachVals:r,directValues:o,enabledAttachVal:c,enabledDirectValue:a,resolvedEnabled:s,resolvedParams:i}}(w,F,ee);x={enabled:t,params:r},L={enabled:n,params:e}}"function"==typeof e.staleTime&&(N=e.staleTime(Re,ee),M=N.value);const ie=function(){let e,t=!1;return function(...n){e=n,t||(t=!0,queueMicrotask(()=>{t=!1,(e=>{te.fetch(e??ot(x,L),{updateQueryKey:O})})(...e)}))}}();function ce(){let e;if(!O){e=ot(x,L);const t=z(e);ee.setState(e=>({...e,queryKey:t}))}ie(e)}const ae=d||!q?ce:k(ce,"number"==typeof q?q:q.delay,"number"==typeof q?{leading:!1,maxWait:q,trailing:!0}:q);if(x?.enabled){const e=x.enabled,t=Le.get(e);if(t){let n=e.value;re!==n&&ee.setState(e=>({...e,enabled:n})),n&&X.setEnabled(n),$&&console.log("[🌀 Enabled Subscription 🌀] Initial value:",n);const r=t(()=>{const t=e.value;t!==n&&($&&console.log("[🌀 Enabled Change 🌀] - [Old]:",`${n},`,"[New]:",t),n=t,ee.setState(e=>({...e,enabled:t})))});R.push(r)}}else re!==G.enabled&&ee.setState(e=>({...e,enabled:G.enabled}));for(const e in x?.params){const t=x.params[e];if(!t)continue;const n=Le.get(t);if($&&console.log("[🌀 Param Subscription 🌀] Subscribed to param:",e),n){let r=t.value;const o=n(()=>{const n=t.value;xe(r,n)||($&&console.log("[🌀 Param Change 🌀] -",e,"- [Old]:",`${r?.toString()},`,"[New]:",n?.toString()),r=n,ae())});R.push(o)}}if(N){const e=Le.get(N);if(e){const t=N;let n=t.value;$&&console.log("[🌀 StaleTime Subscription 🌀] Initial value:",n);const r=e(()=>{const e=t.value;e!==n&&($&&console.log("[🌀 StaleTime Change 🌀] - [Old]:",`${n},`,"[New]:",e),n=e,M=e,ee.getState().fetch())});R.push(r)}}return _=!1,V&&queueMicrotask(ae),ue=ee,le=W.QueryStore,Object.assign(ue,{[le]:!0});var ue,le}function Ye(e,t){const n=t?.baseDelay??D.seconds(5),r=t?.maxDelay??D.minutes(5),o=Math.pow(2,e);return Math.min(n*o,r)}function Ze(e){return JSON.stringify(Object.keys(e).sort().map(t=>e[t]))}function et(e){return JSON.stringify(nt(e))}function tt(e){return JSON.parse(e)}function nt(e){return"object"!=typeof e||null===e?e:Object.keys(e).sort().reduce((t,n)=>{const r=e[n];return t[n]=null!==r&&"object"==typeof r?nt(r):r,t},{})}function rt(e,t,n,r){return r?st(r,n)?r:{...ot(e,t),...r}:ot(e,t)}function ot(e,t){const n=t?.params??Object.create(null);for(const t in e?.params){const r=e.params[t];r&&(n[t]=r.value)}return n}function it(){return Object.create(null)}function st(e,t){if(!e)return!1;for(const n of t)if(!(n in e))return!1;return!0}function ct(e,t,n){if(!n.queryCache)return n;const r=Date.now(),o=t??(e&&n.queryKey||null);let i=!1;const s=Object.create(null);for(const e in n.queryCache){if(!Qe(n.queryCache,e))continue;const c=n.queryCache[e];c&&(r-(c.lastFetchedAt??c.errorInfo.lastFailedAt)<c.cacheTime||e===o)?!t&&c.errorInfo&&c.errorInfo.retryCount>0?(s[e]={...c,errorInfo:{...c.errorInfo,retryCount:0}},i=!0):s[e]=c:i=!0}return i?{...n,queryCache:s}:n}function at(e){return"function"==typeof e}function ut(e){return!at(e)}function lt(e,t){return n=>{const r={...n},o={};for(const e in r)Qe(r,e)&&e in He&&(He[e]&&(o[e]=r[e]),delete r[e]);return{...t?t(r):K(r),...ct(e,null,o)}}}function ft(e,t,n){const r="function"==typeof t,o=r?t:void 0,i=r?n:t,s=new Set,c=ke(e,{debugMode:i?.debugMode??!1,equalityFn:function(e,t){const n=Object.is(e,t);return n||(function(e,t){for(const n of s){n.unsubscribe();const r=n.args;if(1===r.length){const o=r[0],i=e.getState(),s=t.getState(),c=t.subscribe(o);n.unsubscribe=c,Object.is(s,i)||o(s,i);continue}const o=r[0],i=r[1];let s=r[2];s?.fireImmediately&&(s={...s,fireImmediately:!1});const c=o(e.getState()),a=o(t.getState()),u=t.subscribe(o,i,s);n.unsubscribe=u,(s?.equalityFn??Object.is)(c,a)||i(a,c)}}(e,t),J(e)),n},keepAlive:!0,lockDependencies:i?.lockDependencies??!0}),a=c.getState().persist,u=(l=c.getState,function(e,t){return t?l().setState(e,t):l().setState(e)});var l;return Object.assign(function(e,t){const n=c();return e?n(e,t):n()},{[W.VirtualStore]:!0,destroy:()=>c.destroy(),getInitialState:()=>c.getState().getInitialState(),getState:()=>c.getState().getState(),persist:a,setState:u,subscribe:function(...e){const t={args:e,unsubscribe:1===e.length?c.getState().subscribe(e[0]):c.getState().subscribe(e[0],e[1],e[2])};return s.add(t),()=>{t.unsubscribe(),s.delete(t)}}},o?o(c.getState):void 0)}var dt=Symbol(),yt=Object.freeze({debugMode:!1,enabled:!0,equalityFn:Object.is,fireImmediately:!1});function pt(e,t,n,r=yt){const o=function(){const e=u(dt);return e.current===dt&&(e.current=function(e,t,n){return{selector:e,react:t,isActive:!1,options:bt(n),resubscribe:()=>{},unsubscribe:()=>{}}}(t,n,r)),e}(),i=function(e){return"function"==typeof e?yt.enabled:e?.enabled??yt.enabled}(r);return o.current.react=n,o.current.selector=t,function(e,t){"function"==typeof t?e.current.options.equalityFn=t:t&&(e.current.options=t??yt)}(o,r),a(()=>{if(i)return gt(e,o),()=>function(e){e.current.options.debugMode&&console.log("[🗑️ useListen 🗑️] Detaching listener"),e.current.resubscribe=()=>{},e.current.unsubscribe(),e.current.unsubscribe=()=>{},e.current.isActive=!1}(o)},[i,e]),o}var ht=Object.freeze({fireImmediately:!1,forceResubscribe:!1});function gt(e,t,n=ht){if(t.current.isActive){if(!n?.forceResubscribe)return;t.current.unsubscribe()}t.current.options.debugMode&&console.log("[📡 useListen 📡] Attaching listener"),t.current.isActive=!0,t.current.resubscribe=(n=ht)=>gt(e,t,n);const r=e.subscribe(e=>t.current.selector(e),(e,n)=>t.current.react(e,n,()=>{r(),t.current.isActive=!1}),n.fireImmediately?{...t.current.options,fireImmediately:!0}:t.current.options);t.current.unsubscribe=()=>{t.current.isActive&&(r(),t.current.isActive=!1)}}function bt(e){return"function"==typeof e?{equalityFn:e}:e??yt}var mt=Symbol();function St(e){const t=u(mt);return t.current===mt&&(t.current=e()),t.current}function vt(e,t){const n=function(e){const t=e.getState(),n=Object.create(null);if(f&&("object"!=typeof t||null===t))throw new Error("[createStoreActions]: State is not an object");if(Y(e)){for(const r in t)Ot(t,r)&&(n[r]=wt(e,r));return n}for(const e in t)Ot(t,e)&&(n[e]=t[e]);return n}(e);return t?Object.assign(n,t):n}function wt(e,t){return function(...n){const r=e.getState()[t];if("function"==typeof r)return r(...n);throw new Error(`[createVirtualStoreAction]: Method ${String(t)} is not a function`)}}function Ot(e,t){return"function"==typeof e[t]}export{De as QueryStatuses,_ as applyStateUpdate,O as configureStores,se as createBaseStore,ke as createDerivedStore,Xe as createQueryStore,vt as createStoreActions,ft as createVirtualStore,$e as deepEqual,Ye as defaultRetryDelay,J as destroyStore,Q as destroyStores,Ze as getLegacyQueryKey,et as getQueryKey,B as getStoreName,G as isDerivedStore,X as isPersistedStore,H as isQueryStore,Y as isVirtualStore,tt as parseQueryKey,z as replacer,E as reviver,Pe as shallowEqual,D as time,pt as useListen,St as useStableValue};
|
|
1
|
+
import{useLayoutEffect as e,useRef as t,useSyncExternalStore as n,useDebugValue as r}from"react";import{Platform as o,unstable_batchedUpdates as i}from"react-native";var 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')}),c="ios"===o.OS;o.OS;var a="development"===process.env.NODE_ENV,u="test"===process.env.NODE_ENV;function l(e){return e}function f(){return{__proto__:null}}function d(){}Object.freeze(Object.create(null));var y=Symbol("empty selection"),p=Object.is;function g(e,t){return n=>(function(e){e.committedEqualityFn=e.equalityFn,e.committedSelector=e.selector,e.committedSource=e.source,e.committedValue=e.value===y?h(e):e.value}(e),t(r=>{e.latestSnapshot=r,e.latestSource=t;const o=e.committedValue;if(o===y||e.committedSource!==t)return void n();const i=e.committedSelector,s=e.committedEqualityFn;if(e.selector===i&&e.equalityFn===s){const t=i(r);if(s===p?p(o,t):s(o,t))return;return e.committedValue=t,e.value=t,e.valueEqualityFn=s,e.valueSelector=i,e.valueSnapshot=r,void n()}if(e.source!==t)return void n();const c=e.value;if(c===y)return;const a=e.selector(r),u=e.equalityFn(c,a);e.committedEqualityFn=e.equalityFn,e.committedSelector=e.selector,e.committedValue=m(e,r,u?c:a),u||n()}))}function h(e){const t=function(e){if(e.latestSource===e.source&&e.latestSnapshot!==y)return e.latestSnapshot;const t=e.getStoreSnapshot();return e.latestSnapshot=t,e.latestSource=e.source,t}(e);return b(e,t)}function b(e,t){const n=e.value;if(n!==y&&p(e.valueSnapshot,t)&&e.valueSelector===e.selector&&e.valueEqualityFn===e.equalityFn)return n;const r=e.selector(t);if(n!==y&&(e.equalityFn===p?p(n,r):e.equalityFn(n,r)))return m(e,t,n);const o=e.committedValue;return o!==y&&o!==n&&e.committedSource===e.source&&(e.equalityFn===p?p(o,r):e.equalityFn(o,r))?m(e,t,o):m(e,t,r)}function m(e,t,n){return e.value=n,e.valueEqualityFn=e.equalityFn,e.valueSelector=e.selector,e.valueSnapshot=t,n}function S(e,o,i,s){return Object.assign(function(c,a){return function(e,o,i,s,c=p){const a=t(null);let u=e,l=o,f=i;if(s){let t=a.current;null===t&&(t=function(e,t,n,r,o){const i={committedEqualityFn:o,committedSelector:r,committedSource:e,committedValue:y,equalityFn:o,getSelectedServerSnapshot:()=>function(e){return b(e,(e.getServerStoreSnapshot??e.getStoreSnapshot)())}(i),getSelectedSnapshot:()=>h(i),getServerStoreSnapshot:n,getStoreSnapshot:t,latestSnapshot:y,latestSource:y,selector:r,selectedSource:e,selectedSubscribe:()=>d,source:e,value:y,valueEqualityFn:o,valueSelector:r,valueSnapshot:y};return i.selectedSubscribe=g(i,e),i}(e,o,i,s,c),a.current=t),function(e,t,n,r,o,i){e.source===t&&e.getStoreSnapshot===n||(e.latestSnapshot=y),e.source=t,e.getStoreSnapshot=n,e.getServerStoreSnapshot=r,e.selector=o,e.equalityFn=i,e.selectedSource!==t&&(e.selectedSource=t,e.selectedSubscribe=g(e,t))}(t,e,o,i,s,c),u=t.selectedSubscribe,l=t.getSelectedSnapshot,f=void 0===i?void 0:t.getSelectedServerSnapshot}const m=n(u,l,f);return r(m),m}(e.subscribe,o,i,c,a??s)},e)}function v(e){let t;function n(){if(t)return t;try{const n=function(e){const{createMMKV:t,MMKV:n}=s("react-native-mmkv");if("function"==typeof t)return t({id:e});if("function"==typeof n)return new n({id:e});throw new Error("[stores]: react-native-mmkv module does not export MMKV/createMMKV.")}(e);let r;if("function"==typeof n.delete?r=n.delete.bind(n):"function"==typeof n.remove&&(r=n.remove.bind(n)),"function"!=typeof r)throw new Error("[stores]: Storage instance does not conform to expected interface");const o={clearAll:n.clearAll.bind(n),contains:n.contains.bind(n),delete:r,get:n.getString.bind(n),getAllKeys:n.getAllKeys.bind(n),set:n.set.bind(n)};t=o}catch(e){throw new Error("[stores] react-native-mmkv could not be loaded.\n\nPersisted stores require a storage backend. Either:\n - Install MMKV (the default): yarn add react-native-mmkv\n - Or provide a custom adapter via configureStores()\n"+(e instanceof Error?`\n${e.message}`:""))}return function(e){if(!e||"function"!=typeof e.get||"function"!=typeof e.set||"function"!=typeof e.delete||"function"!=typeof e.clearAll)throw new Error("[stores]: Storage instance does not conform to expected interface")}(t),t}return{clearAll:()=>n().clearAll(),contains:e=>n().contains(e),delete:e=>n().delete(e),get:e=>n().get(e),getAllKeys:()=>n().getAllKeys(),set:(e,t)=>n().set(e,t)}}var w={debug:(e,t)=>{a&&console.debug(e,t)},error:(e,t)=>{a&&!u&&console.error(e,t)},info:(e,t)=>{a&&console.info(e,t)},warn:(e,t)=>{a&&console.warn(e,t)}},O=Object.prototype.hasOwnProperty;function q(e,t){return O.call(e,t)}function j(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function F(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}var _=class extends Error{constructor(e,t){super(e),this.name="StoresError",void 0!==t&&Object.defineProperty(this,"cause",{configurable:!0,value:t,writable:!0})}};function A(e){return e instanceof Error?e:new Error(String(e))}var I,C,k,T=class{destroy(){}publish(){}},E=class{constructor(){this.sessionId="noop"}register(e){return new T}},M=!1;function z(e){var t;a&&function(){if(M)throw new Error("[stores]: configureStores() called after first store creation. Call it earlier before creating any stores.")}(),e.logger&&(t=e.logger,w=t),C??(C=function(e){return e?.queryStoreDefaults?{queryStoreDefaults:e.queryStoreDefaults}:void 0}(e)),k??(k=P(e))}function D(){return k??(k=P(void 0))}function K(){M=!0}function P(e){return{storage:e?.storage??v(e?.storageKeyPrefix??"stores:"),syncEngine:e?.syncEngine??(I||(I=new E),I)}}var x,R={Error:"error",Idle:"idle",Loading:"loading",Success:"success"},$={ms:e=>e,seconds:e=>1e3*e,minutes:e=>6e4*e,hours:e=>36e5*e,days:e=>864e5*e,weeks:e=>6048e5*e,infinity:1/0,zero:0};function L(e,t){const n=t?.baseDelay??$.seconds(5),r=t?.maxDelay??$.minutes(5);return Math.min(n*Math.pow(2,e),r)}function N(e){return JSON.stringify(V(e))}function V(e){return"object"!=typeof e||null===e?e:Object.keys(e).sort().reduce((t,n)=>{const r=e[n];return t[n]=j(r)?V(r):r,t},{__proto__:null})}function H(e,t){return!0===t[1]?e(t[0],!0):e(t[0])}function W(e,t,n){if(!0===n)return U(t)?t(e):t;const r=U(t)?t(e):t;return Object.is(r,e)?e:F(e)&&F(r)?{...e,...r}:r}function U(e){return"function"==typeof e}function J(e,t){return t instanceof Map?{__type:"Map",entries:Array.from(t.entries())}:t instanceof Set?{__type:"Set",values:Array.from(t)}:t}function B(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}var Q=Object.freeze({QueryStore:Symbol("queryStore"),VirtualStore:Symbol("virtualStore")});function G(e,t){ee(e)?e.getState().reset(t?.clearQueryCache):function(e){return"destroy"in e}(e)&&e.destroy()}function X(e,t){for(const n of Array.isArray(e)?e:Object.values(e))n&&!t?.skipDestroy?.(n)&&G(n,t)}function Y(e){const t="function"==typeof(n=e)?n.name:"";var n;return ne(e)?e.persist.getOptions().name??t:t}function Z(e){return"getSnapshot"in e}function ee(e){return Q.QueryStore in e}function te(e){return"flushUpdates"in e}function ne(e){return!(!("persist"in e)||!e.persist)&&"string"==typeof e.persist.getOptions().name}function re(e){return Q.VirtualStore in e}function oe(e,t){const n=function(e){const t=e.getState(),n={__proto__:null},r=n;if(a&&("object"!=typeof t||null===t))throw new Error("[createStoreActions]: State is not an object");if(re(e))for(const n in t)se(t,n)&&(r[n]=ie(e,n));else for(const e in t)se(t,e)&&(r[e]=t[e]);return n}(e);return t?Object.assign(n,t):n}function ie(e,t){return function(...n){const r=e.getState()[t];if("function"==typeof r)return r(...n);throw new Error(`[createVirtualStoreAction]: Method ${String(t)} is not a function`)}}function se(e,t){return"function"==typeof e[t]}function ce(e,t){if("object"!=typeof e||null==e||"object"!=typeof t||null==t)return e===t;if(Object.is(e,t))return!0;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!(r in t)||!ce(e[r],t[r]))return!1;return!0}function ae(e,t){if("object"!=typeof e||null==e||"object"!=typeof t||null==t)return e===t;if(Object.is(e,t))return!0;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.is(e[r],t[r]))return!1;return!0}function ue(e,t){const n=Object.prototype.hasOwnProperty;function r(e,t){for(const n of e.keys())if(ue(n,t))return n}let o,i,s;if(e===t)return!0;if(e&&t&&(o=e.constructor)===t.constructor){if(o===Date)return e.getTime()===t.getTime();if(o===RegExp)return e.toString()===t.toString();if(o===Array){if((i=e.length)===t.length)for(;i--&&ue(e[i],t[i]););return-1===i}if(o===Set){if(e.size!==t.size)return!1;for(let n of e){if(s=n,s&&"object"==typeof s&&(s=r(t,s),!s))return!1;if(!t.has(s))return!1}return!0}if(o===Map){if(e.size!==t.size)return!1;for(let n of e){if(s=n[0],s&&"object"==typeof s&&(s=r(t,s),!s))return!1;if(!ue(n[1],t.get(s)))return!1}return!0}if(o===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(o===DataView){if((i=e.byteLength)===t.byteLength)for(;i--&&e.getInt8(i)===t.getInt8(i););return-1===i}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){const n=e,r=t;if((i=n.byteLength)===r.byteLength)for(;i--&&n[i]===r[i];);return-1===i}if(!o||"object"==typeof e){i=0;for(const r in e){if(n.call(e,r)&&++i&&!n.call(t,r))return!1;if(!(r in t)||!ue(e[r],t[r]))return!1}return Object.keys(t).length===i}}return e!=e&&t!=t}function le(e){let t;const n=new Set;function r(...e){const r=W(t,...e);if(Object.is(r,t))return;const o=t;t=r,n.forEach(e=>e(t,o))}function o(){return t}const i={getInitialState:function(){return s},getState:o,setState:r,subscribe:function(...e){return 1===e.length?c(e[0]):function(e,n,r){const o=r?.equalityFn??Object.is;let i=e(t);return r?.fireImmediately&&n(i,i),c(function(t){const r=e(t);if(o(i,r))return;const s=i;i=r,n(r,s)})}(e[0],e[1],e[2])}},s=t=e(r,o,i);return i;function c(e){return n.add(e),()=>{n.delete(e)}}}function fe(e){return!!e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}function de(e){return{...e,merge:e.merge??ye,skipHydration:e.skipHydration??!1}}function ye(e,t){return void 0===e?t:{...t,...e}}function pe(){let e,t,n=!1;return{complete:function(){!n&&e&&(n=!0,e(),e=void 0,t=void 0)},isHydrated:function(){return n},fail:function(r){!n&&t&&(n=!0,t(r),t=void 0,e=void 0)},promise:new Promise((n,r)=>{e=n,t=r})}}var ge=Math.max,he=Math.min;function be(e,t=0,n={}){let r,o,i,s,c,a,u=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){const n=r,i=o;return r=o=void 0,u=t,s=n?e.apply(i,n):e.apply(i),s}function p(e){const n=e-(a??0);return void 0===a||n>=t||n<0||f&&void 0!==i&&e-u>=i}function g(){const e=me();if(p(e))return h(e);c=setTimeout(g,function(e){const n=t-(e-(a??0));return f&&void 0!==i?he(n,i-(e-u)):n}(e))}function h(e){return c=void 0,d&&r?y(e):(r=o=void 0,s)}function b(...e){const n=me(),i=p(n);if(r=e,o=this,a=n,i){if(void 0===c)return function(e){return u=e,c=setTimeout(g,t),l?y(e):s}(a);if(f)return clearTimeout(c),c=setTimeout(g,t),y(a)}return void 0===c&&(c=setTimeout(g,t)),s}return t=Se(t)||0,function(e){const t=typeof e;return null!==e&&("object"===t||"function"===t)}(n)&&(l=!!n.leading,f="maxWait"in n,i=f?ge(Se(n.maxWait)||0,t):void 0,d="trailing"in n?!!n.trailing:d),b.cancel=function(){void 0!==c&&clearTimeout(c),u=0,r=a=o=c=void 0},b.flush=function(){return void 0===c?s:h(me())},b}function me(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}function Se(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 ve(e){if(!j(e))return e;const t={__proto__:null},n=Object.keys(e);for(let r=0;r<n.length;r++){const o=n[r],i=e[o];"function"!=typeof i&&(t[o]=i)}return t}var we=u?0:$.seconds(c?3:5);function Oe(e,t,n,r){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),i="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),s=t.partialize??ve,c=t.deserializer??e.deserializer??je(o),a=t.serializer??e.serializer??Fe(o);function u(t,n,o){try{if(Ce(r))return;const c={state:s(n),version:o},u=Ae(r,i,c),l=a(c);try{e.set(t,l),Ie(r,u)}catch(e){w.error(new _("[createBaseStore]: Failed to persist store data",e))}}catch(e){w.error(new _("[createBaseStore]: Failed to persist store data",e))}}const l=void 0!==n?be(u,n,{leading:!1,maxWait:n,trailing:!0}):u;return{getItem:t=>{const n=e.get(t);return void 0===n?null:c(n)},setItem:(e,t,n)=>{r?.getIsApplyingRemote()||l(e,t,n)},removeItem:t=>{try{e.delete(t)}catch(e){w.error(new _("[createBaseStore]: Failed to delete persisted store data",e))}}}}function qe(e,t,n,r){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),i="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),s=t.partialize??ve,c=t.deserializer??e.deserializer??je(o),a=t.serializer??e.serializer??Fe(o);async function u(t,n,o){try{if(Ce(r))return;const c={state:s(n),version:o},u=Ae(r,i,c),l=a(c);try{await e.set(t,l),Ie(r,u)}catch(e){w.error(new _("[createBaseStore]: Failed to persist store data",e))}}catch(e){w.error(new _("[createBaseStore]: Failed to serialize persisted store data",e))}}const l=void 0!==n?be(u,n,{leading:!1,maxWait:n,trailing:!0}):function(e){let t,n=null;return function(...r){return t=r,n||(n=new Promise(r=>{queueMicrotask(async()=>{try{await e(...t)}finally{n=null,r()}})})),n}}(u);return{getItem:async t=>{const n=await e.get(t);return void 0===n?null:c(n)},setItem:async(e,t,n)=>{if(!r?.getIsApplyingRemote())return await l(e,t,n)},removeItem:async t=>{try{await e.delete(t)}catch(e){w.error(new _("[createBaseStore]: Failed to delete persisted store data",e))}}}}function je(e){return t=>{if("string"!=typeof t)throw new _("[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?B:void 0)}catch(e){throw w.error(new _("[createBaseStore]: Failed to deserialize persisted store data",e)),e}}(t,e)}}function Fe(e){return t=>function(e,t){try{return JSON.stringify(e,t?J:void 0)}catch(e){throw w.error(new _("[createBaseStore]: Failed to serialize store data",e)),e}}(t,e)}var _e=Object.freeze({shouldClear:!1});function Ae(e,t,n){if(!t||!e)return _e;const r=e.getFieldTimestampSnapshot();return function(e,t){const n=e.getSessionId(),r=e.getTimestamp();void 0!==n&&void 0!==r&&(t.syncMetadata={origin:n,timestamp:r})}(e,n),n.syncMetadata?r&&Object.keys(r).length>0?(n.syncMetadata.fields=r,{fieldSnapshot:r,shouldClear:!0}):(delete n.syncMetadata.fields,{fieldSnapshot:r,shouldClear:!1}):{fieldSnapshot:r,shouldClear:!1}}function Ie(e,t){e&&t.shouldClear&&t.fieldSnapshot&&Object.keys(t.fieldSnapshot).length&&e.clearFieldTimestamps(t.fieldSnapshot)}function Ce(e){return!!e&&!!e.getIsApplyingRemote()}var[ke,Te]=[0,1];function Ee(e,t,n){if(!e)return!0;const r=e[ke],o=e[Te];return!(t<r)&&(t>r||n>o)}function Me(e,t){return Object.prototype.hasOwnProperty.call(t,e)}function ze(e,t){if(!a)return!0;if(null===e||null===t)return e===t;const n=typeof e;return n===typeof t&&("object"!==n||Object.prototype.toString.call(e)===Object.prototype.toString.call(t))}function De(e){if(null===e)return"null";const t=typeof e;return"object"===t?Object.prototype.toString.call(e):t}function Ke(e,t){if(K(),!t)return le(e);const n=t.storageKey,r="string"==typeof n,o=r?t.storage??D().storage:void 0,i=function(e,t){if(!e)return null;const n="object"==typeof e,r=n?e.key??t:!0===e?t:e;if(!r)throw new _("[createBaseStore]: sync requires a key to be specified either directly or via storageKey");return n?{...e,key:r}:{key:r}}(t.sync,n),s=i?function(e,t,n){const r=t.engine??D().syncEngine,o=function(e){let t,n,r,o=!1;return{isAsync:e,clearFieldTimestamps:function(e){if(e&&r){for(const t of Object.entries(e)){const e=t[0],n=t[1];r[e]===n&&delete r[e]}Object.keys(r).length||(r=void 0)}},getFieldTimestampSnapshot:function(){if(r)return{...r}},getIsApplyingRemote:()=>o,getSessionId:()=>t,getTimestamp:()=>n,mergeFieldTimestamps:function(e){if(r)for(const t of Object.entries(e)){const e=t[0],n=t[1],o=r[e];(void 0===o||n>o)&&(r[e]=n)}else r={...e}},onHydrationComplete:void 0,onHydrationFlushEnd:void 0,setIsApplyingRemote:e=>o=e,setSessionId:e=>t=e,setTimestamp:e=>n=e,setWithoutPersist:void 0}}(n);return{stateCreator:(i,s,c)=>{const a=new Map,u=[],l=[];let f=null,d=!1,y=!1,p=0,g=null,h=[],b=Promise.resolve(),m=!n;function S(e,t){if(o?.setSessionId&&o?.setTimestamp&&r.sessionId&&(o.setSessionId(r.sessionId),o.setTimestamp(e),o.mergeFieldTimestamps&&t.length>0)){const n={__proto__:null};for(const r of t)n[String(r)]=e;o.mergeFieldTimestamps(n)}}function v(e,t){if(d||!g)return t?i(e,t):i(e);const n=function(){const e=Date.now(),t=e>p?e:p+1;return p=t,t}();let o=[],s={__proto__:null};const c=r=>{const i=W(r,e,t);for(const e of h)Object.is(i[e],r[e])||(o.push(e),s[e]=i[e]);return o.length&&S(n,o),i},u=t?i(c,!0):i(c);function b(){o.length&&function(e){const t=r.sessionId;for(const n of e.keys)a.set(n,[e.timestamp,t]);f&&y?f.publish?.({replace:e.replace,sessionId:t,timestamp:e.timestamp,values:e.values}):l.push(e)}({keys:o,replace:t??!1,values:s,timestamp:n})}return fe(u)?u.finally(b):(b(),u)}const O=c.setState;c.setState=v;const q=e(v,s,c);if(h=t.fields??function(e){const t=[];for(const n of Object.entries(e)){if("function"==typeof n[1])continue;const e=n[0];t.push(e)}return t}(q),!h.length)return q;async function j(e){p=Math.max(p,e.timestamp);const n={__proto__:null},r=s(),i=e.timestamp;let c;if(e.replace)for(const t of h)Me(t,e.values)||Ee(a.get(t),i,e.sessionId)&&(c??(c=[])).push(t);for(const o of h){if(!Me(o,e.values))continue;if(!g?.has(o))continue;if(!Ee(a.get(o),i,e.sessionId))continue;const s=t.merge?.[o];if(s){const t=e.values[o],c=r[o];if(void 0!==t){const u=s(t,c,r,e.values),l=void 0!==c?c:t;if(!ze(u,l))return void w.error(new _(`[sync] Merge function for field "${String(o)}" returned ${De(u)} but expected ${De(l)}`));n[o]=u,a.set(o,[i,e.sessionId])}}else n[o]=e.values[o],a.set(o,[i,e.sessionId])}if(Object.keys(n).length>0||c?.length){d=!0,o&&o.setIsApplyingRemote(!0);try{if(e.replace){const e={...r};let t=!1;if(c?.length){t=!0;for(const t of c)delete e[t],a.delete(t)}for(const r in n){if(!Object.prototype.hasOwnProperty.call(n,r))continue;const o=n[r];void 0!==o&&(Object.is(e[r],o)||(t=!0),e[r]=o)}if(!t)return;await(o.setWithoutPersist??O)(e,!0)}else await(o.setWithoutPersist??O)(n)}finally{d=!1,o&&o.setIsApplyingRemote(!1)}}}function F(e){n?b=b.then(()=>j(e)):j(e)}if(g=new Set(h),f=r.register({apply:e=>{m?F(e):u.push(e)},fields:h,getState:s,key:t.key}),f?.onFirstSubscribe||f?.onLastUnsubscribe){let e=0;const t=c.subscribe;c.subscribe=(...n)=>{e||f.onFirstSubscribe?.(),e+=1;const r=1===n.length?t(n[0]):t(n[0],n[1],n[2]);return()=>{r(),e-=1,e||queueMicrotask(()=>{e||f.onLastUnsubscribe?.()})}}}function A(){y=!0,function(){if(f&&l.length){for(const e of l){const t=r.sessionId;for(const n of e.keys)a.set(n,[e.timestamp,t]);S(e.timestamp,e.keys),f.publish?.({replace:e.replace,sessionId:t,timestamp:e.timestamp,values:e.values})}l.length=0}}()}function I(){m=!0,function(){if(!u.length)return;const e=u.slice();u.length=0;for(const t of e)F(t)}()}return n?(o.onHydrationComplete=A,o.onHydrationFlushEnd=I):f.onHydrated?(f.onHydrated(A),I()):(A(),I()),q},syncContext:o}}(e,i,o?.async??!1):void 0,c=s?.stateCreator??e;if(!r)return le(c);const a=function(e,t,n){const r=t??e.storage??D().storage,o=(e.sync?void 0:e.persistThrottleMs??we)||void 0,i=e.version??0;return r.async?{async:!0,persistStorage:qe(r,e,o,n),version:i}:{async:!1,persistStorage:Oe(r,e,o,n),version:i}}(t,o,s?.syncContext),u=a.async?function(e){let t,n,r,o=!1;return{hydrationPromise:()=>o?t?.promise??n??(n=Promise.resolve()):(t||(t=pe()),t.promise),stateCreator:(n,i,s)=>{let c;return r=()=>{if(c?.length){for(const e of c)H(s.setState,e);c=void 0}},e(function(...e){return o?H(n,e):(t||(t=pe()),c||(c=[]),c.push(e),t.promise)},i,s)},wrapOnRehydrateStorage:(e,n)=>i=>{const s=e?.(i);return(e,i)=>{o=!0,n?.onHydrationComplete?.(),r&&r(),n?.onHydrationFlushEnd?.(),i?t?.fail(A(i)):t?.complete(),s?.(e,i)}}}}(c):void 0,l=u?u.wrapOnRehydrateStorage(t.onRehydrateStorage,s?.syncContext):t.onRehydrateStorage,f=le(function(e,t){return(n,r,o)=>{let i,s,c,a=de(t),u=!1,l=0;function f(){return a.storage.setItem(a.name,r(),a.version)}const d=o.setState;o.setState=function(...e){return H(d,e),f()};const y=e(function(...e){return H(n,e),f()},r,o);function p(){const e=function(){const e=++l;return u=!1,s?.forEach(e=>e(r()??y)),e}(),t=a.onRehydrateStorage?.(r()??y);try{const n=a.storage.getItem(a.name);return fe(n)?n.then(n=>g(e,n,t)).catch(n=>m(e,t,n)):g(e,n,t)}catch(n){m(e,t,n)}}return o.getInitialState=()=>y,Object.assign(o,{persist:{clearStorage:()=>{a.storage.removeItem(a.name)},getOptions:()=>a,hasHydrated:()=>u,onFinishHydration:e=>(c??(c=new Set),c.add(e),()=>{c?.delete(e),0===c?.size&&(c=void 0)}),onHydrate:e=>(s??(s=new Set),s.add(e),()=>{s?.delete(e),0===s?.size&&(s=void 0)}),rehydrate:p,setOptions:e=>{a=de({...a,...e,storage:e.storage??a.storage})}}}),a.skipHydration||p(),i??y;function g(e,t,n){const r=function(e,t){if(!t)return{migrated:!1,state:void 0};if("number"!=typeof t.version||t.version===e.version)return{migrated:!1,state:t.state};if(!e.migrate)return console.error("State loaded from storage couldn't be migrated since no migrate function was provided"),{migrated:!1,state:void 0};const n=e.migrate(t.state,t.version);return fe(n)?n.then(e=>({migrated:!0,state:e})):{migrated:!0,state:n}}(a,t);return fe(r)?r.then(t=>h(e,t,n)).catch(t=>m(e,n,t)):h(e,r,n)}function h(e,t,o){const s=function(e,t){if(e!==l)return;const o=a.merge(t.state,r()??y);return i=o,n(o,!0),t.migrated?f():void 0}(e,t);if(fe(s))return s.then(()=>b(e,o));b(e,o)}function b(e,t){if(e!==l)return;t?.(i,void 0);const n=r();i=n,u=!0,c?.forEach(e=>e(n))}function m(e,t,n){e===l&&t?.(void 0,n)}}}(u?(e,t,n)=>(s&&(s.syncContext.setWithoutPersist=n.setState),u.stateCreator(e,t,n)):c,{merge:t.merge,migrate:t.migrate,name:n,onRehydrateStorage:l,storage:a.persistStorage,version:a.version}));return u?Object.assign(f,{persist:Object.assign(f.persist,{hydrationPromise:u.hydrationPromise})}):f}function Pe(e,t,n="s"){return 1===t?e:`${e}${n}`}var xe=i,Re=!1,$e=!1,Le=new Map,Ne=new Map,Ve=new Map,He=null,We=1/0;function Ue(){return Re}function Je(){return He}function Be(){Re||(Re=!0,$e||($e=!0,queueMicrotask(()=>{$e=!1,xe(()=>{for(;Ne.size>0;){const e=We,t=Ve.get(e);if(t){Ve.delete(e);for(const e of t)Ne.delete(e);He=e;for(const e of t)e();if(He=null,Ve.size>0){We=1/0;for(const e of Ve.keys())e<We&&(We=e)}else We=1/0}else{We=1/0;for(const e of Ve.keys())e<We&&(We=e)}}for(;Le.size>0;){const e=Array.from(Le.values());Le.clear();for(const t of e)t()}}),Re=!1,He=null,Ne.clear(),Ve.clear(),We=1/0})))}function Qe(e,t){Re&&Le.set(e,t)}var Ge=Symbol("stores.deriveProxy.unwrap");function Xe(e,t,n){const r=t.get(e);if(void 0!==r)return r;const o=function(e,t,n,r=[]){return e&&"object"==typeof e?Ye(e,r,t,n,new WeakSet,new WeakMap):(n(t,r,!0),e)}(Z(e)?e.getSnapshot():e.getState(),e,n);return t.set(e,o),o}function Ye(e,t,n,r,o,i){return new Proxy(e,{get(s,c,a){if(c===Ge)return r(n,t,!0),s;if(o.has(s))return Reflect.get(s,c,a);if("__proto__"===c||"symbol"==typeof c)return c===Symbol.iterator&&(r(n,t,!0),o.add(s)),Reflect.get(s,c,a);const u=Reflect.get(s,c,s),l=String(c),f=t.concat(l);if("function"==typeof u)return Object.prototype.hasOwnProperty.call(s,c)?function(...e){return r(n,f,!0,{args:e.length?e:void 0}),Reflect.apply(u,s,e)}:(r(n,t,!0),u.bind(e));const d=!!u&&"object"==typeof u;return r(n,f,!d),d?(i.has(u)||i.set(u,Ye(u,f,n,r,o,i)),i.get(u)):u},getOwnPropertyDescriptor:(e,i)=>(r(n,t,!0),o.add(e),Reflect.getOwnPropertyDescriptor(e,i)),has:(e,o)=>(r(n,t,!0),Reflect.has(e,o)),ownKeys:e=>(r(n,t,!0),o.add(e),Reflect.ownKeys(e))})}function Ze(e,t){if(!e||"object"!=typeof e)return e;const n=function(e){const t=Reflect.get(e,Ge);return t&&"object"==typeof t?t:void 0}(e);return n||(Array.isArray(e)?function(e,t){const n=tt(e,t);if(n)for(let t=0;t<e.length;t++)et(e,String(t),n)}(e,t):j(e)&&function(e,t){const n=tt(e,t);if(n)for(const t of Reflect.ownKeys(e))et(e,t,n)}(e,t),e)}function et(e,t,n){const r=Reflect.getOwnPropertyDescriptor(e,t);if(!r||!("value"in r))return;const o=Ze(r.value,n);o!==r.value&&(r.value=o,Reflect.defineProperty(e,t,r))}function tt(e,t){const n=t??new WeakSet;return n.has(e)?null:(n.add(e),n)}var nt=Object.freeze([]);function rt(){const e=new Map;return{buildProxySubscriptions(t,n,r,o){const i=new Set;for(const t of e)it(t[1],t[0],[],0,i,r);!1!==o?.(i)&&function(e,t,n){for(const n of e){const e=n.invocation?ut(n.path,n.invocation):at(n.path);t(n.store,e,n.path)}n&&function(e){const t=e.size;console.log(`[📡 ${t} ${Pe("Proxy Subscription",t)} 📡]:`,JSON.stringify(Array.from(e).map(e=>{const t="name"in(n=e.store)&&"string"==typeof n.name?n.name:"store";var n;const r=e.path.join(".");if(!e.invocation)return r?`$(${t}).${r}`:`$(${t})`;const o=e.invocation.args?.length??0;return`$(${t}).${r}${o?`(${o}_${Pe("arg",o)})`:"()"}`}),null,2))}(e)}(i,t,n)},reset(){e.clear()},trackPath(t,n,r,o){let i=e.get(t);i||(i={__proto__:null},e.set(t,i)),ot(i,n,0,r,o)}}}function ot(e,t,n,r,o){if(n===t.length)return r&&(e.isLeaf=!0),void(o&&function(e,t){const n=e.invocation;if(!n)return void(e.invocation=t);if(st(n,t))return;const r=e.extraInvocations;if(r){for(let e=0;e<r.length;e++)if(st(r[e],t))return;r.push(t)}else e.extraInvocations=[t]}(e,o));e.children||(e.children={__proto__:null});const i=t[n];let s=e.children?.[i];s||(s={__proto__:null},e.children[i]=s),ot(s,t,n+1,r,o)}function it(e,t,n,r,o,i=2){const s=e.children;if(!s)return void ct(e,t,n,o);const c=Object.keys(s),a=c.length;if(0!==a)if(e.isLeaf||r>=i&&a>1){ct(e,t,n,o);for(const e of c){const c=s[e];c.invocation&&it(c,t,[...n,e],r+1,o,i)}}else if(r<i&&a>1&&!e.isLeaf)for(const e of c)it(s[e],t,[...n,e],r+1,o,i);else{if(1===a){const e=c[0];return void it(s[e],t,[...n,e],r+1,o,i)}ct(e,t,n,o)}else ct(e,t,n,o)}function st(e,t){const n=e.args,r=t.args,o=n?.length??0;if(o!==(r?.length??0))return!1;if(!n||!r)return!0;for(let e=0;e<o;e++)if(!Object.is(n[e],r[e]))return!1;return!0}function ct(e,t,n,r){const o=e.isLeaf??!1,i=e.invocation;if(!i)return void r.add({store:t,path:n,isLeaf:o});r.add({store:t,path:n,invocation:i,isLeaf:o});const s=e.extraInvocations;if(s)for(let e=0;e<s.length;e++)r.add({store:t,path:n,invocation:s[e],isLeaf:o})}function at(e){return t=>lt(t,e)}function ut(e,t){const n=e.slice(0,-1),r=e[e.length-1];return e=>{const o=lt(e,n),i=o&&"object"==typeof o?Reflect.get(o,r):void 0;return"function"==typeof i?Reflect.apply(i,o,t.args??nt):void 0}}function lt(e,t){let n=e;for(const e of t){if(!n||"object"!=typeof n)return n;n=Reflect.get(n,e)}return n}var ft=Symbol(),dt=Object.freeze({equalityFn:Object.is,isDerivedStore:!0});function yt(e,t=Object.is){const{debounceOptions:n,debugMode:r,equalityFn:o,keepAlive:i,lockDependencies:s}="function"==typeof(f=t)?{debounceOptions:void 0,debugMode:!1,equalityFn:f,keepAlive:!1,lockDependencies:!1}:{debounceOptions:f.debounce,debugMode:(a&&f.debugMode)??!1,equalityFn:f.equalityFn??Object.is,keepAlive:f.keepAlive??!1,lockDependencies:f.lockDependencies??!1},c=String(pt+=1),u=new Set;var f;i&&u.add(gt);const d=new Set;let y,p,g=ft,h=!1,b=!0,m=!0,S=0,v=!1,w=null,O=ft;function q(e,t,n){return m&&u.size?t?(d.add(e.subscribe(t,z,n?{equalityFn:n,isDerivedStore:!0}:dt)),t(Z(e)?e.getSnapshot():e.getState())):(y||(y=new WeakMap),p||(p=rt()),Xe(e,y,p.trackPath)):(t??l)(Z(e)?e.getSnapshot():e.getState())}function j(e){for(const t of d)t(e);d.clear()}let F=!0;function _(){if(!b&&ht(g))return g;b=!1,m&&j(!0);const t=g,n=ht(t);g=function(t){F=!0;const n=g,i=e(t),s=p?Ze(i):i;return ht(n)&&o(n,s)?(r&&console.log("[🥷 Derive Complete 🥷]: No change detected"),F=!1,n):s}(q);const i=r&&(!n||"verbose"===r&&m);if(i){n?"verbose"===r&&console.log("[🌀 Rebuilding Subscriptions 🌀]: Created…"):console.log("[🌀 Initial Derive Complete 🌀]: Created…");const e=d.size;console.log(`[🎯 ${e} ${Pe("Selector Subscription",e)} 🎯]`)}return p&&m&&(p.buildProxySubscriptions((e,t)=>{d.add(e.subscribe(t,z,dt))},i),y=void 0,p.reset(),s&&(p=void 0)),F&&n&&function(e,t){const n=function(){const e=u.has(gt)?u.size-1:u.size;return S>0&&S<e}(),o=!S||n,i=n||null!==Je()||Ue()&&o;n&&Be(),r&&console.log(`[📻 Derive Complete 📻]: Notifying ${u.size} ${Pe("watcher",u.size)}`);for(const t of u){if("function"==typeof t||!t.isDerivedWatcher)continue;const n=t.selector(e);if(!t.equalityFn(t.currentSlice,n)){const e=t.currentSlice;t.currentSlice=n,t.listener(n,e)}}i?v||(v=!0,ht(O)||(O=t),Qe(c,I)):A(e,t)}(g,t),s&&(m=!1),g}function A(e,t){for(const n of u)if("function"==typeof n)n(e,t);else if(!n.isDerivedWatcher){const t=n.selector(e);if(!n.equalityFn(n.currentSlice,t)){const e=n.currentSlice;n.currentSlice=t,n.listener(t,e)}}}function I(){if(!u.size)return;if(b&&!S&&_(),!ht(g))return;const e=ht(O)?O:g;A(g,e),v=!1,O=ft}const C=n?be(T,"number"==typeof n?n:n.delay,"number"==typeof n?{leading:!1,maxWait:n,trailing:!0}:n):void 0,k=C??(()=>{h||(h=!0,queueMicrotask(T))});function T(){h=!1,u.size?b&&_():K()}function E(e){e||C&&b?queueMicrotask(()=>{u.size||K()}):K()}function M(){T(),w=null}function z(){if(!b){if(b=!0,!C){if(S){Be();const e=Je(),t=null===e?0:e+1;if(null!==w&&t<=w)return;return w=t,void function(e,t){if(!Re)return;const n=t<0?0:0|t,r=Ne.get(e);if(void 0===r){Ne.set(e,n);let t=Ve.get(n);return t||(t=new Set,Ve.set(n,t)),t.add(e),void(n<We&&(We=n))}if(n>r){const t=Ve.get(r);if(t&&(t.delete(e),0===t.size&&(Ve.delete(r),r===We))){We=1/0;for(const e of Ve.keys())e<We&&(We=e)}Ne.set(e,n);let o=Ve.get(n);o||(o=new Set,Ve.set(n,o)),o.add(e),n<We&&(We=n)}}(M,t)}if(Ue())return void(v||(v=!0,ht(g)&&(O=g),Qe(c,I)))}w=null,k()}}function D(){return b||!ht(g)?u.size>0?_():e(q):g}function K(e=!0){i&&e||(C?.cancel(),j(),u.clear(),S=0,p=void 0,y=void 0,m=!0,h=!1,b=!0,g=ft,v=!1,O=ft,w=null)}return{destroy:()=>K(!1),flushUpdates:function(){u.size&&(C?C.flush():b&&_())},getSnapshot:function(){if(!ht(g)){u.add(gt);const e=_();return u.delete(gt),e}return h&&T(),g},getState:D,subscribe:function(...e){if(1===e.length){const t=e[0];return u.add(t),1!==u.size||ht(g)||D(),()=>{u.delete(t),u.size||E(!1)}}const[t,n,r]=e,o=r?.equalityFn??Object.is,i=r?.isDerivedStore??!1,s={currentSlice:void 0,equalityFn:o,isDerivedWatcher:i,listener:n,selector:t};return u.add(s),s.currentSlice=t(D()),i&&(S+=1),r?.fireImmediately&&n(s.currentSlice,s.currentSlice),()=>{u.delete(s),i&&(S-=1),u.size||E(i)}},getInitialState:()=>{throw new Error("[createDerivedStore]: getInitialState() is not available on derived stores.")},setState:()=>{throw new Error("[createDerivedStore]: setState() is not available on derived stores.")}}}var pt=0;function gt(){}function ht(e){return e!==ft}var bt=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=$.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)}}},mt=new WeakMap,St=new WeakMap;function vt(e,t=wt,n=ue){return function(e,t,n){let r=St.get(e);r||(r=new Map,St.set(e,r));let o=r.get(t);o||(o=new Map,r.set(t,o));const i=o.get(n);if(i)return i;const[s,c,a]=qt(e,t,n),u=new Map,l=e=>new Proxy({__proto__:null},{get(t,n){if("value"===n){let t=c();const n=e.split(".");for(const e of n)e&&(t=t[e]);return t}const r="string"==typeof n?n:n.toString(),o=e?`${e}.${r}`:r,i=u.get(o);if(i)return i;const a=l(o);return mt.set(a,s),u.set(o,a),a},set(t,n,r){const o=e.split(".");return""===o[0]&&o.shift(),a(o,r),!0}}),f=l("");return s(()=>{}),mt.set(f,s),o.set(n,f),f}(e,t,n)}var wt=e=>e,Ot=(e,t,n)=>{if(!t.length)return n;const[r,...o]=t,i=e[r],s=Ot(i,o,n);if(ue(i,s))return e;const c=Array.isArray(e)?e.slice():{...e};return c[r]=s,c},qt=(e,t,n)=>{const r=new Set,o=Z(e);let i,s=t(o?e.getSnapshot():e.getState());return[c=>(r.size||(i=e.subscribe(t,e=>{s=e,r.forEach(e=>e())},{equalityFn:n,isDerivedStore:o})),r.add(c),()=>{r.delete(c),!r.size&&i&&(i(),i=void 0)}),()=>(r.size||(s=t(e.getState())),s),(n,r)=>{if(t!==wt)throw new Error("Cannot set a value with a selector");e.setState(e=>Ot(e,n,r),!0)}]};function jt(e){return mt.get(e)}var Ft={error:!0,lastFetchedAt:!0,queryCache:!0,queryKey:!0,status:!0,enabled:!1,fetch:!1,getCacheEntry:!1,getData:!1,getStatus:!1,isDataExpired:!1,isStale:!1,reset:!1},_t=Object.freeze({force:!0}),At=Object.freeze({once:!0}),It=Object.freeze({updateQueryKey:!0});function Ct(e,t,n,r){return r?Tt(r,n)?r:{...kt(e,t),...r}:kt(e,t)}function kt(e,t){const n=Object.assign({__proto__:null},t?.params);for(const t in e?.params){const r=e.params[t];r&&(n[t]=r.value)}return n}function Tt(e,t){if(!e)return!1;for(const n of t)if(!(n in e))return!1;return!0}function Et(e){return"function"==typeof e}function Mt(e){return!Et(e)}function zt(e,t){return n=>{const r={...n},o={__proto__:null};for(const e in r)q(r,e)&&e in Ft&&(Ft[e]&&(o[e]=r[e]),delete r[e]);return{...t?t(r):ve(r),...Dt(e,null,o)}}}function Dt(e,t,n){if(!n.queryCache)return n;const r=Date.now(),o=t??(e&&n.queryKey||null),i={__proto__:null};let s=!1;for(const e in n.queryCache){if(!q(n.queryCache,e))continue;const c=n.queryCache[e];c&&(r-(c.lastFetchedAt??c.errorInfo.lastFailedAt)<c.cacheTime||e===o)?!t&&c.errorInfo&&c.errorInfo.retryCount>0?(i[e]={...c,errorInfo:{...c.errorInfo,retryCount:0}},s=!0):i[e]=c:s=!0}return s?{...n,queryCache:i}:n}function Kt(){return Object.create(null)}function Pt(e,t,n){return new _(`[createQueryStore: ${e}]: ${t} failed`,n)}function xt(e){return function(...t){return!0===t[1]?e().setState(t[0],!0):e().setState(t[0])}}function Rt(e,t){const n=Ke(e,t);return S(n,n.getState,n.getInitialState,Object.is)}function $t(e,t=Object.is){const n=yt(e,t);return S(n,n.getSnapshot)}function Lt(e,t,n){const r=function(e,t,n){K();const r="function"==typeof t?t:Kt,o="object"==typeof t?t:n,i=function(e){return"string"==typeof e?.storageKey}(o)?o:void 0,s=x??(x=function(){const e={abortInterruptedFetches:!0,cacheTime:$.days(7),debugMode:!1,disableAutoRefetching:!1,keepPreviousData:!1,maxRetries:5,minStaleTime:!1,paramChangeThrottle:!1,retryDelay:L,staleTime:$.minutes(2),suppressStaleTimeWarning:!1},t=function(){if(C)return C}()?.queryStoreDefaults;return t?{...e,...t}:e}()),c=s.minStaleTime,{fetcher:l,onError:f,onFetched:d,setData:y,transform:p,abortInterruptedFetches:g=s.abortInterruptedFetches,cacheTime:h=s.cacheTime,debugMode:b=s.debugMode,disableAutoRefetching:m=s.disableAutoRefetching,disableCache:S=!1,enabled:v=!0,keepPreviousData:O=s.keepPreviousData,maxRetries:j=s.maxRetries,paramChangeThrottle:F=s.paramChangeThrottle,params:I,retryDelay:k=s.retryDelay,staleTime:T=s.staleTime,suppressStaleTimeWarning:E=s.suppressStaleTimeWarning}=e;let M="function"==typeof T?s.staleTime:T;a&&!1!==c&&!m&&!E&&M<c&&console.warn(`[createQueryStore${i?.storageKey?`: ${i.storageKey}`:""}] ❌ Stale times under ${c/1e3} seconds are not recommended. Provided staleTime: ${M/1e3} seconds`);const z=new Error("[createQueryStore: AbortError] Fetch interrupted"),D="function"==typeof h,P=a&&b,V=e.params?Object.keys(e.params):[];let H=null,W=null,U=null,J=[],B=!1,G=!1,X=null,Y=null,Z=null,ee=null,te=null;const ne={enabled:"function"!=typeof v&&v,error:null,lastFetchedAt:null,queryCache:{},queryKey:"",status:R.Idle},re=new bt({disableAutoRefetching:m,initialEnabled:ne.enabled});function oe(){X&&(Y=null,X.abort(),X=null)}function ie(t,n,o){const s=o.setState;function c(e){const t="function"==typeof e;if(t||void 0!==e.enabled){let n;const r=s(r=>{const o=t?e(r):e,i=void 0!==o.enabled?o.enabled:r.enabled;return i!==r.enabled&&(n=()=>function(e,t){e!==t&&te!==t&&(te=t,re.setEnabled(t),t?queueMicrotask(()=>u.fetch(void 0,It)):(Z||g)&&(g&&oe(),Z&&(clearTimeout(Z),Z=null)))}(r.enabled,i)),o});return n?.(),r}return s(e)}function a(e,t){if(m||t?.skipStoreUpdates)return;if(M<=0||M===1/0)return;Z&&(clearTimeout(Z),Z=null);const r=N(e),o=n(),i=(S?ee===r&&o.lastFetchedAt:o.queryCache[r]?.lastFetchedAt)||null,s=i?M-(Date.now()-i):M;Z=setTimeout(()=>{const t=re.get();t.enabled&&t.subscriptionCount>0&&u.fetch(e,_t,!0)},s)}o.setState=c,re.init({onSubscribe:(r,o,i)=>{if(W||H||!I&&"function"!=typeof e.enabled&&"function"!=typeof e.staleTime){if(r)if(o){const e=kt(H,W),r=N(e),o=n();o.queryKey!==r&&t({queryKey:r}),o.isStale()?u.fetch(e,void 0,!0):a(e,void 0)}else m&&!i&&u.fetch(void 0,void 0,!0)}else B=!0},onLastUnsubscribe:e=>{Z&&(clearTimeout(Z),Z=null),g&&!e&&oe()}});const u={...r(c,n,o),...ne,async fetch(e,r,o=!1){const s=re.get();if(!r?.force&&!r?.skipStoreUpdates&&!s.enabled)return null;const b=n(),m=b.error,v=b.queryKey,q=b.status===R.Loading,F=Ct(H,W,V,e),I=N(F);if(q&&Y?.promise&&Y.key===I)return P&&console.log("[🔄 Using Active Fetch 🔄] for params:",JSON.stringify(F)),Y.promise;const C=r?.staleTime??M,T=!!r?.skipStoreUpdates,E="boolean"==typeof r?.updateQueryKey?r.updateQueryKey:!!o&&O,K=(o||v===I||E)&&!T;if(g&&K&&oe(),!r?.force){const e=b.lastFetchedAt,n=b.queryCache[I],o=n?.lastFetchedAt,i=n?.errorInfo,c=i&&i.retryCount>=j,u=(S?ee===I&&e:o)||null;if(u&&!(Date.now()-u>=C)&&(!i||c||T))return K&&!Z&&s.subscriptionCount>0&&0!==M&&M!==1/0&&a(F,r),E&&t(e=>e.queryKey!==I?{queryKey:I}:e),P&&console.log("[💾 Returning Cached Data 💾] for params:",JSON.stringify(F)),n?.data??null}K&&(Z&&(clearTimeout(Z),Z=null),!m&&q||t({error:null,status:R.Loading}),Y={key:I});const x=r?.cacheTime??(D?h(F):h);async function $(){const s=i?.storageKey||I;try{P&&(o||!e||Tt(e,V)?console.log("[🔄 Fetching 🔄] for params:",JSON.stringify(F)):console.log("[🔄 Fetching with Partial Params 🔄]\n","- Provided params:",`${JSON.stringify(e)}\n`,"- Filled in params:",`${JSON.stringify(Object.fromEntries(Object.keys(F).filter(t=>!(t in e)).map(e=>[e,F[e]])))}`));const n=await(g&&K?async function(e){const t=new AbortController;X=t;try{return await new Promise((n,r)=>{t.signal.addEventListener("abort",()=>r(z),At),Promise.resolve(l(e,t)).then(n,r)})}finally{X===t&&(X=null)}}(F):l(F,null)),i=Date.now();let f;P&&console.log("[✅ Fetch Successful ✅] for params:",JSON.stringify(F));try{f=function(e,t,n){return n?n(e,t):e}(n,F,p)}catch(e){throw Pt(s,"transform",e)}if(T)return P&&console.log("[🥷 Successful Parallel Fetch 🥷] for params:",JSON.stringify(F)),"withCache"===r.skipStoreUpdates&&t(e=>{if(!y)return S?e:{queryCache:{...e.queryCache,[I]:{cacheTime:x,data:f,errorInfo:null,lastFetchedAt:i}}};let t=e;const n=t.queryCache[I];try{y({data:f,params:F,queryKey:I,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}})}catch(e){throw Pt(s,"setData",e)}return!S&&Object.is(n,t.queryCache[I])&&(t={...t,queryCache:{...t.queryCache,[I]:{cacheTime:x,data:null,errorInfo:null,lastFetchedAt:i}}}),t}),f;if((y?c:t)(e=>{let t={...e,error:null,lastFetchedAt:i,queryKey:E?I:e.queryKey,status:R.Success};if(y||S){if(y){P&&console.log("[💾 Setting Data 💾] for params:",JSON.stringify(F));const e=t.queryCache[I];try{y({data:f,params:F,queryKey:I,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}})}catch(e){throw Pt(s,"setData",e)}!S&&Object.is(e,t.queryCache[I])&&(t.queryCache={...t.queryCache,[I]:{cacheTime:x,data:null,errorInfo:null,lastFetchedAt:i}})}}else P&&console.log("[💾 Setting Cache 💾] for params:",JSON.stringify(F),"| Has previous data?:",!!t.queryCache[I]?.data),t.queryCache={...t.queryCache,[I]:{cacheTime:x,data:f,errorInfo:null,lastFetchedAt:i}};return S||h===1/0?t:Dt(O,I,t)}),K&&(ee=I,a(F,r)),d)try{d({data:f,fetch:u.fetch,params:F,set:c})}catch(e){w.error(Pt(s,"onFetched callback",e))}return f??null}catch(i){if(i===z)return P&&console.log("[❌ Fetch Aborted ❌] for params:",JSON.stringify(F)),null;const c=!o&&!0===r?.throwOnError,a=A(i);if(a instanceof _&&w.error(a),!K){if(c)throw a;return null}const l=S?void 0:n().queryCache[I],d=l?.errorInfo?.retryCount??0,y=d+1;try{f?.(a,d)}catch(e){w.error(Pt(s,"onError callback",e))}if(d<j){if(re.get().subscriptionCount>0){const t="function"==typeof k?k(y,a):k;t!==1/0&&(Z&&clearTimeout(Z),Z=setTimeout(()=>{const t=re.get();t.enabled&&t.subscriptionCount>0&&u.fetch(e,_t,!0)},t))}t(e=>({error:a,queryCache:{...e.queryCache,[I]:{cacheTime:l?.cacheTime??x,data:l?.data??null,lastFetchedAt:l?.lastFetchedAt??null,errorInfo:{error:a,lastFailedAt:Date.now(),retryCount:y}}},queryKey:E?I:e.queryKey,status:R.Error}))}else t(e=>({error:a,queryCache:{...e.queryCache,[I]:{cacheTime:l?.cacheTime??x,data:l?.data??null,lastFetchedAt:l?.lastFetchedAt??null,errorInfo:{error:a,lastFailedAt:Date.now(),retryCount:j}}},queryKey:E?I:e.queryKey,status:R.Error}));if(c)throw a;return null}finally{K&&(Y=null)}}return K?(Y={key:I,promise:$()}).promise:$()},getCacheEntry(e){if(S)return null;const t=n(),r=e?"string"==typeof e?e:N(Ct(H,W,V,e)):t.queryKey;return t.queryCache[r]??null},getData(e){if(S)return null;const t=n().getCacheEntry(e);return t&&null!==t.data?O?t.data:t.lastFetchedAt&&Date.now()-t.lastFetchedAt>=t.cacheTime?null:t.data:null},getStatus:function(e){const t=n(),r=t.status;switch(e){case"isIdle":return r===R.Idle;case"isLoading":return r===R.Loading;case"isError":case"isInitialLoad":case"isSuccess":case void 0:{const n=t.queryKey,o=t.queryCache[n],i=S?r===R.Error:"number"==typeof o?.errorInfo?.lastFailedAt;if("isError"===e)return i;const s=null!==((S?ee===n&&t.lastFetchedAt:o?.lastFetchedAt)||null),c=!s&&!i&&t.enabled;if("isInitialLoad"===e)return c;const a=s&&!i;return"isSuccess"===e?a:{isError:i,isIdle:r===R.Idle,isLoading:r===R.Loading,isInitialLoad:c,isSuccess:a}}}},isDataExpired(e){const t=n(),r=t.queryCache[t.queryKey],o=t.queryKey,i=t.lastFetchedAt,s=(S?ee===o&&i:r?.lastFetchedAt)||null;if(!s)return!0;const c=e??r?.cacheTime;return void 0===c||Date.now()-s>=c},isStale(e){const t=n(),r=t.queryKey,o=(S?ee===r&&t.lastFetchedAt:t.queryCache[r]?.lastFetchedAt)||null;if(!o)return!0;const i=e??M;return Date.now()-o>=i},reset(e=!1){for(const e of J)e();J=[],H=null,W=null,U=null,oe(),Z&&(clearTimeout(Z),Z=null),Y=null,ee=null,e&&t(ne)}},b=o.subscribe;return o.subscribe=(...e)=>{const t=G?()=>{}:re.subscribe(),n=1===e.length?b(e[0]):b(e[0],e[1],e[2]);return e=>{t(e),n()}},u}const se=i?.storageKey?Ke(ie,(ce=i,void 0===(ae={partialize:zt(O,i.partialize)})?Object.assign({__proto__:null},ce):Object.assign({__proto__:null},ce,ae))):o&&!("storageKey"in o)?Ke(ie,o):Ke(ie);var ce,ae;const le=se.getState(),fe=le.error,de=le.enabled,ye=le.queryKey,pe=le.fetch;let ge;if(ye&&!fe&&(ee=ye),G=!0,I||"function"==typeof e.enabled){const{directValues:e,enabledAttachVal:t,enabledDirectValue:n,attachVals:r}=function(e,t,n){const r={__proto__:null},o={__proto__:null},i={__proto__:null};for(const e in t){if(!q(t,e))continue;const s=t[e];if(Et(s)){const t=s(vt,n);r[e]=t,i[e]=t.value}else Mt(s)&&(o[e]=s,i[e]=s)}let s,c=null,a=null;if(Et(e)){const t=e(vt,n);s=t.value,c=t}else s=e,a=e;return{attachVals:r,directValues:o,enabledAttachVal:c,enabledDirectValue:a,resolvedEnabled:s,resolvedParams:i}}(v,I,se);H={enabled:t,params:r},W={enabled:n,params:e}}"function"==typeof e.staleTime&&(U=e.staleTime(vt,se),M=U.value);const he=Object.freeze({updateQueryKey:O}),me=function(){let e,t=!1;return function(...n){e=n,t||(t=!0,queueMicrotask(()=>{t=!1,(e=>{pe(e??kt(H,W),he)})(...e)}))}}();function Se(){let e;if(!O){e=kt(H,W);const t=N(e);se.setState({queryKey:t})}me(e)}const ve=u||!F?Se:be(Se,"number"==typeof F?F:F.delay,"number"==typeof F?{leading:!1,maxWait:F,trailing:!0}:F);for(const e in H?.params){const t=H.params[e];if(!t)continue;const n=jt(t);if(P&&console.log("[🌀 Param Subscription 🌀] Subscribed to param:",e),n){let r=t.value;const o=n(()=>{const n=t.value;ue(r,n)||(P&&console.log("[🌀 Param Change 🌀] -",e,"- [Old]:",`${r?.toString()},`,"[New]:",n?.toString()),r=n,ve())});J.push(o)}}if(U){const e=jt(U);if(e){const t=U;let n=t.value;P&&console.log("[🌀 StaleTime Subscription 🌀] Initial value:",n);const r=e(()=>{const e=t.value;e!==n&&(P&&console.log("[🌀 StaleTime Change 🌀] - [Old]:",`${n},`,"[New]:",e),n=e,M=e,pe())});J.push(r)}}if(H?.enabled){const e=H.enabled,t=jt(e);if(t){let n=e.value;de!==n&&((ge??(ge={})).enabled=n),n&&re.setEnabled(n),P&&console.log("[🌀 Enabled Subscription 🌀] Initial value:",n);const r=t(()=>{const t=e.value;t!==n&&(P&&console.log("[🌀 Enabled Change 🌀] - [Old]:",`${n},`,"[New]:",t),n=t,se.setState({enabled:t}))});J.push(r)}}else de!==ne.enabled&&((ge??(ge={})).enabled=ne.enabled);const we=N(kt(H,W));return we!==ye&&((ge??(ge={})).queryKey=we),ge&&se.setState(ge),G=!1,B&&queueMicrotask(ve),Oe=se,qe=Q.QueryStore,Object.assign(Oe,{[qe]:!0});var Oe,qe}(e,t,n);return S(r,r.getState,r.getInitialState,Object.is)}function Nt(e){return N(e)}function Vt(e){return function(e){return JSON.parse(e)}(e)}function Ht(e,t,n){const r=function(e,t,n){const r="function"==typeof t,o=r?t:void 0,i=r?n:t,s=new Set,c=yt(e,{debugMode:i?.debugMode??!1,equalityFn:function(e,t){const n=Object.is(e,t);return n||(function(e,t){for(const n of s){n.unsubscribe();const r=n.args;if(1===r.length){const o=r[0],i=e.getState(),s=t.getState(),c=t.subscribe(o);n.unsubscribe=c,Object.is(s,i)||o(s,i);continue}const o=r[0],i=r[1];let s=r[2];s?.fireImmediately&&(s={...s,fireImmediately:!1});const c=o(e.getState()),a=o(t.getState()),u=t.subscribe(o,i,s);n.unsubscribe=u,(s?.equalityFn??Object.is)(c,a)||i(a,c)}}(e,t),G(e)),n},keepAlive:!0,lockDependencies:i?.lockDependencies??!0}),a=Object.assign({[Q.VirtualStore]:!0,destroy:c.destroy,getInitialState:()=>c.getState().getInitialState(),getState:()=>c.getState().getState(),persist:(u=c.getState,{clearStorage:()=>u().persist?.clearStorage(),getOptions:()=>u().persist?.getOptions()??{},hasHydrated:()=>u().persist?.hasHydrated()??!0,hydrationPromise:()=>u().persist?.hydrationPromise?.()??Promise.resolve(),onFinishHydration:e=>u().persist?.onFinishHydration(e)??d,onHydrate:e=>u().persist?.onHydrate(e)??d,rehydrate:()=>u().persist?.rehydrate(),setOptions:e=>u().persist?.setOptions(e)}),setState:xt(c.getState),subscribe:function(...e){const t={args:e,unsubscribe:1===e.length?c.getState().subscribe(e[0]):c.getState().subscribe(e[0],e[1],e[2])};return s.add(t),()=>{t.unsubscribe(),s.delete(t)}}},o?.(c.getState));var u;return a}(e,t,n);return S(r,r.getState,r.getInitialState)}var Wt=Symbol(),Ut=Object.freeze({debugMode:!1,enabled:!0,equalityFn:Object.is,fireImmediately:!1});function Jt(n,r,o,i=Ut){const s=function(){const e=t(Wt);return e.current===Wt&&(e.current=function(e,t,n){return{selector:e,react:t,isActive:!1,options:Gt(n),resubscribe:()=>{},unsubscribe:()=>{}}}(r,o,i)),e}(),c=function(e){return"function"==typeof e?Ut.enabled:e?.enabled??Ut.enabled}(i);return s.current.react=o,s.current.selector=r,function(e,t){"function"==typeof t?e.current.options.equalityFn=t:t&&(e.current.options=t??Ut)}(s,i),e(()=>{if(c)return Qt(n,s),()=>function(e){e.current.options.debugMode&&console.log("[🗑️ useListen 🗑️] Detaching listener"),e.current.resubscribe=()=>{},e.current.unsubscribe(),e.current.unsubscribe=()=>{},e.current.isActive=!1}(s)},[c,n]),s}var Bt=Object.freeze({fireImmediately:!1,forceResubscribe:!1});function Qt(e,t,n=Bt){if(t.current.isActive){if(!n?.forceResubscribe)return;t.current.unsubscribe()}t.current.options.debugMode&&console.log("[📡 useListen 📡] Attaching listener"),t.current.isActive=!0,t.current.resubscribe=(n=Bt)=>Qt(e,t,n);const r=e.subscribe(e=>t.current.selector(e),(e,n)=>t.current.react(e,n,()=>{r(),t.current.isActive=!1}),n.fireImmediately?{...t.current.options,fireImmediately:!0}:t.current.options);t.current.unsubscribe=()=>{t.current.isActive&&(r(),t.current.isActive=!1)}}function Gt(e){return"function"==typeof e?{equalityFn:e}:e??Ut}var Xt=Symbol();function Yt(e){const n=t(Xt);return n.current===Xt&&(n.current=e()),n.current}export{R as QueryStatuses,_ as StoresError,W as applyStateUpdate,z as configureStores,Rt as createBaseStore,$t as createDerivedStore,Lt as createQueryStore,oe as createStoreActions,Ht as createVirtualStore,ce as deepEqual,L as defaultRetryDelay,G as destroyStore,X as destroyStores,Nt as getQueryKey,Y as getStoreName,Z as hasGetSnapshot,l as identity,te as isDerivedStore,ne as isPersistedStore,ee as isQueryStore,re as isVirtualStore,f as nullObject,Vt as parseQueryKey,J as replacer,B as reviver,ae as shallowEqual,$ as time,Jt as useListen,Yt as useStableValue};
|
|
@@ -11,8 +11,9 @@ export declare class ChromeExtensionSyncEngine implements SyncEngine {
|
|
|
11
11
|
private readonly registrations;
|
|
12
12
|
private isListening;
|
|
13
13
|
constructor(options?: ChromeExtensionSyncEngineOptions);
|
|
14
|
-
|
|
14
|
+
destroy(): void;
|
|
15
15
|
register<T extends Record<string, unknown>>(registration: SyncRegistration<T>): SyncHandle<T>;
|
|
16
|
+
private generateSessionId;
|
|
16
17
|
private attachListener;
|
|
17
18
|
private detachListener;
|
|
18
19
|
private onStorageChanged;
|
|
@@ -22,6 +23,7 @@ export declare class ChromeExtensionSyncEngine implements SyncEngine {
|
|
|
22
23
|
* Does NOT perform conflict resolution - that's handled by syncEnhancer.processUpdate.
|
|
23
24
|
*/
|
|
24
25
|
private extractChangedFields;
|
|
26
|
+
private setRegistration;
|
|
25
27
|
private toStorageKey;
|
|
26
28
|
private parsePersistValue;
|
|
27
29
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StoreApi } from '../store/types';
|
|
2
|
+
import type { EqualityFn, Selector } from '../types/subscribe';
|
|
3
|
+
type NestedAttachValue<T> = T extends object ? {
|
|
4
|
+
readonly [K in keyof T]: AttachValue<T[K]>;
|
|
5
|
+
} : Record<string, never>;
|
|
6
|
+
export type AttachValue<T> = {
|
|
7
|
+
readonly value: T;
|
|
8
|
+
} & NestedAttachValue<T>;
|
|
9
|
+
export type SignalFunction = {
|
|
10
|
+
<T>(store: StoreApi<T>): AttachValue<T>;
|
|
11
|
+
<T, S>(store: StoreApi<T>, selector: Selector<T, S>, equalityFn?: EqualityFn<S>): AttachValue<S>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=signalTypes.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { AttachValue, SignalFunction } from '
|
|
2
|
-
import {
|
|
1
|
+
import type { AttachValue, SignalFunction } from './signalTypes';
|
|
2
|
+
import type { StoreApi } from '../store/types';
|
|
3
|
+
import type { DebounceOptions, SetPartial, Store } from '../types';
|
|
3
4
|
/**
|
|
4
5
|
* Helper type that represents the store returned by `createQueryStore()`.
|
|
5
6
|
*/
|
|
@@ -7,7 +8,19 @@ export type QueryStore<TData, TParams extends Record<string, unknown>, CustomSta
|
|
|
7
8
|
/**
|
|
8
9
|
* Configuration options for creating a query-enabled store.
|
|
9
10
|
*/
|
|
10
|
-
export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknown>, TData = TQueryFnData, CustomState = unknown, S extends QueryStoreState<TData, TParams, CustomState> = QueryStoreState<TData, TParams, CustomState>> = {
|
|
11
|
+
export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknown>, TData = TQueryFnData, CustomState = unknown, S extends QueryStoreState<TData, TParams, CustomState> = QueryStoreState<TData, TParams, CustomState>> = ([TQueryFnData] extends [TData] ? {
|
|
12
|
+
/**
|
|
13
|
+
* A function to transform the raw fetched data** (`TQueryFnData`) into another
|
|
14
|
+
* form (`TData`). If not provided, the raw data returned by `fetcher` is used.
|
|
15
|
+
*/
|
|
16
|
+
transform?: (data: TQueryFnData, params: TParams) => TData;
|
|
17
|
+
} : {
|
|
18
|
+
/**
|
|
19
|
+
* A function to transform the raw fetched data** (`TQueryFnData`) into another
|
|
20
|
+
* form (`TData`). If not provided, the raw data returned by `fetcher` is used.
|
|
21
|
+
*/
|
|
22
|
+
transform: (data: TQueryFnData, params: TParams) => TData;
|
|
23
|
+
}) & {
|
|
11
24
|
/**
|
|
12
25
|
* **A function responsible for fetching data from a remote source.**
|
|
13
26
|
* Receives parameters of type TParams and optionally an abort controller.
|
|
@@ -15,8 +28,8 @@ export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknow
|
|
|
15
28
|
*
|
|
16
29
|
* ---
|
|
17
30
|
* `abortController` is by default available, unless either:
|
|
18
|
-
*
|
|
19
|
-
*
|
|
31
|
+
* - `abortInterruptedFetches` is set to `false` in the store's config
|
|
32
|
+
* - The fetch was manually triggered with `skipStoreUpdates: true`
|
|
20
33
|
*/
|
|
21
34
|
fetcher: (params: TParams, abortController: AbortController | null) => TQueryFnData | Promise<TQueryFnData>;
|
|
22
35
|
/**
|
|
@@ -43,15 +56,10 @@ export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknow
|
|
|
43
56
|
* cached and tracked by the store, unless caching is fully disabled via `disableCache: true`.
|
|
44
57
|
*/
|
|
45
58
|
setData?: (info: SetDataParams<TData, TParams, CustomState, S>) => void;
|
|
46
|
-
/**
|
|
47
|
-
* **A function to transform the raw fetched data** (`TQueryFnData`) into another form (`TData`).
|
|
48
|
-
* If not provided, the raw data returned by `fetcher` is used.
|
|
49
|
-
*/
|
|
50
|
-
transform?: (data: TQueryFnData, params: TParams) => TData;
|
|
51
59
|
/**
|
|
52
60
|
* If `true`, the store will abort any partially completed fetches when:
|
|
53
|
-
*
|
|
54
|
-
*
|
|
61
|
+
* - A new fetch is initiated due to a change in parameters
|
|
62
|
+
* - All components subscribed to the store via selectors are unmounted
|
|
55
63
|
* @default true
|
|
56
64
|
*/
|
|
57
65
|
abortInterruptedFetches?: boolean;
|
|
@@ -125,8 +133,6 @@ export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknow
|
|
|
125
133
|
/**
|
|
126
134
|
* The duration, in milliseconds, that data is considered fresh after fetching.
|
|
127
135
|
* After becoming stale, the store may automatically refetch data in the background if there are active subscribers.
|
|
128
|
-
*
|
|
129
|
-
* **Note:** Stale times under 5 seconds are strongly discouraged.
|
|
130
136
|
* @default time.minutes(2)
|
|
131
137
|
*/
|
|
132
138
|
staleTime?: number | ReactiveParam<number, TParams, S, TData>;
|
|
@@ -135,17 +141,11 @@ export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknow
|
|
|
135
141
|
* @default false
|
|
136
142
|
*/
|
|
137
143
|
suppressStaleTimeWarning?: boolean;
|
|
138
|
-
/**
|
|
139
|
-
* @deprecated Only use for backwards compatibility.
|
|
140
|
-
* @default true
|
|
141
|
-
*/
|
|
142
|
-
useParsableQueryKeys?: boolean;
|
|
143
144
|
};
|
|
144
145
|
/**
|
|
145
|
-
* The
|
|
146
|
-
* though the state it defines can be accessed via the store's public interface.
|
|
146
|
+
* The internal state structure managed by the query store.
|
|
147
147
|
*/
|
|
148
|
-
export type
|
|
148
|
+
export type QueryStoreInternalState<TData, TParams extends Record<string, unknown>> = {
|
|
149
149
|
/**
|
|
150
150
|
* Initiates a data fetch for the given parameters. If no parameters are provided,
|
|
151
151
|
* the store's current parameters are used.
|
|
@@ -173,7 +173,7 @@ export type QueryStoreState<TData, TParams extends Record<string, unknown>, Cust
|
|
|
173
173
|
* Pass a status key to avoid building the full status object.
|
|
174
174
|
* @example
|
|
175
175
|
* ```ts
|
|
176
|
-
* const isInitialLoad =
|
|
176
|
+
* const isInitialLoad = myQueryStore.getState().getStatus('isInitialLoad');
|
|
177
177
|
* ```
|
|
178
178
|
* @returns The requested status, or the full status object if no key is provided.
|
|
179
179
|
*/
|
|
@@ -224,7 +224,12 @@ export type QueryStoreState<TData, TParams extends Record<string, unknown>, Cust
|
|
|
224
224
|
* The current status of the query's remote data fetching operation.
|
|
225
225
|
*/
|
|
226
226
|
status: QueryStatus;
|
|
227
|
-
}
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* The full state structure managed by the query store. This type is generally internal,
|
|
230
|
+
* though the state it defines can be accessed via the store's public interface.
|
|
231
|
+
*/
|
|
232
|
+
export type QueryStoreState<TData, TParams extends Record<string, unknown>, CustomState = unknown> = QueryStoreInternalState<TData, TParams> & CustomState;
|
|
228
233
|
/**
|
|
229
234
|
* Defines additional options for a data fetch operation.
|
|
230
235
|
*/
|
|
@@ -287,10 +292,10 @@ export declare const QueryStatuses: {
|
|
|
287
292
|
* Represents the current status of the query's remote data fetching operation.
|
|
288
293
|
*
|
|
289
294
|
* Possible values:
|
|
290
|
-
*
|
|
291
|
-
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
295
|
+
* - **`'error'`**: The most recent request encountered an error.
|
|
296
|
+
* - **`'idle'`**: No request in progress, no error, no data yet.
|
|
297
|
+
* - **`'loading'`**: A request is currently in progress.
|
|
298
|
+
* - **`'success'`**: The most recent request has succeeded and data is available.
|
|
294
299
|
*/
|
|
295
300
|
export type QueryStatus = (typeof QueryStatuses)[keyof typeof QueryStatuses];
|
|
296
301
|
/**
|
|
@@ -334,10 +339,11 @@ export type QueryStoreParams<TParams extends Record<string, unknown>, TData, S e
|
|
|
334
339
|
/**
|
|
335
340
|
* Represents a parameter that can be provided directly or defined via a reactive `AttachValue`.
|
|
336
341
|
* A parameter can be:
|
|
337
|
-
*
|
|
338
|
-
*
|
|
342
|
+
* - A static value (e.g. `string`, `number`).
|
|
343
|
+
* - A function that returns an `AttachValue<T>` when given a `SignalFunction`.
|
|
339
344
|
*/
|
|
340
|
-
export type ReactiveParam<T, TParams extends Record<string, unknown>, S extends QueryStoreState<TData, TParams>, TData> = T | (($: SignalFunction, store:
|
|
345
|
+
export type ReactiveParam<T, TParams extends Record<string, unknown>, S extends QueryStoreState<TData, TParams>, TData> = T | (($: SignalFunction, store: StoreApi<S>) => AttachValue<T>);
|
|
346
|
+
export type AttachValueParams<TParams extends Record<string, unknown>> = Partial<Record<keyof TParams, AttachValue<TParams[Extract<keyof TParams, string>]>>>;
|
|
341
347
|
/**
|
|
342
348
|
* The result of resolving reactive and static parameter values.
|
|
343
349
|
*/
|
|
@@ -345,7 +351,7 @@ export type ResolvedParamsResult<TParams extends Record<string, unknown>> = {
|
|
|
345
351
|
/**
|
|
346
352
|
* Reactive parameter values wrapped in `AttachValue`, which trigger refetches when they change.
|
|
347
353
|
*/
|
|
348
|
-
attachVals:
|
|
354
|
+
attachVals: AttachValueParams<TParams>;
|
|
349
355
|
/**
|
|
350
356
|
* Direct, non-reactive values resolved from the initial configuration.
|
|
351
357
|
*/
|
|
@@ -375,7 +381,7 @@ export type ResolvedEnabledResult = {
|
|
|
375
381
|
/**
|
|
376
382
|
* The keys that make up the internal state of the store.
|
|
377
383
|
*/
|
|
378
|
-
export type InternalStateKeys = keyof
|
|
384
|
+
export type InternalStateKeys = keyof QueryStoreInternalState<unknown, Record<string, unknown>>;
|
|
379
385
|
/**
|
|
380
386
|
* Helper type for defining `onFetched` parameters.
|
|
381
387
|
*/
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { EqualityFn, SubscribeOverloads, UseStoreCallSignatures } from '../types';
|
|
2
|
+
export declare function attachStoreHook<State, Store extends {
|
|
3
|
+
subscribe: SubscribeOverloads<State>;
|
|
4
|
+
}>(store: Store, getSnapshot: () => State, getServerSnapshot?: () => State, defaultEqualityFn?: EqualityFn): UseStoreCallSignatures<State> & Store;
|
|
5
|
+
//# sourceMappingURL=attachStoreHook.react.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EqualityFn, SubscribeOverloads } from '../types';
|
|
2
|
+
import type { UseStoreCallSignatures } from '../types/useStoreCallSignatures.vanilla';
|
|
3
|
+
export declare function attachStoreHook<State, Store extends {
|
|
4
|
+
subscribe: SubscribeOverloads<State>;
|
|
5
|
+
}>(store: Store, _getSnapshot: () => State, _getServerSnapshot?: () => State, _defaultEqualityFn?: EqualityFn): UseStoreCallSignatures<State> & Store;
|
|
6
|
+
//# sourceMappingURL=attachStoreHook.vanilla.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Mutate, StateCreator, StoreApi, StoreMutators } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the internal core store API.
|
|
4
|
+
*/
|
|
5
|
+
export declare function createStore<State, Mutators extends StoreMutators = []>(createState: StateCreator<State, [], Mutators>): Mutate<StoreApi<State>, Mutators>;
|
|
6
|
+
//# sourceMappingURL=createStore.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PersistOptions, StateCreator, StoreMutators } from './types';
|
|
2
|
+
type PersistMutators<PersistedState, PersistReturn, Mutators extends StoreMutators> = [
|
|
3
|
+
[
|
|
4
|
+
'stores/persist',
|
|
5
|
+
[PersistedState, PersistReturn]
|
|
6
|
+
],
|
|
7
|
+
...Mutators
|
|
8
|
+
];
|
|
9
|
+
/**
|
|
10
|
+
* Wraps a state creator with persistence.
|
|
11
|
+
*/
|
|
12
|
+
export declare function persist<State, PersistedState extends Partial<State>, PersistReturn extends void | Promise<void> = void, Mutators extends StoreMutators = []>(createState: StateCreator<State, [], Mutators>, initialOptions: PersistOptions<State, PersistedState>): StateCreator<State, [], PersistMutators<PersistedState, PersistReturn, Mutators>>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=persist.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SetStateArgs, SetStateOverloads } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Calls a `setState` function with captured `setState` arguments.
|
|
4
|
+
*/
|
|
5
|
+
export declare function applySetState<S, SetReturn extends Promise<void> | void>(set: SetStateOverloads<S, SetReturn>, args: SetStateArgs<S>): SetReturn;
|
|
6
|
+
/**
|
|
7
|
+
* Applies a `setState` payload to the current state.
|
|
8
|
+
*/
|
|
9
|
+
export declare function applyStateUpdate<S>(state: S, ...setArgs: SetStateArgs<S>): S;
|
|
10
|
+
//# sourceMappingURL=stateUpdate.d.ts.map
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { StorageValue } from '../storage/storageTypes';
|
|
2
|
+
import type { SetStateOverloads } from '../types/setState';
|
|
3
|
+
import type { SubscribeOverloads } from '../types/subscribe';
|
|
4
|
+
/**
|
|
5
|
+
* Store object contract shared by creators, middleware, and internal store utilities.
|
|
6
|
+
*/
|
|
7
|
+
export type StoreApi<S> = {
|
|
8
|
+
getInitialState: () => S;
|
|
9
|
+
getState: () => S;
|
|
10
|
+
setState: SetStateOverloads<S>;
|
|
11
|
+
subscribe: SubscribeOverloads<S>;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Callback that builds store state from the set/get/store API supplied during construction.
|
|
15
|
+
*/
|
|
16
|
+
export type StateCreator<S, Mutators extends StoreMutators = [], StoreMutatorOutput extends StoreMutators = [], U = S> = ((setState: Get<Mutate<StoreApi<S>, Mutators>, 'setState', never>, getState: Get<Mutate<StoreApi<S>, Mutators>, 'getState', never>, store: Mutate<StoreApi<S>, Mutators>) => U) & {
|
|
17
|
+
$$storeMutators?: StoreMutatorOutput;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Synchronous storage adapter consumed by the persistence wrapper.
|
|
21
|
+
*/
|
|
22
|
+
export type SyncPersistStorage<State, PersistedState = Partial<State>> = {
|
|
23
|
+
getItem: (name: string) => StorageValue<PersistedState> | null;
|
|
24
|
+
removeItem: (name: string) => void;
|
|
25
|
+
setItem: (name: string, state: State, version: number | undefined) => void;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Asynchronous storage adapter consumed by the persistence wrapper.
|
|
29
|
+
*/
|
|
30
|
+
export type AsyncPersistStorage<State, PersistedState = Partial<State>> = {
|
|
31
|
+
getItem: (name: string) => Promise<StorageValue<PersistedState> | null>;
|
|
32
|
+
removeItem: (name: string) => Promise<void>;
|
|
33
|
+
setItem: (name: string, state: State, version: number | undefined) => Promise<void>;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Accepted storage adapter types for sync or async persistence.
|
|
37
|
+
*/
|
|
38
|
+
export type PersistStorage<State, PersistedState = Partial<State>> = AsyncPersistStorage<State, PersistedState> | SyncPersistStorage<State, PersistedState>;
|
|
39
|
+
/**
|
|
40
|
+
* Resolved storage config for persisted stores.
|
|
41
|
+
*/
|
|
42
|
+
export type PersistStorageConfig<State, PersistedState extends Partial<State>> = {
|
|
43
|
+
async: false;
|
|
44
|
+
persistStorage: SyncPersistStorage<State, PersistedState>;
|
|
45
|
+
version: number;
|
|
46
|
+
} | {
|
|
47
|
+
async: true;
|
|
48
|
+
persistStorage: AsyncPersistStorage<State, PersistedState>;
|
|
49
|
+
version: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Persistence options consumed by the persistence wrapper.
|
|
53
|
+
*/
|
|
54
|
+
export type PersistOptions<S, PersistedState = Partial<S>> = {
|
|
55
|
+
merge?: (persistedState: PersistedState | undefined, currentState: S) => S;
|
|
56
|
+
migrate?: (persistedState: PersistedState, version: number) => PersistedState | Promise<PersistedState>;
|
|
57
|
+
name: string;
|
|
58
|
+
onRehydrateStorage?: (state: S) => ((state?: S, error?: unknown) => void) | void;
|
|
59
|
+
skipHydration?: boolean;
|
|
60
|
+
storage: PersistStorage<S, PersistedState>;
|
|
61
|
+
version: number;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Methods attached by the persistence wrapper before async hydration state is added.
|
|
65
|
+
*/
|
|
66
|
+
export type PersistMethods<S, PersistedState> = {
|
|
67
|
+
clearStorage: () => void;
|
|
68
|
+
getOptions: () => Partial<PersistOptions<S, PersistedState>>;
|
|
69
|
+
hasHydrated: () => boolean;
|
|
70
|
+
onHydrate: (listener: (state: S) => void) => () => void;
|
|
71
|
+
onFinishHydration: (listener: (state: S) => void) => () => void;
|
|
72
|
+
rehydrate: () => Promise<void> | void;
|
|
73
|
+
setOptions: (options: Partial<PersistOptions<S, PersistedState>>) => void;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Store shape after the persistence wrapper adds persistence methods, write-through `setState`,
|
|
77
|
+
* and async hydration state when applicable.
|
|
78
|
+
*/
|
|
79
|
+
export type WithPersist<Store, PersistedState, PersistReturn extends void | Promise<void>> = Store extends StoreApi<infer S> ? Write<Store, {
|
|
80
|
+
persist: PersistMethods<S, PersistedState> & HydrationPromise<PersistReturn>;
|
|
81
|
+
setState: SetStateOverloads<S, PersistReturn>;
|
|
82
|
+
}> : Store;
|
|
83
|
+
type HydrationPromise<PersistReturn> = PersistReturn extends Promise<void> ? {
|
|
84
|
+
/** Invoke to get a promise that resolves once hydration completes. */
|
|
85
|
+
hydrationPromise: () => Promise<void>;
|
|
86
|
+
} : {
|
|
87
|
+
hydrationPromise?: undefined;
|
|
88
|
+
};
|
|
89
|
+
type Get<T, K, Fallback> = K extends keyof T ? T[K] : Fallback;
|
|
90
|
+
type Write<T, U> = Omit<T, keyof U> & U;
|
|
91
|
+
type PersistMutator<Store, Args> = Args extends [infer PersistedState, infer PersistReturn extends void | Promise<void>] ? WithPersist<Store, PersistedState, PersistReturn> : Store;
|
|
92
|
+
type StoreMutatorIdentifier = keyof StoreMutatorMap<unknown, unknown>;
|
|
93
|
+
/**
|
|
94
|
+
* Mapping from store mutator identifiers to the store API shape they add.
|
|
95
|
+
*/
|
|
96
|
+
export interface StoreMutatorMap<Store, Args> {
|
|
97
|
+
'stores/persist': PersistMutator<Store, Args>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Ordered list of store mutators applied to a state creator.
|
|
101
|
+
*/
|
|
102
|
+
export type StoreMutators = [StoreMutatorIdentifier, unknown][];
|
|
103
|
+
/**
|
|
104
|
+
* Applies a list of store mutators to a store API type.
|
|
105
|
+
*/
|
|
106
|
+
export type Mutate<Store, Mutators> = number extends Mutators['length' & keyof Mutators] ? Store : Mutators extends [] ? Store : Mutators extends [[infer Identifier, infer Args], ...infer Rest] ? Identifier extends StoreMutatorIdentifier ? Rest extends StoreMutators ? Mutate<StoreMutatorMap<Store, Args>[Identifier], Rest> : StoreMutatorMap<Store, Args>[Identifier] : Store : Store;
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=types.d.ts.map
|