react-hooks-global-states 16.0.2 → 16.0.3

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/GlobalStore.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var V=Object.create;var m=Object.defineProperty,W=Object.defineProperties,B=Object.getOwnPropertyDescriptor,I=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertyNames,w=Object.getOwnPropertySymbols,G=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var F=(i,t,e)=>t in i?m(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,k=(i,t)=>{for(var e in t||(t={}))E.call(t,e)&&F(i,e,t[e]);if(w)for(var e of w(t))z.call(t,e)&&F(i,e,t[e]);return i},x=(i,t)=>W(i,I(t));var D=(i,t)=>{for(var e in t)m(i,e,{get:t[e],enumerable:!0})},H=(i,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of L(t))!E.call(i,s)&&s!==e&&m(i,s,{get:()=>t[s],enumerable:!(a=B(t,s))||a.enumerable});return i};var g=(i,t,e)=>(e=i!=null?V(G(i)):{},H(t||!i||!i.__esModule?m(e,"default",{value:i,enumerable:!0}):e,i)),K=i=>H(m({},"__esModule",{value:!0}),i);var $={};D($,{GlobalStore:()=>M,createObservable:()=>y,createSelectorHook:()=>R,default:()=>N});module.exports=K($);var f=require("react"),p=g(require("json-storage-formatter/isFunction")),_=g(require("./isRecord.cjs")),A=g(require("./shallowCompare.cjs")),U=g(require("./throwWrongKeyOnActionCollectionConfig.cjs")),v=g(require("./uniqueId.cjs")),O=g(require("./GlobalStore.debugProps.cjs"));var M=class i{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=R;this.createObservable=y;var l,o,u;let{metadata:a,callbacks:s,actions:c,name:r}=e;if((0,p.default)(t)&&(this.stateCallback=t),(0,p.default)(a)&&(this.metadataCallback=a),this._name=r!=null?r:(0,v.default)("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=s!=null?s:null,this.actionsConfig=c!=null?c:null,O.default.isDevToolsPresent){let b=(l=new Error().stack)!=null?l:"";(u=(o=O.default).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||u.call(o,this,e,b)}this.constructor===i&&this.initialize()}async initialize(){var l,o,u,b,d,S,h,C;let t=(o=(l=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:l.call(this))!=null?o:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let s=(b=(u=this.onInit)==null?void 0:u.call(this))!=null?b:null;(0,p.default)(s)&&this.cleanupFunctions.push(s);let{onInit:c}=(d=this.callbacks)!=null?d:{};if(!c)return;let r=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,n=(C=c==null?void 0:c(r))!=null?C:null;(0,p.default)(n)&&this.cleanupFunctions.push(n)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:s,currentState:c,isEqualRoot:r=(o,u)=>o===u,isEqual:n=(o,u)=>o===u}=t;if(!e.forceUpdate&&r(e.currentState,e.newState))return{didUpdate:!1};let l=a?a(e.newState):e.newState;return!e.forceUpdate&&n(c,l)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:l}),s({state:l},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let s=this.state;if(!(e||s!==t))return;this.state=t;let r=this.subscribers.values(),n={forceUpdate:e,newState:t,currentState:s,identifier:a};for(let l of r)this.executeSetStateForSubscriber(l,n)}setMetadata(t){let e=(0,p.default)(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var u;let s=(0,p.default)(e),c=s?t:void 0,r=s?e:t,n=(u=s?a:e)!=null?u:void 0,l=c?c(this.state):this.state;n!=null&&n.skipFirst||r(l);let o=k({selector:c,currentState:l,onStoreChange:({state:b})=>r(b)},n);return this.subscribeCallback(o),()=>{this.subscribers.delete(o)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(r,n=[])=>{(0,f.useDebugValue)(t);let l=(0,A.isArray)(n)?{dependencies:n}:n!=null?n:{},o=(0,f.useRef)(null),u=P=>(0,p.default)(r)?r(P):P;o.current=o.current?o.current:k({selector:u,currentState:u(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},l);let b=o.current.dependencies,d=l==null?void 0:l.dependencies,S=x(k({},l),{selector:u,dependencies:d});this.partialUpdateSubscription(o.current,S);let{subscribe:h,getSnapshot:C,getServerSnapshot:q}=(0,f.useMemo)(()=>{let P=j=>(o.current.onStoreChange=j,this.subscribeCallback(o.current)),T=()=>o.current.currentState;return{subscribe:P,getSnapshot:T,getServerSnapshot:T}},[]);return this.reselectIfDependenciesChanged({subscription:o.current,newDependencies:d,currentDependencies:b}),[(0,f.useSyncExternalStore)(h,C,q),this.getStateOrchestrator(),this.metadata]},a=this,s=this.getMetadata.bind(this),c={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:this.dispose.bind(this),metadata:void 0,getMetadata:s,getState:this.getState.bind(this),reset:this.reset.bind(this),setMetadata:this.setMetadata.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),subscribers:this.subscribers,use:e,select:(...r)=>e(...r)[0]};return Object.assign(e,c),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:s}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&(0,A.default)(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState.bind(this)}setState(t,{forceUpdate:e,identifier:a}={}){var o,u,b,d,S,h;let s=this.state,c=(0,p.default)(t)?t(s):t;if(!e&&this.state===c)return;let r=this.setActualStateWithoutValidations,n={previousState:s,state:c,identifier:a},l=x(k(k({},this.storeTools),n),{setState:r});Object.defineProperty(l,"metadata",{configurable:!0,enumerable:!0,get:l.getMetadata}),!((o=this.callbacks)!=null&&o.computePreventStateChange&&((b=(u=this.callbacks)==null?void 0:u.computePreventStateChange)!=null&&b.call(u,l)))&&(this.setActualStateWithoutValidations(c,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,l),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,l))}getStoreActionsMap(){let t=this.getMetadata.bind(this),e={setMetadata:this.setMetadata.bind(this),get metadata(){return t()},getMetadata:t,getState:this.getState.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),actions:null};if(!(0,_.default)(this.actionsConfig))return{actions:null,storeTools:e};let a=this.actionsConfig,s={};e.actions=s;let c=Object.keys(a);for(let r of c)Object.assign(s,{[r](...n){let o=a[r].apply(s,n);return typeof o!="function"&&(0,U.default)(r),o.call(s,e)}});return{actions:s,storeTools:e}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var o,u,b,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,s=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(s);let c=(u=(o=this.onInit)==null?void 0:o.call(this))!=null?u:null;(0,p.default)(c)&&this.cleanupFunctions.push(c);let{onInit:r}=(b=this.callbacks)!=null?b:{};if(!r)return;let n=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,l=(h=r==null?void 0:r(n))!=null?h:null;(0,p.default)(l)&&this.cleanupFunctions.push(l)}};function y(i,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,c=this.getState(),r=(i!=null?i:b=>b)(c),n=new M(r,{name:e!=null?e:(0,v.default)("sh:")}),l=this.subscribe(b=>{if((a!=null?a:Object.is)(c,b))return;c=b;let S=i(b);(s!=null?s:Object.is)(r,S)||(r=S,n.setState(S))},{skipFirst:!0}),o=n.subscribe.bind(n),u={getState:n.getState.bind(n),subscribe:n.subscribe.bind(n),createSelectorHook:R.bind(o),createObservable:y.bind(o),dispose:()=>{l(),n.dispose()},subscribers:n.subscribers};return Object.assign(o,u),o}function R(i,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,c=this.getState(),r=(i!=null?i:b=>b)(c),n=new M(r,{name:e!=null?e:(0,v.default)("sh:")}),l=this.subscribe(b=>{if((a!=null?a:Object.is)(c,b))return;c=b;let S=i(b);(s!=null?s:Object.is)(r,S)||(r=S,n.setState(S))},{skipFirst:!0}),o=(...b)=>{let[d]=n.use(...b);return d},u={getState:()=>n.getState(),subscribe:n.subscribe.bind(n),createSelectorHook:R.bind(o),createObservable:y.bind(o),dispose:()=>{l(),n.dispose()},subscribers:n.subscribers};return Object.assign(o,u),o}var N=M;
1
+ "use strict";var z=Object.create;var m=Object.defineProperty,D=Object.defineProperties,K=Object.getOwnPropertyDescriptor,N=Object.getOwnPropertyDescriptors,$=Object.getOwnPropertyNames,E=Object.getOwnPropertySymbols,J=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable;var H=(n,t,e)=>t in n?m(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,g=(n,t)=>{for(var e in t||(t={}))_.call(t,e)&&H(n,e,t[e]);if(E)for(var e of E(t))Q.call(t,e)&&H(n,e,t[e]);return n},O=(n,t)=>D(n,N(t));var X=(n,t)=>{for(var e in t)m(n,e,{get:t[e],enumerable:!0})},U=(n,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $(t))!_.call(n,s)&&s!==e&&m(n,s,{get:()=>t[s],enumerable:!(a=K(t,s))||a.enumerable});return n};var M=(n,t,e)=>(e=n!=null?z(J(n)):{},U(t||!n||!n.__esModule?m(e,"default",{value:n,enumerable:!0}):e,n)),Y=n=>U(m({},"__esModule",{value:!0}),n);var tt={};X(tt,{GlobalStore:()=>C,createObservable:()=>y,createSelectorHook:()=>R,default:()=>Z});module.exports=Y(tt);var k=require("react"),f=M(require("json-storage-formatter/isFunction")),q=M(require("./isRecord.cjs")),A=M(require("./shallowCompare.cjs")),j=M(require("./throwWrongKeyOnActionCollectionConfig.cjs")),v=M(require("./uniqueId.cjs")),T=M(require("./GlobalStore.debugProps.cjs"));var C=class n{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=R;this.createObservable=y;var r,l,u;this.dispose=this.dispose.bind(this),this.getMetadata=this.getMetadata.bind(this),this.getState=this.getState.bind(this),this.reset=this.reset.bind(this),this.setMetadata=this.setMetadata.bind(this),this.setState=this.setState.bind(this),this.subscribe=this.subscribe.bind(this);let{metadata:a,callbacks:s,actions:i,name:c}=e;if((0,f.default)(t)&&(this.stateCallback=t),(0,f.default)(a)&&(this.metadataCallback=a),this._name=c!=null?c:(0,v.default)("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=s!=null?s:null,this.actionsConfig=i!=null?i:null,T.default.isDevToolsPresent){let b=(r=new Error().stack)!=null?r:"";(u=(l=T.default).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||u.call(l,this,e,b)}this.constructor===n&&this.initialize()}async initialize(){var r,l,u,b,d,S,h,p;let t=(l=(r=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:r.call(this))!=null?l:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let s=(b=(u=this.onInit)==null?void 0:u.call(this))!=null?b:null;(0,f.default)(s)&&this.cleanupFunctions.push(s);let{onInit:i}=(d=this.callbacks)!=null?d:{};if(!i)return;let c=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,o=(p=i==null?void 0:i(c))!=null?p:null;(0,f.default)(o)&&this.cleanupFunctions.push(o)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:s,currentState:i,isEqualRoot:c=(l,u)=>l===u,isEqual:o=(l,u)=>l===u}=t;if(!e.forceUpdate&&c(e.currentState,e.newState))return{didUpdate:!1};let r=a?a(e.newState):e.newState;return!e.forceUpdate&&o(i,r)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:r}),s({state:r},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let s=this.state;if(!(e||s!==t))return;this.state=t;let c=this.subscribers.values(),o={forceUpdate:e,newState:t,currentState:s,identifier:a};for(let r of c)this.executeSetStateForSubscriber(r,o)}setMetadata(t){let e=(0,f.default)(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var u;let s=(0,f.default)(e),i=s?t:void 0,c=s?e:t,o=(u=s?a:e)!=null?u:void 0,r=i?i(this.state):this.state;o!=null&&o.skipFirst||c(r);let l=g({selector:i,currentState:r,onStoreChange:({state:b})=>c(b)},o);return this.subscribeCallback(l),()=>{this.subscribers.delete(l)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(d,S=[])=>{(0,k.useDebugValue)(t);let h=(0,A.isArray)(S)?{dependencies:S}:S!=null?S:{},p=(0,k.useRef)(null),x=P=>(0,f.default)(d)?d(P):P;p.current=p.current?p.current:g({selector:x,currentState:x(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},h);let V=p.current.dependencies,w=h==null?void 0:h.dependencies,W=O(g({},h),{selector:x,dependencies:w});this.partialUpdateSubscription(p.current,W);let{subscribe:B,getSnapshot:I,getServerSnapshot:L}=(0,k.useMemo)(()=>{let P=G=>(p.current.onStoreChange=G,this.subscribeCallback(p.current)),F=()=>p.current.currentState;return{subscribe:P,getSnapshot:F,getServerSnapshot:F}},[]);return this.reselectIfDependenciesChanged({subscription:p.current,newDependencies:w,currentDependencies:V}),[(0,k.useSyncExternalStore)(B,I,L),this.getStateOrchestrator(),this.metadata]},a=this,{getMetadata:s,dispose:i,getState:c,reset:o,setMetadata:r,setState:l,subscribe:u}=this,b={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:i,metadata:void 0,getMetadata:s,getState:c,reset:o,setMetadata:r,setState:l,subscribe:u,subscribers:this.subscribers,use:e,select:(...d)=>e(...d)[0]};return Object.assign(e,b),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:s}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&(0,A.default)(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState}setState(t,{forceUpdate:e,identifier:a}={}){var l,u,b,d,S,h;let s=this.state,i=(0,f.default)(t)?t(s):t;if(!e&&this.state===i)return;let c=this.setActualStateWithoutValidations,o={previousState:s,state:i,identifier:a},r=O(g(g({},this.storeTools),o),{setState:c});Object.defineProperty(r,"metadata",{configurable:!0,enumerable:!0,get:r.getMetadata}),!((l=this.callbacks)!=null&&l.computePreventStateChange&&((b=(u=this.callbacks)==null?void 0:u.computePreventStateChange)!=null&&b.call(u,r)))&&(this.setActualStateWithoutValidations(i,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,r),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,r))}getStoreActionsMap(){let{getMetadata:t,setMetadata:e,getState:a,setState:s,subscribe:i}=this,c={setMetadata:e,get metadata(){return t()},getMetadata:t,getState:a,setState:s,subscribe:i,actions:null};if(!(0,q.default)(this.actionsConfig))return{actions:null,storeTools:c};let o=this.actionsConfig,r={};c.actions=r;let l=Object.keys(o);for(let u of l)Object.assign(r,{[u](...b){let S=o[u].apply(r,b);return typeof S!="function"&&(0,j.default)(u),S.call(r,c)}});return{actions:r,storeTools:c}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var l,u,b,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,s=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(s);let i=(u=(l=this.onInit)==null?void 0:l.call(this))!=null?u:null;(0,f.default)(i)&&this.cleanupFunctions.push(i);let{onInit:c}=(b=this.callbacks)!=null?b:{};if(!c)return;let o=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,r=(h=c==null?void 0:c(o))!=null?h:null;(0,f.default)(r)&&this.cleanupFunctions.push(r)}};function y(n,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,i=this.getState(),c=(n!=null?n:b=>b)(i),o=new C(c,{name:e!=null?e:(0,v.default)("sh:")}),r=this.subscribe(b=>{if((a!=null?a:Object.is)(i,b))return;i=b;let S=n(b);(s!=null?s:Object.is)(c,S)||(c=S,o.setState(S))},{skipFirst:!0}),l=o.subscribe.bind(o),u={getState:o.getState.bind(o),subscribe:o.subscribe.bind(o),createSelectorHook:R.bind(l),createObservable:y.bind(l),dispose:()=>{r(),o.dispose()},subscribers:o.subscribers};return Object.assign(l,u),l}function R(n,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,i=this.getState(),c=(n!=null?n:b=>b)(i),o=new C(c,{name:e!=null?e:(0,v.default)("sh:")}),r=this.subscribe(b=>{if((a!=null?a:Object.is)(i,b))return;i=b;let S=n(b);(s!=null?s:Object.is)(c,S)||(c=S,o.setState(S))},{skipFirst:!0}),l=(...b)=>{let[d]=o.use(...b);return d},u={getState:()=>o.getState(),subscribe:o.subscribe.bind(o),createSelectorHook:R.bind(l),createObservable:y.bind(l),dispose:()=>{r(),o.dispose()},subscribers:o.subscribers};return Object.assign(l,u),l}var Z=C;
package/GlobalStore.js CHANGED
@@ -1 +1 @@
1
- "use strict";var V=Object.create;var m=Object.defineProperty,W=Object.defineProperties,B=Object.getOwnPropertyDescriptor,I=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertyNames,w=Object.getOwnPropertySymbols,G=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var F=(i,t,e)=>t in i?m(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,k=(i,t)=>{for(var e in t||(t={}))E.call(t,e)&&F(i,e,t[e]);if(w)for(var e of w(t))z.call(t,e)&&F(i,e,t[e]);return i},x=(i,t)=>W(i,I(t));var D=(i,t)=>{for(var e in t)m(i,e,{get:t[e],enumerable:!0})},H=(i,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of L(t))!E.call(i,s)&&s!==e&&m(i,s,{get:()=>t[s],enumerable:!(a=B(t,s))||a.enumerable});return i};var g=(i,t,e)=>(e=i!=null?V(G(i)):{},H(t||!i||!i.__esModule?m(e,"default",{value:i,enumerable:!0}):e,i)),K=i=>H(m({},"__esModule",{value:!0}),i);var $={};D($,{GlobalStore:()=>M,createObservable:()=>y,createSelectorHook:()=>R,default:()=>N});module.exports=K($);var f=require("react"),p=g(require("json-storage-formatter/isFunction")),_=g(require("./isRecord.js")),A=g(require("./shallowCompare.js")),U=g(require("./throwWrongKeyOnActionCollectionConfig.js")),v=g(require("./uniqueId.js")),O=g(require("./GlobalStore.debugProps.js"));var M=class i{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=R;this.createObservable=y;var l,o,u;let{metadata:a,callbacks:s,actions:c,name:r}=e;if((0,p.default)(t)&&(this.stateCallback=t),(0,p.default)(a)&&(this.metadataCallback=a),this._name=r!=null?r:(0,v.default)("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=s!=null?s:null,this.actionsConfig=c!=null?c:null,O.default.isDevToolsPresent){let b=(l=new Error().stack)!=null?l:"";(u=(o=O.default).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||u.call(o,this,e,b)}this.constructor===i&&this.initialize()}async initialize(){var l,o,u,b,d,S,h,C;let t=(o=(l=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:l.call(this))!=null?o:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let s=(b=(u=this.onInit)==null?void 0:u.call(this))!=null?b:null;(0,p.default)(s)&&this.cleanupFunctions.push(s);let{onInit:c}=(d=this.callbacks)!=null?d:{};if(!c)return;let r=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,n=(C=c==null?void 0:c(r))!=null?C:null;(0,p.default)(n)&&this.cleanupFunctions.push(n)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:s,currentState:c,isEqualRoot:r=(o,u)=>o===u,isEqual:n=(o,u)=>o===u}=t;if(!e.forceUpdate&&r(e.currentState,e.newState))return{didUpdate:!1};let l=a?a(e.newState):e.newState;return!e.forceUpdate&&n(c,l)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:l}),s({state:l},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let s=this.state;if(!(e||s!==t))return;this.state=t;let r=this.subscribers.values(),n={forceUpdate:e,newState:t,currentState:s,identifier:a};for(let l of r)this.executeSetStateForSubscriber(l,n)}setMetadata(t){let e=(0,p.default)(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var u;let s=(0,p.default)(e),c=s?t:void 0,r=s?e:t,n=(u=s?a:e)!=null?u:void 0,l=c?c(this.state):this.state;n!=null&&n.skipFirst||r(l);let o=k({selector:c,currentState:l,onStoreChange:({state:b})=>r(b)},n);return this.subscribeCallback(o),()=>{this.subscribers.delete(o)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(r,n=[])=>{(0,f.useDebugValue)(t);let l=(0,A.isArray)(n)?{dependencies:n}:n!=null?n:{},o=(0,f.useRef)(null),u=P=>(0,p.default)(r)?r(P):P;o.current=o.current?o.current:k({selector:u,currentState:u(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},l);let b=o.current.dependencies,d=l==null?void 0:l.dependencies,S=x(k({},l),{selector:u,dependencies:d});this.partialUpdateSubscription(o.current,S);let{subscribe:h,getSnapshot:C,getServerSnapshot:q}=(0,f.useMemo)(()=>{let P=j=>(o.current.onStoreChange=j,this.subscribeCallback(o.current)),T=()=>o.current.currentState;return{subscribe:P,getSnapshot:T,getServerSnapshot:T}},[]);return this.reselectIfDependenciesChanged({subscription:o.current,newDependencies:d,currentDependencies:b}),[(0,f.useSyncExternalStore)(h,C,q),this.getStateOrchestrator(),this.metadata]},a=this,s=this.getMetadata.bind(this),c={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:this.dispose.bind(this),metadata:void 0,getMetadata:s,getState:this.getState.bind(this),reset:this.reset.bind(this),setMetadata:this.setMetadata.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),subscribers:this.subscribers,use:e,select:(...r)=>e(...r)[0]};return Object.assign(e,c),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:s}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&(0,A.default)(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState.bind(this)}setState(t,{forceUpdate:e,identifier:a}={}){var o,u,b,d,S,h;let s=this.state,c=(0,p.default)(t)?t(s):t;if(!e&&this.state===c)return;let r=this.setActualStateWithoutValidations,n={previousState:s,state:c,identifier:a},l=x(k(k({},this.storeTools),n),{setState:r});Object.defineProperty(l,"metadata",{configurable:!0,enumerable:!0,get:l.getMetadata}),!((o=this.callbacks)!=null&&o.computePreventStateChange&&((b=(u=this.callbacks)==null?void 0:u.computePreventStateChange)!=null&&b.call(u,l)))&&(this.setActualStateWithoutValidations(c,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,l),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,l))}getStoreActionsMap(){let t=this.getMetadata.bind(this),e={setMetadata:this.setMetadata.bind(this),get metadata(){return t()},getMetadata:t,getState:this.getState.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),actions:null};if(!(0,_.default)(this.actionsConfig))return{actions:null,storeTools:e};let a=this.actionsConfig,s={};e.actions=s;let c=Object.keys(a);for(let r of c)Object.assign(s,{[r](...n){let o=a[r].apply(s,n);return typeof o!="function"&&(0,U.default)(r),o.call(s,e)}});return{actions:s,storeTools:e}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var o,u,b,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,s=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(s);let c=(u=(o=this.onInit)==null?void 0:o.call(this))!=null?u:null;(0,p.default)(c)&&this.cleanupFunctions.push(c);let{onInit:r}=(b=this.callbacks)!=null?b:{};if(!r)return;let n=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,l=(h=r==null?void 0:r(n))!=null?h:null;(0,p.default)(l)&&this.cleanupFunctions.push(l)}};function y(i,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,c=this.getState(),r=(i!=null?i:b=>b)(c),n=new M(r,{name:e!=null?e:(0,v.default)("sh:")}),l=this.subscribe(b=>{if((a!=null?a:Object.is)(c,b))return;c=b;let S=i(b);(s!=null?s:Object.is)(r,S)||(r=S,n.setState(S))},{skipFirst:!0}),o=n.subscribe.bind(n),u={getState:n.getState.bind(n),subscribe:n.subscribe.bind(n),createSelectorHook:R.bind(o),createObservable:y.bind(o),dispose:()=>{l(),n.dispose()},subscribers:n.subscribers};return Object.assign(o,u),o}function R(i,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,c=this.getState(),r=(i!=null?i:b=>b)(c),n=new M(r,{name:e!=null?e:(0,v.default)("sh:")}),l=this.subscribe(b=>{if((a!=null?a:Object.is)(c,b))return;c=b;let S=i(b);(s!=null?s:Object.is)(r,S)||(r=S,n.setState(S))},{skipFirst:!0}),o=(...b)=>{let[d]=n.use(...b);return d},u={getState:()=>n.getState(),subscribe:n.subscribe.bind(n),createSelectorHook:R.bind(o),createObservable:y.bind(o),dispose:()=>{l(),n.dispose()},subscribers:n.subscribers};return Object.assign(o,u),o}var N=M;
1
+ "use strict";var z=Object.create;var m=Object.defineProperty,D=Object.defineProperties,K=Object.getOwnPropertyDescriptor,N=Object.getOwnPropertyDescriptors,$=Object.getOwnPropertyNames,E=Object.getOwnPropertySymbols,J=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable;var H=(n,t,e)=>t in n?m(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,g=(n,t)=>{for(var e in t||(t={}))_.call(t,e)&&H(n,e,t[e]);if(E)for(var e of E(t))Q.call(t,e)&&H(n,e,t[e]);return n},O=(n,t)=>D(n,N(t));var X=(n,t)=>{for(var e in t)m(n,e,{get:t[e],enumerable:!0})},U=(n,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $(t))!_.call(n,s)&&s!==e&&m(n,s,{get:()=>t[s],enumerable:!(a=K(t,s))||a.enumerable});return n};var M=(n,t,e)=>(e=n!=null?z(J(n)):{},U(t||!n||!n.__esModule?m(e,"default",{value:n,enumerable:!0}):e,n)),Y=n=>U(m({},"__esModule",{value:!0}),n);var tt={};X(tt,{GlobalStore:()=>C,createObservable:()=>y,createSelectorHook:()=>R,default:()=>Z});module.exports=Y(tt);var k=require("react"),f=M(require("json-storage-formatter/isFunction")),q=M(require("./isRecord.js")),A=M(require("./shallowCompare.js")),j=M(require("./throwWrongKeyOnActionCollectionConfig.js")),v=M(require("./uniqueId.js")),T=M(require("./GlobalStore.debugProps.js"));var C=class n{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=R;this.createObservable=y;var r,l,u;this.dispose=this.dispose.bind(this),this.getMetadata=this.getMetadata.bind(this),this.getState=this.getState.bind(this),this.reset=this.reset.bind(this),this.setMetadata=this.setMetadata.bind(this),this.setState=this.setState.bind(this),this.subscribe=this.subscribe.bind(this);let{metadata:a,callbacks:s,actions:i,name:c}=e;if((0,f.default)(t)&&(this.stateCallback=t),(0,f.default)(a)&&(this.metadataCallback=a),this._name=c!=null?c:(0,v.default)("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=s!=null?s:null,this.actionsConfig=i!=null?i:null,T.default.isDevToolsPresent){let b=(r=new Error().stack)!=null?r:"";(u=(l=T.default).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||u.call(l,this,e,b)}this.constructor===n&&this.initialize()}async initialize(){var r,l,u,b,d,S,h,p;let t=(l=(r=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:r.call(this))!=null?l:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let s=(b=(u=this.onInit)==null?void 0:u.call(this))!=null?b:null;(0,f.default)(s)&&this.cleanupFunctions.push(s);let{onInit:i}=(d=this.callbacks)!=null?d:{};if(!i)return;let c=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,o=(p=i==null?void 0:i(c))!=null?p:null;(0,f.default)(o)&&this.cleanupFunctions.push(o)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:s,currentState:i,isEqualRoot:c=(l,u)=>l===u,isEqual:o=(l,u)=>l===u}=t;if(!e.forceUpdate&&c(e.currentState,e.newState))return{didUpdate:!1};let r=a?a(e.newState):e.newState;return!e.forceUpdate&&o(i,r)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:r}),s({state:r},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let s=this.state;if(!(e||s!==t))return;this.state=t;let c=this.subscribers.values(),o={forceUpdate:e,newState:t,currentState:s,identifier:a};for(let r of c)this.executeSetStateForSubscriber(r,o)}setMetadata(t){let e=(0,f.default)(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var u;let s=(0,f.default)(e),i=s?t:void 0,c=s?e:t,o=(u=s?a:e)!=null?u:void 0,r=i?i(this.state):this.state;o!=null&&o.skipFirst||c(r);let l=g({selector:i,currentState:r,onStoreChange:({state:b})=>c(b)},o);return this.subscribeCallback(l),()=>{this.subscribers.delete(l)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(d,S=[])=>{(0,k.useDebugValue)(t);let h=(0,A.isArray)(S)?{dependencies:S}:S!=null?S:{},p=(0,k.useRef)(null),x=P=>(0,f.default)(d)?d(P):P;p.current=p.current?p.current:g({selector:x,currentState:x(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},h);let V=p.current.dependencies,w=h==null?void 0:h.dependencies,W=O(g({},h),{selector:x,dependencies:w});this.partialUpdateSubscription(p.current,W);let{subscribe:B,getSnapshot:I,getServerSnapshot:L}=(0,k.useMemo)(()=>{let P=G=>(p.current.onStoreChange=G,this.subscribeCallback(p.current)),F=()=>p.current.currentState;return{subscribe:P,getSnapshot:F,getServerSnapshot:F}},[]);return this.reselectIfDependenciesChanged({subscription:p.current,newDependencies:w,currentDependencies:V}),[(0,k.useSyncExternalStore)(B,I,L),this.getStateOrchestrator(),this.metadata]},a=this,{getMetadata:s,dispose:i,getState:c,reset:o,setMetadata:r,setState:l,subscribe:u}=this,b={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:i,metadata:void 0,getMetadata:s,getState:c,reset:o,setMetadata:r,setState:l,subscribe:u,subscribers:this.subscribers,use:e,select:(...d)=>e(...d)[0]};return Object.assign(e,b),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:s}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&(0,A.default)(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState}setState(t,{forceUpdate:e,identifier:a}={}){var l,u,b,d,S,h;let s=this.state,i=(0,f.default)(t)?t(s):t;if(!e&&this.state===i)return;let c=this.setActualStateWithoutValidations,o={previousState:s,state:i,identifier:a},r=O(g(g({},this.storeTools),o),{setState:c});Object.defineProperty(r,"metadata",{configurable:!0,enumerable:!0,get:r.getMetadata}),!((l=this.callbacks)!=null&&l.computePreventStateChange&&((b=(u=this.callbacks)==null?void 0:u.computePreventStateChange)!=null&&b.call(u,r)))&&(this.setActualStateWithoutValidations(i,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,r),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,r))}getStoreActionsMap(){let{getMetadata:t,setMetadata:e,getState:a,setState:s,subscribe:i}=this,c={setMetadata:e,get metadata(){return t()},getMetadata:t,getState:a,setState:s,subscribe:i,actions:null};if(!(0,q.default)(this.actionsConfig))return{actions:null,storeTools:c};let o=this.actionsConfig,r={};c.actions=r;let l=Object.keys(o);for(let u of l)Object.assign(r,{[u](...b){let S=o[u].apply(r,b);return typeof S!="function"&&(0,j.default)(u),S.call(r,c)}});return{actions:r,storeTools:c}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var l,u,b,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,s=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(s);let i=(u=(l=this.onInit)==null?void 0:l.call(this))!=null?u:null;(0,f.default)(i)&&this.cleanupFunctions.push(i);let{onInit:c}=(b=this.callbacks)!=null?b:{};if(!c)return;let o=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,r=(h=c==null?void 0:c(o))!=null?h:null;(0,f.default)(r)&&this.cleanupFunctions.push(r)}};function y(n,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,i=this.getState(),c=(n!=null?n:b=>b)(i),o=new C(c,{name:e!=null?e:(0,v.default)("sh:")}),r=this.subscribe(b=>{if((a!=null?a:Object.is)(i,b))return;i=b;let S=n(b);(s!=null?s:Object.is)(c,S)||(c=S,o.setState(S))},{skipFirst:!0}),l=o.subscribe.bind(o),u={getState:o.getState.bind(o),subscribe:o.subscribe.bind(o),createSelectorHook:R.bind(l),createObservable:y.bind(l),dispose:()=>{r(),o.dispose()},subscribers:o.subscribers};return Object.assign(l,u),l}function R(n,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,i=this.getState(),c=(n!=null?n:b=>b)(i),o=new C(c,{name:e!=null?e:(0,v.default)("sh:")}),r=this.subscribe(b=>{if((a!=null?a:Object.is)(i,b))return;i=b;let S=n(b);(s!=null?s:Object.is)(c,S)||(c=S,o.setState(S))},{skipFirst:!0}),l=(...b)=>{let[d]=o.use(...b);return d},u={getState:()=>o.getState(),subscribe:o.subscribe.bind(o),createSelectorHook:R.bind(l),createObservable:y.bind(l),dispose:()=>{r(),o.dispose()},subscribers:o.subscribers};return Object.assign(l,u),l}var Z=C;
package/GlobalStore.mjs CHANGED
@@ -1 +1 @@
1
- var w=Object.defineProperty,F=Object.defineProperties;var E=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var R=(b,t,e)=>t in b?w(b,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):b[t]=e,f=(b,t)=>{for(var e in t||(t={}))H.call(t,e)&&R(b,e,t[e]);if(y)for(var e of y(t))_.call(t,e)&&R(b,e,t[e]);return b},C=(b,t)=>F(b,E(t));import{useDebugValue as U,useMemo as q,useRef as j,useSyncExternalStore as V}from"react";import p from"json-storage-formatter/isFunction";import W from"./isRecord.mjs";import B,{isArray as I}from"./shallowCompare.mjs";import L from"./throwWrongKeyOnActionCollectionConfig.mjs";import m from"./uniqueId.mjs";import x from"./GlobalStore.debugProps.mjs";var g=class b{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=A;this.createObservable=P;var c,n,l;let{metadata:a,callbacks:o,actions:r,name:i}=e;if(p(t)&&(this.stateCallback=t),p(a)&&(this.metadataCallback=a),this._name=i!=null?i:m("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=o!=null?o:null,this.actionsConfig=r!=null?r:null,x.isDevToolsPresent){let u=(c=new Error().stack)!=null?c:"";(l=(n=x).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||l.call(n,this,e,u)}this.constructor===b&&this.initialize()}async initialize(){var c,n,l,u,d,S,h,k;let t=(n=(c=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:c.call(this))!=null?n:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let o=(u=(l=this.onInit)==null?void 0:l.call(this))!=null?u:null;p(o)&&this.cleanupFunctions.push(o);let{onInit:r}=(d=this.callbacks)!=null?d:{};if(!r)return;let i=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,s=(k=r==null?void 0:r(i))!=null?k:null;p(s)&&this.cleanupFunctions.push(s)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:o,currentState:r,isEqualRoot:i=(n,l)=>n===l,isEqual:s=(n,l)=>n===l}=t;if(!e.forceUpdate&&i(e.currentState,e.newState))return{didUpdate:!1};let c=a?a(e.newState):e.newState;return!e.forceUpdate&&s(r,c)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:c}),o({state:c},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let o=this.state;if(!(e||o!==t))return;this.state=t;let i=this.subscribers.values(),s={forceUpdate:e,newState:t,currentState:o,identifier:a};for(let c of i)this.executeSetStateForSubscriber(c,s)}setMetadata(t){let e=p(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var l;let o=p(e),r=o?t:void 0,i=o?e:t,s=(l=o?a:e)!=null?l:void 0,c=r?r(this.state):this.state;s!=null&&s.skipFirst||i(c);let n=f({selector:r,currentState:c,onStoreChange:({state:u})=>i(u)},s);return this.subscribeCallback(n),()=>{this.subscribers.delete(n)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(i,s=[])=>{U(t);let c=I(s)?{dependencies:s}:s!=null?s:{},n=j(null),l=M=>p(i)?i(M):M;n.current=n.current?n.current:f({selector:l,currentState:l(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},c);let u=n.current.dependencies,d=c==null?void 0:c.dependencies,S=C(f({},c),{selector:l,dependencies:d});this.partialUpdateSubscription(n.current,S);let{subscribe:h,getSnapshot:k,getServerSnapshot:O}=q(()=>{let M=T=>(n.current.onStoreChange=T,this.subscribeCallback(n.current)),v=()=>n.current.currentState;return{subscribe:M,getSnapshot:v,getServerSnapshot:v}},[]);return this.reselectIfDependenciesChanged({subscription:n.current,newDependencies:d,currentDependencies:u}),[V(h,k,O),this.getStateOrchestrator(),this.metadata]},a=this,o=this.getMetadata.bind(this),r={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:this.dispose.bind(this),metadata:void 0,getMetadata:o,getState:this.getState.bind(this),reset:this.reset.bind(this),setMetadata:this.setMetadata.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),subscribers:this.subscribers,use:e,select:(...i)=>e(...i)[0]};return Object.assign(e,r),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:o}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&B(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState.bind(this)}setState(t,{forceUpdate:e,identifier:a}={}){var n,l,u,d,S,h;let o=this.state,r=p(t)?t(o):t;if(!e&&this.state===r)return;let i=this.setActualStateWithoutValidations,s={previousState:o,state:r,identifier:a},c=C(f(f({},this.storeTools),s),{setState:i});Object.defineProperty(c,"metadata",{configurable:!0,enumerable:!0,get:c.getMetadata}),!((n=this.callbacks)!=null&&n.computePreventStateChange&&((u=(l=this.callbacks)==null?void 0:l.computePreventStateChange)!=null&&u.call(l,c)))&&(this.setActualStateWithoutValidations(r,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,c),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,c))}getStoreActionsMap(){let t=this.getMetadata.bind(this),e={setMetadata:this.setMetadata.bind(this),get metadata(){return t()},getMetadata:t,getState:this.getState.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),actions:null};if(!W(this.actionsConfig))return{actions:null,storeTools:e};let a=this.actionsConfig,o={};e.actions=o;let r=Object.keys(a);for(let i of r)Object.assign(o,{[i](...s){let n=a[i].apply(o,s);return typeof n!="function"&&L(i),n.call(o,e)}});return{actions:o,storeTools:e}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var n,l,u,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,o=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(o);let r=(l=(n=this.onInit)==null?void 0:n.call(this))!=null?l:null;p(r)&&this.cleanupFunctions.push(r);let{onInit:i}=(u=this.callbacks)!=null?u:{};if(!i)return;let s=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,c=(h=i==null?void 0:i(s))!=null?h:null;p(c)&&this.cleanupFunctions.push(c)}};function P(b,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,o=t==null?void 0:t.isEqual,r=this.getState(),i=(b!=null?b:u=>u)(r),s=new g(i,{name:e!=null?e:m("sh:")}),c=this.subscribe(u=>{if((a!=null?a:Object.is)(r,u))return;r=u;let S=b(u);(o!=null?o:Object.is)(i,S)||(i=S,s.setState(S))},{skipFirst:!0}),n=s.subscribe.bind(s),l={getState:s.getState.bind(s),subscribe:s.subscribe.bind(s),createSelectorHook:A.bind(n),createObservable:P.bind(n),dispose:()=>{c(),s.dispose()},subscribers:s.subscribers};return Object.assign(n,l),n}function A(b,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,o=t==null?void 0:t.isEqual,r=this.getState(),i=(b!=null?b:u=>u)(r),s=new g(i,{name:e!=null?e:m("sh:")}),c=this.subscribe(u=>{if((a!=null?a:Object.is)(r,u))return;r=u;let S=b(u);(o!=null?o:Object.is)(i,S)||(i=S,s.setState(S))},{skipFirst:!0}),n=(...u)=>{let[d]=s.use(...u);return d},l={getState:()=>s.getState(),subscribe:s.subscribe.bind(s),createSelectorHook:A.bind(n),createObservable:P.bind(n),dispose:()=>{c(),s.dispose()},subscribers:s.subscribers};return Object.assign(n,l),n}var Y=g;export{g as GlobalStore,P as createObservable,A as createSelectorHook,Y as default};
1
+ var q=Object.defineProperty,j=Object.defineProperties;var V=Object.getOwnPropertyDescriptors;var x=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var O=(S,t,e)=>t in S?q(S,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):S[t]=e,k=(S,t)=>{for(var e in t||(t={}))W.call(t,e)&&O(S,e,t[e]);if(x)for(var e of x(t))B.call(t,e)&&O(S,e,t[e]);return S},m=(S,t)=>j(S,V(t));import{useDebugValue as I,useMemo as L,useRef as G,useSyncExternalStore as z}from"react";import f from"json-storage-formatter/isFunction";import D from"./isRecord.mjs";import K,{isArray as N}from"./shallowCompare.mjs";import $ from"./throwWrongKeyOnActionCollectionConfig.mjs";import P from"./uniqueId.mjs";import T from"./GlobalStore.debugProps.mjs";var g=class S{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=v;this.createObservable=A;var n,c,l;this.dispose=this.dispose.bind(this),this.getMetadata=this.getMetadata.bind(this),this.getState=this.getState.bind(this),this.reset=this.reset.bind(this),this.setMetadata=this.setMetadata.bind(this),this.setState=this.setState.bind(this),this.subscribe=this.subscribe.bind(this);let{metadata:a,callbacks:i,actions:o,name:r}=e;if(f(t)&&(this.stateCallback=t),f(a)&&(this.metadataCallback=a),this._name=r!=null?r:P("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=i!=null?i:null,this.actionsConfig=o!=null?o:null,T.isDevToolsPresent){let u=(n=new Error().stack)!=null?n:"";(l=(c=T).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||l.call(c,this,e,u)}this.constructor===S&&this.initialize()}async initialize(){var n,c,l,u,d,b,h,p;let t=(c=(n=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:n.call(this))!=null?c:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let i=(u=(l=this.onInit)==null?void 0:l.call(this))!=null?u:null;f(i)&&this.cleanupFunctions.push(i);let{onInit:o}=(d=this.callbacks)!=null?d:{};if(!o)return;let r=(h=(b=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:b.call(this,"config/onInit/"))!=null?h:a,s=(p=o==null?void 0:o(r))!=null?p:null;f(s)&&this.cleanupFunctions.push(s)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:i,currentState:o,isEqualRoot:r=(c,l)=>c===l,isEqual:s=(c,l)=>c===l}=t;if(!e.forceUpdate&&r(e.currentState,e.newState))return{didUpdate:!1};let n=a?a(e.newState):e.newState;return!e.forceUpdate&&s(o,n)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:n}),i({state:n},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let i=this.state;if(!(e||i!==t))return;this.state=t;let r=this.subscribers.values(),s={forceUpdate:e,newState:t,currentState:i,identifier:a};for(let n of r)this.executeSetStateForSubscriber(n,s)}setMetadata(t){let e=f(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var l;let i=f(e),o=i?t:void 0,r=i?e:t,s=(l=i?a:e)!=null?l:void 0,n=o?o(this.state):this.state;s!=null&&s.skipFirst||r(n);let c=k({selector:o,currentState:n,onStoreChange:({state:u})=>r(u)},s);return this.subscribeCallback(c),()=>{this.subscribers.delete(c)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(d,b=[])=>{I(t);let h=N(b)?{dependencies:b}:b!=null?b:{},p=G(null),C=M=>f(d)?d(M):M;p.current=p.current?p.current:k({selector:C,currentState:C(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},h);let w=p.current.dependencies,y=h==null?void 0:h.dependencies,F=m(k({},h),{selector:C,dependencies:y});this.partialUpdateSubscription(p.current,F);let{subscribe:E,getSnapshot:H,getServerSnapshot:_}=L(()=>{let M=U=>(p.current.onStoreChange=U,this.subscribeCallback(p.current)),R=()=>p.current.currentState;return{subscribe:M,getSnapshot:R,getServerSnapshot:R}},[]);return this.reselectIfDependenciesChanged({subscription:p.current,newDependencies:y,currentDependencies:w}),[z(E,H,_),this.getStateOrchestrator(),this.metadata]},a=this,{getMetadata:i,dispose:o,getState:r,reset:s,setMetadata:n,setState:c,subscribe:l}=this,u={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:o,metadata:void 0,getMetadata:i,getState:r,reset:s,setMetadata:n,setState:c,subscribe:l,subscribers:this.subscribers,use:e,select:(...d)=>e(...d)[0]};return Object.assign(e,u),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:i}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&K(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState}setState(t,{forceUpdate:e,identifier:a}={}){var c,l,u,d,b,h;let i=this.state,o=f(t)?t(i):t;if(!e&&this.state===o)return;let r=this.setActualStateWithoutValidations,s={previousState:i,state:o,identifier:a},n=m(k(k({},this.storeTools),s),{setState:r});Object.defineProperty(n,"metadata",{configurable:!0,enumerable:!0,get:n.getMetadata}),!((c=this.callbacks)!=null&&c.computePreventStateChange&&((u=(l=this.callbacks)==null?void 0:l.computePreventStateChange)!=null&&u.call(l,n)))&&(this.setActualStateWithoutValidations(o,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,n),(h=(b=this.callbacks)==null?void 0:b.onStateChanged)==null||h.call(b,n))}getStoreActionsMap(){let{getMetadata:t,setMetadata:e,getState:a,setState:i,subscribe:o}=this,r={setMetadata:e,get metadata(){return t()},getMetadata:t,getState:a,setState:i,subscribe:o,actions:null};if(!D(this.actionsConfig))return{actions:null,storeTools:r};let s=this.actionsConfig,n={};r.actions=n;let c=Object.keys(s);for(let l of c)Object.assign(n,{[l](...u){let b=s[l].apply(n,u);return typeof b!="function"&&$(l),b.call(n,r)}});return{actions:n,storeTools:r}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var c,l,u,d,b,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,i=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(i);let o=(l=(c=this.onInit)==null?void 0:c.call(this))!=null?l:null;f(o)&&this.cleanupFunctions.push(o);let{onInit:r}=(u=this.callbacks)!=null?u:{};if(!r)return;let s=(b=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?b:this.storeTools,n=(h=r==null?void 0:r(s))!=null?h:null;f(n)&&this.cleanupFunctions.push(n)}};function A(S,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,i=t==null?void 0:t.isEqual,o=this.getState(),r=(S!=null?S:u=>u)(o),s=new g(r,{name:e!=null?e:P("sh:")}),n=this.subscribe(u=>{if((a!=null?a:Object.is)(o,u))return;o=u;let b=S(u);(i!=null?i:Object.is)(r,b)||(r=b,s.setState(b))},{skipFirst:!0}),c=s.subscribe.bind(s),l={getState:s.getState.bind(s),subscribe:s.subscribe.bind(s),createSelectorHook:v.bind(c),createObservable:A.bind(c),dispose:()=>{n(),s.dispose()},subscribers:s.subscribers};return Object.assign(c,l),c}function v(S,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,i=t==null?void 0:t.isEqual,o=this.getState(),r=(S!=null?S:u=>u)(o),s=new g(r,{name:e!=null?e:P("sh:")}),n=this.subscribe(u=>{if((a!=null?a:Object.is)(o,u))return;o=u;let b=S(u);(i!=null?i:Object.is)(r,b)||(r=b,s.setState(b))},{skipFirst:!0}),c=(...u)=>{let[d]=s.use(...u);return d},l={getState:()=>s.getState(),subscribe:s.subscribe.bind(s),createSelectorHook:v.bind(c),createObservable:A.bind(c),dispose:()=>{n(),s.dispose()},subscribers:s.subscribers};return Object.assign(c,l),c}var ot=g;export{g as GlobalStore,A as createObservable,v as createSelectorHook,ot as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-hooks-global-states",
3
- "version": "16.0.2",
3
+ "version": "16.0.3",
4
4
  "description": "A package to easily handle global state across your React components using hooks.",
5
5
  "main": "./bundle.cjs",
6
6
  "module": "./bundle.mjs",