state-jet 2.0.12 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -16,4 +16,4 @@
|
|
|
16
16
|
*
|
|
17
17
|
* This source code is licensed under the MIT license found in the
|
|
18
18
|
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/var re=(ee||(ee=1,"production"===process.env.NODE_ENV?Y.exports=function(){if(X)return Q;X=1;var t=e,r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=t.useState,o=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function i(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}var c=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?function(e,t){return t()}:function(e,t){var r=t(),c=n({inst:{value:r,getSnapshot:t}}),u=c[0].inst,f=c[1];return a((function(){u.value=r,u.getSnapshot=t,i(u)&&f({inst:u})}),[e,r,t]),o((function(){return i(u)&&f({inst:u}),e((function(){i(u)&&f({inst:u})}))}),[e]),s(r),r};return Q.useSyncExternalStore=void 0!==t.useSyncExternalStore?t.useSyncExternalStore:c,Q}():Y.exports=(Z||(Z=1,"production"!==process.env.NODE_ENV&&function(){function t(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch{return!0}}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var r=e,n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,a=r.useEffect,s=r.useLayoutEffect,i=r.useDebugValue,c=!1,u=!1,f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?function(e,t){return t()}:function(e,f){c||void 0===r.startTransition||(c=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var l=f();if(!u){var p=f();n(l,p)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),u=!0)}var d=(p=o({inst:{value:l,getSnapshot:f}}))[0].inst,_=p[1];return s((function(){d.value=l,d.getSnapshot=f,t(d)&&_({inst:d})}),[e,l,f]),a((function(){return t(d)&&_({inst:d}),e((function(){t(d)&&_({inst:d})}))}),[e]),i(l),l};te.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:f,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),te)),Y.exports);const ne={},oe={},ae={},se=B.__STATE_JET_DEVTOOLS__,ie=(e,t)=>{ne[e]||(ne[e]=[]),void 0===oe[e]&&(oe[e]=-1),ne[e]=ne[e].slice(0,oe[e]+1),ne[e].push(t),oe[e]++,se?.updateState&&se.updateState(e,t,[...ne[e]])},ce=(e,t)=>{ae[e]||(ae[e]=[]);const r=performance.now();t();const n=performance.now()-r;ae[e].push(n),se?.updatePerformance&&se.updatePerformance(e,n)},ue=new Set,fe=new Map,le=new Map,pe={};let de=!1;const _e=e=>(fe.has(e)||fe.set(e,{}),(t,r,n)=>{const o=fe.get(e),a=`${e}:${t}`;if(!o[t]){let e=r;n?.persist&&(e=n?.encrypt?W(a,r):J(a,r)),o[t]={value:e,listeners:new Set,...n}}const s=o[t],i=async()=>{de=!1;const e=Array.from(le.entries());le.clear();for(const[t,r]of e){const[e,n]=t.split(":"),o=fe.get(e);if(!o)continue;const a=o[n];if(!a)continue;if(ue.has(t)){console.warn(`[state-jet] Skipping recursive middleware for: ${t}`);continue}let s=r;const i=a.value;if(pe[t]||(pe[t]={past:[],present:i,future:[]}),pe[t].past.push(i),pe[t].present=s,pe[t].future=[],ue.add(t),a?.middleware)for(const e of a.middleware)try{console.log(`[state-jet] Running middleware for ${t}`);const r=e(t,i,s,(e=>{s=e}));if(void 0!==r)if(r instanceof Promise){const e=await r;void 0!==e&&(s=e)}else s=r}catch(e){console.error(`[state-jet] Middleware error in ${t}:`,e)}ue.delete(t),"function"==typeof s?a.value=U(a.value,s):i!==s&&(a.value=s,a.listeners.forEach((e=>e())),ie(`${e}.${n}`,s),ce(`${e}.${n}`,(()=>{})),a?.persist&&(a?.encrypt?q(t,s):H(t,s)))}};return{useState:()=>re.useSyncExternalStore((e=>(s.listeners.add(e),()=>s.listeners.delete(e))),(()=>s.value)),set:async(r,n=!1)=>{const o=s.value,c="function"==typeof r?r(o):r;if(n)return s.value=c,s.listeners.forEach((e=>e())),void ie(`${e}.${t}`,c);le.set(a,c),de||(de=!0,s.frameSync&&B?.requestAnimationFrame?await new Promise((e=>B.requestAnimationFrame((()=>e(i()))))):await i())},undo:()=>{pe[a]?.past.length&&(pe[a].future.unshift(pe[a].present),pe[a].present=pe[a].past.pop(),s.value=pe[a].present,s.listeners.forEach((e=>e())),(e=>{if(oe[e]>0)oe[e]--,ne[e][oe[e]]})(a),ie(`${e}.undo`,pe[a].present))},redo:()=>{pe[a]?.future.length&&(pe[a].past.push(pe[a].present),pe[a].present=pe[a].future.shift(),s.value=pe[a].present,s.listeners.forEach((e=>e())),(e=>{if(oe[e]<ne[e]?.length-1)oe[e]++,ne[e][oe[e]]})(a),ie(`${e}.redo`,pe[a].present))},clear:()=>{s.value=r,fe.clear(),Object.keys(pe).forEach((e=>delete pe[e])),ie(`${e}.clear`,r)}}}),ye=(e,t)=>({...e,...t,lastUpdated:Date.now()});exports.derivedState=(e,t)=>()=>{const r=e.map((e=>e.useState()));return t(...r)},exports.mergeCRDT=ye,exports.optimisticUpdate=async(e,t,r,n)=>{const o=e.useState(),a=t(o);e.set(a);try{await r()}catch(t){console.error("API request failed:",t),e.set(n?n(o):o)}},exports.restoreEncryptedState=W,exports.restoreState=J,exports.saveEncryptedState=q,exports.saveState=H,exports.syncCRDT=(e,t)=>{const r=t.useState(),n=ye(r,e);t.set(n)},exports.useSlice=_e,exports.useStateGlobal=(e,t,r)=>_e("global")(e,t,r),exports.useStore=t=>{const r=e.useRef(null);return r.current||(r.current=t()),r.current};
|
|
19
|
+
*/var re=(ee||(ee=1,"production"===process.env.NODE_ENV?Y.exports=function(){if(X)return Q;X=1;var t=e,r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=t.useState,o=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function i(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}var c=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?function(e,t){return t()}:function(e,t){var r=t(),c=n({inst:{value:r,getSnapshot:t}}),u=c[0].inst,f=c[1];return a((function(){u.value=r,u.getSnapshot=t,i(u)&&f({inst:u})}),[e,r,t]),o((function(){return i(u)&&f({inst:u}),e((function(){i(u)&&f({inst:u})}))}),[e]),s(r),r};return Q.useSyncExternalStore=void 0!==t.useSyncExternalStore?t.useSyncExternalStore:c,Q}():Y.exports=(Z||(Z=1,"production"!==process.env.NODE_ENV&&function(){function t(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch{return!0}}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var r=e,n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,a=r.useEffect,s=r.useLayoutEffect,i=r.useDebugValue,c=!1,u=!1,f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?function(e,t){return t()}:function(e,f){c||void 0===r.startTransition||(c=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var l=f();if(!u){var p=f();n(l,p)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),u=!0)}var d=(p=o({inst:{value:l,getSnapshot:f}}))[0].inst,_=p[1];return s((function(){d.value=l,d.getSnapshot=f,t(d)&&_({inst:d})}),[e,l,f]),a((function(){return t(d)&&_({inst:d}),e((function(){t(d)&&_({inst:d})}))}),[e]),i(l),l};te.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:f,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),te)),Y.exports);const ne={},oe={},ae={},se=B.__STATE_JET_DEVTOOLS__,ie=(e,t)=>{ne[e]||(ne[e]=[]),void 0===oe[e]&&(oe[e]=-1),ne[e]=ne[e].slice(0,oe[e]+1),ne[e].push(t),oe[e]++,se?.updateState&&se.updateState(e,t,[...ne[e]])},ce=(e,t)=>{ae[e]||(ae[e]=[]);const r=performance.now();t();const n=performance.now()-r;ae[e].push(n),se?.updatePerformance&&se.updatePerformance(e,n)},ue=new Set,fe=new Map,le=new Map,pe={};let de=!1;const _e=e=>(fe.has(e)||fe.set(e,{}),(t,r,n)=>{const o=fe.get(e),a=`${e}:${t}`;if(!o[t]){let e=r;n?.persist&&(e=n?.encrypt?W(a,r):J(a,r)),o[t]={value:e,listeners:new Set,...n}}const s=o[t],i=async()=>{de=!1;const e=Array.from(le.entries());le.clear();for(const[t,r]of e){const[e,n]=t.split(":"),o=fe.get(e);if(!o)continue;const a=o[n];if(!a)continue;if(ue.has(t)){console.warn(`[state-jet] Skipping recursive middleware for: ${t}`);continue}let s=r;const i=a.value;if(pe[t]||(pe[t]={past:[],present:i,future:[]}),pe[t].past.push(i),pe[t].present=s,pe[t].future=[],ue.add(t),a?.middleware)for(const e of a.middleware)try{console.log(`[state-jet] Running middleware for ${t}`);const r=e(t,i,s,(e=>{s=e}));if(void 0!==r)if(r instanceof Promise){const e=await r;void 0!==e&&(s=e)}else s=r}catch(e){console.error(`[state-jet] Middleware error in ${t}:`,e)}ue.delete(t),"function"==typeof s?a.value=U(a.value,s):i!==s&&(a.value=s,a.listeners.forEach((e=>e())),ie(`${e}.${n}`,s),ce(`${e}.${n}`,(()=>{})),a?.persist&&(a?.encrypt?q(t,s):H(t,s)))}};return{useState:()=>re.useSyncExternalStore((e=>(s.listeners.add(e),()=>s.listeners.delete(e))),(()=>s.value)),set:async(r,n=!1)=>{const o=s.value,c="function"==typeof r?r(o):r;if(n)return s.value=c,s.listeners.forEach((e=>e())),void ie(`${e}.${t}`,c);le.set(a,c),de||(de=!0,s.frameSync&&B?.requestAnimationFrame?await new Promise((e=>B.requestAnimationFrame((()=>e(i()))))):await i())},get:()=>s.value,undo:()=>{pe[a]?.past.length&&(pe[a].future.unshift(pe[a].present),pe[a].present=pe[a].past.pop(),s.value=pe[a].present,s.listeners.forEach((e=>e())),(e=>{if(oe[e]>0)oe[e]--,ne[e][oe[e]]})(a),ie(`${e}.undo`,pe[a].present))},redo:()=>{pe[a]?.future.length&&(pe[a].past.push(pe[a].present),pe[a].present=pe[a].future.shift(),s.value=pe[a].present,s.listeners.forEach((e=>e())),(e=>{if(oe[e]<ne[e]?.length-1)oe[e]++,ne[e][oe[e]]})(a),ie(`${e}.redo`,pe[a].present))},clear:()=>{s.value=r,fe.clear(),Object.keys(pe).forEach((e=>delete pe[e])),ie(`${e}.clear`,r)}}}),ye=(e,t)=>({...e,...t,lastUpdated:Date.now()});exports.derivedState=(e,t)=>()=>{const r=e.map((e=>e.useState()));return t(...r)},exports.mergeCRDT=ye,exports.optimisticUpdate=async(e,t,r,n)=>{const o=e.useState(),a=t(o);e.set(a);try{await r()}catch(t){console.error("API request failed:",t),e.set(n?n(o):o)}},exports.restoreEncryptedState=W,exports.restoreState=J,exports.saveEncryptedState=q,exports.saveState=H,exports.syncCRDT=(e,t)=>{const r=t.useState(),n=ye(r,e);t.set(n)},exports.useSlice=_e,exports.useStateGlobal=(e,t,r)=>_e("global")(e,t,r),exports.useStore=t=>{const r=e.useRef(null);return r.current||(r.current=t()),r.current};
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ type Action<T> = {
|
|
|
15
15
|
declare const useStateGlobal: <T>(key: string, initialValue?: T, options?: Options<T>) => {
|
|
16
16
|
useState: () => T | undefined;
|
|
17
17
|
set: (newValue: T | Action<T | undefined> | ((prev: T | undefined) => T | undefined) | undefined, immediate?: boolean) => Promise<void>;
|
|
18
|
+
get: () => T | undefined;
|
|
18
19
|
undo: () => void;
|
|
19
20
|
redo: () => void;
|
|
20
21
|
clear: () => void;
|
|
@@ -25,6 +26,7 @@ declare const useStateGlobal: <T>(key: string, initialValue?: T, options?: Optio
|
|
|
25
26
|
declare const useSlice: (sliceName: string) => <T>(key: string, initialValue: T, options?: Options<T | undefined>) => {
|
|
26
27
|
useState: () => T;
|
|
27
28
|
set: (newValue: T | ((prev: T) => T) | Action<T>, immediate?: boolean) => Promise<void>;
|
|
29
|
+
get: () => T;
|
|
28
30
|
undo: () => void;
|
|
29
31
|
redo: () => void;
|
|
30
32
|
clear: () => void;
|
package/dist/index.mjs
CHANGED
|
@@ -16,4 +16,4 @@ import e,{useRef as t}from"react";var r=Symbol.for("immer-nothing"),n=Symbol.for
|
|
|
16
16
|
*
|
|
17
17
|
* This source code is licensed under the MIT license found in the
|
|
18
18
|
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/var ne=(te||(te=1,"production"===process.env.NODE_ENV?Q.exports=function(){if(Y)return Z;Y=1;var t=e,r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=t.useState,o=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function i(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}var c=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?function(e,t){return t()}:function(e,t){var r=t(),c=n({inst:{value:r,getSnapshot:t}}),u=c[0].inst,f=c[1];return a((function(){u.value=r,u.getSnapshot=t,i(u)&&f({inst:u})}),[e,r,t]),o((function(){return i(u)&&f({inst:u}),e((function(){i(u)&&f({inst:u})}))}),[e]),s(r),r};return Z.useSyncExternalStore=void 0!==t.useSyncExternalStore?t.useSyncExternalStore:c,Z}():Q.exports=(ee||(ee=1,"production"!==process.env.NODE_ENV&&function(){function t(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch{return!0}}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var r=e,n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,a=r.useEffect,s=r.useLayoutEffect,i=r.useDebugValue,c=!1,u=!1,f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?function(e,t){return t()}:function(e,f){c||void 0===r.startTransition||(c=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var l=f();if(!u){var p=f();n(l,p)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),u=!0)}var d=(p=o({inst:{value:l,getSnapshot:f}}))[0].inst,_=p[1];return s((function(){d.value=l,d.getSnapshot=f,t(d)&&_({inst:d})}),[e,l,f]),a((function(){return t(d)&&_({inst:d}),e((function(){t(d)&&_({inst:d})}))}),[e]),i(l),l};re.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:f,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),re)),Q.exports);const oe={},ae={},se={},ie=H.__STATE_JET_DEVTOOLS__,ce=(e,t)=>{oe[e]||(oe[e]=[]),void 0===ae[e]&&(ae[e]=-1),oe[e]=oe[e].slice(0,ae[e]+1),oe[e].push(t),ae[e]++,ie?.updateState&&ie.updateState(e,t,[...oe[e]])},ue=(e,t)=>{se[e]||(se[e]=[]);const r=performance.now();t();const n=performance.now()-r;se[e].push(n),ie?.updatePerformance&&ie.updatePerformance(e,n)},fe=new Set,le=new Map,pe=new Map,de={};let _e=!1;const ye=(e,t,r)=>he("global")(e,t,r),he=e=>(le.has(e)||le.set(e,{}),(t,r,n)=>{const o=le.get(e),a=`${e}:${t}`;if(!o[t]){let e=r;n?.persist&&(e=n?.encrypt?X(a,r):W(a,r)),o[t]={value:e,listeners:new Set,...n}}const s=o[t],i=async()=>{_e=!1;const e=Array.from(pe.entries());pe.clear();for(const[t,r]of e){const[e,n]=t.split(":"),o=le.get(e);if(!o)continue;const a=o[n];if(!a)continue;if(fe.has(t)){console.warn(`[state-jet] Skipping recursive middleware for: ${t}`);continue}let s=r;const i=a.value;if(de[t]||(de[t]={past:[],present:i,future:[]}),de[t].past.push(i),de[t].present=s,de[t].future=[],fe.add(t),a?.middleware)for(const e of a.middleware)try{console.log(`[state-jet] Running middleware for ${t}`);const r=e(t,i,s,(e=>{s=e}));if(void 0!==r)if(r instanceof Promise){const e=await r;void 0!==e&&(s=e)}else s=r}catch(e){console.error(`[state-jet] Middleware error in ${t}:`,e)}fe.delete(t),"function"==typeof s?a.value=B(a.value,s):i!==s&&(a.value=s,a.listeners.forEach((e=>e())),ce(`${e}.${n}`,s),ue(`${e}.${n}`,(()=>{})),a?.persist&&(a?.encrypt?q(t,s):J(t,s)))}};return{useState:()=>ne.useSyncExternalStore((e=>(s.listeners.add(e),()=>s.listeners.delete(e))),(()=>s.value)),set:async(r,n=!1)=>{const o=s.value,c="function"==typeof r?r(o):r;if(n)return s.value=c,s.listeners.forEach((e=>e())),void ce(`${e}.${t}`,c);pe.set(a,c),_e||(_e=!0,s.frameSync&&H?.requestAnimationFrame?await new Promise((e=>H.requestAnimationFrame((()=>e(i()))))):await i())},undo:()=>{de[a]?.past.length&&(de[a].future.unshift(de[a].present),de[a].present=de[a].past.pop(),s.value=de[a].present,s.listeners.forEach((e=>e())),(e=>{if(ae[e]>0)ae[e]--,oe[e][ae[e]]})(a),ce(`${e}.undo`,de[a].present))},redo:()=>{de[a]?.future.length&&(de[a].past.push(de[a].present),de[a].present=de[a].future.shift(),s.value=de[a].present,s.listeners.forEach((e=>e())),(e=>{if(ae[e]<oe[e]?.length-1)ae[e]++,oe[e][ae[e]]})(a),ce(`${e}.redo`,de[a].present))},clear:()=>{s.value=r,le.clear(),Object.keys(de).forEach((e=>delete de[e])),ce(`${e}.clear`,r)}}}),be=e=>{const r=t(null);return r.current||(r.current=e()),r.current},me=async(e,t,r,n)=>{const o=e.useState(),a=t(o);e.set(a);try{await r()}catch(t){console.error("API request failed:",t),e.set(n?n(o):o)}},Se=(e,t)=>({...e,...t,lastUpdated:Date.now()}),ge=(e,t)=>{const r=t.useState(),n=Se(r,e);t.set(n)},ve=(e,t)=>()=>{const r=e.map((e=>e.useState()));return t(...r)};export{ve as derivedState,Se as mergeCRDT,me as optimisticUpdate,X as restoreEncryptedState,W as restoreState,q as saveEncryptedState,J as saveState,ge as syncCRDT,he as useSlice,ye as useStateGlobal,be as useStore};
|
|
19
|
+
*/var ne=(te||(te=1,"production"===process.env.NODE_ENV?Q.exports=function(){if(Y)return Z;Y=1;var t=e,r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=t.useState,o=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function i(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}var c=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?function(e,t){return t()}:function(e,t){var r=t(),c=n({inst:{value:r,getSnapshot:t}}),u=c[0].inst,f=c[1];return a((function(){u.value=r,u.getSnapshot=t,i(u)&&f({inst:u})}),[e,r,t]),o((function(){return i(u)&&f({inst:u}),e((function(){i(u)&&f({inst:u})}))}),[e]),s(r),r};return Z.useSyncExternalStore=void 0!==t.useSyncExternalStore?t.useSyncExternalStore:c,Z}():Q.exports=(ee||(ee=1,"production"!==process.env.NODE_ENV&&function(){function t(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch{return!0}}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var r=e,n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,a=r.useEffect,s=r.useLayoutEffect,i=r.useDebugValue,c=!1,u=!1,f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?function(e,t){return t()}:function(e,f){c||void 0===r.startTransition||(c=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var l=f();if(!u){var p=f();n(l,p)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),u=!0)}var d=(p=o({inst:{value:l,getSnapshot:f}}))[0].inst,_=p[1];return s((function(){d.value=l,d.getSnapshot=f,t(d)&&_({inst:d})}),[e,l,f]),a((function(){return t(d)&&_({inst:d}),e((function(){t(d)&&_({inst:d})}))}),[e]),i(l),l};re.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:f,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),re)),Q.exports);const oe={},ae={},se={},ie=H.__STATE_JET_DEVTOOLS__,ce=(e,t)=>{oe[e]||(oe[e]=[]),void 0===ae[e]&&(ae[e]=-1),oe[e]=oe[e].slice(0,ae[e]+1),oe[e].push(t),ae[e]++,ie?.updateState&&ie.updateState(e,t,[...oe[e]])},ue=(e,t)=>{se[e]||(se[e]=[]);const r=performance.now();t();const n=performance.now()-r;se[e].push(n),ie?.updatePerformance&&ie.updatePerformance(e,n)},fe=new Set,le=new Map,pe=new Map,de={};let _e=!1;const ye=(e,t,r)=>he("global")(e,t,r),he=e=>(le.has(e)||le.set(e,{}),(t,r,n)=>{const o=le.get(e),a=`${e}:${t}`;if(!o[t]){let e=r;n?.persist&&(e=n?.encrypt?X(a,r):W(a,r)),o[t]={value:e,listeners:new Set,...n}}const s=o[t],i=async()=>{_e=!1;const e=Array.from(pe.entries());pe.clear();for(const[t,r]of e){const[e,n]=t.split(":"),o=le.get(e);if(!o)continue;const a=o[n];if(!a)continue;if(fe.has(t)){console.warn(`[state-jet] Skipping recursive middleware for: ${t}`);continue}let s=r;const i=a.value;if(de[t]||(de[t]={past:[],present:i,future:[]}),de[t].past.push(i),de[t].present=s,de[t].future=[],fe.add(t),a?.middleware)for(const e of a.middleware)try{console.log(`[state-jet] Running middleware for ${t}`);const r=e(t,i,s,(e=>{s=e}));if(void 0!==r)if(r instanceof Promise){const e=await r;void 0!==e&&(s=e)}else s=r}catch(e){console.error(`[state-jet] Middleware error in ${t}:`,e)}fe.delete(t),"function"==typeof s?a.value=B(a.value,s):i!==s&&(a.value=s,a.listeners.forEach((e=>e())),ce(`${e}.${n}`,s),ue(`${e}.${n}`,(()=>{})),a?.persist&&(a?.encrypt?q(t,s):J(t,s)))}};return{useState:()=>ne.useSyncExternalStore((e=>(s.listeners.add(e),()=>s.listeners.delete(e))),(()=>s.value)),set:async(r,n=!1)=>{const o=s.value,c="function"==typeof r?r(o):r;if(n)return s.value=c,s.listeners.forEach((e=>e())),void ce(`${e}.${t}`,c);pe.set(a,c),_e||(_e=!0,s.frameSync&&H?.requestAnimationFrame?await new Promise((e=>H.requestAnimationFrame((()=>e(i()))))):await i())},get:()=>s.value,undo:()=>{de[a]?.past.length&&(de[a].future.unshift(de[a].present),de[a].present=de[a].past.pop(),s.value=de[a].present,s.listeners.forEach((e=>e())),(e=>{if(ae[e]>0)ae[e]--,oe[e][ae[e]]})(a),ce(`${e}.undo`,de[a].present))},redo:()=>{de[a]?.future.length&&(de[a].past.push(de[a].present),de[a].present=de[a].future.shift(),s.value=de[a].present,s.listeners.forEach((e=>e())),(e=>{if(ae[e]<oe[e]?.length-1)ae[e]++,oe[e][ae[e]]})(a),ce(`${e}.redo`,de[a].present))},clear:()=>{s.value=r,le.clear(),Object.keys(de).forEach((e=>delete de[e])),ce(`${e}.clear`,r)}}}),be=e=>{const r=t(null);return r.current||(r.current=e()),r.current},me=async(e,t,r,n)=>{const o=e.useState(),a=t(o);e.set(a);try{await r()}catch(t){console.error("API request failed:",t),e.set(n?n(o):o)}},Se=(e,t)=>({...e,...t,lastUpdated:Date.now()}),ge=(e,t)=>{const r=t.useState(),n=Se(r,e);t.set(n)},ve=(e,t)=>()=>{const r=e.map((e=>e.useState()));return t(...r)};export{ve as derivedState,Se as mergeCRDT,me as optimisticUpdate,X as restoreEncryptedState,W as restoreState,q as saveEncryptedState,J as saveState,ge as syncCRDT,he as useSlice,ye as useStateGlobal,be as useStore};
|