@biglogic/rgs 2.9.2 → 2.9.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/README.md
CHANGED
|
@@ -101,7 +101,7 @@ Best for modern applications. Clean imports, zero global pollution.
|
|
|
101
101
|
```tsx
|
|
102
102
|
import { gstate } from '@biglogic/rgs'
|
|
103
103
|
|
|
104
|
-
//
|
|
104
|
+
// gstate CREA un hook personalizzato - NON si importa!
|
|
105
105
|
const useCounter = gstate({ count: 0 })
|
|
106
106
|
|
|
107
107
|
// In your component
|
|
@@ -114,7 +114,7 @@ Best for shared state across the entire application.
|
|
|
114
114
|
|
|
115
115
|
```tsx
|
|
116
116
|
// 1. Initialize once
|
|
117
|
-
import { initState } from '@biglogic/rgs'
|
|
117
|
+
import { initState, useStore } from '@biglogic/rgs'
|
|
118
118
|
initState({ namespace: 'app' })
|
|
119
119
|
|
|
120
120
|
// 2. Use anywhere
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var vn=Object.create;var kt=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var _n=Object.getOwnPropertyNames;var En=Object.getPrototypeOf,Rn=Object.prototype.hasOwnProperty;var ze=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var xn=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _n(t))!Rn.call(e,o)&&o!==n&&kt(e,o,{get:()=>t[o],enumerable:!(r=bn(t,o))||r.enumerable});return e};var Pn=(e,t,n)=>(n=e!=null?vn(En(e)):{},xn(t||!e||!e.__esModule?kt(n,"default",{value:e,enumerable:!0}):n,e));var nn=ze((Wr,tn)=>{"use strict";var ht=Object.defineProperty,In=Object.getOwnPropertyDescriptor,On=Object.getOwnPropertyNames,Dn=Object.prototype.hasOwnProperty,jn=(e,t)=>{for(var n in t)ht(e,n,{get:t[n],enumerable:!0})},$n=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of On(t))!Dn.call(e,o)&&o!==n&&ht(e,o,{get:()=>t[o],enumerable:!(r=In(t,o))||r.enumerable});return e},zn=e=>$n(ht({},"__esModule",{value:!0}),e),Yt={};jn(Yt,{Immer:()=>Qt,applyPatches:()=>sr,castDraft:()=>ur,castImmutable:()=>lr,createDraft:()=>ir,current:()=>Zt,enableArrayMethods:()=>Zn,enableMapSet:()=>Qn,enablePatches:()=>Xn,finishDraft:()=>ar,freeze:()=>Xe,immerable:()=>ce,isDraft:()=>q,isDraftable:()=>Y,nothing:()=>Fe,original:()=>Nn,produce:()=>er,produceWithPatches:()=>tr,setAutoFreeze:()=>nr,setUseStrictIteration:()=>or,setUseStrictShallowCopy:()=>rr});tn.exports=zn(Yt);var Fe=Symbol.for("immer-nothing"),ce=Symbol.for("immer-draftable"),P=Symbol.for("immer-state");function U(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var K=Object,ae=K.getPrototypeOf,be="constructor",Ce="prototype",ct="configurable",Le="enumerable",He="writable",_e="value",q=e=>!!e&&!!e[P];function Y(e){return e?Bt(e)||Ae(e)||!!e[ce]||!!e[be]?.[ce]||ke(e)||Te(e):!1}var Un=K[Ce][be].toString(),Nt=new WeakMap;function Bt(e){if(!e||!fe(e))return!1;let t=ae(e);if(t===null||t===K[Ce])return!0;let n=K.hasOwnProperty.call(t,be)&&t[be];if(n===Object)return!0;if(!ie(n))return!1;let r=Nt.get(n);return r===void 0&&(r=Function.toString.call(n),Nt.set(n,r)),r===Un}function Nn(e){return q(e)||U(15,e),e[P].t}function pe(e,t,n=!0){ue(e)===0?(n?Reflect.ownKeys(e):K.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,o)=>t(o,r,e))}function ue(e){let t=e[P];return t?t.r:Ae(e)?1:ke(e)?2:Te(e)?3:0}var we=(e,t,n=ue(e))=>n===2?e.has(t):K[Ce].hasOwnProperty.call(e,t),ee=(e,t,n=ue(e))=>n===2?e.get(t):e[t],We=(e,t,n,r=ue(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Vn(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Ae=Array.isArray,ke=e=>e instanceof Map,Te=e=>e instanceof Set,fe=e=>typeof e=="object",ie=e=>typeof e=="function",ut=e=>typeof e=="boolean";function Hn(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Gt=e=>fe(e)?e?.[P]:null,$=e=>e.e||e.t,Ln=e=>{let t=Gt(e);return t?t.e??t.t:e},yt=e=>e.s?e.e:e.t;function ft(e,t){if(ke(e))return new Map(e);if(Te(e))return new Set(e);if(Ae(e))return Array[Ce].slice.call(e);let n=Bt(e);if(t===!0||t==="class_only"&&!n){let r=K.getOwnPropertyDescriptors(e);delete r[P];let o=Reflect.ownKeys(r);for(let s=0;s<o.length;s++){let l=o[s],h=r[l];h[He]===!1&&(h[He]=!0,h[ct]=!0),(h.get||h.set)&&(r[l]={[ct]:!0,[He]:!0,[Le]:h[Le],[_e]:e[l]})}return K.create(ae(e),r)}else{let r=ae(e);if(r!==null&&n)return{...e};let o=K.create(r);return K.assign(o,e)}}function Xe(e,t=!1){return Qe(e)||q(e)||!Y(e)||(ue(e)>1&&K.defineProperties(e,{set:Ve,add:Ve,clear:Ve,delete:Ve}),K.freeze(e),t&&pe(e,(n,r)=>{Xe(r,!0)},!1)),e}function Wn(){U(2)}var Ve={[_e]:Wn};function Qe(e){return e===null||!fe(e)?!0:K.isFrozen(e)}var Ee="MapSet",Ke="Patches",pt="ArrayMethods",Ye={};function le(e){let t=Ye[e];return t||U(0,e),t}var Vt=e=>!!Ye[e];function mt(e,t){Ye[e]||(Ye[e]=t)}var Re,Be=()=>Re,Kn=(e,t)=>({o:[],i:e,l:t,F:!0,m:0,P:new Set,T:new Set,I:Vt(Ee)?le(Ee):void 0,E:Vt(pt)?le(pt):void 0});function Ht(e,t){t&&(e.x=le(Ke),e.y=[],e.d=[],e.C=t)}function dt(e){gt(e),e.o.forEach(Yn),e.o=null}function gt(e){e===Re&&(Re=e.i)}var Lt=e=>Re=Kn(Re,e);function Yn(e){let t=e[P];t.r===0||t.r===1?t.b():t.g=!0}function Wt(e,t){t.m=t.o.length;let n=t.o[0];if(e!==void 0&&e!==n){n[P].s&&(dt(t),U(4)),Y(e)&&(e=Kt(t,e));let{x:r}=t;r&&r.M(n[P].t,e,t)}else e=Kt(t,n);return Bn(t,e,!0),dt(t),t.y&&t.C(t.y,t.d),e!==Fe?e:void 0}function Kt(e,t){if(Qe(t))return t;let n=t[P];if(!n)return qe(t,e.P,e);if(!Ze(n,e))return t;if(!n.s)return n.t;if(!n.u){let{f:r}=n;if(r)for(;r.length>0;)r.pop()(e);Ft(n,e)}return n.e}function Bn(e,t,n=!1){!e.i&&e.l.h&&e.F&&Xe(t,n)}function qt(e){e.u=!0,e.a.m--}var Ze=(e,t)=>e.a===t,Gn=[];function Jt(e,t,n,r){let o=$(e),s=e.r;if(r!==void 0&&ee(o,r,s)===t){We(o,r,n,s);return}if(!e.D){let h=e.D=new Map;pe(o,(g,a)=>{if(q(a)){let f=h.get(a)||[];f.push(g),h.set(a,f)}})}let l=e.D.get(t)??Gn;for(let h of l)We(o,h,n,s)}function qn(e,t,n){e.f.push(function(r){let o=t;if(!o||!Ze(o,r))return;r.I?.fixSetContents(o);let s=yt(o);Jt(e,o.c??o,s,n),Ft(o,r)})}function Ft(e,t){if(e.s&&!e.u&&(e.r===3||e.r===1&&e.R||(e.n?.size??0)>0)){let{x:n}=t;if(n){let r=n.getPath(e);r&&n.O(e,r,t)}qt(e)}}function Ge(e,t,n){let{a:r}=e;if(q(n)){let o=n[P];Ze(o,r)&&o.f.push(function(){ve(e);let s=yt(o);Jt(e,n,s,t)})}else Y(n)&&e.f.push(function(){let o=$(e);e.r===3?o.has(n)&&qe(n,r.P,r):ee(o,t,e.r)===n&&r.o.length>1&&(e.n.get(t)??!1)===!0&&e.e&&qe(ee(e.e,t,e.r),r.P,r)})}function qe(e,t,n){return!n.l.h&&n.m<1||q(e)||t.has(e)||!Y(e)||Qe(e)||(t.add(e),pe(e,(r,o)=>{if(q(o)){let s=o[P];if(Ze(s,n)){let l=yt(s);We(e,r,l,e.r),qt(s)}}else Y(o)&&qe(o,t,n)})),e}function Jn(e,t){let n=Ae(e),r={r:n?1:0,a:t?t.a:Be(),s:!1,u:!1,n:void 0,i:t,t:e,c:null,e:null,b:null,S:!1,f:void 0},o=r,s=Je;n&&(o=[r],s=xe);let{revoke:l,proxy:h}=Proxy.revocable(o,s);return r.c=h,r.b=l,[h,r]}var Je={get(e,t){if(t===P)return e;let n=e.a.E,r=e.r===1&&typeof t=="string";if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let o=$(e);if(!we(o,t,e.r))return Fn(e,o,t);let s=o[t];if(e.u||!Y(s)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Hn(t))return s;if(s===lt(e.t,t)){ve(e);let l=e.r===1?+t:t,h=Pe(e.a,s,e,l);return e.e[l]=h}return s},has(e,t){return t in $(e)},ownKeys(e){return Reflect.ownKeys($(e))},set(e,t,n){let r=Xt($(e),t);if(r?.set)return r.set.call(e.c,n),!0;if(!e.s){let o=lt($(e),t),s=o?.[P];if(s&&s.t===n)return e.e[t]=n,e.n.set(t,!1),!0;if(Vn(n,o)&&(n!==void 0||we(e.t,t,e.r)))return!0;ve(e),X(e)}return e.e[t]===n&&(n!==void 0||t in e.e)||Number.isNaN(n)&&Number.isNaN(e.e[t])||(e.e[t]=n,e.n.set(t,!0),Ge(e,t,n)),!0},deleteProperty(e,t){return ve(e),lt(e.t,t)!==void 0||t in e.t?(e.n.set(t,!1),X(e)):e.n.delete(t),e.e&&delete e.e[t],!0},getOwnPropertyDescriptor(e,t){let n=$(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[He]:!0,[ct]:e.r!==1||t!=="length",[Le]:r[Le],[_e]:n[t]}},defineProperty(){U(11)},getPrototypeOf(e){return ae(e.t)},setPrototypeOf(){U(12)}},xe={};for(let e in Je){let t=Je[e];xe[e]=function(){let n=arguments;return n[0]=n[0][0],t.apply(this,n)}}xe.deleteProperty=function(e,t){return xe.set.call(this,e,t,void 0)};xe.set=function(e,t,n){return Je.set.call(this,e[0],t,n,e[0])};function lt(e,t){let n=e[P];return(n?$(n):e)[t]}function Fn(e,t,n){let r=Xt(t,n);return r?_e in r?r[_e]:r.get?.call(e.c):void 0}function Xt(e,t){if(!(t in e))return;let n=ae(e);for(;n;){let r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=ae(n)}}function X(e){e.s||(e.s=!0,e.i&&X(e.i))}function ve(e){e.e||(e.n=new Map,e.e=ft(e.t,e.a.l.A))}var Qt=class{constructor(e){this.h=!0,this.A=!1,this._=!1,this.produce=(t,n,r)=>{if(ie(t)&&!ie(n)){let s=n;n=t;let l=this;return function(h=s,...g){return l.produce(h,a=>n.call(this,a,...g))}}ie(n)||U(6),r!==void 0&&!ie(r)&&U(7);let o;if(Y(t)){let s=Lt(this),l=Pe(s,t,void 0),h=!0;try{o=n(l),h=!1}finally{h?dt(s):gt(s)}return Ht(s,r),Wt(o,s)}else if(!t||!fe(t)){if(o=n(t),o===void 0&&(o=t),o===Fe&&(o=void 0),this.h&&Xe(o,!0),r){let s=[],l=[];le(Ke).M(t,o,{y:s,d:l}),r(s,l)}return o}else U(1,t)},this.produceWithPatches=(t,n)=>{if(ie(t))return(s,...l)=>this.produceWithPatches(s,h=>t(h,...l));let r,o;return[this.produce(t,n,(s,l)=>{r=s,o=l}),r,o]},ut(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),ut(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),ut(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Y(e)||U(8),q(e)&&(e=Zt(e));let t=Lt(this),n=Pe(t,e,void 0);return n[P].S=!0,gt(t),n}finishDraft(e,t){let n=e&&e[P];(!n||!n.S)&&U(9);let{a:r}=n;return Ht(r,t),Wt(void 0,r)}setAutoFreeze(e){this.h=e}setUseStrictShallowCopy(e){this.A=e}setUseStrictIteration(e){this._=e}shouldUseStrictIteration(){return this._}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let o=t[n];if(o.path.length===0&&o.op==="replace"){e=o.value;break}}n>-1&&(t=t.slice(n+1));let r=le(Ke).N;return q(e)?r(e,t):this.produce(e,o=>r(o,t))}};function Pe(e,t,n,r){let[o,s]=ke(t)?le(Ee).w(t,n):Te(t)?le(Ee).V(t,n):Jn(t,n);return(n?.a??Be()).o.push(o),s.f=n?.f??[],s.p=r,n&&r!==void 0?qn(n,s,r):s.f.push(function(l){l.I?.fixSetContents(s);let{x:h}=l;s.s&&h&&h.O(s,[],l)}),o}function Zt(e){return q(e)||U(10,e),en(e)}function en(e){if(!Y(e)||Qe(e))return e;let t=e[P],n,r=!0;if(t){if(!t.s)return t.t;t.u=!0,n=ft(e,t.a.l.A),r=t.a.l.shouldUseStrictIteration()}else n=ft(e,!0);return pe(n,(o,s)=>{We(n,o,en(s))},r),t&&(t.u=!1),n}function Xn(){function e(d,v=[]){if(d.p!==void 0){let x=d.i.e??d.i.t,w=Gt(ee(x,d.p)),M=ee(x,d.p);if(M===void 0||M!==d.c&&M!==d.t&&M!==d.e||w!=null&&w.t!==d.t)return null;let I=d.i.r===3,R;if(I){let u=d.i;R=Array.from(u.o.keys()).indexOf(d.p)}else R=d.p;if(!(I&&x.size>R||we(x,R)))return null;v.push(R)}if(d.i)return e(d.i,v);v.reverse();try{t(d.e,v)}catch{return null}return v}function t(d,v){let x=d;for(let w=0;w<v.length-1;w++){let M=v[w];if(x=ee(x,M),!fe(x)||x===null)throw new Error(`Cannot resolve path at '${v.join("/")}'`)}return x}let n="replace",r="add",o="remove";function s(d,v,x){if(d.a.T.has(d))return;d.a.T.add(d);let{y:w,d:M}=x;switch(d.r){case 0:case 2:return h(d,v,w,M);case 1:return l(d,v,w,M);case 3:return g(d,v,w,M)}}function l(d,v,x,w){let{t:M,n:I}=d,R=d.e;R.length<M.length&&([M,R]=[R,M],[x,w]=[w,x]);let u=d.R===!0;for(let y=0;y<M.length;y++){let m=R[y],b=M[y];if((u||I?.get(y.toString()))&&m!==b){let A=m?.[P];if(A&&A.s)continue;let z=v.concat([y]);x.push({op:n,path:z,value:D(m)}),w.push({op:n,path:z,value:D(b)})}}for(let y=M.length;y<R.length;y++){let m=v.concat([y]);x.push({op:r,path:m,value:D(R[y])})}for(let y=R.length-1;M.length<=y;--y){let m=v.concat([y]);w.push({op:o,path:m})}}function h(d,v,x,w){let{t:M,e:I,r:R}=d;pe(d.n,(u,y)=>{let m=ee(M,u,R),b=ee(I,u,R),A=y?we(M,u)?n:r:o;if(m===b&&A===n)return;let z=v.concat(u);x.push(A===o?{op:A,path:z}:{op:A,path:z,value:D(b)}),w.push(A===r?{op:o,path:z}:A===o?{op:r,path:z,value:D(m)}:{op:n,path:z,value:D(m)})})}function g(d,v,x,w){let{t:M,e:I}=d,R=0;M.forEach(u=>{if(!I.has(u)){let y=v.concat([R]);x.push({op:o,path:y,value:u}),w.unshift({op:r,path:y,value:u})}R++}),R=0,I.forEach(u=>{if(!M.has(u)){let y=v.concat([R]);x.push({op:r,path:y,value:u}),w.unshift({op:o,path:y,value:u})}R++})}function a(d,v,x){let{y:w,d:M}=x;w.push({op:n,path:[],value:v===Fe?void 0:v}),M.push({op:n,path:[],value:d})}function f(d,v){return v.forEach(x=>{let{path:w,op:M}=x,I=d;for(let m=0;m<w.length-1;m++){let b=ue(I),A=w[m];typeof A!="string"&&typeof A!="number"&&(A=""+A),(b===0||b===1)&&(A==="__proto__"||A===be)&&U(19),ie(I)&&A===Ce&&U(19),I=ee(I,A),fe(I)||U(18,w.join("/"))}let R=ue(I),u=C(x.value),y=w[w.length-1];switch(M){case n:switch(R){case 2:return I.set(y,u);case 3:U(16);default:return I[y]=u}case r:switch(R){case 1:return y==="-"?I.push(u):I.splice(y,0,u);case 2:return I.set(y,u);case 3:return I.add(u);default:return I[y]=u}case o:switch(R){case 1:return I.splice(y,1);case 2:return I.delete(y);case 3:return I.delete(x.value);default:return delete I[y]}default:U(17,M)}}),d}function C(d){if(!Y(d))return d;if(Ae(d))return d.map(C);if(ke(d))return new Map(Array.from(d.entries()).map(([x,w])=>[x,C(w)]));if(Te(d))return new Set(Array.from(d).map(C));let v=Object.create(ae(d));for(let x in d)v[x]=C(d[x]);return we(d,ce)&&(v[ce]=d[ce]),v}function D(d){return q(d)?C(d):d}mt(Ke,{N:f,O:s,M:a,getPath:e})}function Qn(){class e extends Map{constructor(a,f){super(),this[P]={r:2,i:f,a:f?f.a:Be(),s:!1,u:!1,e:void 0,n:void 0,t:a,c:this,S:!1,g:!1,f:[]}}get size(){return $(this[P]).size}has(a){return $(this[P]).has(a)}set(a,f){let C=this[P];return l(C),(!$(C).has(a)||$(C).get(a)!==f)&&(n(C),X(C),C.n.set(a,!0),C.e.set(a,f),C.n.set(a,!0),Ge(C,a,f)),this}delete(a){if(!this.has(a))return!1;let f=this[P];return l(f),n(f),X(f),f.t.has(a)?f.n.set(a,!1):f.n.delete(a),f.e.delete(a),!0}clear(){let a=this[P];l(a),$(a).size&&(n(a),X(a),a.n=new Map,pe(a.t,f=>{a.n.set(f,!1)}),a.e.clear())}forEach(a,f){let C=this[P];$(C).forEach((D,d,v)=>{a.call(f,this.get(d),d,this)})}get(a){let f=this[P];l(f);let C=$(f).get(a);if(f.u||!Y(C)||C!==f.t.get(a))return C;let D=Pe(f.a,C,f,a);return n(f),f.e.set(a,D),D}keys(){return $(this[P]).keys()}values(){let a=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let f=a.next();return f.done?f:{done:!1,value:this.get(f.value)}}}}entries(){let a=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let f=a.next();if(f.done)return f;let C=this.get(f.value);return{done:!1,value:[f.value,C]}}}}[Symbol.iterator](){return this.entries()}}function t(g,a){let f=new e(g,a);return[f,f[P]]}function n(g){g.e||(g.n=new Map,g.e=new Map(g.t))}class r extends Set{constructor(a,f){super(),this[P]={r:3,i:f,a:f?f.a:Be(),s:!1,u:!1,e:void 0,t:a,c:this,o:new Map,g:!1,S:!1,n:void 0,f:[]}}get size(){return $(this[P]).size}has(a){let f=this[P];return l(f),f.e?!!(f.e.has(a)||f.o.has(a)&&f.e.has(f.o.get(a))):f.t.has(a)}add(a){let f=this[P];return l(f),this.has(a)||(s(f),X(f),f.e.add(a),Ge(f,a,a)),this}delete(a){if(!this.has(a))return!1;let f=this[P];return l(f),s(f),X(f),f.e.delete(a)||(f.o.has(a)?f.e.delete(f.o.get(a)):!1)}clear(){let a=this[P];l(a),$(a).size&&(s(a),X(a),a.e.clear())}values(){let a=this[P];return l(a),s(a),a.e.values()}entries(){let a=this[P];return l(a),s(a),a.e.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(a,f){let C=this.values(),D=C.next();for(;!D.done;)a.call(f,D.value,D.value,this),D=C.next()}}function o(g,a){let f=new r(g,a);return[f,f[P]]}function s(g){g.e||(g.e=new Set,g.t.forEach(a=>{if(Y(a)){let f=Pe(g.a,a,g,a);g.o.set(a,f),g.e.add(f)}else g.e.add(a)}))}function l(g){g.g&&U(3,JSON.stringify($(g)))}function h(g){if(g.r===3&&g.e){let a=new Set(g.e);g.e.clear(),a.forEach(f=>{g.e.add(Ln(f))})}}mt(Ee,{w:t,V:o,fixSetContents:h})}function Zn(){let e=new Set(["shift","unshift"]),t=new Set(["push","pop"]),n=new Set([...t,...e]),r=new Set(["reverse","sort"]),o=new Set([...n,...r,"splice"]),s=new Set(["find","findLast"]),l=new Set(["filter","slice","concat","flat",...s,"findIndex","findLastIndex","some","every","indexOf","lastIndexOf","includes","join","toString","toLocaleString"]);function h(u){return o.has(u)}function g(u){return l.has(u)}function a(u){return h(u)||g(u)}function f(u,y){u.operationMethod=y}function C(u){u.operationMethod=void 0}function D(u,y,m=!0){ve(u);let b=y();return X(u),m&&u.n.set("length",!0),b}function d(u){u.R=!0}function v(u,y){return u<0?Math.max(y+u,0):Math.min(u,y)}function x(u,y,m){for(let b=0;b<m.length;b++){let A=y+b;u.n.set(A,!0),Ge(u,A,m[b])}}function w(u,y,m){return D(u,()=>{let b=u.e.length,A=u.e[y](...m);return e.has(y)&&d(u),y==="push"&&m.length>0?x(u,b,m):y==="unshift"&&m.length>0&&x(u,0,m),n.has(y)?A:u.c})}function M(u,y,m){return D(u,()=>(u.e[y](...m),d(u),u.c),!1)}function I(u,y){return function(...m){let b=y;f(u,b);try{if(h(b)){if(n.has(b))return w(u,b,m);if(r.has(b))return M(u,b,m);if(b==="splice"){let A=D(u,()=>u.e.splice(...m));if(d(u),m.length>2){let z=v(m[0]??0,u.e.length);x(u,z,m.slice(2))}return A}}else return R(u,b,m)}finally{C(u)}}}function R(u,y,m){let b=$(u);if(y==="filter"){let A=m[0],z=[];for(let L=0;L<b.length;L++)A(b[L],L,b)&&z.push(u.c[L]);return z}if(s.has(y)){let A=m[0],z=y==="find",L=z?1:-1,J=z?0:b.length-1;for(let W=J;W>=0&&W<b.length;W+=L)if(A(b[W],W,b))return u.c[W];return}if(y==="slice"){let A=m[0]??0,z=m[1]??b.length,L=v(A,b.length),J=v(z,b.length),W=[];for(let re=L;re<J;re++)W.push(u.c[re]);return W}return b[y](...m)}mt(pt,{createMethodInterceptor:I,isArrayOperationMethod:a,isMutatingArrayMethod:h})}var H=new Qt,er=H.produce,tr=H.produceWithPatches.bind(H),nr=H.setAutoFreeze.bind(H),rr=H.setUseStrictShallowCopy.bind(H),or=H.setUseStrictIteration.bind(H),sr=H.applyPatches.bind(H),ir=H.createDraft.bind(H),ar=H.finishDraft.bind(H),ur=e=>e,lr=e=>e});var on=ze((Yr,rn)=>{"use strict";rn.exports=nn()});var yn=ze(E=>{"use strict";var bt=Symbol.for("react.transitional.element"),pr=Symbol.for("react.portal"),dr=Symbol.for("react.fragment"),gr=Symbol.for("react.strict_mode"),hr=Symbol.for("react.profiler"),yr=Symbol.for("react.consumer"),mr=Symbol.for("react.context"),Sr=Symbol.for("react.forward_ref"),wr=Symbol.for("react.suspense"),vr=Symbol.for("react.memo"),cn=Symbol.for("react.lazy"),br=Symbol.for("react.activity"),sn=Symbol.iterator;function _r(e){return e===null||typeof e!="object"?null:(e=sn&&e[sn]||e["@@iterator"],typeof e=="function"?e:null)}var fn={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pn=Object.assign,dn={};function he(e,t,n){this.props=e,this.context=t,this.refs=dn,this.updater=n||fn}he.prototype.isReactComponent={};he.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};he.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function gn(){}gn.prototype=he.prototype;function _t(e,t,n){this.props=e,this.context=t,this.refs=dn,this.updater=n||fn}var Et=_t.prototype=new gn;Et.constructor=_t;pn(Et,he.prototype);Et.isPureReactComponent=!0;var an=Array.isArray;function vt(){}var O={H:null,A:null,T:null,S:null},hn=Object.prototype.hasOwnProperty;function Rt(e,t,n){var r=n.ref;return{$$typeof:bt,type:e,key:t,ref:r!==void 0?r:null,props:n}}function Er(e,t){return Rt(e.type,t,e.props)}function xt(e){return typeof e=="object"&&e!==null&&e.$$typeof===bt}function Rr(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var un=/\/+/g;function wt(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Rr(""+e.key):t.toString(36)}function xr(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(vt,vt):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function ge(e,t,n,r,o){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var l=!1;if(e===null)l=!0;else switch(s){case"bigint":case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case bt:case pr:l=!0;break;case cn:return l=e._init,ge(l(e._payload),t,n,r,o)}}if(l)return o=o(e),l=r===""?"."+wt(e,0):r,an(o)?(n="",l!=null&&(n=l.replace(un,"$&/")+"/"),ge(o,t,n,"",function(a){return a})):o!=null&&(xt(o)&&(o=Er(o,n+(o.key==null||e&&e.key===o.key?"":(""+o.key).replace(un,"$&/")+"/")+l)),t.push(o)),1;l=0;var h=r===""?".":r+":";if(an(e))for(var g=0;g<e.length;g++)r=e[g],s=h+wt(r,g),l+=ge(r,t,n,s,o);else if(g=_r(e),typeof g=="function")for(e=g.call(e),g=0;!(r=e.next()).done;)r=r.value,s=h+wt(r,g++),l+=ge(r,t,n,s,o);else if(s==="object"){if(typeof e.then=="function")return ge(xr(e),t,n,r,o);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return l}function nt(e,t,n){if(e==null)return e;var r=[],o=0;return ge(e,r,"","",function(s){return t.call(n,s,o++)}),r}function Pr(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var ln=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Cr={map:nt,forEach:function(e,t,n){nt(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return nt(e,function(){t++}),t},toArray:function(e){return nt(e,function(t){return t})||[]},only:function(e){if(!xt(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};E.Activity=br;E.Children=Cr;E.Component=he;E.Fragment=dr;E.Profiler=hr;E.PureComponent=_t;E.StrictMode=gr;E.Suspense=wr;E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=O;E.__COMPILER_RUNTIME={__proto__:null,c:function(e){return O.H.useMemoCache(e)}};E.cache=function(e){return function(){return e.apply(null,arguments)}};E.cacheSignal=function(){return null};E.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var r=pn({},e.props),o=e.key;if(t!=null)for(s in t.key!==void 0&&(o=""+t.key),t)!hn.call(t,s)||s==="key"||s==="__self"||s==="__source"||s==="ref"&&t.ref===void 0||(r[s]=t[s]);var s=arguments.length-2;if(s===1)r.children=n;else if(1<s){for(var l=Array(s),h=0;h<s;h++)l[h]=arguments[h+2];r.children=l}return Rt(e.type,o,r)};E.createContext=function(e){return e={$$typeof:mr,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:yr,_context:e},e};E.createElement=function(e,t,n){var r,o={},s=null;if(t!=null)for(r in t.key!==void 0&&(s=""+t.key),t)hn.call(t,r)&&r!=="key"&&r!=="__self"&&r!=="__source"&&(o[r]=t[r]);var l=arguments.length-2;if(l===1)o.children=n;else if(1<l){for(var h=Array(l),g=0;g<l;g++)h[g]=arguments[g+2];o.children=h}if(e&&e.defaultProps)for(r in l=e.defaultProps,l)o[r]===void 0&&(o[r]=l[r]);return Rt(e,s,o)};E.createRef=function(){return{current:null}};E.forwardRef=function(e){return{$$typeof:Sr,render:e}};E.isValidElement=xt;E.lazy=function(e){return{$$typeof:cn,_payload:{_status:-1,_result:e},_init:Pr}};E.memo=function(e,t){return{$$typeof:vr,type:e,compare:t===void 0?null:t}};E.startTransition=function(e){var t=O.T,n={};O.T=n;try{var r=e(),o=O.S;o!==null&&o(n,r),typeof r=="object"&&r!==null&&typeof r.then=="function"&&r.then(vt,ln)}catch(s){ln(s)}finally{t!==null&&n.types!==null&&(t.types=n.types),O.T=t}};E.unstable_useCacheRefresh=function(){return O.H.useCacheRefresh()};E.use=function(e){return O.H.use(e)};E.useActionState=function(e,t,n){return O.H.useActionState(e,t,n)};E.useCallback=function(e,t){return O.H.useCallback(e,t)};E.useContext=function(e){return O.H.useContext(e)};E.useDebugValue=function(){};E.useDeferredValue=function(e,t){return O.H.useDeferredValue(e,t)};E.useEffect=function(e,t){return O.H.useEffect(e,t)};E.useEffectEvent=function(e){return O.H.useEffectEvent(e)};E.useId=function(){return O.H.useId()};E.useImperativeHandle=function(e,t,n){return O.H.useImperativeHandle(e,t,n)};E.useInsertionEffect=function(e,t){return O.H.useInsertionEffect(e,t)};E.useLayoutEffect=function(e,t){return O.H.useLayoutEffect(e,t)};E.useMemo=function(e,t){return O.H.useMemo(e,t)};E.useOptimistic=function(e,t){return O.H.useOptimistic(e,t)};E.useReducer=function(e,t,n){return O.H.useReducer(e,t,n)};E.useRef=function(e){return O.H.useRef(e)};E.useState=function(e){return O.H.useState(e)};E.useSyncExternalStore=function(e,t,n){return O.H.useSyncExternalStore(e,t,n)};E.useTransition=function(){return O.H.useTransition()};E.version="19.2.4"});var Sn=ze((qr,mn)=>{"use strict";mn.exports=yn()});var Tt=typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof crypto.subtle.generateKey=="function",Cn=async()=>{if(!Tt)throw new Error("Web Crypto API not available");let e=await crypto.subtle.generateKey({name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),t=crypto.getRandomValues(new Uint8Array(12));return{key:e,iv:t}},An=async e=>{let t=await crypto.subtle.exportKey("raw",e.key);return{key:btoa(String.fromCharCode(...new Uint8Array(t))),iv:btoa(String.fromCharCode(...e.iv))}},kn=async(e,t)=>{let n=Uint8Array.from(atob(e),s=>s.charCodeAt(0)),r=Uint8Array.from(atob(t),s=>s.charCodeAt(0));return{key:await crypto.subtle.importKey("raw",n,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),iv:r}},Mt=async(e,t)=>{let n=new TextEncoder,r=n.encode(JSON.stringify(e)),o=await crypto.subtle.encrypt({name:"AES-GCM",iv:t.iv},t.key,r),s=new Uint8Array(t.iv.length+o.byteLength);return s.set(t.iv),s.set(new Uint8Array(o),t.iv.length),btoa(String.fromCharCode(...s))},It=async(e,t)=>{let n=Uint8Array.from(atob(e),l=>l.charCodeAt(0)),r=n.slice(0,12),o=n.slice(12),s=await crypto.subtle.decrypt({name:"AES-GCM",iv:r},t.key,o);return JSON.parse(new TextDecoder().decode(s))},Ue=null,Tn=e=>{Ue=e},Ot=()=>Ue!==null,Se=e=>{Ue&&Ue(e)},st=(e,t,n)=>{e.set(t instanceof RegExp?t.source:t,n)},Ne=(e,t,n,r)=>{if(e.size===0)return!0;for(let[o,s]of e){let l;if(typeof o=="function")l=o(t,r);else try{l=new RegExp(o).test(t)}catch{continue}if(l)return s.includes(n)||s.includes("admin")}return!1},me=e=>{if(typeof e=="string")return e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"").replace(/javascript:/gi,"[REMOVED]").replace(/on\w+\s*=/gi,"[REMOVED]=").replace(/<iframe\b[^<]*(?:(?!<\/iframe>)<[^<]*)*<\/iframe>/gi,"").replace(/<object\b[^<]*(?:(?!<\/object>)<[^<]*)*<\/object>/gi,"").replace(/<embed\b[^<]*(?:(?!<\/embed>)<[^<]*)*<\/embed>/gi,"").replace(/<svg\b[^<]*(?:(?!<\/svg>)<[^<]*)*<\/svg>/gi,"").replace(/<foreignObject\b[^<]*(?:(?!<\/foreignObject>)<[^<]*)*<\/foreignObject>/gi,"").replace(/<math\b[^<]*(?:(?!<\/math>)<[^<]*)*<\/math>/gi,"").replace(/<\?php\b[^<]*(?:(?!<\?php>)<[^<]*)*<\?php>/gi,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/`/g,"`");if(e&&typeof e=="object"&&!Array.isArray(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=me(r);return t}return Array.isArray(e)?e.map(t=>me(t)):e},it=e=>/^[a-zA-Z0-9_.-]+$/.test(e)&&e.length<=256,at=(e,t,n,r)=>{let o={id:crypto.randomUUID(),purpose:n,granted:r,timestamp:Date.now()},s=e.get(t)||[];return s.push(o),e.set(t,s),Se({timestamp:Date.now(),action:"set",key:`consent:${n}`,userId:t,success:!0}),o},Dt=(e,t,n)=>{let r=e.get(t);if(!r)return!1;for(let o=r.length-1;o>=0;o--){let s=r[o];if(s&&s.purpose===n)return s.granted}return!1},jt=(e,t,n)=>at(e,t,n,!1),$t=(e,t)=>e.get(t)||[],zt=(e,t)=>({userId:t,exportedAt:Date.now(),consents:e.get(t)||[]}),Ut=(e,t)=>{let n=e.get(t)?.length||0;return e.delete(t),{success:!0,deletedConsents:n}};var St=null,Me=null,cr=()=>{if(!St)try{let e=on();St=e.produce,Me=e.freeze}catch(e){throw console.error("[gState] Immer not installed. Run: npm install immer"),e}},fr={local:()=>typeof window<"u"?window.localStorage:null,session:()=>typeof window<"u"?window.sessionStorage:null,memory:()=>{let e=new Map;return{getItem:t=>e.get(t)||null,setItem:(t,n)=>e.set(t,n),removeItem:t=>e.delete(t),key:t=>Array.from(e.keys())[t]||null,get length(){return e.size}}}},et=e=>{if(e===null||typeof e!="object")return e;if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}let t=new WeakMap,n=r=>{if(r===null||typeof r!="object")return r;if(t.has(r))return t.get(r);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r.source,r.flags);let o=Array.isArray(r)?[]:Object.create(Object.getPrototypeOf(r));if(t.set(r,o),Array.isArray(r))for(let s=0;s<r.length;s++)o[s]=n(r[s]);else for(let s of Object.keys(r))o[s]=n(r[s]);return o};return n(e)},tt=(e,t)=>{if(e===t)return!0;if(e===null||t===null||typeof e!="object"||typeof t!="object")return e===t;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++)if(!tt(e[o],t[o]))return!1;return!0}let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let o of n)if(!r.includes(o)||!tt(e[o],t[o]))return!1;return!0},de=e=>{let t=new Map,n=new Map,r=new Map,o=new Set,s=new Map,l=new Set,h=new Map,g=new Map,a=new Map,f=new Map,C=new Map,D=new Map,d=new Map,v=new Map,x=e?.namespace||"gstate",w=e?.silent??!1,M=e?.debounceTime??150,I=e?.version??0,R=e?.storage||fr.local(),u=e?.onError,y=e?.maxObjectSize??5*1024*1024,m=e?.maxTotalSize??50*1024*1024,b=e?.encryptionKey??null,A=e?.validateInput??!0,z=e?.auditEnabled??!0,L=e?.userId,J=e?.immer??!0;J&&cr(),e?.accessRules&&e.accessRules.forEach(i=>st(d,i.pattern,i.permissions));let W=!1,re=!1,Oe=!1,F=0,rt=null,De,wn=new Promise(i=>{De=i}),ot=i=>{if(i==null)return 0;let c=0,p=[i],S=new WeakSet;for(;p.length>0;){let k=p.pop();if(typeof k=="boolean")c+=4;else if(typeof k=="number")c+=8;else if(typeof k=="string")c+=k.length*2;else if(typeof k=="object"&&k!==null){let _=k;if(S.has(_))continue;if(S.add(_),Array.isArray(_))for(let T=0;T<_.length;T++)p.push(_[T]);else for(let T of Object.keys(_))c+=T.length*2,p.push(_[T])}}return c},je=()=>`${x}_`,oe=(i,c)=>{f.forEach(p=>{if(p.hooks?.[i])try{p.hooks[i](c)}catch(S){let k=S instanceof Error?S:new Error(String(S));u?u(k,{operation:`plugin:${p.name}:${i}`,key:c.key}):w||console.error(`[gState] Plugin "${p.name}" error:`,S)}})},Q=(i,c,p,S)=>{z&&Ot()&&Se&&Se({timestamp:Date.now(),action:i,key:c,userId:L,success:p,error:S})},ye=i=>{if(i&&(a.get(i)?.forEach(c=>Pt(c)),h.get(i)?.forEach(c=>{try{c(V.get(i))}catch(p){let S=p instanceof Error?p:new Error(String(p));u?u(S,{operation:"watcher",key:i}):w||console.error(`[gState] Watcher error for "${i}":`,p)}}),s.get(i)?.forEach(c=>{try{c()}catch(p){let S=p instanceof Error?p:new Error(String(p));u?u(S,{operation:"keyListener",key:i}):w||console.error(`[gState] Listener error for "${i}":`,p)}})),W){re=!0;return}o.forEach(c=>{try{c()}catch(p){let S=p instanceof Error?p:new Error(String(p));u?u(S,{operation:"listener"}):w||console.error("[gState] Global listener error:",p)}})},Pt=i=>{let c=g.get(i),p=new Set;if(!c)return;let S=_=>(p.add(_),V.get(_)),k=c.selector(S);c.deps.forEach(_=>{if(!p.has(_)){let T=a.get(_);T&&(T.delete(i),T.size===0&&a.delete(_))}}),p.forEach(_=>{c.deps.has(_)||(a.has(_)||a.set(_,new Set),a.get(_).add(i))}),c.deps=p,tt(c.lastValue,k)||(c.lastValue=J&&k!==null&&typeof k=="object"?Me(et(k),!0):k,n.set(i,(n.get(i)||0)+1),ye(i))},Ct=async()=>{if(!R)return;let i=Array.from(C.entries());C.clear();for(let[c,p]of i)try{let S=p.value,k=p.options.encoded||p.options.secure;if(p.options.encrypted){if(!b)throw new Error(`Encryption key missing for "${c}"`);S=await Mt(p.value,b)}else k?S=btoa(JSON.stringify(p.value)):typeof p.value=="object"&&p.value!==null&&(S=JSON.stringify(p.value));R.setItem(`${je()}${c}`,JSON.stringify({v:n.get(c)||1,t:Date.now(),e:p.options.ttl?Date.now()+p.options.ttl:null,d:S,_sys_v:I,_enc:p.options.encrypted?!0:void 0,_b64:k?!0:void 0})),Q("set",c,!0)}catch(S){let k=S instanceof Error?S:new Error(String(S));u?u(k,{operation:"persist",key:c}):w||console.error("[gState] Persist failed:",k)}},se={},V={_setSilently:(i,c)=>{let p=r.get(i)||0,S=J&&c!==null&&typeof c=="object"?Me(et(c),!0):c,k=ot(S);F=F-p+k,r.set(i,k),t.set(i,S),n.set(i,(n.get(i)||0)+1)},_registerMethod:(i,c,p)=>{if(p!==void 0){let _=i,T=c;se[_]||(se[_]={}),se[_][T]=p;return}console.warn("[gState] _registerMethod(name, fn) is deprecated. Use _registerMethod(pluginName, methodName, fn) instead.");let S=i,k=c;se.core||(se.core={}),se.core[S]=k},set:(i,c,p={})=>{let S=t.get(i),k=J&&typeof c=="function"?St(S,c):c;if(A&&!it(i))return w||console.warn(`[gState] Invalid key: ${i}`),!1;if(!Ne(d,i,"write",L))return Q("set",i,!1,"RBAC Denied"),w||console.error(`[gState] RBAC Denied for "${i}"`),!1;let _=A?me(k):k,T=r.get(i)||0;oe("onBeforeSet",{key:i,value:_,store:V,version:n.get(i)||0});let G=J&&_!==null&&typeof _=="object"?Me(et(_),!0):_;if(!tt(S,G)){let j=y>0||m>0?ot(G):0;if(y>0&&j>y){let N=new Error(`Object size (${j} bytes) exceeds maxObjectSize (${y} bytes)`);u?u(N,{operation:"set",key:i}):w||console.warn(`[gState] ${N.message} for "${i}"`)}if(m>0){let N=F-T+j;if(N>m){let $e=new Error(`Total store size (${N} bytes) exceeds limit (${m} bytes)`);u?u($e,{operation:"set"}):w||console.warn(`[gState] ${$e.message}`)}}F=F-T+j,r.set(i,j),t.set(i,G),n.set(i,(n.get(i)||0)+1);let Z=!!(p.persist||e?.persistByDefault||e?.persistence||p.encrypted||p.encoded||p.secure||p.ttl);return Z&&(C.set(i,{value:G,options:{...p,persist:Z}}),rt&&clearTimeout(rt),rt=setTimeout(Ct,M)),oe("onSet",{key:i,value:G,store:V,version:n.get(i)}),Q("set",i,!0),ye(i),!0}return!1},get:i=>{if(!Ne(d,i,"read",L))return Q("get",i,!1,"RBAC Denied"),null;let c=t.get(i);return oe("onGet",{store:V,key:i,value:c}),Q("get",i,!0),c},compute:(i,c)=>{try{return g.has(i)||(g.set(i,{selector:c,lastValue:null,deps:new Set}),Pt(i)),g.get(i).lastValue}catch(p){let S=p instanceof Error?p:new Error(String(p));return u?u(S,{operation:"compute",key:i}):w||console.error(`[gState] Compute error for "${i}":`,p),null}},watch:(i,c)=>{h.has(i)||h.set(i,new Set);let p=h.get(i);return p.add(c),()=>{p.delete(c),p.size===0&&h.delete(i)}},remove:i=>{if(!Ne(d,i,"delete",L))return Q("delete",i,!1,"RBAC Denied"),!1;let c=t.get(i),p=t.delete(i);return p&&(F-=r.get(i)||0,r.delete(i),oe("onRemove",{store:V,key:i,value:c})),n.set(i,(n.get(i)||0)+1),R&&R.removeItem(`${je()}${i}`),Q("delete",i,!0),ye(i),p},delete:i=>V.remove(i),deleteAll:()=>{if(Array.from(t.keys()).forEach(i=>V.remove(i)),R){let i=je();for(let c=0;c<(R.length||0);c++){let p=R.key(c);p?.startsWith(i)&&(R.removeItem(p),c--)}}return F=0,r.clear(),!0},list:()=>Object.fromEntries(t.entries()),use:i=>{l.add(i)},transaction:i=>{W=!0,oe("onTransaction",{store:V,key:"START"});try{i()}finally{W=!1,oe("onTransaction",{store:V,key:"END"}),re&&(re=!1,ye())}},destroy:()=>{typeof window<"u"&&window.removeEventListener("beforeunload",At),oe("onDestroy",{store:V}),o.clear(),s.clear(),h.clear(),g.clear(),a.clear(),f.clear(),t.clear(),r.clear(),F=0,d.clear(),v.clear()},_addPlugin:i=>{try{f.set(i.name,i),i.hooks?.onInstall?.({store:V})}catch(c){let p=c instanceof Error?c:new Error(String(c));u?u(p,{operation:"plugin:install",key:i.name}):w||console.error(`[gState] Failed to install plugin "${i.name}":`,c)}},_removePlugin:i=>{f.delete(i)},_subscribe:(i,c)=>{if(c){s.has(c)||s.set(c,new Set);let p=s.get(c);return p.add(i),()=>{p.delete(i),p.size===0&&s.delete(c)}}return o.add(i),()=>o.delete(i)},_getVersion:i=>n.get(i)??0,addAccessRule:(i,c)=>st(d,i,c),hasPermission:(i,c,p)=>{if(d.size===0)return!0;for(let[S,k]of d){let _;if(typeof S=="function")_=S(i,p);else try{let T=D.get(S);T||(T=new RegExp(S),D.set(S,T)),_=T.test(i)}catch{continue}if(_)return k.includes(c)||k.includes("admin")}return!1},recordConsent:(i,c,p)=>at(v,i,c,p),hasConsent:(i,c)=>Dt(v,i,c),getConsents:i=>$t(v,i),revokeConsent:(i,c)=>jt(v,i,c),exportUserData:i=>zt(v,i),deleteUserData:i=>Ut(v,i),get plugins(){return se},get isReady(){return Oe},whenReady:()=>wn};["addAccessRule","recordConsent","hasConsent","getConsents","revokeConsent","exportUserData","deleteUserData"].forEach(i=>{let c=V[i];c&&V._registerMethod("security",i,c)});let At=()=>{C.size>0&&Ct()};return typeof window<"u"&&window.addEventListener("beforeunload",At),R?(async()=>{try{let c={},p=je(),S=0;for(let _=0;_<(R.length||0);_++){let T=R.key(_);if(!T||!T.startsWith(p))continue;let G=R.getItem(T);if(G)try{let j=JSON.parse(G),Z=T.substring(p.length);if(S=Math.max(S,j._sys_v!==void 0?j._sys_v:j.v||0),j.e&&Date.now()>j.e){R.removeItem(T),_--;continue}let N=j.d;if(j._enc&&b)N=await It(N,b);else if(typeof N=="string"){if(j._b64)try{N=JSON.parse(atob(N))}catch{}else if(N.startsWith("{")||N.startsWith("["))try{N=JSON.parse(N)}catch{}}c[Z]=N,Q("hydrate",Z,!0)}catch(j){Q("hydrate",T,!1,String(j));let Z=j instanceof Error?j:new Error(String(j));u?u(Z,{operation:"hydration",key:T}):w||console.error(`[gState] Hydration failed for "${T}":`,j)}}let k=S<I&&e?.migrate?e.migrate(c,S):c;Object.entries(k).forEach(([_,T])=>{let G=J&&T!==null&&typeof T=="object"?Me(et(T),!0):T,j=ot(G),Z=r.get(_)||0;F=F-Z+j,r.set(_,j),t.set(_,G),n.set(_,1)}),Oe=!0,De(),ye()}catch(c){Oe=!0,De();let p=c instanceof Error?c:new Error(String(c));u?u(p,{operation:"hydration"}):w||console.error("[gState] Hydration failed:",p)}})():(Oe=!0,De()),V};var B=Pn(Sn(),1);var ne=null,Ar=e=>{ne&&!e?.namespace&&(e?.silent||console.warn("[gState] Store already exists. Pass a unique namespace to create additional stores."));let t=de(e);return ne=t,t},kr=()=>{ne&&(ne.destroy(),ne=null)},Tr=e=>{let t=e||ne,n=(0,B.useMemo)(()=>r=>t?t._subscribe(r):()=>{},[t]);return(0,B.useSyncExternalStore)(n,()=>t?t.isReady:!1,()=>!0)},te=()=>ne;var Ie=(e,t)=>{let n=(0,B.useMemo)(()=>t||ne,[t]),r=(0,B.useMemo)(()=>({set:()=>(console.warn("[gState] Store not initialized. Call initState() or pass a store instance."),!1),get:()=>null,remove:()=>!1,delete:()=>!1,deleteAll:()=>!1,list:()=>({}),compute:()=>null,watch:()=>()=>{},use:()=>{},transaction:()=>{},destroy:()=>{},_subscribe:()=>()=>{},_setSilently:()=>{},_registerMethod:()=>{},_addPlugin:()=>{},_removePlugin:()=>{},_getVersion:()=>0,get isReady(){return!1},whenReady:()=>Promise.resolve(),get plugins(){return new Proxy({},{get:(g,a)=>new Proxy({},{get:(f,C)=>(...D)=>(console.warn(`[gState] Ghost store: Cannot call store.plugins.${String(a)}.${String(C)}() - store not initialized. Call initState() first or pass a store instance to useStore().`),null)})})}}),[]),o=n||r;(0,B.useMemo)(()=>{!n&&!t&&console.warn("[gState] Using ghost store - no store initialized. Call initState() or pass a store instance.")},[n,t]);let s=(0,B.useMemo)(()=>g=>o._subscribe(g,e),[o,e]),l=(0,B.useSyncExternalStore)(s,()=>o.get(e)??void 0,()=>{}),h=(0,B.useMemo)(()=>(g,a)=>o.set(e,g,a),[o,e]);return(0,B.useDebugValue)(l,g=>`${e}: ${JSON.stringify(g)}`),[l,h]};var Mr=(e,t)=>{let n=t?.key||"async_data",r=t?.store||de({namespace:`async_${n}`,silent:!0});return r.get(n)==null&&r.set(n,{data:null,loading:!1,error:null,updatedAt:null}),Object.assign(r,{execute:async()=>{let s=r.get(n);r.set(n,{...s||{data:null,loading:!1,error:null,updatedAt:null},loading:!0,error:null}),"whenReady"in r&&!r.isReady&&await r.whenReady();try{let l=await e(),h=r.get(n);r.set(n,{...h||{data:null,loading:!1,error:null,updatedAt:null},data:l,loading:!1,updatedAt:Date.now()},{persist:t?.persist})}catch(l){let h=r.get(n);r.set(n,{...h||{data:null,loading:!1,error:null,updatedAt:null},error:l instanceof Error?l:new Error(String(l)),loading:!1})}}})};var Ir=()=>({name:"gstate-immer",hooks:{onInstall:({store:e})=>{e._registerMethod("immer","setWithProduce",((t,n)=>e.set(t,n)))}}});var Or=e=>{let t=[],n=-1,r=!1,o=e?.limit||50;return{name:"gstate-undo-redo",hooks:{onInstall:({store:s})=>{t.push(s.list()),n=0,s._registerMethod("undoRedo","undo",()=>{if(n>0){r=!0,n--;let l=t[n];return l?(Object.entries(l).forEach(([h,g])=>{s._setSilently(h,g)}),r=!1,!0):!1}return!1}),s._registerMethod("undoRedo","redo",()=>{if(n<t.length-1){r=!0,n++;let l=t[n];return l?(Object.entries(l).forEach(([h,g])=>{s._setSilently(h,g)}),r=!1,!0):!1}return!1}),s._registerMethod("undoRedo","canUndo",()=>n>0),s._registerMethod("undoRedo","canRedo",()=>n<t.length-1)},onSet:({store:s})=>{r||(n<t.length-1&&(t=t.slice(0,n+1)),t.push(s.list()),t.length>o?t.shift():n++)}}}};var Dr=e=>({name:"gstate-schema",hooks:{onSet:({key:t,value:n})=>{if(!t)return;let r=e[t];if(r){let o=r(n);if(o!==!0)throw new Error(`[Schema Error] Validation failed for key "${t}": ${o===!1?"Invalid type":o}`)}}}});var jr=e=>{let r=globalThis.__REDUX_DEVTOOLS_EXTENSION__;if(!r?.connect)return{name:"gstate-devtools-noop",hooks:{}};let o=null;return{name:"gstate-devtools",hooks:{onInstall:({store:s})=>{o=r.connect({name:e?.name||"Magnetar Store"}),o.init(s.list())},onSet:({key:s,store:l})=>{!s||!o||o.send(`SET_${s.toUpperCase()}`,l.list())},onRemove:({key:s,store:l})=>{!s||!o||o.send(`REMOVE_${s.toUpperCase()}`,l.list())}}}};var $r=()=>{let e=new Map;return{name:"gstate-snapshot",hooks:{onInstall:({store:t})=>{t._registerMethod("snapshot","takeSnapshot",(n=>{e.set(n,t.list())})),t._registerMethod("snapshot","restoreSnapshot",(n=>{let r=e.get(n);return r?(t.transaction(()=>{Object.entries(r).forEach(([o,s])=>{t.set(o,s)})}),!0):!1})),t._registerMethod("snapshot","listSnapshots",(()=>Array.from(e.keys()))),t._registerMethod("snapshot","deleteSnapshot",(n=>e.delete(n))),t._registerMethod("snapshot","clearSnapshots",(()=>e.clear()))}}}};var zr=e=>({name:"gstate-guard",hooks:{onBeforeSet:({key:t,value:n,store:r})=>{if(!t)return;let o=e[t];if(o){let s=o(n)}}}});var Ur=e=>({name:"gstate-analytics",hooks:{onSet:({key:t,value:n})=>{t&&(!e.keys||e.keys.includes(t))&&e.provider({key:t,value:n,action:"SET"})},onRemove:({key:t})=>{t&&(!e.keys||e.keys.includes(t))&&e.provider({key:t,value:null,action:"REMOVE"})}}});var Nr=e=>{let t=new BroadcastChannel(e?.channelName||"gstate_sync"),n=!1;return{name:"gstate-sync",hooks:{onInstall:({store:r})=>{t.onmessage=o=>{let{key:s,value:l,action:h}=o.data;s&&(n=!0,h==="REMOVE"?r.remove(s):r.set(s,l),n=!1)}},onSet:({key:r,value:o})=>{!r||n||t.postMessage({key:r,value:o,action:"SET"})},onRemove:({key:r})=>{!r||n||t.postMessage({key:r,action:"REMOVE"})},onDestroy:()=>{t.close()}}}};var Vr=()=>({name:"gstate-debug-noop",hooks:{}});var uo=e=>({name:"gstate-logger",hooks:{onSet:({key:t,value:n,version:r})=>{let o=new Date().toLocaleTimeString(),s=`[gState] SET: ${t} (v${r}) @ ${o}`;e?.collapsed?console.groupCollapsed(s):console.group(s),console.info("%c Value:","color: #4CAF50; font-weight: bold;",n),console.groupEnd()},onRemove:({key:t})=>{console.warn(`[gState] REMOVED: ${t}`)},onTransaction:({key:t})=>{t==="START"?console.group("\u2500\u2500 TRANSACTION START \u2500\u2500"):console.groupEnd()}}});var Eo=(e,t)=>{let r=de(typeof t=="string"?{namespace:t}:t);return e&&Object.entries(e).forEach(([s,l])=>{r._setSilently(s,l)}),Object.assign(s=>Ie(s,r),r)};var Ro=(e,t)=>te()?.addAccessRule(e,t),xo=(e,t,n)=>te()?.hasPermission(e,t,n)??!0,Po=(e,t,n)=>{let r=te();if(!r)throw new Error("[gState] recordConsent failed: No store found. call initState() first.");return r.recordConsent(e,t,n)},Co=(e,t)=>te()?.hasConsent(e,t)??!1,Ao=e=>te()?.getConsents(e)??[],ko=(e,t)=>te()?.revokeConsent(e,t),To=e=>{let t=te();if(!t)throw new Error("[gState] exportUserData failed: No store found.");return t.exportUserData(e)},Mo=e=>{let t=te();if(!t)throw new Error("[gState] deleteUserData failed: No store found.");return t.deleteUserData(e)},Io=()=>{},Oo=()=>{};export{Ro as addAccessRule,Ur as analyticsPlugin,Io as clearAccessRules,Oo as clearAllConsents,Mr as createAsyncStore,de as createStore,Vr as debugPlugin,Mo as deleteUserData,kr as destroyState,jr as devToolsPlugin,An as exportKey,To as exportUserData,Cn as generateEncryptionKey,Ao as getConsents,Eo as gstate,zr as guardPlugin,Co as hasConsent,xo as hasPermission,Ir as immerPlugin,kn as importKey,Ar as initState,Tt as isCryptoAvailable,Se as logAudit,uo as loggerPlugin,Po as recordConsent,ko as revokeConsent,me as sanitizeValue,Dr as schemaPlugin,Tn as setAuditLogger,$r as snapshotPlugin,Nr as syncPlugin,Or as undoRedoPlugin,Ie as useGState,Tr as useIsStoreReady,Ie as useSimpleState,Ie as useStore,it as validateKey};
|
|
1
|
+
var yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Kt=yt((Xn,Ft)=>{"use strict";var ct=Object.defineProperty,Yt=Object.getOwnPropertyDescriptor,en=Object.getOwnPropertyNames,tn=Object.prototype.hasOwnProperty,nn=(e,t)=>{for(var n in t)ct(e,n,{get:t[n],enumerable:!0})},rn=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of en(t))!tn.call(e,o)&&o!==n&&ct(e,o,{get:()=>t[o],enumerable:!(r=Yt(t,o))||r.enumerable});return e},on=e=>rn(ct({},"__esModule",{value:!0}),e),Ot={};nn(Ot,{Immer:()=>Vt,applyPatches:()=>An,castDraft:()=>Mn,castImmutable:()=>In,createDraft:()=>Cn,current:()=>Nt,enableArrayMethods:()=>vn,enableMapSet:()=>bn,enablePatches:()=>wn,finishDraft:()=>Rn,freeze:()=>Ge,immerable:()=>ae,isDraft:()=>B,isDraftable:()=>K,nothing:()=>Be,original:()=>an,produce:()=>xn,produceWithPatches:()=>Pn,setAutoFreeze:()=>_n,setUseStrictIteration:()=>En,setUseStrictShallowCopy:()=>kn});Ft.exports=on(Ot);var Be=Symbol.for("immer-nothing"),ae=Symbol.for("immer-draftable"),k=Symbol.for("immer-state");function z(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var F=Object,oe=F.getPrototypeOf,Se="constructor",Pe="prototype",ot="configurable",Ue="enumerable",ze="writable",me="value",B=e=>!!e&&!!e[k];function K(e){return e?Tt(e)||_e(e)||!!e[ae]||!!e[Se]?.[ae]||ke(e)||Ee(e):!1}var sn=F[Pe][Se].toString(),Et=new WeakMap;function Tt(e){if(!e||!le(e))return!1;let t=oe(e);if(t===null||t===F[Pe])return!0;let n=F.hasOwnProperty.call(t,Se)&&t[Se];if(n===Object)return!0;if(!re(n))return!1;let r=Et.get(n);return r===void 0&&(r=Function.toString.call(n),Et.set(n,r)),r===sn}function an(e){return B(e)||z(15,e),e[k].t}function ce(e,t,n=!0){se(e)===0?(n?Reflect.ownKeys(e):F.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,o)=>t(o,r,e))}function se(e){let t=e[k];return t?t.r:_e(e)?1:ke(e)?2:Ee(e)?3:0}var he=(e,t,n=se(e))=>n===2?e.has(t):F[Pe].hasOwnProperty.call(e,t),Q=(e,t,n=se(e))=>n===2?e.get(t):e[t],$e=(e,t,n,r=se(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function ln(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var _e=Array.isArray,ke=e=>e instanceof Map,Ee=e=>e instanceof Set,le=e=>typeof e=="object",re=e=>typeof e=="function",nt=e=>typeof e=="boolean";function cn(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Dt=e=>le(e)?e?.[k]:null,D=e=>e.e||e.t,un=e=>{let t=Dt(e);return t?t.e??t.t:e},ut=e=>e.s?e.e:e.t;function st(e,t){if(ke(e))return new Map(e);if(Ee(e))return new Set(e);if(_e(e))return Array[Pe].slice.call(e);let n=Tt(e);if(t===!0||t==="class_only"&&!n){let r=F.getOwnPropertyDescriptors(e);delete r[k];let o=Reflect.ownKeys(r);for(let i=0;i<o.length;i++){let p=o[i],h=r[p];h[ze]===!1&&(h[ze]=!0,h[ot]=!0),(h.get||h.set)&&(r[p]={[ot]:!0,[ze]:!0,[Ue]:h[Ue],[me]:e[p]})}return F.create(oe(e),r)}else{let r=oe(e);if(r!==null&&n)return{...e};let o=F.create(r);return F.assign(o,e)}}function Ge(e,t=!1){return Je(e)||B(e)||!K(e)||(se(e)>1&&F.defineProperties(e,{set:je,add:je,clear:je,delete:je}),F.freeze(e),t&&ce(e,(n,r)=>{Ge(r,!0)},!1)),e}function fn(){z(2)}var je={[me]:fn};function Je(e){return e===null||!le(e)?!0:F.isFrozen(e)}var we="MapSet",Ve="Patches",it="ArrayMethods",Ne={};function ie(e){let t=Ne[e];return t||z(0,e),t}var At=e=>!!Ne[e];function ft(e,t){Ne[e]||(Ne[e]=t)}var be,We=()=>be,dn=(e,t)=>({o:[],i:e,l:t,F:!0,m:0,P:new Set,T:new Set,I:At(we)?ie(we):void 0,E:At(it)?ie(it):void 0});function Ct(e,t){t&&(e.x=ie(Ve),e.y=[],e.d=[],e.C=t)}function at(e){lt(e),e.o.forEach(pn),e.o=null}function lt(e){e===be&&(be=e.i)}var Rt=e=>be=dn(be,e);function pn(e){let t=e[k];t.r===0||t.r===1?t.b():t.g=!0}function Mt(e,t){t.m=t.o.length;let n=t.o[0];if(e!==void 0&&e!==n){n[k].s&&(at(t),z(4)),K(e)&&(e=It(t,e));let{x:r}=t;r&&r.M(n[k].t,e,t)}else e=It(t,n);return gn(t,e,!0),at(t),t.y&&t.C(t.y,t.d),e!==Be?e:void 0}function It(e,t){if(Je(t))return t;let n=t[k];if(!n)return Ke(t,e.P,e);if(!qe(n,e))return t;if(!n.s)return n.t;if(!n.u){let{f:r}=n;if(r)for(;r.length>0;)r.pop()(e);Ut(n,e)}return n.e}function gn(e,t,n=!1){!e.i&&e.l.h&&e.F&&Ge(t,n)}function jt(e){e.u=!0,e.a.m--}var qe=(e,t)=>e.a===t,hn=[];function zt(e,t,n,r){let o=D(e),i=e.r;if(r!==void 0&&Q(o,r,i)===t){$e(o,r,n,i);return}if(!e.D){let h=e.D=new Map;ce(o,(y,a)=>{if(B(a)){let u=h.get(a)||[];u.push(y),h.set(a,u)}})}let p=e.D.get(t)??hn;for(let h of p)$e(o,h,n,i)}function yn(e,t,n){e.f.push(function(r){let o=t;if(!o||!qe(o,r))return;r.I?.fixSetContents(o);let i=ut(o);zt(e,o.c??o,i,n),Ut(o,r)})}function Ut(e,t){if(e.s&&!e.u&&(e.r===3||e.r===1&&e.R||(e.n?.size??0)>0)){let{x:n}=t;if(n){let r=n.getPath(e);r&&n.O(e,r,t)}jt(e)}}function Fe(e,t,n){let{a:r}=e;if(B(n)){let o=n[k];qe(o,r)&&o.f.push(function(){ye(e);let i=ut(o);zt(e,n,i,t)})}else K(n)&&e.f.push(function(){let o=D(e);e.r===3?o.has(n)&&Ke(n,r.P,r):Q(o,t,e.r)===n&&r.o.length>1&&(e.n.get(t)??!1)===!0&&e.e&&Ke(Q(e.e,t,e.r),r.P,r)})}function Ke(e,t,n){return!n.l.h&&n.m<1||B(e)||t.has(e)||!K(e)||Je(e)||(t.add(e),ce(e,(r,o)=>{if(B(o)){let i=o[k];if(qe(i,n)){let p=ut(i);$e(e,r,p,e.r),jt(i)}}else K(o)&&Ke(o,t,n)})),e}function Sn(e,t){let n=_e(e),r={r:n?1:0,a:t?t.a:We(),s:!1,u:!1,n:void 0,i:t,t:e,c:null,e:null,b:null,S:!1,f:void 0},o=r,i=Le;n&&(o=[r],i=ve);let{revoke:p,proxy:h}=Proxy.revocable(o,i);return r.c=h,r.b=p,[h,r]}var Le={get(e,t){if(t===k)return e;let n=e.a.E,r=e.r===1&&typeof t=="string";if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let o=D(e);if(!he(o,t,e.r))return mn(e,o,t);let i=o[t];if(e.u||!K(i)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&cn(t))return i;if(i===rt(e.t,t)){ye(e);let p=e.r===1?+t:t,h=xe(e.a,i,e,p);return e.e[p]=h}return i},has(e,t){return t in D(e)},ownKeys(e){return Reflect.ownKeys(D(e))},set(e,t,n){let r=$t(D(e),t);if(r?.set)return r.set.call(e.c,n),!0;if(!e.s){let o=rt(D(e),t),i=o?.[k];if(i&&i.t===n)return e.e[t]=n,e.n.set(t,!1),!0;if(ln(n,o)&&(n!==void 0||he(e.t,t,e.r)))return!0;ye(e),q(e)}return e.e[t]===n&&(n!==void 0||t in e.e)||Number.isNaN(n)&&Number.isNaN(e.e[t])||(e.e[t]=n,e.n.set(t,!0),Fe(e,t,n)),!0},deleteProperty(e,t){return ye(e),rt(e.t,t)!==void 0||t in e.t?(e.n.set(t,!1),q(e)):e.n.delete(t),e.e&&delete e.e[t],!0},getOwnPropertyDescriptor(e,t){let n=D(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[ze]:!0,[ot]:e.r!==1||t!=="length",[Ue]:r[Ue],[me]:n[t]}},defineProperty(){z(11)},getPrototypeOf(e){return oe(e.t)},setPrototypeOf(){z(12)}},ve={};for(let e in Le){let t=Le[e];ve[e]=function(){let n=arguments;return n[0]=n[0][0],t.apply(this,n)}}ve.deleteProperty=function(e,t){return ve.set.call(this,e,t,void 0)};ve.set=function(e,t,n){return Le.set.call(this,e[0],t,n,e[0])};function rt(e,t){let n=e[k];return(n?D(n):e)[t]}function mn(e,t,n){let r=$t(t,n);return r?me in r?r[me]:r.get?.call(e.c):void 0}function $t(e,t){if(!(t in e))return;let n=oe(e);for(;n;){let r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=oe(n)}}function q(e){e.s||(e.s=!0,e.i&&q(e.i))}function ye(e){e.e||(e.n=new Map,e.e=st(e.t,e.a.l.A))}var Vt=class{constructor(e){this.h=!0,this.A=!1,this._=!1,this.produce=(t,n,r)=>{if(re(t)&&!re(n)){let i=n;n=t;let p=this;return function(h=i,...y){return p.produce(h,a=>n.call(this,a,...y))}}re(n)||z(6),r!==void 0&&!re(r)&&z(7);let o;if(K(t)){let i=Rt(this),p=xe(i,t,void 0),h=!0;try{o=n(p),h=!1}finally{h?at(i):lt(i)}return Ct(i,r),Mt(o,i)}else if(!t||!le(t)){if(o=n(t),o===void 0&&(o=t),o===Be&&(o=void 0),this.h&&Ge(o,!0),r){let i=[],p=[];ie(Ve).M(t,o,{y:i,d:p}),r(i,p)}return o}else z(1,t)},this.produceWithPatches=(t,n)=>{if(re(t))return(i,...p)=>this.produceWithPatches(i,h=>t(h,...p));let r,o;return[this.produce(t,n,(i,p)=>{r=i,o=p}),r,o]},nt(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),nt(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),nt(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){K(e)||z(8),B(e)&&(e=Nt(e));let t=Rt(this),n=xe(t,e,void 0);return n[k].S=!0,lt(t),n}finishDraft(e,t){let n=e&&e[k];(!n||!n.S)&&z(9);let{a:r}=n;return Ct(r,t),Mt(void 0,r)}setAutoFreeze(e){this.h=e}setUseStrictShallowCopy(e){this.A=e}setUseStrictIteration(e){this._=e}shouldUseStrictIteration(){return this._}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let o=t[n];if(o.path.length===0&&o.op==="replace"){e=o.value;break}}n>-1&&(t=t.slice(n+1));let r=ie(Ve).N;return B(e)?r(e,t):this.produce(e,o=>r(o,t))}};function xe(e,t,n,r){let[o,i]=ke(t)?ie(we).w(t,n):Ee(t)?ie(we).V(t,n):Sn(t,n);return(n?.a??We()).o.push(o),i.f=n?.f??[],i.p=r,n&&r!==void 0?yn(n,i,r):i.f.push(function(p){p.I?.fixSetContents(i);let{x:h}=p;i.s&&h&&h.O(i,[],p)}),o}function Nt(e){return B(e)||z(10,e),Wt(e)}function Wt(e){if(!K(e)||Je(e))return e;let t=e[k],n,r=!0;if(t){if(!t.s)return t.t;t.u=!0,n=st(e,t.a.l.A),r=t.a.l.shouldUseStrictIteration()}else n=st(e,!0);return ce(n,(o,i)=>{$e(n,o,Wt(i))},r),t&&(t.u=!1),n}function wn(){function e(d,b=[]){if(d.p!==void 0){let _=d.i.e??d.i.t,w=Dt(Q(_,d.p)),M=Q(_,d.p);if(M===void 0||M!==d.c&&M!==d.t&&M!==d.e||w!=null&&w.t!==d.t)return null;let I=d.i.r===3,P;if(I){let l=d.i;P=Array.from(l.o.keys()).indexOf(d.p)}else P=d.p;if(!(I&&_.size>P||he(_,P)))return null;b.push(P)}if(d.i)return e(d.i,b);b.reverse();try{t(d.e,b)}catch{return null}return b}function t(d,b){let _=d;for(let w=0;w<b.length-1;w++){let M=b[w];if(_=Q(_,M),!le(_)||_===null)throw new Error(`Cannot resolve path at '${b.join("/")}'`)}return _}let n="replace",r="add",o="remove";function i(d,b,_){if(d.a.T.has(d))return;d.a.T.add(d);let{y:w,d:M}=_;switch(d.r){case 0:case 2:return h(d,b,w,M);case 1:return p(d,b,w,M);case 3:return y(d,b,w,M)}}function p(d,b,_,w){let{t:M,n:I}=d,P=d.e;P.length<M.length&&([M,P]=[P,M],[_,w]=[w,_]);let l=d.R===!0;for(let g=0;g<M.length;g++){let S=P[g],v=M[g];if((l||I?.get(g.toString()))&&S!==v){let A=S?.[k];if(A&&A.s)continue;let j=b.concat([g]);_.push({op:n,path:j,value:O(S)}),w.push({op:n,path:j,value:O(v)})}}for(let g=M.length;g<P.length;g++){let S=b.concat([g]);_.push({op:r,path:S,value:O(P[g])})}for(let g=P.length-1;M.length<=g;--g){let S=b.concat([g]);w.push({op:o,path:S})}}function h(d,b,_,w){let{t:M,e:I,r:P}=d;ce(d.n,(l,g)=>{let S=Q(M,l,P),v=Q(I,l,P),A=g?he(M,l)?n:r:o;if(S===v&&A===n)return;let j=b.concat(l);_.push(A===o?{op:A,path:j}:{op:A,path:j,value:O(v)}),w.push(A===r?{op:o,path:j}:A===o?{op:r,path:j,value:O(S)}:{op:n,path:j,value:O(S)})})}function y(d,b,_,w){let{t:M,e:I}=d,P=0;M.forEach(l=>{if(!I.has(l)){let g=b.concat([P]);_.push({op:o,path:g,value:l}),w.unshift({op:r,path:g,value:l})}P++}),P=0,I.forEach(l=>{if(!M.has(l)){let g=b.concat([P]);_.push({op:r,path:g,value:l}),w.unshift({op:o,path:g,value:l})}P++})}function a(d,b,_){let{y:w,d:M}=_;w.push({op:n,path:[],value:b===Be?void 0:b}),M.push({op:n,path:[],value:d})}function u(d,b){return b.forEach(_=>{let{path:w,op:M}=_,I=d;for(let S=0;S<w.length-1;S++){let v=se(I),A=w[S];typeof A!="string"&&typeof A!="number"&&(A=""+A),(v===0||v===1)&&(A==="__proto__"||A===Se)&&z(19),re(I)&&A===Pe&&z(19),I=Q(I,A),le(I)||z(18,w.join("/"))}let P=se(I),l=E(_.value),g=w[w.length-1];switch(M){case n:switch(P){case 2:return I.set(g,l);case 3:z(16);default:return I[g]=l}case r:switch(P){case 1:return g==="-"?I.push(l):I.splice(g,0,l);case 2:return I.set(g,l);case 3:return I.add(l);default:return I[g]=l}case o:switch(P){case 1:return I.splice(g,1);case 2:return I.delete(g);case 3:return I.delete(_.value);default:return delete I[g]}default:z(17,M)}}),d}function E(d){if(!K(d))return d;if(_e(d))return d.map(E);if(ke(d))return new Map(Array.from(d.entries()).map(([_,w])=>[_,E(w)]));if(Ee(d))return new Set(Array.from(d).map(E));let b=Object.create(oe(d));for(let _ in d)b[_]=E(d[_]);return he(d,ae)&&(b[ae]=d[ae]),b}function O(d){return B(d)?E(d):d}ft(Ve,{N:u,O:i,M:a,getPath:e})}function bn(){class e extends Map{constructor(a,u){super(),this[k]={r:2,i:u,a:u?u.a:We(),s:!1,u:!1,e:void 0,n:void 0,t:a,c:this,S:!1,g:!1,f:[]}}get size(){return D(this[k]).size}has(a){return D(this[k]).has(a)}set(a,u){let E=this[k];return p(E),(!D(E).has(a)||D(E).get(a)!==u)&&(n(E),q(E),E.n.set(a,!0),E.e.set(a,u),E.n.set(a,!0),Fe(E,a,u)),this}delete(a){if(!this.has(a))return!1;let u=this[k];return p(u),n(u),q(u),u.t.has(a)?u.n.set(a,!1):u.n.delete(a),u.e.delete(a),!0}clear(){let a=this[k];p(a),D(a).size&&(n(a),q(a),a.n=new Map,ce(a.t,u=>{a.n.set(u,!1)}),a.e.clear())}forEach(a,u){let E=this[k];D(E).forEach((O,d,b)=>{a.call(u,this.get(d),d,this)})}get(a){let u=this[k];p(u);let E=D(u).get(a);if(u.u||!K(E)||E!==u.t.get(a))return E;let O=xe(u.a,E,u,a);return n(u),u.e.set(a,O),O}keys(){return D(this[k]).keys()}values(){let a=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let u=a.next();return u.done?u:{done:!1,value:this.get(u.value)}}}}entries(){let a=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let u=a.next();if(u.done)return u;let E=this.get(u.value);return{done:!1,value:[u.value,E]}}}}[Symbol.iterator](){return this.entries()}}function t(y,a){let u=new e(y,a);return[u,u[k]]}function n(y){y.e||(y.n=new Map,y.e=new Map(y.t))}class r extends Set{constructor(a,u){super(),this[k]={r:3,i:u,a:u?u.a:We(),s:!1,u:!1,e:void 0,t:a,c:this,o:new Map,g:!1,S:!1,n:void 0,f:[]}}get size(){return D(this[k]).size}has(a){let u=this[k];return p(u),u.e?!!(u.e.has(a)||u.o.has(a)&&u.e.has(u.o.get(a))):u.t.has(a)}add(a){let u=this[k];return p(u),this.has(a)||(i(u),q(u),u.e.add(a),Fe(u,a,a)),this}delete(a){if(!this.has(a))return!1;let u=this[k];return p(u),i(u),q(u),u.e.delete(a)||(u.o.has(a)?u.e.delete(u.o.get(a)):!1)}clear(){let a=this[k];p(a),D(a).size&&(i(a),q(a),a.e.clear())}values(){let a=this[k];return p(a),i(a),a.e.values()}entries(){let a=this[k];return p(a),i(a),a.e.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(a,u){let E=this.values(),O=E.next();for(;!O.done;)a.call(u,O.value,O.value,this),O=E.next()}}function o(y,a){let u=new r(y,a);return[u,u[k]]}function i(y){y.e||(y.e=new Set,y.t.forEach(a=>{if(K(a)){let u=xe(y.a,a,y,a);y.o.set(a,u),y.e.add(u)}else y.e.add(a)}))}function p(y){y.g&&z(3,JSON.stringify(D(y)))}function h(y){if(y.r===3&&y.e){let a=new Set(y.e);y.e.clear(),a.forEach(u=>{y.e.add(un(u))})}}ft(we,{w:t,V:o,fixSetContents:h})}function vn(){let e=new Set(["shift","unshift"]),t=new Set(["push","pop"]),n=new Set([...t,...e]),r=new Set(["reverse","sort"]),o=new Set([...n,...r,"splice"]),i=new Set(["find","findLast"]),p=new Set(["filter","slice","concat","flat",...i,"findIndex","findLastIndex","some","every","indexOf","lastIndexOf","includes","join","toString","toLocaleString"]);function h(l){return o.has(l)}function y(l){return p.has(l)}function a(l){return h(l)||y(l)}function u(l,g){l.operationMethod=g}function E(l){l.operationMethod=void 0}function O(l,g,S=!0){ye(l);let v=g();return q(l),S&&l.n.set("length",!0),v}function d(l){l.R=!0}function b(l,g){return l<0?Math.max(g+l,0):Math.min(l,g)}function _(l,g,S){for(let v=0;v<S.length;v++){let A=g+v;l.n.set(A,!0),Fe(l,A,S[v])}}function w(l,g,S){return O(l,()=>{let v=l.e.length,A=l.e[g](...S);return e.has(g)&&d(l),g==="push"&&S.length>0?_(l,v,S):g==="unshift"&&S.length>0&&_(l,0,S),n.has(g)?A:l.c})}function M(l,g,S){return O(l,()=>(l.e[g](...S),d(l),l.c),!1)}function I(l,g){return function(...S){let v=g;u(l,v);try{if(h(v)){if(n.has(v))return w(l,v,S);if(r.has(v))return M(l,v,S);if(v==="splice"){let A=O(l,()=>l.e.splice(...S));if(d(l),S.length>2){let j=b(S[0]??0,l.e.length);_(l,j,S.slice(2))}return A}}else return P(l,v,S)}finally{E(l)}}}function P(l,g,S){let v=D(l);if(g==="filter"){let A=S[0],j=[];for(let N=0;N<v.length;N++)A(v[N],N,v)&&j.push(l.c[N]);return j}if(i.has(g)){let A=S[0],j=g==="find",N=j?1:-1,G=j?0:v.length-1;for(let W=G;W>=0&&W<v.length;W+=N)if(A(v[W],W,v))return l.c[W];return}if(g==="slice"){let A=S[0]??0,j=S[1]??v.length,N=b(A,v.length),G=b(j,v.length),W=[];for(let ee=N;ee<G;ee++)W.push(l.c[ee]);return W}return v[g](...S)}ft(it,{createMethodInterceptor:I,isArrayOperationMethod:a,isMutatingArrayMethod:h})}var V=new Vt,xn=V.produce,Pn=V.produceWithPatches.bind(V),_n=V.setAutoFreeze.bind(V),kn=V.setUseStrictShallowCopy.bind(V),En=V.setUseStrictIteration.bind(V),An=V.applyPatches.bind(V),Cn=V.createDraft.bind(V),Rn=V.finishDraft.bind(V),Mn=e=>e,In=e=>e});var Bt=yt((Zn,Lt)=>{"use strict";Lt.exports=Kt()});var St=typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof crypto.subtle.generateKey=="function",qt=async()=>{if(!St)throw new Error("Web Crypto API not available");let e=await crypto.subtle.generateKey({name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),t=crypto.getRandomValues(new Uint8Array(12));return{key:e,iv:t}},Ht=async e=>{let t=await crypto.subtle.exportKey("raw",e.key);return{key:btoa(String.fromCharCode(...new Uint8Array(t))),iv:btoa(String.fromCharCode(...e.iv))}},Xt=async(e,t)=>{let n=Uint8Array.from(atob(e),i=>i.charCodeAt(0)),r=Uint8Array.from(atob(t),i=>i.charCodeAt(0));return{key:await crypto.subtle.importKey("raw",n,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),iv:r}},mt=async(e,t)=>{let n=new TextEncoder,r=n.encode(JSON.stringify(e)),o=await crypto.subtle.encrypt({name:"AES-GCM",iv:t.iv},t.key,r),i=new Uint8Array(t.iv.length+o.byteLength);return i.set(t.iv),i.set(new Uint8Array(o),t.iv.length),btoa(String.fromCharCode(...i))},wt=async(e,t)=>{let n=Uint8Array.from(atob(e),p=>p.charCodeAt(0)),r=n.slice(0,12),o=n.slice(12),i=await crypto.subtle.decrypt({name:"AES-GCM",iv:r},t.key,o);return JSON.parse(new TextDecoder().decode(i))},Te=null,Qt=e=>{Te=e},bt=()=>Te!==null,ge=e=>{Te&&Te(e)},Ye=(e,t,n)=>{e.set(t instanceof RegExp?t.source:t,n)},De=(e,t,n,r)=>{if(e.size===0)return!0;for(let[o,i]of e){let p;if(typeof o=="function")p=o(t,r);else try{p=new RegExp(o).test(t)}catch{continue}if(p)return i.includes(n)||i.includes("admin")}return!1},pe=e=>{if(typeof e=="string")return e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"").replace(/javascript:/gi,"[REMOVED]").replace(/on\w+\s*=/gi,"[REMOVED]=").replace(/<iframe\b[^<]*(?:(?!<\/iframe>)<[^<]*)*<\/iframe>/gi,"").replace(/<object\b[^<]*(?:(?!<\/object>)<[^<]*)*<\/object>/gi,"").replace(/<embed\b[^<]*(?:(?!<\/embed>)<[^<]*)*<\/embed>/gi,"").replace(/<svg\b[^<]*(?:(?!<\/svg>)<[^<]*)*<\/svg>/gi,"").replace(/<foreignObject\b[^<]*(?:(?!<\/foreignObject>)<[^<]*)*<\/foreignObject>/gi,"").replace(/<math\b[^<]*(?:(?!<\/math>)<[^<]*)*<\/math>/gi,"").replace(/<\?php\b[^<]*(?:(?!<\?php>)<[^<]*)*<\?php>/gi,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/`/g,"`");if(e&&typeof e=="object"&&!Array.isArray(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=pe(r);return t}return Array.isArray(e)?e.map(t=>pe(t)):e},et=e=>/^[a-zA-Z0-9_.-]+$/.test(e)&&e.length<=256,tt=(e,t,n,r)=>{let o={id:crypto.randomUUID(),purpose:n,granted:r,timestamp:Date.now()},i=e.get(t)||[];return i.push(o),e.set(t,i),ge({timestamp:Date.now(),action:"set",key:`consent:${n}`,userId:t,success:!0}),o},vt=(e,t,n)=>{let r=e.get(t);if(!r)return!1;for(let o=r.length-1;o>=0;o--){let i=r[o];if(i&&i.purpose===n)return i.granted}return!1},xt=(e,t,n)=>tt(e,t,n,!1),Pt=(e,t)=>e.get(t)||[],_t=(e,t)=>({userId:t,exportedAt:Date.now(),consents:e.get(t)||[]}),kt=(e,t)=>{let n=e.get(t)?.length||0;return e.delete(t),{success:!0,deletedConsents:n}};var dt=null,Ae=null,On=()=>{if(!dt)try{let e=Bt();dt=e.produce,Ae=e.freeze}catch(e){throw console.error("[gState] Immer not installed. Run: npm install immer"),e}},Tn={local:()=>typeof window<"u"?window.localStorage:null,session:()=>typeof window<"u"?window.sessionStorage:null,memory:()=>{let e=new Map;return{getItem:t=>e.get(t)||null,setItem:(t,n)=>e.set(t,n),removeItem:t=>e.delete(t),key:t=>Array.from(e.keys())[t]||null,get length(){return e.size}}}},He=e=>{if(e===null||typeof e!="object")return e;if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}let t=new WeakMap,n=r=>{if(r===null||typeof r!="object")return r;if(t.has(r))return t.get(r);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r.source,r.flags);let o=Array.isArray(r)?[]:Object.create(Object.getPrototypeOf(r));if(t.set(r,o),Array.isArray(r))for(let i=0;i<r.length;i++)o[i]=n(r[i]);else for(let i of Object.keys(r))o[i]=n(r[i]);return o};return n(e)},Xe=(e,t)=>{if(e===t)return!0;if(e===null||t===null||typeof e!="object"||typeof t!="object")return e===t;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++)if(!Xe(e[o],t[o]))return!1;return!0}let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let o of n)if(!r.includes(o)||!Xe(e[o],t[o]))return!1;return!0},ue=e=>{let t=new Map,n=new Map,r=new Map,o=new Set,i=new Map,p=new Set,h=new Map,y=new Map,a=new Map,u=new Map,E=new Map,O=new Map,d=new Map,b=new Map,_=e?.namespace||"gstate",w=e?.silent??!1,M=e?.debounceTime??150,I=e?.version??0,P=e?.storage||Tn.local(),l=e?.onError,g=e?.maxObjectSize??5*1024*1024,S=e?.maxTotalSize??50*1024*1024,v=e?.encryptionKey??null,A=e?.validateInput??!0,j=e?.auditEnabled??!0,N=e?.userId,G=e?.immer??!0;G&&On(),e?.accessRules&&e.accessRules.forEach(s=>Ye(d,s.pattern,s.permissions));let W=!1,ee=!1,Re=!1,J=0,Qe=null,Me,Jt=new Promise(s=>{Me=s}),Ze=s=>{if(s==null)return 0;let c=0,f=[s],m=new WeakSet;for(;f.length>0;){let C=f.pop();if(typeof C=="boolean")c+=4;else if(typeof C=="number")c+=8;else if(typeof C=="string")c+=C.length*2;else if(typeof C=="object"&&C!==null){let x=C;if(m.has(x))continue;if(m.add(x),Array.isArray(x))for(let R=0;R<x.length;R++)f.push(x[R]);else for(let R of Object.keys(x))c+=R.length*2,f.push(x[R])}}return c},Ie=()=>`${_}_`,te=(s,c)=>{u.forEach(f=>{if(f.hooks?.[s])try{f.hooks[s](c)}catch(m){let C=m instanceof Error?m:new Error(String(m));l?l(C,{operation:`plugin:${f.name}:${s}`,key:c.key}):w||console.error(`[gState] Plugin "${f.name}" error:`,m)}})},H=(s,c,f,m)=>{j&&bt()&&ge&&ge({timestamp:Date.now(),action:s,key:c,userId:N,success:f,error:m})},de=s=>{if(s&&(a.get(s)?.forEach(c=>pt(c)),h.get(s)?.forEach(c=>{try{c($.get(s))}catch(f){let m=f instanceof Error?f:new Error(String(f));l?l(m,{operation:"watcher",key:s}):w||console.error(`[gState] Watcher error for "${s}":`,f)}}),i.get(s)?.forEach(c=>{try{c()}catch(f){let m=f instanceof Error?f:new Error(String(f));l?l(m,{operation:"keyListener",key:s}):w||console.error(`[gState] Listener error for "${s}":`,f)}})),W){ee=!0;return}o.forEach(c=>{try{c()}catch(f){let m=f instanceof Error?f:new Error(String(f));l?l(m,{operation:"listener"}):w||console.error("[gState] Global listener error:",f)}})},pt=s=>{let c=y.get(s),f=new Set;if(!c)return;let m=x=>(f.add(x),$.get(x)),C=c.selector(m);c.deps.forEach(x=>{if(!f.has(x)){let R=a.get(x);R&&(R.delete(s),R.size===0&&a.delete(x))}}),f.forEach(x=>{c.deps.has(x)||(a.has(x)||a.set(x,new Set),a.get(x).add(s))}),c.deps=f,Xe(c.lastValue,C)||(c.lastValue=G&&C!==null&&typeof C=="object"?Ae(He(C),!0):C,n.set(s,(n.get(s)||0)+1),de(s))},gt=async()=>{if(!P)return;let s=Array.from(E.entries());E.clear();for(let[c,f]of s)try{let m=f.value,C=f.options.encoded||f.options.secure;if(f.options.encrypted){if(!v)throw new Error(`Encryption key missing for "${c}"`);m=await mt(f.value,v)}else C?m=btoa(JSON.stringify(f.value)):typeof f.value=="object"&&f.value!==null&&(m=JSON.stringify(f.value));P.setItem(`${Ie()}${c}`,JSON.stringify({v:n.get(c)||1,t:Date.now(),e:f.options.ttl?Date.now()+f.options.ttl:null,d:m,_sys_v:I,_enc:f.options.encrypted?!0:void 0,_b64:C?!0:void 0})),H("set",c,!0)}catch(m){let C=m instanceof Error?m:new Error(String(m));l?l(C,{operation:"persist",key:c}):w||console.error("[gState] Persist failed:",C)}},ne={},$={_setSilently:(s,c)=>{let f=r.get(s)||0,m=G&&c!==null&&typeof c=="object"?Ae(He(c),!0):c,C=Ze(m);J=J-f+C,r.set(s,C),t.set(s,m),n.set(s,(n.get(s)||0)+1)},_registerMethod:(s,c,f)=>{if(f!==void 0){let x=s,R=c;ne[x]||(ne[x]={}),ne[x][R]=f;return}console.warn("[gState] _registerMethod(name, fn) is deprecated. Use _registerMethod(pluginName, methodName, fn) instead.");let m=s,C=c;ne.core||(ne.core={}),ne.core[m]=C},set:(s,c,f={})=>{let m=t.get(s),C=G&&typeof c=="function"?dt(m,c):c;if(A&&!et(s))return w||console.warn(`[gState] Invalid key: ${s}`),!1;if(!De(d,s,"write",N))return H("set",s,!1,"RBAC Denied"),w||console.error(`[gState] RBAC Denied for "${s}"`),!1;let x=A?pe(C):C,R=r.get(s)||0;te("onBeforeSet",{key:s,value:x,store:$,version:n.get(s)||0});let L=G&&x!==null&&typeof x=="object"?Ae(He(x),!0):x;if(!Xe(m,L)){let T=g>0||S>0?Ze(L):0;if(g>0&&T>g){let U=new Error(`Object size (${T} bytes) exceeds maxObjectSize (${g} bytes)`);l?l(U,{operation:"set",key:s}):w||console.warn(`[gState] ${U.message} for "${s}"`)}if(S>0){let U=J-R+T;if(U>S){let Oe=new Error(`Total store size (${U} bytes) exceeds limit (${S} bytes)`);l?l(Oe,{operation:"set"}):w||console.warn(`[gState] ${Oe.message}`)}}J=J-R+T,r.set(s,T),t.set(s,L),n.set(s,(n.get(s)||0)+1);let X=!!(f.persist||e?.persistByDefault||e?.persistence||f.encrypted||f.encoded||f.secure||f.ttl);return X&&(E.set(s,{value:L,options:{...f,persist:X}}),Qe&&clearTimeout(Qe),Qe=setTimeout(gt,M)),te("onSet",{key:s,value:L,store:$,version:n.get(s)}),H("set",s,!0),de(s),!0}return!1},get:s=>{if(!De(d,s,"read",N))return H("get",s,!1,"RBAC Denied"),null;let c=t.get(s);return te("onGet",{store:$,key:s,value:c}),H("get",s,!0),c},compute:(s,c)=>{try{return y.has(s)||(y.set(s,{selector:c,lastValue:null,deps:new Set}),pt(s)),y.get(s).lastValue}catch(f){let m=f instanceof Error?f:new Error(String(f));return l?l(m,{operation:"compute",key:s}):w||console.error(`[gState] Compute error for "${s}":`,f),null}},watch:(s,c)=>{h.has(s)||h.set(s,new Set);let f=h.get(s);return f.add(c),()=>{f.delete(c),f.size===0&&h.delete(s)}},remove:s=>{if(!De(d,s,"delete",N))return H("delete",s,!1,"RBAC Denied"),!1;let c=t.get(s),f=t.delete(s);return f&&(J-=r.get(s)||0,r.delete(s),te("onRemove",{store:$,key:s,value:c})),n.set(s,(n.get(s)||0)+1),P&&P.removeItem(`${Ie()}${s}`),H("delete",s,!0),de(s),f},delete:s=>$.remove(s),deleteAll:()=>{if(Array.from(t.keys()).forEach(s=>$.remove(s)),P){let s=Ie();for(let c=0;c<(P.length||0);c++){let f=P.key(c);f?.startsWith(s)&&(P.removeItem(f),c--)}}return J=0,r.clear(),!0},list:()=>Object.fromEntries(t.entries()),use:s=>{p.add(s)},transaction:s=>{W=!0,te("onTransaction",{store:$,key:"START"});try{s()}finally{W=!1,te("onTransaction",{store:$,key:"END"}),ee&&(ee=!1,de())}},destroy:()=>{typeof window<"u"&&window.removeEventListener("beforeunload",ht),te("onDestroy",{store:$}),o.clear(),i.clear(),h.clear(),y.clear(),a.clear(),u.clear(),t.clear(),r.clear(),J=0,d.clear(),b.clear()},_addPlugin:s=>{try{u.set(s.name,s),s.hooks?.onInstall?.({store:$})}catch(c){let f=c instanceof Error?c:new Error(String(c));l?l(f,{operation:"plugin:install",key:s.name}):w||console.error(`[gState] Failed to install plugin "${s.name}":`,c)}},_removePlugin:s=>{u.delete(s)},_subscribe:(s,c)=>{if(c){i.has(c)||i.set(c,new Set);let f=i.get(c);return f.add(s),()=>{f.delete(s),f.size===0&&i.delete(c)}}return o.add(s),()=>o.delete(s)},_getVersion:s=>n.get(s)??0,addAccessRule:(s,c)=>Ye(d,s,c),hasPermission:(s,c,f)=>{if(d.size===0)return!0;for(let[m,C]of d){let x;if(typeof m=="function")x=m(s,f);else try{let R=O.get(m);R||(R=new RegExp(m),O.set(m,R)),x=R.test(s)}catch{continue}if(x)return C.includes(c)||C.includes("admin")}return!1},recordConsent:(s,c,f)=>tt(b,s,c,f),hasConsent:(s,c)=>vt(b,s,c),getConsents:s=>Pt(b,s),revokeConsent:(s,c)=>xt(b,s,c),exportUserData:s=>_t(b,s),deleteUserData:s=>kt(b,s),get plugins(){return ne},get isReady(){return Re},whenReady:()=>Jt};["addAccessRule","recordConsent","hasConsent","getConsents","revokeConsent","exportUserData","deleteUserData"].forEach(s=>{let c=$[s];c&&$._registerMethod("security",s,c)});let ht=()=>{E.size>0&>()};return typeof window<"u"&&window.addEventListener("beforeunload",ht),P?(async()=>{try{let c={},f=Ie(),m=0;for(let x=0;x<(P.length||0);x++){let R=P.key(x);if(!R||!R.startsWith(f))continue;let L=P.getItem(R);if(L)try{let T=JSON.parse(L),X=R.substring(f.length);if(m=Math.max(m,T._sys_v!==void 0?T._sys_v:T.v||0),T.e&&Date.now()>T.e){P.removeItem(R),x--;continue}let U=T.d;if(T._enc&&v)U=await wt(U,v);else if(typeof U=="string"){if(T._b64)try{U=JSON.parse(atob(U))}catch{}else if(U.startsWith("{")||U.startsWith("["))try{U=JSON.parse(U)}catch{}}c[X]=U,H("hydrate",X,!0)}catch(T){H("hydrate",R,!1,String(T));let X=T instanceof Error?T:new Error(String(T));l?l(X,{operation:"hydration",key:R}):w||console.error(`[gState] Hydration failed for "${R}":`,T)}}let C=m<I&&e?.migrate?e.migrate(c,m):c;Object.entries(C).forEach(([x,R])=>{let L=G&&R!==null&&typeof R=="object"?Ae(He(R),!0):R,T=Ze(L),X=r.get(x)||0;J=J-X+T,r.set(x,T),t.set(x,L),n.set(x,1)}),Re=!0,Me(),de()}catch(c){Re=!0,Me();let f=c instanceof Error?c:new Error(String(c));l?l(f,{operation:"hydration"}):w||console.error("[gState] Hydration failed:",f)}})():(Re=!0,Me()),$};import{useSyncExternalStore as Gt,useDebugValue as Dn,useMemo as fe}from"react";var Y=null,jn=e=>{Y&&!e?.namespace&&(e?.silent||console.warn("[gState] Store already exists. Pass a unique namespace to create additional stores."));let t=ue(e);return Y=t,t},zn=()=>{Y&&(Y.destroy(),Y=null)},Un=e=>{let t=e||Y,n=fe(()=>r=>t?t._subscribe(r):()=>{},[t]);return Gt(n,()=>t?t.isReady:!1,()=>!0)},Z=()=>Y;var Ce=(e,t)=>{let n=fe(()=>t||Y,[t]),r=fe(()=>({set:()=>(console.warn("[gState] Store not initialized. Call initState() or pass a store instance."),!1),get:()=>null,remove:()=>!1,delete:()=>!1,deleteAll:()=>!1,list:()=>({}),compute:()=>null,watch:()=>()=>{},use:()=>{},transaction:()=>{},destroy:()=>{},_subscribe:()=>()=>{},_setSilently:()=>{},_registerMethod:()=>{},_addPlugin:()=>{},_removePlugin:()=>{},_getVersion:()=>0,get isReady(){return!1},whenReady:()=>Promise.resolve(),get plugins(){return new Proxy({},{get:(y,a)=>new Proxy({},{get:(u,E)=>(...O)=>(console.warn(`[gState] Ghost store: Cannot call store.plugins.${String(a)}.${String(E)}() - store not initialized. Call initState() first or pass a store instance to useStore().`),null)})})}}),[]),o=n||r;fe(()=>{!n&&!t&&console.warn("[gState] Using ghost store - no store initialized. Call initState() or pass a store instance.")},[n,t]);let i=fe(()=>y=>o._subscribe(y,e),[o,e]),p=Gt(i,()=>o.get(e)??void 0,()=>{}),h=fe(()=>(y,a)=>o.set(e,y,a),[o,e]);return Dn(p,y=>`${e}: ${JSON.stringify(y)}`),[p,h]};var $n=(e,t)=>{let n=t?.key||"async_data",r=t?.store||ue({namespace:`async_${n}`,silent:!0});return r.get(n)==null&&r.set(n,{data:null,loading:!1,error:null,updatedAt:null}),Object.assign(r,{execute:async()=>{let i=r.get(n);r.set(n,{...i||{data:null,loading:!1,error:null,updatedAt:null},loading:!0,error:null}),"whenReady"in r&&!r.isReady&&await r.whenReady();try{let p=await e(),h=r.get(n);r.set(n,{...h||{data:null,loading:!1,error:null,updatedAt:null},data:p,loading:!1,updatedAt:Date.now()},{persist:t?.persist})}catch(p){let h=r.get(n);r.set(n,{...h||{data:null,loading:!1,error:null,updatedAt:null},error:p instanceof Error?p:new Error(String(p)),loading:!1})}}})};var Vn=()=>({name:"gstate-immer",hooks:{onInstall:({store:e})=>{e._registerMethod("immer","setWithProduce",((t,n)=>e.set(t,n)))}}});var Nn=e=>{let t=[],n=-1,r=!1,o=e?.limit||50;return{name:"gstate-undo-redo",hooks:{onInstall:({store:i})=>{t.push(i.list()),n=0,i._registerMethod("undoRedo","undo",()=>{if(n>0){r=!0,n--;let p=t[n];return p?(Object.entries(p).forEach(([h,y])=>{i._setSilently(h,y)}),r=!1,!0):!1}return!1}),i._registerMethod("undoRedo","redo",()=>{if(n<t.length-1){r=!0,n++;let p=t[n];return p?(Object.entries(p).forEach(([h,y])=>{i._setSilently(h,y)}),r=!1,!0):!1}return!1}),i._registerMethod("undoRedo","canUndo",()=>n>0),i._registerMethod("undoRedo","canRedo",()=>n<t.length-1)},onSet:({store:i})=>{r||(n<t.length-1&&(t=t.slice(0,n+1)),t.push(i.list()),t.length>o?t.shift():n++)}}}};var Wn=e=>({name:"gstate-schema",hooks:{onSet:({key:t,value:n})=>{if(!t)return;let r=e[t];if(r){let o=r(n);if(o!==!0)throw new Error(`[Schema Error] Validation failed for key "${t}": ${o===!1?"Invalid type":o}`)}}}});var Fn=e=>{let r=globalThis.__REDUX_DEVTOOLS_EXTENSION__;if(!r?.connect)return{name:"gstate-devtools-noop",hooks:{}};let o=null;return{name:"gstate-devtools",hooks:{onInstall:({store:i})=>{o=r.connect({name:e?.name||"Magnetar Store"}),o.init(i.list())},onSet:({key:i,store:p})=>{!i||!o||o.send(`SET_${i.toUpperCase()}`,p.list())},onRemove:({key:i,store:p})=>{!i||!o||o.send(`REMOVE_${i.toUpperCase()}`,p.list())}}}};var Kn=()=>{let e=new Map;return{name:"gstate-snapshot",hooks:{onInstall:({store:t})=>{t._registerMethod("snapshot","takeSnapshot",(n=>{e.set(n,t.list())})),t._registerMethod("snapshot","restoreSnapshot",(n=>{let r=e.get(n);return r?(t.transaction(()=>{Object.entries(r).forEach(([o,i])=>{t.set(o,i)})}),!0):!1})),t._registerMethod("snapshot","listSnapshots",(()=>Array.from(e.keys()))),t._registerMethod("snapshot","deleteSnapshot",(n=>e.delete(n))),t._registerMethod("snapshot","clearSnapshots",(()=>e.clear()))}}}};var Ln=e=>({name:"gstate-guard",hooks:{onBeforeSet:({key:t,value:n,store:r})=>{if(!t)return;let o=e[t];if(o){let i=o(n)}}}});var Bn=e=>({name:"gstate-analytics",hooks:{onSet:({key:t,value:n})=>{t&&(!e.keys||e.keys.includes(t))&&e.provider({key:t,value:n,action:"SET"})},onRemove:({key:t})=>{t&&(!e.keys||e.keys.includes(t))&&e.provider({key:t,value:null,action:"REMOVE"})}}});var Gn=e=>{let t=new BroadcastChannel(e?.channelName||"gstate_sync"),n=!1;return{name:"gstate-sync",hooks:{onInstall:({store:r})=>{t.onmessage=o=>{let{key:i,value:p,action:h}=o.data;i&&(n=!0,h==="REMOVE"?r.remove(i):r.set(i,p),n=!1)}},onSet:({key:r,value:o})=>{!r||n||t.postMessage({key:r,value:o,action:"SET"})},onRemove:({key:r})=>{!r||n||t.postMessage({key:r,action:"REMOVE"})},onDestroy:()=>{t.close()}}}};var Jn=()=>({name:"gstate-debug-noop",hooks:{}});var gr=e=>({name:"gstate-logger",hooks:{onSet:({key:t,value:n,version:r})=>{let o=new Date().toLocaleTimeString(),i=`[gState] SET: ${t} (v${r}) @ ${o}`;e?.collapsed?console.groupCollapsed(i):console.group(i),console.info("%c Value:","color: #4CAF50; font-weight: bold;",n),console.groupEnd()},onRemove:({key:t})=>{console.warn(`[gState] REMOVED: ${t}`)},onTransaction:({key:t})=>{t==="START"?console.group("\u2500\u2500 TRANSACTION START \u2500\u2500"):console.groupEnd()}}});var Cr=(e,t)=>{let r=ue(typeof t=="string"?{namespace:t}:t);return e&&Object.entries(e).forEach(([i,p])=>{r._setSilently(i,p)}),Object.assign(i=>Ce(i,r),r)};var Rr=(e,t)=>Z()?.addAccessRule(e,t),Mr=(e,t,n)=>Z()?.hasPermission(e,t,n)??!0,Ir=(e,t,n)=>{let r=Z();if(!r)throw new Error("[gState] recordConsent failed: No store found. call initState() first.");return r.recordConsent(e,t,n)},Or=(e,t)=>Z()?.hasConsent(e,t)??!1,Tr=e=>Z()?.getConsents(e)??[],Dr=(e,t)=>Z()?.revokeConsent(e,t),jr=e=>{let t=Z();if(!t)throw new Error("[gState] exportUserData failed: No store found.");return t.exportUserData(e)},zr=e=>{let t=Z();if(!t)throw new Error("[gState] deleteUserData failed: No store found.");return t.deleteUserData(e)},Ur=()=>{},$r=()=>{};export{Rr as addAccessRule,Bn as analyticsPlugin,Ur as clearAccessRules,$r as clearAllConsents,$n as createAsyncStore,ue as createStore,Jn as debugPlugin,zr as deleteUserData,zn as destroyState,Fn as devToolsPlugin,Ht as exportKey,jr as exportUserData,qt as generateEncryptionKey,Tr as getConsents,Cr as gstate,Ln as guardPlugin,Or as hasConsent,Mr as hasPermission,Vn as immerPlugin,Xt as importKey,jn as initState,St as isCryptoAvailable,ge as logAudit,gr as loggerPlugin,Ir as recordConsent,Dr as revokeConsent,pe as sanitizeValue,Wn as schemaPlugin,Qt as setAuditLogger,Kn as snapshotPlugin,Gn as syncPlugin,Nn as undoRedoPlugin,Ce as useGState,Un as useIsStoreReady,Ce as useSimpleState,Ce as useStore,et as validateKey};
|
|
@@ -15,7 +15,7 @@ npm install rgs
|
|
|
15
15
|
In your main entry file (e.g., `main.tsx` or `App.tsx`), wake up the engine once.
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
|
-
import { initState } from '@biglogic/rgs';
|
|
18
|
+
import { initState, useStore } from '@biglogic/rgs';
|
|
19
19
|
|
|
20
20
|
// Initialize with optional settings
|
|
21
21
|
initState({
|
|
@@ -58,7 +58,7 @@ const decoded = JSON.parse(atob(encoded)) // { secret: 'password123' }
|
|
|
58
58
|
#### Example: Custom Error Logging
|
|
59
59
|
|
|
60
60
|
```typescript
|
|
61
|
-
import { initState } from '@biglogic/rgs'
|
|
61
|
+
import { initState, useStore } from '@biglogic/rgs'
|
|
62
62
|
|
|
63
63
|
const store = initState({
|
|
64
64
|
namespace: 'myapp',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@biglogic/rgs",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.3",
|
|
4
4
|
"description": "Argis (RGS) - React Globo State: A react state everywhere made easy",
|
|
5
5
|
"deprecated": false,
|
|
6
6
|
"preferGlobal": true,
|
|
@@ -34,6 +34,9 @@
|
|
|
34
34
|
],
|
|
35
35
|
"main": "./index.js",
|
|
36
36
|
"types": "./index.d.ts",
|
|
37
|
+
"exports": {
|
|
38
|
+
".": "./index.js"
|
|
39
|
+
},
|
|
37
40
|
"scripts": {
|
|
38
41
|
"build": "tsc --emitDeclarationOnly --outDir dist && node ./esbuild.config.mjs",
|
|
39
42
|
"npm: pack": "npm run build && cd dist && npm pack",
|
|
@@ -56,8 +59,8 @@
|
|
|
56
59
|
"@types/node": "25.2.3",
|
|
57
60
|
"@types/react": "19.2.14",
|
|
58
61
|
"@types/react-dom": "19.2.3",
|
|
59
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
60
|
-
"@typescript-eslint/parser": "^8.
|
|
62
|
+
"@typescript-eslint/eslint-plugin": "^8.56.0",
|
|
63
|
+
"@typescript-eslint/parser": "^8.56.0",
|
|
61
64
|
"dphelper": "2.6.3",
|
|
62
65
|
"esbuild": "0.27.3",
|
|
63
66
|
"esbuild-plugin-copy": "2.1.1",
|
|
@@ -71,6 +74,6 @@
|
|
|
71
74
|
"ts-jest": "29.4.6",
|
|
72
75
|
"tslib": "^2.8.1",
|
|
73
76
|
"typescript": "^5.9.3",
|
|
74
|
-
"typescript-eslint": "8.
|
|
77
|
+
"typescript-eslint": "8.56.0"
|
|
75
78
|
}
|
|
76
79
|
}
|