@storesjs/stores 0.8.6 β†’ 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/config.d.ts +37 -7
  2. package/dist/createBaseStore.d.ts +2 -2
  3. package/dist/createQueryStore.d.ts +7 -23
  4. package/dist/createStoreWithEqualityFn.d.ts +5 -0
  5. package/dist/createVirtualStore.d.ts +4 -3
  6. package/dist/derivedStore/{globalDeriveScheduler.d.ts β†’ cascadeScheduler.d.ts} +9 -1
  7. package/dist/derivedStore/deriveProxy.d.ts +6 -16
  8. package/dist/derivedStore/pathFinder.d.ts +27 -0
  9. package/dist/errors.d.ts +14 -0
  10. package/dist/hooks/useSyncExternalStoreWithSelector.d.ts +5 -0
  11. package/dist/index.d.ts +3 -1
  12. package/dist/logger.d.ts +0 -5
  13. package/dist/middleware/createHydrationGate.d.ts +1 -1
  14. package/dist/native/index.js +1 -1
  15. package/dist/native/index.mjs +1 -1
  16. package/dist/plugins/chrome/chromeExtensionSyncEngine.d.ts +3 -1
  17. package/dist/queryStore/queryStoreDefaults.d.ts +8 -0
  18. package/dist/queryStore/signalTypes.d.ts +13 -0
  19. package/dist/queryStore/types.d.ts +35 -30
  20. package/dist/signal.d.ts +2 -11
  21. package/dist/storage/storageCreators.d.ts +1 -1
  22. package/dist/sync/syncEnhancer.d.ts +4 -0
  23. package/dist/sync/types.d.ts +53 -128
  24. package/dist/types/functions.d.ts +19 -2
  25. package/dist/types/objects.d.ts +10 -3
  26. package/dist/types/utils.d.ts +1 -1
  27. package/dist/types.d.ts +35 -32
  28. package/dist/utils/core.d.ts +23 -4
  29. package/dist/utils/createStoreActions.d.ts +3 -3
  30. package/dist/utils/persistUtils.d.ts +2 -2
  31. package/dist/utils/storeUtils.d.ts +22 -15
  32. package/dist/utils/time.d.ts +0 -3
  33. package/dist/web/chrome.js +1 -1
  34. package/dist/web/chrome.mjs +1 -1
  35. package/dist/web/chunk-3U5A7HQV.mjs +1 -0
  36. package/dist/web/index.js +1 -1
  37. package/dist/web/index.mjs +1 -1
  38. package/package.json +17 -12
  39. package/dist/sync/transport.d.ts +0 -113
  40. package/dist/web/chunk-B3GRBY25.mjs +0 -1
@@ -1 +1 @@
1
- import{Platform as e,unstable_batchedUpdates as t}from"react-native";import{subscribeWithSelector as n,persist as r}from"zustand/middleware";import{createWithEqualityFn as o}from"zustand/traditional";import{useSyncExternalStoreWithSelector as i}from"use-sync-external-store/shim/with-selector";import{useLayoutEffect as s,useRef as c}from"react";var a=(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')}),u="ios"===e.OS;e.OS;var l="development"===process.env.NODE_ENV,f="test"===process.env.NODE_ENV;function d(e){let t;try{const{MMKV:n}=a("react-native-mmkv"),r=new n({id:e}),{getString:o,...i}=r;t=Object.assign(Object.create(null),i,{get:o})}catch(e){throw new Error("[stores] react-native-mmkv could not be loaded.\n\nPersisted stores require a storage backend. Either:\n - Install MMKV (the default): yarn add react-native-mmkv\n - Or provide a custom adapter via configureStores()\n"+(e instanceof Error?`\n${e.message}`:""))}return function(e){if(!e||"function"!=typeof e.get||"function"!=typeof e.set||"function"!=typeof e.delete||"function"!=typeof e.clearAll)throw new Error("[stores]: Storage instance does not conform to expected interface")}(t),{clearAll:()=>t.clearAll(),contains:e=>t.contains(e),delete:e=>t.delete(e),get:e=>t.get(e),getAllKeys:()=>t.getAllKeys(),set:(e,n)=>t.set(e,n)}}var y=class extends Error{constructor(e,t){super(e),this.name="StoresError",this.cause=h(t)}},p={debug:(e,t)=>{l&&console.debug(e,t)},error:(e,t)=>{l&&!f&&console.error(e,t)},info:(e,t)=>{l&&console.info(e,t)},warn:(e,t)=>{l&&console.warn(e,t)}};function h(e){return e instanceof Error?e:new Error(String(e))}var g,b,m=class{destroy(){}publish(){}},S=class{constructor(){this.sessionId="noop"}register(e){return new m}},v=!1;function w(e){var t;l&&function(){if(v)throw new Error("[stores]: configureStores() called after first store creation. Call it earlier before creating any stores.")}(),e.logger&&(t=e.logger,p=t),b??(b=q(e))}function O(){return b??(b=q(void 0))}function j(){v=!0}function q(e){return{storage:e?.storage??d(e?.storageKeyPrefix??"stores:"),syncEngine:e?.syncEngine??(g||(g=new S),g)}}function A(){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 F=Math.max,C=Math.min;function I(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=k();if(p(e))return g(e);c=setTimeout(h,function(e){const n=t-(e-(a??0));return f&&void 0!==i?C(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=k(),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=T(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?F(T(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(k())},b}function k(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}function T(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 M(e,t){return t instanceof Map?{__type:"Map",entries:Array.from(t.entries())}:t instanceof Set?{__type:"Set",values:Array.from(t)}:t}function z(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 E(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},K=f?0:u?D.seconds(3):D.seconds(5);function $(e){return t=>{if("string"!=typeof t)throw new y("[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?z:void 0)}catch(e){throw p.error(new y("[createBaseStore]: Failed to deserialize persisted Rainbow store data"),{error:e}),e}}(t,e)}}function P(e){return t=>function(e,t){try{return JSON.stringify(e,t?M:void 0)}catch(e){throw p.error(new y("[createBaseStore]: Failed to serialize Rainbow store data"),{error:e}),e}}(t,e)}var x=Object.freeze({shouldClear:!1});function L(e,t,n){if(!t||!e)return x;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 N(e){return!!e&&!!e.getIsApplyingRemote()}function _(e,...t){return!0===t[1]?X(t[0])?t[0](e):t[0]:{...e,...X(t[0])?t[0](e):t[0]}}function W(e,t){U(e)?e.getState().reset(t?.clearQueryCache):function(e){return"destroy"in e}(e)&&e.destroy()}function J(e,t){for(const n of Array.isArray(e)?e:Object.values(e))n&&!t?.skipDestroy?.(n)&&W(n,t)}function V(e){return H(e)?e.persist.getOptions().name??e.name:e.name}function B(e){return"getSnapshot"in e}function U(e){return"_queryStore"in e}function Q(e){return"flushUpdates"in e}function H(e){return"persist"in e}function G(e){return"_virtualStore"in e}function X(e){return"function"==typeof e}var[Y,Z]=[0,1];function ee(e,t,n){if(!e)return!0;const r=e[Y],o=e[Z];return!(t<r)&&(t>r||n>o)}function te(e,t){return Object.prototype.hasOwnProperty.call(t,e)}function ne(e,t){if(!l)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 re(e){if(null===e)return"null";const t=typeof e;return"object"===t?Object.prototype.toString.call(e):t}function oe(e,t){j();const i=void 0!==t&&"string"==typeof t.storageKey,s=i?t.storageKey:void 0,c=t?.sync?function(e,t){if(!e)return null;if(!0===e){if(!t)throw new y("[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 y("[createBaseStore]: sync requires either a key in the config or a storageKey to inherit from");return{...n,key:r}}(t.sync,s):void 0,a=i?t.storage??O().storage:void 0,u=c?function(e,t,n){const r=t.engine??O().syncEngine,o=function(e){let t,n,r,o=!1;return{isAsync:e,clearFieldTimestamps:function(e){if(e&&r){for(const t of Object.entries(e)){const e=t[0],n=t[1];r[e]===n&&delete r[e]}Object.keys(r).length||(r=void 0)}},getFieldTimestampSnapshot:function(){if(r)return{...r}},getIsApplyingRemote:()=>o,getSessionId:()=>t,getTimestamp:()=>n,mergeFieldTimestamps:function(e){if(r)for(const t of Object.entries(e)){const e=t[0],n=t[1],o=r[e];(void 0===o||n>o)&&(r[e]=n)}else r={...e}},onHydrationComplete:void 0,onHydrationFlushEnd:void 0,setIsApplyingRemote:e=>o=e,setSessionId:e=>t=e,setTimestamp:e=>n=e,setWithoutPersist:void 0}}(n);return{stateCreator:(i,s,c)=>{const a=new Map,u=[],l=[];let f=null,d=!1,h=!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),y=()=>{o.length&&(e=>{const t=r.sessionId;for(const n of e.keys)a.set(n,[e.timestamp,t]);f&&h?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(p=u)&&"object"==typeof p&&"then"in p&&"function"==typeof p.then?u.finally(y):(y(),u);var p},j=c.setState;c.setState=O;const q=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}(q),!m.length)return q;b=new Set(m);const A=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)te(t,e.values)||ee(a.get(t),i,e.sessionId)&&(c??(c=[])).push(t);for(const o of m){if(!te(o,e.values))continue;if(!b?.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(!ne(u,l))return void p.error(new y(`[sync] Merge function for field "${String(o)}" returned ${re(u)} but expected ${re(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(()=>A(e)):A(e)};f=r.register({apply:e=>{v?F(e):u.push(e)},delta:t.delta,fields:m,getState:s,key:t.key});const C=()=>{h=!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()),q},syncContext:o}}(e,c,a?.async??!1):void 0,l=u?.stateCreator??e;if(!i)return o()(n(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=A()),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=A()),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(h(i)):t?.complete(),s?.(e,i)}}}}(l):null,d=function(e,t,n){const r=t??e.storage??O().storage,o=(e.sync?void 0:e.persistThrottleMs??K)||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??E,c=t.deserializer??e.deserializer??$(o),a=t.serializer??e.serializer??P(o);async function u(t,n){try{if(N(r))return;n.state,n.state=s(n.state);const o=L(r,i,n),c=a(n);try{await e.set(t,c),R(r,o)}catch(e){p.error(new y("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){p.error(new y("[createBaseStore]: Failed to serialize persisted store data"),{error:e})}}const l=void 0!==n?I(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){p.error(new y("[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??E,c=t.deserializer??e.deserializer??$(o),a=t.serializer??e.serializer??P(o);function u(t,n){try{if(N(r))return;n.state,n.state=s(n.state);const o=L(r,i,n),c=a(n);try{e.set(t,c),R(r,o)}catch(e){p.error(new y("[createBaseStore]: Failed to persist store data"),{error:e})}}catch(e){p.error(new y("[createBaseStore]: Failed to persist store data"),{error:e})}}const l=void 0!==n?I(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){p.error(new y("[createBaseStore]: Failed to delete persisted store data"),{error:e})}}}}(r,e,o,n);return{persistStorage:s,version:i}}(t,a,u?.syncContext),g=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=o()(n(r(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,g))),Object.is);return f?Object.assign(m,{persist:Object.assign(m.persist,{hydrationPromise:f.hydrationPromise})}):m}function ie(e,t,n="s"){return 1===t?e:`${e}${n}`}function se(e,t,n){const r=t.get(e);if(!r){const r=function(e,t,n,r=[]){return e&&"object"==typeof e?ce(e,r,t,n,new WeakSet,new WeakMap):(n(t,r,!0),e)}(B(e)?e.getSnapshot():e.getState(),e,n);return t.set(e,r),r}return r}function ce(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,ce(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 ae(e){return t=>le(t,e)}function ue(e,t){const n=e.slice(0,-1);return e=>{const r=le(e,n),o=r?.[t.method];return"function"==typeof o?o.apply(r,t.args):void 0}}function le(e,t){let n=e;for(const e of t){if(!n||"object"!=typeof n)return n;n=n[e]}return n}function fe(){const e=new Map;return{buildProxySubscriptions(t,n){const r=new Set;for(const[t,n]of e)pe(n,t,[],0,r);!function(e,t,n){for(const n of e)t(n.store,n.invocation?ue(n.path,n.invocation):ae(n.path));n&&function(e){const t=e.size;console.log(`[πŸ“‘ ${t} ${ie("Proxy Subscription",t)} πŸ“‘]:`,JSON.stringify(Array.from(e).map(e=>{const t=V(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}_${ie("arg",r)})`:"()"}`}),null,2))}(e)}(r,t,n)},trackPath(t,n,r,o){let i=e.get(t);i||(i=de(),e.set(t,i)),ye(i,n,0,r,o)}}}function de(){return Object.create(null)}function ye(e,t,n,r,o){if(n===t.length)return r&&(e.isLeaf=!0),void(o&&(e.invocation=o));e.children||(e.children=de());const i=t[n];let s=e.children?.[i];s||(s=de(),e.children[i]=s),ye(s,t,n+1,r,o)}function pe(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&&pe(c,t,[...n,e],r+1,o,i)}}else if(r<i&&a>1&&!e.isLeaf)for(const e of c)pe(s[e],t,[...n,e],r+1,o,i);else{if(1===a){const e=c[0];return void pe(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 he=!1,ge=!1,be=new Map,me=new Map,Se=new Map,ve=null,we=1/0;function Oe(){return he}function je(){return ve}function qe(){he||(he=!0,ge||(ge=!0,queueMicrotask(()=>{ge=!1,t(()=>{for(;me.size>0;){const e=we,t=Se.get(e);if(t){Se.delete(e);for(const e of t)me.delete(e);ve=e;for(const e of t)e();if(ve=null,Se.size>0){we=1/0;for(const e of Se.keys())e<we&&(we=e)}else we=1/0}else{we=1/0;for(const e of Se.keys())e<we&&(we=e)}}for(;be.size>0;){const e=Array.from(be.values());be.clear();for(const t of e)t()}}),he=!1,ve=null,me.clear(),Se.clear(),we=1/0})))}function Ae(e,t){he&&be.set(e,t)}var Fe=e=>e;function Ce(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:(l&&u.debugMode)??!1,equalityFn:u.equalityFn??Object.is,keepAlive:u.keepAlive??!1,lockDependencies:u.lockDependencies??!1},c=String(ke+=1),a=new Set;var u;i&&a.add(Te);const f=new Set;let d,y,p=Ie,h=!1,g=!0,b=!0,m=!0,S=0,v=!1,w=null,O=Ie;function j(e,t,n){if(!m||!a.size)return(t??Fe)(B(e)?e.getSnapshot():e.getState());if(!t)return d||(d=new WeakMap),y||(y=fe()),se(e,d,y.trackPath);const r=e.subscribe(t,D,{equalityFn:n??Object.is,isDerivedStore:!0});return f.add(r),t(B(e)?e.getSnapshot():e.getState())}function q(e){for(const t of f)t(e);f.clear()}function A(){if(!b&&Me(p))return p;b=!1,m&&q(!0);const t=p,n=Me(t);p=function(t){g=!0;const n=p,i=e(t);return Me(n)&&o(n,i)?(r&&console.log("[πŸ₯· Derive Complete πŸ₯·]: No change detected"),g=!1,n):i}(j);const i=r&&(!n||"verbose"===r&&m);if(i){n?"verbose"===r&&console.log("[πŸŒ€ Rebuilding Subscriptions πŸŒ€]: Created…"):console.log("[πŸŒ€ Initial Derive Complete πŸŒ€]: Created…");const e=f.size;console.log(`[🎯 ${e} ${ie("Selector Subscription",e)} 🎯]`)}return y&&m&&(y.buildProxySubscriptions((e,t)=>{const n=e.subscribe(t,D,{equalityFn:Object.is,isDerivedStore:!0});f.add(n)},i),d=void 0,y=void 0),g&&n&&function(e,t){const n=function(){const e=a.has(Te)?a.size-1:a.size;return S>0&&S<e}(),o=!S||n,i=n||null!==je()||Oe()&&o;n&&qe(),r&&console.log(`[πŸ“» Derive Complete πŸ“»]: Notifying ${a.size} ${ie("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?v||(v=!0,Me(O)||(O=t),Ae(c,C)):F(e,t)}(p,t),s&&(m=!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(){a.size&&(v&&function(){if(b&&!S&&A(),!Me(p))return;const e=Me(O)?O:p;F(p,e)}(),v=!1,O=Ie)}const k=n?I(M,"number"==typeof n?n:n.delay,"number"==typeof n?{leading:!1,maxWait:n,trailing:!0}:n):void 0,T=k??(()=>{h||(h=!0,queueMicrotask(M))});function M(){a.size&&(h=!1,b&&A())}function z(e){e?queueMicrotask(()=>{a.size||$()}):$()}function E(){M(),w=null}function D(){if(!b){if(b=!0,!k){if(S){qe();const e=je(),t=null===e?0:e+1;if(null!==w&&t<=w)return;return w=t,void function(e,t){if(!he)return;const n=t<0?0:0|t,r=me.get(e);if(void 0===r){me.set(e,n);let t=Se.get(n);return t||(t=new Set,Se.set(n,t)),t.add(e),void(n<we&&(we=n))}if(n>r){const t=Se.get(r);if(t&&(t.delete(e),0===t.size&&(Se.delete(r),r===we))){we=1/0;for(const e of Se.keys())e<we&&(we=e)}me.set(e,n);let o=Se.get(n);o||(o=new Set,Se.set(n,o)),o.add(e),n<we&&(we=n)}}(E,t)}if(Oe())return void(v||(v=!0,Me(p)&&(O=p),Ae(c,C)))}w=null,S&&!n?A():T()}}function K(){return b||!Me(p)?a.size>0?A():e(j):p}function $(e=!0){i&&e||(k?.cancel(),q(),a.clear(),S=0,y=void 0,d=void 0,m=!0,h=!1,b=!0,p=Ie,v=!1,O=Ie,w=null)}return{destroy:()=>$(!1),flushUpdates:function(){a.size&&(k?k.flush():b&&A())},getSnapshot:function(){if(!Me(p)){a.add(Te);const e=A();return a.delete(Te),e}return h&&M(),p},getState:K,subscribe:function(...e){if(1===e.length){const t=e[0];return a.add(t),1!==a.size||Me(p)||K(),()=>{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(K()),i&&(S+=1),r?.fireImmediately&&n(s.currentSlice,s.currentSlice),()=>{a.delete(s),i&&(S-=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=Fe,t=void 0){return i(n.subscribe,n.getSnapshot,void 0,e,t)},n);var n}var Ie=Symbol(),ke=0;function Te(){}function Me(e){return e!==Ie}var ze=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)}}},Ee={Error:"error",Idle:"idle",Loading:"loading",Success:"success"};function De(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)||!De(e[r],t[r]))return!1;return!0}function Ke(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 $e(e,t){const n=Object.prototype.hasOwnProperty;function r(e,t){for(const n of e.keys())if($e(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--&&$e(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(!$e(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)||!$e(e[r],t[r]))return!1}return Object.keys(t).length===i}}return e!=e&&t!=t}var Pe=new WeakMap,xe=new WeakMap;function Le(e,t=Re,n=$e){return function(e,t,n){let r=xe.get(e);r||(r=new Map,xe.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 Pe.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(()=>{}),Pe.set(f,s),o.set(n,f),f}(e,t,n)}var Re=e=>e,Ne=(e,t,n)=>{if(!t.length)return n;const[r,...o]=t,i=e[r],s=Ne(i,o,n);if($e(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=B(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!==Re)throw new Error("Cannot set a value with a selector");e.setState(e=>Ne(e,n,r),!0)}]};function We(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var[Je,Ve]=[!0,!1],Be={error:Je,lastFetchedAt:Je,queryCache:Je,queryKey:Je,status:Je,enabled:Ve,fetch:Ve,getCacheEntry:Ve,getData:Ve,getStatus:Ve,isDataExpired:Ve,isStale:Ve,reset:Ve},Ue=D.seconds(5);function Qe(e,t,n){j();const r="function"==typeof t?t:nt,o="object"==typeof t?t:n,i=o&&"storageKey"in o?o:void 0,{fetcher:s,onError:c,onFetched:a,setData:u,transform:d,abortInterruptedFetches:g=!0,cacheTime:b=D.days(7),debugMode:m=!1,disableAutoRefetching:S=!1,disableCache:v=!1,enabled:w=!0,keepPreviousData:O=!1,maxRetries:q=5,paramChangeThrottle:A=!1,params:F,retryDelay:C=He,suppressStaleTimeWarning:k=!1,useParsableQueryKeys:T=!0}=e;let M="function"==typeof e.staleTime?D.minutes(2):e.staleTime??D.minutes(2);l&&!S&&!k&&M<Ue&&console.warn(`[createQueryStore${i?.storageKey?`: ${i.storageKey}`:""}] ❌ Stale times under ${Ue/1e3} seconds are not recommended. Provided staleTime: ${M/1e3} seconds`);const z=T?Xe:Ge,E=new Error("[createQueryStore: AbortError] Fetch interrupted"),K="function"==typeof b,$=l&&m,P=Object.keys(e.params??Object.create(null));let x=null,L=null,R=null,N=[],_=!1,W=!1,J=null,V=null,B=null,U=null,Q=null;const H={enabled:"function"!=typeof w&&w,error:null,lastFetchedAt:null,queryCache:{},queryKey:"",status:Ee.Idle},G=new ze({disableAutoRefetching:S,initialEnabled:H.enabled}),X=()=>{J&&(V=null,J.abort(),J=null)},Y=(t,n,o)=>{const l=o.setState,f=(e,t)=>{const n="function"==typeof e;if(n||void 0!==e.enabled){let t;const r=l(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&&Q!==t&&(Q=t,G.setEnabled(t),t?queueMicrotask(()=>o.getState().fetch(void 0,{updateQueryKey:!0})):(B||g)&&(g&&X(),B&&(clearTimeout(B),B=null)))})(r.enabled,s)),i});return t?.(),r}return l(e)};o.setState=f,G.init({onSubscribe:(r,o,i)=>{if(L||x||!F&&"function"!=typeof e.enabled&&"function"!=typeof e.staleTime){if(r)if(o){const e=tt(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 _=!0},onLastUnsubscribe:e=>{B&&(clearTimeout(B),B=null),g&&!e&&X()}});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=G.get();t.enabled&&t.subscriptionCount>0&&w.fetch(e,{force:!0},!0)},s)},w={...r(f,n,o),...H,async fetch(e,r,o=!1){const l=G.get();if(!r?.force&&!r?.skipStoreUpdates&&!l.enabled)return null;const S=n(),j=S.error,A=S.queryKey,F=S.status,I=et(x,L,P,e),k=z(I),T=r?.staleTime??M,D=F===Ee.Loading,R=!!r?.skipStoreUpdates,N="boolean"==typeof r?.updateQueryKey?r.updateQueryKey:o?O:!R,_=o||!R&&(N||A===k);if(V?.promise&&V.key===k&&D)return $&&console.log("[πŸ”„ Using Active Fetch πŸ”„] for params:",JSON.stringify(I)),V.promise;if(g&&!R&&!1!==r?.updateQueryKey&&X(),!r?.force){const e=S.lastFetchedAt,n=S.queryCache[k],o=n?.lastFetchedAt,i=n?.errorInfo,s=i&&i.retryCount>=q,c=(v?U===k&&e:o)||null;if(c&&!(Date.now()-c>=T)&&(!i||s||R))return _&&!R&&!B&&l.subscriptionCount>0&&0!==M&&M!==1/0&&m(I,r),N&&t(e=>e.queryKey!==k?{...e,queryKey:k}:e),$&&console.log("[πŸ’Ύ Returning Cached Data πŸ’Ύ] for params:",JSON.stringify(I)),n?.data??null}!R&&_&&(B&&(clearTimeout(B),B=null),!j&&D||t(e=>({...e,error:null,status:Ee.Loading})),V={key:k});const W=r?.cacheTime??(K?b(I):b),Q=async()=>{try{$&&(o||!e||rt(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(g&&!R&&_?(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 l;$&&console.log("[βœ… Fetch Successful βœ…] for params:",JSON.stringify(I));try{l=d?d(n,I):n}catch(e){throw new y(`[createQueryStore: ${i?.storageKey||k}]: transform failed`,e)}if(R)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:l,errorInfo:null,lastFetchedAt:c}}}:e;let t=e;const n=t.queryCache[k];return u({data:l,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:l,errorInfo:null,lastFetchedAt:c}}}),t}),l;if((u?f:t)(e=>{let t={...e,error:null,lastFetchedAt:c,queryKey:N?k:e.queryKey,status:Ee.Success};if(u||v){if(u){$&&console.log("[πŸ’Ύ Setting Data πŸ’Ύ] for params:",JSON.stringify(I));const e=t.queryCache[k];u({data:l,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:l,errorInfo:null,lastFetchedAt:c}};return v||b===1/0?t:ot(O,k,t)}),_&&(U=k,m(I,r)),a)try{a({data:l,fetch:w.fetch,params:I,set:f})}catch(e){p.error(new y(`[createQueryStore: ${i?.storageKey||k}]: onFetched callback failed`,e))}return l??null}catch(s){if(s===E)return $&&console.log("[❌ Fetch Aborted ❌] for params:",JSON.stringify(I)),null;const a=!o&&!0===r?.throwOnError,u=h(s);if(R||!_){if(p.error(new y(`[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<q){if(G.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}=G.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:N?k:e.queryKey,status:Ee.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:q}}},queryKey:N?k:e.queryKey,status:Ee.Error}));if(p.error(new y(`[createQueryStore: ${i?.storageKey||k}]: Failed to fetch data`,u)),a)throw u;return null}finally{!R&&_&&(V=null)}};return R||!_?Q():(V={key:k,promise:Q()}).promise},getCacheEntry(e){if(v)return null;const t=n(),r=e?"string"==typeof e?e:z(et(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===Ee.Idle;case"isLoading":return n().status===Ee.Loading;case"isSuccess":{const e=n(),t=e.queryCache[e.queryKey]?.lastFetchedAt;return"number"==typeof t||e.status===Ee.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===Ee.Loading}return{isError:i===Ee.Error,isIdle:i===Ee.Idle,isLoading:i===Ee.Loading,isInitialLoad:!o&&i===Ee.Loading,isSuccess:i===Ee.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 N)e();N=[],x=null,L=null,R=null,X(),B&&(clearTimeout(B),B=null),V=null,U=null,e&&t(e=>({...e,...H}))}},j=o.subscribe;return o.subscribe=(...e)=>{const t=W?()=>{}:G.subscribe(),n=1===e.length?j(e[0]):j(e[0],e[1],e[2]);return e=>{t(e),n()}},w},Z=i?.storageKey?oe(Y,Object.assign(Object.create(null),i,{partialize:ct(O,i.partialize)})):o&&!("storageKey"in o)?oe(Y,o):oe(Y),ee=Z.getState(),te=ee.error,ne=ee.enabled,re=ee.queryKey;if(re&&!te&&(U=re),W=!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(!We(t,e))continue;const s=t[e];if(it(s)){const t=s(Le,n);r[e]=t,i[e]=t.value}else st(s)&&(o[e]=s,i[e]=s)}let s,c=null,a=null;if(it(e)){const t=e(Le,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,Z);x={enabled:t,params:r},L={enabled:n,params:e}}"function"==typeof e.staleTime&&(R=e.staleTime(Le,Z),M=R.value);const ie=function(){let e,t=!1;return function(...n){e=n,t||(t=!0,queueMicrotask(()=>{t=!1,(e=>{ee.fetch(e??tt(x,L),{updateQueryKey:O})})(...e)}))}}();function se(){let e;if(!O){e=tt(x,L);const t=z(e);Z.setState(e=>({...e,queryKey:t}))}ie(e)}const ce=f||!A?se:I(se,"number"==typeof A?A:A.delay,"number"==typeof A?{leading:!1,maxWait:A,trailing:!0}:A);if(x?.enabled){const e=x.enabled,t=Pe.get(e);if(t){let n=e.value;ne!==n&&Z.setState(e=>({...e,enabled:n})),n&&G.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,Z.setState(e=>({...e,enabled:t})))});N.push(r)}}else ne!==H.enabled&&Z.setState(e=>({...e,enabled:H.enabled}));for(const e in x?.params){const t=x.params[e];if(!t)continue;const n=Pe.get(t);if($&&console.log("[πŸŒ€ Param Subscription πŸŒ€] Subscribed to param:",e),n){let r=t.value;const o=n(()=>{const n=t.value;$e(r,n)||($&&console.log("[πŸŒ€ Param Change πŸŒ€] -",e,"- [Old]:",`${r?.toString()},`,"[New]:",n?.toString()),r=n,ce())});N.push(o)}}if(R){const e=Pe.get(R);if(e){const t=R;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,Z.getState().fetch())});N.push(r)}}return W=!1,_&&queueMicrotask(ce),ae=Z,ue="_queryStore",Object.assign(ae,{[ue]:!0});var ae,ue}function He(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 Ge(e){return JSON.stringify(Object.keys(e).sort().map(t=>e[t]))}function Xe(e){return JSON.stringify(Ze(e))}function Ye(e){return JSON.parse(e)}function Ze(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?Ze(r):r,t},{})}function et(e,t,n,r){return r?rt(r,n)?r:{...tt(e,t),...r}:tt(e,t)}function tt(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 nt(){return Object.create(null)}function rt(e,t){if(!e)return!1;for(const n of t)if(!(n in e))return!1;return!0}function ot(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(!We(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 it(e){return"function"==typeof e}function st(e){return!it(e)}function ct(e,t){return n=>{const r={...n},o={};for(const e in r)We(r,e)&&e in Be&&(Be[e]&&(o[e]=r[e]),delete r[e]);return{...t?t(r):E(r),...ot(e,null,o)}}}function at(e,t,n){const r="function"==typeof t,o=r?t:void 0,i=r?n:t,s=new Set,c=Ce(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),W(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()},{_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 ut=Symbol(),lt=Object.freeze({debugMode:!1,enabled:!0,equalityFn:Object.is,fireImmediately:!1});function ft(e,t,n,r=lt){const o=function(){const e=c(ut);return e.current===ut&&(e.current=function(e,t,n){return{selector:e,react:t,isActive:!1,options:pt(n),resubscribe:()=>{},unsubscribe:()=>{}}}(t,n,r)),e}(),i=function(e){return"function"==typeof e?lt.enabled:e?.enabled??lt.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??lt)}(o,r),s(()=>{if(i)return yt(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 dt=Object.freeze({fireImmediately:!1,forceResubscribe:!1});function yt(e,t,n=dt){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=dt)=>yt(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 pt(e){return"function"==typeof e?{equalityFn:e}:e??lt}var ht=Symbol();function gt(e){const t=c(ht);return t.current===ht&&(t.current=e()),t.current}function bt(e,t){const n=function(e){const t=e.getState(),n=Object.create(null);if(l&&("object"!=typeof t||null===t))throw new Error("[createStoreActions]: State is not an object");if(G(e)){for(const r in t)St(t,r)&&(n[r]=mt(e,r));return n}for(const e in t)St(t,e)&&(n[e]=t[e]);return n}(e);return t?Object.assign(n,t):n}function mt(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 St(e,t){return"function"==typeof e[t]}export{Ee as QueryStatuses,_ as applyStateUpdate,w as configureStores,oe as createBaseStore,Ce as createDerivedStore,Qe as createQueryStore,bt as createStoreActions,at as createVirtualStore,De as deepEqual,He as defaultRetryDelay,W as destroyStore,J as destroyStores,Ge as getLegacyQueryKey,Xe as getQueryKey,V as getStoreName,Q as isDerivedStore,H as isPersistedStore,U as isQueryStore,G as isVirtualStore,Ye as parseQueryKey,M as replacer,z as reviver,Ke as shallowEqual,D as time,ft as useListen,gt as useStableValue};
1
+ import{Platform as e,unstable_batchedUpdates as t}from"react-native";import{subscribeWithSelector as n,persist as r}from"zustand/middleware";import{createStore as o}from"zustand/vanilla";import{useLayoutEffect as i,useRef as s,useSyncExternalStore as c,useDebugValue as a}from"react";var u=(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')}),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 n(){if(t)return t;try{const n=function(e){const{createMMKV:t,MMKV:n}=u("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 p={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)}},h=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 g(e){return e instanceof Error?e:new Error(String(e))}var b=Object.prototype.hasOwnProperty;function m(e,t){return b.call(e,t)}function S(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function v(e){return e}function w(){return{__proto__:null}}function O(){}Object.freeze(Object.create(null));var q,j,F,_=class{destroy(){}publish(){}},A=class{constructor(){this.sessionId="noop"}register(e){return new _}},C=!1;function k(e){var t;f&&function(){if(C)throw new Error("[stores]: configureStores() called after first store creation. Call it earlier before creating any stores.")}(),e.logger&&(t=e.logger,p=t),j??(j=function(e){return e?.queryStoreDefaults?{queryStoreDefaults:e.queryStoreDefaults}:void 0}(e)),F??(F=E(e))}function I(){return F??(F=E(void 0))}function T(){C=!0}function E(e){return{storage:e?.storage??y(e?.storageKeyPrefix??"stores:"),syncEngine:e?.syncEngine??(q||(q=new A),q)}}var M=Symbol("empty selection"),z=Object.is;function D(e,t,n,r,o=z){const i=s(null);let u=e,l=t,f=n;if(r){let s=i.current;null===s&&(s=function(e,t,n,r,o){const i={committedEqualityFn:o,committedSelector:r,committedSource:e,committedValue:M,equalityFn:o,getSelectedServerSnapshot:()=>function(e){return $(e,(e.getServerStoreSnapshot??e.getStoreSnapshot)())}(i),getSelectedSnapshot:()=>P(i),getServerStoreSnapshot:n,getStoreSnapshot:t,latestSnapshot:M,latestSource:M,selector:r,selectedSource:e,selectedSubscribe:()=>O,source:e,value:M,valueEqualityFn:o,valueSelector:r,valueSnapshot:M};return i.selectedSubscribe=K(i,e),i}(e,t,n,r,o),i.current=s),function(e,t,n,r,o,i){e.source===t&&e.getStoreSnapshot===n||(e.latestSnapshot=M),e.source=t,e.getStoreSnapshot=n,e.getServerStoreSnapshot=r,e.selector=o,e.equalityFn=i,e.selectedSource!==t&&(e.selectedSource=t,e.selectedSubscribe=K(e,t))}(s,e,t,n,r,o),u=s.selectedSubscribe,l=s.getSelectedSnapshot,f=void 0===n?void 0:s.getSelectedServerSnapshot}const d=c(u,l,f);return a(d),d}function K(e,t){return n=>(function(e){e.committedEqualityFn=e.equalityFn,e.committedSelector=e.selector,e.committedSource=e.source,e.committedValue=e.value===M?P(e):e.value}(e),t(r=>{e.latestSnapshot=r,e.latestSource=t;const o=e.committedValue;if(o===M||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===z?z(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===M)return;const a=e.selector(r),u=e.equalityFn(c,a);e.committedEqualityFn=e.equalityFn,e.committedSelector=e.selector,e.committedValue=R(e,r,u?c:a),u||n()}))}function P(e){const t=function(e){if(e.latestSource===e.source&&e.latestSnapshot!==M)return e.latestSnapshot;const t=e.getStoreSnapshot();return e.latestSnapshot=t,e.latestSource=e.source,t}(e);return $(e,t)}function $(e,t){const n=e.value;if(n!==M&&z(e.valueSnapshot,t)&&e.valueSelector===e.selector&&e.valueEqualityFn===e.equalityFn)return n;const r=e.selector(t);if(n!==M&&(e.equalityFn===z?z(n,r):e.equalityFn(n,r)))return R(e,t,n);const o=e.committedValue;return o!==M&&o!==n&&e.committedSource===e.source&&(e.equalityFn===z?z(o,r):e.equalityFn(o,r))?R(e,t,o):R(e,t,r)}function R(e,t,n){return e.value=n,e.valueEqualityFn=e.equalityFn,e.valueSelector=e.selector,e.valueSnapshot=t,n}function x(e,t){return(e,t)=>function(e,t){const n=o(e);return Object.assign(function(e,r){return D(n.subscribe,n.getState,n.getInitialState,e,r??t)},n)}(e,t)}function L(){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 N=Math.max,V=Math.min;function W(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=H();if(p(e))return g(e);c=setTimeout(h,function(e){const n=t-(e-(a??0));return f&&void 0!==i?V(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=H(),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=U(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?N(U(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(H())},b}function H(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}function U(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 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}function Q(e){if(!S(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 G={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},X=d?0:G.seconds(l?3:5);function Y(e){return t=>{if("string"!=typeof t)throw new h("[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 p.error(new h("[createBaseStore]: Failed to deserialize persisted store data",e)),e}}(t,e)}}function Z(e){return t=>function(e,t){try{return JSON.stringify(e,t?J:void 0)}catch(e){throw p.error(new h("[createBaseStore]: Failed to serialize store data",e)),e}}(t,e)}var ee=Object.freeze({shouldClear:!1});function te(e,t,n){if(!t||!e)return ee;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 ne(e,t){e&&t.shouldClear&&t.fieldSnapshot&&Object.keys(t.fieldSnapshot).length&&e.clearFieldTimestamps(t.fieldSnapshot)}function re(e){return!!e&&!!e.getIsApplyingRemote()}var oe=Object.freeze({QueryStore:Symbol("queryStore"),VirtualStore:Symbol("virtualStore")});function ie(e,...t){if(!0===t[1])return pe(t[0])?t[0](e):t[0];const n=pe(t[0])?t[0](e):t[0];return function(e){return Array.isArray(e)}(e)?n:{...e,...n}}function se(e,t){le(e)?e.getState().reset(t?.clearQueryCache):function(e){return"destroy"in e}(e)&&e.destroy()}function ce(e,t){for(const n of Array.isArray(e)?e:Object.values(e))n&&!t?.skipDestroy?.(n)&&se(n,t)}function ae(e){return de(e)?e.persist.getOptions().name??e.name:e.name}function ue(e){return"getSnapshot"in e}function le(e){return oe.QueryStore in e}function fe(e){return"flushUpdates"in e}function de(e){return!(!("persist"in e)||!e.persist)&&"string"==typeof e.persist.getOptions().name}function ye(e){return oe.VirtualStore in e}function pe(e){return"function"==typeof e}var[he,ge]=[0,1];function be(e,t,n){if(!e)return!0;const r=e[he],o=e[ge];return!(t<r)&&(t>r||n>o)}function me(e,t){return Object.prototype.hasOwnProperty.call(t,e)}function Se(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 ve(e){if(null===e)return"null";const t=typeof e;return"object"===t?Object.prototype.toString.call(e):t}function we(e,t){T();const o=void 0!==t&&"string"==typeof t.storageKey,i=o?t.storageKey:void 0,s=t?.sync?function(e,t){if(!e)return null;if(!0===e){if(!t)throw new h("[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 h("[createBaseStore]: sync requires either a key in the config or a storageKey to inherit from");return{...n,key:r}}(t.sync,i):void 0,c=o?t.storage??I().storage:void 0,a=s?function(e,t,n){const r=t.engine??I().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;function w(e,t){if(o?.setSessionId&&o?.setTimestamp&&r.sessionId&&(o.setSessionId(r.sessionId),o.setTimestamp(e),o.mergeFieldTimestamps&&t.length>0)){const n={__proto__:null};for(const r of t)n[String(r)]=e;o.mergeFieldTimestamps(n)}}function O(e,t){if(d||!b)return t?i(e,t):i(e);const n=function(){const e=Date.now(),t=e>g?e:g+1;return g=t,t}();let o=[],s={__proto__:null};const c=r=>{const i=ie(r,e,t);for(const e of m)Object.is(i[e],r[e])||(o.push(e),s[e]=i[e]);return o.length&&w(n,o),i},u=t?i(c,!0):i(c);function p(){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(h=u)&&"object"==typeof h&&"then"in h&&"function"==typeof h.then?u.finally(p):(p(),u);var h}const q=c.setState;c.setState=O;const j=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}(j),!m.length)return j;async function F(e){g=Math.max(g,e.timestamp);const n={__proto__:null},r=s(),i=e.timestamp;let c;if(e.replace)for(const t of m)me(t,e.values)||be(a.get(t),i,e.sessionId)&&(c??(c=[])).push(t);for(const o of m){if(!me(o,e.values))continue;if(!b?.has(o))continue;if(!be(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(!Se(u,l))return void p.error(new h(`[sync] Merge function for field "${String(o)}" returned ${ve(u)} but expected ${ve(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??q)(e,!0)}else await(o.setWithoutPersist??q)(n)}finally{d=!1,o&&o.setIsApplyingRemote(!1)}}}function _(e){n?S=S.then(()=>F(e)):F(e)}if(b=new Set(m),f=r.register({apply:e=>{v?_(e):u.push(e)},fields:m,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]);w(e.timestamp,e.keys),f.publish?.({replace:e.replace,sessionId:t,timestamp:e.timestamp,values:e.values})}l.length=0}}()}function C(){v=!0,function(){if(!u.length)return;const e=u.slice();u.length=0;for(const t of e)_(t)}()}return n?(o.onHydrationComplete=A,o.onHydrationFlushEnd=C):f.onHydrated?(f.onHydrated(A),C()):(A(),C()),j},syncContext:o}}(e,s,c?.async??!1):void 0,u=a?.stateCreator??e;if(!o)return x()(n(u),Object.is);const l=c?.async?function(e){let t,n,r,o=!1;return{hydrationPromise:()=>o?t?.promise??n??(n=Promise.resolve()):(t||(t=L()),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=L()),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)}}}}(u):null,f=function(e,t,n){const r=t??e.storage??I().storage,o=(e.sync?void 0:e.persistThrottleMs??X)||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??Q,c=t.deserializer??e.deserializer??Y(o),a=t.serializer??e.serializer??Z(o);async function u(t,n){try{if(re(r))return;n.state,n.state=s(n.state);const o=te(r,i,n),c=a(n);try{await e.set(t,c),ne(r,o)}catch(e){p.error(new h("[createBaseStore]: Failed to persist store data",e))}}catch(e){p.error(new h("[createBaseStore]: Failed to serialize persisted store data",e))}}const l=void 0!==n?W(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){p.error(new h("[createBaseStore]: Failed to delete persisted store data",e))}}}}(r,e,o,n):function(e,t,n,r){const o=!(t.deserializer||t.serializer||e.deserializer||e.serializer),i="object"==typeof t.sync&&!0===(t.sync.injectStorageMetadata??t.sync.engine?.injectStorageMetadata),s=t.partialize??Q,c=t.deserializer??e.deserializer??Y(o),a=t.serializer??e.serializer??Z(o);function u(t,n){try{if(re(r))return;n.state,n.state=s(n.state);const o=te(r,i,n),c=a(n);try{e.set(t,c),ne(r,o)}catch(e){p.error(new h("[createBaseStore]: Failed to persist store data",e))}}catch(e){p.error(new h("[createBaseStore]: Failed to persist store data",e))}}const l=void 0!==n?W(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){p.error(new h("[createBaseStore]: Failed to delete persisted store data",e))}}}}(r,e,o,n);return{persistStorage:s,version:i}}(t,c,a?.syncContext),d=l?l.wrapOnRehydrateStorage(t.onRehydrateStorage,a?.syncContext):t.onRehydrateStorage,y=l?(e,t,n)=>(a&&(a.syncContext.setWithoutPersist=n.setState),l.stateCreator(e,t,n)):u,b=x()(n(r(y,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,f,d))),Object.is);return l?Object.assign(b,{persist:Object.assign(b.persist,{hydrationPromise:l.hydrationPromise})}):b}var Oe=!1,qe=!1,je=new Map,Fe=new Map,_e=new Map,Ae=null,Ce=1/0;function ke(){return Oe}function Ie(){return Ae}function Te(){Oe||(Oe=!0,qe||(qe=!0,queueMicrotask(()=>{qe=!1,t(()=>{for(;Fe.size>0;){const e=Ce,t=_e.get(e);if(t){_e.delete(e);for(const e of t)Fe.delete(e);Ae=e;for(const e of t)e();if(Ae=null,_e.size>0){Ce=1/0;for(const e of _e.keys())e<Ce&&(Ce=e)}else Ce=1/0}else{Ce=1/0;for(const e of _e.keys())e<Ce&&(Ce=e)}}for(;je.size>0;){const e=Array.from(je.values());je.clear();for(const t of e)t()}}),Oe=!1,Ae=null,Fe.clear(),_e.clear(),Ce=1/0})))}function Ee(e,t){Oe&&je.set(e,t)}var Me=Symbol("stores.deriveProxy.unwrap");function ze(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?De(e,r,t,n,new WeakSet,new WeakMap):(n(t,r,!0),e)}(ue(e)?e.getSnapshot():e.getState(),e,n);return t.set(e,o),o}function De(e,t,n,r,o,i){return new Proxy(e,{get(s,c,a){if(c===Me)return r(n,t,!0),s;if(o.has(s))return Reflect.get(s,c,a);if("__proto__"===c||"symbol"==typeof c)return c===Symbol.iterator&&(r(n,t,!0),o.add(s)),Reflect.get(s,c,a);const u=Reflect.get(s,c,s),l=String(c),f=t.concat(l);if("function"==typeof u)return Object.prototype.hasOwnProperty.call(s,c)?function(...e){return r(n,f,!0,{method:l,args:e.length?e:void 0}),Reflect.apply(u,s,e)}:(r(n,t,!0),u.bind(e));const d=!!u&&"object"==typeof u;return r(n,f,!d),d?(i.has(u)||i.set(u,De(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 Ke(e,t){if(!e||"object"!=typeof e)return e;const n=function(e){const t=Reflect.get(e,Me);return t&&"object"==typeof t?t:void 0}(e);return n||(Array.isArray(e)?function(e,t){const n=$e(e,t);if(n)for(let t=0;t<e.length;t++)Pe(e,String(t),n)}(e,t):S(e)&&function(e,t){const n=$e(e,t);if(n)for(const t of Reflect.ownKeys(e))Pe(e,t,n)}(e,t),e)}function Pe(e,t,n){const r=Reflect.getOwnPropertyDescriptor(e,t);if(!r||!("value"in r))return;const o=Ke(r.value,n);o!==r.value&&(r.value=o,Reflect.defineProperty(e,t,r))}function $e(e,t){const n=t??new WeakSet;return n.has(e)?null:(n.add(e),n)}function Re(e,t,n="s"){return 1===t?e:`${e}${n}`}var xe=Object.freeze([]);function Le(){const e=new Map;return{buildProxySubscriptions(t,n,r,o){const i=new Set;for(const t of e)Ve(t[1],t[0],[],0,i,r);!1!==o?.(i)&&function(e,t,n){for(const n of e){const e=n.invocation?He(n.path,n.invocation):We(n.path);t(n.store,e,n.path)}n&&function(e){const t=e.size;console.log(`[πŸ“‘ ${t} ${Re("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}_${Re("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)),Ne(i,n,0,r,o)}}}function Ne(e,t,n,r,o){if(n===t.length)return r&&(e.isLeaf=!0),void(o&&(e.invocation=o));e.children||(e.children={__proto__:null});const i=t[n];let s=e.children?.[i];s||(s={__proto__:null},e.children[i]=s),Ne(s,t,n+1,r,o)}function Ve(e,t,n,r,o,i=2){const s=e.children;if(!s)return void o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1});const c=Object.keys(s),a=c.length;if(0!==a)if(e.isLeaf||r>=i&&a>1){o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1});for(const e of c){const c=s[e];c.invocation&&Ve(c,t,[...n,e],r+1,o,i)}}else if(r<i&&a>1&&!e.isLeaf)for(const e of c)Ve(s[e],t,[...n,e],r+1,o,i);else{if(1===a){const e=c[0];return void Ve(s[e],t,[...n,e],r+1,o,i)}o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1})}else o.add({store:t,path:n,invocation:e.invocation,isLeaf:e.isLeaf??!1})}function We(e){return t=>Ue(t,e)}function He(e,t){const n=e.slice(0,-1);return e=>{const r=Ue(e,n),o=r&&"object"==typeof r?Reflect.get(r,t.method):void 0;return"function"==typeof o?Reflect.apply(o,r,t.args??xe):void 0}}function Ue(e,t){let n=e;for(const e of t){if(!n||"object"!=typeof n)return n;n=Reflect.get(n,e)}return n}function Je(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(Ge+=1),a=new Set;var u;i&&a.add(Xe);const l=new Set;let d,y,p=Be,h=!1,g=!0,b=!0,m=0,S=!1,w=null,O=Be;function q(e,t,n){return b&&a.size?t?(l.add(e.subscribe(t,z,n?{equalityFn:n,isDerivedStore:!0}:Qe)),t(ue(e)?e.getSnapshot():e.getState())):(d||(d=new WeakMap),y||(y=Le()),ze(e,d,y.trackPath)):(t??v)(ue(e)?e.getSnapshot():e.getState())}function j(e){for(const t of l)t(e);l.clear()}let F=!0;function _(){if(!g&&Ye(p))return p;g=!1,b&&j(!0);const t=p,n=Ye(t);p=function(t){F=!0;const n=p,i=e(t),s=y?Ke(i):i;return Ye(n)&&o(n,s)?(r&&console.log("[πŸ₯· Derive Complete πŸ₯·]: No change detected"),F=!1,n):s}(q);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} ${Re("Selector Subscription",e)} 🎯]`)}return y&&b&&(y.buildProxySubscriptions((e,t)=>{l.add(e.subscribe(t,z,Qe))},i),d=void 0,y.reset(),s&&(y=void 0)),F&&n&&function(e,t){const n=function(){const e=a.has(Xe)?a.size-1:a.size;return m>0&&m<e}(),o=!m||n,i=n||null!==Ie()||ke()&&o;n&&Te(),r&&console.log(`[πŸ“» Derive Complete πŸ“»]: Notifying ${a.size} ${Re("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,Ye(O)||(O=t),Ee(c,C)):A(e,t)}(p,t),s&&(b=!1),p}function A(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&&_(),!Ye(p))return;const e=Ye(O)?O:p;A(p,e),S=!1,O=Be}const k=n?W(T,"number"==typeof n?n:n.delay,"number"==typeof n?{leading:!1,maxWait:n,trailing:!0}:n):void 0,I=k??(()=>{h||(h=!0,queueMicrotask(T))});function T(){h=!1,a.size?g&&_():K()}function E(e){e||k&&g?queueMicrotask(()=>{a.size||K()}):K()}function M(){T(),w=null}function z(){if(!g){if(g=!0,!k){if(m){Te();const e=Ie(),t=null===e?0:e+1;if(null!==w&&t<=w)return;return w=t,void function(e,t){if(!Oe)return;const n=t<0?0:0|t,r=Fe.get(e);if(void 0===r){Fe.set(e,n);let t=_e.get(n);return t||(t=new Set,_e.set(n,t)),t.add(e),void(n<Ce&&(Ce=n))}if(n>r){const t=_e.get(r);if(t&&(t.delete(e),0===t.size&&(_e.delete(r),r===Ce))){Ce=1/0;for(const e of _e.keys())e<Ce&&(Ce=e)}Fe.set(e,n);let o=_e.get(n);o||(o=new Set,_e.set(n,o)),o.add(e),n<Ce&&(Ce=n)}}(M,t)}if(ke())return void(S||(S=!0,Ye(p)&&(O=p),Ee(c,C)))}w=null,I()}}function D(){return g||!Ye(p)?a.size>0?_():e(q):p}function K(e=!0){i&&e||(k?.cancel(),j(),a.clear(),m=0,y=void 0,d=void 0,b=!0,h=!1,g=!0,p=Be,S=!1,O=Be,w=null)}return{destroy:()=>K(!1),flushUpdates:function(){a.size&&(k?k.flush():g&&_())},getSnapshot:function(){if(!Ye(p)){a.add(Xe);const e=_();return a.delete(Xe),e}return h&&T(),p},getState:D,subscribe:function(...e){if(1===e.length){const t=e[0];return a.add(t),1!==a.size||Ye(p)||D(),()=>{a.delete(t),a.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 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||E(i)}},getInitialState:()=>{throw new Error("[createDerivedStore]: getInitialState() is not available on derived stores.")},setState:()=>{throw new Error("[createDerivedStore]: setState() is not available on derived stores.")}}}(e,t),Object.assign(function(e=v,t){return D(n.subscribe,n.getSnapshot,void 0,e,t)},n);var n}var Be=Symbol(),Qe=Object.freeze({equalityFn:Object.is,isDerivedStore:!0}),Ge=0;function Xe(){}function Ye(e){return e!==Be}var Ze,et=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=G.seconds(5))}init({onSubscribe:e,onLastUnsubscribe:t}){this.onSubscribe=e,this.onLastUnsubscribe=t}get(){return{enabled:this.enabled,lastSubscriptionTime:this.lastSubscriptionTime,subscriptionCount:this.count}}setEnabled(e){this.enabled=e}subscribe(){const e=0===this.count,t=null!==this.fetchThrottleMs&&null!==this.lastSubscriptionTime&&!e&&Date.now()-this.lastSubscriptionTime<=this.fetchThrottleMs;return this.onSubscribe?.(this.enabled,e,t),this.count+=1,this.lastSubscriptionTime=Date.now(),e=>{const t=1===this.count;this.count=Math.max(this.count-1,0),t&&(this.onLastUnsubscribe?.(e),this.lastSubscriptionTime=null)}}};function tt(e,t){const n=t?.baseDelay??G.seconds(5),r=t?.maxDelay??G.minutes(5);return Math.min(n*Math.pow(2,e),r)}var nt={Error:"error",Idle:"idle",Loading:"loading",Success:"success"};function rt(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)||!rt(e[r],t[r]))return!1;return!0}function ot(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 it(e,t){const n=Object.prototype.hasOwnProperty;function r(e,t){for(const n of e.keys())if(it(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--&&it(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(!it(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)||!it(e[r],t[r]))return!1}return Object.keys(t).length===i}}return e!=e&&t!=t}var st=new WeakMap,ct=new WeakMap;function at(e,t=ut,n=it){return function(e,t,n){let r=ct.get(e);r||(r=new Map,ct.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]=ft(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 st.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(()=>{}),st.set(f,s),o.set(n,f),f}(e,t,n)}var ut=e=>e,lt=(e,t,n)=>{if(!t.length)return n;const[r,...o]=t,i=e[r],s=lt(i,o,n);if(it(i,s))return e;const c=Array.isArray(e)?e.slice():{...e};return c[r]=s,c},ft=(e,t,n)=>{const r=new Set,o=ue(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!==ut)throw new Error("Cannot set a value with a selector");e.setState(e=>lt(e,n,r),!0)}]};function dt(e){return st.get(e)}var yt={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},pt=Object.freeze({force:!0}),ht=Object.freeze({once:!0}),gt=Object.freeze({updateQueryKey:!0});function bt(e,t,n){T();const r="function"==typeof t?t:Ct,o="object"==typeof t?t:n,i=o&&"storageKey"in o?o:void 0,s=Ze??(Ze=function(){const e={abortInterruptedFetches:!0,cacheTime:G.days(7),debugMode:!1,disableAutoRefetching:!1,keepPreviousData:!1,maxRetries:5,minStaleTime:!1,paramChangeThrottle:!1,retryDelay:tt,staleTime:G.minutes(2),suppressStaleTimeWarning:!1},t=function(){if(j)return j}()?.queryStoreDefaults;return t?{...e,...t}:e}()),c=s.minStaleTime,{fetcher:a,onError:u,onFetched:l,setData:y,transform:b,abortInterruptedFetches:S=s.abortInterruptedFetches,cacheTime:v=s.cacheTime,debugMode:w=s.debugMode,disableAutoRefetching:O=s.disableAutoRefetching,disableCache:q=!1,enabled:F=!0,keepPreviousData:_=s.keepPreviousData,maxRetries:A=s.maxRetries,paramChangeThrottle:C=s.paramChangeThrottle,params:k,retryDelay:I=s.retryDelay,staleTime:E=s.staleTime,suppressStaleTimeWarning:M=s.suppressStaleTimeWarning}=e;let z="function"==typeof E?s.staleTime:E;f&&!1!==c&&!O&&!M&&z<c&&console.warn(`[createQueryStore${i?.storageKey?`: ${i.storageKey}`:""}] ❌ Stale times under ${c/1e3} seconds are not recommended. Provided staleTime: ${z/1e3} seconds`);const D=new Error("[createQueryStore: AbortError] Fetch interrupted"),K="function"==typeof v,P=f&&w,$=e.params?Object.keys(e.params):[];let R=null,x=null,L=null,N=[],V=!1,H=!1,U=null,J=null,B=null,Q=null,X=null;const Y={enabled:"function"!=typeof F&&F,error:null,lastFetchedAt:null,queryCache:{},queryKey:"",status:nt.Idle},Z=new et({disableAutoRefetching:O,initialEnabled:Y.enabled});function ee(){U&&(J=null,U.abort(),U=null)}function te(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&&X!==t&&(X=t,Z.setEnabled(t),t?queueMicrotask(()=>d.fetch(void 0,gt)):(B||S)&&(S&&ee(),B&&(clearTimeout(B),B=null)))}(r.enabled,i)),o});return n?.(),r}return s(e)}function f(e,t){if(O||t?.skipStoreUpdates)return;if(z<=0||z===1/0)return;B&&(clearTimeout(B),B=null);const r=mt(e),o=n(),i=(q?Q===r&&o.lastFetchedAt:o.queryCache[r]?.lastFetchedAt)||null,s=i?z-(Date.now()-i):z;B=setTimeout(()=>{const t=Z.get();t.enabled&&t.subscriptionCount>0&&d.fetch(e,pt,!0)},s)}o.setState=c,Z.init({onSubscribe:(r,o,i)=>{if(x||R||!k&&"function"!=typeof e.enabled&&"function"!=typeof e.staleTime){if(r)if(o){const e=Ot(R,x),r=mt(e),o=n();o.queryKey!==r&&t({queryKey:r}),o.isStale()?d.fetch(e,void 0,!0):f(e,void 0)}else O&&!i&&d.fetch(void 0,void 0,!0)}else V=!0},onLastUnsubscribe:e=>{B&&(clearTimeout(B),B=null),S&&!e&&ee()}});const d={...r(c,n,o),...Y,async fetch(e,r,o=!1){const s=Z.get();if(!r?.force&&!r?.skipStoreUpdates&&!s.enabled)return null;const m=n(),w=m.error,O=m.queryKey,j=m.status===nt.Loading,F=wt(R,x,$,e),C=mt(F);if(j&&J?.promise&&J.key===C)return P&&console.log("[πŸ”„ Using Active Fetch πŸ”„] for params:",JSON.stringify(F)),J.promise;const k=r?.staleTime??z,T=!!r?.skipStoreUpdates,E="boolean"==typeof r?.updateQueryKey?r.updateQueryKey:!!o&&_,M=(o||O===C||E)&&!T;if(S&&M&&ee(),!r?.force){const e=m.lastFetchedAt,n=m.queryCache[C],o=n?.lastFetchedAt,i=n?.errorInfo,c=i&&i.retryCount>=A,a=(q?Q===C&&e:o)||null;if(a&&!(Date.now()-a>=k)&&(!i||c||T))return M&&!B&&s.subscriptionCount>0&&0!==z&&z!==1/0&&f(F,r),E&&t(e=>e.queryKey!==C?{queryKey:C}:e),P&&console.log("[πŸ’Ύ Returning Cached Data πŸ’Ύ] for params:",JSON.stringify(F)),n?.data??null}M&&(B&&(clearTimeout(B),B=null),!w&&j||t({error:null,status:nt.Loading}),J={key:C});const L=r?.cacheTime??(K?v(F):v);async function N(){const s=i?.storageKey||C;try{P&&(o||!e||qt(e,$)?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(S&&M?async function(e){const t=new AbortController;U=t;try{return await new Promise((n,r)=>{t.signal.addEventListener("abort",()=>r(D),ht),Promise.resolve(a(e,t)).then(n,r)})}finally{U===t&&(U=null)}}(F):a(F,null)),i=Date.now();let u;P&&console.log("[βœ… Fetch Successful βœ…] for params:",JSON.stringify(F));try{u=function(e,t,n){return n?n(e,t):e}(n,F,b)}catch(e){throw kt(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 q?e:{queryCache:{...e.queryCache,[C]:{cacheTime:L,data:u,errorInfo:null,lastFetchedAt:i}}};let t=e;const n=t.queryCache[C];try{y({data:u,params:F,queryKey:C,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}})}catch(e){throw kt(s,"setData",e)}return!q&&Object.is(n,t.queryCache[C])&&(t={...t,queryCache:{...t.queryCache,[C]:{cacheTime:L,data:null,errorInfo:null,lastFetchedAt:i}}}),t}),u;if((y?c:t)(e=>{let t={...e,error:null,lastFetchedAt:i,queryKey:E?C:e.queryKey,status:nt.Success};if(y||q){if(y){P&&console.log("[πŸ’Ύ Setting Data πŸ’Ύ] for params:",JSON.stringify(F));const e=t.queryCache[C];try{y({data:u,params:F,queryKey:C,set:e=>{t="function"==typeof e?{...t,...e(t)}:{...t,...e}}})}catch(e){throw kt(s,"setData",e)}!q&&Object.is(e,t.queryCache[C])&&(t.queryCache={...t.queryCache,[C]:{cacheTime:L,data:null,errorInfo:null,lastFetchedAt:i}})}}else P&&console.log("[πŸ’Ύ Setting Cache πŸ’Ύ] for params:",JSON.stringify(F),"| Has previous data?:",!!t.queryCache[C]?.data),t.queryCache={...t.queryCache,[C]:{cacheTime:L,data:u,errorInfo:null,lastFetchedAt:i}};return q||v===1/0?t:At(_,C,t)}),M&&(Q=C,f(F,r)),l)try{l({data:u,fetch:d.fetch,params:F,set:c})}catch(e){p.error(kt(s,"onFetched callback",e))}return u??null}catch(i){if(i===D)return P&&console.log("[❌ Fetch Aborted ❌] for params:",JSON.stringify(F)),null;const c=!o&&!0===r?.throwOnError,a=g(i);if(a instanceof h&&p.error(a),!M){if(c)throw a;return null}const l=q?void 0:n().queryCache[C],f=l?.errorInfo?.retryCount??0,y=f+1;try{u?.(a,f)}catch(e){p.error(kt(s,"onError callback",e))}if(f<A){if(Z.get().subscriptionCount>0){const t="function"==typeof I?I(y,a):I;t!==1/0&&(B&&clearTimeout(B),B=setTimeout(()=>{const t=Z.get();t.enabled&&t.subscriptionCount>0&&d.fetch(e,pt,!0)},t))}t(e=>({error:a,queryCache:{...e.queryCache,[C]:{cacheTime:l?.cacheTime??L,data:l?.data??null,lastFetchedAt:l?.lastFetchedAt??null,errorInfo:{error:a,lastFailedAt:Date.now(),retryCount:y}}},queryKey:E?C:e.queryKey,status:nt.Error}))}else t(e=>({error:a,queryCache:{...e.queryCache,[C]:{cacheTime:l?.cacheTime??L,data:l?.data??null,lastFetchedAt:l?.lastFetchedAt??null,errorInfo:{error:a,lastFailedAt:Date.now(),retryCount:A}}},queryKey:E?C:e.queryKey,status:nt.Error}));if(c)throw a;return null}finally{M&&(J=null)}}return M?(J={key:C,promise:N()}).promise:N()},getCacheEntry(e){if(q)return null;const t=n(),r=e?"string"==typeof e?e:mt(wt(R,x,$,e)):t.queryKey;return t.queryCache[r]??null},getData(e){if(q)return null;const t=n().getCacheEntry(e);return t&&null!==t.data?_?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===nt.Idle;case"isLoading":return r===nt.Loading;case"isError":case"isInitialLoad":case"isSuccess":case void 0:{const n=t.queryKey,o=t.queryCache[n],i=q?r===nt.Error:"number"==typeof o?.errorInfo?.lastFailedAt;if("isError"===e)return i;const s=null!==((q?Q===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===nt.Idle,isLoading:r===nt.Loading,isInitialLoad:c,isSuccess:a}}}},isDataExpired(e){const t=n(),r=t.queryCache[t.queryKey],o=t.queryKey,i=t.lastFetchedAt,s=(q?Q===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=(q?Q===r&&t.lastFetchedAt:t.queryCache[r]?.lastFetchedAt)||null;if(!o)return!0;const i=e??z;return Date.now()-o>=i},reset(e=!1){for(const e of N)e();N=[],R=null,x=null,L=null,ee(),B&&(clearTimeout(B),B=null),J=null,Q=null,e&&t(Y)}},m=o.subscribe;return o.subscribe=(...e)=>{const t=H?()=>{}:Z.subscribe(),n=1===e.length?m(e[0]):m(e[0],e[1],e[2]);return e=>{t(e),n()}},d}const ne=i?.storageKey?we(te,(re=i,void 0===(ie={partialize:_t(_,i.partialize)})?Object.assign({__proto__:null},re):Object.assign({__proto__:null},re,ie))):o&&!("storageKey"in o)?we(te,o):we(te);var re,ie;const se=ne.getState(),ce=se.error,ae=se.enabled,ue=se.queryKey,le=se.fetch;let fe;if(ue&&!ce&&(Q=ue),H=!0,k||"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(!m(t,e))continue;const s=t[e];if(jt(s)){const t=s(at,n);r[e]=t,i[e]=t.value}else Ft(s)&&(o[e]=s,i[e]=s)}let s,c=null,a=null;if(jt(e)){const t=e(at,n);s=t.value,c=t}else s=e,a=e;return{attachVals:r,directValues:o,enabledAttachVal:c,enabledDirectValue:a,resolvedEnabled:s,resolvedParams:i}}(F,k,ne);R={enabled:t,params:r},x={enabled:n,params:e}}"function"==typeof e.staleTime&&(L=e.staleTime(at,ne),z=L.value);const de=Object.freeze({updateQueryKey:_}),ye=function(){let e,t=!1;return function(...n){e=n,t||(t=!0,queueMicrotask(()=>{t=!1,(e=>{le(e??Ot(R,x),de)})(...e)}))}}();function pe(){let e;if(!_){e=Ot(R,x);const t=mt(e);ne.setState({queryKey:t})}ye(e)}const he=d||!C?pe:W(pe,"number"==typeof C?C:C.delay,"number"==typeof C?{leading:!1,maxWait:C,trailing:!0}:C);for(const e in R?.params){const t=R.params[e];if(!t)continue;const n=dt(t);if(P&&console.log("[πŸŒ€ Param Subscription πŸŒ€] Subscribed to param:",e),n){let r=t.value;const o=n(()=>{const n=t.value;it(r,n)||(P&&console.log("[πŸŒ€ Param Change πŸŒ€] -",e,"- [Old]:",`${r?.toString()},`,"[New]:",n?.toString()),r=n,he())});N.push(o)}}if(L){const e=dt(L);if(e){const t=L;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,z=e,le())});N.push(r)}}if(R?.enabled){const e=R.enabled,t=dt(e);if(t){let n=e.value;ae!==n&&((fe??(fe={})).enabled=n),n&&Z.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,ne.setState({enabled:t}))});N.push(r)}}else ae!==Y.enabled&&((fe??(fe={})).enabled=Y.enabled);const ge=mt(Ot(R,x));return ge!==ue&&((fe??(fe={})).queryKey=ge),fe&&ne.setState(fe),H=!1,V&&queueMicrotask(he),be=ne,me=oe.QueryStore,Object.assign(be,{[me]:!0});var be,me}function mt(e){return JSON.stringify(vt(e))}function St(e){return JSON.parse(e)}function vt(e){return"object"!=typeof e||null===e?e:Object.keys(e).sort().reduce((t,n)=>{const r=e[n];return t[n]=S(r)?vt(r):r,t},{__proto__:null})}function wt(e,t,n,r){return r?qt(r,n)?r:{...Ot(e,t),...r}:Ot(e,t)}function Ot(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 qt(e,t){if(!e)return!1;for(const n of t)if(!(n in e))return!1;return!0}function jt(e){return"function"==typeof e}function Ft(e){return!jt(e)}function _t(e,t){return n=>{const r={...n},o={__proto__:null};for(const e in r)m(r,e)&&e in yt&&(yt[e]&&(o[e]=r[e]),delete r[e]);return{...t?t(r):Q(r),...At(e,null,o)}}}function At(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(!m(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 Ct(){return Object.create(null)}function kt(e,t,n){return new h(`[createQueryStore: ${e}]: ${t} failed`,n)}function It(e,t,n){const r="function"==typeof t,o=r?t:void 0,i=r?n:t,s=new Set,c=Je(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),se(e)),n},keepAlive:!0,lockDependencies:i?.lockDependencies??!0});return Object.assign(function(e,t){const n=c();return e?n(e,t):n()},{[oe.VirtualStore]:!0,destroy:c.destroy,getInitialState:()=>c.getState().getInitialState(),getState:()=>c.getState().getState(),persist:(a=c.getState,{clearStorage:()=>a().persist?.clearStorage(),getOptions:()=>a().persist?.getOptions()??{},hasHydrated:()=>a().persist?.hasHydrated()??!0,hydrationPromise:()=>a().persist?.hydrationPromise?.()??Promise.resolve(),onFinishHydration:e=>a().persist?.onFinishHydration(e)??O,onHydrate:e=>a().persist?.onHydrate(e)??O,rehydrate:()=>a().persist?.rehydrate(),setOptions:e=>a().persist?.setOptions(e)}),setState:Tt(c.getState),subscribe:function(...e){const t={args:e,unsubscribe:1===e.length?c.getState().subscribe(e[0]):c.getState().subscribe(e[0],e[1],e[2])};return s.add(t),()=>{t.unsubscribe(),s.delete(t)}}},o?.(c.getState));var a}function Tt(e){return function(t,n){return n?e().setState(t,n):e().setState(t)}}var Et=Symbol(),Mt=Object.freeze({debugMode:!1,enabled:!0,equalityFn:Object.is,fireImmediately:!1});function zt(e,t,n,r=Mt){const o=function(){const e=s(Et);return e.current===Et&&(e.current=function(e,t,n){return{selector:e,react:t,isActive:!1,options:Pt(n),resubscribe:()=>{},unsubscribe:()=>{}}}(t,n,r)),e}(),c=function(e){return"function"==typeof e?Mt.enabled:e?.enabled??Mt.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??Mt)}(o,r),i(()=>{if(c)return Kt(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)},[c,e]),o}var Dt=Object.freeze({fireImmediately:!1,forceResubscribe:!1});function Kt(e,t,n=Dt){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=Dt)=>Kt(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 Pt(e){return"function"==typeof e?{equalityFn:e}:e??Mt}var $t=Symbol();function Rt(e){const t=s($t);return t.current===$t&&(t.current=e()),t.current}function xt(e,t){const n=function(e){const t=e.getState(),n={__proto__:null},r=n;if(f&&("object"!=typeof t||null===t))throw new Error("[createStoreActions]: State is not an object");if(ye(e))for(const n in t)Nt(t,n)&&(r[n]=Lt(e,n));else for(const e in t)Nt(t,e)&&(r[e]=t[e]);return n}(e);return t?Object.assign(n,t):n}function Lt(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 Nt(e,t){return"function"==typeof e[t]}export{nt as QueryStatuses,h as StoresError,ie as applyStateUpdate,k as configureStores,we as createBaseStore,Je as createDerivedStore,bt as createQueryStore,xt as createStoreActions,It as createVirtualStore,rt as deepEqual,tt as defaultRetryDelay,se as destroyStore,ce as destroyStores,mt as getQueryKey,ae as getStoreName,ue as hasGetSnapshot,v as identity,fe as isDerivedStore,de as isPersistedStore,le as isQueryStore,ye as isVirtualStore,w as nullObject,St as parseQueryKey,J as replacer,B as reviver,ot as shallowEqual,G as time,zt as useListen,Rt 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
- private generateSessionId;
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,8 @@
1
+ import { QueryStoreDefaults } from '../config';
2
+ import { Prettify } from '../types/objects';
3
+ export declare function getQueryStoreDefaults(): Prettify<Required<QueryStoreDefaults>>;
4
+ /**
5
+ * Exponential backoff: starts at `baseDelay` (5s), doubles each retry, capped at `maxDelay` (5m).
6
+ */
7
+ export declare function defaultRetryDelay(retryCount: number): number;
8
+ //# sourceMappingURL=queryStoreDefaults.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { BaseStore } from '../types';
2
+ type NestedAttachValue<T> = T extends object ? {
3
+ readonly [K in keyof T]: AttachValue<T[K]>;
4
+ } : Record<string, never>;
5
+ export type AttachValue<T> = {
6
+ readonly value: T;
7
+ } & NestedAttachValue<T>;
8
+ export type SignalFunction = {
9
+ <T>(store: BaseStore<T>): AttachValue<T>;
10
+ <T, S>(store: BaseStore<T>, selector: (state: T) => S, equalityFn?: (a: S, b: S) => boolean): AttachValue<S>;
11
+ };
12
+ export {};
13
+ //# sourceMappingURL=signalTypes.d.ts.map
@@ -1,4 +1,4 @@
1
- import { AttachValue, SignalFunction } from '../signal';
1
+ import { AttachValue, SignalFunction } from './signalTypes';
2
2
  import { BaseStore, DebounceOptions, SetPartial, Store } from '../types';
3
3
  /**
4
4
  * Helper type that represents the store returned by `createQueryStore()`.
@@ -7,7 +7,19 @@ export type QueryStore<TData, TParams extends Record<string, unknown>, CustomSta
7
7
  /**
8
8
  * Configuration options for creating a query-enabled store.
9
9
  */
10
- export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknown>, TData = TQueryFnData, CustomState = unknown, S extends QueryStoreState<TData, TParams, CustomState> = QueryStoreState<TData, TParams, CustomState>> = {
10
+ 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] ? {
11
+ /**
12
+ * A function to transform the raw fetched data** (`TQueryFnData`) into another
13
+ * form (`TData`). If not provided, the raw data returned by `fetcher` is used.
14
+ */
15
+ transform?: (data: TQueryFnData, params: TParams) => TData;
16
+ } : {
17
+ /**
18
+ * A function to transform the raw fetched data** (`TQueryFnData`) into another
19
+ * form (`TData`). If not provided, the raw data returned by `fetcher` is used.
20
+ */
21
+ transform: (data: TQueryFnData, params: TParams) => TData;
22
+ }) & {
11
23
  /**
12
24
  * **A function responsible for fetching data from a remote source.**
13
25
  * Receives parameters of type TParams and optionally an abort controller.
@@ -15,8 +27,8 @@ export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknow
15
27
  *
16
28
  * ---
17
29
  * `abortController` is by default available, unless either:
18
- * - `abortInterruptedFetches` is set to `false` in the store's config
19
- * - The fetch was manually triggered with `skipStoreUpdates: true`
30
+ * - `abortInterruptedFetches` is set to `false` in the store's config
31
+ * - The fetch was manually triggered with `skipStoreUpdates: true`
20
32
  */
21
33
  fetcher: (params: TParams, abortController: AbortController | null) => TQueryFnData | Promise<TQueryFnData>;
22
34
  /**
@@ -43,15 +55,10 @@ export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknow
43
55
  * cached and tracked by the store, unless caching is fully disabled via `disableCache: true`.
44
56
  */
45
57
  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
58
  /**
52
59
  * If `true`, the store will abort any partially completed fetches when:
53
- * - A new fetch is initiated due to a change in parameters
54
- * - All components subscribed to the store via selectors are unmounted
60
+ * - A new fetch is initiated due to a change in parameters
61
+ * - All components subscribed to the store via selectors are unmounted
55
62
  * @default true
56
63
  */
57
64
  abortInterruptedFetches?: boolean;
@@ -125,8 +132,6 @@ export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknow
125
132
  /**
126
133
  * The duration, in milliseconds, that data is considered fresh after fetching.
127
134
  * 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
135
  * @default time.minutes(2)
131
136
  */
132
137
  staleTime?: number | ReactiveParam<number, TParams, S, TData>;
@@ -135,17 +140,11 @@ export type QueryStoreConfig<TQueryFnData, TParams extends Record<string, unknow
135
140
  * @default false
136
141
  */
137
142
  suppressStaleTimeWarning?: boolean;
138
- /**
139
- * @deprecated Only use for backwards compatibility.
140
- * @default true
141
- */
142
- useParsableQueryKeys?: boolean;
143
143
  };
144
144
  /**
145
- * The full state structure managed by the query store. This type is generally internal,
146
- * though the state it defines can be accessed via the store's public interface.
145
+ * The internal state structure managed by the query store.
147
146
  */
148
- export type QueryStoreState<TData, TParams extends Record<string, unknown>, CustomState = unknown> = {
147
+ export type QueryStoreInternalState<TData, TParams extends Record<string, unknown>> = {
149
148
  /**
150
149
  * Initiates a data fetch for the given parameters. If no parameters are provided,
151
150
  * the store's current parameters are used.
@@ -224,7 +223,12 @@ export type QueryStoreState<TData, TParams extends Record<string, unknown>, Cust
224
223
  * The current status of the query's remote data fetching operation.
225
224
  */
226
225
  status: QueryStatus;
227
- } & CustomState;
226
+ };
227
+ /**
228
+ * The full state structure managed by the query store. This type is generally internal,
229
+ * though the state it defines can be accessed via the store's public interface.
230
+ */
231
+ export type QueryStoreState<TData, TParams extends Record<string, unknown>, CustomState = unknown> = QueryStoreInternalState<TData, TParams> & CustomState;
228
232
  /**
229
233
  * Defines additional options for a data fetch operation.
230
234
  */
@@ -287,10 +291,10 @@ export declare const QueryStatuses: {
287
291
  * Represents the current status of the query's remote data fetching operation.
288
292
  *
289
293
  * Possible values:
290
- * - **`'error'`**: The most recent request encountered an error.
291
- * - **`'idle'`**: No request in progress, no error, no data yet.
292
- * - **`'loading'`**: A request is currently in progress.
293
- * - **`'success'`**: The most recent request has succeeded and data is available.
294
+ * - **`'error'`**: The most recent request encountered an error.
295
+ * - **`'idle'`**: No request in progress, no error, no data yet.
296
+ * - **`'loading'`**: A request is currently in progress.
297
+ * - **`'success'`**: The most recent request has succeeded and data is available.
294
298
  */
295
299
  export type QueryStatus = (typeof QueryStatuses)[keyof typeof QueryStatuses];
296
300
  /**
@@ -334,10 +338,11 @@ export type QueryStoreParams<TParams extends Record<string, unknown>, TData, S e
334
338
  /**
335
339
  * Represents a parameter that can be provided directly or defined via a reactive `AttachValue`.
336
340
  * A parameter can be:
337
- * - A static value (e.g. `string`, `number`).
338
- * - A function that returns an `AttachValue<T>` when given a `SignalFunction`.
341
+ * - A static value (e.g. `string`, `number`).
342
+ * - A function that returns an `AttachValue<T>` when given a `SignalFunction`.
339
343
  */
340
344
  export type ReactiveParam<T, TParams extends Record<string, unknown>, S extends QueryStoreState<TData, TParams>, TData> = T | (($: SignalFunction, store: BaseStore<S>) => AttachValue<T>);
345
+ export type AttachValueParams<TParams extends Record<string, unknown>> = Partial<Record<keyof TParams, AttachValue<TParams[Extract<keyof TParams, string>]>>>;
341
346
  /**
342
347
  * The result of resolving reactive and static parameter values.
343
348
  */
@@ -345,7 +350,7 @@ export type ResolvedParamsResult<TParams extends Record<string, unknown>> = {
345
350
  /**
346
351
  * Reactive parameter values wrapped in `AttachValue`, which trigger refetches when they change.
347
352
  */
348
- attachVals: Partial<Record<keyof TParams, AttachValue<unknown>>>;
353
+ attachVals: AttachValueParams<TParams>;
349
354
  /**
350
355
  * Direct, non-reactive values resolved from the initial configuration.
351
356
  */
@@ -375,7 +380,7 @@ export type ResolvedEnabledResult = {
375
380
  /**
376
381
  * The keys that make up the internal state of the store.
377
382
  */
378
- export type InternalStateKeys = keyof QueryStoreState<unknown, Record<string, unknown>>;
383
+ export type InternalStateKeys = keyof QueryStoreInternalState<unknown, Record<string, unknown>>;
379
384
  /**
380
385
  * Helper type for defining `onFetched` parameters.
381
386
  */
package/dist/signal.d.ts CHANGED
@@ -1,20 +1,11 @@
1
+ import { AttachValue } from './queryStore/signalTypes';
1
2
  import { BaseStore, UnsubscribeFn } from './types';
2
3
  export declare const attachValueSubscriptionMap: WeakMap<AttachValue<unknown>, 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: BaseStore<T>): AttachValue<T>;
11
- <T, S>(store: BaseStore<T>, selector: (state: T) => S, equalityFn?: (a: S, b: S) => boolean): AttachValue<S>;
12
- };
13
4
  export type Subscribe = (callback: () => void) => UnsubscribeFn;
14
5
  export type GetValue = () => unknown;
15
6
  export type SetValue = (path: unknown[], value: unknown) => void;
16
7
  export declare function $<T>(store: BaseStore<T>): AttachValue<T>;
17
8
  export declare function $<T, S>(store: BaseStore<T>, selector: (state: T) => S, equalityFn?: (a: S, b: S) => boolean): AttachValue<S>;
18
9
  export declare const createSignal: <T, S>(store: BaseStore<T>, selector: (state: T) => S, equalityFn: (a: S, b: S) => boolean) => [Subscribe, GetValue, SetValue];
19
- export {};
10
+ export declare function getAttachValueSubscribeFn<AttachVal extends AttachValue<unknown>>(attachVal: AttachVal): Subscribe | undefined;
20
11
  //# sourceMappingURL=signal.d.ts.map
@@ -1,7 +1,7 @@
1
- import { AsyncStorageInterface, BaseStoreOptions, EnforceStorageKey, SyncStorageInterface } from 'src/types';
2
1
  import { PersistStorage } from 'zustand/middleware';
3
2
  import { StorageValue } from './storageTypes';
4
3
  import { SyncContext } from '../sync/syncEnhancer';
4
+ import { AsyncStorageInterface, BaseStoreOptions, EnforceStorageKey, SyncStorageInterface } from '../types';
5
5
  type SyncPersistStorage<S> = {
6
6
  getItem: (name: string) => StorageValue<S> | null;
7
7
  removeItem: (name: string) => void;
@@ -19,4 +19,8 @@ export declare function createSyncedStateCreator<T extends Record<string, unknow
19
19
  stateCreator: StateCreator<T>;
20
20
  syncContext: SyncContext;
21
21
  };
22
+ /**
23
+ * Readable indices for `FieldMetadata` tuples.
24
+ */
25
+ export declare const TIMESTAMP: 0, SESSION_ID: 1;
22
26
  //# sourceMappingURL=syncEnhancer.d.ts.map